Mage_Exactor_Tax - Version 2015.03.31

Version Notes

Supported Magento 1.5.0.0 - 1.7.x, Magento Enterprise 1.8-1.12.x

Download this release

Release Info

Developer Exactor, Inc.
Extension Mage_Exactor_Tax
Version 2015.03.31
Comparing to
See all releases


Code changes from version 2014.12.15 to 2015.03.31

app/code/local/ZzzzzExactor/Sales/Model/Observer.php CHANGED
@@ -357,6 +357,9 @@ class ZzzzzExactor_Sales_Model_Observer
357
  */
358
  private function applyTaxPercent($quoteItem, $resultItem)
359
  {
 
 
 
360
  $taxPercent = 0;
361
  foreach ($resultItem->getTaxInfo() as $taxInfo) {
362
  $taxPercent += $taxInfo->getTaxRate();
357
  */
358
  private function applyTaxPercent($quoteItem, $resultItem)
359
  {
360
+ if (!$resultItem->getTaxInfo()) {
361
+ return;
362
+ }
363
  $taxPercent = 0;
364
  foreach ($resultItem->getTaxInfo() as $taxInfo) {
365
  $taxPercent += $taxInfo->getTaxRate();
app/code/local/ZzzzzExactor/Tax/Helper/Mapping.php CHANGED
@@ -436,12 +436,13 @@ class ZzzzzExactor_Tax_Helper_Mapping extends Mage_Core_Helper_Abstract
436
  if (!$this->isDiscountExempt($magentoItem)) {
437
  $this->applyDiscountToLineItem($lineItem, $magentoItem->getDiscountAmount());
438
  }
439
- // Check if it is bundle or groped product
440
  $product = $magentoItem->getProduct();
441
  if (empty($product) && $magentoItem->getOrderItem() != null) {
442
  $product = $magentoItem->getOrderItem()->getProduct();
443
  }
444
- if (empty($product) && $magentoItem->getProductId() != null) {
 
445
  $product = Mage::getModel('catalog/product')
446
  ->setStoreId($magentoItem->getStoreId())
447
  ->load($magentoItem->getProductId());
@@ -453,6 +454,11 @@ class ZzzzzExactor_Tax_Helper_Mapping extends Mage_Core_Helper_Abstract
453
  return null; // Doesn't show it in the Exactor transaction.
454
  }
455
  }
 
 
 
 
 
456
  return $lineItem;
457
  }
458
 
@@ -969,4 +975,51 @@ class ZzzzzExactor_Tax_Helper_Mapping extends Mage_Core_Helper_Abstract
969
  return $this->isAddessFullyPopulated($invoice->getShipTo());
970
  //&& $this->isAddessFullyPopulated($invoice->getBillTo());
971
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
972
  }
436
  if (!$this->isDiscountExempt($magentoItem)) {
437
  $this->applyDiscountToLineItem($lineItem, $magentoItem->getDiscountAmount());
438
  }
439
+ // Check if it is bundle or grouped product
440
  $product = $magentoItem->getProduct();
441
  if (empty($product) && $magentoItem->getOrderItem() != null) {
442
  $product = $magentoItem->getOrderItem()->getProduct();
443
  }
444
+ $isSfcDropshipCommerceModuleEnabled = $this->isSfcDropshipCommerceModuleEnabled();
445
+ if ($magentoItem->getProductId() != null && (empty($product) || $isSfcDropshipCommerceModuleEnabled)) {
446
  $product = Mage::getModel('catalog/product')
447
  ->setStoreId($magentoItem->getStoreId())
448
  ->load($magentoItem->getProductId());
454
  return null; // Doesn't show it in the Exactor transaction.
455
  }
456
  }
457
+
458
+ if ($isSfcDropshipCommerceModuleEnabled) {
459
+ $lineItem->setShipFrom($this->buildExactorAddressForProductShipFrom($product));
460
+ }
461
+
462
  return $lineItem;
463
  }
464
 
975
  return $this->isAddessFullyPopulated($invoice->getShipTo());
976
  //&& $this->isAddessFullyPopulated($invoice->getBillTo());
977
  }
978
+
979
+ //region SFC_DropshipCommerce related methods
980
+ /**
981
+ * Designed to be used in getSupplierShipFromAddress only. Represents supplier address per request cache.
982
+ * @var array {supplierId(int):shipFrom(AddressType)}
983
+ */
984
+ private $supplierCache = array();
985
+
986
+ private function getSupplierShipFromAddress($supplierId)
987
+ {
988
+ if (array_key_exists($supplierId, $this->supplierCache)) {
989
+ return $this->supplierCache[$supplierId];
990
+ }
991
+ /** @var SFC_DropshipCommerce_Model_Supplier $supplier */
992
+ $supplier = Mage::getModel('dropshipcommerce/supplier')->load($supplierId);
993
+ $shipFrom = $this->buildExactorAddressForSupplier($supplier);
994
+ $this->supplierCache[$supplierId] = $shipFrom;
995
+ return $shipFrom;
996
+ }
997
+
998
+ /**
999
+ * @param Mage_Catalog_Model_Product $product
1000
+ * @return AddressType|null
1001
+ */
1002
+ private function buildExactorAddressForProductShipFrom($product)
1003
+ {
1004
+ if ($product == null) return null;
1005
+ $exactorAddress = new AddressType();
1006
+ $exactorAddress->setFullName($product->getData('ship_from_attention'));
1007
+ $exactorAddress->setStreet1($product->getData('ship_from_address_1'));
1008
+ $exactorAddress->setStreet2($product->getData('ship_from_address_2'));
1009
+ $exactorAddress->setCity($product->getData('ship_from_city'));
1010
+ $exactorAddress->setStateOrProvince($product->getData('ship_from_state'));
1011
+ $exactorAddress->setPostalCode($product->getData('ship_from_postal_code'));
1012
+ $exactorAddress->setCountry($product->getData('ship_from_country'));
1013
+ if (!$exactorAddress->hasData()) return null;
1014
+ return $exactorAddress;
1015
+ }
1016
+
1017
+ /**
1018
+ * @return bool true if SFC_DropshipCommerce module enabled, false otherwise
1019
+ */
1020
+ private function isSfcDropshipCommerceModuleEnabled()
1021
+ {
1022
+ return Mage::helper('core')->isModuleEnabled('SFC_DropshipCommerce');
1023
+ }
1024
+ //endregion
1025
  }
app/code/local/ZzzzzExactor/Tax/Model/Sales/Total/Quote/Tax.php CHANGED
@@ -252,6 +252,9 @@ class ZzzzzExactor_Tax_Model_Sales_Total_Quote_Tax extends Mage_Sales_Model_Quot
252
  */
253
  private function applyTaxPercent($quoteItem, $resultItem)
254
  {
 
 
 
255
  $taxPercent = 0;
256
  foreach ($resultItem->getTaxInfo() as $taxInfo) {
257
  $taxPercent += $taxInfo->getTaxRate();
252
  */
253
  private function applyTaxPercent($quoteItem, $resultItem)
254
  {
255
+ if (!$resultItem->getTaxInfo()) {
256
+ return;
257
+ }
258
  $taxPercent = 0;
259
  foreach ($resultItem->getTaxInfo() as $taxInfo) {
260
  $taxPercent += $taxInfo->getTaxRate();
lib/ExactorCommons/ExactorCommons.php CHANGED
@@ -6,7 +6,8 @@
6
  * Time: 5:33 PM
7
  */
8
 
9
- abstract class IExactorLogger{
 
10
 
11
  const TRACE = 0;
12
  const DEBUG = 1;
@@ -15,32 +16,48 @@ abstract class IExactorLogger{
15
 
16
  private $logLevel = self::INFO;
17
  private $loggerName = 'root';
18
- protected abstract function doOutput($body);
19
 
20
- public function log($message, $callee=null, $level=self::DEBUG){
 
 
 
21
 
22
  // Check if we should just skip this message on our Log Level
23
  if ($level < $this->getLogLevel()) return;
24
 
25
- if ($callee==null)
26
  $callee = '';
27
- $time = new DateTime();
28
- $this->doOutput('[' . $time->format('Y-m-d H:i:s') . '] ' . $this->getLoggerName() . ' - ' . $callee . ': ' . $message . "\n") ;
 
 
 
 
 
 
 
 
 
 
29
  }
30
 
31
- public function debug($msg, $callee=null){
 
32
  $this->log($msg, $callee, self::DEBUG);
33
  }
34
 
35
- public function trace($msg, $callee=null){
 
36
  $this->log($msg, $callee, self::TRACE);
37
  }
38
 
39
- public function info($msg, $callee=null){
 
40
  $this->log($msg, $callee, self::INFO);
41
  }
42
 
43
- public function error($msg, $callee=null){
 
44
  $this->log($msg, $callee, self::ERROR);
45
  }
46
 
@@ -56,7 +73,7 @@ abstract class IExactorLogger{
56
 
57
  public function setLoggerName($loggerName)
58
  {
59
- if (!is_string($loggerName)){ // This is not class name
60
  $loggerName = get_class($loggerName); // Get class name
61
  }
62
  $this->loggerName = $loggerName;
@@ -68,12 +85,12 @@ abstract class IExactorLogger{
68
  }
69
  }
70
 
71
- class ExactorFakeLogger extends IExactorLogger{
72
- protected function doOutput($body)
 
73
  {
74
  // Just do nothing
75
  }
76
-
77
  }
78
 
79
  class ExactorLoggingFactory{
6
  * Time: 5:33 PM
7
  */
8
 
9
+ abstract class IExactorLogger
10
+ {
11
 
12
  const TRACE = 0;
13
  const DEBUG = 1;
16
 
17
  private $logLevel = self::INFO;
18
  private $loggerName = 'root';
 
19
 
20
+ protected abstract function doOutput($message, $callee, $level, $time);
21
+
22
+ public function log($message, $callee = null, $level = self::DEBUG)
23
+ {
24
 
25
  // Check if we should just skip this message on our Log Level
26
  if ($level < $this->getLogLevel()) return;
27
 
28
+ if ($callee == null)
29
  $callee = '';
30
+ $this->doOutput($message, $callee, $level, new DateTime());
31
+ }
32
+
33
+ /**
34
+ * @param $message string
35
+ * @param $callee string
36
+ * @param $time DateTime
37
+ * @return string in default log format
38
+ */
39
+ protected function format($message, $callee, $time)
40
+ {
41
+ return '[' . $time->format('Y-m-d H:i:s') . '] ' . $this->getLoggerName() . ' - ' . $callee . ': ' . $message . "\n";
42
  }
43
 
44
+ public function debug($msg, $callee = null)
45
+ {
46
  $this->log($msg, $callee, self::DEBUG);
47
  }
48
 
49
+ public function trace($msg, $callee = null)
50
+ {
51
  $this->log($msg, $callee, self::TRACE);
52
  }
53
 
54
+ public function info($msg, $callee = null)
55
+ {
56
  $this->log($msg, $callee, self::INFO);
57
  }
58
 
59
+ public function error($msg, $callee = null)
60
+ {
61
  $this->log($msg, $callee, self::ERROR);
62
  }
63
 
73
 
74
  public function setLoggerName($loggerName)
75
  {
76
+ if (!is_string($loggerName)) { // This is not class name
77
  $loggerName = get_class($loggerName); // Get class name
78
  }
79
  $this->loggerName = $loggerName;
85
  }
86
  }
87
 
88
+ class ExactorFakeLogger extends IExactorLogger
89
+ {
90
+ protected function doOutput($message, $callee, $level, $time)
91
  {
92
  // Just do nothing
93
  }
 
94
  }
95
 
96
  class ExactorLoggingFactory{
lib/ExactorCommons/Magento.php CHANGED
@@ -1,18 +1,30 @@
1
  <?php
 
2
  /**
3
  * User: LOGICIFY\corvis
4
  * Date: 4/20/12
5
  * Time: 10:39 AM
6
  */
7
-
8
- class MagentoLogger extends IExactorLogger{
9
- protected function doOutput($body)
 
 
 
 
 
 
 
10
  {
11
- echo Mage::Log($body);
 
 
 
12
  }
13
  }
14
 
15
- class MagentoExactorCallback extends IExactorPluginCallback{
 
16
 
17
  private $logger;
18
  /**
@@ -20,7 +32,8 @@ class MagentoExactorCallback extends IExactorPluginCallback{
20
  */
21
  private $sessionCache;
22
 
23
- public function __construct(){
 
24
  $this->logger = ExactorLoggingFactory::getInstance()->getLogger($this);
25
  $this->sessionCache = Mage::helper('ZzzzzExactor_Core_SessionCache/');
26
  }
@@ -34,9 +47,9 @@ class MagentoExactorCallback extends IExactorPluginCallback{
34
  function loadTransactionInfo($shoppingCartTrnId)
35
  {
36
  $this->logger->trace('called', 'loadTransactionInfo');
37
- /** @var ZzzzzExactor_Core_Model_ExactorTransaction $exatorTransaction */
38
  $exatorTransaction = Mage::getModel('ZzzzzExactor_Core_Model_ExactorTransaction');
39
- $exatorTransaction = $exatorTransaction->getCollection()->addFilter("OrderID",$shoppingCartTrnId)->getFirstItem();
40
  if (!$exatorTransaction->hasData()) return null;
41
  // Populating common object with DB dat
42
  $transactionInfo = new ExactorTransactionInfo();
@@ -61,10 +74,10 @@ class MagentoExactorCallback extends IExactorPluginCallback{
61
  function saveTransactionInfo(ExactorTransactionInfo $transactionInfo, $requestKey)
62
  {
63
  $this->logger->trace('called', 'saveTransactionInfo');
64
- /** @var ZzzzzExactor_Core_Model_ExactorTransaction $exatorTransaction */
65
  $exatorTransaction = Mage::getModel('ZzzzzExactor_Core_Model_ExactorTransaction');
66
  $exatorTransaction = $exatorTransaction->getCollection()
67
- ->addFilter("OrderID",$transactionInfo->getShoppingCartTrnId())->getFirstItem();
68
  if (!$exatorTransaction->hasData()) $exatorTransaction = Mage::getModel('ZzzzzExactor_Core_Model_ExactorTransaction');
69
 
70
  $transactionInfo->setSignature($requestKey);
1
  <?php
2
+
3
  /**
4
  * User: LOGICIFY\corvis
5
  * Date: 4/20/12
6
  * Time: 10:39 AM
7
  */
8
+ class MagentoLogger extends IExactorLogger
9
+ {
10
+ private static $severity_mapping = array(
11
+ self::TRACE => Zend_Log::DEBUG,
12
+ self::DEBUG => Zend_Log::DEBUG,
13
+ self::INFO => Zend_Log::INFO,
14
+ self::ERROR => Zend_Log::ERR
15
+ );
16
+
17
+ protected function doOutput($message, $callee, $level, $time)
18
  {
19
+ if ($callee) {
20
+ $callee = ' - ' . $callee;
21
+ }
22
+ Mage::Log($this->getLoggerName() . $callee . ': ' . $message, self::$severity_mapping[$level], "exactor.log");
23
  }
24
  }
25
 
26
+ class MagentoExactorCallback extends IExactorPluginCallback
27
+ {
28
 
29
  private $logger;
30
  /**
32
  */
33
  private $sessionCache;
34
 
35
+ public function __construct()
36
+ {
37
  $this->logger = ExactorLoggingFactory::getInstance()->getLogger($this);
38
  $this->sessionCache = Mage::helper('ZzzzzExactor_Core_SessionCache/');
39
  }
47
  function loadTransactionInfo($shoppingCartTrnId)
48
  {
49
  $this->logger->trace('called', 'loadTransactionInfo');
50
+ /** @var ZzzzzExactor_Core_Model_ExactorTransaction $exatorTransaction */
51
  $exatorTransaction = Mage::getModel('ZzzzzExactor_Core_Model_ExactorTransaction');
52
+ $exatorTransaction = $exatorTransaction->getCollection()->addFilter("OrderID", $shoppingCartTrnId)->getFirstItem();
53
  if (!$exatorTransaction->hasData()) return null;
54
  // Populating common object with DB dat
55
  $transactionInfo = new ExactorTransactionInfo();
74
  function saveTransactionInfo(ExactorTransactionInfo $transactionInfo, $requestKey)
75
  {
76
  $this->logger->trace('called', 'saveTransactionInfo');
77
+ /** @var ZzzzzExactor_Core_Model_ExactorTransaction $exatorTransaction */
78
  $exatorTransaction = Mage::getModel('ZzzzzExactor_Core_Model_ExactorTransaction');
79
  $exatorTransaction = $exatorTransaction->getCollection()
80
+ ->addFilter("OrderID", $transactionInfo->getShoppingCartTrnId())->getFirstItem();
81
  if (!$exatorTransaction->hasData()) $exatorTransaction = Mage::getModel('ZzzzzExactor_Core_Model_ExactorTransaction');
82
 
83
  $transactionInfo->setSignature($requestKey);
lib/ExactorCommons/config.php CHANGED
@@ -23,7 +23,7 @@ define('EXACTOR_CONFIG_ALWAYS_OVERRIDE_TAX', 'always-override-tax');
23
 
24
  /* Initializing factories */
25
  ExactorLoggingFactory::getInstance()->setup('MagentoLogger', IExactorLogger::DEBUG);
26
- ExactorConnectionFactory::getInstance()->setup('Magento','20141215');
27
  ExactorProcessingServiceFactory::getInstance()->setup(new MagentoExactorCallback());
28
 
29
  /* Initializing configuration object */
23
 
24
  /* Initializing factories */
25
  ExactorLoggingFactory::getInstance()->setup('MagentoLogger', IExactorLogger::DEBUG);
26
+ ExactorConnectionFactory::getInstance()->setup('Magento','20150331');
27
  ExactorProcessingServiceFactory::getInstance()->setup(new MagentoExactorCallback());
28
 
29
  /* Initializing configuration object */
package.xml CHANGED
@@ -1,7 +1,7 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Mage_Exactor_Tax</name>
4
- <version>2014.12.15</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>
@@ -12,9 +12,9 @@ Once installed, neither the merchant, nor the customer, need to perform any addi
12
  For additional information, please refer to the Exactor Magento User Guide that is attached to the plug-in, or which you can download directly from the Exactor control panel (navigate to Account Management Integration Points &amp; PlugIns).</description>
13
  <notes>Supported Magento 1.5.0.0 - 1.7.x, Magento Enterprise 1.8-1.12.x</notes>
14
  <authors><author><name>Exactor, Inc.</name><user>exactor</user><email>support@exactor.com</email></author></authors>
15
- <date>2014-12-15</date>
16
- <time>13:23:10</time>
17
- <contents><target name="magelocal"><dir name="ZzzzzExactor"><dir name="Core"><dir name="Helper"><file name="SessionCache.php" hash="4a48ea63099201bc04581febe21b7237"/></dir><dir name="Model"><file name="ExactorTransaction.php" hash="aee2205ef1e8b58fe8fead7385af2fdd"/><file name="MerchantSettings.php" hash="b58bcf01d15af966358aa1e0f27b9fbe"/><dir name="Mysql4"><dir name="ExactorTransaction"><file name="Collection.php" hash="5078855300f1b8895c5429fb10f37854"/></dir><file name="ExactorTransaction.php" hash="4b8f45cc739ac05b71be3f38c0138109"/><dir name="MerchantSettings"><file name="Collection.php" hash="4c7e905444d9f02c1e82033cd147afc5"/></dir><file name="MerchantSettings.php" hash="fd98ded15c7dde7bcc1746a40c24aa85"/></dir><dir name="Type"><file name="Onepage.php" hash="8c9c744d769f4064dcc344d4d474dd2a"/></dir></dir><dir name="etc"><file name="config.xml" hash="654bd7d22e5a308722d8769a1233ad80"/></dir></dir><dir name="ExactorSettings"><dir name="Block"><file name="Form.php" hash="3189371ce1fca8f2ff72b165da762e2e"/></dir><dir name="Helper"><file name="Data.php" hash="08ff0be3da068e35731d5cbcb5ca031d"/><file name="VersionResolver.php" hash="e05646123b776551295cdc1050eb80a0"/></dir><dir name="controllers"><dir name="Adminhtml"><file name="FormController.php" hash="83e0faaffe8a93e4fbccf9e0c0b4914f"/></dir><file name="AjaxController.php" hash="e0a9122472eebdf2ba9d703b35e528e6"/><file name="IndexController.php" hash="064275cda39bf28a23f0e30cda85d546"/></dir><dir name="etc"><file name="config.xml" hash="63ed7c63ac663fa72b1a645275499c34"/></dir><dir name="sql"><dir name="ExactorSettings_setup"><file name="mysql4-install-14.04.2012.php" hash="171dcba8395c21dccd336c86cd92db5d"/><file name="upgrade-2012.06.14-2012.09.25.php" hash="217c13f3fecf41decff7f0cbc908f0f8"/></dir></dir></dir><dir name="Sales"><dir name="Model"><file name="Observer.php" hash="86c86c20e78a01e8cd22d6d1c9b9f245"/></dir><dir name="etc"><file name="config.xml" hash="20483c2cc3730e5ea279023ef47c3d14"/></dir></dir><dir name="Tax"><dir name="Helper"><file name="Calculation.php" hash="30378738db4beea10d7caeb256018be6"/><file name="Mapping.php" hash="d8fdb3bec42806f6f66f0a40b5445662"/></dir><dir name="Model"><dir name="Sales"><dir name="Total"><dir name="Quote"><dir name="Nominal"><file name="Tax.php" hash="46e0b7698aee6354278cf59d34192d2d"/></dir><file name="Tax.php" hash="dbdb8a2b0292c7c58646ac27bf99e78c"/></dir></dir></dir></dir><dir name="etc"><file name="config.xml" hash="1c3235fa291ec1d81855a5015376cf51"/></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="exactorsettings.xml" hash="c6411fb02004382e2bde340e2eea8ba1"/><file name="exactoronestepcheckout.xml" hash="9fdfa1db5e4e60b4eec8f348c10aab07"/></dir><dir name="template"><dir name="ExactorSettings"><file name="settingsform.phtml" hash="c423218861b708c3d572ac77623c6280"/></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="exactoronestepcheckout.xml" hash="9fdfa1db5e4e60b4eec8f348c10aab07"/></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="ZzzzzExactor.xml" hash="d5d93cb5e6608f3cf87f5a57ed1448c7"/></dir></target><target name="mageweb"><dir name="js"><dir name="exactor"><file name="exactor.js" hash="5c23e40f4034e50a6e0df5b1c708b7e1"/></dir></dir></target><target name="magelib"><dir name="ExactorCommons"><file name="ExactorCommons.php" hash="636fc1508daf618d434a35ee8f2b3a1a"/><file name="ExactorDomainObjects.php" hash="c708118429f6bea5c5c3a9c4caf28e99"/><file name="Magento.php" hash="07fe9cf20e5368ac6c6dee45c26a07f8"/><file name="RegionResolver.php" hash="2537638a7895a169cee4b1df786d22fb"/><file name="XmlProcessing.php" hash="1fe961d5c14d507b2bb82fd3dd94237c"/><file name="config.php" hash="2a88d63b086db1a1620cbbcc24fe2be5"/></dir></target></contents>
18
  <compatible/>
19
  <dependencies><required><php><min>5.0.0</min><max>6.0.0</max></php></required></dependencies>
20
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Mage_Exactor_Tax</name>
4
+ <version>2015.03.31</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>
12
  For additional information, please refer to the Exactor Magento User Guide that is attached to the plug-in, or which you can download directly from the Exactor control panel (navigate to Account Management Integration Points &amp; PlugIns).</description>
13
  <notes>Supported Magento 1.5.0.0 - 1.7.x, Magento Enterprise 1.8-1.12.x</notes>
14
  <authors><author><name>Exactor, Inc.</name><user>exactor</user><email>support@exactor.com</email></author></authors>
15
+ <date>2015-03-31</date>
16
+ <time>08:32:56</time>
17
+ <contents><target name="magelocal"><dir name="ZzzzzExactor"><dir name="Core"><dir name="Helper"><file name="SessionCache.php" hash="4a48ea63099201bc04581febe21b7237"/></dir><dir name="Model"><file name="ExactorTransaction.php" hash="aee2205ef1e8b58fe8fead7385af2fdd"/><file name="MerchantSettings.php" hash="b58bcf01d15af966358aa1e0f27b9fbe"/><dir name="Mysql4"><dir name="ExactorTransaction"><file name="Collection.php" hash="5078855300f1b8895c5429fb10f37854"/></dir><file name="ExactorTransaction.php" hash="4b8f45cc739ac05b71be3f38c0138109"/><dir name="MerchantSettings"><file name="Collection.php" hash="4c7e905444d9f02c1e82033cd147afc5"/></dir><file name="MerchantSettings.php" hash="fd98ded15c7dde7bcc1746a40c24aa85"/></dir><dir name="Type"><file name="Onepage.php" hash="8c9c744d769f4064dcc344d4d474dd2a"/></dir></dir><dir name="etc"><file name="config.xml" hash="654bd7d22e5a308722d8769a1233ad80"/></dir></dir><dir name="ExactorSettings"><dir name="Block"><file name="Form.php" hash="3189371ce1fca8f2ff72b165da762e2e"/></dir><dir name="Helper"><file name="Data.php" hash="08ff0be3da068e35731d5cbcb5ca031d"/><file name="VersionResolver.php" hash="e05646123b776551295cdc1050eb80a0"/></dir><dir name="controllers"><dir name="Adminhtml"><file name="FormController.php" hash="83e0faaffe8a93e4fbccf9e0c0b4914f"/></dir><file name="AjaxController.php" hash="e0a9122472eebdf2ba9d703b35e528e6"/><file name="IndexController.php" hash="064275cda39bf28a23f0e30cda85d546"/></dir><dir name="etc"><file name="config.xml" hash="63ed7c63ac663fa72b1a645275499c34"/></dir><dir name="sql"><dir name="ExactorSettings_setup"><file name="mysql4-install-14.04.2012.php" hash="171dcba8395c21dccd336c86cd92db5d"/><file name="upgrade-2012.06.14-2012.09.25.php" hash="217c13f3fecf41decff7f0cbc908f0f8"/></dir></dir></dir><dir name="Sales"><dir name="Model"><file name="Observer.php" hash="0b17d3af621eaecba8307a1b8dceb75a"/></dir><dir name="etc"><file name="config.xml" hash="20483c2cc3730e5ea279023ef47c3d14"/></dir></dir><dir name="Tax"><dir name="Helper"><file name="Calculation.php" hash="30378738db4beea10d7caeb256018be6"/><file name="Mapping.php" hash="4573f592518b32247ff812edc8e0aeec"/></dir><dir name="Model"><dir name="Sales"><dir name="Total"><dir name="Quote"><dir name="Nominal"><file name="Tax.php" hash="46e0b7698aee6354278cf59d34192d2d"/></dir><file name="Tax.php" hash="fd51a300f74a5d74ce7ef0564dd1b928"/></dir></dir></dir></dir><dir name="etc"><file name="config.xml" hash="1c3235fa291ec1d81855a5015376cf51"/></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="exactorsettings.xml" hash="c6411fb02004382e2bde340e2eea8ba1"/><file name="exactoronestepcheckout.xml" hash="9fdfa1db5e4e60b4eec8f348c10aab07"/></dir><dir name="template"><dir name="ExactorSettings"><file name="settingsform.phtml" hash="c423218861b708c3d572ac77623c6280"/></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="exactoronestepcheckout.xml" hash="9fdfa1db5e4e60b4eec8f348c10aab07"/></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="ZzzzzExactor.xml" hash="d5d93cb5e6608f3cf87f5a57ed1448c7"/></dir></target><target name="mageweb"><dir name="js"><dir name="exactor"><file name="exactor.js" hash="5c23e40f4034e50a6e0df5b1c708b7e1"/></dir></dir></target><target name="magelib"><dir name="ExactorCommons"><file name="ExactorCommons.php" hash="167d88ecdd599a2445f394f46293db7c"/><file name="ExactorDomainObjects.php" hash="c708118429f6bea5c5c3a9c4caf28e99"/><file name="Magento.php" hash="190c773212f194297550d36ef404cf5b"/><file name="RegionResolver.php" hash="2537638a7895a169cee4b1df786d22fb"/><file name="XmlProcessing.php" hash="1fe961d5c14d507b2bb82fd3dd94237c"/><file name="config.php" hash="82adf99c19353622606bac865ea8628c"/></dir></target></contents>
18
  <compatible/>
19
  <dependencies><required><php><min>5.0.0</min><max>6.0.0</max></php></required></dependencies>
20
  </package>