Version Notes
- Estimated dispatch date calculations now properly consider weekends
Download this release
Release Info
| Developer | Hussey Coding |
| Extension | HusseyCoding_Backorder |
| Version | 1.0.7 |
| Comparing to | |
| See all releases | |
Code changes from version 1.0.6 to 1.0.7
app/code/community/HusseyCoding/Backorder/Helper/Data.php
CHANGED
|
@@ -58,7 +58,8 @@ class HusseyCoding_Backorder_Helper_Data extends Mage_Core_Helper_Abstract
|
|
| 58 |
if (!empty($backorder) && !$this->_isInPast($backorder)):
|
| 59 |
$backorder = str_replace(' and ', ' + ', $backorder);
|
| 60 |
$backorder = $this->_addHandlingTime($product, $backorder);
|
| 61 |
-
|
|
|
|
| 62 |
|
| 63 |
return $this->_getEstimateString($time);
|
| 64 |
endif;
|
|
@@ -77,7 +78,8 @@ class HusseyCoding_Backorder_Helper_Data extends Mage_Core_Helper_Abstract
|
|
| 77 |
|
| 78 |
if (!empty($handling)):
|
| 79 |
$handling = str_replace(' and ', ' + ', $handling);
|
| 80 |
-
|
|
|
|
| 81 |
$backorder = $backorder . ' + ' . $handling;
|
| 82 |
endif;
|
| 83 |
endif;
|
|
@@ -87,8 +89,9 @@ class HusseyCoding_Backorder_Helper_Data extends Mage_Core_Helper_Abstract
|
|
| 87 |
|
| 88 |
private function _isInPast($backorder)
|
| 89 |
{
|
| 90 |
-
|
| 91 |
-
|
|
|
|
| 92 |
if ($time < $now):
|
| 93 |
return true;
|
| 94 |
endif;
|
|
@@ -121,11 +124,21 @@ class HusseyCoding_Backorder_Helper_Data extends Mage_Core_Helper_Abstract
|
|
| 121 |
|
| 122 |
private function _getEstimateString($time, $format = true)
|
| 123 |
{
|
| 124 |
-
$estimate = new Zend_Date(
|
| 125 |
-
$
|
| 126 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 127 |
$estimate->set(strtotime('+1 weekday', $estimate->toString(Zend_Date::TIMESTAMP)), Zend_Date::TIMESTAMP);
|
| 128 |
endif;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 129 |
$estimate = $this->_setDateAfterHolidays($estimate);
|
| 130 |
$estimate = $estimate->toString(Zend_Date::TIMESTAMP);
|
| 131 |
if ($format):
|
|
@@ -151,7 +164,8 @@ class HusseyCoding_Backorder_Helper_Data extends Mage_Core_Helper_Abstract
|
|
| 151 |
private function _getCutOff()
|
| 152 |
{
|
| 153 |
if ($time = Mage::getStoreConfig('backorder/general/cutoff')):
|
| 154 |
-
|
|
|
|
| 155 |
if ($time = date('H:i:s', $time)):
|
| 156 |
return $time;
|
| 157 |
endif;
|
|
@@ -192,14 +206,15 @@ class HusseyCoding_Backorder_Helper_Data extends Mage_Core_Helper_Abstract
|
|
| 192 |
$fixedholidays = $this->_getValidDates(Mage::getStoreConfig('backorder/general/fixed_holidays'), 2);
|
| 193 |
$dynamicholidays = $this->_getValidDates(Mage::getStoreConfig('backorder/general/dynamic_holidays'), 3);
|
| 194 |
|
| 195 |
-
$
|
| 196 |
-
$
|
|
|
|
| 197 |
$holidays = array();
|
| 198 |
|
| 199 |
foreach ($fixedholidays as $holiday):
|
| 200 |
$holiday = explode('-', $holiday);
|
| 201 |
-
$holidays[] = strtotime($thisyear . '-' . end($holiday) . '-' . reset($holiday));
|
| 202 |
-
$holidays[] = strtotime($nextyear . '-' . end($holiday) . '-' . reset($holiday));
|
| 203 |
endforeach;
|
| 204 |
|
| 205 |
foreach ($dynamicholidays as $holiday):
|
|
@@ -223,7 +238,7 @@ class HusseyCoding_Backorder_Helper_Data extends Mage_Core_Helper_Abstract
|
|
| 223 |
endif;
|
| 224 |
|
| 225 |
$earliest = (7 * ($week - 1)) + 1;
|
| 226 |
-
$weekday = date(
|
| 227 |
|
| 228 |
if ($day == $weekday):
|
| 229 |
$offset = 0;
|
| 58 |
if (!empty($backorder) && !$this->_isInPast($backorder)):
|
| 59 |
$backorder = str_replace(' and ', ' + ', $backorder);
|
| 60 |
$backorder = $this->_addHandlingTime($product, $backorder);
|
| 61 |
+
$now = Mage::getModel('core/date')->timestamp();
|
| 62 |
+
if ($time = strtotime($backorder, $now)):
|
| 63 |
|
| 64 |
return $this->_getEstimateString($time);
|
| 65 |
endif;
|
| 78 |
|
| 79 |
if (!empty($handling)):
|
| 80 |
$handling = str_replace(' and ', ' + ', $handling);
|
| 81 |
+
$now = Mage::getModel('core/date')->timestamp();
|
| 82 |
+
if (strtotime($handling, $now)):
|
| 83 |
$backorder = $backorder . ' + ' . $handling;
|
| 84 |
endif;
|
| 85 |
endif;
|
| 89 |
|
| 90 |
private function _isInPast($backorder)
|
| 91 |
{
|
| 92 |
+
$now = Mage::getModel('core/date')->timestamp();
|
| 93 |
+
if ($time = strtotime($backorder, $now)):
|
| 94 |
+
$now = Mage::getModel('core/date')->timestamp();
|
| 95 |
if ($time < $now):
|
| 96 |
return true;
|
| 97 |
endif;
|
| 124 |
|
| 125 |
private function _getEstimateString($time, $format = true)
|
| 126 |
{
|
| 127 |
+
$estimate = new Zend_Date(Mage::getModel('core/date')->timestamp(), Zend_Date::TIMESTAMP);
|
| 128 |
+
$end = new Zend_Date($time, Zend_Date::TIMESTAMP);
|
| 129 |
+
$between = $end->sub($estimate)->toValue();
|
| 130 |
+
$between = ceil($between/60/60/24);
|
| 131 |
+
$between--;
|
| 132 |
+
|
| 133 |
+
if ($estimate->get(Zend_Date::WEEKDAY_8601) > 5 || $estimate->isLater($this->_getCutOff(), Zend_Date::TIMES)):
|
| 134 |
$estimate->set(strtotime('+1 weekday', $estimate->toString(Zend_Date::TIMESTAMP)), Zend_Date::TIMESTAMP);
|
| 135 |
endif;
|
| 136 |
+
|
| 137 |
+
while (!empty($between) && $between > 0):
|
| 138 |
+
$estimate->set(strtotime('+1 weekday', $estimate->toString(Zend_Date::TIMESTAMP)), Zend_Date::TIMESTAMP);
|
| 139 |
+
$between--;
|
| 140 |
+
endwhile;
|
| 141 |
+
|
| 142 |
$estimate = $this->_setDateAfterHolidays($estimate);
|
| 143 |
$estimate = $estimate->toString(Zend_Date::TIMESTAMP);
|
| 144 |
if ($format):
|
| 164 |
private function _getCutOff()
|
| 165 |
{
|
| 166 |
if ($time = Mage::getStoreConfig('backorder/general/cutoff')):
|
| 167 |
+
$now = Mage::getModel('core/date')->timestamp();
|
| 168 |
+
if ($time = strtotime($time, $now)):
|
| 169 |
if ($time = date('H:i:s', $time)):
|
| 170 |
return $time;
|
| 171 |
endif;
|
| 206 |
$fixedholidays = $this->_getValidDates(Mage::getStoreConfig('backorder/general/fixed_holidays'), 2);
|
| 207 |
$dynamicholidays = $this->_getValidDates(Mage::getStoreConfig('backorder/general/dynamic_holidays'), 3);
|
| 208 |
|
| 209 |
+
$now = Mage::getModel('core/date')->timestamp();
|
| 210 |
+
$thisyear = date('Y', $now);
|
| 211 |
+
$nextyear = date('Y', strtotime($thisyear . ' +1 year', $now));
|
| 212 |
$holidays = array();
|
| 213 |
|
| 214 |
foreach ($fixedholidays as $holiday):
|
| 215 |
$holiday = explode('-', $holiday);
|
| 216 |
+
$holidays[] = strtotime($thisyear . '-' . end($holiday) . '-' . reset($holiday), $now);
|
| 217 |
+
$holidays[] = strtotime($nextyear . '-' . end($holiday) . '-' . reset($holiday), $now);
|
| 218 |
endforeach;
|
| 219 |
|
| 220 |
foreach ($dynamicholidays as $holiday):
|
| 238 |
endif;
|
| 239 |
|
| 240 |
$earliest = (7 * ($week - 1)) + 1;
|
| 241 |
+
$weekday = date('N', mktime(0, 0, 0, $month, $earliest, $year));
|
| 242 |
|
| 243 |
if ($day == $weekday):
|
| 244 |
$offset = 0;
|
app/code/community/HusseyCoding/Backorder/etc/config.xml
CHANGED
|
@@ -2,7 +2,7 @@
|
|
| 2 |
<config>
|
| 3 |
<modules>
|
| 4 |
<HusseyCoding_Backorder>
|
| 5 |
-
<version>1.0.
|
| 6 |
</HusseyCoding_Backorder>
|
| 7 |
</modules>
|
| 8 |
<global>
|
| 2 |
<config>
|
| 3 |
<modules>
|
| 4 |
<HusseyCoding_Backorder>
|
| 5 |
+
<version>1.0.7</version>
|
| 6 |
</HusseyCoding_Backorder>
|
| 7 |
</modules>
|
| 8 |
<global>
|
package.xml
CHANGED
|
@@ -1,20 +1,18 @@
|
|
| 1 |
<?xml version="1.0"?>
|
| 2 |
<package>
|
| 3 |
<name>HusseyCoding_Backorder</name>
|
| 4 |
-
<version>1.0.
|
| 5 |
<stability>stable</stability>
|
| 6 |
<license uri="http://opensource.org/licenses/osl-3.0.php">Open Software License (OSL)</license>
|
| 7 |
<channel>community</channel>
|
| 8 |
<extends/>
|
| 9 |
<summary>Adds dispatch estimate notifications to product pages and the cart.</summary>
|
| 10 |
<description>Adds a dispatch lead time attribute to each product which should be entered as a human readable text string describing the lead time for the product, i.e. 1 week and 3 days. For parent products (grouped, configurable and bundle) the lead time should be entered for the child simple products rather than the parent product - any lead time on a parent product will be ignored.</description>
|
| 11 |
-
<notes>-
|
| 12 |
-
- Sales representative can now be notified by email when an order is placed where items are on backorder
|
| 13 |
-
- Fixed display of order delivery estimates for products with no estimate</notes>
|
| 14 |
<authors><author><name>Hussey Coding</name><user>husseycoding</user><email>info@husseycoding.co.uk</email></author></authors>
|
| 15 |
-
<date>2015-10-
|
| 16 |
-
<time>
|
| 17 |
-
<contents><target name="magecommunity"><dir name="HusseyCoding"><dir name="Backorder"><dir name="Block"><dir name="Adminhtml"><file name="Estimate.php" hash="385e1c6b6984be79c5d1b0e26ac1ae38"/></dir><dir name="Customer"><file name="Estimate.php" hash="6e6d0edf0a2419a03d02c812430ac1dc"/></dir><dir name="Estimate"><file name="Common.php" hash="bb1ef493353c5a2ca2ca6f7b72b0fe82"/></dir><file name="Estimate.php" hash="d72aca15f662940fe7c1a1db0faf1c90"/><dir name="Notify"><file name="Items.php" hash="888378c6ddbe8aa499f253dfeb03c53e"/></dir></dir><dir name="controllers"><file name="IndexController.php" hash="398362af6bd568d1cb5cb616c73d461a"/></dir><dir name="etc"><file name="adminhtml.xml" hash="81e616c4c65ddbd6e92728f8dc8e3fe5"/><file name="config.xml" hash="
|
| 18 |
<compatible/>
|
| 19 |
<dependencies><required><php><min>5.1.0</min><max>6.0.0</max></php></required></dependencies>
|
| 20 |
</package>
|
| 1 |
<?xml version="1.0"?>
|
| 2 |
<package>
|
| 3 |
<name>HusseyCoding_Backorder</name>
|
| 4 |
+
<version>1.0.7</version>
|
| 5 |
<stability>stable</stability>
|
| 6 |
<license uri="http://opensource.org/licenses/osl-3.0.php">Open Software License (OSL)</license>
|
| 7 |
<channel>community</channel>
|
| 8 |
<extends/>
|
| 9 |
<summary>Adds dispatch estimate notifications to product pages and the cart.</summary>
|
| 10 |
<description>Adds a dispatch lead time attribute to each product which should be entered as a human readable text string describing the lead time for the product, i.e. 1 week and 3 days. For parent products (grouped, configurable and bundle) the lead time should be entered for the child simple products rather than the parent product - any lead time on a parent product will be ignored.</description>
|
| 11 |
+
<notes>- Estimated dispatch date calculations now properly consider weekends</notes>
|
|
|
|
|
|
|
| 12 |
<authors><author><name>Hussey Coding</name><user>husseycoding</user><email>info@husseycoding.co.uk</email></author></authors>
|
| 13 |
+
<date>2015-10-11</date>
|
| 14 |
+
<time>13:42:14</time>
|
| 15 |
+
<contents><target name="magecommunity"><dir name="HusseyCoding"><dir name="Backorder"><dir name="Block"><dir name="Adminhtml"><file name="Estimate.php" hash="385e1c6b6984be79c5d1b0e26ac1ae38"/></dir><dir name="Customer"><file name="Estimate.php" hash="6e6d0edf0a2419a03d02c812430ac1dc"/></dir><dir name="Estimate"><file name="Common.php" hash="bb1ef493353c5a2ca2ca6f7b72b0fe82"/></dir><file name="Estimate.php" hash="d72aca15f662940fe7c1a1db0faf1c90"/><dir name="Notify"><file name="Items.php" hash="888378c6ddbe8aa499f253dfeb03c53e"/></dir></dir><dir name="controllers"><file name="IndexController.php" hash="398362af6bd568d1cb5cb616c73d461a"/></dir><dir name="etc"><file name="adminhtml.xml" hash="81e616c4c65ddbd6e92728f8dc8e3fe5"/><file name="config.xml" hash="8656b6d756cf4722c1c9c09d69da453f"/><file name="system.xml" hash="0ad3f597bde93164804e68b743b288b0"/></dir><dir name="Helper"><file name="Data.php" hash="1dad4d0b2724c839960a5246e2f82278"/></dir><dir name="Model"><file name="Observer.php" hash="a48244de6dde5c48fdd9aa50e7dc62f7"/><dir name="Order"><file name="SalesItem.php" hash="04de33199c3fac846eefaa9276114183"/></dir></dir><dir name="sql"><dir name="backorder_setup"><file name="install-1.0.0.php" hash="54c2cb1a423fad263b465df516da1ccb"/><file name="upgrade-1.0.0-1.0.1.php" hash="87b1f3a15a9e062691e33be10e39d330"/><file name="upgrade-1.0.3-1.0.4.php" hash="bef00d714a36ad2a2d093d0804390715"/><file name="upgrade-1.0.4-1.0.5.php" hash="d8ce9608c85c192dfc1d23070f2cd275"/></dir></dir></dir><dir name="Common"><dir name="etc"><file name="system.xml" hash="6c9ba9f227b9adfc9abf97f17b46fdbf"/></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="HusseyCoding_Backorder.xml" hash="97f4e05e024b0baa9f51ed3be9929168"/><file name="HusseyCoding_Common.xml" hash="31e82d3d9b3179c2fa9e002f9669da47"/></dir></target><target name="magedesign"><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="backorder.xml" hash="6c28968d1101a662b78d2e088cb25bd5"/></dir><dir name="template"><dir name="backorder"><dir name="bundle"><dir name="email"><dir name="order"><dir name="items"><dir name="order"><file name="default.phtml" hash="ead8320a2ffbc1ff62e00752a148bba0"/></dir></dir></dir></dir></dir><dir name="customer"><file name="estimate.phtml" hash="06b9a643a15d4d6c703ac97b50f5ddd2"/></dir><dir name="email"><dir name="order"><dir name="items"><dir name="order"><file name="default.phtml" hash="7c10e6eab957575c37548a8b4f4c30bd"/></dir></dir></dir></dir><file name="estimate.phtml" hash="72630a99f3703fc726a486516f694b92"/><dir name="notify"><file name="items.phtml" hash="a9c73eea6850cdbc1577a81ade08367d"/></dir></dir></dir></dir></dir></dir><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="backorder.xml" hash="1a7857b4d23af1401afda19cf0dc2aa2"/></dir><dir name="template"><dir name="backorder"><file name="estimate.phtml" hash="06b9a643a15d4d6c703ac97b50f5ddd2"/></dir></dir></dir></dir></dir></target><target name="mageskin"><dir name="frontend"><dir name="base"><dir name="default"><dir name="css"><file name="backorder.css" hash="f9601103bb20f597f9b58ec31d53ca6a"/></dir><dir name="js"><file name="backorder.js" hash="3b95ab6c1eca9e0f502aa7a053b4c816"/><dir name="backorder"><file name="customer.js" hash="72c4fe815d0c3af3263c6a6573a9373d"/></dir></dir></dir></dir></dir><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="backorder"><dir name="css"><file name="estimate.css" hash="d1e518f4f08c6ebdf5204bb016ce0372"/></dir><dir name="js"><file name="estimate.js" hash="f60c2208a113d446dc24fed10e8159ff"/></dir></dir></dir></dir></dir></target><target name="magelocale"><dir name="en_US"><dir name="template"><dir name="email"><file name="backorder_notification.html" hash="2e59f4a6c86156fb1922af3e232f35be"/></dir></dir></dir></target></contents>
|
| 16 |
<compatible/>
|
| 17 |
<dependencies><required><php><min>5.1.0</min><max>6.0.0</max></php></required></dependencies>
|
| 18 |
</package>
|
