Version Notes
* Add backward support for Magento 1.6 and earlier releases\
* Small bug fixes and improvements
Download this release
Release Info
| Developer | Anatoly A. Kazantsev |
| Extension | Order_approval |
| Version | 0.4.1.0 |
| Comparing to | |
| See all releases | |
Code changes from version 0.4.0.0 to 0.4.1.0
app/code/community/ZetaPrints/OrderApproval/Model/Events/Observer.php
CHANGED
|
@@ -46,7 +46,7 @@ class ZetaPrints_OrderApproval_Model_Events_Observer {
|
|
| 46 |
//only not approved items for futher processing.
|
| 47 |
|
| 48 |
//For every item from the quote check...
|
| 49 |
-
foreach ($quote->getAllVisibleItems(
|
| 50 |
//... if it's approved then...
|
| 51 |
if ($item->getApproved())
|
| 52 |
//...remove it from the cart
|
|
@@ -329,7 +329,14 @@ class ZetaPrints_OrderApproval_Model_Events_Observer {
|
|
| 329 |
if (count($quote->getItemsCollection())
|
| 330 |
== count($items_to_approve)) {
|
| 331 |
//... redirect to shopping cart page
|
| 332 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 333 |
|
| 334 |
return;
|
| 335 |
}
|
| 46 |
//only not approved items for futher processing.
|
| 47 |
|
| 48 |
//For every item from the quote check...
|
| 49 |
+
foreach ($quote->getAllVisibleItems() as $item)
|
| 50 |
//... if it's approved then...
|
| 51 |
if ($item->getApproved())
|
| 52 |
//...remove it from the cart
|
| 329 |
if (count($quote->getItemsCollection())
|
| 330 |
== count($items_to_approve)) {
|
| 331 |
//... redirect to shopping cart page
|
| 332 |
+
|
| 333 |
+
//Add support for Magento < 1.7
|
| 334 |
+
if (method_exists($controller, 'setRedirectWithCookieCheck'))
|
| 335 |
+
$controller->setRedirectWithCookieCheck('checkout/cart');
|
| 336 |
+
else
|
| 337 |
+
$controller
|
| 338 |
+
->getResponse()
|
| 339 |
+
->setRedirect(Mage::getUrl('checkout/cart'));
|
| 340 |
|
| 341 |
return;
|
| 342 |
}
|
app/code/community/ZetaPrints/OrderApproval/Model/Quote.php
CHANGED
|
@@ -53,6 +53,22 @@ class ZetaPrints_OrderApproval_Model_Quote extends Mage_Sales_Model_Quote {
|
|
| 53 |
? parent::setIsActive($active)
|
| 54 |
: $this;
|
| 55 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 56 |
}
|
| 57 |
|
| 58 |
?>
|
| 53 |
? parent::setIsActive($active)
|
| 54 |
: $this;
|
| 55 |
}
|
| 56 |
+
|
| 57 |
+
/**
|
| 58 |
+
* Retrieve quote items collection
|
| 59 |
+
*
|
| 60 |
+
* NOTE: the method adds backward compatibility
|
| 61 |
+
* with Magento < 1.7
|
| 62 |
+
*
|
| 63 |
+
* @param bool $useCache
|
| 64 |
+
* @return Mage_Eav_Model_Entity_Collection_Abstract
|
| 65 |
+
*/
|
| 66 |
+
public function getItemsCollection($useCache = true) {
|
| 67 |
+
if ($this->hasItemsCollection())
|
| 68 |
+
return $this->getData('items_collection');
|
| 69 |
+
|
| 70 |
+
return parent::getItemsCollection($useCache);
|
| 71 |
+
}
|
| 72 |
}
|
| 73 |
|
| 74 |
?>
|
app/code/community/ZetaPrints/OrderApproval/controllers/CustomercartController.php
CHANGED
|
@@ -62,7 +62,7 @@ class ZetaPrints_OrderApproval_CustomerCartController
|
|
| 62 |
->loadByCustomer($customer_id);
|
| 63 |
|
| 64 |
if (!$quote->getId()) {
|
| 65 |
-
$this->_redirect('');
|
| 66 |
|
| 67 |
return;
|
| 68 |
}
|
|
@@ -186,6 +186,19 @@ class ZetaPrints_OrderApproval_CustomerCartController
|
|
| 186 |
|
| 187 |
$item->setOptions($optionCollection->getOptionsByItem($item));
|
| 188 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 189 |
$emails = array($customer->getEmail());
|
| 190 |
$names = array($customer->getName());
|
| 191 |
|
|
@@ -204,18 +217,19 @@ class ZetaPrints_OrderApproval_CustomerCartController
|
|
| 204 |
->addNotice($this->__('Product was declined'));
|
| 205 |
}
|
| 206 |
|
| 207 |
-
|
| 208 |
-
|
| 209 |
-
|
| 210 |
-
|
| 211 |
-
|
| 212 |
-
|
| 213 |
-
|
| 214 |
-
|
| 215 |
-
|
| 216 |
-
|
| 217 |
-
|
| 218 |
-
|
|
|
|
| 219 |
|
| 220 |
$this->_redirect('*/*/edit', array('customer' => $quote->getCustomerId()));
|
| 221 |
}
|
|
@@ -298,6 +312,19 @@ class ZetaPrints_OrderApproval_CustomerCartController
|
|
| 298 |
$items[] = $item;
|
| 299 |
}
|
| 300 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 301 |
if ($state == ZetaPrints_OrderApproval_Helper_Data::APPROVED) {
|
| 302 |
$template = Mage::getStoreConfig(self::XML_APPROVED_TEMPLATE);
|
| 303 |
|
|
@@ -313,18 +340,19 @@ class ZetaPrints_OrderApproval_CustomerCartController
|
|
| 313 |
->addNotice($this->__('Selected products were declined'));
|
| 314 |
}
|
| 315 |
|
| 316 |
-
|
| 317 |
-
|
| 318 |
-
|
| 319 |
-
|
| 320 |
-
|
| 321 |
-
|
| 322 |
-
|
| 323 |
-
|
| 324 |
-
|
| 325 |
-
|
| 326 |
-
|
| 327 |
-
|
|
|
|
| 328 |
|
| 329 |
$this->_redirect('*/*/edit', array('customer' => $quote->getCustomerId()));
|
| 330 |
}
|
| 62 |
->loadByCustomer($customer_id);
|
| 63 |
|
| 64 |
if (!$quote->getId()) {
|
| 65 |
+
$this->_redirect('orderapproval/customercart/all');
|
| 66 |
|
| 67 |
return;
|
| 68 |
}
|
| 186 |
|
| 187 |
$item->setOptions($optionCollection->getOptionsByItem($item));
|
| 188 |
|
| 189 |
+
$settings = new Varien_Object(array(
|
| 190 |
+
'email_notification' => true
|
| 191 |
+
));
|
| 192 |
+
|
| 193 |
+
Mage::dispatchEvent(
|
| 194 |
+
'orderapproval_quote_state_updated',
|
| 195 |
+
array(
|
| 196 |
+
'quote' => $quote,
|
| 197 |
+
'state' => $state,
|
| 198 |
+
'settings' => $settings
|
| 199 |
+
)
|
| 200 |
+
);
|
| 201 |
+
|
| 202 |
$emails = array($customer->getEmail());
|
| 203 |
$names = array($customer->getName());
|
| 204 |
|
| 217 |
->addNotice($this->__('Product was declined'));
|
| 218 |
}
|
| 219 |
|
| 220 |
+
if ($settings->getData('email_notification'))
|
| 221 |
+
Mage::getModel('core/email_template')
|
| 222 |
+
->sendTransactional(
|
| 223 |
+
$template,
|
| 224 |
+
'sales',
|
| 225 |
+
$emails,
|
| 226 |
+
$names,
|
| 227 |
+
array(
|
| 228 |
+
'items' => array($item),
|
| 229 |
+
'number_of_items' => 1,
|
| 230 |
+
'customer' => $customer,
|
| 231 |
+
)
|
| 232 |
+
);
|
| 233 |
|
| 234 |
$this->_redirect('*/*/edit', array('customer' => $quote->getCustomerId()));
|
| 235 |
}
|
| 312 |
$items[] = $item;
|
| 313 |
}
|
| 314 |
|
| 315 |
+
$settings = new Varien_Object(array(
|
| 316 |
+
'email_notification' => true
|
| 317 |
+
));
|
| 318 |
+
|
| 319 |
+
Mage::dispatchEvent(
|
| 320 |
+
'orderapproval_quote_state_updated',
|
| 321 |
+
array(
|
| 322 |
+
'quote' => $quote,
|
| 323 |
+
'state' => $state,
|
| 324 |
+
'settings' => $settings
|
| 325 |
+
)
|
| 326 |
+
);
|
| 327 |
+
|
| 328 |
if ($state == ZetaPrints_OrderApproval_Helper_Data::APPROVED) {
|
| 329 |
$template = Mage::getStoreConfig(self::XML_APPROVED_TEMPLATE);
|
| 330 |
|
| 340 |
->addNotice($this->__('Selected products were declined'));
|
| 341 |
}
|
| 342 |
|
| 343 |
+
if ($settings->getData('email_notification'))
|
| 344 |
+
Mage::getModel('core/email_template')
|
| 345 |
+
->sendTransactional(
|
| 346 |
+
$template,
|
| 347 |
+
'sales',
|
| 348 |
+
$emails,
|
| 349 |
+
$names,
|
| 350 |
+
array(
|
| 351 |
+
'items' => $items,
|
| 352 |
+
'number_of_items' => count($items),
|
| 353 |
+
'customer' => $customer,
|
| 354 |
+
)
|
| 355 |
+
);
|
| 356 |
|
| 357 |
$this->_redirect('*/*/edit', array('customer' => $quote->getCustomerId()));
|
| 358 |
}
|
package.xml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
| 1 |
<?xml version="1.0"?>
|
| 2 |
<package>
|
| 3 |
<name>Order_approval</name>
|
| 4 |
-
<version>0.4.
|
| 5 |
<stability>stable</stability>
|
| 6 |
<license uri="http://www.opensource.org/licenses/osl-3.0.php">OSL v3.0</license>
|
| 7 |
<channel>community</channel>
|
|
@@ -24,14 +24,12 @@ The approver can log in, view the list of items and then either approve or
|
|
| 24 |
cancel the purchase.
|
| 25 |

|
| 26 |
Users without a nominated approver can check out as usual.</description>
|
| 27 |
-
<notes>*
|
| 28 |
-
*
|
| 29 |
-
|
| 30 |
-
|
| 31 |
-
<
|
| 32 |
-
<
|
| 33 |
-
<time>19:29:49</time>
|
| 34 |
-
<contents><target name="mageetc"><dir name="modules"><file name="ZetaPrints_OrderApproval.xml" hash="5ee48ca83fdb3610c659d6a9e4d2e027"/></dir></target><target name="magecommunity"><dir name="ZetaPrints"><dir name="OrderApproval"><dir name="Block"><dir name="Customercart"><dir name="Edit"><dir name="Grid"><dir name="Column"><dir name="Renderer"><file name="Abstract.php" hash="36cf6a845ec51140ba219d3d74aab6d9"/><file name="Image.php" hash="9e9d90fc91a3ab6e7a09f8e91732f7c8"/><file name="Price.php" hash="51fe87a6aaa99e783eaafe5acf5c6286"/><file name="Productoptions.php" hash="5323448e054b6ac27780558c78bcfe15"/><file name="Qty.php" hash="009857ec32aae2ffbf63f1946c49d104"/><file name="Subtotal.php" hash="2ab57a194db635119d63104c04a48139"/></dir></dir></dir><file name="Grid.php" hash="c86a99fc1a4664ed8ba33d072affa59a"/></dir><file name="Edit.php" hash="9b386d9afc94d1efe2cf33aa8a67058c"/><file name="Item.php" hash="4f929b8f21b30247bcb3a4b335b2af2a"/></dir><file name="Customercart.php" hash="427b8e13430c1a992cc1191a44a229e0"/></dir><dir name="Helper"><file name="Data.php" hash="610297515e9a82854931c6b847eea73e"/></dir><dir name="Model"><dir name="Entity"><dir name="Attribute"><dir name="Source"><file name="Approvers.php" hash="afa73cdcf25ad5feeb6f6eca3f036ca5"/></dir></dir></dir><dir name="Events"><file name="Observer.php" hash="fdf9c655eab2d8677c9988bb467a1f98"/></dir><file name="Quote.php" hash="f61302aa2f19f2f501b608dd74462215"/><dir name="System"><dir name="Config"><dir name="Source"><file name="Admins.php" hash="a95bce3314aafb7997434b03fa400389"/></dir></dir></dir></dir><dir name="controllers"><file name="CustomercartController.php" hash="61f8db95cbcfe3b54f5735ea7dccc176"/></dir><dir name="data"><dir name="orderapproval_setup"><file name="data-upgrade-2-3.php" hash="dbd1420d7518a2722b0584638610e4be"/></dir></dir><dir name="etc"><file name="config.xml" hash="c50bab9c0ee8e8b375f71f0bae1ff7eb"/><file name="system.xml" hash="1524e066af4ae39b7b4ab984c89c2264"/></dir><dir name="sql"><dir name="orderapproval_setup"><file name="mysql4-data-upgrade-1-2.php" hash="e51e107f343a4c31bd9fe2b12afb855a"/><file name="mysql4-install-1.php" hash="2ed307cae48c5d639ba5cfcbb3a4ad44"/><file name="upgrade-2-3.php" hash="b37238d5590f1206cbe0c90e4fc94bee"/></dir></dir></dir></dir></target><target name="magelocale"><dir name="en_US"><dir name="template"><dir name="email"><dir name="orderapproval"><file name="approved_items.html" hash="0e6d600f5f2c0dec5af90e47e0b9c1f5"/><file name="declined_items.html" hash="d72e51f7ddb3501e5c07b79a2f0970f3"/><file name="items_to_approve.html" hash="ecaaf635d93eb95139b52edc825411ce"/></dir></dir></dir></dir></target><target name="magedesign"><dir name="frontend"><dir name="base"><dir name="default"><dir name="template"><dir name="order-approval"><dir><dir name="cart"><dir name="edit"><dir name="grid"><dir name="column"><dir name="renderer"><file name="image.phtml" hash="eb90230daaba6696b09d00d53967d6a2"/><file name="price.phtml" hash="f47bc098cbe31f40861b89744f76a8a6"/><file name="product-options.phtml" hash="de73952675681ad5d66bebd8878a7295"/><file name="qty.phtml" hash="efa017d34741b02b72d8f962ee7704af"/><file name="subtotal.phtml" hash="6bdd910cc427f4f0bd30dcf869d2b1da"/></dir></dir></dir></dir><file name="edit.phtml" hash="1a6ac3ef492885f1e9d828284c48e28e"/><dir name="item"><file name="customer_info.phtml" hash="f89251d5b85a12935035f5158436eb18"/></dir><file name="item.phtml" hash="126f38ae97f9c5340a17e0ea0a134302"/></dir></dir><file name="cart.phtml" hash="25bb08c2c3a7692454b05df9ffad47a9"/></dir><dir name="widget"><dir><dir name="grid"><file name="container.phtml" hash="3eac12f7df27bdfeb2115467e8c03120"/><file name="massaction.phtml" hash="c1c2350057d49aa434939c79c3565567"/></dir></dir><file name="grid.phtml" hash="6c81f87e9c6fd9db99ffe88f8220357c"/></dir><dir name="email"><dir name="orderapproval"><file name="item.phtml" hash="0293fb78798fca32ce700992d76d1a0d"/><file name="items.phtml" hash="2af569531af93ed829f2b78a981f26bb"/></dir></dir></dir><dir name="layout"><file name="order-approval.xml" hash="b981473db04e0a206ea19df6a65dcb1f"/></dir></dir></dir></dir></target><target name="mageskin"><dir name="frontend"><dir name="base"><dir name="default"><dir name="css"><dir name="order-approval"><file name="styles.css" hash="ea6d3b28888a140bf44fe38c9b5a34c6"/></dir></dir></dir></dir></dir></target></contents>
|
| 35 |
<compatible/>
|
| 36 |
<dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php></required></dependencies>
|
| 37 |
</package>
|
| 1 |
<?xml version="1.0"?>
|
| 2 |
<package>
|
| 3 |
<name>Order_approval</name>
|
| 4 |
+
<version>0.4.1.0</version>
|
| 5 |
<stability>stable</stability>
|
| 6 |
<license uri="http://www.opensource.org/licenses/osl-3.0.php">OSL v3.0</license>
|
| 7 |
<channel>community</channel>
|
| 24 |
cancel the purchase.
|
| 25 |

|
| 26 |
Users without a nominated approver can check out as usual.</description>
|
| 27 |
+
<notes>* Add backward support for Magento 1.6 and earlier releases\
|
| 28 |
+
* Small bug fixes and improvements</notes>
|
| 29 |
+
<authors><author><name>Anatoly A. Kazantsev</name><user>jimcrow</user><email>anatoly@zetaprints.com</email></author></authors>
|
| 30 |
+
<date>2013-09-10</date>
|
| 31 |
+
<time>05:24:32</time>
|
| 32 |
+
<contents><target name="mageetc"><dir name="modules"><file name="ZetaPrints_OrderApproval.xml" hash="5ee48ca83fdb3610c659d6a9e4d2e027"/></dir></target><target name="magecommunity"><dir name="ZetaPrints"><dir name="OrderApproval"><dir name="Block"><dir name="Customercart"><dir name="Edit"><dir name="Grid"><dir name="Column"><dir name="Renderer"><file name="Abstract.php" hash="36cf6a845ec51140ba219d3d74aab6d9"/><file name="Image.php" hash="9e9d90fc91a3ab6e7a09f8e91732f7c8"/><file name="Price.php" hash="51fe87a6aaa99e783eaafe5acf5c6286"/><file name="Productoptions.php" hash="5323448e054b6ac27780558c78bcfe15"/><file name="Qty.php" hash="009857ec32aae2ffbf63f1946c49d104"/><file name="Subtotal.php" hash="2ab57a194db635119d63104c04a48139"/></dir></dir></dir><file name="Grid.php" hash="c86a99fc1a4664ed8ba33d072affa59a"/></dir><file name="Edit.php" hash="9b386d9afc94d1efe2cf33aa8a67058c"/><file name="Item.php" hash="4f929b8f21b30247bcb3a4b335b2af2a"/></dir><file name="Customercart.php" hash="427b8e13430c1a992cc1191a44a229e0"/></dir><dir name="Helper"><file name="Data.php" hash="610297515e9a82854931c6b847eea73e"/></dir><dir name="Model"><dir name="Entity"><dir name="Attribute"><dir name="Source"><file name="Approvers.php" hash="afa73cdcf25ad5feeb6f6eca3f036ca5"/></dir></dir></dir><dir name="Events"><file name="Observer.php" hash="7649a2c8157a366eab70e73de3008bb9"/></dir><file name="Quote.php" hash="956e20d4f579cccff593075ce19a3064"/><dir name="System"><dir name="Config"><dir name="Source"><file name="Admins.php" hash="a95bce3314aafb7997434b03fa400389"/></dir></dir></dir></dir><dir name="controllers"><file name="CustomercartController.php" hash="d80036dfe7c8c64378a90844bca59e95"/></dir><dir name="data"><dir name="orderapproval_setup"><file name="data-upgrade-2-3.php" hash="dbd1420d7518a2722b0584638610e4be"/></dir></dir><dir name="etc"><file name="config.xml" hash="c50bab9c0ee8e8b375f71f0bae1ff7eb"/><file name="system.xml" hash="1524e066af4ae39b7b4ab984c89c2264"/></dir><dir name="sql"><dir name="orderapproval_setup"><file name="mysql4-data-upgrade-1-2.php" hash="e51e107f343a4c31bd9fe2b12afb855a"/><file name="mysql4-install-1.php" hash="2ed307cae48c5d639ba5cfcbb3a4ad44"/><file name="upgrade-2-3.php" hash="b37238d5590f1206cbe0c90e4fc94bee"/></dir></dir></dir></dir></target><target name="magelocale"><dir name="en_US"><dir name="template"><dir name="email"><dir name="orderapproval"><file name="approved_items.html" hash="0e6d600f5f2c0dec5af90e47e0b9c1f5"/><file name="declined_items.html" hash="d72e51f7ddb3501e5c07b79a2f0970f3"/><file name="items_to_approve.html" hash="ecaaf635d93eb95139b52edc825411ce"/></dir></dir></dir></dir></target><target name="magedesign"><dir name="frontend"><dir name="base"><dir name="default"><dir name="template"><dir name="order-approval"><dir><dir name="cart"><dir name="edit"><dir name="grid"><dir name="column"><dir name="renderer"><file name="image.phtml" hash="eb90230daaba6696b09d00d53967d6a2"/><file name="price.phtml" hash="f47bc098cbe31f40861b89744f76a8a6"/><file name="product-options.phtml" hash="de73952675681ad5d66bebd8878a7295"/><file name="qty.phtml" hash="efa017d34741b02b72d8f962ee7704af"/><file name="subtotal.phtml" hash="6bdd910cc427f4f0bd30dcf869d2b1da"/></dir></dir></dir></dir><file name="edit.phtml" hash="1a6ac3ef492885f1e9d828284c48e28e"/><dir name="item"><file name="customer_info.phtml" hash="f89251d5b85a12935035f5158436eb18"/></dir><file name="item.phtml" hash="126f38ae97f9c5340a17e0ea0a134302"/></dir></dir><file name="cart.phtml" hash="25bb08c2c3a7692454b05df9ffad47a9"/></dir><dir name="widget"><dir><dir name="grid"><file name="container.phtml" hash="3eac12f7df27bdfeb2115467e8c03120"/><file name="massaction.phtml" hash="c1c2350057d49aa434939c79c3565567"/></dir></dir><file name="grid.phtml" hash="6c81f87e9c6fd9db99ffe88f8220357c"/></dir><dir name="email"><dir name="orderapproval"><file name="item.phtml" hash="0293fb78798fca32ce700992d76d1a0d"/><file name="items.phtml" hash="2af569531af93ed829f2b78a981f26bb"/></dir></dir></dir><dir name="layout"><file name="order-approval.xml" hash="b981473db04e0a206ea19df6a65dcb1f"/></dir></dir></dir></dir></target><target name="mageskin"><dir name="frontend"><dir name="base"><dir name="default"><dir name="css"><dir name="order-approval"><file name="styles.css" hash="ea6d3b28888a140bf44fe38c9b5a34c6"/></dir></dir></dir></dir></dir></target></contents>
|
|
|
|
|
|
|
| 33 |
<compatible/>
|
| 34 |
<dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php></required></dependencies>
|
| 35 |
</package>
|
