Version Notes
Added automated email sending while creating separate invoices.
Download this release
Release Info
| Developer | Plumrocket Team |
| Extension | Plumrocket_Auto_Invoice |
| Version | 1.1.0 |
| Comparing to | |
| See all releases | |
Code changes from version 1.0.7 to 1.1.0
- app/code/community/Plumrocket/AutoInvoice/Block/System/Config/Version.php +1 -1
- app/code/community/Plumrocket/AutoInvoice/Helper/Main.php +7 -96
- app/code/community/Plumrocket/AutoInvoice/Model/Observer.php +29 -3
- app/code/community/Plumrocket/AutoInvoice/etc/config.xml +10 -1
- app/etc/modules/Plumrocket_AutoInvoice.xml +1 -1
- package.xml +6 -6
app/code/community/Plumrocket/AutoInvoice/Block/System/Config/Version.php
CHANGED
|
@@ -59,7 +59,7 @@ class Plumrocket_AutoInvoice_Block_System_Config_Version extends Mage_Adminhtml_
|
|
| 59 |
|
| 60 |
var iframeDoc = iframe.contentDocument || iframe.contentWindow.document;
|
| 61 |
iframeDoc.open();
|
| 62 |
-
iframeDoc.write("<
|
| 63 |
iframeDoc.close();
|
| 64 |
iframeBody = iframeDoc.body;
|
| 65 |
|
| 59 |
|
| 60 |
var iframeDoc = iframe.contentDocument || iframe.contentWindow.document;
|
| 61 |
iframeDoc.open();
|
| 62 |
+
iframeDoc.write("<ht"+"ml><bo"+"dy></bo"+"dy></ht"+"ml>");
|
| 63 |
iframeDoc.close();
|
| 64 |
iframeBody = iframeDoc.body;
|
| 65 |
|
app/code/community/Plumrocket/AutoInvoice/Helper/Main.php
CHANGED
|
@@ -7,10 +7,14 @@
|
|
| 7 |
* This source file is subject to the End-user License Agreement
|
| 8 |
* that is available through the world-wide-web at this URL:
|
| 9 |
* http://wiki.plumrocket.net/wiki/EULA
|
| 10 |
-
* If you are unable to obtain it through the world-wide-web, please
|
| 11 |
* send an email to support@plumrocket.com so we can send you a copy immediately.
|
| 12 |
*
|
| 13 |
-
*
|
|
|
|
|
|
|
|
|
|
|
|
|
| 14 |
* @copyright Copyright (c) 2015 Plumrocket Inc. (http://www.plumrocket.com)
|
| 15 |
* @license http://wiki.plumrocket.net/wiki/EULA End-user License Agreement
|
| 16 |
*/
|
|
@@ -19,97 +23,4 @@
|
|
| 19 |
class Plumrocket_AutoInvoice_Helper_Main extends Mage_Core_Helper_Abstract
|
| 20 |
{
|
| 21 |
|
| 22 |
-
|
| 23 |
-
{
|
| 24 |
-
$url = Mage::getUrl($route, $params);
|
| 25 |
-
if (Mage::app()->getStore()->isCurrentlySecure()) {
|
| 26 |
-
$url = str_replace('http://', 'https://', $url);
|
| 27 |
-
} else {
|
| 28 |
-
$url = str_replace('https://', 'http://', $url);
|
| 29 |
-
}
|
| 30 |
-
|
| 31 |
-
return $url;
|
| 32 |
-
}
|
| 33 |
-
|
| 34 |
-
|
| 35 |
-
protected function __addProduct($product, $request = null)
|
| 36 |
-
{
|
| 37 |
-
return $this->addProductAdvanced(
|
| 38 |
-
$product,
|
| 39 |
-
$request,
|
| 40 |
-
Mage_Catalog_Model_Product_Type_Abstract::PROCESS_MODE_FULL
|
| 41 |
-
);
|
| 42 |
-
}
|
| 43 |
-
|
| 44 |
-
|
| 45 |
-
protected function __initOrder($orderIncrementId)
|
| 46 |
-
{
|
| 47 |
-
$order = Mage::getModel('sales/order');
|
| 48 |
-
|
| 49 |
-
$order->loadByIncrementId($orderIncrementId);
|
| 50 |
-
|
| 51 |
-
if (!$order->getId()) {
|
| 52 |
-
$this->_fault('not_exists');
|
| 53 |
-
}
|
| 54 |
-
|
| 55 |
-
return $order;
|
| 56 |
-
}
|
| 57 |
-
|
| 58 |
-
|
| 59 |
-
public function __setOrder(Mage_Sales_Model_Order $order)
|
| 60 |
-
{
|
| 61 |
-
$this->_order = $order;
|
| 62 |
-
$this->setOrderId($order->getId())
|
| 63 |
-
->setStoreId($order->getStoreId());
|
| 64 |
-
return $this;
|
| 65 |
-
}
|
| 66 |
-
|
| 67 |
-
|
| 68 |
-
final public function getCustomerKey()
|
| 69 |
-
{
|
| 70 |
-
return implode('', array_map('ch'.
|
| 71 |
-
'r', explode('.', '53.51.50.52.49.51.50.50.49.51.102.100.50.57.55.54.101.54.56.51.51.57.102.55.53.102.49.57.100.54.49.98.51.51.49.56.99.53.57.48.57.49')
|
| 72 |
-
));
|
| 73 |
-
}
|
| 74 |
-
|
| 75 |
-
|
| 76 |
-
protected function __hold($orderIncrementId)
|
| 77 |
-
{
|
| 78 |
-
$order = $this->_initOrder($orderIncrementId);
|
| 79 |
-
|
| 80 |
-
try {
|
| 81 |
-
$order->hold();
|
| 82 |
-
$order->save();
|
| 83 |
-
} catch (Mage_Core_Exception $e) {
|
| 84 |
-
$this->_fault('status_not_changed', $e->getMessage());
|
| 85 |
-
}
|
| 86 |
-
|
| 87 |
-
return true;
|
| 88 |
-
}
|
| 89 |
-
|
| 90 |
-
|
| 91 |
-
protected function __deleteItem($item)
|
| 92 |
-
{
|
| 93 |
-
if ($item->getId()) {
|
| 94 |
-
$this->removeItem($item->getId());
|
| 95 |
-
} else {
|
| 96 |
-
$quoteItems = $this->getItemsCollection();
|
| 97 |
-
$items = array($item);
|
| 98 |
-
if ($item->getHasChildren()) {
|
| 99 |
-
foreach ($item->getChildren() as $child) {
|
| 100 |
-
$items[] = $child;
|
| 101 |
-
}
|
| 102 |
-
}
|
| 103 |
-
foreach ($quoteItems as $key => $quoteItem) {
|
| 104 |
-
foreach ($items as $item) {
|
| 105 |
-
if ($quoteItem->compare($item)) {
|
| 106 |
-
$quoteItems->removeItemByKey($key);
|
| 107 |
-
}
|
| 108 |
-
}
|
| 109 |
-
}
|
| 110 |
-
}
|
| 111 |
-
|
| 112 |
-
return $this;
|
| 113 |
-
}
|
| 114 |
-
|
| 115 |
-
};
|
| 7 |
* This source file is subject to the End-user License Agreement
|
| 8 |
* that is available through the world-wide-web at this URL:
|
| 9 |
* http://wiki.plumrocket.net/wiki/EULA
|
| 10 |
+
* If you are unable to obtain it through the world-wide-web, please
|
| 11 |
* send an email to support@plumrocket.com so we can send you a copy immediately.
|
| 12 |
*
|
| 13 |
+
* DISCLAIMER
|
| 14 |
+
*
|
| 15 |
+
* Do not edit or add to this file
|
| 16 |
+
*
|
| 17 |
+
* @package Plumrocket_Auto_Invoice
|
| 18 |
* @copyright Copyright (c) 2015 Plumrocket Inc. (http://www.plumrocket.com)
|
| 19 |
* @license http://wiki.plumrocket.net/wiki/EULA End-user License Agreement
|
| 20 |
*/
|
| 23 |
class Plumrocket_AutoInvoice_Helper_Main extends Mage_Core_Helper_Abstract
|
| 24 |
{
|
| 25 |
|
| 26 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
app/code/community/Plumrocket/AutoInvoice/Model/Observer.php
CHANGED
|
@@ -31,7 +31,7 @@ class Plumrocket_AutoInvoice_Model_Observer
|
|
| 31 |
}
|
| 32 |
|
| 33 |
$dateModel = Mage::getModel('core/date');
|
| 34 |
-
$time = $dateModel->timestamp() - 60 * 60;
|
| 35 |
|
| 36 |
$collection = Mage::getModel('sales/order')->getCollection()
|
| 37 |
->addFieldToFilter('main_table.created_at', array('gt' => $dateModel->gmtDate('Y-m-d H:i:s', $time)))
|
|
@@ -45,6 +45,9 @@ class Plumrocket_AutoInvoice_Model_Observer
|
|
| 45 |
->joinLeft( array('invoice' => $_resource->getTableName('sales/invoice')), 'invoice.order_id = main_table.entity_id', array())
|
| 46 |
->where('order_id IS NULL');
|
| 47 |
|
|
|
|
|
|
|
|
|
|
| 48 |
foreach($collection as $order){
|
| 49 |
|
| 50 |
if (!$_helper->moduleEnabled($order->getStoreId()) || !$_helper->sendInvoiceAfterOrderIsCreated($order->getStoreId())){
|
|
@@ -63,6 +66,7 @@ class Plumrocket_AutoInvoice_Model_Observer
|
|
| 63 |
$invoice = Mage::getModel('sales/service_order', $order)->prepareInvoice();
|
| 64 |
|
| 65 |
if ($invoice) {
|
|
|
|
| 66 |
$invoice->setRequestedCaptureCase($_helper->getCaptureAmount($order->getStoreId()));
|
| 67 |
$invoice->register();
|
| 68 |
$invoice->getOrder()->setCustomerNoteNotify(false);
|
|
@@ -73,7 +77,7 @@ class Plumrocket_AutoInvoice_Model_Observer
|
|
| 73 |
->addObject($invoice->getOrder())
|
| 74 |
->save();
|
| 75 |
|
| 76 |
-
|
| 77 |
|
| 78 |
$order->addStatusHistoryComment('Auto Invoice: Order invoiced.', false)->save();
|
| 79 |
}
|
|
@@ -104,6 +108,8 @@ class Plumrocket_AutoInvoice_Model_Observer
|
|
| 104 |
return;
|
| 105 |
}
|
| 106 |
|
|
|
|
|
|
|
| 107 |
try{
|
| 108 |
|
| 109 |
$qtys = array();
|
|
@@ -117,6 +123,7 @@ class Plumrocket_AutoInvoice_Model_Observer
|
|
| 117 |
$invoice = Mage::getModel('sales/service_order', $order)->prepareInvoice($qtys);
|
| 118 |
|
| 119 |
if ($invoice) {
|
|
|
|
| 120 |
$invoice->setRequestedCaptureCase($_helper->getCaptureAmount($order->getStoreId()));
|
| 121 |
$invoice->register();
|
| 122 |
$invoice->getOrder()->setCustomerNoteNotify(false);
|
|
@@ -127,7 +134,7 @@ class Plumrocket_AutoInvoice_Model_Observer
|
|
| 127 |
->addObject($invoice->getOrder())
|
| 128 |
->save();
|
| 129 |
|
| 130 |
-
|
| 131 |
|
| 132 |
$order->addStatusHistoryComment('Auto Invoice: Order invoiced.', false)->save();
|
| 133 |
}
|
|
@@ -138,4 +145,23 @@ class Plumrocket_AutoInvoice_Model_Observer
|
|
| 138 |
}
|
| 139 |
}
|
| 140 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 141 |
}
|
| 31 |
}
|
| 32 |
|
| 33 |
$dateModel = Mage::getModel('core/date');
|
| 34 |
+
$time = $dateModel->timestamp() - 6 * 60 * 60;
|
| 35 |
|
| 36 |
$collection = Mage::getModel('sales/order')->getCollection()
|
| 37 |
->addFieldToFilter('main_table.created_at', array('gt' => $dateModel->gmtDate('Y-m-d H:i:s', $time)))
|
| 45 |
->joinLeft( array('invoice' => $_resource->getTableName('sales/invoice')), 'invoice.order_id = main_table.entity_id', array())
|
| 46 |
->where('order_id IS NULL');
|
| 47 |
|
| 48 |
+
|
| 49 |
+
Mage::app()->loadArea('adminhtml');
|
| 50 |
+
|
| 51 |
foreach($collection as $order){
|
| 52 |
|
| 53 |
if (!$_helper->moduleEnabled($order->getStoreId()) || !$_helper->sendInvoiceAfterOrderIsCreated($order->getStoreId())){
|
| 66 |
$invoice = Mage::getModel('sales/service_order', $order)->prepareInvoice();
|
| 67 |
|
| 68 |
if ($invoice) {
|
| 69 |
+
Mage::register('current_invoice', $invoice);
|
| 70 |
$invoice->setRequestedCaptureCase($_helper->getCaptureAmount($order->getStoreId()));
|
| 71 |
$invoice->register();
|
| 72 |
$invoice->getOrder()->setCustomerNoteNotify(false);
|
| 77 |
->addObject($invoice->getOrder())
|
| 78 |
->save();
|
| 79 |
|
| 80 |
+
//$invoice->sendEmail(true);
|
| 81 |
|
| 82 |
$order->addStatusHistoryComment('Auto Invoice: Order invoiced.', false)->save();
|
| 83 |
}
|
| 108 |
return;
|
| 109 |
}
|
| 110 |
|
| 111 |
+
Mage::app()->loadArea('adminhtml');
|
| 112 |
+
|
| 113 |
try{
|
| 114 |
|
| 115 |
$qtys = array();
|
| 123 |
$invoice = Mage::getModel('sales/service_order', $order)->prepareInvoice($qtys);
|
| 124 |
|
| 125 |
if ($invoice) {
|
| 126 |
+
Mage::register('current_invoice', $invoice);
|
| 127 |
$invoice->setRequestedCaptureCase($_helper->getCaptureAmount($order->getStoreId()));
|
| 128 |
$invoice->register();
|
| 129 |
$invoice->getOrder()->setCustomerNoteNotify(false);
|
| 134 |
->addObject($invoice->getOrder())
|
| 135 |
->save();
|
| 136 |
|
| 137 |
+
//$invoice->sendEmail(true);
|
| 138 |
|
| 139 |
$order->addStatusHistoryComment('Auto Invoice: Order invoiced.', false)->save();
|
| 140 |
}
|
| 145 |
}
|
| 146 |
}
|
| 147 |
|
| 148 |
+
public function sendInvoiceEmail($observer)
|
| 149 |
+
{
|
| 150 |
+
if (!Mage::helper('autoinvoice')->moduleEnabled()){
|
| 151 |
+
return $this;
|
| 152 |
+
}
|
| 153 |
+
|
| 154 |
+
try {
|
| 155 |
+
$_invoice = $observer->getEvent()->getInvoice();
|
| 156 |
+
if ($_invoice->getEmailSent()){
|
| 157 |
+
return $this;
|
| 158 |
+
}
|
| 159 |
+
$_invoice->sendEmail();
|
| 160 |
+
} catch (Mage_Core_Exception $e) {
|
| 161 |
+
//echo $e->getMessage();
|
| 162 |
+
}
|
| 163 |
+
|
| 164 |
+
return $this;
|
| 165 |
+
}
|
| 166 |
+
|
| 167 |
}
|
app/code/community/Plumrocket/AutoInvoice/etc/config.xml
CHANGED
|
@@ -2,7 +2,7 @@
|
|
| 2 |
<config>
|
| 3 |
<modules>
|
| 4 |
<Plumrocket_AutoInvoice>
|
| 5 |
-
<version>1.0
|
| 6 |
</Plumrocket_AutoInvoice>
|
| 7 |
</modules>
|
| 8 |
<global>
|
|
@@ -32,6 +32,15 @@
|
|
| 32 |
</autoinvoice_sales_order_shipment_save_after>
|
| 33 |
</observers>
|
| 34 |
</sales_order_shipment_save_after>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 35 |
</events>
|
| 36 |
</global>
|
| 37 |
<crontab>
|
| 2 |
<config>
|
| 3 |
<modules>
|
| 4 |
<Plumrocket_AutoInvoice>
|
| 5 |
+
<version>1.1.0</version>
|
| 6 |
</Plumrocket_AutoInvoice>
|
| 7 |
</modules>
|
| 8 |
<global>
|
| 32 |
</autoinvoice_sales_order_shipment_save_after>
|
| 33 |
</observers>
|
| 34 |
</sales_order_shipment_save_after>
|
| 35 |
+
<sales_order_invoice_save_after>
|
| 36 |
+
<observers>
|
| 37 |
+
<autoinvoice_sales_order_invoice_save_after>
|
| 38 |
+
<type>model</type>
|
| 39 |
+
<class>autoinvoice/observer</class>
|
| 40 |
+
<method>sendInvoiceEmail</method>
|
| 41 |
+
</autoinvoice_sales_order_invoice_save_after>
|
| 42 |
+
</observers>
|
| 43 |
+
</sales_order_invoice_save_after>
|
| 44 |
</events>
|
| 45 |
</global>
|
| 46 |
<crontab>
|
app/etc/modules/Plumrocket_AutoInvoice.xml
CHANGED
|
@@ -4,7 +4,7 @@
|
|
| 4 |
<Plumrocket_AutoInvoice>
|
| 5 |
<active>true</active>
|
| 6 |
<codePool>community</codePool>
|
| 7 |
-
<version>1.0
|
| 8 |
<wiki>http://wiki.plumrocket.com/wiki/Magento_Auto_Invoice_v1.x_Extension</wiki>
|
| 9 |
<name>Plumrocket Auto Invoice</name>
|
| 10 |
<depends>
|
| 4 |
<Plumrocket_AutoInvoice>
|
| 5 |
<active>true</active>
|
| 6 |
<codePool>community</codePool>
|
| 7 |
+
<version>1.1.0</version>
|
| 8 |
<wiki>http://wiki.plumrocket.com/wiki/Magento_Auto_Invoice_v1.x_Extension</wiki>
|
| 9 |
<name>Plumrocket Auto Invoice</name>
|
| 10 |
<depends>
|
package.xml
CHANGED
|
@@ -1,18 +1,18 @@
|
|
| 1 |
<?xml version="1.0"?>
|
| 2 |
<package>
|
| 3 |
<name>Plumrocket_Auto_Invoice</name>
|
| 4 |
-
<version>1.0
|
| 5 |
<stability>stable</stability>
|
| 6 |
<license uri="http://wiki.plumrocket.net/wiki/EULA">End-user License Agreement</license>
|
| 7 |
<channel>community</channel>
|
| 8 |
<extends/>
|
| 9 |
<summary>Plumrocket Auto Invoice is a convenient Magento payment processing module that was designed to generate invoice automatically.</summary>
|
| 10 |
<description>Plumrocket Auto Invoice is a convenient Magento payment processing module that was designed to generate invoice automatically. After a client confirms his order the system will send the invoice automatically thus allowing website admin to avoid manual processing of payment transactions.</description>
|
| 11 |
-
<notes>
|
| 12 |
<authors><author><name>Plumrocket Team</name><user>plumrocket</user><email>support@plumrocket.com</email></author></authors>
|
| 13 |
-
<date>
|
| 14 |
-
<time>10:
|
| 15 |
-
<contents><target name="mageetc"><dir name="modules"><file name="Plumrocket_AutoInvoice.xml" hash="
|
| 16 |
<compatible/>
|
| 17 |
-
<dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php><package><name>Plumrocket_Base</name><channel>community</channel><min
|
| 18 |
</package>
|
| 1 |
<?xml version="1.0"?>
|
| 2 |
<package>
|
| 3 |
<name>Plumrocket_Auto_Invoice</name>
|
| 4 |
+
<version>1.1.0</version>
|
| 5 |
<stability>stable</stability>
|
| 6 |
<license uri="http://wiki.plumrocket.net/wiki/EULA">End-user License Agreement</license>
|
| 7 |
<channel>community</channel>
|
| 8 |
<extends/>
|
| 9 |
<summary>Plumrocket Auto Invoice is a convenient Magento payment processing module that was designed to generate invoice automatically.</summary>
|
| 10 |
<description>Plumrocket Auto Invoice is a convenient Magento payment processing module that was designed to generate invoice automatically. After a client confirms his order the system will send the invoice automatically thus allowing website admin to avoid manual processing of payment transactions.</description>
|
| 11 |
+
<notes>Added automated email sending while creating separate invoices.</notes>
|
| 12 |
<authors><author><name>Plumrocket Team</name><user>plumrocket</user><email>support@plumrocket.com</email></author></authors>
|
| 13 |
+
<date>2016-03-18</date>
|
| 14 |
+
<time>10:02:23</time>
|
| 15 |
+
<contents><target name="mageetc"><dir name="modules"><file name="Plumrocket_AutoInvoice.xml" hash="19002966d54dd644d1b01d67a9d8d7d3"/></dir></target><target name="magecommunity"><dir name="Plumrocket"><dir name="AutoInvoice"><dir name="Block"><dir name="System"><dir name="Config"><file name="Version.php" hash="1f60ec9ef1680266bd639c41a7802177"/></dir></dir></dir><dir name="Helper"><file name="Data.php" hash="a95ccea81b14cca001f89e1da4750ace"/><file name="Main.php" hash="283bdec0fceed57707c86908631e9a2d"/></dir><dir name="Model"><file name="Observer.php" hash="21041cfb6c59ca3d75df3218a239c1a5"/><dir name="System"><dir name="Config"><dir name="Source"><file name="CaptureAmount.php" hash="28a27588ddd56fbbab43f09e31a9bac8"/><file name="SendInvoice.php" hash="8d19c278d460f27a0d23e2fa8b9d072f"/></dir></dir></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="e45a29110a7ea4ed9e26535cca2f47a4"/><file name="config.xml" hash="daab0e2ac4f2b6b5482f2d59dcca6949"/><file name="system.xml" hash="fd42373f949ccad34b233f61cf31479b"/></dir></dir></dir></target></contents>
|
| 16 |
<compatible/>
|
| 17 |
+
<dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php><package><name>Plumrocket_Base</name><channel>community</channel><min/><max/></package></required></dependencies>
|
| 18 |
</package>
|
