MT_Giftcard - Version 1.1.2

Version Notes

Currency fix
Gift Card Data form sales_flat_quote moved to mt_giftcard_quote
Gift Card Data form sales_flat_order moved to mt_giftcard_order

Download this release

Release Info

Developer Edvinas Stulpinas
Extension MT_Giftcard
Version 1.1.2
Comparing to
See all releases


Code changes from version 1.1.1 to 1.1.2

Files changed (43) hide show
  1. app/code/community/MT/Giftcard/Block/Adminhtml/Sales/Creditmemo/Create/Total/Giftcard.php +38 -74
  2. app/code/community/MT/Giftcard/Block/Adminhtml/Sales/Invoice/Total/Giftcard.php +32 -0
  3. app/code/community/MT/Giftcard/Block/Adminhtml/Sales/Total/Giftcard.php +40 -29
  4. app/code/community/MT/Giftcard/Block/Checkout/Cart/Giftcard.php +44 -56
  5. app/code/community/MT/Giftcard/Block/Payment/Giftcard/Form.php +9 -0
  6. app/code/community/MT/Giftcard/Block/Payment/Giftcard/Form/Giftcard.php +4 -1
  7. app/code/community/MT/Giftcard/Block/Sales/Order/Creditmemo/Totals/Giftcard.php +42 -0
  8. app/code/community/MT/Giftcard/Block/Sales/Order/Email/Items/Invoice/Giftcard.php +36 -36
  9. app/code/community/MT/Giftcard/Block/Sales/Order/Email/Items/Order/Giftcard.php +36 -36
  10. app/code/community/MT/Giftcard/Block/Sales/Order/Info/Buttons.php +25 -25
  11. app/code/community/MT/Giftcard/Block/Sales/Order/Item/Renderer/Giftcard.php +34 -34
  12. app/code/community/MT/Giftcard/Block/Sales/Order/Totals/Giftcard.php +28 -28
  13. app/code/community/MT/Giftcard/Helper/Data.php +111 -160
  14. app/code/community/MT/Giftcard/Model/Core/Email/Template.php +80 -57
  15. app/code/community/MT/Giftcard/Model/Core/Email/Template/Init.php +4 -1
  16. app/code/community/MT/Giftcard/Model/Giftcard.php +202 -129
  17. app/code/community/MT/Giftcard/Model/Giftcard/Action.php +155 -152
  18. app/code/community/MT/Giftcard/Model/Observer.php +189 -198
  19. app/code/community/MT/Giftcard/Model/Order.php +87 -0
  20. app/code/community/MT/Giftcard/Model/Quote.php +195 -0
  21. app/code/community/MT/Giftcard/Model/Resource/Giftcard/Collection.php +0 -1
  22. app/code/community/MT/Giftcard/Model/Resource/Order.php +8 -0
  23. app/code/community/MT/Giftcard/Model/Resource/Order/Collection.php +9 -0
  24. app/code/community/MT/Giftcard/Model/Resource/Quote.php +8 -0
  25. app/code/community/MT/Giftcard/Model/Resource/Quote/Collection.php +9 -0
  26. app/code/community/MT/Giftcard/Model/Resource/Series.php +0 -1
  27. app/code/community/MT/Giftcard/Model/Resource/Series/Collection.php +0 -2
  28. app/code/community/MT/Giftcard/Model/Sales/Order/Creditmemo/Total/Giftcard.php +14 -19
  29. app/code/community/MT/Giftcard/Model/Sales/Quote/Total/Giftcard.php +44 -53
  30. app/code/community/MT/Giftcard/Model/Series.php +5 -0
  31. app/code/community/MT/Giftcard/controllers/Checkout/CartController.php +225 -312
  32. app/code/community/MT/Giftcard/etc/adminhtml.xml +20 -1
  33. app/code/community/MT/Giftcard/etc/config.xml +352 -353
  34. app/code/community/MT/Giftcard/sql/giftcard_setup/mysql4-upgrade-1.1.1-1.1.2.php +40 -0
  35. app/design/adminhtml/default/default/layout/mt/giftcard.xml +157 -188
  36. app/design/adminhtml/default/default/template/mt/giftcard/sales/creditmemo/create/total/giftcard.phtml +28 -14
  37. app/design/frontend/base/default/layout/mt/giftcard.xml +173 -116
  38. app/design/frontend/base/default/template/mt/giftcard/checkout/cart/giftcard.phtml +74 -68
  39. app/design/frontend/base/default/template/mt/giftcard/payment/giftcard/form.phtml +8 -1
  40. app/design/frontend/base/default/template/mt/giftcard/payment/giftcard/form/giftcard.phtml +13 -2
  41. package.xml +8 -5
  42. skin/frontend/base/default/css/mt/giftcard/giftcard.css +3 -1
  43. skin/frontend/base/default/js/mt/giftcard/giftcardcheckout.js +116 -111
app/code/community/MT/Giftcard/Block/Adminhtml/Sales/Creditmemo/Create/Total/Giftcard.php CHANGED
@@ -1,75 +1,39 @@
1
- <?php
2
-
3
- class MT_Giftcard_Block_Adminhtml_Sales_Creditmemo_Create_Total_Giftcard
4
- extends Mage_Core_Block_Template
5
- {
6
- protected $_giftCardArray = null;
7
-
8
- public function initTotals()
9
- {
10
- $parent = $this->getParentBlock();
11
- $giftCards = $this->getGiftCardArray();
12
- if (!$giftCards)
13
- return $this;
14
-
15
- $total = new Varien_Object(array(
16
- 'code' => 'mt_gift_card_total',
17
- 'block_name' => 'gift_card_total'
18
- ));
19
-
20
- $parent->addTotal($total);
21
- return $this;
22
- }
23
-
24
-
25
- public function getGiftCardArray()
26
- {
27
- if ($this->_giftCardArray == null) {
28
- $parent = $this->getParentBlock();
29
- $order = $parent->getOrder();
30
- $giftCards = $order->getMtGiftCard();
31
- if (empty($giftCards))
32
- return false;
33
-
34
- $giftCards = unserialize($giftCards);
35
-
36
- if (!$giftCards)
37
- return false;
38
-
39
- foreach ($giftCards as $key => $giftCard) {
40
- if (!isset($giftCard['code'])) {
41
- unset($giftCard[$key]);
42
- continue;
43
- }
44
-
45
- $model = Mage::getModel('giftcard/giftcard')->loadByCode($giftCard['code']);
46
- if (!is_numeric($model->getId())) {
47
- unset($giftCards[$key]);
48
- continue;
49
- }
50
-
51
-
52
- $giftCards[$key]['source'] = $model;
53
- $giftCards[$key]['total'] = 0;
54
-
55
- if (isset($giftCard['discount']))
56
- $giftCards[$key]['total'] = $giftCard['discount']*-1;
57
-
58
- if (isset($giftCard['refunded']))
59
- $giftCards[$key]['total']-=$giftCard['refunded'];
60
-
61
- if ($giftCards[$key]['total'] < 0)
62
- $giftCards[$key]['total'] = 0;
63
-
64
- $giftCards[$key]['total'] = Mage::getModel('directory/currency')->format(
65
- $giftCards[$key]['total'],
66
- array('display'=>Zend_Currency::NO_SYMBOL),
67
- false
68
- );
69
- }
70
- $this->_giftCardArray = $giftCards;
71
- }
72
-
73
- return $this->_giftCardArray;
74
- }
75
  }
1
+ <?php
2
+
3
+ class MT_Giftcard_Block_Adminhtml_Sales_Creditmemo_Create_Total_Giftcard
4
+ extends Mage_Core_Block_Template
5
+ {
6
+ private $__giftCardOrderCollection = null;
7
+
8
+ public function initTotals()
9
+ {
10
+ $giftCards = $this->getGiftCardOrderCollection();
11
+ if ($giftCards->count() == 0)
12
+ return $this;
13
+
14
+ $total = new Varien_Object(array(
15
+ 'code' => 'mt_gift_card_total',
16
+ 'block_name' => 'gift_card_total'
17
+ ));
18
+
19
+ $parent = $this->getParentBlock();
20
+ $parent->addTotal($total);
21
+ return $this;
22
+ }
23
+
24
+ public function getOrder()
25
+ {
26
+ $parent = $this->getParentBlock();
27
+ return $parent->getOrder();
28
+ }
29
+
30
+ public function getGiftCardOrderCollection()
31
+ {
32
+ if ($this->__giftCardOrderCollection == null) {
33
+ $order = $this->getOrder();
34
+ $collection = Mage::getModel('giftcard/order')->getCollectionByOrderId($order->getId());
35
+ $this->__giftCardOrderCollection = $collection;
36
+ }
37
+ return $this->__giftCardOrderCollection;
38
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
39
  }
app/code/community/MT/Giftcard/Block/Adminhtml/Sales/Invoice/Total/Giftcard.php ADDED
@@ -0,0 +1,32 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class MT_Giftcard_Block_Adminhtml_Sales_Invoice_Total_Giftcard
4
+ extends Mage_Core_Block_Abstract
5
+ {
6
+ public function initTotals()
7
+ {
8
+ $parent = $this->getParentBlock();
9
+ $order = $parent->getOrder();
10
+ $value = $order->getMtGiftCardTotal();
11
+ if ($value < 0) {
12
+ $collection = Mage::getModel('giftcard/order')->getCollectionByOrderId($order->getId());
13
+ foreach ($collection as $item) {
14
+ if ($item->getDiscount() == 0) {
15
+ continue;
16
+ }
17
+
18
+ $totalDiscounted = new Varien_Object(array(
19
+ 'code' => 'mt_gift_card_total_discount_'.$item->getId(),
20
+ 'value' => -$item->getDiscount(),
21
+ 'base_value' => -$item->getBaseDiscount(),
22
+ 'label' => $this->__('Discounted from Gift Card (%s)',$item->getGiftCardCode()),
23
+ 'field' => 'mt_gift_card_total_discount_'.$item->getId()
24
+ ));
25
+
26
+ $parent = $this->getParentBlock();
27
+ $parent->addTotal($totalDiscounted, 'mt_gift_card_total_discount_'.$item->getId());
28
+ }
29
+ }
30
+ return $this;
31
+ }
32
+ }
app/code/community/MT/Giftcard/Block/Adminhtml/Sales/Total/Giftcard.php CHANGED
@@ -1,30 +1,41 @@
1
- <?php
2
-
3
- class MT_Giftcard_Block_Adminhtml_Sales_Total_Giftcard
4
- extends Mage_Core_Block_Abstract
5
- {
6
- public function initTotals()
7
- {
8
- $parent = $this->getParentBlock();
9
- $order = $parent->getOrder();
10
- $value = $order->getMtGiftCardTotal();
11
- if ($value < 0) {
12
- $giftCardDiscounts = unserialize($order->getMtGiftCard());
13
- foreach ($giftCardDiscounts as $key => $discount) {
14
- if (!isset($discount['discount']) || $discount['discount'] == 0)
15
- continue;
16
- $total = new Varien_Object(array(
17
- 'code' => 'mt_gift_card_total_'.$key,
18
- 'value' => $discount['discount'],
19
- 'base_value' => $discount['discount'],
20
- 'label' => $this->__('Gift Card (%s)',$discount['code']),
21
- 'field' => 'mt_gift_card_total'
22
- ));
23
- $parent->addTotal($total, 'mt_gift_card_total_'.$key);
24
- }
25
-
26
-
27
- }
28
- return $this;
29
- }
 
 
 
 
 
 
 
 
 
 
 
30
  }
1
+ <?php
2
+
3
+ class MT_Giftcard_Block_Adminhtml_Sales_Total_Giftcard
4
+ extends Mage_Core_Block_Abstract
5
+ {
6
+ public function initTotals()
7
+ {
8
+ $parent = $this->getParentBlock();
9
+ $order = $parent->getOrder();
10
+ $value = $order->getMtGiftCardTotal();
11
+ if ($value < 0) {
12
+ $collection = Mage::getModel('giftcard/order')->getCollectionByOrderId($order->getId());
13
+ foreach ($collection as $item) {
14
+ if ($item->getDiscount() == 0) {
15
+ continue;
16
+ }
17
+
18
+ $totalDiscounted = new Varien_Object(array(
19
+ 'code' => 'mt_gift_card_total_discount_'.$item->getId(),
20
+ 'value' => -$item->getDiscount(),
21
+ 'base_value' => -$item->getBaseDiscount(),
22
+ 'label' => $this->__('Discounted from Gift Card (%s)',$item->getGiftCardCode()),
23
+ 'field' => 'mt_gift_card_total_discount_'.$item->getId()
24
+ ));
25
+
26
+ $totalRefunded = new Varien_Object(array(
27
+ 'code' => 'mt_gift_card_total_refund_'.$item->getId(),
28
+ 'value' => $item->getRefund(),
29
+ 'base_value' => $item->getBaseRefund(),
30
+ 'label' => $this->__('Refunded to Gift Card (%s)',$item->getGiftCardCode()),
31
+ 'field' => 'mt_gift_card_total_refund_'.$item->getId()
32
+ ));
33
+
34
+ $parent = $this->getParentBlock();
35
+ $parent->addTotal($totalDiscounted, 'mt_gift_card_total_discount_'.$item->getId());
36
+ $parent->addTotal($totalRefunded, 'mt_gift_card_total_refund_'.$item->getId());
37
+ }
38
+ }
39
+ return $this;
40
+ }
41
  }
app/code/community/MT/Giftcard/Block/Checkout/Cart/Giftcard.php CHANGED
@@ -1,57 +1,45 @@
1
- <?php
2
-
3
- class MT_Giftcard_Block_Checkout_Cart_Giftcard
4
- extends Mage_Checkout_Block_Cart_Abstract
5
- {
6
- private $__appliedGiftCardCollection = null;
7
-
8
- public function getAppliedGiftCards()
9
- {
10
- if ($this->__appliedGiftCardCollection == null) {
11
- $quote = Mage::getSingleton('checkout/cart')->getQuote();
12
- $giftCardsCodes = Mage::helper('giftcard')->getGiftCardCodeArray($quote->getMtGiftCard());
13
- if (count($giftCardsCodes) > 0) {
14
- $giftCardCollection = Mage::getModel('giftcard/giftcard')->getCollection();
15
- $giftCardCollection->addFieldToFilter('code', array('in' => $giftCardsCodes));
16
- $this->__appliedGiftCardCollection = $giftCardCollection;
17
- }
18
- }
19
- return $this->__appliedGiftCardCollection;
20
- }
21
-
22
- public function getAmount()
23
- {
24
- $amount = 0;
25
- if (count($this->getAppliedGiftCards())) {
26
- foreach ($this->getAppliedGiftCards() as $giftCard){
27
- $amount+=$giftCard->getBalance();
28
- }
29
- }
30
- return $amount;
31
- }
32
-
33
- public function getCartTotalWithoutGiftCard()
34
- {
35
- $total = Mage::getSingleton('checkout/cart')->getQuote()->getGrandTotal();
36
-
37
- return $total;
38
- }
39
-
40
- public function isVisible()
41
- {
42
- if (!Mage::helper('giftcard')->isActive() || !Mage::getStoreConfig('giftcard/cart/form_in_cart'))
43
- return false;
44
-
45
- $cart = Mage::getModel('checkout/cart')->getQuote();
46
- $items = $cart->getAllItems();
47
- if (count($items) == 0)
48
- return false;
49
-
50
- foreach ($items as $item) {
51
- if ($item->getProduct()->getTypeId() == MT_Giftcard_Model_Catalog_Product_Type::TYPE_GIFTCARD_PRODUCT)
52
- return false;
53
- }
54
-
55
- return true;
56
- }
57
  }
1
+ <?php
2
+
3
+ class MT_Giftcard_Block_Checkout_Cart_Giftcard
4
+ extends Mage_Checkout_Block_Cart_Abstract
5
+ {
6
+ private $__appliedGiftCardCollection = null;
7
+
8
+ public function getAppliedGiftCards()
9
+ {
10
+ $quoteId = Mage::getSingleton('checkout/cart')->getQuote()->getId();
11
+ return Mage::getSingleton('giftcard/quote')->getGiftCardCollection($quoteId);
12
+ }
13
+
14
+ public function getAmount()
15
+ {
16
+ $amount = 0;
17
+ if (count($this->getAppliedGiftCards())) {
18
+ foreach ($this->getAppliedGiftCards() as $giftCard){
19
+ $amount+=$giftCard->getBalance();
20
+ }
21
+ }
22
+ return $amount;
23
+ }
24
+
25
+ public function getCartTotalWithoutGiftCard()
26
+ {
27
+ $total = Mage::getSingleton('checkout/cart')->getQuote()->getGrandTotal();
28
+
29
+ return $total;
30
+ }
31
+
32
+ public function isActive()
33
+ {
34
+ $helper = Mage::helper('giftcard');
35
+ if (!$helper->isActive() || !Mage::getStoreConfig('giftcard/cart/form_in_cart'))
36
+ return false;
37
+
38
+ return Mage::helper('giftcard')->hasGiftCardProductInCart() == false;
39
+ }
40
+
41
+ public function getStatusCheckUrl()
42
+ {
43
+ return Mage::getUrl('giftcard/giftcard/status');
44
+ }
 
 
 
 
 
 
 
 
 
 
 
 
45
  }
app/code/community/MT/Giftcard/Block/Payment/Giftcard/Form.php CHANGED
@@ -13,4 +13,13 @@ class MT_Giftcard_Block_Payment_Giftcard_Form
13
  {
14
  return Mage::getUrl('giftcard/checkout_cart');
15
  }
 
 
 
 
 
 
 
 
 
16
  }
13
  {
14
  return Mage::getUrl('giftcard/checkout_cart');
15
  }
16
+
17
+ public function isActive()
18
+ {
19
+ $helper = Mage::helper('giftcard');
20
+ if (!$helper->isActive())
21
+ return false;
22
+
23
+ return Mage::helper('giftcard')->hasGiftCardProductInCart() == false;
24
+ }
25
  }
app/code/community/MT/Giftcard/Block/Payment/Giftcard/Form/Giftcard.php CHANGED
@@ -21,9 +21,12 @@ class MT_Giftcard_Block_Payment_Giftcard_Form_Giftcard
21
 
22
  public function getAppliedGiftCardCollection()
23
  {
24
- return Mage::getSingleton('giftcard/checkout_giftcard')->getQuoteGiftCardCollection();
 
25
  }
26
 
 
 
27
  public function getAction()
28
  {
29
  return Mage::getUrl('giftcard/checkout_cart/giftCardAjax');
21
 
22
  public function getAppliedGiftCardCollection()
23
  {
24
+ $quoteId = Mage::getSingleton('checkout/cart')->getQuote()->getId();
25
+ return Mage::getSingleton('giftcard/quote')->getGiftCardCollection($quoteId);
26
  }
27
 
28
+
29
+
30
  public function getAction()
31
  {
32
  return Mage::getUrl('giftcard/checkout_cart/giftCardAjax');
app/code/community/MT/Giftcard/Block/Sales/Order/Creditmemo/Totals/Giftcard.php ADDED
@@ -0,0 +1,42 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class MT_Giftcard_Block_Sales_Order_Creditmemo_Totals_Giftcard
4
+ extends Mage_Sales_Block_Order_Creditmemo_Totals
5
+ {
6
+ public function initTotals()
7
+ {
8
+ $parent = $this->getParentBlock();
9
+ $order = $parent->getOrder();
10
+ $value = $order->getMtGiftCardTotal();
11
+ if ($value < 0) {
12
+ $collection = Mage::getModel('giftcard/order')->getCollectionByOrderId($order->getId());
13
+
14
+
15
+ foreach ($collection as $item) {
16
+ if ($item->getDiscount() == 0)
17
+ continue;
18
+ $totalDiscounted = new Varien_Object(array(
19
+ 'code' => 'mt_gift_card_total_discount_'.$item->getId(),
20
+ 'value' => -$item->getDiscount(),
21
+ 'base_value' => -$item->getBaseDiscount(),
22
+ 'label' => $this->__('Discounted from Gift Card (%s)',$item->getGiftCardCode()),
23
+ 'field' => 'mt_gift_card_total_discount_'.$item->getId()
24
+ ));
25
+
26
+ $totalRefunded = new Varien_Object(array(
27
+ 'code' => 'mt_gift_card_total_refund_'.$item->getId(),
28
+ 'value' => $item->getRefund(),
29
+ 'base_value' => $item->getBaseRefund(),
30
+ 'label' => $this->__('Refunded to Gift Card (%s)',$item->getGiftCardCode()),
31
+ 'field' => 'mt_gift_card_total_refund_'.$item->getId()
32
+ ));
33
+
34
+ $parent = $this->getParentBlock();
35
+ $parent->addTotal($totalDiscounted, 'mt_gift_card_total_discount_'.$item->getId());
36
+ $parent->addTotal($totalRefunded, 'mt_gift_card_total_refund_'.$item->getId());
37
+ }
38
+ }
39
+
40
+ return $this;
41
+ }
42
+ }
app/code/community/MT/Giftcard/Block/Sales/Order/Email/Items/Invoice/Giftcard.php CHANGED
@@ -1,36 +1,36 @@
1
- <?php
2
-
3
- class MT_Giftcard_Block_Sales_Order_Email_Items_Invoice_Giftcard
4
- extends Mage_Sales_Block_Order_Email_Items_Order_Default
5
- {
6
- public function getItemOptions()
7
- {
8
- $result = parent::getItemOptions();
9
-
10
- if ($this->getItem()->getProductType() == MT_Giftcard_Model_Catalog_Product_Type::TYPE_GIFTCARD_PRODUCT) {
11
- $giftCardValue = '';
12
- $giftCardCollection = Mage::getModel('giftcard/giftcard')->getCollection()
13
- ->addFieldToFilter('order_item_id', $this->getItem()->getOrderItemId());
14
- if ($giftCardCollection->count() > 0) {
15
- foreach ($giftCardCollection as $giftCard) {
16
- $giftCardValue.=$giftCard->getCode().'('.Mage::helper('giftcard')->__($giftCard->getStatus()).')<br/>';
17
- }
18
-
19
- $options = array(
20
- array(
21
- 'label' => Mage::helper('giftcard')->__('Gift Card'),
22
- 'value' => $giftCardValue
23
- ));
24
-
25
- if ($giftCard->getStatus() == MT_Giftcard_Model_Giftcard::STATUS_PENDING)
26
- $options[] = array(
27
- 'label' => '<br/>',
28
- 'value' => Mage::helper('giftcard')->__('Please pay for gift card. After this, your gift cards will be active.')
29
- );
30
-
31
- $result = array_merge($result, $options);
32
- }
33
- }
34
- return $result;
35
- }
36
- }
1
+ <?php
2
+
3
+ class MT_Giftcard_Block_Sales_Order_Email_Items_Invoice_Giftcard
4
+ extends Mage_Sales_Block_Order_Email_Items_Order_Default
5
+ {
6
+ public function getItemOptions()
7
+ {
8
+ $result = parent::getItemOptions();
9
+
10
+ if ($this->getItem()->getProductType() == MT_Giftcard_Model_Catalog_Product_Type::TYPE_GIFTCARD_PRODUCT) {
11
+ $giftCardValue = '';
12
+ $giftCardCollection = Mage::getModel('giftcard/giftcard')->getCollection()
13
+ ->addFieldToFilter('order_item_id', $this->getItem()->getOrderItemId());
14
+ if ($giftCardCollection->count() > 0) {
15
+ foreach ($giftCardCollection as $giftCard) {
16
+ $giftCardValue.=$giftCard->getCode().'('.Mage::helper('giftcard')->__($giftCard->getStatus()).')<br/>';
17
+ }
18
+
19
+ $options = array(
20
+ array(
21
+ 'label' => Mage::helper('giftcard')->__('Gift Card'),
22
+ 'value' => $giftCardValue
23
+ ));
24
+
25
+ if ($giftCard->getStatus() == MT_Giftcard_Model_Giftcard::STATUS_PENDING)
26
+ $options[] = array(
27
+ 'label' => '<br/>',
28
+ 'value' => Mage::helper('giftcard')->__('Please pay for gift card. After this, your gift cards will be active.')
29
+ );
30
+
31
+ $result = array_merge($result, $options);
32
+ }
33
+ }
34
+ return $result;
35
+ }
36
+ }
app/code/community/MT/Giftcard/Block/Sales/Order/Email/Items/Order/Giftcard.php CHANGED
@@ -1,36 +1,36 @@
1
- <?php
2
-
3
- class MT_Giftcard_Block_Sales_Order_Email_Items_Order_Giftcard
4
- extends Mage_Sales_Block_Order_Email_Items_Order_Default
5
- {
6
- public function getItemOptions()
7
- {
8
- $result = parent::getItemOptions();
9
- if ($this->getItem()->getProductType() == MT_Giftcard_Model_Catalog_Product_Type::TYPE_GIFTCARD_PRODUCT) {
10
- $giftCardValue = '';
11
- $giftCardCollection = Mage::getModel('giftcard/giftcard')->getCollection()
12
- ->addFieldToFilter('order_item_id', $this->getItem()->getId());
13
-
14
- if ($giftCardCollection->count() > 0) {
15
- foreach ($giftCardCollection as $giftCard) {
16
- $giftCardValue.=$giftCard->getCode().'('.Mage::helper('giftcard')->__($giftCard->getStatus()).')<br/>';
17
- }
18
-
19
- $options = array(
20
- array(
21
- 'label' => Mage::helper('giftcard')->__('Gift Card'),
22
- 'value' => $giftCardValue
23
- ));
24
-
25
- if ($giftCard->getStatus() == MT_Giftcard_Model_Giftcard::STATUS_PENDING)
26
- $options[] = array(
27
- 'label' => '<br/>',
28
- 'value' => Mage::helper('giftcard')->__('Please pay for gift card. After this, your gift cards will be active.')
29
- );
30
-
31
- $result = array_merge($result, $options);
32
- }
33
- }
34
- return $result;
35
- }
36
- }
1
+ <?php
2
+
3
+ class MT_Giftcard_Block_Sales_Order_Email_Items_Order_Giftcard
4
+ extends Mage_Sales_Block_Order_Email_Items_Order_Default
5
+ {
6
+ public function getItemOptions()
7
+ {
8
+ $result = parent::getItemOptions();
9
+ if ($this->getItem()->getProductType() == MT_Giftcard_Model_Catalog_Product_Type::TYPE_GIFTCARD_PRODUCT) {
10
+ $giftCardValue = '';
11
+ $giftCardCollection = Mage::getModel('giftcard/giftcard')->getCollection()
12
+ ->addFieldToFilter('order_item_id', $this->getItem()->getId());
13
+
14
+ if ($giftCardCollection->count() > 0) {
15
+ foreach ($giftCardCollection as $giftCard) {
16
+ $giftCardValue.=$giftCard->getCode().'('.Mage::helper('giftcard')->__($giftCard->getStatus()).')<br/>';
17
+ }
18
+
19
+ $options = array(
20
+ array(
21
+ 'label' => Mage::helper('giftcard')->__('Gift Card'),
22
+ 'value' => $giftCardValue
23
+ ));
24
+
25
+ if ($giftCard->getStatus() == MT_Giftcard_Model_Giftcard::STATUS_PENDING)
26
+ $options[] = array(
27
+ 'label' => '<br/>',
28
+ 'value' => Mage::helper('giftcard')->__('Please pay for gift card. After this, your gift cards will be active.')
29
+ );
30
+
31
+ $result = array_merge($result, $options);
32
+ }
33
+ }
34
+ return $result;
35
+ }
36
+ }
app/code/community/MT/Giftcard/Block/Sales/Order/Info/Buttons.php CHANGED
@@ -1,26 +1,26 @@
1
- <?php
2
-
3
- class MT_Giftcard_Block_Sales_Order_Info_Buttons
4
- extends Mage_Core_Block_Template
5
- {
6
- public function getGiftCardPdf()
7
- {
8
- $order = $this->getOrder();
9
- $items = $order->getAllItems();
10
-
11
- if (count($items) != 0) {
12
- foreach ($items as $item) {
13
- if ($item->getProductType()== MT_Giftcard_Model_Catalog_Product_Type::TYPE_GIFTCARD_PRODUCT) {
14
- return Mage::getUrl('giftcard/giftcard/pdf', array('id' => $this->getOrder()->getId()));
15
- }
16
- }
17
- }
18
-
19
- return false;
20
- }
21
-
22
- public function getOrder()
23
- {
24
- return Mage::registry('current_order');
25
- }
26
  }
1
+ <?php
2
+
3
+ class MT_Giftcard_Block_Sales_Order_Info_Buttons
4
+ extends Mage_Core_Block_Template
5
+ {
6
+ public function getGiftCardPdf()
7
+ {
8
+ $order = $this->getOrder();
9
+ $items = $order->getAllItems();
10
+
11
+ if (count($items) != 0) {
12
+ foreach ($items as $item) {
13
+ if ($item->getProductType()== MT_Giftcard_Model_Catalog_Product_Type::TYPE_GIFTCARD_PRODUCT) {
14
+ return Mage::getUrl('giftcard/giftcard/pdf', array('id' => $this->getOrder()->getId()));
15
+ }
16
+ }
17
+ }
18
+
19
+ return false;
20
+ }
21
+
22
+ public function getOrder()
23
+ {
24
+ return Mage::registry('current_order');
25
+ }
26
  }
app/code/community/MT/Giftcard/Block/Sales/Order/Item/Renderer/Giftcard.php CHANGED
@@ -1,35 +1,35 @@
1
- <?php
2
-
3
- class MT_Giftcard_Block_Sales_Order_Item_Renderer_Giftcard
4
- extends Mage_Sales_Block_Order_Item_Renderer_Default
5
- {
6
- public function getItemOptions()
7
- {
8
- $result = parent::getItemOptions();
9
- $giftCardValue = '';
10
- $giftCardCollection = Mage::getModel('giftcard/giftcard')->getCollection()
11
- ->addFieldToFilter('order_item_id', $this->getItem()->getId());
12
- if ($giftCardCollection->count() > 0) {
13
- foreach ($giftCardCollection as $giftCard) {
14
- $giftCardValue.=$giftCard->getCode().'('.Mage::helper('giftcard')->__($giftCard->getStatus()).')<br/>';
15
- }
16
-
17
- $options = array(
18
- array(
19
- 'label' => Mage::helper('giftcard')->__('Gift Card'),
20
- 'value' => $giftCardValue
21
- ));
22
-
23
- if ($giftCard->getStatus() == MT_Giftcard_Model_Giftcard::STATUS_PENDING)
24
- $options[] = array(
25
- 'label' => Mage::helper('giftcard')->__('Note'),
26
- 'value' => Mage::helper('giftcard')->__('Please pay for gift card. After this, your gift cards will be active.')
27
- );
28
-
29
- $result = array_merge($result, $options);
30
- }
31
-
32
-
33
- return $result;
34
- }
35
  }
1
+ <?php
2
+
3
+ class MT_Giftcard_Block_Sales_Order_Item_Renderer_Giftcard
4
+ extends Mage_Sales_Block_Order_Item_Renderer_Default
5
+ {
6
+ public function getItemOptions()
7
+ {
8
+ $result = parent::getItemOptions();
9
+ $giftCardValue = '';
10
+ $giftCardCollection = Mage::getModel('giftcard/giftcard')->getCollection()
11
+ ->addFieldToFilter('order_item_id', $this->getItem()->getId());
12
+ if ($giftCardCollection->count() > 0) {
13
+ foreach ($giftCardCollection as $giftCard) {
14
+ $giftCardValue.=$giftCard->getCode().'('.Mage::helper('giftcard')->__($giftCard->getStatus()).')<br/>';
15
+ }
16
+
17
+ $options = array(
18
+ array(
19
+ 'label' => Mage::helper('giftcard')->__('Gift Card'),
20
+ 'value' => $giftCardValue
21
+ ));
22
+
23
+ if ($giftCard->getStatus() == MT_Giftcard_Model_Giftcard::STATUS_PENDING)
24
+ $options[] = array(
25
+ 'label' => Mage::helper('giftcard')->__('Note'),
26
+ 'value' => Mage::helper('giftcard')->__('Please pay for gift card. After this, your gift cards will be active.')
27
+ );
28
+
29
+ $result = array_merge($result, $options);
30
+ }
31
+
32
+
33
+ return $result;
34
+ }
35
  }
app/code/community/MT/Giftcard/Block/Sales/Order/Totals/Giftcard.php CHANGED
@@ -1,29 +1,29 @@
1
- <?php
2
-
3
- class MT_Giftcard_Block_Sales_Order_Totals_Giftcard
4
- extends Mage_Sales_Block_Order_Totals
5
- {
6
- public function initTotals()
7
- {
8
- $parent = $this->getParentBlock();
9
- $order = $parent->getOrder();
10
- $value = $order->getMtGiftCardTotal();
11
- if ($value < 0) {
12
- $giftCardDiscounts = unserialize($order->getMtGiftCard());
13
- foreach ($giftCardDiscounts as $key => $discount) {
14
- if (!isset($discount['discount']) || $discount['discount'] == 0)
15
- continue;
16
- $total = new Varien_Object(array(
17
- 'code' => 'mt_gift_card_total_'.$key,
18
- 'value' => $discount['discount'],
19
- 'base_value' => $discount['discount'],
20
- 'label' => $this->__('Gift Card (%s)',$discount['code']),
21
- 'field' => 'mt_gift_card_total'
22
- ));
23
- $parent->addTotal($total, 'mt_gift_card_total_'.$key);
24
- }
25
- }
26
-
27
- return $this;
28
- }
29
  }
1
+ <?php
2
+
3
+ class MT_Giftcard_Block_Sales_Order_Totals_Giftcard
4
+ extends Mage_Sales_Block_Order_Totals
5
+ {
6
+ public function initTotals()
7
+ {
8
+ $parent = $this->getParentBlock();
9
+ $order = $parent->getOrder();
10
+ $value = $order->getMtGiftCardTotal();
11
+ if ($value < 0) {
12
+ $collection = Mage::getModel('giftcard/order')->getCollectionByOrderId($order->getId());
13
+ foreach ($collection as $item) {
14
+ if ($item->getDiscount() == 0)
15
+ continue;
16
+ $total = new Varien_Object(array(
17
+ 'code' => 'mt_gift_card_total_'.$item->getId(),
18
+ 'value' => -$item->getDiscount(),
19
+ 'base_value' => -$item->getBaseDiscount(),
20
+ 'label' => $this->__('Discounted from Gift Card (%s)',$item->getGiftCardCode()),
21
+ 'field' => 'mt_gift_card_total'
22
+ ));
23
+ $parent->addTotal($total, 'mt_gift_card_total_'.$item->getId());
24
+ }
25
+ }
26
+
27
+ return $this;
28
+ }
29
  }
app/code/community/MT/Giftcard/Helper/Data.php CHANGED
@@ -1,161 +1,112 @@
1
- <?php
2
-
3
- class MT_Giftcard_Helper_Data extends Mage_Core_Helper_Abstract
4
- {
5
- public function isActive()
6
- {
7
- return Mage::getStoreConfig('giftcard/general/is_active');
8
- }
9
-
10
- public function getProductCurrencyCode(Mage_Catalog_Model_Product $product)
11
- {
12
- return Mage::app()->getStore($product->getStoreId())->getCurrentCurrencyCode();
13
- }
14
-
15
- public function getCharset($format)
16
- {
17
- $ab = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
18
- $num = '01234567890';
19
-
20
- switch ($format) {
21
- case 'alphanumeric':
22
- $chars = $ab.$num;
23
- break;
24
- case 'alphabetical':
25
- $chars = $ab;
26
- break;
27
- case 'numeric':
28
- $chars = $num;
29
- break;
30
- }
31
-
32
- return str_split($chars);
33
- }
34
-
35
- public function getExportFileTmpName($ext)
36
- {
37
- $path = Mage::getBaseDir('tmp');
38
- $name = md5(microtime().Mage::getBaseUrl().rand(0, 99999));
39
- $file = $path . DS . $name . $ext;
40
- return $file;
41
- }
42
-
43
- public function prepareQuoteGiftCard($currentValue, $giftCardCode)
44
- {
45
- if (empty($giftCardCode))
46
- return $currentValue;
47
-
48
- if ($this->isGiftCardCodeAddedToQuote($currentValue, $giftCardCode))
49
- return $currentValue;
50
-
51
- $codes = unserialize($currentValue);
52
-
53
- if (!is_array($codes))
54
- $codes = array();
55
-
56
- $codes[] = array('code' => $giftCardCode);
57
- return serialize($codes);
58
- }
59
-
60
- public function isGiftCardCodeAddedToQuote($currentValue, $giftCardCode)
61
- {
62
- if (empty($giftCardCode))
63
- return true;
64
-
65
- $codes = unserialize($currentValue);
66
-
67
- if (!is_array($codes))
68
- return false;
69
-
70
- foreach ($codes as $code) {
71
- if ($code['code'] == $giftCardCode)
72
- return true;
73
- }
74
-
75
- return false;
76
- }
77
-
78
- public function removeQuoteGiftCardCodes($currentValue, $removeCodes)
79
- {
80
- if (count($removeCodes) == 0)
81
- return $currentValue;
82
-
83
- $codes = unserialize($currentValue);
84
-
85
- if (!is_array($codes))
86
- return $currentValue;
87
-
88
- foreach ($codes as $key => $appliedCode) {
89
- foreach ($removeCodes as $removeCode) {
90
- if ($appliedCode['code'] == $removeCode)
91
- unset($codes[$key]);
92
- }
93
- }
94
-
95
- return serialize($codes);
96
- }
97
-
98
- public function getGiftCardCodeArray($currentValue)
99
- {
100
- $codes = array();
101
- $giftCardData = unserialize($currentValue);
102
-
103
- if (!is_array($giftCardData))
104
- return $codes;
105
-
106
- foreach ($giftCardData as $code) {
107
- $codes[] = $code['code'];
108
- }
109
-
110
- return $codes;
111
- }
112
-
113
- public function hex2rgb($hex)
114
- {
115
- $hex = str_replace("#", "", $hex);
116
-
117
- if(strlen($hex) == 3) {
118
- $r = hexdec(substr($hex,0,1).substr($hex,0,1));
119
- $g = hexdec(substr($hex,1,1).substr($hex,1,1));
120
- $b = hexdec(substr($hex,2,1).substr($hex,2,1));
121
- } else {
122
- $r = hexdec(substr($hex,0,2));
123
- $g = hexdec(substr($hex,2,2));
124
- $b = hexdec(substr($hex,4,2));
125
- }
126
- $rgb = array($r, $g, $b);
127
- return $rgb;
128
- }
129
-
130
- public function getGiftCardBackgroundDir()
131
- {
132
- return Mage::getBaseDir('media') . DS.'mt'. DS .'giftcard'. DS.'template'. DS;
133
- }
134
-
135
- public function isAjax()
136
- {
137
- $request = Mage::app()->getRequest();
138
- if ($request->isXmlHttpRequest()) {
139
- return true;
140
- }
141
- if ($request->getParam('ajax') || $request->getParam('isAjax')) {
142
- return true;
143
- }
144
- return false;
145
- }
146
-
147
- public function isPaymentMethodFormVisible()
148
- {
149
- if (Mage::app()->getRequest()->getParam('is_form_visible') == 0
150
- && count($this->getAppliedGiftCardCollection()) == 0
151
- ) {
152
- return false;
153
- }
154
- return true;
155
- }
156
-
157
- public function getAppliedGiftCardCollection()
158
- {
159
- return Mage::getSingleton('giftcard/checkout_giftcard')->getQuoteGiftCardCollection();
160
- }
161
  }
1
+ <?php
2
+
3
+ class MT_Giftcard_Helper_Data extends Mage_Core_Helper_Abstract
4
+ {
5
+ public function isActive()
6
+ {
7
+ return Mage::getStoreConfig('giftcard/general/is_active');
8
+ }
9
+
10
+ public function getProductCurrencyCode(Mage_Catalog_Model_Product $product)
11
+ {
12
+ return Mage::app()->getStore($product->getStoreId())->getCurrentCurrencyCode();
13
+ }
14
+
15
+ public function getCharset($format)
16
+ {
17
+ $ab = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
18
+ $num = '01234567890';
19
+
20
+ switch ($format) {
21
+ case 'alphanumeric':
22
+ $chars = $ab.$num;
23
+ break;
24
+ case 'alphabetical':
25
+ $chars = $ab;
26
+ break;
27
+ case 'numeric':
28
+ $chars = $num;
29
+ break;
30
+ }
31
+
32
+ return str_split($chars);
33
+ }
34
+
35
+ public function getExportFileTmpName($ext)
36
+ {
37
+ $path = Mage::getBaseDir('tmp');
38
+ $name = md5(microtime().Mage::getBaseUrl().rand(0, 99999));
39
+ $file = $path . DS . $name . $ext;
40
+ return $file;
41
+ }
42
+
43
+ public function hex2rgb($hex)
44
+ {
45
+ $hex = str_replace("#", "", $hex);
46
+
47
+ if(strlen($hex) == 3) {
48
+ $r = hexdec(substr($hex,0,1).substr($hex,0,1));
49
+ $g = hexdec(substr($hex,1,1).substr($hex,1,1));
50
+ $b = hexdec(substr($hex,2,1).substr($hex,2,1));
51
+ } else {
52
+ $r = hexdec(substr($hex,0,2));
53
+ $g = hexdec(substr($hex,2,2));
54
+ $b = hexdec(substr($hex,4,2));
55
+ }
56
+ $rgb = array($r, $g, $b);
57
+ return $rgb;
58
+ }
59
+
60
+ public function getGiftCardBackgroundDir()
61
+ {
62
+ return Mage::getBaseDir('media') . DS.'mt'. DS .'giftcard'. DS.'template'. DS;
63
+ }
64
+
65
+ public function isAjax()
66
+ {
67
+ $request = Mage::app()->getRequest();
68
+ if ($request->isXmlHttpRequest()) {
69
+ return true;
70
+ }
71
+ if ($request->getParam('ajax') || $request->getParam('isAjax')) {
72
+ return true;
73
+ }
74
+ return false;
75
+ }
76
+
77
+ public function isPaymentMethodFormVisible()
78
+ {
79
+ $quoteId = Mage::getSingleton('checkout/cart')->getQuote()->getId();
80
+ $giftCardCollection = Mage::getSingleton('giftcard/quote')->getGiftCardCollection($quoteId);
81
+ if (Mage::app()->getRequest()->getParam('is_form_visible') == 0
82
+ && $giftCardCollection->count() == 0
83
+ ) {
84
+ return false;
85
+ }
86
+ return true;
87
+ }
88
+
89
+ public function hasGiftCardProductInCart()
90
+ {
91
+ $cart = Mage::getModel('checkout/cart')->getQuote();
92
+ $items = $cart->getAllItems();
93
+ if (count($items) == 0)
94
+ return false;
95
+
96
+ foreach ($items as $item) {
97
+ if ($item->getProduct()->getTypeId() == MT_Giftcard_Model_Catalog_Product_Type::TYPE_GIFTCARD_PRODUCT)
98
+ return true;
99
+ }
100
+
101
+ return false;
102
+ }
103
+
104
+ public function convertToCurrentCurrency($price, $currencyCode)
105
+ {
106
+ return Mage::helper('directory')->currencyConvert(
107
+ $price,
108
+ $currencyCode,
109
+ Mage::app()->getStore()->getCurrentCurrencyCode()
110
+ );
111
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
112
  }
app/code/community/MT/Giftcard/Model/Core/Email/Template.php CHANGED
@@ -1,58 +1,81 @@
1
- <?php
2
-
3
- class MT_Giftcard_Model_Core_Email_Template extends MT_Giftcard_Model_Core_Email_Template_Init
4
- {
5
-
6
- public function sendTransactional($templateId, $sender, $email, $name, $vars=array(), $storeId=null)
7
- {
8
- $this->addGiftCardAttachment($templateId, $vars, $storeId);
9
- return parent::sendTransactional($templateId, $sender, $email, $name, $vars, $storeId);
10
- }
11
-
12
- protected function addGiftCardAttachment($templateId, $vars, $storeId = null)
13
- {
14
- $addPdf = false;
15
-
16
- if (($templateId == Mage::getStoreConfig(Mage_Sales_Model_Order::XML_PATH_EMAIL_GUEST_TEMPLATE, $storeId)
17
- || $templateId == Mage::getStoreConfig(Mage_Sales_Model_Order::XML_PATH_EMAIL_TEMPLATE, $storeId))
18
- && Mage::getStoreConfig('giftcard/mail/pdf_order_new_mail', $storeId)) {
19
- $addPdf = true;
20
- }
21
-
22
- if ($templateId == Mage::getStoreConfig(Mage_Sales_Model_Order_Invoice::XML_PATH_EMAIL_TEMPLATE, $storeId)
23
- && Mage::getStoreConfig('giftcard/mail/pdf_order_invoice_mail', $storeId)) {
24
- $addPdf = true;
25
- }
26
-
27
- if ($addPdf) {
28
- if (isset($vars['order'])) {
29
- $order = $vars['order'];
30
- $collection = Mage::getModel('giftcard/giftcard')->getCollection()
31
- ->addFieldToFilter('order_id', $order->getId());
32
- if ($collection->count() <= 0) {
33
- return;
34
- }
35
- $contentFile = Mage::getSingleton('giftcard/giftcard_action')
36
- ->exportOrderGiftCard($order->getId(), 'pdf');
37
-
38
- if (!file_exists($contentFile['value']))
39
- throw new Exception(Mage::helper('giftcard')->__('Can not to create file'));
40
-
41
- $content = file_get_contents($contentFile['value']);
42
- $attachment = new Zend_Mime_Part($content);
43
- $attachment->type = 'application/pdf';
44
- $attachment->disposition = Zend_Mime::DISPOSITION_ATTACHMENT;
45
- $attachment->encoding = Zend_Mime::ENCODING_BASE64;
46
- $attachment->filename = Mage::helper('giftcard')->__('gif_card_').$order->getIncrementId().'.pdf';
47
- $this->getMail()->addAttachment($attachment);
48
-
49
- //delete pdf file from server
50
- if ($contentFile['rm'] == 1) {
51
- unlink($contentFile['value']);
52
- }
53
- }
54
- }
55
-
56
- return;
57
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
58
  }
1
+ <?php
2
+
3
+ class MT_Giftcard_Model_Core_Email_Template extends MT_Giftcard_Model_Core_Email_Template_Init
4
+ {
5
+
6
+ public function sendTransactional($templateId, $sender, $email, $name, $vars=array(), $storeId=null)
7
+ {
8
+ $this->addGiftCardAttachment($templateId, $vars, $storeId);
9
+ return parent::sendTransactional($templateId, $sender, $email, $name, $vars, $storeId);
10
+ }
11
+
12
+ protected function addGiftCardAttachment($templateId, $vars, $storeId = null)
13
+ {
14
+ $addPdf = false;
15
+
16
+ if (($templateId == Mage::getStoreConfig(Mage_Sales_Model_Order::XML_PATH_EMAIL_GUEST_TEMPLATE, $storeId)
17
+ || $templateId == Mage::getStoreConfig(Mage_Sales_Model_Order::XML_PATH_EMAIL_TEMPLATE, $storeId))
18
+ && Mage::getStoreConfig('giftcard/mail/pdf_order_new_mail', $storeId)) {
19
+ $addPdf = true;
20
+ }
21
+
22
+ if ($templateId == Mage::getStoreConfig(Mage_Sales_Model_Order_Invoice::XML_PATH_EMAIL_TEMPLATE, $storeId)
23
+ && Mage::getStoreConfig('giftcard/mail/pdf_order_invoice_mail', $storeId)) {
24
+ $addPdf = true;
25
+ }
26
+
27
+ if ($addPdf) {
28
+ if (isset($vars['order'])) {
29
+ $order = $vars['order'];
30
+ $collection = Mage::getModel('giftcard/giftcard')->getCollection()
31
+ ->addFieldToFilter('order_id', $order->getId());
32
+ if ($collection->count() <= 0) {
33
+ return;
34
+ }
35
+
36
+ $contentFile = Mage::getSingleton('giftcard/giftcard_action')
37
+ ->exportOrderGiftCard($order->getId(), 'pdf');
38
+
39
+ if (!$contentFile) {
40
+ return false;
41
+ }
42
+
43
+ if (!file_exists($contentFile['value']))
44
+ throw new Exception(Mage::helper('giftcard')->__('Can not to create file'));
45
+
46
+ $content = file_get_contents($contentFile['value']);
47
+ $type = 'application/pdf';
48
+ $disposition = Zend_Mime::DISPOSITION_ATTACHMENT;
49
+ $encoding = Zend_Mime::ENCODING_BASE64;
50
+ $fileName = Mage::helper('giftcard')->__('gif_card_').$order->getIncrementId().'.pdf';
51
+
52
+ switch (get_class($this->getMail())) {
53
+ case 'Mandrill_Message':
54
+ $this->getMail()->createAttachment(
55
+ $content,
56
+ $type,
57
+ $disposition,
58
+ $encoding,
59
+ $fileName
60
+ );
61
+ break;
62
+ default:
63
+ $attachment = new Zend_Mime_Part($content);
64
+ $attachment->type = $type;
65
+ $attachment->disposition = $disposition;
66
+ $attachment->encoding = $encoding;
67
+ $attachment->filename = $fileName;
68
+ $this->getMail()->addAttachment($attachment);
69
+ break;
70
+ }
71
+
72
+ //delete pdf file from server
73
+ if ($contentFile['rm'] == 1) {
74
+ unlink($contentFile['value']);
75
+ }
76
+ }
77
+ }
78
+
79
+ return true;
80
+ }
81
  }
app/code/community/MT/Giftcard/Model/Core/Email/Template/Init.php CHANGED
@@ -1,6 +1,9 @@
1
  <?php
2
 
3
- if (@class_exists('Aschroder_SMTPPro_Model_Email_Template')) {
 
 
 
4
  class MT_Giftcard_Model_Core_Email_Template_Init extends Aschroder_SMTPPro_Model_Email_Template
5
  {}
6
  } else {
1
  <?php
2
 
3
+ if (@class_exists('Ebizmarts_Mandrill_Model_Email_Template')) {
4
+ class MT_Giftcard_Model_Core_Email_Template_Init extends Ebizmarts_Mandrill_Model_Email_Template
5
+ {}
6
+ } else if (@class_exists('Aschroder_SMTPPro_Model_Email_Template')) {
7
  class MT_Giftcard_Model_Core_Email_Template_Init extends Aschroder_SMTPPro_Model_Email_Template
8
  {}
9
  } else {
app/code/community/MT/Giftcard/Model/Giftcard.php CHANGED
@@ -1,130 +1,203 @@
1
- <?php
2
-
3
- class MT_Giftcard_Model_Giftcard extends Mage_Core_Model_Abstract
4
- {
5
- const STATE_READY_TO_PRINT = 'ready_to_print';
6
-
7
- const STATE_PRINTED = 'printed';
8
-
9
- const STATE_PRINTING = 'printing';
10
-
11
- const STATUS_NEW = 'new';
12
-
13
- const STATUS_PENDING = 'pending';
14
-
15
- const STATUS_ACTIVE = 'active';
16
-
17
- const STATUS_SOLD = 'sold';
18
-
19
- const STATUS_INACTIVE = 'inactive';
20
-
21
- const STATUS_EXPIRED = 'expired';
22
-
23
- const GIFT_CARD_CODE_MAX_LENGTH = 255;
24
-
25
- # const TYPE_VIRTUAL_REAL = 'virtual-real';
26
-
27
- const TYPE_VIRTUAL = 'virtual';
28
-
29
-
30
- protected function _construct()
31
- {
32
- $this->_init('giftcard/giftcard');
33
- }
34
-
35
- public function codeExist($code)
36
- {
37
- $collection = $this->getCollection()
38
- ->addFieldToFilter('code', $code)
39
- ->setPageSize(1);
40
- return $collection->count() == 1;
41
- }
42
-
43
-
44
- public function setExpiredAt($date = '')
45
- {
46
- if($date == '')
47
- $date = $this->calcExpiredAt();
48
- return parent::setExpiredAt($date);
49
- }
50
-
51
- public function getExpiredAt()
52
- {
53
- $expiredAt = parent::getExpiredAt();
54
- if (empty($expiredAt) && $this->getLifetime() > 0) {
55
- $expiredAt = $this->calcExpiredAt();
56
- }
57
-
58
- return $expiredAt;
59
- }
60
-
61
- public function calcExpiredAt()
62
- {
63
- $lifeTime = $this->getLifetime();
64
- if ($lifeTime == 0)
65
- return '';
66
-
67
- return date('Y-m-d H:i:s', strtotime('+'.$lifeTime.'days'));
68
- }
69
-
70
- public function isCodeActive($code)
71
- {
72
- if (empty($code) || strlen($code) > self::GIFT_CARD_CODE_MAX_LENGTH)
73
- return false;
74
-
75
- $collection = $this->getCollection()
76
- ->addFieldToFilter('code', $code)
77
- ->addFieldToFilter('status', self::STATUS_SOLD)
78
- ->setPageSize(1);
79
- return $collection->count() == 1;
80
-
81
- }
82
-
83
- public function loadByCode($code)
84
- {
85
- if (empty($code) || strlen($code) > self::GIFT_CARD_CODE_MAX_LENGTH)
86
- return $this;
87
-
88
- $collection = $this->getCollection()
89
- ->addFieldToFilter('code', $code)
90
- ->setPageSize(1);
91
- if ($collection->count() == 0)
92
- return $this;
93
-
94
- return parent::load($collection->getFirstItem()->getId());
95
- }
96
-
97
- public function getFormatedBalance()
98
- {
99
- $balance = Mage::getModel('directory/currency')->format($this->getBalance(), array(
100
- 'precision' => 2,
101
- 'currency' => Mage::app()->getStore($this->getStoreId())->getCurrentCurrencyCode()
102
- ), false);
103
-
104
- return $balance;
105
- }
106
-
107
- public function getFormatedValue()
108
- {
109
- $value = Mage::getModel('directory/currency')->format($this->getValue(), array(
110
- 'precision' => 0,
111
- 'currency' => Mage::app()->getStore($this->getStoreId())->getCurrentCurrencyCode()
112
- ), false);
113
-
114
- return $value;
115
- }
116
-
117
-
118
- public function getTemplate()
119
- {
120
- if (!$this->getTemplateId())
121
- return null;
122
-
123
- $template = Mage::getModel('giftcard/template')->load($this->getTemplateId());
124
- if (!$template->getId())
125
- return null;
126
-
127
- return $template;
128
- }
129
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
130
  }
1
+ <?php
2
+
3
+ class MT_Giftcard_Model_Giftcard extends Mage_Core_Model_Abstract
4
+ {
5
+ const STATE_READY_TO_PRINT = 'ready_to_print';
6
+
7
+ const STATE_PRINTED = 'printed';
8
+
9
+ const STATE_PRINTING = 'printing';
10
+
11
+ const STATUS_NEW = 'new';
12
+
13
+ const STATUS_PENDING = 'pending';
14
+
15
+ const STATUS_ACTIVE = 'active';
16
+
17
+ const STATUS_SOLD = 'sold';
18
+
19
+ const STATUS_INACTIVE = 'inactive';
20
+
21
+ const STATUS_EXPIRED = 'expired';
22
+
23
+ const GIFT_CARD_CODE_MAX_LENGTH = 255;
24
+
25
+ const TYPE_VIRTUAL = 'virtual';
26
+
27
+
28
+ protected function _construct()
29
+ {
30
+ $this->_init('giftcard/giftcard');
31
+ }
32
+
33
+ public function codeExist($code)
34
+ {
35
+ $collection = $this->getCollection()
36
+ ->addFieldToFilter('code', $code)
37
+ ->setPageSize(1);
38
+ return $collection->count() == 1;
39
+ }
40
+
41
+
42
+ public function setExpiredAt($date = '')
43
+ {
44
+ if($date == '')
45
+ $date = $this->calcExpiredAt();
46
+ return parent::setExpiredAt($date);
47
+ }
48
+
49
+ public function getExpiredAt()
50
+ {
51
+ $expiredAt = parent::getExpiredAt();
52
+ if (empty($expiredAt) && $this->getLifetime() > 0) {
53
+ $expiredAt = $this->calcExpiredAt();
54
+ }
55
+
56
+ return $expiredAt;
57
+ }
58
+
59
+ public function calcExpiredAt()
60
+ {
61
+ $lifeTime = $this->getLifetime();
62
+ if ($lifeTime == 0)
63
+ return '';
64
+
65
+ return date('Y-m-d H:i:s', strtotime('+'.$lifeTime.'days'));
66
+ }
67
+
68
+ public function isCodeActive($code)
69
+ {
70
+ if (empty($code) || strlen($code) > self::GIFT_CARD_CODE_MAX_LENGTH)
71
+ return false;
72
+
73
+ $collection = $this->getCollection()
74
+ ->addFieldToFilter('code', $code)
75
+ ->addFieldToFilter('status', self::STATUS_SOLD)
76
+ ->setPageSize(1);
77
+ return $collection->count() == 1;
78
+
79
+ }
80
+
81
+ public function loadByCode($code)
82
+ {
83
+ if (empty($code) || strlen($code) > self::GIFT_CARD_CODE_MAX_LENGTH)
84
+ return $this;
85
+
86
+ $collection = $this->getCollection()
87
+ ->addFieldToFilter('code', $code)
88
+ ->setPageSize(1);
89
+ if ($collection->count() == 0)
90
+ return $this;
91
+
92
+ return parent::load($collection->getFirstItem()->getId());
93
+ }
94
+
95
+ public function getFormatedValue()
96
+ {
97
+ $value = Mage::getModel('directory/currency')->format($this->getValue(), array(
98
+ 'precision' => 0,
99
+ 'currency' => Mage::app()->getStore($this->getStoreId())->getCurrentCurrencyCode()
100
+ ), false);
101
+
102
+ return $value;
103
+ }
104
+
105
+
106
+ public function getTemplate()
107
+ {
108
+ if (!$this->getTemplateId())
109
+ return null;
110
+
111
+ $template = Mage::getModel('giftcard/template')->load($this->getTemplateId());
112
+ if (!$template->getId())
113
+ return null;
114
+
115
+ return $template;
116
+ }
117
+
118
+ public function getBalance($currencyCode = '')
119
+ {
120
+ $balance = $this->getData('balance');
121
+ $giftCardCurrency = $this->getCurrency();
122
+ if (empty($currencyCode) || $currencyCode == $giftCardCurrency) {
123
+ return $balance;
124
+ }
125
+
126
+ $convertedBalance = Mage::helper('directory')->currencyConvert(
127
+ $balance,
128
+ $giftCardCurrency,
129
+ $currencyCode
130
+ );
131
+ $convertedBalance = number_format($convertedBalance, 2);
132
+
133
+ return $convertedBalance;
134
+ }
135
+
136
+ public function setBalance($balance, $currencyCode = '')
137
+ {
138
+ if ($currencyCode == '') {
139
+ return $this->setData('balance', $balance);
140
+ }
141
+ $giftCardCurrency = $this->getCurrency();
142
+ if ($currencyCode != $giftCardCurrency) {
143
+ $balance = Mage::helper('directory')->currencyConvert(
144
+ $balance,
145
+ $currencyCode,
146
+ $giftCardCurrency
147
+ );
148
+ $balance = number_format($balance, 2);
149
+ }
150
+
151
+ return $this->setData('balance', $balance);
152
+ }
153
+
154
+ public function getFormatedBalance($currencyCode = '')
155
+ {
156
+ if (empty($currencyCode)) {
157
+ $currencyCode = $this->getCurrency();
158
+ }
159
+ $balance = $this->getBalance($currencyCode);
160
+
161
+ $formatedBalance = Mage::getModel('directory/currency')->format(
162
+ $balance,
163
+ array(
164
+ 'precision' => 2,
165
+ 'currency' => $currencyCode
166
+ ), false);
167
+
168
+ return $formatedBalance;
169
+ }
170
+
171
+ public function isSold()
172
+ {
173
+ return $this->getStatus() == self::STATUS_SOLD;
174
+ }
175
+
176
+ public function discount($balance, $currency)
177
+ {
178
+ $this->setBalance($balance, $currency);
179
+ if ($balance <= 0) {
180
+ $this->setStatus(MT_Giftcard_Model_Giftcard::STATUS_INACTIVE);
181
+ }
182
+ $this->save();
183
+ }
184
+
185
+ public function refund($refund, $currency)
186
+ {
187
+ $giftCardBalance = $this->getBalance($currency);
188
+ if (
189
+ $this->getStatus() == MT_Giftcard_Model_Giftcard::STATUS_INACTIVE
190
+ && $giftCardBalance == 0
191
+ ) {
192
+ $this->setStatus(MT_Giftcard_Model_Giftcard::STATUS_SOLD);
193
+ }
194
+ $returnAmount = ($giftCardBalance+$refund);
195
+ $this->setBalance($returnAmount, $currency);
196
+ $this->save();
197
+ }
198
+
199
+ public function getCurrency($code = '')
200
+ {
201
+ return Mage::app()->getStore()->getBaseCurrencyCode();
202
+ }
203
  }
app/code/community/MT/Giftcard/Model/Giftcard/Action.php CHANGED
@@ -1,153 +1,156 @@
1
- <?php
2
-
3
- class MT_Giftcard_Model_Giftcard_Action
4
- {
5
- public function updateAttributes($giftCardIds, $attributesUpdate)
6
- {
7
- if (is_array($giftCardIds)) {
8
- foreach ($giftCardIds as $gifCardId) {
9
- $this->updateAttribute($gifCardId, $attributesUpdate);
10
- }
11
- } else {
12
- $this->updateAttribute($giftCardIds, $attributesUpdate);
13
- }
14
- }
15
-
16
- public function updateAttribute($giftCardId, $attributesUpdate)
17
- {
18
- $giftCard = Mage::getModel('giftcard/giftcard')->load($giftCardId);
19
- if (!is_numeric($giftCard->getId()))
20
- return false;
21
-
22
- foreach ($attributesUpdate as $attributeCode => $newValue)
23
- $giftCard->setData($attributeCode, $newValue);
24
- try {
25
- $giftCard->save();
26
- } catch (Exception $e) {
27
- $this->_getSession()
28
- ->addException($e, $this->__('An error occurred while saving the gift card.'));
29
- }
30
- return true;
31
- }
32
-
33
- public function giftCardsDelete($giftCardIds)
34
- {
35
- if (count($giftCardIds) == 0)
36
- return false;
37
-
38
- foreach ($giftCardIds as $giftCardId)
39
- $this->giftCardDelete($giftCardId);
40
- }
41
-
42
- public function giftCardDelete($giftCardId)
43
- {
44
- $giftCard = Mage::getModel('giftcard/giftcard')->load($giftCardId);
45
- $giftCard->delete();
46
- }
47
-
48
- public function exportGiftCardsCodes($giftCardIds, $format)
49
- {
50
- $collection = Mage::getModel('giftcard/giftcard')->getCollection()
51
- ->addFieldToFilter('entity_id', array('in' => $giftCardIds));
52
-
53
- switch ($format) {
54
- case 'xlsx':
55
- $adapter = Mage::getModel('giftcard/export_adapter_excel');
56
- $file = Mage::helper('giftcard')->getExportFileTmpName('.xlsx');
57
- break;
58
- case 'csv':
59
- $adapter = Mage::getModel('giftcard/export_adapter_csv');
60
- $file = Mage::helper('giftcard')->getExportFileTmpName('.csv');
61
- break;
62
- }
63
-
64
- $export = Mage::getModel('giftcard/export_collection');
65
- $export->setCollection($collection);
66
- $export->setAdapter($adapter);
67
- $export->exportToFile($file);
68
-
69
- return array(
70
- 'type' => 'filename',
71
- 'value' => $file,
72
- 'rm' => true // can delete file after use
73
- );
74
- }
75
-
76
- public function assignGiftCardToOrder($order)
77
- {
78
-
79
- $items = $order->getAllVisibleItems();
80
- $seriesAction = Mage::getModel('giftcard/series_action');
81
-
82
- foreach ($items as $item) {
83
-
84
- if ($item->getProductType() != MT_Giftcard_Model_Catalog_Product_Type::TYPE_GIFTCARD_PRODUCT)
85
- continue;
86
-
87
- $option = $item->getProductOptions();
88
- $optionData = $option['info_buyRequest'];
89
- if (!isset($optionData['giftcard_attribute']['giftcard_value']) || !is_numeric($optionData['giftcard_attribute']['giftcard_value']))
90
- throw new Exception('Gift card value is not selected');
91
-
92
- $giftCardSeriesId = $optionData['giftcard_attribute']['giftcard_value'];
93
- $seriesAction->addNewCodeToOrder($giftCardSeriesId, $order, $item, $optionData['giftcard_attribute']);
94
- }
95
-
96
- }
97
-
98
- public function exportOrderGiftCard($orderId, $format)
99
- {
100
- $giftCardIds = array();
101
- $collection = Mage::getModel('giftcard/giftcard')->getCollection()
102
- ->addFieldToFilter('order_id', $orderId);
103
- if ($collection->count() > 0) {
104
- foreach ($collection as $item) {
105
- $giftCardIds[] = $item->getId();
106
- }
107
- }
108
-
109
- return $this->exportGiftCardList($giftCardIds, $format);
110
- }
111
- public function exportGiftCardList($giftCardIds, $format)
112
- {
113
- $collection = Mage::getModel('giftcard/giftcard')->getCollection()
114
- ->addFieldToFilter('entity_id', array('in' => $giftCardIds));
115
-
116
- $export = null;
117
- switch ($format) {
118
- case 'xlsx':
119
- $adapter = Mage::getModel('giftcard/export_adapter_excel');
120
- $file = Mage::helper('giftcard')->getExportFileTmpName('.xlsx');
121
- $export = Mage::getModel('giftcard/export_collection');
122
- break;
123
- case 'csv':
124
- $adapter = Mage::getModel('giftcard/export_adapter_csv');
125
- $file = Mage::helper('giftcard')->getExportFileTmpName('.csv');
126
- $export = Mage::getModel('giftcard/export_collection');
127
- break;
128
- case 'pdf':
129
- $adapter = Mage::getModel('giftcard/export_adapter_pdf');
130
- $file = Mage::helper('giftcard')->getExportFileTmpName('.pdf');
131
- $export = Mage::getModel('giftcard/export_object');
132
- break;
133
- case 'zip':
134
- $adapter = Mage::getModel('giftcard/export_adapter_zip');
135
- $file = Mage::helper('giftcard')->getExportFileTmpName('.zip');
136
- $export = Mage::getModel('giftcard/export_object');
137
- break;
138
- }
139
-
140
- if ($export == null)
141
- throw new Mage_Core_Exception(Mage::helper('giftcard')->__('Bad file format'));
142
-
143
- $export->setCollection($collection);
144
- $export->setAdapter($adapter);
145
- $export->exportToFile($file);
146
-
147
- return array(
148
- 'type' => 'filename',
149
- 'value' => $file,
150
- 'rm' => true // can delete file after use
151
- );
152
- }
 
 
 
153
  }
1
+ <?php
2
+
3
+ class MT_Giftcard_Model_Giftcard_Action
4
+ {
5
+ public function updateAttributes($giftCardIds, $attributesUpdate)
6
+ {
7
+ if (is_array($giftCardIds)) {
8
+ foreach ($giftCardIds as $gifCardId) {
9
+ $this->updateAttribute($gifCardId, $attributesUpdate);
10
+ }
11
+ } else {
12
+ $this->updateAttribute($giftCardIds, $attributesUpdate);
13
+ }
14
+ }
15
+
16
+ public function updateAttribute($giftCardId, $attributesUpdate)
17
+ {
18
+ $giftCard = Mage::getModel('giftcard/giftcard')->load($giftCardId);
19
+ if (!is_numeric($giftCard->getId()))
20
+ return false;
21
+
22
+ foreach ($attributesUpdate as $attributeCode => $newValue)
23
+ $giftCard->setData($attributeCode, $newValue);
24
+ try {
25
+ $giftCard->save();
26
+ } catch (Exception $e) {
27
+ $this->_getSession()
28
+ ->addException($e, $this->__('An error occurred while saving the gift card.'));
29
+ }
30
+ return true;
31
+ }
32
+
33
+ public function giftCardsDelete($giftCardIds)
34
+ {
35
+ if (count($giftCardIds) == 0)
36
+ return false;
37
+
38
+ foreach ($giftCardIds as $giftCardId)
39
+ $this->giftCardDelete($giftCardId);
40
+ }
41
+
42
+ public function giftCardDelete($giftCardId)
43
+ {
44
+ $giftCard = Mage::getModel('giftcard/giftcard')->load($giftCardId);
45
+ $giftCard->delete();
46
+ }
47
+
48
+ public function exportGiftCardsCodes($giftCardIds, $format)
49
+ {
50
+ $collection = Mage::getModel('giftcard/giftcard')->getCollection()
51
+ ->addFieldToFilter('entity_id', array('in' => $giftCardIds));
52
+
53
+ switch ($format) {
54
+ case 'xlsx':
55
+ $adapter = Mage::getModel('giftcard/export_adapter_excel');
56
+ $file = Mage::helper('giftcard')->getExportFileTmpName('.xlsx');
57
+ break;
58
+ case 'csv':
59
+ $adapter = Mage::getModel('giftcard/export_adapter_csv');
60
+ $file = Mage::helper('giftcard')->getExportFileTmpName('.csv');
61
+ break;
62
+ }
63
+
64
+ $export = Mage::getModel('giftcard/export_collection');
65
+ $export->setCollection($collection);
66
+ $export->setAdapter($adapter);
67
+ $export->exportToFile($file);
68
+
69
+ return array(
70
+ 'type' => 'filename',
71
+ 'value' => $file,
72
+ 'rm' => true // can delete file after use
73
+ );
74
+ }
75
+
76
+ public function assignGiftCardToOrder($order)
77
+ {
78
+
79
+ $items = $order->getAllVisibleItems();
80
+ $seriesAction = Mage::getModel('giftcard/series_action');
81
+
82
+ foreach ($items as $item) {
83
+
84
+ if ($item->getProductType() != MT_Giftcard_Model_Catalog_Product_Type::TYPE_GIFTCARD_PRODUCT)
85
+ continue;
86
+
87
+ $option = $item->getProductOptions();
88
+ $optionData = $option['info_buyRequest'];
89
+ if (!isset($optionData['giftcard_attribute']['giftcard_value']) || !is_numeric($optionData['giftcard_attribute']['giftcard_value']))
90
+ throw new Exception('Gift card value is not selected');
91
+
92
+ $giftCardSeriesId = $optionData['giftcard_attribute']['giftcard_value'];
93
+ $seriesAction->addNewCodeToOrder($giftCardSeriesId, $order, $item, $optionData['giftcard_attribute']);
94
+ }
95
+
96
+ }
97
+
98
+ public function exportOrderGiftCard($orderId, $format)
99
+ {
100
+ $giftCardIds = array();
101
+ $collection = Mage::getModel('giftcard/giftcard')->getCollection()
102
+ ->addFieldToFilter('order_id', $orderId);
103
+
104
+ if ($collection->count() == 0) {
105
+ return false;
106
+ }
107
+
108
+ foreach ($collection as $item) {
109
+ $giftCardIds[] = $item->getId();
110
+ }
111
+
112
+ return $this->exportGiftCardList($giftCardIds, $format);
113
+ }
114
+ public function exportGiftCardList($giftCardIds, $format)
115
+ {
116
+ $collection = Mage::getModel('giftcard/giftcard')->getCollection()
117
+ ->addFieldToFilter('entity_id', array('in' => $giftCardIds));
118
+
119
+ $export = null;
120
+ switch ($format) {
121
+ case 'xlsx':
122
+ $adapter = Mage::getModel('giftcard/export_adapter_excel');
123
+ $file = Mage::helper('giftcard')->getExportFileTmpName('.xlsx');
124
+ $export = Mage::getModel('giftcard/export_collection');
125
+ break;
126
+ case 'csv':
127
+ $adapter = Mage::getModel('giftcard/export_adapter_csv');
128
+ $file = Mage::helper('giftcard')->getExportFileTmpName('.csv');
129
+ $export = Mage::getModel('giftcard/export_collection');
130
+ break;
131
+ case 'pdf':
132
+ $adapter = Mage::getModel('giftcard/export_adapter_pdf');
133
+ $file = Mage::helper('giftcard')->getExportFileTmpName('.pdf');
134
+ $export = Mage::getModel('giftcard/export_object');
135
+ break;
136
+ case 'zip':
137
+ $adapter = Mage::getModel('giftcard/export_adapter_zip');
138
+ $file = Mage::helper('giftcard')->getExportFileTmpName('.zip');
139
+ $export = Mage::getModel('giftcard/export_object');
140
+ break;
141
+ }
142
+
143
+ if ($export == null)
144
+ throw new Mage_Core_Exception(Mage::helper('giftcard')->__('Bad file format'));
145
+
146
+ $export->setCollection($collection);
147
+ $export->setAdapter($adapter);
148
+ $export->exportToFile($file);
149
+
150
+ return array(
151
+ 'type' => 'filename',
152
+ 'value' => $file,
153
+ 'rm' => true // can delete file after use
154
+ );
155
+ }
156
  }
app/code/community/MT/Giftcard/Model/Observer.php CHANGED
@@ -1,199 +1,190 @@
1
- <?php
2
-
3
- class MT_Giftcard_Model_Observer
4
- {
5
-
6
- public function allowZeroCreditMemo($observer)
7
- {
8
- if (!Mage::helper('giftcard')->isActive())
9
- return;
10
-
11
- $creditMemo = $observer->getCreditmemo();
12
- $order = $creditMemo->getOrder();
13
- if($order->getBaseMtGiftCardTotal()!=0)
14
- $creditMemo->setAllowZeroGrandTotal(1);
15
- }
16
-
17
- public function forcedCreditMemo($observer)
18
- {
19
- $order = $observer->getOrder();
20
- if ($order->getBaseMtGiftCardTotal() != 0) {
21
- $order->setForcedCanCreditmemo(1);
22
- }
23
- }
24
-
25
- public function createGiftCard($event)
26
- {
27
- $order = $event->getOrder();
28
- Mage::getModel('giftcard/giftcard_action')->assignGiftCardToOrder($order);
29
- }
30
-
31
- public function activeGiftCard($observer)
32
- {
33
- if (!Mage::helper('giftcard')->isActive())
34
- return;
35
-
36
- $order = $observer->getInvoice()->getOrder();
37
- $giftCardCollection = Mage::getModel('giftcard/giftcard')->getCollection()
38
- ->addFieldToFilter('order_id', $order->getId())
39
- ->addFieldToFilter('status', MT_Giftcard_Model_Giftcard::STATUS_PENDING);
40
-
41
- if ($giftCardCollection->count() == 0)
42
- return;
43
-
44
- foreach ($giftCardCollection as $giftCard) {
45
- $giftCard->setStatus(MT_Giftcard_Model_Giftcard::STATUS_SOLD);
46
- $giftCard->setExpiredAt();
47
- $giftCard->save();
48
- }
49
-
50
- return;
51
- }
52
-
53
- public function deactivateGiftCard($observer)
54
- {
55
- if (!Mage::helper('giftcard')->isActive())
56
- return;
57
-
58
- $order = $observer->getCreditmemo()->getOrder();
59
- $giftCardCollection = Mage::getModel('giftcard/giftcard')->getCollection()
60
- ->addFieldToFilter('order_id', $order->getId())
61
- ->addFieldToFilter('status', MT_Giftcard_Model_Giftcard::STATUS_SOLD);
62
-
63
- if ($giftCardCollection->count() == 0)
64
- return;
65
-
66
- foreach ($giftCardCollection as $giftCard) {
67
- $giftCard->setStatus(MT_Giftcard_Model_Giftcard::STATUS_PENDING);
68
- $giftCard->save();
69
- }
70
-
71
- return;
72
- }
73
-
74
- public function catalogProductSaveAfter($observer)
75
- {
76
- $event = $observer->getEvent();
77
- $product = $event->getProduct();
78
- $request = $event->getRequest();
79
- $links = Mage::app()->getRequest()->getPost('links');
80
-
81
- if (isset($links['giftcard']))
82
- Mage::getModel('giftcard/series_action')->assignGiftCardSeriesToProduct($product->getId(), Mage::helper('adminhtml/js')->decodeGridSerializedInput($links['giftcard']));
83
- }
84
-
85
- public function discountGiftCardBalance($observer)
86
- {
87
- if (!Mage::helper('giftcard')->isActive())
88
- return;
89
-
90
- $order = $observer->getEvent()->getOrder();
91
- $quote = Mage::getSingleton('checkout/cart')->getQuote();
92
- $address = $quote->getShippingAddress();
93
- if (!$address) {
94
- return;
95
- }
96
-
97
- $discountedFromGiftCard = $address->getMtGiftCardTotal()*-1;
98
- $giftCardData = $order->getMtGiftCard();
99
- $giftCards = Mage::helper('giftcard')->getGiftCardCodeArray($giftCardData);
100
- $giftCardData = unserialize($giftCardData);
101
-
102
- if ($discountedFromGiftCard == 0)
103
- return;
104
-
105
- if (count($giftCards) == 0)
106
- throw new Mage_Core_Exception(Mage::helper('giftcard')->__('Gift Card is no longer available to use.'));
107
-
108
-
109
- $totalBalance = 0;
110
- $giftCardCollection = Mage::getModel('giftcard/giftcard')->getCollection()
111
- ->addFieldToFilter('code', array('in' => $giftCards))
112
- ->addFieldToFilter('status', MT_Giftcard_Model_Giftcard::STATUS_SOLD)
113
- ->addFieldToFilter('balance', array('gt' => 0));
114
-
115
-
116
- foreach ($giftCardCollection as $giftCard) {
117
- if (!is_numeric($giftCard->getId()))
118
- throw new Mage_Core_Exception(Mage::helper('giftcard')->__('Bad gift card code'));
119
- if ($giftCard->getStatus() != MT_Giftcard_Model_Giftcard::STATUS_SOLD)
120
- throw new Mage_Core_Exception(Mage::helper('giftcard')->__('Gift Card "%s" is no longer available to use.', $giftCard->getCode()));
121
- $totalBalance += $giftCard->getBalance();
122
- }
123
-
124
- if ($totalBalance < $discountedFromGiftCard)
125
- throw new Mage_Core_Exception(Mage::helper('giftcard')->__('Not enough balance in gift card'));
126
-
127
- $discountLabel = '';
128
- foreach ($giftCardCollection as $giftCard) {
129
- $giftCardBalance = $giftCard->getBalance();
130
- if ($discountedFromGiftCard >= $giftCardBalance)
131
- $discount = $giftCardBalance;
132
- else
133
- $discount = $discountedFromGiftCard;
134
-
135
- $balance = $giftCardBalance - $discount;
136
- $giftCard->setBalance($balance);
137
- if ($giftCard->getBalance() <= 0)
138
- $giftCard->setStatus(MT_Giftcard_Model_Giftcard::STATUS_INACTIVE);
139
-
140
- $giftCard->save();
141
- $discountedFromGiftCard -= $discount;
142
- $discountLabel .= $giftCard->getCode().' (-'.Mage::helper('core')->currency($discount, true, false).'), ';
143
-
144
- foreach ($giftCardData as $key => $item) {
145
- if ($item['code'] == $giftCard->getCode())
146
- $giftCardData[$key]['discount'] = -$discount;
147
- }
148
-
149
- if ($totalBalance <= 0)
150
- break;
151
- }
152
- $order->setMtGiftCardDescription(rtrim($discountLabel, ', '));
153
- $order->setMtGiftCard(serialize($giftCardData));
154
- $order->setForcedCanCreditmemo(0);
155
- $order->save();
156
- }
157
-
158
- public function refundGiftCardBalance($observer)
159
- {
160
- $params = Mage::app()->getRequest()->getParam('gift_card');
161
-
162
- if (count($params) == 0)
163
- return;
164
-
165
- $order = $observer->getCreditmemo()->getOrder();
166
- $giftCards = unserialize($order->getMtGiftCard());
167
-
168
- if (count($giftCards) == 0)
169
- return;
170
-
171
- foreach ($params as $giftCardId => $refundValue)
172
- {
173
- $giftCard = Mage::getModel('giftcard/giftcard')->load($giftCardId);
174
- if (!$giftCard->getId())
175
- continue;
176
-
177
- if ($giftCard->getStatus() == MT_Giftcard_Model_Giftcard::STATUS_INACTIVE
178
- && $giftCard->getBalance() == 0
179
- && $refundValue != 0
180
- )
181
- $giftCard->setStatus(MT_Giftcard_Model_Giftcard::STATUS_SOLD);
182
-
183
- $giftCard->setBalance(($giftCard->getBalance()+$refundValue));
184
- $giftCard->save();
185
-
186
- foreach ($giftCards as $key => $giftCardData) {
187
- if ($giftCardData['code'] == $giftCard->getCode())
188
- $giftCards[$key]['refunded'] = $refundValue;
189
- }
190
- }
191
-
192
- $creditMemo = $observer->getCreditmemo();
193
- $creditMemo->getOrder()->setMtGiftCard(serialize($giftCards));
194
- $creditMemo->getOrder()->setForcedCanCreditmemo(0);
195
- $creditMemo->setMtGiftCard(serialize($giftCards));
196
-
197
- return;
198
- }
199
  }
1
+ <?php
2
+
3
+ class MT_Giftcard_Model_Observer
4
+ {
5
+
6
+ public function allowZeroCreditMemo($observer)
7
+ {
8
+ if (!Mage::helper('giftcard')->isActive())
9
+ return;
10
+
11
+ $creditMemo = $observer->getCreditmemo();
12
+ $order = $creditMemo->getOrder();
13
+ if($order->getBaseMtGiftCardTotal()!=0)
14
+ $creditMemo->setAllowZeroGrandTotal(1);
15
+ }
16
+
17
+ public function createGiftCard($event)
18
+ {
19
+ $order = $event->getOrder();
20
+ Mage::getModel('giftcard/giftcard_action')->assignGiftCardToOrder($order);
21
+
22
+ Mage::dispatchEvent('giftcard_active_after', array('order' => $order));
23
+ }
24
+
25
+ public function activeGiftCard($observer)
26
+ {
27
+ if (!Mage::helper('giftcard')->isActive())
28
+ return;
29
+
30
+ $order = $observer->getInvoice()->getOrder();
31
+ $giftCardCollection = Mage::getModel('giftcard/giftcard')->getCollection()
32
+ ->addFieldToFilter('order_id', $order->getId())
33
+ ->addFieldToFilter('status', MT_Giftcard_Model_Giftcard::STATUS_PENDING);
34
+
35
+ if ($giftCardCollection->count() == 0)
36
+ return;
37
+
38
+ foreach ($giftCardCollection as $giftCard) {
39
+ $giftCard->setStatus(MT_Giftcard_Model_Giftcard::STATUS_SOLD);
40
+ $giftCard->setExpiredAt();
41
+ $giftCard->save();
42
+ }
43
+ Mage::dispatchEvent('giftcard_active_after', array('order' => $order));
44
+ return;
45
+ }
46
+
47
+ public function deactivateGiftCard($observer)
48
+ {
49
+ if (!Mage::helper('giftcard')->isActive())
50
+ return;
51
+
52
+ $order = $observer->getCreditmemo()->getOrder();
53
+ $giftCardCollection = Mage::getModel('giftcard/giftcard')->getCollection()
54
+ ->addFieldToFilter('order_id', $order->getId())
55
+ ->addFieldToFilter('status', MT_Giftcard_Model_Giftcard::STATUS_SOLD);
56
+
57
+ if ($giftCardCollection->count() == 0)
58
+ return;
59
+
60
+ foreach ($giftCardCollection as $giftCard) {
61
+ $giftCard->setStatus(MT_Giftcard_Model_Giftcard::STATUS_INACTIVE);
62
+ $giftCard->save();
63
+ }
64
+
65
+ return;
66
+ }
67
+
68
+ public function catalogProductSaveAfter($observer)
69
+ {
70
+ $event = $observer->getEvent();
71
+ $product = $event->getProduct();
72
+ $request = $event->getRequest();
73
+ $links = Mage::app()->getRequest()->getPost('links');
74
+
75
+ if (isset($links['giftcard']))
76
+ Mage::getModel('giftcard/series_action')->assignGiftCardSeriesToProduct($product->getId(), Mage::helper('adminhtml/js')->decodeGridSerializedInput($links['giftcard']));
77
+ }
78
+
79
+ public function discountGiftCardBalance($observer)
80
+ {
81
+ if (!Mage::helper('giftcard')->isActive())
82
+ return;
83
+
84
+ $order = $observer->getEvent()->getOrder();
85
+ $quote = Mage::getSingleton('checkout/cart')->getQuote();
86
+ $baseCurrency = $quote->getBaseCurrencyCode();
87
+ $quoteCurrency = $quote->getQuoteCurrencyCode();
88
+ $addressesCollection = $quote->getAddressesCollection();
89
+ $giftCardQuote = Mage::getModel('giftcard/quote');
90
+
91
+ foreach ($addressesCollection as $address) {
92
+ $discountLabel = '';
93
+ $totalGiftCardBalance = 0;
94
+
95
+ //in base currency
96
+ $discountedFromGiftCard = $address->getBaseMtGiftCardTotal() * -1;
97
+ if ($discountedFromGiftCard == 0)
98
+ continue;
99
+
100
+ $giftCardCollection = $giftCardQuote->getGiftCardCollection($quote->getId());
101
+
102
+ $totalGiftCardBalance = $this->getTotalBalance($giftCardCollection, $baseCurrency);
103
+ if ($totalGiftCardBalance < $discountedFromGiftCard)
104
+ throw new Mage_Core_Exception(Mage::helper('giftcard')->__('Not enough balance in gift card'));
105
+
106
+ foreach ($giftCardCollection as $giftCard) {
107
+ $giftCardBalance = $giftCard->getBalance($baseCurrency);
108
+ if ($discountedFromGiftCard >= $giftCardBalance) {
109
+ $discount = $giftCardBalance;
110
+ } else {
111
+ $discount = $discountedFromGiftCard;
112
+ }
113
+
114
+ //in base currency
115
+ $balance = $giftCardBalance - $discount;
116
+ $giftCard->discount($balance, $baseCurrency);
117
+ $discountedFromGiftCard -= $discount;
118
+
119
+ if ($quoteCurrency == $baseCurrency) {
120
+ $quoteDiscount = $discount;
121
+ } else {
122
+ $quoteDiscount = Mage::helper('directory')->currencyConvert(
123
+ $discount,
124
+ $baseCurrency,
125
+ $quoteCurrency
126
+ );
127
+ $quoteDiscount = number_format($quoteDiscount, 2);
128
+ }
129
+
130
+ Mage::getModel('giftcard/order')->addGiftCardByCode($order->getId(), $giftCard->getCode(), $quoteDiscount, $discount);
131
+
132
+ if ($totalGiftCardBalance <= 0 || $discountedFromGiftCard <= 0)
133
+ break;
134
+ }
135
+ }
136
+ }
137
+
138
+ protected function getTotalBalance($giftCardCollection, $currency)
139
+ {
140
+ $totalGiftCardBalance = 0;
141
+ foreach ($giftCardCollection as $giftCard) {
142
+ $totalGiftCardBalance += $giftCard->getBalance($currency);
143
+ }
144
+ return $totalGiftCardBalance;
145
+ }
146
+
147
+ public function refundGiftCardBalance($observer)
148
+ {
149
+ $giftCardOrderItemIds = Mage::app()->getRequest()->getParam('gift_card_order_item');
150
+ if (count($giftCardOrderItemIds) == 0)
151
+ return;
152
+
153
+ $totalRefund = 0;
154
+ $totalBaseRefund = 0;
155
+ $creditMemo = $observer->getCreditmemo();
156
+ $order = $creditMemo->getOrder();
157
+ $baseCurrency = $order->getBaseCurrencyCode();
158
+ $orderCurrency = $order->getOrderCurrencyCode();
159
+
160
+ foreach ($giftCardOrderItemIds as $itemId => $baseRefundValue)
161
+ {
162
+ $giftCardOrder = Mage::getModel('giftcard/order')->load($itemId);
163
+ if (!$giftCardOrder->getId()) {
164
+ continue;
165
+ }
166
+ $giftCard = $giftCardOrder->getGiftCard();
167
+ if (!$giftCard->getId() || $baseRefundValue == 0) {
168
+ continue;
169
+ }
170
+ $giftCard->refund($baseRefundValue, $baseCurrency);
171
+
172
+ if ($orderCurrency == $baseCurrency) {
173
+ $refundValue = $baseRefundValue;
174
+ } else {
175
+ $refundValue = Mage::helper('directory')->currencyConvert(
176
+ $baseRefundValue,
177
+ $baseCurrency,
178
+ $orderCurrency
179
+ );
180
+ $refundValue = number_format($refundValue, 2);
181
+ }
182
+ $giftCardOrder->setBaseRefund($baseRefundValue);
183
+ $giftCardOrder->setRefund($refundValue);
184
+ $giftCardOrder->save();
185
+ $totalRefund+=$refundValue;
186
+ $totalBaseRefund+=$baseRefundValue;
187
+ }
188
+ return;
189
+ }
 
 
 
 
 
 
 
 
 
190
  }
app/code/community/MT/Giftcard/Model/Order.php ADDED
@@ -0,0 +1,87 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class MT_Giftcard_Model_Order extends Mage_Core_Model_Abstract
4
+ {
5
+ private $__giftCardCollection = array();
6
+
7
+ private $__itemCollection = array();
8
+
9
+ protected function _construct()
10
+ {
11
+ $this->_init('giftcard/order');
12
+ }
13
+
14
+ public function addGiftCardByCode($orderId, $giftCardCode, $discount = 0, $baseDiscount = 0)
15
+ {
16
+
17
+ if ($this->isAddedToOrder($orderId, $giftCardCode)) {
18
+ throw new Exception('Something is wrong. Gift card already exist in order!');
19
+ }
20
+
21
+ $this->setOrderId($orderId);
22
+ $this->setGiftCardCode($giftCardCode);
23
+ $this->setDiscount($discount);
24
+ $this->setBaseDiscount($baseDiscount);
25
+ $this->save();
26
+
27
+ if (!$this->getId()) {
28
+ return false;
29
+ }
30
+
31
+ return true;
32
+ }
33
+
34
+ public function isAddedToOrder($orderId, $giftCardCode)
35
+ {
36
+ $giftCardCollection = $this->getCollection()
37
+ ->addFieldToFilter('gift_card_code', $giftCardCode)
38
+ ->addFieldToFilter('order_id', $orderId);
39
+ return count($giftCardCollection) == 1;
40
+ }
41
+
42
+ public function getGiftCardCollection($orderId)
43
+ {
44
+ if (!isset($this->__giftCardCollection[$orderId])) {
45
+ $quoteCollection = Mage::getModel('giftcard/order')->getCollection()
46
+ ->addFieldToFilter('order_id', $orderId);
47
+ if (count($quoteCollection) == 0) {
48
+ $this->__giftCardCollection[$orderId] = null;
49
+ }
50
+ $gifCardIds = array();
51
+ foreach ($quoteCollection as $item) {
52
+ $gifCardIds[] = $item->getGiftCardId();
53
+ }
54
+
55
+ $giftCardCollection = Mage::getModel('giftcard/giftcard')->getCollection()
56
+ ->addFieldToFilter('entity_id', array('in' => $gifCardIds));
57
+
58
+ $this->__giftCardCollection[$orderId] = $giftCardCollection;
59
+ }
60
+
61
+ return $this->__giftCardCollection[$orderId];
62
+ }
63
+
64
+ public function getCollectionByOrderId($orderId)
65
+ {
66
+ if (!isset($this->__itemCollection[$orderId])) {
67
+ $collection = Mage::getModel('giftcard/order')->getCollection()
68
+ ->addFieldToFilter('order_id', $orderId);
69
+
70
+ if ($collection->count() == 0) {
71
+ $this->__itemCollection[$orderId] = null;
72
+ }
73
+ $this->__itemCollection[$orderId] = $collection;
74
+ }
75
+ return $this->__itemCollection[$orderId];
76
+ }
77
+
78
+ public function getGiftCard()
79
+ {
80
+ if (!$this->getId()) {
81
+ return null;
82
+ }
83
+
84
+ $gifCard = Mage::getModel('giftcard/giftcard')->loadByCode($this->getGiftCardCode());
85
+ return $gifCard;
86
+ }
87
+ }
app/code/community/MT/Giftcard/Model/Quote.php ADDED
@@ -0,0 +1,195 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class MT_Giftcard_Model_Quote extends Mage_Core_Model_Abstract
4
+ {
5
+
6
+ private $__error = '';
7
+
8
+ private $__giftCardCollection = array();
9
+
10
+ protected function _construct()
11
+ {
12
+ $this->_init('giftcard/quote');
13
+ }
14
+
15
+ public function isGiftCardCodeValid($quoteId, $giftCardCode)
16
+ {
17
+ $helper = Mage::helper('giftcard');
18
+ $codeLength = strlen($giftCardCode);
19
+ $isCodeLengthValid = $codeLength > 0 && $codeLength <= MT_Giftcard_Model_Giftcard::GIFT_CARD_CODE_MAX_LENGTH;
20
+
21
+ if (!$isCodeLengthValid) {
22
+ $this->setError($helper->__('Bad gift card code.'));
23
+ return false;
24
+ }
25
+
26
+ $giftCard = Mage::getModel('giftcard/giftcard');
27
+ $giftCard->loadByCode($giftCardCode);
28
+ if (!$giftCard->getId() || !$giftCard->isSold()) {
29
+ $this->setError($helper->__('Bad gift card code.'));
30
+ return false;
31
+ }
32
+
33
+ if ($this->isAddedToQuote($quoteId, $giftCard->getId())) {
34
+ $this->setError($helper->__('This gift card already added.'));
35
+ return false;
36
+ }
37
+
38
+ return true;
39
+ }
40
+
41
+ public function setError($errorMsg)
42
+ {
43
+ $this->__error = $errorMsg;
44
+ }
45
+
46
+ public function getError()
47
+ {
48
+ return $this->__error;
49
+ }
50
+
51
+ public function addGiftCardByCode($quoteId, $giftCardCode)
52
+ {
53
+ if (!$this->isGiftCardCodeValid($quoteId, $giftCardCode)) {
54
+ throw new Mage_Core_Exception($this->getError());
55
+ }
56
+
57
+ $giftCard = Mage::getModel('giftcard/giftcard');
58
+ $giftCard->loadByCode($giftCardCode);
59
+
60
+ $this->setQuoteId($quoteId);
61
+ $this->setGiftCardId($giftCard->getId());
62
+ $this->save();
63
+
64
+ if (!$this->getId()) {
65
+ return false;
66
+ }
67
+
68
+ return true;
69
+ }
70
+
71
+ public function removeGiftCardArrayFromQuote($quoteId, array $codes)
72
+ {
73
+ if (count($codes) == 0) {
74
+ return true;
75
+ }
76
+
77
+ foreach ($codes as $code) {
78
+ $this->removeGiftCardByCode($quoteId, $code);
79
+ }
80
+
81
+ return true;
82
+ }
83
+
84
+ public function removeGiftCardByCode($quoteId, $code)
85
+ {
86
+ $giftCard = Mage::getModel('giftcard/giftcard')->loadByCode($code);
87
+ if (!$giftCard->getId()) {
88
+ return false;
89
+ }
90
+
91
+ $giftCardQuote = Mage::getModel('giftcard/quote')->getCollection()
92
+ ->addFieldToFilter('gift_card_id', $giftCard->getId())
93
+ ->addFieldToFilter('quote_id', $quoteId);
94
+
95
+ if ($giftCardQuote->count() == 0) {
96
+ return false;
97
+ }
98
+
99
+ foreach ($giftCardQuote as $item) {
100
+ $item->delete();
101
+ }
102
+
103
+ return true;
104
+ }
105
+
106
+ public function removeAllGiftCardFromQuote($quoteId)
107
+ {
108
+ $giftCardQuote = Mage::getModel('giftcard/quote')->getCollection()
109
+ ->addFieldToFilter('quote_id', $quoteId);
110
+
111
+ if ($giftCardQuote->count() == 0) {
112
+ return false;
113
+ }
114
+
115
+ foreach ($giftCardQuote as $item) {
116
+ $item->delete();
117
+ }
118
+
119
+ return true;
120
+ }
121
+
122
+ public function isAddedToQuote($quoteId, $giftCardId)
123
+ {
124
+ $giftCardCollection = $this->getCollection()
125
+ ->addFieldToFilter('gift_card_id', $giftCardId)
126
+ ->addFieldToFilter('quote_id', $quoteId);
127
+ return count($giftCardCollection) == 1;
128
+ }
129
+
130
+ public function getGiftCardCollection($quoteId)
131
+ {
132
+ if (!isset($this->__giftCardCollection[$quoteId])) {
133
+ $quoteCollection = Mage::getModel('giftcard/quote')->getCollection()
134
+ ->addFieldToFilter('quote_id', $quoteId);
135
+ if (count($quoteCollection) == 0) {
136
+ $this->__giftCardCollection[$quoteId] = null;
137
+ }
138
+ $gifCardIds = array();
139
+ foreach ($quoteCollection as $item) {
140
+ $gifCardIds[] = $item->getGiftCardId();
141
+ }
142
+
143
+ $giftCardCollection = Mage::getModel('giftcard/giftcard')->getCollection()
144
+ ->addFieldToFilter('entity_id', array('in' => $gifCardIds))
145
+ ->addFieldToFilter('status', MT_Giftcard_Model_Giftcard::STATUS_SOLD)
146
+ ->addFieldToFilter('balance', array('gt' => 0));
147
+
148
+ $this->__giftCardCollection[$quoteId] = $giftCardCollection;
149
+ }
150
+
151
+ return $this->__giftCardCollection[$quoteId];
152
+ }
153
+
154
+ public function calculateDiscount(Mage_Sales_Model_Quote_Address $address, $currencyCode)
155
+ {
156
+ $giftCardDiscount = 0;
157
+ $total = 0;
158
+ $totals = $address->getAllTotalAmounts();
159
+ $quote = $address->getQuote();
160
+ if (count($totals) > 0) {
161
+ foreach ($totals as $amount) {
162
+ $total+=$amount;
163
+ }
164
+ }
165
+ if ($total > 0) {
166
+ $giftCardDiscount = 0;
167
+ $appliedGiftCardCollection = $this->getGiftCardCollection($quote->getId());
168
+ if (count($appliedGiftCardCollection) > 0) {
169
+ foreach ($appliedGiftCardCollection as $giftCard){
170
+ $balance = $giftCard->getBalance($currencyCode);
171
+ $giftCardDiscount-=$balance;
172
+ }
173
+ }
174
+
175
+ //if total less than gift cards balance
176
+ if ($giftCardDiscount < $total*-1)
177
+ $giftCardDiscount = $total*-1;
178
+ }
179
+
180
+ return $giftCardDiscount;
181
+ }
182
+
183
+ public function saveDiscount($quoteId, $giftCardId, $discount, $baseDiscount)
184
+ {
185
+ $giftCardQuote = Mage::getModel('giftcard/quote')->getCollection()
186
+ ->addFieldToFilter('gift_card_id', $giftCardId)
187
+ ->addFieldToFilter('quote_id', $quoteId);
188
+
189
+ foreach ($giftCardQuote as $item) {
190
+ $item->setDiscount($discount);
191
+ $item->setBaseDiscount($baseDiscount);
192
+ $item->save();
193
+ }
194
+ }
195
+ }
app/code/community/MT/Giftcard/Model/Resource/Giftcard/Collection.php CHANGED
@@ -5,5 +5,4 @@ class MT_Giftcard_Model_Resource_Giftcard_Collection extends Mage_Core_Model_Mys
5
  {
6
  $this->_init('giftcard/giftcard');
7
  }
8
-
9
  }
5
  {
6
  $this->_init('giftcard/giftcard');
7
  }
 
8
  }
app/code/community/MT/Giftcard/Model/Resource/Order.php ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class MT_Giftcard_Model_Resource_Order extends Mage_Core_Model_Mysql4_Abstract
3
+ {
4
+ protected function _construct()
5
+ {
6
+ $this->_init('giftcard/order', 'entity_id');
7
+ }
8
+ }
app/code/community/MT/Giftcard/Model/Resource/Order/Collection.php ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class MT_Giftcard_Model_Resource_Order_Collection
3
+ extends Mage_Core_Model_Mysql4_Collection_Abstract
4
+ {
5
+ protected function _construct()
6
+ {
7
+ $this->_init('giftcard/order');
8
+ }
9
+ }
app/code/community/MT/Giftcard/Model/Resource/Quote.php ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class MT_Giftcard_Model_Resource_Quote extends Mage_Core_Model_Mysql4_Abstract
3
+ {
4
+ protected function _construct()
5
+ {
6
+ $this->_init('giftcard/quote', 'entity_id');
7
+ }
8
+ }
app/code/community/MT/Giftcard/Model/Resource/Quote/Collection.php ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class MT_Giftcard_Model_Resource_Quote_Collection
3
+ extends Mage_Core_Model_Mysql4_Collection_Abstract
4
+ {
5
+ protected function _construct()
6
+ {
7
+ $this->_init('giftcard/quote');
8
+ }
9
+ }
app/code/community/MT/Giftcard/Model/Resource/Series.php CHANGED
@@ -6,5 +6,4 @@ class MT_Giftcard_Model_Resource_Series extends Mage_Core_Model_Mysql4_Abstract
6
  $this->_init('giftcard/series', 'entity_id');
7
  }
8
 
9
-
10
  }
6
  $this->_init('giftcard/series', 'entity_id');
7
  }
8
 
 
9
  }
app/code/community/MT/Giftcard/Model/Resource/Series/Collection.php CHANGED
@@ -5,6 +5,4 @@ class MT_Giftcard_Model_Resource_Series_Collection extends Mage_Core_Model_Mysql
5
  {
6
  $this->_init('giftcard/series');
7
  }
8
-
9
-
10
  }
5
  {
6
  $this->_init('giftcard/series');
7
  }
 
 
8
  }
app/code/community/MT/Giftcard/Model/Sales/Order/Creditmemo/Total/Giftcard.php CHANGED
@@ -1,19 +1,14 @@
1
- <?php
2
-
3
- class MT_Giftcard_Model_Sales_Order_Creditmemo_Total_Giftcard
4
- extends Mage_Sales_Model_Order_Creditmemo_Total_Abstract
5
- {
6
-
7
-
8
- public function collect(Mage_Sales_Model_Order_Creditmemo $creditmemo)
9
- {
10
- parent::collect($creditmemo);
11
- $order = $creditmemo->getOrder();
12
- $giftCardRefund = $order->getMtGiftCardTotal();
13
- $baseGiftCardRefund = $order->getBaseMtGiftCardTotal();
14
-
15
- $creditmemo->setGrandTotal($creditmemo->getGrandTotal() + $giftCardRefund);
16
- $creditmemo->setBaseGrandTotal($creditmemo->getBaseGrandTotal() + $baseGiftCardRefund);
17
- return $this;
18
- }
19
- }
1
+ <?php
2
+
3
+ class MT_Giftcard_Model_Sales_Order_Creditmemo_Total_Giftcard
4
+ extends Mage_Sales_Model_Order_Creditmemo_Total_Abstract
5
+ {
6
+ public function collect(Mage_Sales_Model_Order_Creditmemo $creditmemo)
7
+ {
8
+ parent::collect($creditmemo);
9
+ $order = $creditmemo->getOrder();
10
+ $creditmemo->setGrandTotal($creditmemo->getGrandTotal() + $order->getMtGiftCardTotal());
11
+ $creditmemo->setBaseGrandTotal($creditmemo->getBaseGrandTotal() + $order->getBaseMtGiftCardTotal());
12
+ return $this;
13
+ }
14
+ }
 
 
 
 
 
app/code/community/MT/Giftcard/Model/Sales/Quote/Total/Giftcard.php CHANGED
@@ -1,53 +1,44 @@
1
- <?php
2
-
3
- class MT_Giftcard_Model_Sales_Quote_Total_Giftcard
4
- extends Mage_Sales_Model_Quote_Address_Total_Abstract
5
- {
6
- private $__calculator = null;
7
-
8
- public function __construct()
9
- {
10
- $this->__calculator = Mage::getSingleton('giftcard/sales_discount');
11
- }
12
-
13
- protected function _getCalc()
14
- {
15
- return $this->__calculator;
16
- }
17
-
18
- public function collect(Mage_Sales_Model_Quote_Address $address)
19
- {
20
- parent::collect($address);
21
-
22
- $discount = $this->_getCalc()->getQuoteTotalDiscount($address);
23
-
24
- $this->_addAmount($discount);
25
- $this->_addBaseAmount($discount);
26
-
27
- $address->setMtGiftCardTotal($discount);
28
- $address->setBaseMtGiftCardTotal($discount);
29
- return $this;
30
- }
31
-
32
- public function fetch(Mage_Sales_Model_Quote_Address $address)
33
- {
34
-
35
- if ($address->getMtGiftCardTotal() < 0) {
36
- $giftCardDiscount = $address->getMtGiftCardTotal();
37
- $description = $address->getGiftCardDescription();
38
- if (strlen($description)) {
39
- $title = Mage::helper('giftcard')->__('Gift Card Discount (%s)', $description);
40
- } else {
41
- $title = Mage::helper('giftcard')->__('Gift Card Discount');
42
- }
43
-
44
-
45
- $address->addTotal(array(
46
- 'code' => $this->getCode(),
47
- 'title' => $title,
48
- 'value' => $giftCardDiscount
49
- ));
50
- }
51
- return $this;
52
- }
53
- }
1
+ <?php
2
+
3
+ class MT_Giftcard_Model_Sales_Quote_Total_Giftcard
4
+ extends Mage_Sales_Model_Quote_Address_Total_Abstract
5
+ {
6
+
7
+ public function collect(Mage_Sales_Model_Quote_Address $address)
8
+ {
9
+ parent::collect($address);
10
+
11
+ $giftCardQuote = Mage::getModel('giftcard/quote');
12
+ $quote = $address->getQuote();
13
+ $baseDiscount = $giftCardQuote->calculateDiscount($address, $quote->getBaseCurrencyCode());
14
+ $discount = $giftCardQuote->calculateDiscount($address, $quote->getQuoteCurrencyCode());
15
+
16
+ $this->_addAmount($discount);
17
+ $this->_addBaseAmount($baseDiscount);
18
+
19
+ $address->setMtGiftCardTotal($discount);
20
+ $address->setBaseMtGiftCardTotal($baseDiscount);
21
+ return $this;
22
+ }
23
+
24
+ public function fetch(Mage_Sales_Model_Quote_Address $address)
25
+ {
26
+
27
+ if ($address->getMtGiftCardTotal() < 0) {
28
+ $giftCardDiscount = $address->getMtGiftCardTotal();
29
+ $description = $address->getGiftCardDescription();
30
+ if (strlen($description)) {
31
+ $title = Mage::helper('giftcard')->__('Gift Card Discount (%s)', $description);
32
+ } else {
33
+ $title = Mage::helper('giftcard')->__('Gift Card Discount');
34
+ }
35
+
36
+ $address->addTotal(array(
37
+ 'code' => $this->getCode(),
38
+ 'title' => $title,
39
+ 'value' => $giftCardDiscount
40
+ ));
41
+ }
42
+ return $this;
43
+ }
44
+ }
 
 
 
 
 
 
 
 
 
app/code/community/MT/Giftcard/Model/Series.php CHANGED
@@ -158,4 +158,9 @@ class MT_Giftcard_Model_Series extends Mage_Core_Model_Abstract
158
 
159
  return $seriesCollection;
160
  }
 
 
 
 
 
161
  }
158
 
159
  return $seriesCollection;
160
  }
161
+
162
+ public function getCurrency()
163
+ {
164
+ return Mage::app()->getStore()->getBaseCurrencyCode();
165
+ }
166
  }
app/code/community/MT/Giftcard/controllers/Checkout/CartController.php CHANGED
@@ -1,312 +1,225 @@
1
- <?php
2
-
3
- class MT_Giftcard_Checkout_CartController
4
- extends Mage_Core_Controller_Front_Action
5
- {
6
-
7
- public function clearGiftCardCodeAjaxAction()
8
- {
9
- $error = false;
10
- $success = false;
11
- try {
12
- $this->_getQuote()->getShippingAddress()->setCollectShippingRates(true);
13
- $this->_getQuote()->setMtGiftCard('')
14
- ->collectTotals()
15
- ->save();
16
-
17
- if ($this->_getQuote()->getMtGiftCard() == '') {
18
- $success = $this->__('Gift cards was deleted.');
19
- }
20
- } catch (Mage_Core_Exception $e) {
21
- $error = $e->getMessage();
22
- } catch (Exception $e) {
23
- $error = $this->__('Cannot delete the gift cards.');
24
- }
25
-
26
- $content = $this->getLayout()->createBlock('giftcard/payment_giftcard_form_giftcard','payment_giftcard_form_giftcard',array(
27
- 'error' => $error,
28
- 'success' => $success,
29
- ))->renderView();
30
-
31
- $this->getResponse()->setBody(json_encode(array(
32
- 'content' => $content
33
- )));
34
- }
35
-
36
- public function removeGiftCardCodeAjaxAction()
37
- {
38
- $removeCode = $this->getRequest()->getParam('giftcard_code');
39
- $error = false;
40
- $success = false;
41
-
42
- if (!empty($removeCode)) {
43
- $helper = Mage::helper('giftcard');
44
- $giftCardCodes = $helper->removeQuoteGiftCardCodes($this->_getQuote()->getMtGiftCard(), array($removeCode));
45
-
46
- try {
47
- $this->_getQuote()->getShippingAddress()->setCollectShippingRates(true);
48
- $this->_getQuote()->setMtGiftCard($giftCardCodes)
49
- ->collectTotals()
50
- ->save();
51
-
52
- if ($this->_getQuote()->getMtGiftCard() == $giftCardCodes) {
53
- $success = $this->__('Gift cards was deleted.');
54
- }
55
- } catch (Mage_Core_Exception $e) {
56
- $error = $e->getMessage();
57
- } catch (Exception $e) {
58
- $error = $this->__('Cannot delete the gift cards.');
59
- }
60
- }
61
-
62
- $content = $this->getLayout()->createBlock('giftcard/payment_giftcard_form_giftcard','payment_giftcard_form_giftcard',array(
63
- 'error' => $error,
64
- 'success' => $success,
65
- ))->renderView();
66
-
67
- $this->getResponse()->setBody(json_encode(array(
68
- 'content' => $content
69
- )));
70
- }
71
-
72
-
73
- public function addGiftCardCodeAjaxAction()
74
- {
75
- $error = false;
76
- $success = '';
77
-
78
- if ($this->_getCart()->getQuote()->getItemsCount()) {
79
- $giftCardCode = (string) $this->getRequest()->getParam('giftcard_code');
80
- $helper = Mage::helper('giftcard');
81
- try {
82
- $codeLength = strlen($giftCardCode);
83
- $isCodeLengthValid = $codeLength && $codeLength <= MT_Giftcard_Model_Giftcard::GIFT_CARD_CODE_MAX_LENGTH;
84
-
85
- if (!Mage::getModel('giftcard/giftcard')->isCodeActive($giftCardCode))
86
- throw new Mage_Core_Exception($helper->__('Bad gift card code.'));
87
-
88
-
89
- if ($helper->isGiftCardCodeAddedToQuote($this->_getQuote()->getMtGiftCard(), $giftCardCode))
90
- throw new Mage_Core_Exception($helper->__('This gift card already added.'));
91
-
92
- $this->_getQuote()->getShippingAddress()->setCollectShippingRates(true);
93
- $this->_getQuote()->setMtGiftCard(
94
- $helper->prepareQuoteGiftCard(
95
- $this->_getQuote()->getMtGiftCard(),
96
- $isCodeLengthValid ? $giftCardCode : ''
97
- ))
98
- ->collectTotals()
99
- ->save();
100
-
101
- if ($codeLength) {
102
- if ($isCodeLengthValid && $helper->isGiftCardCodeAddedToQuote($this->_getQuote()->getMtGiftCard(), $giftCardCode)) {
103
- $success = $this->__('Gift card "%s" was applied.', $giftCardCode);
104
- } else {
105
- $error = $this->__('Gift card "%s" is not valid.', $giftCardCode);
106
- }
107
- } else {
108
- $error = $this->__('Gift card was canceled.');
109
- }
110
-
111
- } catch (Mage_Core_Exception $e) {
112
- $error = $e->getMessage();
113
- } catch (Exception $e) {
114
- $error = $this->__('Cannot apply the gift card.');
115
- Mage::logException($e);
116
- }
117
- }
118
-
119
- $content = $this->getLayout()->createBlock('giftcard/payment_giftcard_form_giftcard','payment_giftcard_form_giftcard',array(
120
- 'error' => $error,
121
- 'success' => $success,
122
- ))->renderView();
123
-
124
- $this->getResponse()->setBody(json_encode(array(
125
- 'content' => $content
126
- )));
127
- }
128
-
129
- public function giftCardAjaxAction()
130
- {
131
- $error = false;
132
- $response = '';
133
-
134
- if ($this->_getCart()->getQuote()->getItemsCount()) {
135
- $giftCardCode = (string) $this->getRequest()->getParam('giftcard_code');
136
- $helper = Mage::helper('giftcard');
137
- try {
138
- $codeLength = strlen($giftCardCode);
139
- $isCodeLengthValid = $codeLength && $codeLength <= MT_Giftcard_Model_Giftcard::GIFT_CARD_CODE_MAX_LENGTH;
140
-
141
- if (!Mage::getModel('giftcard/giftcard')->isCodeActive($giftCardCode))
142
- throw new Mage_Core_Exception($helper->__('Bad gift card code.'));
143
-
144
-
145
- if ($helper->isGiftCardCodeAddedToQuote($this->_getQuote()->getMtGiftCard(), $giftCardCode))
146
- throw new Mage_Core_Exception($helper->__('This gift card already added.'));
147
-
148
- $this->_getQuote()->getShippingAddress()->setCollectShippingRates(true);
149
- $this->_getQuote()->setMtGiftCard(
150
- $helper->prepareQuoteGiftCard(
151
- $this->_getQuote()->getMtGiftCard(),
152
- $isCodeLengthValid ? $giftCardCode : ''
153
- ))
154
- ->collectTotals()
155
- ->save();
156
-
157
- if ($codeLength) {
158
- if ($isCodeLengthValid && $helper->isGiftCardCodeAddedToQuote($this->_getQuote()->getMtGiftCard(), $giftCardCode)) {
159
- $response = $this->__('Gift card "%s" was applied.', Mage::helper('core')->escapeHtml($giftCardCode));
160
- } else {
161
- $error = $this->__('Gift card "%s" is not valid.', Mage::helper('core')->escapeHtml($giftCardCode));
162
- }
163
- } else {
164
- $error = $this->__('Gift card was canceled.');
165
- }
166
-
167
- } catch (Mage_Core_Exception $e) {
168
- $error = $e->getMessage();
169
- } catch (Exception $e) {
170
- $error = $this->__('Cannot apply the gift card.');
171
- Mage::logException($e);
172
- }
173
- }
174
- $response = $this->getLayout()->createBlock('giftcard/payment_giftcard_form_giftcard','payment_giftcard_form_giftcard',array(
175
- 'error' => $error,
176
- ))->renderView();
177
-
178
- $this->getResponse()->setBody(json_encode(array(
179
- 'content' => $response
180
- )));
181
- }
182
-
183
- public function giftCardPostAction()
184
- {
185
- if ($this->getRequest()->getParam('remove') == 1) {
186
- $this->_forward('giftCardRemove');
187
- return;
188
- }
189
-
190
- if (!$this->_getCart()->getQuote()->getItemsCount()) {
191
- $this->_goBack();
192
- return;
193
- }
194
-
195
- $giftCardCode = (string) $this->getRequest()->getParam('giftcard_code');
196
- $helper = Mage::helper('giftcard');
197
- try {
198
- $codeLength = strlen($giftCardCode);
199
- $isCodeLengthValid = $codeLength && $codeLength <= MT_Giftcard_Model_Giftcard::GIFT_CARD_CODE_MAX_LENGTH;
200
-
201
- if (!Mage::getModel('giftcard/giftcard')->isCodeActive($giftCardCode))
202
- throw new Mage_Core_Exception($helper->__('Bad gift card code.'));
203
-
204
-
205
- if ($helper->isGiftCardCodeAddedToQuote($this->_getQuote()->getMtGiftCard(), $giftCardCode))
206
- throw new Mage_Core_Exception($helper->__('This gift card already added.'));
207
-
208
- $this->_getQuote()->getShippingAddress()->setCollectShippingRates(true);
209
- $this->_getQuote()->setMtGiftCard(
210
- $helper->prepareQuoteGiftCard(
211
- $this->_getQuote()->getMtGiftCard(),
212
- $isCodeLengthValid ? $giftCardCode : ''
213
- ))
214
- ->collectTotals()
215
- ->save();
216
-
217
- if ($codeLength) {
218
- if ($isCodeLengthValid && $helper->isGiftCardCodeAddedToQuote($this->_getQuote()->getMtGiftCard(), $giftCardCode)) {
219
- $this->_getSession()->addSuccess(
220
- $this->__('Gift card "%s" was applied.', Mage::helper('core')->escapeHtml($giftCardCode))
221
- );
222
- } else {
223
- $this->_getSession()->addError(
224
- $this->__('Gift card "%s" is not valid.', Mage::helper('core')->escapeHtml($giftCardCode))
225
- );
226
- }
227
- } else {
228
- $this->_getSession()->addSuccess($this->__('Gift card was canceled.'));
229
- }
230
-
231
- } catch (Mage_Core_Exception $e) {
232
- $this->_getSession()->addError($e->getMessage());
233
- } catch (Exception $e) {
234
- $this->_getSession()->addError($this->__('Cannot apply the gift card.'));
235
- Mage::logException($e);
236
- }
237
-
238
- $this->_goBack();
239
- }
240
-
241
- public function giftCardRemoveAction()
242
- {
243
- $removeCodes = $this->getRequest()->getParam('giftcard_remove');
244
-
245
- if (count($removeCodes) == 0) {
246
- $this->_goBack();
247
- $this->_getSession()->addError($this->__('Please select Gift Cards which want to remove.'));
248
- return;
249
- }
250
- $helper = Mage::helper('giftcard');
251
- $giftCardCodes = $helper->removeQuoteGiftCardCodes($this->_getQuote()->getMtGiftCard(),$removeCodes);
252
-
253
- try {
254
- $this->_getQuote()->getShippingAddress()->setCollectShippingRates(true);
255
- $this->_getQuote()->setMtGiftCard($giftCardCodes)
256
- ->collectTotals()
257
- ->save();
258
-
259
- if ($this->_getQuote()->getMtGiftCard() == $giftCardCodes) {
260
- $this->_getSession()->addSuccess(
261
- $this->__('Gift cards was deleted.')
262
- );
263
- }
264
- } catch (Mage_Core_Exception $e) {
265
- $this->_getSession()->addError($e->getMessage());
266
- } catch (Exception $e) {
267
- $this->_getSession()->addError($this->__('Cannot delete the gift cards.'));
268
- Mage::logException($e);
269
- }
270
- $this->_goBack();
271
- }
272
-
273
- protected function _getCart()
274
- {
275
- return Mage::getSingleton('checkout/cart');
276
- }
277
-
278
- protected function _getQuote()
279
- {
280
- return $this->_getCart()->getQuote();
281
- }
282
-
283
- protected function _getSession()
284
- {
285
- return Mage::getSingleton('checkout/session');
286
- }
287
-
288
- protected function _goBack()
289
- {
290
- $returnUrl = $this->getRequest()->getParam('return_url');
291
- if ($returnUrl) {
292
-
293
- if (!$this->_isUrlInternal($returnUrl)) {
294
- throw new Mage_Exception('External urls redirect to "' . $returnUrl . '" denied!');
295
- }
296
-
297
- $this->_getSession()->getMessages(true);
298
- $this->getResponse()->setRedirect($returnUrl);
299
- } elseif (!Mage::getStoreConfig('checkout/cart/redirect_to_cart')
300
- && !$this->getRequest()->getParam('in_cart')
301
- && $backUrl = $this->_getRefererUrl()
302
- ) {
303
- $this->getResponse()->setRedirect($backUrl);
304
- } else {
305
- if (($this->getRequest()->getActionName() == 'add') && !$this->getRequest()->getParam('in_cart')) {
306
- $this->_getSession()->setContinueShoppingUrl($this->_getRefererUrl());
307
- }
308
- $this->_redirect('checkout/cart');
309
- }
310
- return $this;
311
- }
312
- }
1
+ <?php
2
+
3
+ class MT_Giftcard_Checkout_CartController
4
+ extends Mage_Core_Controller_Front_Action
5
+ {
6
+
7
+ public function clearGiftCardCodeAjaxAction()
8
+ {
9
+ $error = false;
10
+ $success = false;
11
+ try {
12
+ $quoteId = $this->_getQuote()->getId();
13
+ $giftCardQuote = Mage::getModel('giftcard/quote');
14
+
15
+ if ($giftCardQuote->removeAllGiftCardFromQuote($quoteId)) {
16
+ $success = $this->__('Gift cards was removed.');
17
+ }
18
+ } catch (Mage_Core_Exception $e) {
19
+ $error = $e->getMessage();
20
+ } catch (Exception $e) {
21
+ $error = $this->__('Cannot delete the gift cards.');
22
+ }
23
+
24
+ $content = $this->getLayout()->createBlock('giftcard/payment_giftcard_form_giftcard','payment_giftcard_form_giftcard',array(
25
+ 'error' => $error,
26
+ 'success' => $success,
27
+ ))->renderView();
28
+
29
+ $this->getResponse()->setBody(json_encode(array(
30
+ 'content' => $content
31
+ )));
32
+ }
33
+
34
+ public function removeGiftCardCodeAjaxAction()
35
+ {
36
+ $giftCardCode = $this->getRequest()->getParam('giftcard_code');
37
+ $error = false;
38
+ $success = false;
39
+
40
+ if (!empty($giftCardCode)) {
41
+ try {
42
+ $quoteId = $this->_getQuote()->getId();
43
+ $giftCardQuote = Mage::getModel('giftcard/quote');
44
+ if ($giftCardQuote->removeGiftCardByCode($quoteId, $giftCardCode)) {
45
+ $success = $this->__('Gift cards was removed.');
46
+ }
47
+ } catch (Mage_Core_Exception $e) {
48
+ $error = $e->getMessage();
49
+ } catch (Exception $e) {
50
+ $error = $this->__('Cannot delete the gift cards.');
51
+ }
52
+ }
53
+
54
+ $content = $this->getLayout()->createBlock('giftcard/payment_giftcard_form_giftcard','payment_giftcard_form_giftcard',array(
55
+ 'error' => $error,
56
+ 'success' => $success,
57
+ ))->renderView();
58
+
59
+ $this->getResponse()->setBody(json_encode(array(
60
+ 'content' => $content
61
+ )));
62
+ }
63
+
64
+ public function addGiftCardCodeAjaxAction()
65
+ {
66
+ $error = false;
67
+ $success = '';
68
+
69
+ if ($this->_getCart()->getQuote()->getItemsCount()) {
70
+ $giftCardCode = (string) $this->getRequest()->getParam('giftcard_code');
71
+ try {
72
+ $quoteId = $this->_getQuote()->getId();
73
+ $giftCardQuote = Mage::getModel('giftcard/quote');
74
+ if (!$giftCardQuote->addGiftCardByCode($quoteId, $giftCardCode)) {
75
+ $error = $this->__('Gift card "%s" is not valid.', Mage::helper('core')->escapeHtml($giftCardCode));
76
+ }
77
+ } catch (Mage_Core_Exception $e) {
78
+ $error = $e->getMessage();
79
+ } catch (Exception $e) {
80
+ $error = $this->__('Cannot apply the gift card.');
81
+ Mage::logException($e);
82
+ }
83
+ }
84
+
85
+ $content = $this->getLayout()->createBlock('giftcard/payment_giftcard_form_giftcard','payment_giftcard_form_giftcard',array(
86
+ 'error' => $error,
87
+ 'success' => $success,
88
+ ))->renderView();
89
+
90
+ $this->getResponse()->setBody(json_encode(array(
91
+ 'content' => $content
92
+ )));
93
+ }
94
+
95
+ public function giftCardAjaxAction()
96
+ {
97
+ $error = false;
98
+
99
+ if ($this->_getCart()->getQuote()->getItemsCount()) {
100
+ $giftCardCode = (string) $this->getRequest()->getParam('giftcard_code');
101
+ $helper = Mage::helper('giftcard');
102
+ try {
103
+ $quoteId = $this->_getQuote()->getId();
104
+ $giftCardQuote = Mage::getModel('giftcard/quote');
105
+ if (!$giftCardQuote->addGiftCardByCode($quoteId, $giftCardCode)) {
106
+ $error = $this->__('Gift card "%s" is not valid.', Mage::helper('core')->escapeHtml($giftCardCode));
107
+ }
108
+ } catch (Mage_Core_Exception $e) {
109
+ $error = $e->getMessage();
110
+ } catch (Exception $e) {
111
+ $error = $this->__('Cannot apply the gift card.');
112
+ Mage::logException($e);
113
+ }
114
+ }
115
+
116
+ $response = $this->getLayout()->createBlock('giftcard/payment_giftcard_form_giftcard','payment_giftcard_form_giftcard',array(
117
+ 'error' => $error,
118
+ ))->renderView();
119
+
120
+ $this->getResponse()->setBody(json_encode(array(
121
+ 'content' => $response
122
+ )));
123
+ }
124
+
125
+ public function giftCardPostAction()
126
+ {
127
+ if ($this->getRequest()->getParam('remove') == 1) {
128
+ $this->_forward('giftCardRemove');
129
+ return;
130
+ }
131
+
132
+ if (!$this->_getCart()->getQuote()->getItemsCount()) {
133
+ $this->_goBack();
134
+ return;
135
+ }
136
+
137
+ $giftCardCode = (string) $this->getRequest()->getParam('giftcard_code');
138
+
139
+ try {
140
+ $quoteId = $this->_getQuote()->getId();
141
+ $giftCardQuote = Mage::getModel('giftcard/quote');
142
+ if ($giftCardQuote->addGiftCardByCode($quoteId, $giftCardCode)) {
143
+ $this->_getSession()->addSuccess(
144
+ $this->__('Gift card "%s" was applied.', Mage::helper('core')->escapeHtml($giftCardCode))
145
+ );
146
+ } else {
147
+ $this->_getSession()->addError(
148
+ $this->__('Gift card "%s" is not valid.', Mage::helper('core')->escapeHtml($giftCardCode))
149
+ );
150
+ }
151
+ } catch (Mage_Core_Exception $e) {
152
+ $this->_getSession()->addError($e->getMessage());
153
+ } catch (Exception $e) { print_r($e);
154
+ $this->_getSession()->addError($this->__('Error! Please contact with administrator'));
155
+ Mage::logException($e);
156
+ }
157
+
158
+ $this->_goBack();
159
+ }
160
+
161
+ public function giftCardRemoveAction()
162
+ {
163
+ $removeCodes = $this->getRequest()->getParam('giftcard_remove');
164
+
165
+ if (count($removeCodes) == 0) {
166
+ $this->_goBack();
167
+ $this->_getSession()->addError($this->__('Please select Gift Cards which want to remove.'));
168
+ return;
169
+ }
170
+
171
+ try {
172
+ $quoteId = $this->_getQuote()->getId();
173
+ Mage::getModel('giftcard/quote')->removeGiftCardArrayFromQuote($quoteId, $removeCodes);
174
+ $this->_getSession()->addSuccess(
175
+ $this->__('Gift cards was removed.')
176
+ );
177
+ } catch (Mage_Core_Exception $e) {
178
+ $this->_getSession()->addError($e->getMessage());
179
+ } catch (Exception $e) {
180
+ $this->_getSession()->addError($this->__('Cannot delete the gift cards.'));
181
+ Mage::logException($e);
182
+ }
183
+ $this->_goBack();
184
+ }
185
+
186
+ protected function _getCart()
187
+ {
188
+ return Mage::getSingleton('checkout/cart');
189
+ }
190
+
191
+ protected function _getQuote()
192
+ {
193
+ return $this->_getCart()->getQuote();
194
+ }
195
+
196
+ protected function _getSession()
197
+ {
198
+ return Mage::getSingleton('checkout/session');
199
+ }
200
+
201
+ protected function _goBack()
202
+ {
203
+ $returnUrl = $this->getRequest()->getParam('return_url');
204
+ if ($returnUrl) {
205
+
206
+ if (!$this->_isUrlInternal($returnUrl)) {
207
+ throw new Mage_Exception('External urls redirect to "' . $returnUrl . '" denied!');
208
+ }
209
+
210
+ $this->_getSession()->getMessages(true);
211
+ $this->getResponse()->setRedirect($returnUrl);
212
+ } elseif (!Mage::getStoreConfig('checkout/cart/redirect_to_cart')
213
+ && !$this->getRequest()->getParam('in_cart')
214
+ && $backUrl = $this->_getRefererUrl()
215
+ ) {
216
+ $this->getResponse()->setRedirect($backUrl);
217
+ } else {
218
+ if (($this->getRequest()->getActionName() == 'add') && !$this->getRequest()->getParam('in_cart')) {
219
+ $this->_getSession()->setContinueShoppingUrl($this->_getRefererUrl());
220
+ }
221
+ $this->_redirect('checkout/cart');
222
+ }
223
+ return $this;
224
+ }
225
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/code/community/MT/Giftcard/etc/adminhtml.xml CHANGED
@@ -37,15 +37,34 @@
37
  <config>
38
  <children>
39
  <giftcard translate="title" module="giftcard">
40
- <title></title>
41
  <sort_order>60</sort_order>
42
  </giftcard>
43
  </children>
44
  </config>
45
  </children>
46
  </system>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
47
  </children>
48
  </admin>
49
  </resources>
 
50
  </acl>
51
  </config>
37
  <config>
38
  <children>
39
  <giftcard translate="title" module="giftcard">
40
+ <title>Gift Card</title>
41
  <sort_order>60</sort_order>
42
  </giftcard>
43
  </children>
44
  </config>
45
  </children>
46
  </system>
47
+ <giftcard translate="title" module="giftcard">
48
+ <title>Gift Card</title>
49
+ <sort_order>60</sort_order>
50
+ <children>
51
+ <giftcard>
52
+ <title>Manage Gift Cards</title>
53
+ </giftcard>
54
+ <series>
55
+ <title>Gift Cards Series</title>
56
+ </series>
57
+ <template>
58
+ <title>Gift Cards Templates</title>
59
+ </template>
60
+ <settings>
61
+ <title>Settings</title>
62
+ </settings>
63
+ </children>
64
+ </giftcard>
65
  </children>
66
  </admin>
67
  </resources>
68
+
69
  </acl>
70
  </config>
app/code/community/MT/Giftcard/etc/config.xml CHANGED
@@ -1,353 +1,352 @@
1
- <?xml version="1.0"?>
2
- <config>
3
- <modules>
4
- <MT_Giftcard>
5
- <version>1.0.14</version>
6
- </MT_Giftcard>
7
- </modules>
8
- <global>
9
- <blocks>
10
- <giftcard>
11
- <class>MT_Giftcard_Block</class>
12
- </giftcard>
13
- <checkout>
14
- <rewrite>
15
- <cart_item_renderer>MT_Giftcard_Block_Checkout_Cart_Item_Renderer</cart_item_renderer>
16
- </rewrite>
17
- </checkout>
18
- <adminhtml>
19
- <rewrite>
20
- <sales_order_view>MT_Giftcard_Block_Adminhtml_Sales_Order_View</sales_order_view>
21
- <catalog_product_edit_tabs>MT_Giftcard_Block_Adminhtml_Catalog_Product_Edit_Tabs</catalog_product_edit_tabs>
22
- </rewrite>
23
- </adminhtml>
24
- </blocks>
25
- <helpers>
26
- <giftcard>
27
- <class>MT_Giftcard_Helper</class>
28
- </giftcard>
29
- </helpers>
30
- <models>
31
- <giftcard>
32
- <class>MT_Giftcard_Model</class>
33
- <resourceModel>giftcard_resource</resourceModel>
34
- </giftcard>
35
-
36
- <giftcard_resource>
37
- <class>MT_Giftcard_Model_Resource</class>
38
- <entities>
39
- <giftcard>
40
- <table>mt_giftcard</table>
41
- </giftcard>
42
- <series>
43
- <table>mt_giftcard_series</table>
44
- </series>
45
- <template>
46
- <table>mt_giftcard_template</table>
47
- </template>
48
- <option>
49
- <table>mt_giftcard_option</table>
50
- </option>
51
- <series_product>
52
- <table>mt_giftcard_series_product</table>
53
- </series_product>
54
- </entities>
55
- </giftcard_resource>
56
-
57
- <catalog>
58
- <rewrite>
59
- <product_option>MT_Giftcard_Model_Catalog_Product_Option</product_option>
60
- </rewrite>
61
- </catalog>
62
-
63
- <core>
64
- <rewrite>
65
- <email_template>MT_Giftcard_Model_Core_Email_Template</email_template>
66
- </rewrite>
67
- </core>
68
-
69
- </models>
70
- <resources>
71
- <giftcard_setup>
72
- <setup>
73
- <module>MT_Giftcard</module>
74
- <class>Mage_Catalog_Model_Resource_Eav_Mysql4_Setup</class>
75
- </setup>
76
- <connection>
77
- <use>core_setup</use>
78
- </connection>
79
- </giftcard_setup>
80
- <giftcard_write>
81
- <connection>
82
- <use>core_write</use>
83
- </connection>
84
- </giftcard_write>
85
- <giftcard_read>
86
- <connection>
87
- <use>core_read</use>
88
- </connection>
89
- </giftcard_read>
90
- </resources>
91
- <catalog>
92
- <product>
93
- <type>
94
- <giftcard translate="label" module="catalog">
95
- <label>Gift Card</label>
96
- <model>giftcard/catalog_product_type_giftcard</model>
97
- <is_qty>0</is_qty>
98
- <index_data_retreiver>giftcard/catalogIndex_data_giftcard</index_data_retreiver>
99
- <price_model>giftcard/catalog_product_price</price_model>
100
- <composite>0</composite>
101
- </giftcard>
102
- <configurable translate="label" module="catalog">
103
- <allow_product_types>
104
- <giftcard/>
105
- </allow_product_types>
106
- </configurable>
107
- </type>
108
- </product>
109
- </catalog>
110
- <events>
111
- <sales_order_place_after>
112
- <observers>
113
- <discount_giftcard_balance>
114
- <type>singleton</type>
115
- <class>giftcard/observer</class>
116
- <method>discountGiftCardBalance</method>
117
- </discount_giftcard_balance>
118
-
119
- <create_giftcard_after_order>
120
- <type>singleton</type>
121
- <class>MT_Giftcard_Model_Observer</class>
122
- <method>createGiftCard</method>
123
- </create_giftcard_after_order>
124
-
125
- </observers>
126
- </sales_order_place_after>
127
-
128
- </events>
129
- <sales>
130
- <quote>
131
- <totals>
132
- <gift_card_total>
133
- <class>giftcard/sales_quote_total_giftcard</class>
134
- <after>discount,tax</after>
135
- <before>grand_total</before>
136
- </gift_card_total>
137
- </totals>
138
- </quote>
139
- <order_invoice>
140
- <totals>
141
- <gift_card_total>
142
- <class>giftcard/sales_order_invoice_total_giftcard</class>
143
- <after>discount,tax</after>
144
- <before>grand_total</before>
145
- </gift_card_total>
146
- </totals>
147
- </order_invoice>
148
- <order_creditmemo>
149
- <totals>
150
- <gift_card_total>
151
- <class>giftcard/sales_order_creditmemo_total_giftcard</class>
152
- <after>shipping</after>
153
- <before>grand_total,tax</before>
154
- </gift_card_total>
155
- </totals>
156
- </order_creditmemo>
157
- </sales>
158
- <pdf>
159
- <totals>
160
- <mt_gift_card_total translate="title">
161
- <title>Gift Card Discount</title>
162
- <source_field>mt_gift_card_total</source_field>
163
- <font_size>7</font_size>
164
- <display_zero>0</display_zero>
165
- <sort_order>450</sort_order>
166
- </mt_gift_card_total>
167
- </totals>
168
- </pdf>
169
- <fieldsets>
170
- <sales_convert_quote>
171
- <mt_gift_card>
172
- <to_order>*</to_order>
173
- </mt_gift_card>
174
- <mt_gift_card_description>
175
- <to_order>*</to_order>
176
- </mt_gift_card_description>
177
- </sales_convert_quote>
178
-
179
- <sales_convert_quote_address>
180
- <mt_gift_card_total>
181
- <to_order>*</to_order>
182
- </mt_gift_card_total>
183
-
184
- <base_mt_gift_card_total>
185
- <to_order>*</to_order>
186
- </base_mt_gift_card_total>
187
- </sales_convert_quote_address>
188
-
189
- <sales_convert_order>
190
- <mt_gift_card>
191
- <to_invoice>*</to_invoice>
192
- <to_cm>*</to_cm>
193
- </mt_gift_card>
194
-
195
- <mt_gift_card_total>
196
- <to_invoice>*</to_invoice>
197
- <to_cm>*</to_cm>
198
- </mt_gift_card_total>
199
-
200
- <base_mt_gift_card_total>
201
- <to_invoice>*</to_invoice>
202
- <to_cm>*</to_cm>
203
- </base_mt_gift_card_total>
204
-
205
- </sales_convert_order>
206
- </fieldsets>
207
- </global>
208
- <frontend>
209
- <routers>
210
- <giftcard>
211
- <use>standard</use>
212
- <args>
213
- <module>MT_Giftcard</module>
214
- <frontName>giftcard</frontName>
215
- </args>
216
- </giftcard>
217
- </routers>
218
- <layout>
219
- <updates>
220
- <giftcard>
221
- <file>mt/giftcard.xml</file>
222
- </giftcard>
223
- </updates>
224
- </layout>
225
- <translate>
226
- <modules>
227
- <MT_Giftcard>
228
- <files>
229
- <default>MT_Giftcard.csv</default>
230
- </files>
231
- </MT_Giftcard>
232
- </modules>
233
- </translate>
234
- </frontend>
235
-
236
- <adminhtml>
237
- <events>
238
-
239
- <sales_order_creditmemo_refund>
240
- <observers>
241
- <refund_giftcard_balance>
242
- <type>singleton</type>
243
- <class>giftcard/observer</class>
244
- <method>refundGiftCardBalance</method>
245
- </refund_giftcard_balance>
246
- </observers>
247
- </sales_order_creditmemo_refund>
248
-
249
- <sales_order_invoice_register>
250
- <observers>
251
- <forced_credit_memo>
252
- <type>singleton</type>
253
- <class>MT_Giftcard_Model_Observer</class>
254
- <method>forcedCreditMemo</method>
255
- </forced_credit_memo>
256
- </observers>
257
- </sales_order_invoice_register>
258
-
259
- <sales_order_invoice_save_after>
260
- <observers>
261
- <active_gift_card>
262
- <type>singleton</type>
263
- <class>MT_Giftcard_Model_Observer</class>
264
- <method>activeGiftCard</method>
265
- </active_gift_card>
266
- </observers>
267
- </sales_order_invoice_save_after>
268
-
269
- <sales_order_creditmemo_save_after>
270
- <observers>
271
- <deactivate_gift_card>
272
- <type>singleton</type>
273
- <class>MT_Giftcard_Model_Observer</class>
274
- <method>deactivateGiftCard</method>
275
- </deactivate_gift_card>
276
- </observers>
277
- </sales_order_creditmemo_save_after>
278
-
279
- <catalog_product_save_after>
280
- <observers>
281
- <gift_card_catalog_product_prepare_save>
282
- <class>giftcard/observer</class>
283
- <method>catalogProductSaveAfter</method>
284
- </gift_card_catalog_product_prepare_save>
285
- </observers>
286
- </catalog_product_save_after>
287
-
288
- <adminhtml_sales_order_creditmemo_register_before>
289
- <observers>
290
- <allow_zero_credit_memo>
291
- <class>giftcard/observer</class>
292
- <method>allowZeroCreditMemo</method>
293
- </allow_zero_credit_memo>
294
- </observers>
295
- </adminhtml_sales_order_creditmemo_register_before>
296
- </events>
297
-
298
- <translate>
299
- <modules>
300
- <MT_Giftcard>
301
- <files>
302
- <default>MT_Giftcard_Adminhtml.csv</default>
303
- </files>
304
- </MT_Giftcard>
305
- </modules>
306
- </translate>
307
- <layout>
308
- <updates>
309
- <news>
310
- <file>mt/giftcard.xml</file>
311
- </news>
312
- </updates>
313
- </layout>
314
- </adminhtml>
315
- <admin>
316
- <routers>
317
- <adminhtml>
318
- <args>
319
- <modules>
320
- <giftcard before="Mage_Adminhtml">MT_Giftcard_Adminhtml</giftcard>
321
- </modules>
322
- </args>
323
- </adminhtml>
324
- </routers>
325
- </admin>
326
-
327
- <default>
328
- <payment>
329
- <giftcard>
330
- <active>1</active>
331
- <model>giftcard/payment_giftcard</model>
332
- <title>Use Gift Card to check out</title>
333
- <sort_order>900</sort_order>
334
- </giftcard>
335
- </payment>
336
- <giftcard>
337
- <general>
338
- <is_active>0</is_active>
339
- <jquery>0</jquery>
340
- </general>
341
- <cart>
342
- <form_in_cart>1</form_in_cart>
343
- <form_in_checkout>1</form_in_checkout>
344
- </cart>
345
- <mail>
346
- <pdf_order_new_mail>1</pdf_order_new_mail>
347
- <pdf_order_invoice_mail>1</pdf_order_invoice_mail>
348
- </mail>
349
- </giftcard>
350
- </default>
351
-
352
- </config>
353
-
1
+ <?xml version="1.0"?>
2
+ <config>
3
+ <modules>
4
+ <MT_Giftcard>
5
+ <version>1.1.2</version>
6
+ </MT_Giftcard>
7
+ </modules>
8
+ <global>
9
+ <blocks>
10
+ <giftcard>
11
+ <class>MT_Giftcard_Block</class>
12
+ </giftcard>
13
+ <checkout>
14
+ <rewrite>
15
+ <cart_item_renderer>MT_Giftcard_Block_Checkout_Cart_Item_Renderer</cart_item_renderer>
16
+ </rewrite>
17
+ </checkout>
18
+ <adminhtml>
19
+ <rewrite>
20
+ <sales_order_view>MT_Giftcard_Block_Adminhtml_Sales_Order_View</sales_order_view>
21
+ <catalog_product_edit_tabs>MT_Giftcard_Block_Adminhtml_Catalog_Product_Edit_Tabs</catalog_product_edit_tabs>
22
+ </rewrite>
23
+ </adminhtml>
24
+ </blocks>
25
+ <helpers>
26
+ <giftcard>
27
+ <class>MT_Giftcard_Helper</class>
28
+ </giftcard>
29
+ </helpers>
30
+ <models>
31
+ <giftcard>
32
+ <class>MT_Giftcard_Model</class>
33
+ <resourceModel>giftcard_resource</resourceModel>
34
+ </giftcard>
35
+
36
+ <giftcard_resource>
37
+ <class>MT_Giftcard_Model_Resource</class>
38
+ <entities>
39
+ <giftcard>
40
+ <table>mt_giftcard</table>
41
+ </giftcard>
42
+ <series>
43
+ <table>mt_giftcard_series</table>
44
+ </series>
45
+ <template>
46
+ <table>mt_giftcard_template</table>
47
+ </template>
48
+ <option>
49
+ <table>mt_giftcard_option</table>
50
+ </option>
51
+ <series_product>
52
+ <table>mt_giftcard_series_product</table>
53
+ </series_product>
54
+ <check_attempt>
55
+ <table>mt_giftcard_check_attempt</table>
56
+ </check_attempt>
57
+ <quote>
58
+ <table>mt_giftcard_quote</table>
59
+ </quote>
60
+ <order>
61
+ <table>mt_giftcard_order</table>
62
+ </order>
63
+ </entities>
64
+ </giftcard_resource>
65
+
66
+ <catalog>
67
+ <rewrite>
68
+ <product_option>MT_Giftcard_Model_Catalog_Product_Option</product_option>
69
+ </rewrite>
70
+ </catalog>
71
+
72
+ <core>
73
+ <rewrite>
74
+ <email_template>MT_Giftcard_Model_Core_Email_Template</email_template>
75
+ </rewrite>
76
+ </core>
77
+
78
+ </models>
79
+ <resources>
80
+ <giftcard_setup>
81
+ <setup>
82
+ <module>MT_Giftcard</module>
83
+ <class>Mage_Catalog_Model_Resource_Eav_Mysql4_Setup</class>
84
+ </setup>
85
+ <connection>
86
+ <use>core_setup</use>
87
+ </connection>
88
+ </giftcard_setup>
89
+ <giftcard_write>
90
+ <connection>
91
+ <use>core_write</use>
92
+ </connection>
93
+ </giftcard_write>
94
+ <giftcard_read>
95
+ <connection>
96
+ <use>core_read</use>
97
+ </connection>
98
+ </giftcard_read>
99
+ </resources>
100
+ <catalog>
101
+ <product>
102
+ <type>
103
+ <giftcard translate="label" module="catalog">
104
+ <label>Gift Card</label>
105
+ <model>giftcard/catalog_product_type_giftcard</model>
106
+ <is_qty>0</is_qty>
107
+ <index_data_retreiver>giftcard/catalogIndex_data_giftcard</index_data_retreiver>
108
+ <price_model>giftcard/catalog_product_price</price_model>
109
+ <composite>0</composite>
110
+ </giftcard>
111
+ <configurable translate="label" module="catalog">
112
+ <allow_product_types>
113
+ <giftcard/>
114
+ </allow_product_types>
115
+ </configurable>
116
+ </type>
117
+ </product>
118
+ </catalog>
119
+ <events>
120
+ <sales_order_place_after>
121
+ <observers>
122
+ <discount_giftcard_balance>
123
+ <type>singleton</type>
124
+ <class>giftcard/observer</class>
125
+ <method>discountGiftCardBalance</method>
126
+ </discount_giftcard_balance>
127
+
128
+ <create_giftcard_after_order>
129
+ <type>singleton</type>
130
+ <class>MT_Giftcard_Model_Observer</class>
131
+ <method>createGiftCard</method>
132
+ </create_giftcard_after_order>
133
+
134
+ </observers>
135
+ </sales_order_place_after>
136
+
137
+ </events>
138
+ <sales>
139
+ <quote>
140
+ <totals>
141
+ <gift_card_total>
142
+ <class>giftcard/sales_quote_total_giftcard</class>
143
+ <after>discount,tax</after>
144
+ <before>grand_total</before>
145
+ </gift_card_total>
146
+ </totals>
147
+ </quote>
148
+ <order_invoice>
149
+ <totals>
150
+ <gift_card_total>
151
+ <class>giftcard/sales_order_invoice_total_giftcard</class>
152
+ <after>discount,tax</after>
153
+ <before>grand_total</before>
154
+ </gift_card_total>
155
+ </totals>
156
+ </order_invoice>
157
+ <order_creditmemo>
158
+ <totals>
159
+ <gift_card_total>
160
+ <class>giftcard/sales_order_creditmemo_total_giftcard</class>
161
+ <after>shipping</after>
162
+ <before>grand_total,tax</before>
163
+ </gift_card_total>
164
+ </totals>
165
+ </order_creditmemo>
166
+ </sales>
167
+ <pdf>
168
+ <totals>
169
+ <mt_gift_card_total translate="title">
170
+ <title>Gift Card Discount</title>
171
+ <source_field>mt_gift_card_total</source_field>
172
+ <font_size>7</font_size>
173
+ <display_zero>0</display_zero>
174
+ <sort_order>450</sort_order>
175
+ </mt_gift_card_total>
176
+ </totals>
177
+ </pdf>
178
+ <fieldsets>
179
+ <sales_convert_quote>
180
+ <mt_gift_card>
181
+ <to_order>*</to_order>
182
+ </mt_gift_card>
183
+ <mt_gift_card_description>
184
+ <to_order>*</to_order>
185
+ </mt_gift_card_description>
186
+ </sales_convert_quote>
187
+
188
+ <sales_convert_quote_address>
189
+ <mt_gift_card_total>
190
+ <to_order>*</to_order>
191
+ </mt_gift_card_total>
192
+
193
+ <base_mt_gift_card_total>
194
+ <to_order>*</to_order>
195
+ </base_mt_gift_card_total>
196
+ </sales_convert_quote_address>
197
+
198
+ <sales_convert_order>
199
+ <mt_gift_card>
200
+ <to_invoice>*</to_invoice>
201
+ <to_cm>*</to_cm>
202
+ </mt_gift_card>
203
+
204
+ <mt_gift_card_total>
205
+ <to_invoice>*</to_invoice>
206
+ <to_cm>*</to_cm>
207
+ </mt_gift_card_total>
208
+
209
+ <base_mt_gift_card_total>
210
+ <to_invoice>*</to_invoice>
211
+ <to_cm>*</to_cm>
212
+ </base_mt_gift_card_total>
213
+
214
+ </sales_convert_order>
215
+ </fieldsets>
216
+ </global>
217
+ <frontend>
218
+ <routers>
219
+ <giftcard>
220
+ <use>standard</use>
221
+ <args>
222
+ <module>MT_Giftcard</module>
223
+ <frontName>giftcard</frontName>
224
+ </args>
225
+ </giftcard>
226
+ </routers>
227
+ <layout>
228
+ <updates>
229
+ <giftcard>
230
+ <file>mt/giftcard.xml</file>
231
+ </giftcard>
232
+ </updates>
233
+ </layout>
234
+ <translate>
235
+ <modules>
236
+ <MT_Giftcard>
237
+ <files>
238
+ <default>MT_Giftcard.csv</default>
239
+ </files>
240
+ </MT_Giftcard>
241
+ </modules>
242
+ </translate>
243
+ </frontend>
244
+
245
+ <adminhtml>
246
+ <events>
247
+
248
+ <sales_order_creditmemo_refund>
249
+ <observers>
250
+ <refund_giftcard_balance>
251
+ <type>singleton</type>
252
+ <class>giftcard/observer</class>
253
+ <method>refundGiftCardBalance</method>
254
+ </refund_giftcard_balance>
255
+ </observers>
256
+ </sales_order_creditmemo_refund>
257
+
258
+ <sales_order_invoice_save_after>
259
+ <observers>
260
+ <active_gift_card>
261
+ <type>singleton</type>
262
+ <class>MT_Giftcard_Model_Observer</class>
263
+ <method>activeGiftCard</method>
264
+ </active_gift_card>
265
+ </observers>
266
+ </sales_order_invoice_save_after>
267
+
268
+ <sales_order_creditmemo_save_after>
269
+ <observers>
270
+ <deactivate_gift_card>
271
+ <type>singleton</type>
272
+ <class>MT_Giftcard_Model_Observer</class>
273
+ <method>deactivateGiftCard</method>
274
+ </deactivate_gift_card>
275
+ </observers>
276
+ </sales_order_creditmemo_save_after>
277
+
278
+ <catalog_product_save_after>
279
+ <observers>
280
+ <gift_card_catalog_product_prepare_save>
281
+ <class>giftcard/observer</class>
282
+ <method>catalogProductSaveAfter</method>
283
+ </gift_card_catalog_product_prepare_save>
284
+ </observers>
285
+ </catalog_product_save_after>
286
+
287
+ <adminhtml_sales_order_creditmemo_register_before>
288
+ <observers>
289
+ <allow_zero_credit_memo>
290
+ <class>giftcard/observer</class>
291
+ <method>allowZeroCreditMemo</method>
292
+ </allow_zero_credit_memo>
293
+ </observers>
294
+ </adminhtml_sales_order_creditmemo_register_before>
295
+ </events>
296
+
297
+ <translate>
298
+ <modules>
299
+ <MT_Giftcard>
300
+ <files>
301
+ <default>MT_Giftcard_Adminhtml.csv</default>
302
+ </files>
303
+ </MT_Giftcard>
304
+ </modules>
305
+ </translate>
306
+ <layout>
307
+ <updates>
308
+ <news>
309
+ <file>mt/giftcard.xml</file>
310
+ </news>
311
+ </updates>
312
+ </layout>
313
+ </adminhtml>
314
+ <admin>
315
+ <routers>
316
+ <adminhtml>
317
+ <args>
318
+ <modules>
319
+ <giftcard before="Mage_Adminhtml">MT_Giftcard_Adminhtml</giftcard>
320
+ </modules>
321
+ </args>
322
+ </adminhtml>
323
+ </routers>
324
+ </admin>
325
+
326
+ <default>
327
+ <payment>
328
+ <giftcard>
329
+ <active>0</active>
330
+ <model>giftcard/payment_giftcard</model>
331
+ <title>Use Gift Card to check out</title>
332
+ <sort_order>900</sort_order>
333
+ </giftcard>
334
+ </payment>
335
+ <giftcard>
336
+ <general>
337
+ <is_active>0</is_active>
338
+ <jquery>0</jquery>
339
+ </general>
340
+ <cart>
341
+ <form_in_cart>1</form_in_cart>
342
+ <form_in_checkout>1</form_in_checkout>
343
+ </cart>
344
+ <mail>
345
+ <pdf_order_new_mail>1</pdf_order_new_mail>
346
+ <pdf_order_invoice_mail>1</pdf_order_invoice_mail>
347
+ </mail>
348
+ </giftcard>
349
+ </default>
350
+
351
+ </config>
352
+
 
app/code/community/MT/Giftcard/sql/giftcard_setup/mysql4-upgrade-1.1.1-1.1.2.php ADDED
@@ -0,0 +1,40 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ $installer = $this;
3
+ $installer->startSetup();
4
+
5
+ $table = $installer->getTable('giftcard/giftcard');
6
+
7
+ $giftCardOrderProductTable = $installer->getTable('giftcard/order');
8
+ $giftCardQuoteProductTable = $installer->getTable('giftcard/quote');
9
+
10
+ $installer->run("
11
+ CREATE TABLE IF NOT EXISTS `{$giftCardOrderProductTable}` (
12
+ `entity_id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
13
+ `order_id` INT(10) UNSIGNED NULL DEFAULT NULL,
14
+ `gift_card_code` VARCHAR(50) NULL DEFAULT NULL,
15
+ `discount` DECIMAL(12,4) NULL DEFAULT NULL,
16
+ `base_discount` DECIMAL(12,4) NULL DEFAULT NULL,
17
+ `refund` DECIMAL(12,4) NULL DEFAULT NULL,
18
+ `base_refund` DECIMAL(12,4) NULL DEFAULT NULL,
19
+ PRIMARY KEY (`entity_id`),
20
+ UNIQUE INDEX `order_id_gift_card_code` (`order_id`, `gift_card_code`)
21
+ )
22
+ COLLATE='utf8_general_ci'
23
+ ENGINE=InnoDB
24
+ AUTO_INCREMENT=0;
25
+ ");
26
+
27
+ $installer->run("
28
+ CREATE TABLE IF NOT EXISTS `{$giftCardQuoteProductTable}` (
29
+ `entity_id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
30
+ `quote_id` INT(10) UNSIGNED NULL DEFAULT NULL,
31
+ `gift_card_id` INT(10) UNSIGNED NULL DEFAULT NULL,
32
+ PRIMARY KEY (`entity_id`)
33
+ )
34
+ COLLATE='utf8_general_ci'
35
+ ENGINE=InnoDB
36
+ AUTO_INCREMENT=0;
37
+ ");
38
+
39
+
40
+ $installer->endSetup();
app/design/adminhtml/default/default/layout/mt/giftcard.xml CHANGED
@@ -1,188 +1,157 @@
1
- <?xml version="1.0"?>
2
- <layout>
3
- <adminhtml_giftcard_series_edit>
4
- <reference name="head">
5
- <action method="addJs"><script>mt/giftcard/adminhtml/gift_card_series.js</script></action>
6
- </reference>
7
- </adminhtml_giftcard_series_edit>
8
-
9
- <adminhtml_giftcard_giftcard_import>
10
- <reference name="head">
11
- <action method="addJs"><script>mt/giftcard/adminhtml/gift_card.js</script></action>
12
- </reference>
13
- </adminhtml_giftcard_giftcard_import>
14
-
15
- <adminhtml_giftcard_template_edit>
16
- <reference name="head">
17
- <action method="addJs"><script>mt/giftcard/adminhtml/gift_card_template.js</script></action>
18
- <action method="addJs"><script>mt/giftcard/adminhtml/jscolor/jscolor.js</script></action>
19
- <action method="addCss"><name>mt/giftcard/gift_card_style.css</name></action>
20
- </reference>
21
- </adminhtml_giftcard_template_edit>
22
-
23
- <adminhtml_giftcard_series_grid>
24
- <block type="core/text_list" name="root" output="toHtml">
25
- <block type="giftcard/adminhtml_giftcard_series_edit_tabs_generate_grid" name="giftcard_adminhtml_giftcard_series_edit_tabs_generate_grid" />
26
- </block>
27
- </adminhtml_giftcard_series_grid>
28
-
29
- <adminhtml_giftcard_giftcard_grid>
30
- <block type="core/text_list" name="root" output="toHtml">
31
- <block type="giftcard/adminhtml_giftcard_giftcard_list_grid" name="giftcard_adminhtml_giftcard_giftcard_list_grid" />
32
- </block>
33
- </adminhtml_giftcard_giftcard_grid>
34
-
35
- <adminhtml_catalog_product_giftcardseries>
36
- <block type="core/text_list" name="root" output="toHtml">
37
- <block type="giftcard/adminhtml_catalog_product_edit_tabs_giftcardseries_grid" name="catalog_product_edit_tabs_giftcardseries_grid"/>
38
- <block type="adminhtml/widget_grid_serializer" name="giftcard_grid_serializer">
39
- <reference name="giftcard_grid_serializer">
40
- <action method="initSerializerBlock">
41
- <grid_block_name>catalog_product_edit_tabs_giftcardseries_grid</grid_block_name>
42
- <data_callback>getSelectedGiftCardSeriesProducts</data_callback>
43
- <hidden_input_name>links[giftcard]</hidden_input_name>
44
- <reload_param_name>products_gift_card</reload_param_name>
45
- </action>
46
- <action method="addColumnInputName">
47
- <input_name>position</input_name>
48
- </action>
49
- </reference>
50
- </block>
51
- </block>
52
- </adminhtml_catalog_product_giftcardseries>
53
-
54
- <adminhtml_catalog_product_giftcardtab>
55
- <block type="core/text_list" name="root" output="toHtml">
56
- <block type="giftcard/adminhtml_catalog_product_edit_tabs_giftcard_form" name="catalog_product_edit_tabs_giftcard_form"/>
57
-
58
- </block>
59
- </adminhtml_catalog_product_giftcardtab>
60
-
61
- <adminhtml_catalog_product_giftcardseriesgrid>
62
- <block type="core/text_list" name="root" output="toHtml">
63
- <block type="giftcard/adminhtml_catalog_product_edit_tabs_giftcardseries_grid" name="catalog_product_edit_tabs_giftcardseries_grid"/>
64
- </block>
65
- </adminhtml_catalog_product_giftcardseriesgrid>
66
-
67
- <adminhtml_sales_order_creditmemo_new>
68
- <reference name="head">
69
- <action method="addCss"><name>mt/giftcard/gift_card_style.css</name></action>
70
- </reference>
71
-
72
- <reference name="creditmemo_totals">
73
- <!--block type="giftcard/adminhtml_sales_creditmemo_total_giftcard" name="total_gift_card_total" as="gift_card_total">
74
- </block-->
75
- <block type="giftcard/adminhtml_sales_creditmemo_create_total_giftcard" name="gift_card_total" template="mt/giftcard/sales/creditmemo/create/total/giftcard.phtml" />
76
-
77
- </reference>
78
-
79
- <reference name="order_items">
80
- <action method="addColumnRender"><column>name</column><block>giftcard/adminhtml_sales_items_column_name_giftcard</block><template>sales/items/column/name.phtml</template><type>giftcard</type></action>
81
- </reference>
82
-
83
- </adminhtml_sales_order_creditmemo_new>
84
-
85
- <adminhtml_sales_order_creditmemo_view>
86
-
87
- <reference name="creditmemo_totals">
88
- <block type="giftcard/adminhtml_sales_creditmemo_view_total_giftcard" name="gift_card_totals" />
89
- </reference>
90
-
91
- <reference name="creditmemo_items">
92
- <action method="addColumnRender"><column>name</column><block>giftcard/adminhtml_sales_items_column_name_giftcard</block><template>sales/items/column/name.phtml</template><type>giftcard</type></action>
93
- </reference>
94
-
95
- </adminhtml_sales_order_creditmemo_view>
96
-
97
- <adminhtml_sales_order_view>
98
-
99
- <reference name="order_totals">
100
- <block type="giftcard/adminhtml_sales_total_giftcard" name="total_gift_card_total" as="gift_card_total"/>
101
- </reference>
102
-
103
- <reference name="order_items">
104
- <action method="addColumnRender"><column>name</column><block>giftcard/adminhtml_sales_items_column_name_giftcard</block><template>sales/items/column/name.phtml</template><type>giftcard</type></action>
105
- </reference>
106
-
107
- </adminhtml_sales_order_view>
108
-
109
- <adminhtml_sales_order_invoice_new>
110
-
111
- <reference name="invoice_totals">
112
- <block type="giftcard/adminhtml_sales_total_giftcard" name="total_gift_card_total" as="gift_card_total"/>
113
- </reference>
114
-
115
- <reference name="order_items">
116
- <action method="addColumnRender"><column>name</column><block>giftcard/adminhtml_sales_items_column_name_giftcard</block><template>sales/items/column/name.phtml</template><type>giftcard</type></action>
117
- </reference>
118
-
119
- </adminhtml_sales_order_invoice_new>
120
-
121
- <adminhtml_sales_order_invoice_updateqty>
122
-
123
- <reference name="order_items">
124
- <action method="addColumnRender"><column>name</column><block>giftcard/adminhtml_sales_items_column_name_giftcard</block><template>sales/items/column/name.phtml</template><type>giftcard</type></action>
125
- </reference>
126
-
127
- <reference name="invoice_totals">
128
- <block type="giftcard/adminhtml_sales_total_giftcard" name="total_gift_card_total" as="gift_card_total"/>
129
- </reference>
130
- </adminhtml_sales_order_invoice_updateqty>
131
-
132
- <adminhtml_sales_order_invoice_view>
133
-
134
- <reference name="invoice_items">
135
- <action method="addColumnRender"><column>name</column><block>giftcard/adminhtml_sales_items_column_name_giftcard</block><template>sales/items/column/name.phtml</template><type>giftcard</type></action>
136
- </reference>
137
-
138
- <reference name="invoice_totals">
139
- <block type="giftcard/adminhtml_sales_total_giftcard" name="total_gift_card_total" as="gift_card_total"/>
140
- </reference>
141
-
142
- </adminhtml_sales_order_invoice_view>
143
-
144
-
145
- <adminhtml_sales_order_shipment_new>
146
- <reference name="order_items">
147
- <action method="addColumnRender"><column>name</column><block>giftcard/adminhtml_sales_items_column_name_giftcard</block><template>sales/items/column/name.phtml</template><type>giftcard</type></action>
148
- </reference>
149
- </adminhtml_sales_order_shipment_new>
150
-
151
- <adminhtml_sales_order_shipment_view>
152
- <reference name="shipment_items">
153
- <action method="addColumnRender"><column>name</column><block>giftcard/adminhtml_sales_items_column_name_giftcard</block><template>sales/items/column/name.phtml</template><type>giftcard</type></action>
154
- </reference>
155
- </adminhtml_sales_order_shipment_view>
156
-
157
- <!--adminhtml_sales_order_creditmemo_new>
158
- <reference name="creditmemo_totals">
159
- <block type="giftcard/adminhtml_sales_creditmemo_total_giftcard" name="total_gift_card_total" as="gift_card_total"/>
160
- </reference>
161
- </adminhtml_sales_order_creditmemo_new>
162
-
163
- <adminhtml_sales_order_creditmemo_view>
164
- <reference name="creditmemo_totals">
165
- <block type="giftcard/adminhtml_sales_creditmemo_total_giftcard" name="total_gift_card_total" as="gift_card_total"/>
166
- </reference>
167
- </adminhtml_sales_order_creditmemo_view-->
168
-
169
- <!--adminhtml_catalog_product_new>
170
- <reference name="product_tabs">
171
- <action method="addTab">
172
- <name>gift_card</name>
173
- <block>giftcard/adminhtml_catalog_product_edit_tab</block>
174
- </action>
175
- </reference>
176
- </adminhtml_catalog_product_new-->
177
-
178
- <!--adminhtml_catalog_product_edit>
179
- <reference name="product_tabs">
180
- <action method="addTab">
181
- <name>gift_card</name>
182
- <block>giftcard/adminhtml_catalog_product_edit_tab</block>
183
- </action>
184
- </reference>
185
- </adminhtml_catalog_product_edit-->
186
-
187
-
188
- </layout>
1
+ <?xml version="1.0"?>
2
+ <layout>
3
+ <adminhtml_giftcard_series_edit>
4
+ <reference name="head">
5
+ <action method="addJs"><script>mt/giftcard/adminhtml/gift_card_series.js</script></action>
6
+ </reference>
7
+ </adminhtml_giftcard_series_edit>
8
+
9
+ <adminhtml_giftcard_giftcard_import>
10
+ <reference name="head">
11
+ <action method="addJs"><script>mt/giftcard/adminhtml/gift_card.js</script></action>
12
+ </reference>
13
+ </adminhtml_giftcard_giftcard_import>
14
+
15
+ <adminhtml_giftcard_template_edit>
16
+ <reference name="head">
17
+ <action method="addJs"><script>mt/giftcard/adminhtml/gift_card_template.js</script></action>
18
+ <action method="addJs"><script>mt/giftcard/adminhtml/jscolor/jscolor.js</script></action>
19
+ <action method="addCss"><name>mt/giftcard/gift_card_style.css</name></action>
20
+ </reference>
21
+ </adminhtml_giftcard_template_edit>
22
+
23
+ <adminhtml_giftcard_series_grid>
24
+ <block type="core/text_list" name="root" output="toHtml">
25
+ <block type="giftcard/adminhtml_giftcard_series_edit_tabs_generate_grid" name="giftcard_adminhtml_giftcard_series_edit_tabs_generate_grid" />
26
+ </block>
27
+ </adminhtml_giftcard_series_grid>
28
+
29
+ <adminhtml_giftcard_giftcard_grid>
30
+ <block type="core/text_list" name="root" output="toHtml">
31
+ <block type="giftcard/adminhtml_giftcard_giftcard_list_grid" name="giftcard_adminhtml_giftcard_giftcard_list_grid" />
32
+ </block>
33
+ </adminhtml_giftcard_giftcard_grid>
34
+
35
+ <adminhtml_catalog_product_giftcardseries>
36
+ <block type="core/text_list" name="root" output="toHtml">
37
+ <block type="giftcard/adminhtml_catalog_product_edit_tabs_giftcardseries_grid" name="catalog_product_edit_tabs_giftcardseries_grid"/>
38
+ <block type="adminhtml/widget_grid_serializer" name="giftcard_grid_serializer">
39
+ <reference name="giftcard_grid_serializer">
40
+ <action method="initSerializerBlock">
41
+ <grid_block_name>catalog_product_edit_tabs_giftcardseries_grid</grid_block_name>
42
+ <data_callback>getSelectedGiftCardSeriesProducts</data_callback>
43
+ <hidden_input_name>links[giftcard]</hidden_input_name>
44
+ <reload_param_name>products_gift_card</reload_param_name>
45
+ </action>
46
+ <action method="addColumnInputName">
47
+ <input_name>position</input_name>
48
+ </action>
49
+ </reference>
50
+ </block>
51
+ </block>
52
+ </adminhtml_catalog_product_giftcardseries>
53
+
54
+ <adminhtml_catalog_product_giftcardtab>
55
+ <block type="core/text_list" name="root" output="toHtml">
56
+ <block type="giftcard/adminhtml_catalog_product_edit_tabs_giftcard_form" name="catalog_product_edit_tabs_giftcard_form"/>
57
+
58
+ </block>
59
+ </adminhtml_catalog_product_giftcardtab>
60
+
61
+ <adminhtml_catalog_product_giftcardseriesgrid>
62
+ <block type="core/text_list" name="root" output="toHtml">
63
+ <block type="giftcard/adminhtml_catalog_product_edit_tabs_giftcardseries_grid" name="catalog_product_edit_tabs_giftcardseries_grid"/>
64
+ </block>
65
+ </adminhtml_catalog_product_giftcardseriesgrid>
66
+
67
+ <adminhtml_sales_order_creditmemo_new>
68
+ <reference name="head">
69
+ <action method="addCss"><name>mt/giftcard/gift_card_style.css</name></action>
70
+ </reference>
71
+
72
+ <reference name="creditmemo_totals">
73
+ <!--block type="giftcard/adminhtml_sales_creditmemo_total_giftcard" name="total_gift_card_total" as="gift_card_total">
74
+ </block-->
75
+ <block type="giftcard/adminhtml_sales_creditmemo_create_total_giftcard" name="gift_card_total" template="mt/giftcard/sales/creditmemo/create/total/giftcard.phtml" />
76
+
77
+ </reference>
78
+
79
+ <reference name="order_items">
80
+ <action method="addColumnRender"><column>name</column><block>giftcard/adminhtml_sales_items_column_name_giftcard</block><template>sales/items/column/name.phtml</template><type>giftcard</type></action>
81
+ </reference>
82
+
83
+ </adminhtml_sales_order_creditmemo_new>
84
+
85
+ <adminhtml_sales_order_creditmemo_view>
86
+
87
+ <reference name="creditmemo_totals">
88
+ <block type="giftcard/adminhtml_sales_total_giftcard" name="gift_card_totals" />
89
+ </reference>
90
+
91
+ <reference name="creditmemo_items">
92
+ <action method="addColumnRender"><column>name</column><block>giftcard/adminhtml_sales_items_column_name_giftcard</block><template>sales/items/column/name.phtml</template><type>giftcard</type></action>
93
+ </reference>
94
+
95
+ </adminhtml_sales_order_creditmemo_view>
96
+
97
+ <adminhtml_sales_order_view>
98
+
99
+ <reference name="order_totals">
100
+ <block type="giftcard/adminhtml_sales_total_giftcard" name="total_gift_card_total" as="gift_card_total"/>
101
+ </reference>
102
+
103
+ <reference name="order_items">
104
+ <action method="addColumnRender"><column>name</column><block>giftcard/adminhtml_sales_items_column_name_giftcard</block><template>sales/items/column/name.phtml</template><type>giftcard</type></action>
105
+ </reference>
106
+
107
+ </adminhtml_sales_order_view>
108
+
109
+ <adminhtml_sales_order_invoice_new>
110
+
111
+ <reference name="invoice_totals">
112
+ <block type="giftcard/adminhtml_sales_invoice_total_giftcard" name="total_gift_card_total" as="gift_card_total"/>
113
+ </reference>
114
+
115
+ <reference name="order_items">
116
+ <action method="addColumnRender"><column>name</column><block>giftcard/adminhtml_sales_items_column_name_giftcard</block><template>sales/items/column/name.phtml</template><type>giftcard</type></action>
117
+ </reference>
118
+
119
+ </adminhtml_sales_order_invoice_new>
120
+
121
+ <adminhtml_sales_order_invoice_updateqty>
122
+
123
+ <reference name="order_items">
124
+ <action method="addColumnRender"><column>name</column><block>giftcard/adminhtml_sales_items_column_name_giftcard</block><template>sales/items/column/name.phtml</template><type>giftcard</type></action>
125
+ </reference>
126
+
127
+ <reference name="invoice_totals">
128
+ <block type="giftcard/adminhtml_sales_total_giftcard" name="total_gift_card_total" as="gift_card_total"/>
129
+ </reference>
130
+ </adminhtml_sales_order_invoice_updateqty>
131
+
132
+ <adminhtml_sales_order_invoice_view>
133
+
134
+ <reference name="invoice_items">
135
+ <action method="addColumnRender"><column>name</column><block>giftcard/adminhtml_sales_items_column_name_giftcard</block><template>sales/items/column/name.phtml</template><type>giftcard</type></action>
136
+ </reference>
137
+
138
+ <reference name="invoice_totals">
139
+ <block type="giftcard/adminhtml_sales_invoice_total_giftcard" name="total_gift_card_total" as="gift_card_total"/>
140
+ </reference>
141
+
142
+ </adminhtml_sales_order_invoice_view>
143
+
144
+
145
+ <adminhtml_sales_order_shipment_new>
146
+ <reference name="order_items">
147
+ <action method="addColumnRender"><column>name</column><block>giftcard/adminhtml_sales_items_column_name_giftcard</block><template>sales/items/column/name.phtml</template><type>giftcard</type></action>
148
+ </reference>
149
+ </adminhtml_sales_order_shipment_new>
150
+
151
+ <adminhtml_sales_order_shipment_view>
152
+ <reference name="shipment_items">
153
+ <action method="addColumnRender"><column>name</column><block>giftcard/adminhtml_sales_items_column_name_giftcard</block><template>sales/items/column/name.phtml</template><type>giftcard</type></action>
154
+ </reference>
155
+ </adminhtml_sales_order_shipment_view>
156
+
157
+ </layout>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/design/adminhtml/default/default/template/mt/giftcard/sales/creditmemo/create/total/giftcard.phtml CHANGED
@@ -1,14 +1,28 @@
1
- <?php $giftCards = $this->getGiftCardArray(); ?>
2
- <?php if (count($giftCards) != 0): ?>
3
- <?php foreach ($giftCards as $giftCard): ?>
4
- <?php $giftCardObj = $giftCard['source']; ?>
5
- <tr>
6
- <td class="label">
7
- <?php echo $this->__('Refund to Gift Card (%s)', $giftCard['code']) ?></td>
8
- <td><input type="text" name="gift_card[<?php echo $giftCardObj->getId()?>]" value="<?php echo $giftCard['total']?>" class="input-text not-negative-amount" style="width:60px;text-align:right" id="shipping_amount" /></td>
9
- </tr>
10
- <tr>
11
- <td colspan="2"></td>
12
- </tr>
13
- <?php endforeach; ?>
14
- <?php endif; ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ $order = $this->getOrder();
3
+ $collection = $this->getGiftCardOrderCollection();
4
+ ?>
5
+ <?php if ($collection->count() > 0): ?>
6
+ <?php foreach ($collection as $item): ?>
7
+ <?php
8
+
9
+ $giftCard = $item->getGiftCard();
10
+ if ($giftCard->getId()):
11
+ $refund = Mage::getModel('directory/currency')->format(
12
+ $item->getBaseDiscount()-$item->getBaseRefund(),
13
+ array('display'=>Zend_Currency::NO_SYMBOL),
14
+ false
15
+ );
16
+ ?>
17
+ <tr>
18
+ <td class="label">
19
+ <?php echo $this->__('Refund to Gift Card (%s)', $item->getGiftCardCode()) ?></td>
20
+ <td>
21
+ <input type="text" name="gift_card_order_item[<?php echo $item->getId()?>]" value="<?php echo $refund; ?>" class="input-text not-negative-amount" style="width:60px;text-align:right" id="shipping_amount" /></td>
22
+ </tr>
23
+ <tr>
24
+ <td colspan="2"></td>
25
+ </tr>
26
+ <?php endif; ?>
27
+ <?php endforeach; ?>
28
+ <?php endif; ?>
app/design/frontend/base/default/layout/mt/giftcard.xml CHANGED
@@ -1,116 +1,173 @@
1
- <?xml version="1.0"?>
2
-
3
- <layout version="0.1.0">
4
-
5
- <default>
6
- <reference name="methods">
7
-
8
- </reference>
9
- </default>
10
-
11
- <PRODUCT_TYPE_giftcard translate="label" module="catalog">
12
- <label>Catalog Product View (Gift Card)</label>
13
- <reference name="head">
14
- <action method="addItem" ifconfig="giftcard/general/jquery"><type>js</type><name>mt/giftcard/jquery-2.1.1.min.js</name><params/></action>
15
- <action method="addItem"><type>skin_js</type><name>js/mt/giftcard/giftcard.js</name><params/></action>
16
- </reference>
17
-
18
- <reference name="product.info.options.wrapper">
19
- <block type="giftcard/catalog_product_view_type_giftcard" name="product.info.options.giftcard" as="options_giftcard" before="-" template="mt/giftcard/catalog/product/view/type/options/giftcard.phtml">
20
- </block>
21
- </reference>
22
- </PRODUCT_TYPE_giftcard>
23
-
24
- <checkout_onepage_index>
25
- <reference name="head">
26
- <action method="addItem" ifconfig="giftcard/general/jquery"><type>js</type><name>mt/giftcard/jquery-2.1.1.min.js</name><params/></action>
27
- <action method="addItem"><type>skin_js</type><name>js/mt/giftcard/giftcardcheckout.js</name><params/></action>
28
- <action method="addCss"><stylesheet>css/mt/giftcard/giftcard.css</stylesheet> </action>
29
- </reference>
30
- <!--reference name="checkout.onepage.payment.methods_additional">
31
- <block type="giftcard/checkout_payment_giftcard" name="checkout.onepage.payment.methods_additional.giftcard" as="methods_additional_giftcard" before="-">
32
- <block type="giftcard/checkout_payment_giftcard_form" name="checkout.onepage.payment.methods_additional.giftcard.form" as="methods_additional_giftcard_form"/>
33
- </block>
34
- </reference-->
35
- </checkout_onepage_index>
36
-
37
- <checkout_cart_index>
38
- <reference name="head">
39
- <action method="addCss"><stylesheet>css/mt/giftcard/giftcard.css</stylesheet> </action>
40
- </reference>
41
- <reference name="checkout.cart.extra">
42
- <block type="giftcard/checkout_cart_giftcard" name="giftcard" template="mt/giftcard/checkout/cart/giftcard.phtml"/>
43
- </reference>
44
- <reference name="checkout.cart">
45
- <block type="giftcard/checkout_cart_giftcard" name="giftcard" template="mt/giftcard/checkout/cart/giftcard.phtml"/>
46
- </reference>
47
- </checkout_cart_index>
48
-
49
- <sales_email_order_items>
50
- <reference name="items">
51
- <action method="addItemRender"><type>giftcard</type><block>giftcard/sales_order_email_items_order_giftcard</block><template>email/order/items/order/default.phtml</template></action>
52
- </reference>
53
- <reference name="order_totals">
54
- <block type="giftcard/sales_order_totals_giftcard" name="total_gift_card_total" as="gift_card_total"/>
55
- </reference>
56
- </sales_email_order_items>
57
-
58
- <sales_email_order_invoice_items>
59
- <reference name="items">
60
- <action method="addItemRender"><type>giftcard</type><block>giftcard/sales_order_email_items_invoice_giftcard</block><template>email/order/items/invoice/default.phtml</template></action>
61
- </reference>
62
-
63
- <reference name="invoice_totals">
64
- <block type="giftcard/sales_order_invoice_totals_giftcard" name="total_gift_card_total" as="gift_card_total"/>
65
- </reference>
66
- </sales_email_order_invoice_items>
67
-
68
- <sales_order_view>
69
- <reference name="order_items">
70
- <action method="addItemRender"><type>giftcard</type><block>giftcard/sales_order_item_renderer_giftcard</block><template>sales/order/items/renderer/default.phtml</template></action>
71
- </reference>
72
- <reference name="sales.order.info.buttons">
73
- <block type="giftcard/sales_order_info_buttons" name="giftcard_buttons" template="mt/giftcard/sales/order/info/buttons.phtml"/>
74
- </reference>
75
- <reference name="sales.order.info">
76
- <block type="giftcard/sales_order_info_buttons" name="giftcard_buttons" template="mt/giftcard/sales/order/info/buttons.phtml"/>
77
- </reference>
78
- <reference name="order_totals">
79
- <block type="giftcard/sales_order_totals_giftcard" name="total_gift_card_total" as="gift_card_total"/>
80
- </reference>
81
- </sales_order_view>
82
-
83
- <sales_order_invoice>
84
- <reference name="sales.order.info.buttons">
85
- <block type="giftcard/sales_order_info_buttons" name="giftcard_buttons" template="mt/giftcard/sales/order/info/buttons.phtml"/>
86
- </reference>
87
- <reference name="sales.order.info">
88
- <block type="giftcard/sales_order_info_buttons" name="giftcard_buttons" template="mt/giftcard/sales/order/info/buttons.phtml"/>
89
- </reference>
90
- <reference name="invoice_items">
91
- <action method="addItemRender"><type>giftcard</type><block>giftcard/sales_order_invoice_item_renderer_giftcard</block><template>sales/order/invoice/items/renderer/default.phtml</template></action>
92
- </reference>
93
- <reference name="invoice_totals">
94
- <block type="giftcard/sales_order_invoice_totals_giftcard" name="total_gift_card_total" as="gift_card_total"/>
95
- </reference>
96
- </sales_order_invoice>
97
-
98
- <sales_order_shipment>
99
- <reference name="shipment_items">
100
- <action method="addItemRender"><type>giftcard</type><block>giftcard/sales_order_shipment_item_renderer_giftcard</block><template>sales/order/shipment/items/renderer/default.phtml</template></action>
101
- </reference>
102
- </sales_order_shipment>
103
-
104
- <sales_order_creditmemo>
105
- <reference name="creditmemo_items">
106
- <action method="addItemRender"><type>giftcard</type><block>giftcard/sales_order_creditmemo_item_renderer_giftcard</block><template>sales/order/creditmemo/items/renderer/default.phtml</template></action>
107
- </reference>
108
- </sales_order_creditmemo>
109
-
110
- <sales_order_print>
111
- <reference name="sales.order.print">
112
- <action method="addItemRender"><type>giftcard</type><block>giftcard/sales_order_print_item_renderer_giftcard</block><template>sales/order/items/renderer/default.phtml</template></action>
113
- </reference>
114
- </sales_order_print>
115
-
116
- </layout>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+
3
+ <layout version="0.1.0">
4
+
5
+ <PRODUCT_TYPE_giftcard translate="label" module="catalog">
6
+ <label>Catalog Product View (Gift Card)</label>
7
+ <reference name="head">
8
+ <action method="addItem" ifconfig="giftcard/general/jquery"><type>js</type><name>mt/giftcard/jquery-2.1.1.min.js</name><params/></action>
9
+ <action method="addItem"><type>skin_js</type><name>js/mt/giftcard/giftcard.js</name><params/></action>
10
+ </reference>
11
+
12
+ <reference name="product.info.options.wrapper">
13
+ <block type="giftcard/catalog_product_view_type_giftcard" name="product.info.options.giftcard" as="options_giftcard" before="-" template="mt/giftcard/catalog/product/view/type/options/giftcard.phtml">
14
+ </block>
15
+ </reference>
16
+ </PRODUCT_TYPE_giftcard>
17
+
18
+ <checkout_onepage_index>
19
+ <reference name="head">
20
+ <action method="addItem" ifconfig="giftcard/general/jquery"><type>js</type><name>mt/giftcard/jquery-2.1.1.min.js</name><params/></action>
21
+ <action method="addItem"><type>skin_js</type><name>js/mt/giftcard/giftcardcheckout.js</name><params/></action>
22
+ <action method="addCss"><stylesheet>css/mt/giftcard/giftcard.css</stylesheet> </action>
23
+ </reference>
24
+ </checkout_onepage_index>
25
+
26
+ <checkout_cart_index>
27
+ <reference name="head">
28
+ <action method="addCss"><stylesheet>css/mt/giftcard/giftcard.css</stylesheet> </action>
29
+ </reference>
30
+ <reference name="checkout.cart.extra">
31
+ <block type="giftcard/checkout_cart_giftcard" name="giftcard" template="mt/giftcard/checkout/cart/giftcard.phtml"/>
32
+ </reference>
33
+ <reference name="checkout.cart">
34
+ <block type="giftcard/checkout_cart_giftcard" name="giftcard" template="mt/giftcard/checkout/cart/giftcard.phtml"/>
35
+ </reference>
36
+ </checkout_cart_index>
37
+
38
+ <sales_email_order_items>
39
+ <reference name="items">
40
+ <action method="addItemRender"><type>giftcard</type><block>giftcard/sales_order_email_items_order_giftcard</block><template>email/order/items/order/default.phtml</template></action>
41
+ </reference>
42
+ <reference name="order_totals">
43
+ <block type="giftcard/sales_order_totals_giftcard" name="total_gift_card_total" as="gift_card_total"/>
44
+ </reference>
45
+ </sales_email_order_items>
46
+
47
+ <sales_email_order_invoice_items>
48
+ <reference name="items">
49
+ <action method="addItemRender"><type>giftcard</type><block>giftcard/sales_order_email_items_order_giftcard</block><template>email/order/items/invoice/default.phtml</template></action>
50
+ </reference>
51
+
52
+ <reference name="invoice_totals">
53
+ <block type="giftcard/sales_order_totals_giftcard" name="total_gift_card_total" as="gift_card_total"/>
54
+ </reference>
55
+ </sales_email_order_invoice_items>
56
+
57
+ <sales_email_order_creditmemo_items>
58
+ <reference name="items">
59
+ <action method="addItemRender"><type>giftcard</type><block>giftcard/sales_order_email_items_order_giftcard</block><template>email/order/items/creditmemo/default.phtml</template></action>
60
+ </reference>
61
+ <reference name="creditmemo_totals">
62
+ <block type="giftcard/sales_order_creditmemo_totals_giftcard" name="total_gift_card_total" as="gift_card_total"/>
63
+ </reference>
64
+ </sales_email_order_creditmemo_items>
65
+
66
+ <sales_email_order_shipment_items>
67
+ <reference name="items">
68
+ <action method="addItemRender"><type>giftcard</type><block>giftcard/sales_order_email_items_order_giftcard</block><template>email/order/items/shipment/default.phtml</template></action>
69
+ </reference>
70
+ </sales_email_order_shipment_items>
71
+
72
+ <sales_order_view>
73
+ <reference name="order_items">
74
+ <action method="addItemRender"><type>giftcard</type><block>giftcard/sales_order_item_renderer_giftcard</block><template>sales/order/items/renderer/default.phtml</template></action>
75
+ </reference>
76
+ <reference name="sales.order.info.buttons">
77
+ <block type="giftcard/sales_order_info_buttons" name="giftcard_buttons" template="mt/giftcard/sales/order/info/buttons.phtml"/>
78
+ </reference>
79
+ <reference name="sales.order.info">
80
+ <block type="giftcard/sales_order_info_buttons" name="giftcard_buttons" template="mt/giftcard/sales/order/info/buttons.phtml"/>
81
+ </reference>
82
+ <reference name="order_totals">
83
+ <block type="giftcard/sales_order_totals_giftcard" name="total_gift_card_total" as="gift_card_total"/>
84
+ </reference>
85
+ </sales_order_view>
86
+
87
+ <sales_order_invoice>
88
+ <reference name="invoice_items">
89
+ <action method="addItemRender"><type>giftcard</type><block>giftcard/sales_order_item_renderer_giftcard</block><template>sales/order/invoice/items/renderer/default.phtml</template></action>
90
+ </reference>
91
+ <reference name="sales.order.info.buttons">
92
+ <block type="giftcard/sales_order_info_buttons" name="giftcard_buttons" template="mt/giftcard/sales/order/info/buttons.phtml"/>
93
+ </reference>
94
+ <reference name="sales.order.info">
95
+ <block type="giftcard/sales_order_info_buttons" name="giftcard_buttons" template="mt/giftcard/sales/order/info/buttons.phtml"/>
96
+ </reference>
97
+ <reference name="invoice_totals">
98
+ <block type="giftcard/sales_order_totals_giftcard" name="total_gift_card_total" as="gift_card_total"/>
99
+ </reference>
100
+ </sales_order_invoice>
101
+
102
+ <sales_order_shipment>
103
+ <reference name="shipment_items">
104
+ <action method="addItemRender"><type>giftcard</type><block>giftcard/sales_order_item_renderer_giftcard</block><template>sales/order/shipment/items/renderer/default.phtml</template></action>
105
+ </reference>
106
+ </sales_order_shipment>
107
+
108
+ <sales_order_creditmemo>
109
+ <reference name="creditmemo_items">
110
+ <action method="addItemRender"><type>giftcard</type><block>giftcard/sales_order_item_renderer_giftcard</block><template>sales/order/creditmemo/items/renderer/default.phtml</template></action>
111
+ </reference>
112
+ <reference name="creditmemo_totals">
113
+ <block type="giftcard/sales_order_creditmemo_totals_giftcard" name="total_gift_card_total" as="gift_card_total"/>
114
+ </reference>
115
+ </sales_order_creditmemo>
116
+
117
+ <sales_order_print>
118
+ <reference name="sales.order.print">
119
+ <action method="addItemRender"><type>giftcard</type><block>giftcard/sales_order_item_renderer_giftcard</block><template>sales/order/items/renderer/default.phtml</template></action>
120
+ </reference>
121
+ <reference name="order_totals">
122
+ <block type="giftcard/sales_order_totals_giftcard" name="total_gift_card_total" as="gift_card_total"/>
123
+ </reference>
124
+ </sales_order_print>
125
+
126
+ <sales_order_printcreditmemo>
127
+ <reference name="sales.order.print.creditmemo">
128
+ <action method="addItemRender"><type>giftcard</type><block>giftcard/sales_order_item_renderer_giftcard</block><template>sales/order/creditmemo/items/renderer/default.phtml</template></action>
129
+ </reference>
130
+ <reference name="creditmemo_totals">
131
+ <block type="giftcard/sales_order_creditmemo_totals_giftcard" name="total_gift_card_total" as="gift_card_total"/>
132
+ </reference>
133
+ </sales_order_printcreditmemo>
134
+
135
+ <sales_order_printinvoice>
136
+ <reference name="sales.order.print.invoice">
137
+ <action method="addItemRender"><type>giftcard</type><block>giftcard/sales_order_item_renderer_giftcard</block><template>sales/order/invoice/items/renderer/default.phtml</template></action>
138
+ </reference>
139
+ <reference name="invoice_totals">
140
+ <block type="giftcard/sales_order_invoice_totals_giftcard" name="total_gift_card_total" as="gift_card_total"/>
141
+ </reference>
142
+ </sales_order_printinvoice>
143
+
144
+ <sales_order_printshipment>
145
+ <reference name="sales.order.print.shipment">
146
+ <action method="addItemRender"><type>giftcard</type><block>giftcard/sales_order_item_renderer_giftcard</block><template>sales/order/shipment/items/renderer/default.phtml</template></action>
147
+ </reference>
148
+ </sales_order_printshipment>
149
+
150
+ <giftcard_giftcard_status>
151
+ <reference name="content">
152
+ <block type="giftcard/giftcard_status" name="giftcard.status" template="mt/giftcard/giftcard/status.phtml"/>
153
+ </reference>
154
+ </giftcard_giftcard_status>
155
+
156
+ <customer_account>
157
+ <reference name="customer_account_navigation">
158
+ <action method="addLink" translate="label" module="sales"><name>giftcards</name><path>giftcard/giftcard/account/</path><label>My Gift Cards</label></action>
159
+ </reference>
160
+ </customer_account>
161
+
162
+ <giftcard_giftcard_account>
163
+ <label>Customer My Gift Cards</label>
164
+ <update handle="customer_account"/>
165
+ <reference name="root">
166
+ <action method="setTemplate"><template>page/2columns-left.phtml</template></action>
167
+ </reference>
168
+ <reference name="my.account.wrapper">
169
+ <block type="giftcard/account_giftcard" name="customer_account_giftcard" template="mt/giftcard/account/giftcard.phtml"/>
170
+ </reference>
171
+ </giftcard_giftcard_account>
172
+
173
+ </layout>
app/design/frontend/base/default/template/mt/giftcard/checkout/cart/giftcard.phtml CHANGED
@@ -1,69 +1,75 @@
1
- <?php
2
- if ($this->isVisible()):
3
- $giftCardCollection = $this->getAppliedGiftCards();
4
- $amount = $this->getAmount();
5
- $cartTotal = $this->getCartTotalWithoutGiftCard();
6
- ?>
7
- <form id="discount-giftcard-form" action="<?php echo $this->getUrl(/*'checkout/cart/giftcardPost'*/'giftcard/checkout_cart/giftcardpost') ?>" method="post">
8
-
9
- <div class="discount gc giftcard">
10
- <h2><?php echo $this->__('Gift Card') ?></h2>
11
- <div class="discount-form">
12
- <?php //if ($cartTotal > $amount): ?>
13
- <label for="giftcard_code"><?php echo $this->__('Enter your gift card code if you have one.') ?></label>
14
-
15
- <div class="input-box">
16
- <input class="input-text" id="giftcard_code" name="giftcard_code" value="<?php echo $this->escapeHtml($this->getgiftcardCode()) ?>" />
17
- </div>
18
- <?php //endif; ?>
19
-
20
- <?php if (count($giftCardCollection) > 0): ?>
21
- <dl class="gc-applied-gift-cards">
22
- <dt><?php echo $this->__('Applied Gift Cards');?></dt>
23
- <dd>
24
- <ul>
25
- <?php foreach ($giftCardCollection as $giftCard): ?>
26
- <li>
27
- <?php if (count($giftCardCollection) > 1): ?>
28
- <input name="giftcard_remove[]" value="<?php echo $giftCard->getCode();?>" class="checkbox" type="checkbox">
29
- <?php else: ?>
30
- <input name="giftcard_remove[]" value="<?php echo $giftCard->getCode();?>" type="hidden">
31
- <?php endif; ?>
32
- <label><?php echo $giftCard->getCode();?> -
33
- <span class="price"><?php echo $giftCard->getFormatedBalance();?></span>
34
- </label>
35
- </li>
36
- <?php endforeach; ?>
37
- </ul>
38
- </dd>
39
- </dl>
40
- <?php endif; ?>
41
-
42
- <div class="buttons-set">
43
- <input type="hidden" name="remove" id="remove-giftcard" value="0" />
44
- <button type="button" title="<?php echo $this->__('Apply Gift Card') ?>" class="button active" onclick="discountGiftCardForm.submit(false)" value="<?php echo $this->__('Apply Gift Card') ?>"><span><span><?php echo $this->__('Apply Gift Card') ?></span></span></button>
45
- <?php if (count($giftCardCollection) > 0): ?>
46
- <button type="button" title="<?php echo $this->__('Remove Gift Cards') ?>" class="button" onclick="discountGiftCardForm.submit(true)" value="<?php echo $this->__('Remove Gift Cards') ?>"><span><span><?php echo $this->__('Remove Gift Cards') ?></span></span></button>
47
- <?php endif; ?>
48
- </div>
49
- </div>
50
- </div>
51
- </form>
52
- <script type="text/javascript">
53
- //<![CDATA[
54
- var discountGiftCardForm = new VarienForm('discount-giftcard-form');
55
- discountGiftCardForm.submit = function (isRemove) {
56
- if (isRemove) {
57
- if ($('giftcard_code'))
58
- $('giftcard_code').removeClassName('required-entry');
59
- $('remove-giftcard').value = "1";
60
- } else {
61
- if ($('giftcard_code'))
62
- $('giftcard_code').addClassName('required-entry');
63
- $('remove-giftcard').value = "0";
64
- }
65
- return VarienForm.prototype.submit.bind(discountGiftCardForm)();
66
- }
67
- //]]>
68
- </script>
 
 
 
 
 
 
69
  <?php endif; ?>
1
+ <?php
2
+ if ($this->isActive()):
3
+ $giftCardCollection = $this->getAppliedGiftCards();
4
+ $amount = $this->getAmount();
5
+ $cartTotal = $this->getCartTotalWithoutGiftCard();
6
+ ?>
7
+ <form id="discount-giftcard-form" action="<?php echo $this->getUrl('giftcard/checkout_cart/giftCardPost') ?>" method="post">
8
+
9
+ <div class="discount gc giftcard">
10
+ <h2><?php echo $this->__('Gift Card') ?></h2>
11
+ <div class="discount-form">
12
+ <?php //if ($cartTotal > $amount): ?>
13
+ <label for="giftcard_code"><?php echo $this->__('Enter your gift card code if you have one.') ?></label>
14
+
15
+ <div class="input-box">
16
+ <input class="input-text" id="giftcard_code" name="giftcard_code" value="<?php echo $this->escapeHtml($this->getgiftcardCode()) ?>" />
17
+ </div>
18
+ <?php //endif; ?>
19
+
20
+ <?php if (count($giftCardCollection) > 0): ?>
21
+ <dl class="gc-applied-gift-cards">
22
+ <dt><?php echo $this->__('Applied Gift Cards');?></dt>
23
+ <dd>
24
+ <ul>
25
+ <?php foreach ($giftCardCollection as $giftCard): ?>
26
+ <li>
27
+ <?php if (count($giftCardCollection) > 1): ?>
28
+ <input name="giftcard_remove[]" value="<?php echo $giftCard->getCode();?>" class="checkbox" type="checkbox">
29
+ <?php else: ?>
30
+ <input name="giftcard_remove[]" value="<?php echo $giftCard->getCode();?>" type="hidden">
31
+ <?php endif; ?>
32
+ <label><?php echo $giftCard->getCode();?>
33
+ <?php $currentCurrency = Mage::app()->getStore()->getCurrentCurrencyCode();?>
34
+ -
35
+ <span class="price"><?php echo $giftCard->getFormatedBalance($currentCurrency);?>
36
+ <?php if ($giftCard->getCurrency() != $currentCurrency): ?>
37
+ (<?php echo $giftCard->getFormatedBalance();?>)
38
+ <?php endif; ?>
39
+ </span>
40
+ </label>
41
+ </li>
42
+ <?php endforeach; ?>
43
+ </ul>
44
+ </dd>
45
+ </dl>
46
+ <?php endif; ?>
47
+
48
+ <div class="buttons-set">
49
+ <input type="hidden" name="remove" id="remove-giftcard" value="0" />
50
+ <button type="button" title="<?php echo $this->__('Apply Gift Card') ?>" class="button active" onclick="discountGiftCardForm.submit(false)" value="<?php echo $this->__('Apply Gift Card') ?>"><span><span><?php echo $this->__('Apply Gift Card') ?></span></span></button>
51
+ <?php if (count($giftCardCollection) > 0): ?>
52
+ <button type="button" title="<?php echo $this->__('Remove Gift Cards') ?>" class="button" onclick="discountGiftCardForm.submit(true)" value="<?php echo $this->__('Remove Gift Cards') ?>"><span><span><?php echo $this->__('Remove Gift Cards') ?></span></span></button>
53
+ <?php endif; ?>
54
+ </div>
55
+ </div>
56
+ </div>
57
+ </form>
58
+ <script type="text/javascript">
59
+ //<![CDATA[
60
+ var discountGiftCardForm = new VarienForm('discount-giftcard-form');
61
+ discountGiftCardForm.submit = function (isRemove) {
62
+ if (isRemove) {
63
+ if ($('giftcard_code'))
64
+ $('giftcard_code').removeClassName('required-entry');
65
+ $('remove-giftcard').value = "1";
66
+ } else {
67
+ if ($('giftcard_code'))
68
+ $('giftcard_code').addClassName('required-entry');
69
+ $('remove-giftcard').value = "0";
70
+ }
71
+ return VarienForm.prototype.submit.bind(discountGiftCardForm)();
72
+ }
73
+ //]]>
74
+ </script>
75
  <?php endif; ?>
app/design/frontend/base/default/template/mt/giftcard/payment/giftcard/form.phtml CHANGED
@@ -1,3 +1,5 @@
 
 
1
  <?php $formVisible = Mage::helper('giftcard')->isPaymentMethodFormVisible();?>
2
  <script type="text/javascript">
3
  var paymentElement = $('p_method_giftcard');
@@ -13,4 +15,9 @@
13
  'requestUrl': '<?php echo $this->getControllerUrl(); ?>'
14
  });
15
  </script>
16
- <?php echo $this->getLayout()->createBlock('giftcard/payment_giftcard_form_giftcard')->toHtml(); ?>
 
 
 
 
 
1
+ <?php if ($this->isActive()): ?>
2
+
3
  <?php $formVisible = Mage::helper('giftcard')->isPaymentMethodFormVisible();?>
4
  <script type="text/javascript">
5
  var paymentElement = $('p_method_giftcard');
15
  'requestUrl': '<?php echo $this->getControllerUrl(); ?>'
16
  });
17
  </script>
18
+ <?php echo $this->getLayout()->createBlock('giftcard/payment_giftcard_form_giftcard')->toHtml(); ?>
19
+ <?php else: ?>
20
+ <script type="text/javascript">
21
+ GiftCardCheckout.hidePaymentMethod();
22
+ </script>
23
+ <?php endif;?>
app/design/frontend/base/default/template/mt/giftcard/payment/giftcard/form/giftcard.phtml CHANGED
@@ -1,12 +1,23 @@
1
  <?php $formVisible = Mage::helper('giftcard')->isPaymentMethodFormVisible();?>
2
  <div id="checkout-payment-method-gift-card">
3
  <ul class="form-list">
4
- <?php $giftCardCollection = Mage::helper('giftcard')->getAppliedGiftCardCollection();?>
5
  <?php if (count($giftCardCollection) > 0): ?>
6
  <?php foreach ($giftCardCollection as $key => $giftCard): ?>
7
  <li class="control gc-form-element">
8
  <input id="gift_card_code_<?php echo $key;?>" checked="checked" class="checkbox" type="checkbox" title="<?php echo $this->__('Use Gift Card to check out');?>" name="apply_gift_card[]" value="<?php echo $giftCard->getCode();?>"/>
9
- <label for="gift_card_code_<?php echo $key;?>"><?php echo $this->__('Gift Card');?> (<?php echo $giftCard->getCode();?>) <?php echo $this->__('Balance: ');?><strong><?php echo $giftCard->getFormatedBalance();?></strong></label>
 
 
 
 
 
 
 
 
 
 
 
10
  </li>
11
  <?php endforeach; ?>
12
  <?php endif; ?>
1
  <?php $formVisible = Mage::helper('giftcard')->isPaymentMethodFormVisible();?>
2
  <div id="checkout-payment-method-gift-card">
3
  <ul class="form-list">
4
+ <?php $giftCardCollection = $this->getAppliedGiftCardCollection();?>
5
  <?php if (count($giftCardCollection) > 0): ?>
6
  <?php foreach ($giftCardCollection as $key => $giftCard): ?>
7
  <li class="control gc-form-element">
8
  <input id="gift_card_code_<?php echo $key;?>" checked="checked" class="checkbox" type="checkbox" title="<?php echo $this->__('Use Gift Card to check out');?>" name="apply_gift_card[]" value="<?php echo $giftCard->getCode();?>"/>
9
+ <label for="gift_card_code_<?php echo $key;?>">
10
+ <?php echo $this->__('Gift Card');?> (<?php echo $giftCard->getCode();?>)
11
+ <?php echo $this->__('Balance: ');?>
12
+ <strong>
13
+ <?php
14
+ $currentCurrency = Mage::app()->getStore()->getCurrentCurrencyCode();
15
+ echo $giftCard->getFormatedBalance($currentCurrency);?>
16
+ <?php if ($giftCard->getCurrency() != $currentCurrency): ?>
17
+ (<?php echo $giftCard->getFormatedBalance();?>)
18
+ <?php endif; ?>
19
+ </strong>
20
+ </label>
21
  </li>
22
  <?php endforeach; ?>
23
  <?php endif; ?>
package.xml CHANGED
@@ -1,18 +1,21 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>MT_Giftcard</name>
4
- <version>1.1.1</version>
5
  <stability>stable</stability>
6
  <license uri="http://www.gnu.org/copyleft/gpl.html">GPL</license>
7
  <channel>community</channel>
8
  <extends/>
9
  <summary>Summary </summary>
10
  <description>Free magento gift card extension</description>
11
- <notes>Implemented on 1.9.x - 1.4.2.0</notes>
 
 
 
12
  <authors><author><name>Edvinas Stulpinas</name><user>edas1</user><email>edvinas.stulpinas@gmail.com</email></author></authors>
13
- <date>2015-04-03</date>
14
- <time>09:34:03</time>
15
- <contents><target name="mage"><dir name="app"><dir name="code"><dir name="community"><dir name="MT"><dir name="Giftcard"><dir><dir name="Block"><dir name="Adminhtml"><dir name="Catalog"><dir name="Product"><dir name="Edit"><dir name="Tabs"><dir name="Giftcardseries"><file name="Form.php" hash="6ba57986e47de3810eb5432edd8cae13"/><file name="Grid.php" hash="d3af7e0412fc9b81543af8a58d9bb2c5"/></dir></dir><file name="Tabs.php" hash="7d8a2728a2c2b931381b0ef627160323"/></dir></dir></dir><dir name="Giftcard"><dir name="Giftcard"><dir name="List"><file name="Grid.php" hash="dcd306e00d75bd69f8251fe8b09798ed"/></dir><file name="List.php" hash="176da6866b6abb40cf2dc9d3cba7597c"/></dir><dir name="Series"><dir name="Edit"><file name="Form.php" hash="4d52c40a6e56e6851af652b006ab96d8"/><dir name="Tabs"><file name="Edit.php" hash="4ecf35ae08c7d659db770619979c7273"/></dir><file name="Tabs.php" hash="f284f9dc303bca6ae9f2f869993a0697"/></dir><file name="Edit.php" hash="4eadad4f86671831b5c0133a419775f3"/><dir name="List"><file name="Grid.php" hash="de02b111b41d9db067666adbe15c1c5a"/></dir><file name="List.php" hash="451587dd80ac40d5ec0b08e39d2029e6"/></dir><dir name="Template"><dir name="Edit"><file name="Edit.php" hash="1917934e01ce1d4b2a45132454a6e810"/><file name="Form.php" hash="722fb3b93b8c5a800462e8d62c228bb6"/><file name="Js.php" hash="33c7d8b6eee7cb36761bd82ea076ca5e"/><file name="Tabs.php" hash="73764b68cc7d9fdd83447c13a6db5787"/><dir name="Theme"><file name="One.php" hash="d70a1e4d19aa94ca972b69b376926bd3"/></dir></dir><file name="Edit.php" hash="afec06744ddfec3f8297ef8fbc959f04"/><dir name="List"><file name="Grid.php" hash="7c3e7a4303e1dd3b8da6d3e237cc54b3"/></dir><file name="List.php" hash="0345847adc717ce416c1d8d7679ed130"/></dir></dir><dir name="Sales"><dir name="Creditmemo"><dir name="Create"><dir name="Total"><file name="Giftcard.php" hash="d8391b1b86be319b725debf16b901c7e"/></dir></dir><file name="Refund.php" hash="7f874138440cf23e2e8eb334ef471c62"/><dir name="Total"><file name="Giftcard.php" hash="5c883c7ecb44d32e9a3d7ce9536e5e84"/></dir><dir name="View"><dir name="Total"><file name="Giftcard.php" hash="b45537b5972ad058685254fdfe6f3127"/></dir></dir></dir><dir name="Items"><dir name="Column"><dir name="Name"><file name="Giftcard.php" hash="5daed6338457ae68894de91d3c061ce9"/></dir></dir></dir><dir name="Order"><file name="View.php" hash="c1b8d185d1b5066ab9b9b7ebcdf95f96"/></dir><dir name="Total"><file name="Giftcard.php" hash="c7e43f5fd38e7c8bca659ad0dcc87d7e"/></dir></dir><dir name="Widget"><dir name="Grid"><dir name="Column"><dir name="Renderer"><file name="DateTime.php" hash="7362458637165e5564d4a87abcaa9033"/><file name="Days.php" hash="2bfc2fb0491b77a962544d82cdb3c66d"/><file name="Empty.php" hash="de0d661ae7e8831bef15d57cb998632f"/><file name="Price.php" hash="56792c71abb74e153b35bf2a8c32ec6a"/><file name="Status.php" hash="504e0af3eee9c162aecaa9ad97527d08"/><file name="Store.php" hash="18e0987cf166c487206ddbeed70c58de"/><file name="Translate.php" hash="c8fd54ec81c5afda4102755d9f31cfa9"/></dir></dir></dir></dir></dir><dir name="Catalog"><dir name="Product"><dir name="Helper"><dir name="Form"><file name="Price.php" hash="3c7443352425f91916f9029248d8c08e"/></dir></dir><dir name="View"><dir name="Type"><file name="Giftcard.php" hash="fceb859207300158713008c2d7a9166b"/></dir></dir></dir></dir><dir name="Checkout"><dir name="Cart"><file name="Giftcard.php" hash="024083c88fb0f3cff24c1d982f346d33"/><dir name="Item"><file name="Renderer.php" hash="13f1c3a5e4cc9bc7d778b38b160d59e9"/></dir></dir></dir><dir name="Payment"><dir name="Giftcard"><dir name="Form"><file name="Giftcard.php" hash="8b0773e98f3ed6c66eb8cbc21aea6396"/></dir><file name="Form.php" hash="ec40089b38e59d1e18160f607000d0e6"/></dir></dir><dir name="Sales"><dir name="Order"><dir name="Creditmemo"><dir name="Item"><dir name="Renderer"><file name="Giftcard.php" hash="b20c78f0df3e59a630f51db350bf4ac4"/></dir></dir></dir><dir name="Email"><dir name="Items"><dir name="Invoice"><file name="Giftcard.php" hash="3c7d29d038abb099643b690d023f29e5"/></dir><dir name="Order"><file name="Giftcard.php" hash="a7ef6d04643fbd9c1c76cd1258ad1540"/></dir></dir></dir><dir name="Info"><file name="Buttons.php" hash="264eed43b6476d3b573c64763bae89f0"/></dir><dir name="Invoice"><dir name="Item"><dir name="Renderer"><file name="Giftcard.php" hash="18fe4aa679f67afee128d3268bd209ae"/></dir></dir><dir name="Totals"><file name="Giftcard.php" hash="bb7f13c1b38704c60b79045bee52ba67"/></dir></dir><dir name="Item"><dir name="Renderer"><file name="Giftcard.php" hash="2150aa2937bca87208f529041b4b4c60"/></dir></dir><dir name="Print"><dir name="Item"><dir name="Renderer"><file name="Giftcard.php" hash="2f8217aab2813f2628fccf94c40e0b88"/></dir></dir></dir><dir name="Shipment"><dir name="Item"><dir name="Renderer"><file name="Giftcard.php" hash="c83a1ea831ce08046cd09d50f0654580"/></dir></dir></dir><dir name="Totals"><file name="Giftcard.php" hash="783d7f72b9fd315ebac5db64431c5309"/></dir></dir></dir></dir><dir name="Helper"><dir name="Catalog"><dir name="Product"><file name="Configuration.php" hash="c5f821d6df23c647571cd97260aace53"/></dir></dir><file name="Data.php" hash="2f435554d80fbf07cca584fc7e5f5801"/></dir><dir name="Model"><dir name="Adminhtml"><dir name="System"><dir name="Config"><dir name="Source"><dir name="Giftcard"><file name="Design.php" hash="db768d5c518b8dfe233f6d5457b5b9c4"/><file name="Event.php" hash="9875a70a1581b3792f649f9b6092331f"/><file name="Format.php" hash="bc91cab62109d222de772bbba7aa6274"/><file name="Series.php" hash="aba6564547ffa61d8bef13869816a365"/><file name="State.php" hash="ca38a55cfd32a71379a572a949afd8f2"/><file name="Status.php" hash="d6ed0b91ac65615c72af6c5915519ec5"/><file name="Template.php" hash="870a1b61bf5a107aa766ec6446959cb2"/><file name="Type.php" hash="ef686e71f5e08b90d33731d31bc17539"/></dir><dir name="Locale"><file name="Currency.php" hash="212769c4b0ba792abcbf0764f0293495"/></dir></dir></dir></dir></dir><dir name="Catalog"><dir name="Product"><dir name="Option"><dir name="Type"><file name="GiftcardValue.php" hash="4358ccd736862f1869e7c13689cc4d69"/></dir></dir><file name="Option.php" hash="b5422bc85fda78a79601136979248aba"/><file name="Price.php" hash="10926b8121b069581716b2d722f50682"/><dir name="Type"><file name="Giftcard.php" hash="04185bb851822766d7465a61314fbd5b"/></dir><file name="Type.php" hash="f226aad02e2182c60211e4f3ec970a55"/></dir><file name="Product.php" hash="8d8ddd5e1f0433eca6fcfe1836aab9ca"/></dir><dir name="CatalogIndex"><dir name="Data"><file name="Giftcard.php" hash="802f244a7c7d446318cb164e206a51ff"/></dir></dir><dir name="Checkout"><file name="Giftcard.php" hash="1849f47f79a9a59c77673ef6ec523f3e"/></dir><dir name="Core"><dir name="Email"><dir name="Template"><file name="Init.php" hash="8e073a69ea49ba49b2e393c3e5704c6b"/></dir><file name="Template.php" hash="482a942bee454d2290849daec3039b85"/></dir></dir><dir name="Export"><file name="Abstract.php" hash="09eb1f2591a952299faece886fe42ea4"/><dir name="Adapter"><file name="Csv.php" hash="4843c1e3c036e73a7ad8d14a38359075"/><file name="Excel.php" hash="9667e698055b0b933a0b00c4502ded09"/><file name="Interface.php" hash="7fa119032136a44eba0d88aa2f25c313"/><file name="Pdf.php" hash="4a84ddff48ee47baa5a1ea9c8b27df52"/><file name="Zip.php" hash="c2d4aee14e50ff7161b71fb05d9eff1b"/></dir><file name="Collection.php" hash="b2d1ac3db40c0b893814968c604a3c31"/><file name="Grid.php" hash="5adeab37fa0f8e81239a3c40143fef82"/><file name="Object.php" hash="a6e7a80e3eb76d44b40d97c8f3da7d89"/></dir><dir name="Giftcard"><file name="Action.php" hash="6b9b615a80986e6272a2eec56bef4e0a"/><dir name="Design"><file name="Abstract.php" hash="3fd7b6e3a2fddcd68a98d8545dfef31f"/><file name="Default.php" hash="0b2d0e7aaf7675216ce74a7c0870aae4"/></dir><file name="Draw.php" hash="8786b2d3f519c605c72c43fa9ebd5b0b"/><file name="Pdf.php" hash="a5bee72e4155cc5fbd960326bbc78ef5"/></dir><file name="Giftcard.php" hash="1f9bed7588bea4b58fb5c774ed5ffb72"/><dir name="Import"><file name="Abstract.php" hash="a2b1b6b88a90fdbd8e63f5f836831148"/><dir name="Adapter"><file name="Csv.php" hash="4394752e4ff37fc5fa51fd558ea0e239"/><file name="Excel.php" hash="a99f838f56c4b97994ba757d245042d8"/><file name="Interface.php" hash="798076dd0df08e698bafb58ab7f0197e"/></dir><file name="Code.php" hash="6c2bdc65b2ac121f59abc4399388dc28"/><file name="Giftcard.php" hash="0de1f38b723e5ef89ed8235fad2104f0"/></dir><file name="Observer.php" hash="97af59612b758e34ec19702835765226"/><dir name="Option"><dir name="Source"><file name="Value.php" hash="8f3f7bc0fab0c5e045b30d3578643604"/></dir></dir><file name="Option.php" hash="12d6ca22d8d99a9b3c0ce8cf13375ad5"/><dir name="Payment"><file name="Giftcard.php" hash="693706e28c44c80104888be6830413c9"/></dir><dir name="Resource"><dir name="Giftcard"><file name="Collection.php" hash="a2ec4830dee19e8bc67ca86f77e76acb"/></dir><file name="Giftcard.php" hash="f863a386d1b201ff4b0057dd8e758cd9"/><dir name="Option"><file name="Collection.php" hash="5c800e6bd3dae83adf2a23d7d9c69f4f"/></dir><file name="Option.php" hash="1094c6e088b63521d9bfc3a3096529ee"/><dir name="Series"><file name="Collection.php" hash="c0f63638b2d7cdddec16e0f4f6132e34"/></dir><file name="Series.php" hash="e15496b1d81dde4b22d81351c87aa99b"/><dir name="Template"><file name="Collection.php" hash="5ec7e0ac6cb5202add9a5a1a64b4acfa"/></dir><file name="Template.php" hash="105a1061a84fb39eaa584753625ac517"/></dir><dir name="Sales"><file name="Discount.php" hash="c2548baed309f9a82453414257822b1a"/><dir name="Order"><dir name="Creditmemo"><dir name="Total"><file name="Giftcard.php" hash="4d99a19372e954efb8012464e4704a17"/></dir></dir><dir name="Invoice"><dir name="Total"><file name="Giftcard.php" hash="3f9aaca0bcd5e02b48237a9227a433e0"/></dir></dir></dir><dir name="Quote"><dir name="Total"><file name="Giftcard.php" hash="46984ea355030f13e36120b5a7c530de"/></dir></dir></dir><dir name="Series"><file name="Action.php" hash="d89641d09eb6fe1c497026fd82859d60"/><file name="Generator.php" hash="0eb0a8ae65de74a809385f0114789f05"/></dir><file name="Series.php" hash="d59b86da6a1998ae6aec08adef704429"/><dir name="Template"><file name="Action.php" hash="516c1eb7b63a8ab8d1bc6f9998b784ca"/></dir><file name="Template.php" hash="c55da9594342d746081dc68ff6b6de92"/></dir><dir name="controllers"><dir name="Adminhtml"><dir name="Catalog"><file name="ProductController.php" hash="f331364419d5a59af4e3f8a628606d7f"/></dir><dir name="Giftcard"><file name="ExportController.php" hash="02c1c8d06865cb6848490cbbb41b653e"/><file name="GiftcardController.php" hash="001409911ad1e3c27b722cfac3218bd4"/><file name="SeriesController.php" hash="f34af93d647791618b9c33c27278a769"/><file name="TemplateController.php" hash="ed9038df5eaedf14c375234f7dc2bcdb"/></dir></dir><dir name="Checkout"><file name="CartController.php" hash="15ade20fe8542f0054aee89ea44de5be"/></dir><file name="GiftcardController.php" hash="46235437fd9fbdf7fe5e27258cfb6180"/></dir><dir name="etc"><file name="adminhtml.xml" hash="7f7e5385aeb9a43a5a528d130484147f"/><file name="config.xml" hash="1201b7cfaf87bbd49f40738015fbce43"/><file name="system.xml" hash="1a046dc4699418bc4fd5df111ac58bf6"/></dir><dir name="sql"><dir name="giftcard_setup"><file name="mysql4-install-1.0.0.php" hash="dbafa9bda0122cc8ba96781401800f68"/><file name="mysql4-upgrade-1.0.0-1.0.1.php" hash="d5599ed44143cbf47422f2885727c2b1"/><file name="mysql4-upgrade-1.0.1-1.0.2.php" hash="fd2d784cfa3af5f17f6e29997d7b7705"/><file name="mysql4-upgrade-1.0.2-1.0.3.php" hash="d48218a0040c98a644981d158b6891ee"/></dir></dir></dir></dir></dir></dir></dir><dir name="etc"><dir name="modules"><file name="MT_Giftcard.xml" hash="ca094ea06a7910dc265e935e161b9d98"/></dir></dir><dir name="design"><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><dir name="mt"><file name="giftcard.xml" hash="b1266eb4f8f5e5c8ea6e23f7abe1fa1e"/></dir></dir><dir name="template"><dir name="mt"><dir name="giftcard"><dir><dir name="catalog"><dir name="product"><dir name="view"><dir name="type"><dir name="options"><file name="giftcard.phtml" hash="b5934afd5e7f93674402b25d63459e70"/></dir></dir></dir></dir></dir><dir name="checkout"><dir name="cart"><file name="giftcard.phtml" hash="75079565abc1788e0fd6da9e9dd9b056"/></dir></dir><dir name="payment"><dir name="giftcard"><dir name="form"><file name="giftcard.phtml" hash="fa7ab3b1c0e9e718926fd243688e1c15"/></dir><file name="form.phtml" hash="896091390a121afc6ee64adfa8748964"/></dir></dir><dir name="sales"><dir name="order"><dir name="info"><file name="buttons.phtml" hash="12abbdcdbff241a3fb448c51493286fe"/></dir></dir></dir></dir></dir></dir></dir></dir></dir></dir><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="template"><dir name="mt"><dir name="giftcard"><dir><dir name="catalog"><dir name="product"><dir name="edit"><dir name="tab"><dir name="options"><file name="option.phtml" hash="3f5885df27c65633a6c7a1f8ba18f4d7"/><dir name="type"><file name="giftcardvalue.phtml" hash="3f5885df27c65633a6c7a1f8ba18f4d7"/></dir></dir></dir></dir></dir></dir><dir name="giftcard"><dir name="series"><file name="js.phtml" hash="99defd275b4e0a674edafe2119c56309"/></dir><dir name="template"><dir name="edit"><file name="js.phtml" hash="3e399880a503d30c90c3acd16372e3e3"/></dir></dir></dir><dir name="sales"><dir name="creditmemo"><dir name="create"><dir name="total"><file name="giftcard.phtml" hash="f0de805a54be03f04c741d8685e7179d"/></dir></dir><file name="refund.phtml" hash="64fe05f67d988621092599b05d6cffe3"/><dir name="view"><dir name="total"><file name="giftcard.phtml" hash="8e055cf4f56e07805a7bb021121cb404"/></dir></dir></dir></dir></dir></dir></dir></dir><dir name="layout"><dir name="mt"><file name="giftcard.xml" hash="481646a8be417c7dde7a9c5bee42df1d"/></dir></dir></dir></dir></dir></dir><dir name="locale"><dir name="en_US"><file name="MT_Giftcard.csv" hash="030a023d4765a41861862d26e94a2a61"/><file name="MT_Giftcard_Adminhtml.csv" hash="a4030ebbce038f66d5de95836b07b3a9"/></dir></dir></dir><dir name="js"><dir name="mt"><dir name="giftcard"><dir><dir name="adminhtml"><file name="gift_card.js" hash="a077f36a4718a5ba27b11f33af163334"/><file name="gift_card_series.js" hash="34d968fa1668c4e9aec42803090a73ce"/><file name="gift_card_template.js" hash="f247e17ba83b638e336a440c1c4c4fb6"/><dir name="jscolor"><file name="arrow.gif" hash="5034704a76cd55c1cbcbc58ea6bf523f"/><file name="cross.gif" hash="ba9a274b9323753cd95bc3b1eb2f4e5f"/><file name="demo.html" hash="742abe680859d25a2052ac5be6b65203"/><file name="hs.png" hash="fefa1a03d92ebad25c88dca94a0b63db"/><file name="hv.png" hash="990d71cada17da100653636cf8490884"/><file name="jscolor.js" hash="a26701f49bf33da8dc48f3431e5f4f42"/></dir></dir></dir><file name="jquery-2.1.1.min.js" hash="9a094379d98c6458d480ad5a51c4aa27"/></dir></dir></dir><dir name="skin"><dir name="frontend"><dir name="base"><dir name="default"><dir name="css"><dir name="mt"><dir name="giftcard"><file name="giftcard.css" hash="acf19b6c0935ae22f827280fbe04af39"/></dir></dir></dir><dir name="images"><dir name="mt"><dir name="giftcard"><file name="opc-ajax-loader.gif" hash="f48ee069890b16455c3ddcacee9b5f75"/></dir></dir></dir><dir name="mt"><dir name="giftcard"><dir><dir name="design"><dir name="default"><dir name="fonts"><file name="Chaparral-Pro-Regular.ttf" hash="6848adda9090c62208b75b8ad77cdd75"/><file name="Roboto-Black.ttf" hash="a77b7fc4cf040eb5bb26b0685893a9df"/><file name="Roboto-Light.ttf" hash="e22062b3188c8199283ef2aa835d4653"/><file name="Roboto-Medium.ttf" hash="99fc0816a09395454061301fefa42bf1"/><file name="myriad-web-pro.ttf" hash="ff71ffc3836541cf0071d0a47ae0c715"/></dir><dir name="img"><file name="bg.jpg" hash="46661fc213743bc87132e3aebb0ff00e"/><file name="price.png" hash="a4be48a4be4d8b6b3ddbca50457476c7"/><file name="price2.png" hash="4b857a754bdfc344cea059750de0333c"/><file name="shadow.png" hash="a24d8ce96c6ac0a411e93f77a9eb59fb"/><file name="shape.jpg" hash="e0dace3f47ba46091462fbacd466d453"/></dir></dir></dir></dir></dir></dir><dir name="js"><dir name="mt"><dir name="giftcard"><file name="giftcard.js" hash="30f94e3271d018b83e55c5a454ac0286"/><file name="giftcardcheckout.js" hash="8e2a4e78046a56a77fb1891f5194cdb3"/></dir></dir></dir></dir></dir></dir><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="mt"><dir name="giftcard"><file name="gift_card_style.css" hash="4da70f033c3873fd69cbecc3a3ab52ad"/><dir name="import"><file name="gift_card_codes_example.csv" hash="8c04e295be30a1a316c50c8781c13778"/><file name="gift_card_codes_example.xlsx" hash="974af675c981d592303d6332a3fbed9f"/></dir></dir></dir></dir></dir></dir></dir><dir><dir name="lib"><dir name="PHPExcel"><file name="Autoloader.php" hash="c0ac1b27ca0013f02b65abff156eb888"/><dir><dir name="CachedObjectStorage"><file name="APC.php" hash="060a6e5b1c7a0ea4d6d38bd7a637a40c"/><file name="CacheBase.php" hash="45ec0389643f44555f45b7f732fb9328"/><file name="DiscISAM.php" hash="792c27a7920a33100d082e3a1e863e0f"/><file name="ICache.php" hash="42b7649b7901073e4f3f4d1f1184da50"/><file name="Igbinary.php" hash="9caa0af653e56e5c3ad9f9ee6bcdf71c"/><file name="Memcache.php" hash="e9c9fd2dfa1ef0c7df194f32a55c584c"/><file name="Memory.php" hash="67d943f12ce373b554c44a8427950f5e"/><file name="MemoryGZip.php" hash="7cfc009c1634fbbbdf229e1ccf4b193f"/><file name="MemorySerialized.php" hash="b9498b0c52a0e9635557841db318ed79"/><file name="PHPTemp.php" hash="8cbab31264df67172d4753abaea3028f"/><file name="SQLite.php" hash="705f689486dee5e55cb54560a743e847"/><file name="SQLite3.php" hash="2be3feafefad4a501232156beff5ae94"/><file name="Wincache.php" hash="649b95ef8f1d8b9b1fce1c32d8e13670"/></dir><dir name="CalcEngine"><file name="CyclicReferenceStack.php" hash="8e0ccafd804a7c959e5fbc78cadee900"/><file name="Logger.php" hash="73bbe66af2e991b27011b60764e2bdac"/></dir><dir name="Calculation"><file name="Database.php" hash="fcc0d987b23c0a43a30a0cc444c9e42d"/><file name="DateTime.php" hash="74929cc98942540350877d4e045c1da1"/><file name="Engineering.php" hash="2f1ab671181d9496ee11118985d25d4f"/><file name="Exception.php" hash="652642e024783e23648d116fe6f0f2be"/><file name="ExceptionHandler.php" hash="af3157a0957577c2b56b2020faa6160f"/><file name="Financial.php" hash="ca890b073f75aa48c49fb01a8f1e15ee"/><file name="FormulaParser.php" hash="e60e4f77093cc60f73edbaf4be80695a"/><file name="FormulaToken.php" hash="8a2535134cdf044103f0ac88f9db6b93"/><file name="Function.php" hash="c5201782fcaf859c643323a2883e3f45"/><file name="Functions.php" hash="d8d80883dfe5de21b8f3807a7f254022"/><file name="Logical.php" hash="d35eec76ac850e468ffff5dba3dd6bd0"/><file name="LookupRef.php" hash="9d21e4f2dc9340e4c6936f476f931ecc"/><file name="MathTrig.php" hash="a4c6abb1892c3091e6677ca6a4fc2053"/><file name="Statistical.php" hash="200647a809afc11198fcb52d47718061"/><file name="TextData.php" hash="9e97f8cf0e2b644711bcb4ba812b62a1"/><dir name="Token"><file name="Stack.php" hash="fd7a697177f560320eb38960e252e89c"/></dir><file name="functionlist.txt" hash="0b49438e2daa296d8e00527b1914c558"/></dir><dir name="Cell"><file name="AdvancedValueBinder.php" hash="cf4892ed82cfb2ecd8eb7ee7b7a5e334"/><file name="DataType.php" hash="8ccc274284e31a4c07370955114c7d70"/><file name="DataValidation.php" hash="eb5c4fa4d7185356d2056332b09d8f09"/><file name="DefaultValueBinder.php" hash="8af25074b5bbbe4301ddf05ac1957dff"/><file name="Hyperlink.php" hash="32393f6556a0f5ca28935a8b5e2377bc"/><file name="IValueBinder.php" hash="901680ab3e1103a5f48871dc9cd381d6"/></dir><dir name="Chart"><file name="DataSeries.php" hash="e7076e005301be41adf52a58e0824be7"/><file name="DataSeriesValues.php" hash="6bae1ddb7670c6966aa650b736adc56e"/><file name="Exception.php" hash="a06db381aca20a233a2343fdb1b3984d"/><file name="Layout.php" hash="f372df2e9240733449ec13299e12a731"/><file name="Legend.php" hash="007d1fc43db17a7a714ac490d621d3a4"/><file name="PlotArea.php" hash="ebc3924021d32e09fbf6e191ea7c9169"/><dir name="Renderer"><file name="PHP Charting Libraries.txt" hash="6ce1c907ce7043d81288b98e1ffd8c35"/><file name="jpgraph.php" hash="279ce653db7b4177d1c378c421dd4ffe"/></dir><file name="Title.php" hash="02874bda68ff78da251e84c68fe61b3c"/></dir><dir name="Reader"><file name="Abstract.php" hash="5e936960b43fc0286ba3b6663222eeab"/><file name="CSV.php" hash="141e9bcc6c31323092927e5e0ca8f162"/><file name="DefaultReadFilter.php" hash="83e54f1b119a512e8d64cef6b258865f"/><file name="Excel2003XML.php" hash="9fafa9bb7e70b9063a4082598f1cc52a"/><dir name="Excel2007"><file name="Chart.php" hash="496a5edc2e1a2c9664459047481e44bf"/><file name="Theme.php" hash="503ca86087407ce4711cfdacbae846dd"/></dir><file name="Excel2007.php" hash="7367d998079874628d53827d415194f9"/><dir name="Excel5"><file name="Escher.php" hash="f4e8768b6bb41c6d95a3d443189f4dc3"/><file name="MD5.php" hash="2dc878b66882d023d8ae841f1e93138a"/><file name="RC4.php" hash="fba55a88fc22e075a6e2b6a6fdcfe5fa"/></dir><file name="Excel5.php" hash="0a440d3c5a6797eb0d3bebbcff230cf1"/><file name="Exception.php" hash="7125b5445841b29f219c175258c89ae8"/><file name="Gnumeric.php" hash="14eb4e868c3c117ca78b2ee1a8fbd5e7"/><file name="HTML.php" hash="96afd8420f5fedf86759e50e18c19ae4"/><file name="IReadFilter.php" hash="0736c334c496bf42d0e16d2dd0b9dbd2"/><file name="IReader.php" hash="8e6325d94957c3edd350d967cba66eda"/><file name="OOCalc.php" hash="f0787409765f1ebd3af78d0afa83ee6c"/><file name="SYLK.php" hash="5a68110f072be2987678b928e2a5b5dd"/></dir><dir name="RichText"><file name="ITextElement.php" hash="022e671cfd5fe5036f556aa3da0b5e13"/><file name="Run.php" hash="42e3a7e9b7e9dc2b4764cd7e9256e2dc"/><file name="TextElement.php" hash="312b6cc37fa1260236670384c445cdef"/></dir><dir name="Shared"><file name="CodePage.php" hash="f778196b9cfc0da13183b253057bec0b"/><file name="Date.php" hash="a26d5625d129579d9f524ab8d0531f30"/><file name="Drawing.php" hash="af1da980682f5c1f2731f94133b81567"/><dir name="Escher"><dir name="DgContainer"><dir name="SpgrContainer"><file name="SpContainer.php" hash="8194d9a9e6d02245fea8bc4f36f07c93"/></dir><file name="SpgrContainer.php" hash="32c66b6e42634db60322c5e23f60b82f"/></dir><file name="DgContainer.php" hash="0a999b2c39273240d5d0a9df52b660e4"/><dir name="DggContainer"><dir name="BstoreContainer"><dir name="BSE"><file name="Blip.php" hash="82e7eaa1811b7cfb946c047a92427c38"/></dir><file name="BSE.php" hash="dec31faefa86bcac6179fb64d2ec273b"/></dir><file name="BstoreContainer.php" hash="1da7d264aabc0acb3fa391ab5abeae02"/></dir><file name="DggContainer.php" hash="3cc63376df61d3de6cb3d0381b26e258"/></dir><file name="Escher.php" hash="814c9b01923def958017f1333eee2177"/><file name="Excel5.php" hash="86feffcfde61c12b6e6f013620599c27"/><file name="File.php" hash="a657b5cf8872cfe2107c9c01baba8cdd"/><file name="Font.php" hash="88d74f04f0b130c6c633d773cd37669d"/><dir name="JAMA"><file name="CHANGELOG.TXT" hash="81155b0ba4a4aee114047e7aa51e4043"/><file name="CholeskyDecomposition.php" hash="d34ecb13bcefd7c6f04139def3796b60"/><file name="EigenvalueDecomposition.php" hash="c17e11c6d3aa17ad5ed1987ca2782023"/><file name="LUDecomposition.php" hash="e17c4558ef2a3e1914f7b658cc44b93d"/><file name="Matrix.php" hash="53ad625ea79d17eedc3808d257e7bab5"/><file name="QRDecomposition.php" hash="99c31e87a163d45f8c6d940ebbc5e171"/><file name="SingularValueDecomposition.php" hash="d18aa1bcae41dac035353f25d3e77a31"/><dir name="utils"><file name="Error.php" hash="ee40ef699a75fcb33856a80f1b5862cb"/><file name="Maths.php" hash="44462be998ffabaa1530d804438ca521"/></dir></dir><dir name="OLE"><file name="ChainedBlockStream.php" hash="d4bb1993b2f702946acfa46e97aa4160"/><dir name="PPS"><file name="File.php" hash="0474f51f53afc5638edcc9a0b6c3fbc2"/><file name="Root.php" hash="208d81258c79750799dbab04c81ff1f0"/></dir><file name="PPS.php" hash="9d8e405cd746bc5689b6dbfd9bd3a75f"/></dir><file name="OLE.php" hash="855929ae8f887d2cc1881176f0cc5698"/><file name="OLERead.php" hash="446ec9ee4bdd7cc7e025197033b425e9"/><dir name="PCLZip"><file name="gnu-lgpl.txt" hash="f14599a2f089f6ff8c97e2baa4e3d575"/><file name="pclzip.lib.php" hash="3ee0a4d8a06cedc0a56f29e8f351ef72"/><file name="readme.txt" hash="0d82536577908a1f78e1b5c6220f5810"/></dir><file name="PasswordHasher.php" hash="7e9dbb123da6ebf684d78d59dc55aae6"/><file name="String.php" hash="a33e20a7869cb76cfedea8168aeb144e"/><file name="TimeZone.php" hash="d65f43b613e065f013eef6803c56f0bc"/><file name="XMLWriter.php" hash="2c7ef964e936d08dc0a2a100665702e0"/><file name="ZipArchive.php" hash="e2fa9952bbefd2d81507e458d539ded4"/><file name="ZipStreamWrapper.php" hash="ad14dcb8fbd5222b7806e39122b1661c"/><dir name="trend"><file name="bestFitClass.php" hash="b59ad65a9b95d6bfa72cbdb3416ffc6b"/><file name="exponentialBestFitClass.php" hash="021fe1a3f2453c26c40b2692bf3e13d5"/><file name="linearBestFitClass.php" hash="1c56b0b6062a02ad58eb48fe77f1eff1"/><file name="logarithmicBestFitClass.php" hash="4000e8e6ee228a63a6712448d3689df0"/><file name="polynomialBestFitClass.php" hash="48e12ca22a05fb7fdb6cb66b9d996b02"/><file name="powerBestFitClass.php" hash="e76a3317b4c761b45107b160689286b2"/><file name="trendClass.php" hash="4f826ac73685676b87076de95a17ff1e"/></dir></dir><dir name="Style"><file name="Alignment.php" hash="6629881d62ec07d2bee03625ba8343a0"/><file name="Border.php" hash="5e707af05b1dcbe3cc069532cfb1a49c"/><file name="Borders.php" hash="55ab49a60cc4731aaf87bb8471d5eb99"/><file name="Color.php" hash="f70870d3d4c4a238636e775c6c489185"/><file name="Conditional.php" hash="70eaa6d58e2b64689afba07ac916137f"/><file name="Fill.php" hash="44daa400dc0b6bde70d917b8c349fe4e"/><file name="Font.php" hash="2de4834bb4b11444e4995a91517f91e3"/><file name="NumberFormat.php" hash="053298f5a8a54cdf0581f3e393014817"/><file name="Protection.php" hash="52d3d0e540fc22af4df901c9dae23cd6"/><file name="Supervisor.php" hash="9c06b8d9c19e79344fe667264bcf4104"/></dir><dir name="Worksheet"><dir name="AutoFilter"><dir name="Column"><file name="Rule.php" hash="006d912960d4c2ba3dafff71ef693a19"/></dir><file name="Column.php" hash="92ee57544a767280c79e7e0551087e7a"/></dir><file name="AutoFilter.php" hash="b729e61a53f2a3889f0d9282543b81ff"/><file name="BaseDrawing.php" hash="ca57c82c46c78c7e8b349eafa9a88593"/><file name="CellIterator.php" hash="d4bc618bbc586249c1e5dc7df1d993ac"/><file name="ColumnDimension.php" hash="3b9ec591295530beb15cd8237c7cc70d"/><dir name="Drawing"><file name="Shadow.php" hash="d630b34c395209b07d4dd804ee18dc73"/></dir><file name="Drawing.php" hash="cbf3a833861eeaaf3701787357450294"/><file name="HeaderFooter.php" hash="98de723123be2d2a249f367c570b9c29"/><file name="HeaderFooterDrawing.php" hash="c7c6f9b3505e4371f55108ff03d24d16"/><file name="MemoryDrawing.php" hash="333c41a96934a40789bb756955837fce"/><file name="PageMargins.php" hash="513f4fd898a3c7a753e6a5fd314ad662"/><file name="PageSetup.php" hash="ad4d560edf7688ed37ab304139d84f79"/><file name="Protection.php" hash="a8009085ec12f6e99f163df7946d610c"/><file name="Row.php" hash="c7240acf83a4bb1d5d867d7a0cc77f5a"/><file name="RowDimension.php" hash="b2fb45b94bb56d896d09a5d561082676"/><file name="RowIterator.php" hash="6984179f0409f6fc83db123b4b3a6e3d"/><file name="SheetView.php" hash="643122447438c7b65a12d044d8eba413"/></dir><dir name="Writer"><file name="Abstract.php" hash="71881e3c107b9e9ed8d38192b5d83700"/><file name="CSV.php" hash="641fa5f7d7b5805ef77566699631a2ff"/><dir name="Excel2007"><file name="Chart.php" hash="64ef1552a4726a0bd1e017027a529662"/><file name="Comments.php" hash="37f5f882ad0bb555d05b6996008d8662"/><file name="ContentTypes.php" hash="6e0a91955bbe0c65e517ec3a0755c7f8"/><file name="DocProps.php" hash="857de2845f5baa04e4496faa19da5d0b"/><file name="Drawing.php" hash="6b9f0004b35622ab59a613bd81f33b6d"/><file name="Rels.php" hash="4477e66d75e9f48468bf9b086159ae09"/><file name="RelsRibbon.php" hash="3f66b74fb31784ca8ce4bd5bc7291ee3"/><file name="RelsVBA.php" hash="880686bbfa3e472554291b46adcbdf7a"/><file name="StringTable.php" hash="9a4274e4c1b5b2c3fe470cf4a13d5c6b"/><file name="Style.php" hash="e3e5723d4360af64a18d30c0b93a942a"/><file name="Theme.php" hash="eac4b2103b90d25979a60f64179cb7bc"/><file name="Workbook.php" hash="018aabcb96afc1c7dd397fe5b05a6eb9"/><file name="Worksheet.php" hash="88b5cc0fde4a95b2cb89e63b7abcd46c"/><file name="WriterPart.php" hash="b57a9a922bf85e0c55b9fb3e25e7914d"/></dir><file name="Excel2007.php" hash="9747cbee3a0c7e82a77b658203c661a3"/><dir name="Excel5"><file name="BIFFwriter.php" hash="718654fec54a551f016a37ca804b42de"/><file name="Escher.php" hash="0d416af1873a7fe13017c0f53a70da16"/><file name="Font.php" hash="7f2445071c18c6b1c2c1795eae0b7c12"/><file name="Parser.php" hash="ac6ba6bf3cbdcfe7c270a5eff8d8d768"/><file name="Workbook.php" hash="fe2d6f409f6141004c784478160112ef"/><file name="Worksheet.php" hash="2eb04d70106f0635944c7d793eb124e0"/><file name="Xf.php" hash="aebe288abce9d204dee832a1b2522e3a"/></dir><file name="Excel5.php" hash="44c5bbf4edae0f164f18c6816a76f98d"/><file name="Exception.php" hash="7bab6538d9b1b384046054de54e96f42"/><file name="HTML.php" hash="00865972340ff901b501935814385eaa"/><file name="IWriter.php" hash="f09b0dc69e45f2ffa0ac9b5ab502fb82"/><dir name="PDF"><file name="Core.php" hash="e2a46d6c77a74863f81a5842d6a9ebca"/><file name="DomPDF.php" hash="90810f3edb94624db9675e903b00471c"/><file name="mPDF.php" hash="0be83c393289fe4fa01d71757beb7c1f"/><file name="tcPDF.php" hash="3ed2de3ea0628b6dddd7deae4c4b5846"/></dir><file name="PDF.php" hash="389cbece6563cd263debef97ec425957"/></dir><dir name="locale"><dir name="bg"><file name="config" hash="bd48b1342028433c0e8b1405f63681b6"/></dir><dir name="cs"><file name="config" hash="5bec343ec684797f504042520ee2d770"/><file name="functions" hash="dd9b6a53208a2d9128a0dbed5a192c61"/></dir><dir name="da"><file name="config" hash="3c9e6275eeb4e3e8b0227e6fa1cc7e99"/><file name="functions" hash="2be89aab61a219f5102367274eb6ebbd"/></dir><dir name="de"><file name="config" hash="eb1de3a4a017502843d25740d42f0a2c"/><file name="functions" hash="000406260d68b33e72ea78dfeb00b5ff"/></dir><dir name="en"><dir name="uk"><file name="config" hash="24025d0951937faf37cf1c6e0f3dc126"/></dir></dir><dir name="es"><file name="config" hash="65290b4e3b67ebb9a97a90b9222c7e15"/><file name="functions" hash="a703deb701efd97e00291db5333afb3c"/></dir><dir name="fi"><file name="config" hash="14d9c9df4ce03460ea96c3d80399ae57"/><file name="functions" hash="b5e2892f1b2a3a4961e1afcc3a6ee640"/></dir><dir name="fr"><file name="config" hash="027f624b5a6e245629eb0c61e3885e32"/><file name="functions" hash="a77aca7f185e1d209515a4496bafee4e"/></dir><dir name="hu"><file name="config" hash="5fa5ca22943755f450c54c677cdc9746"/><file name="functions" hash="1fb62789d3bac98fa779cd4b41b586ae"/></dir><dir name="it"><file name="config" hash="150afe868eb2c018cf6821f24e4cbd61"/><file name="functions" hash="33abdfe7001d4fdbe302900074323b0e"/></dir><dir name="nl"><file name="config" hash="491f94c0f2bfb810f70ad2318163cd4d"/><file name="functions" hash="0c67a37f97efc98f45722cc2f4fcc35b"/></dir><dir name="no"><file name="config" hash="279bbcda77bc7f0730e22a4bea7e3802"/><file name="functions" hash="5028d6a07e300f28f5ee32bb5aae7133"/></dir><dir name="pl"><file name="config" hash="6a58549706b2da7200b5d78f4ab41f92"/><file name="functions" hash="38738374816955fbdff6f86f6fa8a94a"/></dir><dir name="pt"><dir name="br"><file name="config" hash="f43c1e73bb43432e18d724b8f5b478c5"/><file name="functions" hash="c4790f115b3abc4a12c66b943c1902a9"/></dir><file name="config" hash="da578667203b7cda77565744077e7841"/><file name="functions" hash="d7cd17cfee5fddc681e19f9e59ddd133"/></dir><dir name="ru"><file name="config" hash="567fc66512232e26a7fb27f953190805"/><file name="functions" hash="3ee40439feab895f7b43021bc3ee0d74"/></dir><dir name="sv"><file name="config" hash="e1db96fd21891c616ba3ea744fea210d"/><file name="functions" hash="c61ab2dbccc729b8587a118debbce06b"/></dir><dir name="tr"><file name="config" hash="579938059c4a3c5114e398229ca5d081"/><file name="functions" hash="f1d72a47a1efcefe2979d5c12db88a6c"/></dir></dir></dir><file name="CachedObjectStorageFactory.php" hash="fcddd34477297d387012571e8968ca45"/><file name="Calculation.php" hash="8a4cc594019490aa21c601176209de88"/><file name="Cell.php" hash="30e0d3851122f2335149ece30169ec24"/><file name="Chart.php" hash="d19d8b127aec43520416aa9488e893bf"/><file name="Comment.php" hash="2b1e37cf0e1504b9ba0d13473ff743fa"/><file name="DocumentProperties.php" hash="a310128c6ef8686c6858b14518baa680"/><file name="DocumentSecurity.php" hash="f01bb7af3b6b4d775e99ffa49316b2c8"/><file name="Exception.php" hash="f85f0fa5025dd2a43b2f271efb7068e8"/><file name="HashTable.php" hash="4347b83f91a7f036526b3d9efa7a14f9"/><file name="IComparable.php" hash="ccb0435d62a54236d7afe9c1aed08ad3"/><file name="IOFactory.php" hash="f6e2a8c261cf66ccd1042433e66a1901"/><file name="NamedRange.php" hash="676daa1d2dfd5bd61c4e065aabf8cb84"/><file name="ReferenceHelper.php" hash="c1c7bac86d13f19ca6134c7d95256177"/><file name="RichText.php" hash="a3ecee59068d011fc751ddcd449e014c"/><file name="Settings.php" hash="eaa649e68369e3c01e30ab72429ce311"/><file name="Style.php" hash="250eacd8a8060a76903a7e5a81519ead"/><file name="Worksheet.php" hash="c3eb607361f574fe777cdc0178de7b32"/><file name="WorksheetIterator.php" hash="73d5db8e6d1c331a6f25b0bc0204946c"/></dir><file name="PHPExcel.php" hash="144f3dcdc193f98e7e63f6909190f0f5"/><dir name="phpqrcode"><file name="1419976901png-errors.txt" hash="5c0bdada27335acf976037e64f053d69"/><file name="CHANGELOG" hash="8a872fe193a26678351bfcd30ce762bf"/><file name="INSTALL" hash="4b8cd3c0df34ccdf9eda43633db9ef2a"/><file name="LICENSE" hash="01a2438b1b13b50bedf2778fc1678265"/><file name="README" hash="f541b0b72589a7d3383eface763af72b"/><file name="VERSION" hash="1be049d58921c68c0ce38169a785ac20"/><dir><dir name="bindings"><dir name="tcpdf"><file name="qrcode.php" hash="5b713d84ab4d0fc710a147a0e3848335"/></dir></dir><dir name="cache"><file name="frame_1.dat" hash="9966a137ae5c422c423c64664a6e7525"/><file name="frame_1.png" hash="411b1640bd31fb729f2133abcd06147c"/><file name="frame_10.dat" hash="5322d931be649e5ccec61461d67dd321"/><file name="frame_10.png" hash="94e6c5ecb12f212f27dcff20e82a795b"/><file name="frame_11.dat" hash="79e3ee85484b12fcc4fdc1907510dd90"/><file name="frame_11.png" hash="f6ef45cec274ec241a873ef22df7f45e"/><file name="frame_12.dat" hash="37ccf648fe2fc810ec81fa0f8c3820f1"/><file name="frame_12.png" hash="76152b897afbf40707bf238b5c6dd172"/><file name="frame_13.dat" hash="b04711a3b19ec79c84549843c5557ac9"/><file name="frame_13.png" hash="d6ed6af6d34cf2e8a8d24ae08400fae4"/><file name="frame_14.dat" hash="250770c3d53b29c438f8c0882e1d56d0"/><file name="frame_14.png" hash="d681e5d008e03ef3b2a174da3b77067a"/><file name="frame_15.dat" hash="8e37257a86d3bb454dc2568d94673f6c"/><file name="frame_15.png" hash="ef5b3f6e8fc23ebc14a8929a5300da95"/><file name="frame_16.dat" hash="7032d38df7b8225e306c6940b9380e2b"/><file name="frame_16.png" hash="3e55f66956d8035aa8d3bc1e7fc160f7"/><file name="frame_17.dat" hash="f492c83b8c1c940ee37f41407d0a6c23"/><file name="frame_17.png" hash="03db7f215625032749e912f2aab2a701"/><file name="frame_18.dat" hash="0780fa437cde6b605d86ba1a2234f19e"/><file name="frame_18.png" hash="b52277f3cd98a8f46663f5091b0a9681"/><file name="frame_19.dat" hash="dd0bf43626ee9dc7694382311d94df7f"/><file name="frame_19.png" hash="aaa7c06298eac23c24c41372b13e99ad"/><file name="frame_2.dat" hash="d2063daff8eada7d4a22cedae30f5d04"/><file name="frame_2.png" hash="1ae37415f42c6dbfed330acee0e488d6"/><file name="frame_20.dat" hash="a3a1eb820b13832a3cfceb8af8fb2ee5"/><file name="frame_20.png" hash="a674ebc38712054a376b181db975e02b"/><file name="frame_21.dat" hash="f35be2f92c1f6546b5896916e76c9b34"/><file name="frame_21.png" hash="e29a7e7e2516dfec6cf283c12e83224b"/><file name="frame_22.dat" hash="080bb29f0d4fb1c04f2973ef87b91f5a"/><file name="frame_22.png" hash="4faa3626cb02b8c824247b7f8cec0ee1"/><file name="frame_23.dat" hash="009203ec77f7fd1e19b495c3f1b08a44"/><file name="frame_23.png" hash="3c9cc974afe24e8d7750c72d3bbc298f"/><file name="frame_24.dat" hash="c1b69627f5e2705025d7db7b523e4892"/><file name="frame_24.png" hash="6722efb1632fc9a23f687d67060514cd"/><file name="frame_25.dat" hash="85f80a8a72dd8ecfe50b73dd04c03428"/><file name="frame_25.png" hash="d33e136b0ef7cbdd31857d395219efa1"/><file name="frame_26.dat" hash="00a2327c48e4e8019e4f1bf1173ea6a7"/><file name="frame_26.png" hash="bfba16b8705888625f6a1efa26008f8e"/><file name="frame_27.dat" hash="f74a3e9017abb34cf10d9161db6944a6"/><file name="frame_27.png" hash="4201dc61a80d2cdbc5180abdbf3cb09f"/><file name="frame_28.dat" hash="76acbf4f5b5214113a329585a43e4c88"/><file name="frame_28.png" hash="ba1fa3b05d4e0ce79711857b845a0d8a"/><file name="frame_29.dat" hash="8571093499a6bdb0ecb179f4ba2420ea"/><file name="frame_29.png" hash="2adea50109f78d7341993b2195a715c3"/><file name="frame_3.dat" hash="2699cfca6a5e65aacd0c7fbb6c9084d1"/><file name="frame_3.png" hash="2aed9e9c0e87bbee7443546ba55c3cf6"/><file name="frame_30.dat" hash="255e0419353a95fd6ed075683ebee392"/><file name="frame_30.png" hash="ed732e8b8a612389b31544b8b6a460b5"/><file name="frame_31.dat" hash="69e65a7e068f7743b31a33f1faad9bac"/><file name="frame_31.png" hash="6642919250856e737f3fdf2db8073178"/><file name="frame_32.dat" hash="eba1b97fa1d0a8b28d2374323848534d"/><file name="frame_32.png" hash="51231a4d0f1d7520c3faf374b95153f0"/><file name="frame_33.dat" hash="166082e4520386ae368ece323cb96e16"/><file name="frame_33.png" hash="c281e359d10cfca77e6c9d24bbacb86f"/><file name="frame_34.dat" hash="f7fcf8d02665cbcf07e97b2492b58be9"/><file name="frame_34.png" hash="72698abce1e633a798c1e4778f2f1b93"/><file name="frame_35.dat" hash="5b5ecdbf418448b208b402f73afcc1d7"/><file name="frame_35.png" hash="c87869bf4bf45da1c7127c6de2a0f11c"/><file name="frame_36.dat" hash="03912dc10e6c9548be0475a3d1a8bd36"/><file name="frame_36.png" hash="e5dd2ab9dcb0ebfcc208cab72482fd15"/><file name="frame_37.dat" hash="ac1584560973137f64a713b1cf135d95"/><file name="frame_37.png" hash="085b9a14931e24612d5a31d68dcb23ff"/><file name="frame_38.dat" hash="b45ceadcace8ab29ae23f1187827ee81"/><file name="frame_38.png" hash="a5b05f453ec538e590f8d89587a23611"/><file name="frame_39.dat" hash="1d62f529bdb36150d01a50edec41274b"/><file name="frame_39.png" hash="c83d4b2895ef4131002922efbab49a28"/><file name="frame_4.dat" hash="8f7cc1859eb9a53b5632292e3a130294"/><file name="frame_4.png" hash="b358fec2b171d3f48ed37760f2e43b4a"/><file name="frame_40.dat" hash="49e85960945738760a4657d66c955ec6"/><file name="frame_40.png" hash="4dbb42edd5532958d0a3373292ba907f"/><file name="frame_5.dat" hash="3163d7510e346dc920d4cb54a531c39d"/><file name="frame_5.png" hash="8fc575dc94ac96e59935a760eae530bc"/><file name="frame_6.dat" hash="8e295fa8a97640d442e0a0eb2071dbff"/><file name="frame_6.png" hash="e570a56ccb27e1123efa4f32875ebce0"/><file name="frame_7.dat" hash="daeda73b2271bc29305de751e93def4a"/><file name="frame_7.png" hash="f1f1f510346c6011a0a9db54a6ce1600"/><file name="frame_8.dat" hash="7fa3ac63497597e55d211749e725e1fb"/><file name="frame_8.png" hash="8da14e672ece3b8e6a87f6e730baf480"/><file name="frame_9.dat" hash="25c5097cb158d1871441f7c47dc39ee1"/><file name="frame_9.png" hash="e9c335a41a1ace41f43f096e488a4987"/><dir name="mask_0"><file name="mask_101_0.dat" hash="6c4fdf704de27629d87b83d880801c64"/><file name="mask_105_0.dat" hash="202eb068c963ec45eba3eb97d2870ce3"/><file name="mask_109_0.dat" hash="d2a05381fcf529d73d253162ba809d74"/><file name="mask_113_0.dat" hash="8a507f639e0b0556b6d92277cb5f392d"/><file name="mask_117_0.dat" hash="a5a9ad0b479b2b21e5e20f313766f86f"/><file name="mask_121_0.dat" hash="bccba8f234c62c4ab2f44ae44ab54cb9"/><file name="mask_125_0.dat" hash="f4701c9eb001f32bacb2084bfa3e985a"/><file name="mask_129_0.dat" hash="a1ebe9f05b055f64f558a6244e6c7890"/><file name="mask_133_0.dat" hash="d2929cb58d6e9cd60e8a119be822d309"/><file name="mask_137_0.dat" hash="dcd93d58f4072469967980ba59574f40"/><file name="mask_141_0.dat" hash="5ffc654902a36e2b332fda9d59091fff"/><file name="mask_145_0.dat" hash="9efe56fe464d4502494a1cf626fe9dec"/><file name="mask_149_0.dat" hash="b4e966f8336481fe22747556591cd120"/><file name="mask_153_0.dat" hash="f4e6a1e8b8d358caf45684afdff31294"/><file name="mask_157_0.dat" hash="f6ffbde0114c9697566688b47a6711d6"/><file name="mask_161_0.dat" hash="62f427d65bb9b4443d2e7ade8d459eb7"/><file name="mask_165_0.dat" hash="0e55dfeac94cd03d80ac3beadf229be2"/><file name="mask_169_0.dat" hash="e9d7cf1075155e841397c34439cb7727"/><file name="mask_173_0.dat" hash="5e921e75199ac8624f0bda6b7c8a0ca5"/><file name="mask_177_0.dat" hash="ddb00baf98441c85e41289c22725c176"/><file name="mask_21_0.dat" hash="0718577fa2c550f18c1ada43073686c3"/><file name="mask_25_0.dat" hash="86dff5e28a8686795053144e8e1a1468"/><file name="mask_29_0.dat" hash="0e10a1d9372b0d19001975e9cfae0283"/><file name="mask_33_0.dat" hash="f80d9b95cdc71d8569289bdf50461c0f"/><file name="mask_37_0.dat" hash="a29b43128de8475414f71c138a48ff39"/><file name="mask_41_0.dat" hash="994bd068e5e27de60ab2c80f741a3305"/><file name="mask_45_0.dat" hash="081b0e72ce1c7c98b19a9569ac3a44dd"/><file name="mask_49_0.dat" hash="f50d98727bbdb9f8550cc9170f2ec5f9"/><file name="mask_53_0.dat" hash="4f116fa5476c96c493d9fa39144f3e0b"/><file name="mask_57_0.dat" hash="63842c6c6382a6e9ad6ad9a5d260e10f"/><file name="mask_61_0.dat" hash="a8c349ae832d6ecf6393bab781285d43"/><file name="mask_65_0.dat" hash="e025e048393a0ef230ecfca730627d67"/><file name="mask_69_0.dat" hash="03b969d8d5cc667b9db6d30435ed0465"/><file name="mask_73_0.dat" hash="b4ddb6571dfa5e097778529e515aa991"/><file name="mask_77_0.dat" hash="c958cba6bf9169ed0b5e5e812bde8407"/><file name="mask_81_0.dat" hash="59352f5a91fdda1c299839c388b31094"/><file name="mask_85_0.dat" hash="27d360595156bca380e0882db865d97f"/><file name="mask_89_0.dat" hash="340efa3d23812287232ab47d46acc7f4"/><file name="mask_93_0.dat" hash="071afbef25ba4ce443fe371d286d3f4b"/><file name="mask_97_0.dat" hash="89b20fb88a32644757ee346306a23203"/></dir><dir name="mask_1"><file name="mask_101_1.dat" hash="bf6ab6978bd3e4ddece1c510e84e286d"/><file name="mask_105_1.dat" hash="9d953276346ed743a173ea8ca0e8cd2b"/><file name="mask_109_1.dat" hash="e0b18b6aae70d01b424bcf2f37f76f92"/><file name="mask_113_1.dat" hash="ad0a4162bb87fc14323e8fc95da0f491"/><file name="mask_117_1.dat" hash="cd26e07902b23b0c743505a2732b2498"/><file name="mask_121_1.dat" hash="3755b5cde7076711cb29fbb86e8a0e7f"/><file name="mask_125_1.dat" hash="ca310b53c8ec27d0718e3ef9211d723c"/><file name="mask_129_1.dat" hash="56d78d56fd0bd490a806a9d0a418b93c"/><file name="mask_133_1.dat" hash="25d97fb00854adb525107f41f3178204"/><file name="mask_137_1.dat" hash="c46aabe94b0f98709e634f4722bdb5cf"/><file name="mask_141_1.dat" hash="261a83e7dcf606694332c6c9e04b2b2e"/><file name="mask_145_1.dat" hash="38d5d0690e4603854cc05d315f1dd9c5"/><file name="mask_149_1.dat" hash="aa2eca119e10ec7b9b68a0114ac564ad"/><file name="mask_153_1.dat" hash="7afe60df62eed29834a72c7a0fa036b1"/><file name="mask_157_1.dat" hash="5d9825afa01b120972f1078079d94fd1"/><file name="mask_161_1.dat" hash="226022ea7568c6713f7ced33d58cd0c3"/><file name="mask_165_1.dat" hash="84ae6b587247749c38c4f95eb13db733"/><file name="mask_169_1.dat" hash="7e6db5dc520265a7c2e1b5f840b1aac0"/><file name="mask_173_1.dat" hash="3ce3d555e49b7cb1598b571cd9c39d11"/><file name="mask_177_1.dat" hash="82e07b24b1381c1f679c9ee6dfadccf7"/><file name="mask_21_1.dat" hash="bee4cdaef688947610b10b469c563994"/><file name="mask_25_1.dat" hash="4290a56446ca90443215f2fb4c1959aa"/><file name="mask_29_1.dat" hash="2456b09ddffa9f6c024d0146b2de747b"/><file name="mask_33_1.dat" hash="9d41f80f181d65bb09c4fac192180588"/><file name="mask_37_1.dat" hash="188e3cdd055dba53f9e428491adafe77"/><file name="mask_41_1.dat" hash="0dd7fad119dc0f8d64027c8cb7b87b8d"/><file name="mask_45_1.dat" hash="c0a3c6ed3d6c9e87235f3118c529e20d"/><file name="mask_49_1.dat" hash="2d78d9b0d2ca5f8c2f70a0aee7c91c72"/><file name="mask_53_1.dat" hash="5335af744066a31f48d6e3cab2b40dbe"/><file name="mask_57_1.dat" hash="df0543a3e8403ccfbadc87e1f711c006"/><file name="mask_61_1.dat" hash="87976040b3e1c0f0ef6ce09a100e8a6f"/><file name="mask_65_1.dat" hash="63efa207af9229d00444dc5ffbd0554f"/><file name="mask_69_1.dat" hash="aae34841ca735ca390f8542ee03afdf2"/><file name="mask_73_1.dat" hash="8493bba42242fb0a464247675a7a35c1"/><file name="mask_77_1.dat" hash="3e8c67e245d2d273cb14e773d6a9dfaa"/><file name="mask_81_1.dat" hash="0340c9c4ccd8a3840523a734655afa3f"/><file name="mask_85_1.dat" hash="b0743efcadd883a6597eca6c32cf1f66"/><file name="mask_89_1.dat" hash="f68463319238c992e1672fb74874096e"/><file name="mask_93_1.dat" hash="ea4adb79715c58e337a875b4e4a3956c"/><file name="mask_97_1.dat" hash="e8c8a30ab35215bdd8dbf715ed1cda6a"/></dir><dir name="mask_2"><file name="mask_101_2.dat" hash="c19bd200710ef2a60c5758db76df1202"/><file name="mask_105_2.dat" hash="1bf1c38f25b93af043bacc05798748ac"/><file name="mask_109_2.dat" hash="bffead7278a51efb89b94e6d267f13f0"/><file name="mask_113_2.dat" hash="84cbf90c73ba9a78c0a283b7e70c4ca6"/><file name="mask_117_2.dat" hash="f9fa108e550908a5a1f1087b92bf2154"/><file name="mask_121_2.dat" hash="0b6414fb6f76bfe0381c6cb2aacd34ba"/><file name="mask_125_2.dat" hash="aca184e91ebb60548c7118e17c10de73"/><file name="mask_129_2.dat" hash="0e929552e878974a3951d1eabb31a694"/><file name="mask_133_2.dat" hash="2fe6a8bd3fbe0805d5247952d398d8e9"/><file name="mask_137_2.dat" hash="563bfe8ba15383804f83ca96d39a8896"/><file name="mask_141_2.dat" hash="0f554119e613553d0e290496578d827b"/><file name="mask_145_2.dat" hash="ef3c2eae15e4726bb8803ad2c41dd635"/><file name="mask_149_2.dat" hash="24353d418076add713c045cbd20570a6"/><file name="mask_153_2.dat" hash="3d413b652cfe3d99374e30688053b90c"/><file name="mask_157_2.dat" hash="6e1c88422eb13dd8489d464e3281ee82"/><file name="mask_161_2.dat" hash="53b23561c00e1d00b8f575b3cac30ab8"/><file name="mask_165_2.dat" hash="8e84496c645a09f23cd18bdbb725c31f"/><file name="mask_169_2.dat" hash="990a5c2ece92d9d0e07228b7fbf898de"/><file name="mask_173_2.dat" hash="9749985009d535e753d29ea300456be6"/><file name="mask_177_2.dat" hash="c3c527e46e0dd6909193a06e30cc5f9a"/><file name="mask_21_2.dat" hash="ef7fd6a1deb6cc2e393ace6dd84d5a36"/><file name="mask_25_2.dat" hash="eabdf7cb85e1cf0bdb7952438a24e1cd"/><file name="mask_29_2.dat" hash="e39952d54f008e8d39ad61172d7a6fcd"/><file name="mask_33_2.dat" hash="ceb77e491c9ab253730ba4e72fd948ba"/><file name="mask_37_2.dat" hash="85edba0353ded1e99ef4f7a962cbac1f"/><file name="mask_41_2.dat" hash="7760ee0c6c86087fcde96e2eae9cb90d"/><file name="mask_45_2.dat" hash="3e38a0052f6badc68191d3ee3069e3d9"/><file name="mask_49_2.dat" hash="47ca1f72a8d43d06211b16cc98349abd"/><file name="mask_53_2.dat" hash="419e2b85764065370e791d4602b3d6cd"/><file name="mask_57_2.dat" hash="3c1fa898079586f5338aff22ad3e5e1c"/><file name="mask_61_2.dat" hash="d6e4a7bd67c891d213e2f4e79188fa87"/><file name="mask_65_2.dat" hash="6eddee56c23be857e881eed534e36bc3"/><file name="mask_69_2.dat" hash="e68f0f694c8c9a5f3f86a2906cdbe67a"/><file name="mask_73_2.dat" hash="54c839fcf1bf0a5251ea3d6458f75623"/><file name="mask_77_2.dat" hash="622903170480ae4ba0a41549544cf47b"/><file name="mask_81_2.dat" hash="3c55f79ff8ea70dd8a0862f351b2f3d0"/><file name="mask_85_2.dat" hash="3adfad79aca1860f53b719d3d6d48190"/><file name="mask_89_2.dat" hash="272d60997a9a1691cbe3091733e29162"/><file name="mask_93_2.dat" hash="f17848e3c1aa7981607d62355e36f2d5"/><file name="mask_97_2.dat" hash="85effa425682735086394a0c7bbafbb0"/></dir><dir name="mask_3"><file name="mask_101_3.dat" hash="ae198375944bf5e5db80ed22e67b68b6"/><file name="mask_105_3.dat" hash="6015c6e5f50aa989e01dd58097533ac3"/><file name="mask_109_3.dat" hash="0aff2d331afacd144a9358b0d74facc0"/><file name="mask_113_3.dat" hash="8f19e9effc6dd1c0fc6479bd67c48bf9"/><file name="mask_117_3.dat" hash="a2b2164b64aa246005688ff289cf1a4e"/><file name="mask_121_3.dat" hash="5c2f2642b172d9fe4b65fff2f1dadd62"/><file name="mask_125_3.dat" hash="9f3ad8403cb0e4dee43b6d1120704c42"/><file name="mask_129_3.dat" hash="b2849c22daa0217d68aa604856b9a78d"/><file name="mask_133_3.dat" hash="e81d804c6c49187029b6570262984b81"/><file name="mask_137_3.dat" hash="a59f1c0e5ad80120c501911dc9ef2145"/><file name="mask_141_3.dat" hash="037a2695936927ee7a1707b4811124b7"/><file name="mask_145_3.dat" hash="be939feee94f6d6d6ccc81ae1f600dbd"/><file name="mask_149_3.dat" hash="3196a80f19d3569d2f46ca1c30b8a24b"/><file name="mask_153_3.dat" hash="546b11d703368abb4c0d32a8d9c37982"/><file name="mask_157_3.dat" hash="8470a13e8aacd293d2553bdd313c0f3d"/><file name="mask_161_3.dat" hash="d094c5c953718c9f00cffb2e0d71c2f6"/><file name="mask_165_3.dat" hash="aa34451d98a131743df4bb1d5fd260f1"/><file name="mask_169_3.dat" hash="08548e5d2e1bdad75f9ed1b97b6c8152"/><file name="mask_173_3.dat" hash="7e7cb6489490d6e668a85b812b0b2612"/><file name="mask_177_3.dat" hash="7f21c6fbc48b877e5b31caac71633886"/><file name="mask_21_3.dat" hash="986c775b20f9bc975c3a83faee76329c"/><file name="mask_25_3.dat" hash="d62b82857c88be6ef18f4afb4cf09d56"/><file name="mask_29_3.dat" hash="9f8058257aa8b76d8445b9bb22b9c05a"/><file name="mask_33_3.dat" hash="4f1e8177a0c749ac3931d81c983ffa40"/><file name="mask_37_3.dat" hash="88c26716f6735be2fb4131eed5058051"/><file name="mask_41_3.dat" hash="7d652cb4b36012bc9ba5a7e1d035159c"/><file name="mask_45_3.dat" hash="3714071caccd1e070a2346b919d5f37b"/><file name="mask_49_3.dat" hash="2e2242a88660982e6667bb7ef0fea8de"/><file name="mask_53_3.dat" hash="87169242d83d8a40022bc9d4060798ae"/><file name="mask_57_3.dat" hash="7c6f98cf3629b427436375da98857ac5"/><file name="mask_61_3.dat" hash="6d1b20de6f2805cf18ef98970a7498ee"/><file name="mask_65_3.dat" hash="e0e64afa29e61db165dfc2638cacea41"/><file name="mask_69_3.dat" hash="68e564748c41b81d08e1a34a78a68296"/><file name="mask_73_3.dat" hash="449a36d7abd76c05e25444c8a1d7db82"/><file name="mask_77_3.dat" hash="446c00259878f35d8b468e640ad2ae51"/><file name="mask_81_3.dat" hash="5e55ada7d9fc5f5237e7ef505ba703de"/><file name="mask_85_3.dat" hash="b46ebcdc0121b1a3bedbd184495cfb88"/><file name="mask_89_3.dat" hash="14f648b97ed382c545c8632ac4e1b6f5"/><file name="mask_93_3.dat" hash="b2705428db6f3df45f0bf54bf7f7ebcf"/><file name="mask_97_3.dat" hash="b0103bf0ceaa6d15e13c1ddf314837c7"/></dir><dir name="mask_4"><file name="mask_101_4.dat" hash="ca45a07682fbb6bc77a32e9a15314494"/><file name="mask_105_4.dat" hash="7b74b40294afa78a889105b236e5a3cf"/><file name="mask_109_4.dat" hash="2f88c8ed36981f3080a6f1e035173635"/><file name="mask_113_4.dat" hash="d9a50ab9759fe8a037f4157e478d49ec"/><file name="mask_117_4.dat" hash="df85ef67e5c4cf3267aedc9055ff9a2b"/><file name="mask_121_4.dat" hash="7a66881619731b961dcfac808e2f6be0"/><file name="mask_125_4.dat" hash="409a1bcff906697dfa1f4a2b83aa7f72"/><file name="mask_129_4.dat" hash="c43f5c311576c0ce3537fcdc0aa9baaf"/><file name="mask_133_4.dat" hash="1b0d84cfdbd3520dae9cea6779e6102e"/><file name="mask_137_4.dat" hash="afad876a701bc44207b76b159cc624c4"/><file name="mask_141_4.dat" hash="ff707a8bfc3a08df2715dace4eeee2c9"/><file name="mask_145_4.dat" hash="e08158360699d664f225befb46faafae"/><file name="mask_149_4.dat" hash="16b0984a56f48cb56afb82acd67671a8"/><file name="mask_153_4.dat" hash="730cc2b3e3e12832a3d135dccec1985b"/><file name="mask_157_4.dat" hash="9c80740894d87ac138659dd817cfd326"/><file name="mask_161_4.dat" hash="4e5210091ec433c5c527d1f0585f73f7"/><file name="mask_165_4.dat" hash="a6dbdfb0999db134cca08f7e30cfa7de"/><file name="mask_169_4.dat" hash="9089622362230a309a438d6b3b552c1c"/><file name="mask_173_4.dat" hash="56ea5b38d276af919f2c6544c9ca0c69"/><file name="mask_177_4.dat" hash="87e64a44a0adf6eaeaff9dd68e771ad1"/><file name="mask_21_4.dat" hash="c1328902261a4b750bffd6a322a69e43"/><file name="mask_25_4.dat" hash="128cdfcfa192fb806a5d81f91ebc05dd"/><file name="mask_29_4.dat" hash="1afb863e3bd5f551724cd5e0eaaa659f"/><file name="mask_33_4.dat" hash="b60bbea04379a5edd6765ce656ec235f"/><file name="mask_37_4.dat" hash="fdb59b9945c57ac798ce7f56b436d061"/><file name="mask_41_4.dat" hash="6086f8d8e5e07367d4639ae9cb0ed432"/><file name="mask_45_4.dat" hash="7c39a588c3a02a9f2df71bbb451185f6"/><file name="mask_49_4.dat" hash="be9fe9f94ae480bec52518c31e252259"/><file name="mask_53_4.dat" hash="db6c8031329065e5bcb48d6dc0f53d53"/><file name="mask_57_4.dat" hash="b9d06f6aa6b2398637f04933cdbcd517"/><file name="mask_61_4.dat" hash="f7bb6ffa6ccabbc9fa44aaceb8d50561"/><file name="mask_65_4.dat" hash="04603c3e8d97ef14e2dad753e6eb93c3"/><file name="mask_69_4.dat" hash="36df758133b3febd68156ab37d01a511"/><file name="mask_73_4.dat" hash="51dd4eb76dff0927be98beedf05eaba7"/><file name="mask_77_4.dat" hash="dd103faf186586280ffe0641e2b7978f"/><file name="mask_81_4.dat" hash="90a9312e91e290c7391df673683fd487"/><file name="mask_85_4.dat" hash="d8216a889322d1935a3e7d26fefa473d"/><file name="mask_89_4.dat" hash="6396c3787c999f1d409da28ec4e0e7ee"/><file name="mask_93_4.dat" hash="e9d3369fdd1d79792395646f5923e1fc"/><file name="mask_97_4.dat" hash="77535b91df7f053f8931260141afe6b7"/></dir><dir name="mask_5"><file name="mask_101_5.dat" hash="63e4303918909723ece25197688b8ba7"/><file name="mask_105_5.dat" hash="ee01fae3b22b508e1adb3f47dc99c941"/><file name="mask_109_5.dat" hash="1325823b4e7600739d46c64d4212a5d1"/><file name="mask_113_5.dat" hash="c01d8795c46106917095511b9930c0a0"/><file name="mask_117_5.dat" hash="fbd2cd3349eb860d77369d4b0b944537"/><file name="mask_121_5.dat" hash="156bb97e4e652111cc8969c8c2c15e8e"/><file name="mask_125_5.dat" hash="0cb7294228c178cdd823b6a644967f1e"/><file name="mask_129_5.dat" hash="05635b96e33640886e90b4b8d56171a4"/><file name="mask_133_5.dat" hash="afb77cc82a0b754c7e8c896484430fdd"/><file name="mask_137_5.dat" hash="5dd206b6f8cef84943004dd46473e209"/><file name="mask_141_5.dat" hash="de316b74fdb13d4e2dd231db258e5b10"/><file name="mask_145_5.dat" hash="9db1a1f7ff00930a3a942ce19e5229f8"/><file name="mask_149_5.dat" hash="616f4baac1ccb75cebae890ca66cc639"/><file name="mask_153_5.dat" hash="6a244fbd16d99c00d881e7229626d838"/><file name="mask_157_5.dat" hash="fe12067a1b756e60b55402cd8ecd24d6"/><file name="mask_161_5.dat" hash="6447ad594af51dcfa9f972e82a21e54e"/><file name="mask_165_5.dat" hash="9301e05832397fd35cda0704d5a64e85"/><file name="mask_169_5.dat" hash="7ce18389a7d8a4eddd78e837665fa379"/><file name="mask_173_5.dat" hash="3e39ad33f5a469258e348dd7dbb83b1e"/><file name="mask_177_5.dat" hash="a5a8a619dba0f1ff547e228fc05696aa"/><file name="mask_21_5.dat" hash="7ea675316e14102a14ae2cc70897fd7f"/><file name="mask_25_5.dat" hash="d850e1d1e779dae8073761378b6ce671"/><file name="mask_29_5.dat" hash="150bfabd079b92aa70ab30a7e9368dfe"/><file name="mask_33_5.dat" hash="213369f74b18f08edea17c351d141103"/><file name="mask_37_5.dat" hash="b41c0f5323c4fa71a305521ba452b09d"/><file name="mask_41_5.dat" hash="6dea7e67b63ea326f85517d1c4c56d69"/><file name="mask_45_5.dat" hash="829091dac90854289ec9bcf351774a9d"/><file name="mask_49_5.dat" hash="9c3e06caa2d4917b7b5450ce0a27a7cf"/><file name="mask_53_5.dat" hash="4a81ede5d9554feb48b079e76a895fd1"/><file name="mask_57_5.dat" hash="5194ce0c45d7d9676abaf2fa2cef99fc"/><file name="mask_61_5.dat" hash="863bf39b5bcda2ad4767fb9027770695"/><file name="mask_65_5.dat" hash="9c7fc509da9e5df7e5edbc2a1ae55fd0"/><file name="mask_69_5.dat" hash="1d9d0d5c8c2c9d3e1f47e43d7a4d0869"/><file name="mask_73_5.dat" hash="21200ef88b501d6d22dfe931100fd4c8"/><file name="mask_77_5.dat" hash="517ed455f5eec7593ea201a2ed4cee5f"/><file name="mask_81_5.dat" hash="b3e6de4ae3f3ee7c22e9731e8f951c97"/><file name="mask_85_5.dat" hash="cbe89ebc95a4c3a1ef3eeb9cb81f89e2"/><file name="mask_89_5.dat" hash="8c2bc4a7da237a03224e2301d3895e33"/><file name="mask_93_5.dat" hash="513cb1d0cab1c36d1eca4484340c5e66"/><file name="mask_97_5.dat" hash="c9940067833f5e8e6a29eeb04f99a705"/></dir><dir name="mask_6"><file name="mask_101_6.dat" hash="fe3409bab63a28fd156562843368940b"/><file name="mask_105_6.dat" hash="34efa23c98039ef903960e7fa0592653"/><file name="mask_109_6.dat" hash="36ea76ef2e46af972407d49ff8da9387"/><file name="mask_113_6.dat" hash="03c97aec73f929287857fe364305c984"/><file name="mask_117_6.dat" hash="a9db9006460b267fdd008ee6d7961930"/><file name="mask_121_6.dat" hash="c252620b89e84448b2503203387b4cb9"/><file name="mask_125_6.dat" hash="b2163f500e8c2dc3e14442bbcf1ae2d4"/><file name="mask_129_6.dat" hash="0aecf6a2b535e1036bd64c688b65191e"/><file name="mask_133_6.dat" hash="fe8e9a6d458264eb66ad124528bc47cb"/><file name="mask_137_6.dat" hash="09421a3a805e387e6250cb1c87afcb5b"/><file name="mask_141_6.dat" hash="9910802e214f42ae2abdcee85116c2e3"/><file name="mask_145_6.dat" hash="aef30014661d9963c9617938bda7e2d3"/><file name="mask_149_6.dat" hash="2f9da67a9504c0deca5121d321b200e8"/><file name="mask_153_6.dat" hash="3c6c97c86dc381a338e67917478f3855"/><file name="mask_157_6.dat" hash="51b4b3cf7dddb9debe256fd8911a05f6"/><file name="mask_161_6.dat" hash="e3f360c52072bbfa68ef4d7f68c1970b"/><file name="mask_165_6.dat" hash="b5a9a0a0b8a48e2e193f941535c6484b"/><file name="mask_169_6.dat" hash="2b32a6d292ed03b746cd73f8f5d59f02"/><file name="mask_173_6.dat" hash="54f997312cdc4ef751491cfaf3308c66"/><file name="mask_177_6.dat" hash="92cacc6329349c5effbddeb9a2e559fa"/><file name="mask_21_6.dat" hash="1e2c0fc394840848946b2879a8ea0e58"/><file name="mask_25_6.dat" hash="67ededb602cd3eea65bd7cd15b3b8aba"/><file name="mask_29_6.dat" hash="ae9e79b8d717906f2cee4ac758ed5768"/><file name="mask_33_6.dat" hash="ca09e953f305a38d9e82b1a566c6c856"/><file name="mask_37_6.dat" hash="f1174b18aeeacd12b2efe0d1d9316c99"/><file name="mask_41_6.dat" hash="eb25abab0eccbe9b50e0727f65ddfb3e"/><file name="mask_45_6.dat" hash="e9df8dc1d0d56c4187a0081323998076"/><file name="mask_49_6.dat" hash="3fe09ab83277240614e315932f768afa"/><file name="mask_53_6.dat" hash="83c85d40e678c9b37c2d37f401bc14ee"/><file name="mask_57_6.dat" hash="4e807ebe4413aa11b14af7a0a9d42a50"/><file name="mask_61_6.dat" hash="10b367e0da3f5d0b5fe0b91e830f5653"/><file name="mask_65_6.dat" hash="c0b3bba3387d20f796672ffe9d0e38f9"/><file name="mask_69_6.dat" hash="a37fef158283319557bd0bf3ebe4846d"/><file name="mask_73_6.dat" hash="d9b39a4a9a1a7da544faba4a74c23d04"/><file name="mask_77_6.dat" hash="3268bdbf71bfcd6eca66a6e3dbed48b9"/><file name="mask_81_6.dat" hash="74955ed39c6185272affaeb81090919b"/><file name="mask_85_6.dat" hash="26e0c67dd75a268b3efc628d38d932da"/><file name="mask_89_6.dat" hash="a37653e6a06e2c536a8f585a005ef7f0"/><file name="mask_93_6.dat" hash="3ac10716db6cdd2859a807b9f95a18a2"/><file name="mask_97_6.dat" hash="7d9e1ddc9553878f2931db40fc6ed0e0"/></dir><dir name="mask_7"><file name="mask_101_7.dat" hash="e83d50dcfeddecf35f5bed16b54bbba8"/><file name="mask_105_7.dat" hash="e3bb1535f7075601e2cbb165173421f4"/><file name="mask_109_7.dat" hash="fe7590ee146b69ad00b7169c08a6ab58"/><file name="mask_113_7.dat" hash="84b1badf25a7a5cc4407b2174404821e"/><file name="mask_117_7.dat" hash="4e4233f2b6a3e9b1fa28e68ed52b037f"/><file name="mask_121_7.dat" hash="c9996c9461742edfab6dda88b613585a"/><file name="mask_125_7.dat" hash="f4553613c89cf07e4561ad2aae92e0cc"/><file name="mask_129_7.dat" hash="b4edc59c5e1f790379f71351f196e6bc"/><file name="mask_133_7.dat" hash="e6a4f6fa0a88402cdc0255ca95f5d199"/><file name="mask_137_7.dat" hash="fd33075985f60259af6b7dfd2ae189e5"/><file name="mask_141_7.dat" hash="ec73544083abf6bad1669d781bf09437"/><file name="mask_145_7.dat" hash="75a6237d00e616ca916d977602c0cb7a"/><file name="mask_149_7.dat" hash="a2d5667629afc9ea067e1839eacc8f68"/><file name="mask_153_7.dat" hash="a01eb9a63c1920b705ff4d8b717f4ce7"/><file name="mask_157_7.dat" hash="fad2e537867b26a49f29d60265c0fb40"/><file name="mask_161_7.dat" hash="5d88f58b291f5bb88a0406cfa29012c8"/><file name="mask_165_7.dat" hash="41a900ae9693e5c27d980fdbbd1cc439"/><file name="mask_169_7.dat" hash="365708854b5a146db2b5580225d8048f"/><file name="mask_173_7.dat" hash="13683d9f282668ed475bf707ee53e201"/><file name="mask_177_7.dat" hash="8149d01010cee85d1849a9dca0e102a5"/><file name="mask_21_7.dat" hash="7c80f76fd015f19e48b7a570d55bc262"/><file name="mask_25_7.dat" hash="ea54a40e79f32877e02d1ea8791cb471"/><file name="mask_29_7.dat" hash="a6f4995de8e329204ee3410b22d8da4d"/><file name="mask_33_7.dat" hash="51273577e33506f83d00d7971fc38dc8"/><file name="mask_37_7.dat" hash="8c0fbb3e5121299816be076ce6a356c4"/><file name="mask_41_7.dat" hash="b97a30c39540b5160c652b5324ae9a08"/><file name="mask_45_7.dat" hash="18166274b73ca16a2c5a145076b990dc"/><file name="mask_49_7.dat" hash="270bfbf77a14569a5fc88925beb39189"/><file name="mask_53_7.dat" hash="84e0be977afc54746e41e28f47de1ad9"/><file name="mask_57_7.dat" hash="a37a26bece7e816a87ccdfcef7e96b71"/><file name="mask_61_7.dat" hash="a108bbc684fb0ad8f59228f410d4124d"/><file name="mask_65_7.dat" hash="647767fd83beeec449ef18e04ae12af7"/><file name="mask_69_7.dat" hash="577baae8a8809899b6763719cf5bfa8d"/><file name="mask_73_7.dat" hash="b2bf60ae1da1ce4bb7db15129e99d58b"/><file name="mask_77_7.dat" hash="ab9a75a46a851ad80f0e57b6dd5c64da"/><file name="mask_81_7.dat" hash="fcfaf88379459ac068236827681d9e43"/><file name="mask_85_7.dat" hash="525c8b876f509a127d3dfd80d81aad3f"/><file name="mask_89_7.dat" hash="7c7a821cb5e7d65e7b6e020bd6351f35"/><file name="mask_93_7.dat" hash="c906b28ae62d8866a0eb35ae87db567f"/><file name="mask_97_7.dat" hash="c04cea679212bda3930b3534565a6fd2"/></dir></dir><dir name="tools"><file name="merge.bat" hash="86e934a4304536ad09b2f7b9e814241d"/><file name="merge.php" hash="0b113c70589ac6cc76291087b3f3dff9"/><file name="merge.sh" hash="d2b77c3493b2ffe3d76d4fb9330e72a1"/><file name="merged_config.php" hash="8c4be9477ea9c372b3d2796df9d9d867"/><file name="merged_header.php" hash="3fc51eef6239691f523be743fde28470"/></dir></dir><file name="index.php" hash="15632fb7fff24ae10781a87bc1a5a9bf"/><file name="phpqrcode.php" hash="6e4949ac97acce06de82b2b09988926f"/><file name="qrbitstream.php" hash="7b95645db7e06aba3b55af7dd249663b"/><file name="qrconfig.php" hash="15c58fed3d55a98cda8abeed8c336fa6"/><file name="qrconst.php" hash="4cd7d63ff0b638020e6b0c6d11133d09"/><file name="qrencode.php" hash="dda263c8a9742aaa71cc302820308541"/><file name="qrimage.php" hash="2d1588686abe320c3bf003c94e967ce0"/><file name="qrinput.php" hash="07ee5315fb6c319dc208de59a9de95c0"/><file name="qrlib.php" hash="4d2b63e34326b0df5153be6d928ec960"/><file name="qrmask.php" hash="12ce875d67e242532e2b0da9f0a334ee"/><file name="qrrscode.php" hash="17af6b8769e70c132f227b089152a47f"/><file name="qrspec.php" hash="7d276c5a768c04d62ae0afde8abaad2d"/><file name="qrsplit.php" hash="206c8468e0089be5f58453cbbd003ec0"/><file name="qrtools.php" hash="27aea0ee5d1395d80ef4b9ce7d08fa40"/></dir></dir></dir></target></contents>
16
  <compatible/>
17
  <dependencies><required><php><min>5.0.0</min><max>5.6.0</max></php></required></dependencies>
18
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>MT_Giftcard</name>
4
+ <version>1.1.2</version>
5
  <stability>stable</stability>
6
  <license uri="http://www.gnu.org/copyleft/gpl.html">GPL</license>
7
  <channel>community</channel>
8
  <extends/>
9
  <summary>Summary </summary>
10
  <description>Free magento gift card extension</description>
11
+ <notes>Currency fix&#xD;
12
+ Gift Card Data form sales_flat_quote moved to mt_giftcard_quote &#xD;
13
+ Gift Card Data form sales_flat_order moved to mt_giftcard_order&#xD;
14
+ </notes>
15
  <authors><author><name>Edvinas Stulpinas</name><user>edas1</user><email>edvinas.stulpinas@gmail.com</email></author></authors>
16
+ <date>2015-04-25</date>
17
+ <time>05:51:25</time>
18
+ <contents><target name="mage"><dir name="app"><dir name="code"><dir name="community"><dir name="MT"><dir name="Giftcard"><dir><dir name="Block"><dir name="Adminhtml"><dir name="Catalog"><dir name="Product"><dir name="Edit"><dir name="Tabs"><dir name="Giftcardseries"><file name="Form.php" hash="6ba57986e47de3810eb5432edd8cae13"/><file name="Grid.php" hash="d3af7e0412fc9b81543af8a58d9bb2c5"/></dir></dir><file name="Tabs.php" hash="7d8a2728a2c2b931381b0ef627160323"/></dir></dir></dir><dir name="Giftcard"><dir name="Giftcard"><dir name="List"><file name="Grid.php" hash="dcd306e00d75bd69f8251fe8b09798ed"/></dir><file name="List.php" hash="176da6866b6abb40cf2dc9d3cba7597c"/></dir><dir name="Series"><dir name="Edit"><file name="Form.php" hash="4d52c40a6e56e6851af652b006ab96d8"/><dir name="Tabs"><file name="Edit.php" hash="4ecf35ae08c7d659db770619979c7273"/></dir><file name="Tabs.php" hash="f284f9dc303bca6ae9f2f869993a0697"/></dir><file name="Edit.php" hash="4eadad4f86671831b5c0133a419775f3"/><dir name="List"><file name="Grid.php" hash="de02b111b41d9db067666adbe15c1c5a"/></dir><file name="List.php" hash="451587dd80ac40d5ec0b08e39d2029e6"/></dir><dir name="Template"><dir name="Edit"><file name="Edit.php" hash="1917934e01ce1d4b2a45132454a6e810"/><file name="Form.php" hash="722fb3b93b8c5a800462e8d62c228bb6"/><file name="Js.php" hash="33c7d8b6eee7cb36761bd82ea076ca5e"/><file name="Tabs.php" hash="73764b68cc7d9fdd83447c13a6db5787"/><dir name="Theme"><file name="One.php" hash="d70a1e4d19aa94ca972b69b376926bd3"/></dir></dir><file name="Edit.php" hash="afec06744ddfec3f8297ef8fbc959f04"/><dir name="List"><file name="Grid.php" hash="7c3e7a4303e1dd3b8da6d3e237cc54b3"/></dir><file name="List.php" hash="0345847adc717ce416c1d8d7679ed130"/></dir></dir><dir name="Sales"><dir name="Creditmemo"><dir name="Create"><dir name="Total"><file name="Giftcard.php" hash="e495174b46328c76d86457a752cc7eaa"/></dir></dir><file name="Refund.php" hash="7f874138440cf23e2e8eb334ef471c62"/><dir name="Total"><file name="Giftcard.php" hash="5c883c7ecb44d32e9a3d7ce9536e5e84"/></dir><dir name="View"><dir name="Total"><file name="Giftcard.php" hash="b45537b5972ad058685254fdfe6f3127"/></dir></dir></dir><dir name="Invoice"><dir name="Total"><file name="Giftcard.php" hash="d030cd0363802ce5f948c85659fe8377"/></dir></dir><dir name="Items"><dir name="Column"><dir name="Name"><file name="Giftcard.php" hash="5daed6338457ae68894de91d3c061ce9"/></dir></dir></dir><dir name="Order"><file name="View.php" hash="c1b8d185d1b5066ab9b9b7ebcdf95f96"/></dir><dir name="Total"><file name="Giftcard.php" hash="a9645c6f45d2dc99584996d6c34ae66f"/></dir></dir><dir name="Widget"><dir name="Grid"><dir name="Column"><dir name="Renderer"><file name="DateTime.php" hash="7362458637165e5564d4a87abcaa9033"/><file name="Days.php" hash="2bfc2fb0491b77a962544d82cdb3c66d"/><file name="Empty.php" hash="de0d661ae7e8831bef15d57cb998632f"/><file name="Price.php" hash="56792c71abb74e153b35bf2a8c32ec6a"/><file name="Status.php" hash="504e0af3eee9c162aecaa9ad97527d08"/><file name="Store.php" hash="18e0987cf166c487206ddbeed70c58de"/><file name="Translate.php" hash="c8fd54ec81c5afda4102755d9f31cfa9"/></dir></dir></dir></dir></dir><dir name="Catalog"><dir name="Product"><dir name="Helper"><dir name="Form"><file name="Price.php" hash="3c7443352425f91916f9029248d8c08e"/></dir></dir><dir name="View"><dir name="Type"><file name="Giftcard.php" hash="fceb859207300158713008c2d7a9166b"/></dir></dir></dir></dir><dir name="Checkout"><dir name="Cart"><file name="Giftcard.php" hash="b66b9afc1c092f293baad606e1e08da5"/><dir name="Item"><file name="Renderer.php" hash="13f1c3a5e4cc9bc7d778b38b160d59e9"/></dir></dir></dir><dir name="Payment"><dir name="Giftcard"><dir name="Form"><file name="Giftcard.php" hash="138a0ae32ea246a50830dad555a839a0"/></dir><file name="Form.php" hash="94eb40ece1689dea0088d4ba081f9976"/></dir></dir><dir name="Sales"><dir name="Order"><dir name="Creditmemo"><dir name="Item"><dir name="Renderer"><file name="Giftcard.php" hash="b20c78f0df3e59a630f51db350bf4ac4"/></dir></dir><dir name="Totals"><file name="Giftcard.php" hash="aeee2e40cdbd796a6ccb97ab3e017c4e"/></dir></dir><dir name="Email"><dir name="Items"><dir name="Invoice"><file name="Giftcard.php" hash="b42b734220656f50e9d243d026d11e4c"/></dir><dir name="Order"><file name="Giftcard.php" hash="a3b5b90185a9af5abff119d6ee672742"/></dir></dir></dir><dir name="Info"><file name="Buttons.php" hash="9a098b144768ac6b56f675ec9162e285"/></dir><dir name="Invoice"><dir name="Item"><dir name="Renderer"><file name="Giftcard.php" hash="18fe4aa679f67afee128d3268bd209ae"/></dir></dir><dir name="Totals"><file name="Giftcard.php" hash="bb7f13c1b38704c60b79045bee52ba67"/></dir></dir><dir name="Item"><dir name="Renderer"><file name="Giftcard.php" hash="9a240568de66f1455d30fdddab3c1c28"/></dir></dir><dir name="Print"><dir name="Item"><dir name="Renderer"><file name="Giftcard.php" hash="2f8217aab2813f2628fccf94c40e0b88"/></dir></dir></dir><dir name="Shipment"><dir name="Item"><dir name="Renderer"><file name="Giftcard.php" hash="c83a1ea831ce08046cd09d50f0654580"/></dir></dir></dir><dir name="Totals"><file name="Giftcard.php" hash="4419eb85d429b8f781568088e3ef48a0"/></dir></dir></dir></dir><dir name="Helper"><dir name="Catalog"><dir name="Product"><file name="Configuration.php" hash="c5f821d6df23c647571cd97260aace53"/></dir></dir><file name="Data.php" hash="6a82153ba031da059278a0ebdff504e1"/></dir><dir name="Model"><dir name="Adminhtml"><dir name="System"><dir name="Config"><dir name="Source"><dir name="Giftcard"><file name="Design.php" hash="db768d5c518b8dfe233f6d5457b5b9c4"/><file name="Event.php" hash="9875a70a1581b3792f649f9b6092331f"/><file name="Format.php" hash="bc91cab62109d222de772bbba7aa6274"/><file name="Series.php" hash="aba6564547ffa61d8bef13869816a365"/><file name="State.php" hash="ca38a55cfd32a71379a572a949afd8f2"/><file name="Status.php" hash="d6ed0b91ac65615c72af6c5915519ec5"/><file name="Template.php" hash="870a1b61bf5a107aa766ec6446959cb2"/><file name="Type.php" hash="ef686e71f5e08b90d33731d31bc17539"/></dir><dir name="Locale"><file name="Currency.php" hash="212769c4b0ba792abcbf0764f0293495"/></dir></dir></dir></dir></dir><dir name="Catalog"><dir name="Product"><dir name="Option"><dir name="Type"><file name="GiftcardValue.php" hash="4358ccd736862f1869e7c13689cc4d69"/></dir></dir><file name="Option.php" hash="b5422bc85fda78a79601136979248aba"/><file name="Price.php" hash="10926b8121b069581716b2d722f50682"/><dir name="Type"><file name="Giftcard.php" hash="04185bb851822766d7465a61314fbd5b"/></dir><file name="Type.php" hash="f226aad02e2182c60211e4f3ec970a55"/></dir><file name="Product.php" hash="8d8ddd5e1f0433eca6fcfe1836aab9ca"/></dir><dir name="CatalogIndex"><dir name="Data"><file name="Giftcard.php" hash="802f244a7c7d446318cb164e206a51ff"/></dir></dir><dir name="Checkout"><file name="Giftcard.php" hash="1849f47f79a9a59c77673ef6ec523f3e"/></dir><dir name="Core"><dir name="Email"><dir name="Template"><file name="Init.php" hash="3b48c0678d953928a71a9b4fd6b5d488"/></dir><file name="Template.php" hash="f8559c9e1339da1d5107b66c298ace3e"/></dir></dir><dir name="Export"><file name="Abstract.php" hash="09eb1f2591a952299faece886fe42ea4"/><dir name="Adapter"><file name="Csv.php" hash="4843c1e3c036e73a7ad8d14a38359075"/><file name="Excel.php" hash="9667e698055b0b933a0b00c4502ded09"/><file name="Interface.php" hash="7fa119032136a44eba0d88aa2f25c313"/><file name="Pdf.php" hash="4a84ddff48ee47baa5a1ea9c8b27df52"/><file name="Zip.php" hash="c2d4aee14e50ff7161b71fb05d9eff1b"/></dir><file name="Collection.php" hash="b2d1ac3db40c0b893814968c604a3c31"/><file name="Grid.php" hash="5adeab37fa0f8e81239a3c40143fef82"/><file name="Object.php" hash="a6e7a80e3eb76d44b40d97c8f3da7d89"/></dir><dir name="Giftcard"><file name="Action.php" hash="29d6acce913461c42d4870637275d084"/><dir name="Design"><file name="Abstract.php" hash="3fd7b6e3a2fddcd68a98d8545dfef31f"/><file name="Default.php" hash="0b2d0e7aaf7675216ce74a7c0870aae4"/></dir><file name="Draw.php" hash="8786b2d3f519c605c72c43fa9ebd5b0b"/><file name="Pdf.php" hash="a5bee72e4155cc5fbd960326bbc78ef5"/></dir><file name="Giftcard.php" hash="333f69d76a817b915d14387f3043dc8f"/><dir name="Import"><file name="Abstract.php" hash="a2b1b6b88a90fdbd8e63f5f836831148"/><dir name="Adapter"><file name="Csv.php" hash="4394752e4ff37fc5fa51fd558ea0e239"/><file name="Excel.php" hash="a99f838f56c4b97994ba757d245042d8"/><file name="Interface.php" hash="798076dd0df08e698bafb58ab7f0197e"/></dir><file name="Code.php" hash="6c2bdc65b2ac121f59abc4399388dc28"/><file name="Giftcard.php" hash="0de1f38b723e5ef89ed8235fad2104f0"/></dir><file name="Observer.php" hash="02f9a36ede127f325d89ba11ef4c9eb4"/><dir name="Option"><dir name="Source"><file name="Value.php" hash="8f3f7bc0fab0c5e045b30d3578643604"/></dir></dir><file name="Option.php" hash="12d6ca22d8d99a9b3c0ce8cf13375ad5"/><file name="Order.php" hash="4403321cea59d44c22027f0e5746ec2f"/><dir name="Payment"><file name="Giftcard.php" hash="693706e28c44c80104888be6830413c9"/></dir><file name="Quote.php" hash="42ee728ad839ee6d6f3e4c0c7e41b306"/><dir name="Resource"><dir name="Giftcard"><file name="Collection.php" hash="6fef5b46c1429f459d37dcb329283c1f"/></dir><file name="Giftcard.php" hash="f863a386d1b201ff4b0057dd8e758cd9"/><dir name="Option"><file name="Collection.php" hash="5c800e6bd3dae83adf2a23d7d9c69f4f"/></dir><file name="Option.php" hash="1094c6e088b63521d9bfc3a3096529ee"/><dir name="Order"><file name="Collection.php" hash="158c2e4df1d9979b612573af7538b2a6"/></dir><file name="Order.php" hash="63d27e1672efc0f3a4851692b558a550"/><dir name="Quote"><file name="Collection.php" hash="3380425c81f59718d7bc8c64b3fb078f"/></dir><file name="Quote.php" hash="c703457e610faf5a4dee66463b457e16"/><dir name="Series"><file name="Collection.php" hash="08a2bb0efc2a937b64d724f1dd418aae"/></dir><file name="Series.php" hash="9118e86a78d5cefce82f32254a8cc826"/><dir name="Template"><file name="Collection.php" hash="5ec7e0ac6cb5202add9a5a1a64b4acfa"/></dir><file name="Template.php" hash="105a1061a84fb39eaa584753625ac517"/></dir><dir name="Sales"><file name="Discount.php" hash="c2548baed309f9a82453414257822b1a"/><dir name="Order"><dir name="Creditmemo"><dir name="Total"><file name="Giftcard.php" hash="e4accfa8514a2c75c37da21477aa992e"/></dir></dir><dir name="Invoice"><dir name="Total"><file name="Giftcard.php" hash="3f9aaca0bcd5e02b48237a9227a433e0"/></dir></dir></dir><dir name="Quote"><dir name="Total"><file name="Giftcard.php" hash="1fa4a5a0038eb07060ed35501b6a195c"/></dir></dir></dir><dir name="Series"><file name="Action.php" hash="d89641d09eb6fe1c497026fd82859d60"/><file name="Generator.php" hash="0eb0a8ae65de74a809385f0114789f05"/></dir><file name="Series.php" hash="8250553686b59f4c9ae0b931a2327dda"/><dir name="Template"><file name="Action.php" hash="516c1eb7b63a8ab8d1bc6f9998b784ca"/></dir><file name="Template.php" hash="c55da9594342d746081dc68ff6b6de92"/></dir><dir name="controllers"><dir name="Adminhtml"><dir name="Catalog"><file name="ProductController.php" hash="f331364419d5a59af4e3f8a628606d7f"/></dir><dir name="Giftcard"><file name="ExportController.php" hash="02c1c8d06865cb6848490cbbb41b653e"/><file name="GiftcardController.php" hash="001409911ad1e3c27b722cfac3218bd4"/><file name="SeriesController.php" hash="f34af93d647791618b9c33c27278a769"/><file name="TemplateController.php" hash="ed9038df5eaedf14c375234f7dc2bcdb"/></dir></dir><dir name="Checkout"><file name="CartController.php" hash="da8e913bc91238eba8909b866aa446c0"/></dir><file name="GiftcardController.php" hash="46235437fd9fbdf7fe5e27258cfb6180"/></dir><dir name="etc"><file name="adminhtml.xml" hash="8cda4dbf761e728cafaa76ea32792124"/><file name="config.xml" hash="c607bcee6f824e0abbce76b6b79462ed"/><file name="system.xml" hash="1a046dc4699418bc4fd5df111ac58bf6"/></dir><dir name="sql"><dir name="giftcard_setup"><file name="mysql4-install-1.0.0.php" hash="dbafa9bda0122cc8ba96781401800f68"/><file name="mysql4-upgrade-1.0.0-1.0.1.php" hash="d5599ed44143cbf47422f2885727c2b1"/><file name="mysql4-upgrade-1.0.1-1.0.2.php" hash="fd2d784cfa3af5f17f6e29997d7b7705"/><file name="mysql4-upgrade-1.0.2-1.0.3.php" hash="d48218a0040c98a644981d158b6891ee"/><file name="mysql4-upgrade-1.1.1-1.1.2.php" hash="43dabe0e160f56498b7ca93a3b56f287"/></dir></dir></dir></dir></dir></dir></dir><dir name="etc"><dir name="modules"><file name="MT_Giftcard.xml" hash="ca094ea06a7910dc265e935e161b9d98"/></dir></dir><dir name="design"><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><dir name="mt"><file name="giftcard.xml" hash="5274916e3a62b7f57d2f0c5ed05efe09"/></dir></dir><dir name="template"><dir name="mt"><dir name="giftcard"><dir><dir name="catalog"><dir name="product"><dir name="view"><dir name="type"><dir name="options"><file name="giftcard.phtml" hash="b5934afd5e7f93674402b25d63459e70"/></dir></dir></dir></dir></dir><dir name="checkout"><dir name="cart"><file name="giftcard.phtml" hash="641555797f280461b9ad0014f613bc96"/></dir></dir><dir name="payment"><dir name="giftcard"><dir name="form"><file name="giftcard.phtml" hash="6d828b549f4e335bf366fc9f8005db31"/></dir><file name="form.phtml" hash="51206b76eabf93573fc5eb904565c473"/></dir></dir><dir name="sales"><dir name="order"><dir name="info"><file name="buttons.phtml" hash="12abbdcdbff241a3fb448c51493286fe"/></dir></dir></dir></dir></dir></dir></dir></dir></dir></dir><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="template"><dir name="mt"><dir name="giftcard"><dir><dir name="catalog"><dir name="product"><dir name="edit"><dir name="tab"><dir name="options"><file name="option.phtml" hash="3f5885df27c65633a6c7a1f8ba18f4d7"/><dir name="type"><file name="giftcardvalue.phtml" hash="3f5885df27c65633a6c7a1f8ba18f4d7"/></dir></dir></dir></dir></dir></dir><dir name="giftcard"><dir name="series"><file name="js.phtml" hash="99defd275b4e0a674edafe2119c56309"/></dir><dir name="template"><dir name="edit"><file name="js.phtml" hash="3e399880a503d30c90c3acd16372e3e3"/></dir></dir></dir><dir name="sales"><dir name="creditmemo"><dir name="create"><dir name="total"><file name="giftcard.phtml" hash="de466b80894662cf86fb6cf29fe45268"/></dir></dir><file name="refund.phtml" hash="64fe05f67d988621092599b05d6cffe3"/><dir name="view"><dir name="total"><file name="giftcard.phtml" hash="8e055cf4f56e07805a7bb021121cb404"/></dir></dir></dir></dir></dir></dir></dir></dir><dir name="layout"><dir name="mt"><file name="giftcard.xml" hash="5df1eec3a4308ad262b8af24b4c4c2f8"/></dir></dir></dir></dir></dir></dir><dir name="locale"><dir name="en_US"><file name="MT_Giftcard.csv" hash="030a023d4765a41861862d26e94a2a61"/><file name="MT_Giftcard_Adminhtml.csv" hash="a4030ebbce038f66d5de95836b07b3a9"/></dir></dir></dir><dir name="js"><dir name="mt"><dir name="giftcard"><dir><dir name="adminhtml"><file name="gift_card.js" hash="a077f36a4718a5ba27b11f33af163334"/><file name="gift_card_series.js" hash="34d968fa1668c4e9aec42803090a73ce"/><file name="gift_card_template.js" hash="f247e17ba83b638e336a440c1c4c4fb6"/><dir name="jscolor"><file name="arrow.gif" hash="5034704a76cd55c1cbcbc58ea6bf523f"/><file name="cross.gif" hash="ba9a274b9323753cd95bc3b1eb2f4e5f"/><file name="demo.html" hash="742abe680859d25a2052ac5be6b65203"/><file name="hs.png" hash="fefa1a03d92ebad25c88dca94a0b63db"/><file name="hv.png" hash="990d71cada17da100653636cf8490884"/><file name="jscolor.js" hash="a26701f49bf33da8dc48f3431e5f4f42"/></dir></dir></dir><file name="jquery-2.1.1.min.js" hash="9a094379d98c6458d480ad5a51c4aa27"/></dir></dir></dir><dir name="skin"><dir name="frontend"><dir name="base"><dir name="default"><dir name="css"><dir name="mt"><dir name="giftcard"><file name="giftcard.css" hash="5cf6f1a510a9af8afb0f2636d0bb36ff"/></dir></dir></dir><dir name="images"><dir name="mt"><dir name="giftcard"><file name="opc-ajax-loader.gif" hash="f48ee069890b16455c3ddcacee9b5f75"/></dir></dir></dir><dir name="mt"><dir name="giftcard"><dir><dir name="design"><dir name="default"><dir name="fonts"><file name="Chaparral-Pro-Regular.ttf" hash="6848adda9090c62208b75b8ad77cdd75"/><file name="Roboto-Black.ttf" hash="a77b7fc4cf040eb5bb26b0685893a9df"/><file name="Roboto-Light.ttf" hash="e22062b3188c8199283ef2aa835d4653"/><file name="Roboto-Medium.ttf" hash="99fc0816a09395454061301fefa42bf1"/><file name="myriad-web-pro.ttf" hash="ff71ffc3836541cf0071d0a47ae0c715"/></dir><dir name="img"><file name="bg.jpg" hash="46661fc213743bc87132e3aebb0ff00e"/><file name="price.png" hash="a4be48a4be4d8b6b3ddbca50457476c7"/><file name="price2.png" hash="4b857a754bdfc344cea059750de0333c"/><file name="shadow.png" hash="a24d8ce96c6ac0a411e93f77a9eb59fb"/><file name="shape.jpg" hash="e0dace3f47ba46091462fbacd466d453"/></dir></dir></dir></dir></dir></dir><dir name="js"><dir name="mt"><dir name="giftcard"><file name="giftcard.js" hash="30f94e3271d018b83e55c5a454ac0286"/><file name="giftcardcheckout.js" hash="6d47bd1939b0a052de9addfbe3859063"/></dir></dir></dir></dir></dir></dir><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="mt"><dir name="giftcard"><file name="gift_card_style.css" hash="4da70f033c3873fd69cbecc3a3ab52ad"/><dir name="import"><file name="gift_card_codes_example.csv" hash="8c04e295be30a1a316c50c8781c13778"/><file name="gift_card_codes_example.xlsx" hash="974af675c981d592303d6332a3fbed9f"/></dir></dir></dir></dir></dir></dir></dir><dir><dir name="lib"><dir name="PHPExcel"><file name="Autoloader.php" hash="c0ac1b27ca0013f02b65abff156eb888"/><dir><dir name="CachedObjectStorage"><file name="APC.php" hash="060a6e5b1c7a0ea4d6d38bd7a637a40c"/><file name="CacheBase.php" hash="45ec0389643f44555f45b7f732fb9328"/><file name="DiscISAM.php" hash="792c27a7920a33100d082e3a1e863e0f"/><file name="ICache.php" hash="42b7649b7901073e4f3f4d1f1184da50"/><file name="Igbinary.php" hash="9caa0af653e56e5c3ad9f9ee6bcdf71c"/><file name="Memcache.php" hash="e9c9fd2dfa1ef0c7df194f32a55c584c"/><file name="Memory.php" hash="67d943f12ce373b554c44a8427950f5e"/><file name="MemoryGZip.php" hash="7cfc009c1634fbbbdf229e1ccf4b193f"/><file name="MemorySerialized.php" hash="b9498b0c52a0e9635557841db318ed79"/><file name="PHPTemp.php" hash="8cbab31264df67172d4753abaea3028f"/><file name="SQLite.php" hash="705f689486dee5e55cb54560a743e847"/><file name="SQLite3.php" hash="2be3feafefad4a501232156beff5ae94"/><file name="Wincache.php" hash="649b95ef8f1d8b9b1fce1c32d8e13670"/></dir><dir name="CalcEngine"><file name="CyclicReferenceStack.php" hash="8e0ccafd804a7c959e5fbc78cadee900"/><file name="Logger.php" hash="73bbe66af2e991b27011b60764e2bdac"/></dir><dir name="Calculation"><file name="Database.php" hash="fcc0d987b23c0a43a30a0cc444c9e42d"/><file name="DateTime.php" hash="74929cc98942540350877d4e045c1da1"/><file name="Engineering.php" hash="2f1ab671181d9496ee11118985d25d4f"/><file name="Exception.php" hash="652642e024783e23648d116fe6f0f2be"/><file name="ExceptionHandler.php" hash="af3157a0957577c2b56b2020faa6160f"/><file name="Financial.php" hash="ca890b073f75aa48c49fb01a8f1e15ee"/><file name="FormulaParser.php" hash="e60e4f77093cc60f73edbaf4be80695a"/><file name="FormulaToken.php" hash="8a2535134cdf044103f0ac88f9db6b93"/><file name="Function.php" hash="c5201782fcaf859c643323a2883e3f45"/><file name="Functions.php" hash="d8d80883dfe5de21b8f3807a7f254022"/><file name="Logical.php" hash="d35eec76ac850e468ffff5dba3dd6bd0"/><file name="LookupRef.php" hash="9d21e4f2dc9340e4c6936f476f931ecc"/><file name="MathTrig.php" hash="a4c6abb1892c3091e6677ca6a4fc2053"/><file name="Statistical.php" hash="200647a809afc11198fcb52d47718061"/><file name="TextData.php" hash="9e97f8cf0e2b644711bcb4ba812b62a1"/><dir name="Token"><file name="Stack.php" hash="fd7a697177f560320eb38960e252e89c"/></dir><file name="functionlist.txt" hash="0b49438e2daa296d8e00527b1914c558"/></dir><dir name="Cell"><file name="AdvancedValueBinder.php" hash="cf4892ed82cfb2ecd8eb7ee7b7a5e334"/><file name="DataType.php" hash="8ccc274284e31a4c07370955114c7d70"/><file name="DataValidation.php" hash="eb5c4fa4d7185356d2056332b09d8f09"/><file name="DefaultValueBinder.php" hash="8af25074b5bbbe4301ddf05ac1957dff"/><file name="Hyperlink.php" hash="32393f6556a0f5ca28935a8b5e2377bc"/><file name="IValueBinder.php" hash="901680ab3e1103a5f48871dc9cd381d6"/></dir><dir name="Chart"><file name="DataSeries.php" hash="e7076e005301be41adf52a58e0824be7"/><file name="DataSeriesValues.php" hash="6bae1ddb7670c6966aa650b736adc56e"/><file name="Exception.php" hash="a06db381aca20a233a2343fdb1b3984d"/><file name="Layout.php" hash="f372df2e9240733449ec13299e12a731"/><file name="Legend.php" hash="007d1fc43db17a7a714ac490d621d3a4"/><file name="PlotArea.php" hash="ebc3924021d32e09fbf6e191ea7c9169"/><dir name="Renderer"><file name="PHP Charting Libraries.txt" hash="6ce1c907ce7043d81288b98e1ffd8c35"/><file name="jpgraph.php" hash="279ce653db7b4177d1c378c421dd4ffe"/></dir><file name="Title.php" hash="02874bda68ff78da251e84c68fe61b3c"/></dir><dir name="Reader"><file name="Abstract.php" hash="5e936960b43fc0286ba3b6663222eeab"/><file name="CSV.php" hash="141e9bcc6c31323092927e5e0ca8f162"/><file name="DefaultReadFilter.php" hash="83e54f1b119a512e8d64cef6b258865f"/><file name="Excel2003XML.php" hash="9fafa9bb7e70b9063a4082598f1cc52a"/><dir name="Excel2007"><file name="Chart.php" hash="496a5edc2e1a2c9664459047481e44bf"/><file name="Theme.php" hash="503ca86087407ce4711cfdacbae846dd"/></dir><file name="Excel2007.php" hash="7367d998079874628d53827d415194f9"/><dir name="Excel5"><file name="Escher.php" hash="f4e8768b6bb41c6d95a3d443189f4dc3"/><file name="MD5.php" hash="2dc878b66882d023d8ae841f1e93138a"/><file name="RC4.php" hash="fba55a88fc22e075a6e2b6a6fdcfe5fa"/></dir><file name="Excel5.php" hash="0a440d3c5a6797eb0d3bebbcff230cf1"/><file name="Exception.php" hash="7125b5445841b29f219c175258c89ae8"/><file name="Gnumeric.php" hash="14eb4e868c3c117ca78b2ee1a8fbd5e7"/><file name="HTML.php" hash="96afd8420f5fedf86759e50e18c19ae4"/><file name="IReadFilter.php" hash="0736c334c496bf42d0e16d2dd0b9dbd2"/><file name="IReader.php" hash="8e6325d94957c3edd350d967cba66eda"/><file name="OOCalc.php" hash="f0787409765f1ebd3af78d0afa83ee6c"/><file name="SYLK.php" hash="5a68110f072be2987678b928e2a5b5dd"/></dir><dir name="RichText"><file name="ITextElement.php" hash="022e671cfd5fe5036f556aa3da0b5e13"/><file name="Run.php" hash="42e3a7e9b7e9dc2b4764cd7e9256e2dc"/><file name="TextElement.php" hash="312b6cc37fa1260236670384c445cdef"/></dir><dir name="Shared"><file name="CodePage.php" hash="f778196b9cfc0da13183b253057bec0b"/><file name="Date.php" hash="a26d5625d129579d9f524ab8d0531f30"/><file name="Drawing.php" hash="af1da980682f5c1f2731f94133b81567"/><dir name="Escher"><dir name="DgContainer"><dir name="SpgrContainer"><file name="SpContainer.php" hash="8194d9a9e6d02245fea8bc4f36f07c93"/></dir><file name="SpgrContainer.php" hash="32c66b6e42634db60322c5e23f60b82f"/></dir><file name="DgContainer.php" hash="0a999b2c39273240d5d0a9df52b660e4"/><dir name="DggContainer"><dir name="BstoreContainer"><dir name="BSE"><file name="Blip.php" hash="82e7eaa1811b7cfb946c047a92427c38"/></dir><file name="BSE.php" hash="dec31faefa86bcac6179fb64d2ec273b"/></dir><file name="BstoreContainer.php" hash="1da7d264aabc0acb3fa391ab5abeae02"/></dir><file name="DggContainer.php" hash="3cc63376df61d3de6cb3d0381b26e258"/></dir><file name="Escher.php" hash="814c9b01923def958017f1333eee2177"/><file name="Excel5.php" hash="86feffcfde61c12b6e6f013620599c27"/><file name="File.php" hash="a657b5cf8872cfe2107c9c01baba8cdd"/><file name="Font.php" hash="88d74f04f0b130c6c633d773cd37669d"/><dir name="JAMA"><file name="CHANGELOG.TXT" hash="81155b0ba4a4aee114047e7aa51e4043"/><file name="CholeskyDecomposition.php" hash="d34ecb13bcefd7c6f04139def3796b60"/><file name="EigenvalueDecomposition.php" hash="c17e11c6d3aa17ad5ed1987ca2782023"/><file name="LUDecomposition.php" hash="e17c4558ef2a3e1914f7b658cc44b93d"/><file name="Matrix.php" hash="53ad625ea79d17eedc3808d257e7bab5"/><file name="QRDecomposition.php" hash="99c31e87a163d45f8c6d940ebbc5e171"/><file name="SingularValueDecomposition.php" hash="d18aa1bcae41dac035353f25d3e77a31"/><dir name="utils"><file name="Error.php" hash="ee40ef699a75fcb33856a80f1b5862cb"/><file name="Maths.php" hash="44462be998ffabaa1530d804438ca521"/></dir></dir><dir name="OLE"><file name="ChainedBlockStream.php" hash="d4bb1993b2f702946acfa46e97aa4160"/><dir name="PPS"><file name="File.php" hash="0474f51f53afc5638edcc9a0b6c3fbc2"/><file name="Root.php" hash="208d81258c79750799dbab04c81ff1f0"/></dir><file name="PPS.php" hash="9d8e405cd746bc5689b6dbfd9bd3a75f"/></dir><file name="OLE.php" hash="855929ae8f887d2cc1881176f0cc5698"/><file name="OLERead.php" hash="446ec9ee4bdd7cc7e025197033b425e9"/><dir name="PCLZip"><file name="gnu-lgpl.txt" hash="f14599a2f089f6ff8c97e2baa4e3d575"/><file name="pclzip.lib.php" hash="3ee0a4d8a06cedc0a56f29e8f351ef72"/><file name="readme.txt" hash="0d82536577908a1f78e1b5c6220f5810"/></dir><file name="PasswordHasher.php" hash="7e9dbb123da6ebf684d78d59dc55aae6"/><file name="String.php" hash="a33e20a7869cb76cfedea8168aeb144e"/><file name="TimeZone.php" hash="d65f43b613e065f013eef6803c56f0bc"/><file name="XMLWriter.php" hash="2c7ef964e936d08dc0a2a100665702e0"/><file name="ZipArchive.php" hash="e2fa9952bbefd2d81507e458d539ded4"/><file name="ZipStreamWrapper.php" hash="ad14dcb8fbd5222b7806e39122b1661c"/><dir name="trend"><file name="bestFitClass.php" hash="b59ad65a9b95d6bfa72cbdb3416ffc6b"/><file name="exponentialBestFitClass.php" hash="021fe1a3f2453c26c40b2692bf3e13d5"/><file name="linearBestFitClass.php" hash="1c56b0b6062a02ad58eb48fe77f1eff1"/><file name="logarithmicBestFitClass.php" hash="4000e8e6ee228a63a6712448d3689df0"/><file name="polynomialBestFitClass.php" hash="48e12ca22a05fb7fdb6cb66b9d996b02"/><file name="powerBestFitClass.php" hash="e76a3317b4c761b45107b160689286b2"/><file name="trendClass.php" hash="4f826ac73685676b87076de95a17ff1e"/></dir></dir><dir name="Style"><file name="Alignment.php" hash="6629881d62ec07d2bee03625ba8343a0"/><file name="Border.php" hash="5e707af05b1dcbe3cc069532cfb1a49c"/><file name="Borders.php" hash="55ab49a60cc4731aaf87bb8471d5eb99"/><file name="Color.php" hash="f70870d3d4c4a238636e775c6c489185"/><file name="Conditional.php" hash="70eaa6d58e2b64689afba07ac916137f"/><file name="Fill.php" hash="44daa400dc0b6bde70d917b8c349fe4e"/><file name="Font.php" hash="2de4834bb4b11444e4995a91517f91e3"/><file name="NumberFormat.php" hash="053298f5a8a54cdf0581f3e393014817"/><file name="Protection.php" hash="52d3d0e540fc22af4df901c9dae23cd6"/><file name="Supervisor.php" hash="9c06b8d9c19e79344fe667264bcf4104"/></dir><dir name="Worksheet"><dir name="AutoFilter"><dir name="Column"><file name="Rule.php" hash="006d912960d4c2ba3dafff71ef693a19"/></dir><file name="Column.php" hash="92ee57544a767280c79e7e0551087e7a"/></dir><file name="AutoFilter.php" hash="b729e61a53f2a3889f0d9282543b81ff"/><file name="BaseDrawing.php" hash="ca57c82c46c78c7e8b349eafa9a88593"/><file name="CellIterator.php" hash="d4bc618bbc586249c1e5dc7df1d993ac"/><file name="ColumnDimension.php" hash="3b9ec591295530beb15cd8237c7cc70d"/><dir name="Drawing"><file name="Shadow.php" hash="d630b34c395209b07d4dd804ee18dc73"/></dir><file name="Drawing.php" hash="cbf3a833861eeaaf3701787357450294"/><file name="HeaderFooter.php" hash="98de723123be2d2a249f367c570b9c29"/><file name="HeaderFooterDrawing.php" hash="c7c6f9b3505e4371f55108ff03d24d16"/><file name="MemoryDrawing.php" hash="333c41a96934a40789bb756955837fce"/><file name="PageMargins.php" hash="513f4fd898a3c7a753e6a5fd314ad662"/><file name="PageSetup.php" hash="ad4d560edf7688ed37ab304139d84f79"/><file name="Protection.php" hash="a8009085ec12f6e99f163df7946d610c"/><file name="Row.php" hash="c7240acf83a4bb1d5d867d7a0cc77f5a"/><file name="RowDimension.php" hash="b2fb45b94bb56d896d09a5d561082676"/><file name="RowIterator.php" hash="6984179f0409f6fc83db123b4b3a6e3d"/><file name="SheetView.php" hash="643122447438c7b65a12d044d8eba413"/></dir><dir name="Writer"><file name="Abstract.php" hash="71881e3c107b9e9ed8d38192b5d83700"/><file name="CSV.php" hash="641fa5f7d7b5805ef77566699631a2ff"/><dir name="Excel2007"><file name="Chart.php" hash="64ef1552a4726a0bd1e017027a529662"/><file name="Comments.php" hash="37f5f882ad0bb555d05b6996008d8662"/><file name="ContentTypes.php" hash="6e0a91955bbe0c65e517ec3a0755c7f8"/><file name="DocProps.php" hash="857de2845f5baa04e4496faa19da5d0b"/><file name="Drawing.php" hash="6b9f0004b35622ab59a613bd81f33b6d"/><file name="Rels.php" hash="4477e66d75e9f48468bf9b086159ae09"/><file name="RelsRibbon.php" hash="3f66b74fb31784ca8ce4bd5bc7291ee3"/><file name="RelsVBA.php" hash="880686bbfa3e472554291b46adcbdf7a"/><file name="StringTable.php" hash="9a4274e4c1b5b2c3fe470cf4a13d5c6b"/><file name="Style.php" hash="e3e5723d4360af64a18d30c0b93a942a"/><file name="Theme.php" hash="eac4b2103b90d25979a60f64179cb7bc"/><file name="Workbook.php" hash="018aabcb96afc1c7dd397fe5b05a6eb9"/><file name="Worksheet.php" hash="88b5cc0fde4a95b2cb89e63b7abcd46c"/><file name="WriterPart.php" hash="b57a9a922bf85e0c55b9fb3e25e7914d"/></dir><file name="Excel2007.php" hash="9747cbee3a0c7e82a77b658203c661a3"/><dir name="Excel5"><file name="BIFFwriter.php" hash="718654fec54a551f016a37ca804b42de"/><file name="Escher.php" hash="0d416af1873a7fe13017c0f53a70da16"/><file name="Font.php" hash="7f2445071c18c6b1c2c1795eae0b7c12"/><file name="Parser.php" hash="ac6ba6bf3cbdcfe7c270a5eff8d8d768"/><file name="Workbook.php" hash="fe2d6f409f6141004c784478160112ef"/><file name="Worksheet.php" hash="2eb04d70106f0635944c7d793eb124e0"/><file name="Xf.php" hash="aebe288abce9d204dee832a1b2522e3a"/></dir><file name="Excel5.php" hash="44c5bbf4edae0f164f18c6816a76f98d"/><file name="Exception.php" hash="7bab6538d9b1b384046054de54e96f42"/><file name="HTML.php" hash="00865972340ff901b501935814385eaa"/><file name="IWriter.php" hash="f09b0dc69e45f2ffa0ac9b5ab502fb82"/><dir name="PDF"><file name="Core.php" hash="e2a46d6c77a74863f81a5842d6a9ebca"/><file name="DomPDF.php" hash="90810f3edb94624db9675e903b00471c"/><file name="mPDF.php" hash="0be83c393289fe4fa01d71757beb7c1f"/><file name="tcPDF.php" hash="3ed2de3ea0628b6dddd7deae4c4b5846"/></dir><file name="PDF.php" hash="389cbece6563cd263debef97ec425957"/></dir><dir name="locale"><dir name="bg"><file name="config" hash="bd48b1342028433c0e8b1405f63681b6"/></dir><dir name="cs"><file name="config" hash="5bec343ec684797f504042520ee2d770"/><file name="functions" hash="dd9b6a53208a2d9128a0dbed5a192c61"/></dir><dir name="da"><file name="config" hash="3c9e6275eeb4e3e8b0227e6fa1cc7e99"/><file name="functions" hash="2be89aab61a219f5102367274eb6ebbd"/></dir><dir name="de"><file name="config" hash="eb1de3a4a017502843d25740d42f0a2c"/><file name="functions" hash="000406260d68b33e72ea78dfeb00b5ff"/></dir><dir name="en"><dir name="uk"><file name="config" hash="24025d0951937faf37cf1c6e0f3dc126"/></dir></dir><dir name="es"><file name="config" hash="65290b4e3b67ebb9a97a90b9222c7e15"/><file name="functions" hash="a703deb701efd97e00291db5333afb3c"/></dir><dir name="fi"><file name="config" hash="14d9c9df4ce03460ea96c3d80399ae57"/><file name="functions" hash="b5e2892f1b2a3a4961e1afcc3a6ee640"/></dir><dir name="fr"><file name="config" hash="027f624b5a6e245629eb0c61e3885e32"/><file name="functions" hash="a77aca7f185e1d209515a4496bafee4e"/></dir><dir name="hu"><file name="config" hash="5fa5ca22943755f450c54c677cdc9746"/><file name="functions" hash="1fb62789d3bac98fa779cd4b41b586ae"/></dir><dir name="it"><file name="config" hash="150afe868eb2c018cf6821f24e4cbd61"/><file name="functions" hash="33abdfe7001d4fdbe302900074323b0e"/></dir><dir name="nl"><file name="config" hash="491f94c0f2bfb810f70ad2318163cd4d"/><file name="functions" hash="0c67a37f97efc98f45722cc2f4fcc35b"/></dir><dir name="no"><file name="config" hash="279bbcda77bc7f0730e22a4bea7e3802"/><file name="functions" hash="5028d6a07e300f28f5ee32bb5aae7133"/></dir><dir name="pl"><file name="config" hash="6a58549706b2da7200b5d78f4ab41f92"/><file name="functions" hash="38738374816955fbdff6f86f6fa8a94a"/></dir><dir name="pt"><dir name="br"><file name="config" hash="f43c1e73bb43432e18d724b8f5b478c5"/><file name="functions" hash="c4790f115b3abc4a12c66b943c1902a9"/></dir><file name="config" hash="da578667203b7cda77565744077e7841"/><file name="functions" hash="d7cd17cfee5fddc681e19f9e59ddd133"/></dir><dir name="ru"><file name="config" hash="567fc66512232e26a7fb27f953190805"/><file name="functions" hash="3ee40439feab895f7b43021bc3ee0d74"/></dir><dir name="sv"><file name="config" hash="e1db96fd21891c616ba3ea744fea210d"/><file name="functions" hash="c61ab2dbccc729b8587a118debbce06b"/></dir><dir name="tr"><file name="config" hash="579938059c4a3c5114e398229ca5d081"/><file name="functions" hash="f1d72a47a1efcefe2979d5c12db88a6c"/></dir></dir></dir><file name="CachedObjectStorageFactory.php" hash="fcddd34477297d387012571e8968ca45"/><file name="Calculation.php" hash="8a4cc594019490aa21c601176209de88"/><file name="Cell.php" hash="30e0d3851122f2335149ece30169ec24"/><file name="Chart.php" hash="d19d8b127aec43520416aa9488e893bf"/><file name="Comment.php" hash="2b1e37cf0e1504b9ba0d13473ff743fa"/><file name="DocumentProperties.php" hash="a310128c6ef8686c6858b14518baa680"/><file name="DocumentSecurity.php" hash="f01bb7af3b6b4d775e99ffa49316b2c8"/><file name="Exception.php" hash="f85f0fa5025dd2a43b2f271efb7068e8"/><file name="HashTable.php" hash="4347b83f91a7f036526b3d9efa7a14f9"/><file name="IComparable.php" hash="ccb0435d62a54236d7afe9c1aed08ad3"/><file name="IOFactory.php" hash="f6e2a8c261cf66ccd1042433e66a1901"/><file name="NamedRange.php" hash="676daa1d2dfd5bd61c4e065aabf8cb84"/><file name="ReferenceHelper.php" hash="c1c7bac86d13f19ca6134c7d95256177"/><file name="RichText.php" hash="a3ecee59068d011fc751ddcd449e014c"/><file name="Settings.php" hash="eaa649e68369e3c01e30ab72429ce311"/><file name="Style.php" hash="250eacd8a8060a76903a7e5a81519ead"/><file name="Worksheet.php" hash="c3eb607361f574fe777cdc0178de7b32"/><file name="WorksheetIterator.php" hash="73d5db8e6d1c331a6f25b0bc0204946c"/></dir><file name="PHPExcel.php" hash="144f3dcdc193f98e7e63f6909190f0f5"/><dir name="phpqrcode"><file name="1419976901png-errors.txt" hash="5c0bdada27335acf976037e64f053d69"/><file name="CHANGELOG" hash="8a872fe193a26678351bfcd30ce762bf"/><file name="INSTALL" hash="4b8cd3c0df34ccdf9eda43633db9ef2a"/><file name="LICENSE" hash="01a2438b1b13b50bedf2778fc1678265"/><file name="README" hash="f541b0b72589a7d3383eface763af72b"/><file name="VERSION" hash="1be049d58921c68c0ce38169a785ac20"/><dir><dir name="bindings"><dir name="tcpdf"><file name="qrcode.php" hash="5b713d84ab4d0fc710a147a0e3848335"/></dir></dir><dir name="cache"><file name="frame_1.dat" hash="9966a137ae5c422c423c64664a6e7525"/><file name="frame_1.png" hash="411b1640bd31fb729f2133abcd06147c"/><file name="frame_10.dat" hash="5322d931be649e5ccec61461d67dd321"/><file name="frame_10.png" hash="94e6c5ecb12f212f27dcff20e82a795b"/><file name="frame_11.dat" hash="79e3ee85484b12fcc4fdc1907510dd90"/><file name="frame_11.png" hash="f6ef45cec274ec241a873ef22df7f45e"/><file name="frame_12.dat" hash="37ccf648fe2fc810ec81fa0f8c3820f1"/><file name="frame_12.png" hash="76152b897afbf40707bf238b5c6dd172"/><file name="frame_13.dat" hash="b04711a3b19ec79c84549843c5557ac9"/><file name="frame_13.png" hash="d6ed6af6d34cf2e8a8d24ae08400fae4"/><file name="frame_14.dat" hash="250770c3d53b29c438f8c0882e1d56d0"/><file name="frame_14.png" hash="d681e5d008e03ef3b2a174da3b77067a"/><file name="frame_15.dat" hash="8e37257a86d3bb454dc2568d94673f6c"/><file name="frame_15.png" hash="ef5b3f6e8fc23ebc14a8929a5300da95"/><file name="frame_16.dat" hash="7032d38df7b8225e306c6940b9380e2b"/><file name="frame_16.png" hash="3e55f66956d8035aa8d3bc1e7fc160f7"/><file name="frame_17.dat" hash="f492c83b8c1c940ee37f41407d0a6c23"/><file name="frame_17.png" hash="03db7f215625032749e912f2aab2a701"/><file name="frame_18.dat" hash="0780fa437cde6b605d86ba1a2234f19e"/><file name="frame_18.png" hash="b52277f3cd98a8f46663f5091b0a9681"/><file name="frame_19.dat" hash="dd0bf43626ee9dc7694382311d94df7f"/><file name="frame_19.png" hash="aaa7c06298eac23c24c41372b13e99ad"/><file name="frame_2.dat" hash="d2063daff8eada7d4a22cedae30f5d04"/><file name="frame_2.png" hash="1ae37415f42c6dbfed330acee0e488d6"/><file name="frame_20.dat" hash="a3a1eb820b13832a3cfceb8af8fb2ee5"/><file name="frame_20.png" hash="a674ebc38712054a376b181db975e02b"/><file name="frame_21.dat" hash="f35be2f92c1f6546b5896916e76c9b34"/><file name="frame_21.png" hash="e29a7e7e2516dfec6cf283c12e83224b"/><file name="frame_22.dat" hash="080bb29f0d4fb1c04f2973ef87b91f5a"/><file name="frame_22.png" hash="4faa3626cb02b8c824247b7f8cec0ee1"/><file name="frame_23.dat" hash="009203ec77f7fd1e19b495c3f1b08a44"/><file name="frame_23.png" hash="3c9cc974afe24e8d7750c72d3bbc298f"/><file name="frame_24.dat" hash="c1b69627f5e2705025d7db7b523e4892"/><file name="frame_24.png" hash="6722efb1632fc9a23f687d67060514cd"/><file name="frame_25.dat" hash="85f80a8a72dd8ecfe50b73dd04c03428"/><file name="frame_25.png" hash="d33e136b0ef7cbdd31857d395219efa1"/><file name="frame_26.dat" hash="00a2327c48e4e8019e4f1bf1173ea6a7"/><file name="frame_26.png" hash="bfba16b8705888625f6a1efa26008f8e"/><file name="frame_27.dat" hash="f74a3e9017abb34cf10d9161db6944a6"/><file name="frame_27.png" hash="4201dc61a80d2cdbc5180abdbf3cb09f"/><file name="frame_28.dat" hash="76acbf4f5b5214113a329585a43e4c88"/><file name="frame_28.png" hash="ba1fa3b05d4e0ce79711857b845a0d8a"/><file name="frame_29.dat" hash="8571093499a6bdb0ecb179f4ba2420ea"/><file name="frame_29.png" hash="2adea50109f78d7341993b2195a715c3"/><file name="frame_3.dat" hash="2699cfca6a5e65aacd0c7fbb6c9084d1"/><file name="frame_3.png" hash="2aed9e9c0e87bbee7443546ba55c3cf6"/><file name="frame_30.dat" hash="255e0419353a95fd6ed075683ebee392"/><file name="frame_30.png" hash="ed732e8b8a612389b31544b8b6a460b5"/><file name="frame_31.dat" hash="69e65a7e068f7743b31a33f1faad9bac"/><file name="frame_31.png" hash="6642919250856e737f3fdf2db8073178"/><file name="frame_32.dat" hash="eba1b97fa1d0a8b28d2374323848534d"/><file name="frame_32.png" hash="51231a4d0f1d7520c3faf374b95153f0"/><file name="frame_33.dat" hash="166082e4520386ae368ece323cb96e16"/><file name="frame_33.png" hash="c281e359d10cfca77e6c9d24bbacb86f"/><file name="frame_34.dat" hash="f7fcf8d02665cbcf07e97b2492b58be9"/><file name="frame_34.png" hash="72698abce1e633a798c1e4778f2f1b93"/><file name="frame_35.dat" hash="5b5ecdbf418448b208b402f73afcc1d7"/><file name="frame_35.png" hash="c87869bf4bf45da1c7127c6de2a0f11c"/><file name="frame_36.dat" hash="03912dc10e6c9548be0475a3d1a8bd36"/><file name="frame_36.png" hash="e5dd2ab9dcb0ebfcc208cab72482fd15"/><file name="frame_37.dat" hash="ac1584560973137f64a713b1cf135d95"/><file name="frame_37.png" hash="085b9a14931e24612d5a31d68dcb23ff"/><file name="frame_38.dat" hash="b45ceadcace8ab29ae23f1187827ee81"/><file name="frame_38.png" hash="a5b05f453ec538e590f8d89587a23611"/><file name="frame_39.dat" hash="1d62f529bdb36150d01a50edec41274b"/><file name="frame_39.png" hash="c83d4b2895ef4131002922efbab49a28"/><file name="frame_4.dat" hash="8f7cc1859eb9a53b5632292e3a130294"/><file name="frame_4.png" hash="b358fec2b171d3f48ed37760f2e43b4a"/><file name="frame_40.dat" hash="49e85960945738760a4657d66c955ec6"/><file name="frame_40.png" hash="4dbb42edd5532958d0a3373292ba907f"/><file name="frame_5.dat" hash="3163d7510e346dc920d4cb54a531c39d"/><file name="frame_5.png" hash="8fc575dc94ac96e59935a760eae530bc"/><file name="frame_6.dat" hash="8e295fa8a97640d442e0a0eb2071dbff"/><file name="frame_6.png" hash="e570a56ccb27e1123efa4f32875ebce0"/><file name="frame_7.dat" hash="daeda73b2271bc29305de751e93def4a"/><file name="frame_7.png" hash="f1f1f510346c6011a0a9db54a6ce1600"/><file name="frame_8.dat" hash="7fa3ac63497597e55d211749e725e1fb"/><file name="frame_8.png" hash="8da14e672ece3b8e6a87f6e730baf480"/><file name="frame_9.dat" hash="25c5097cb158d1871441f7c47dc39ee1"/><file name="frame_9.png" hash="e9c335a41a1ace41f43f096e488a4987"/><dir name="mask_0"><file name="mask_101_0.dat" hash="6c4fdf704de27629d87b83d880801c64"/><file name="mask_105_0.dat" hash="202eb068c963ec45eba3eb97d2870ce3"/><file name="mask_109_0.dat" hash="d2a05381fcf529d73d253162ba809d74"/><file name="mask_113_0.dat" hash="8a507f639e0b0556b6d92277cb5f392d"/><file name="mask_117_0.dat" hash="a5a9ad0b479b2b21e5e20f313766f86f"/><file name="mask_121_0.dat" hash="bccba8f234c62c4ab2f44ae44ab54cb9"/><file name="mask_125_0.dat" hash="f4701c9eb001f32bacb2084bfa3e985a"/><file name="mask_129_0.dat" hash="a1ebe9f05b055f64f558a6244e6c7890"/><file name="mask_133_0.dat" hash="d2929cb58d6e9cd60e8a119be822d309"/><file name="mask_137_0.dat" hash="dcd93d58f4072469967980ba59574f40"/><file name="mask_141_0.dat" hash="5ffc654902a36e2b332fda9d59091fff"/><file name="mask_145_0.dat" hash="9efe56fe464d4502494a1cf626fe9dec"/><file name="mask_149_0.dat" hash="b4e966f8336481fe22747556591cd120"/><file name="mask_153_0.dat" hash="f4e6a1e8b8d358caf45684afdff31294"/><file name="mask_157_0.dat" hash="f6ffbde0114c9697566688b47a6711d6"/><file name="mask_161_0.dat" hash="62f427d65bb9b4443d2e7ade8d459eb7"/><file name="mask_165_0.dat" hash="0e55dfeac94cd03d80ac3beadf229be2"/><file name="mask_169_0.dat" hash="e9d7cf1075155e841397c34439cb7727"/><file name="mask_173_0.dat" hash="5e921e75199ac8624f0bda6b7c8a0ca5"/><file name="mask_177_0.dat" hash="ddb00baf98441c85e41289c22725c176"/><file name="mask_21_0.dat" hash="0718577fa2c550f18c1ada43073686c3"/><file name="mask_25_0.dat" hash="86dff5e28a8686795053144e8e1a1468"/><file name="mask_29_0.dat" hash="0e10a1d9372b0d19001975e9cfae0283"/><file name="mask_33_0.dat" hash="f80d9b95cdc71d8569289bdf50461c0f"/><file name="mask_37_0.dat" hash="a29b43128de8475414f71c138a48ff39"/><file name="mask_41_0.dat" hash="994bd068e5e27de60ab2c80f741a3305"/><file name="mask_45_0.dat" hash="081b0e72ce1c7c98b19a9569ac3a44dd"/><file name="mask_49_0.dat" hash="f50d98727bbdb9f8550cc9170f2ec5f9"/><file name="mask_53_0.dat" hash="4f116fa5476c96c493d9fa39144f3e0b"/><file name="mask_57_0.dat" hash="63842c6c6382a6e9ad6ad9a5d260e10f"/><file name="mask_61_0.dat" hash="a8c349ae832d6ecf6393bab781285d43"/><file name="mask_65_0.dat" hash="e025e048393a0ef230ecfca730627d67"/><file name="mask_69_0.dat" hash="03b969d8d5cc667b9db6d30435ed0465"/><file name="mask_73_0.dat" hash="b4ddb6571dfa5e097778529e515aa991"/><file name="mask_77_0.dat" hash="c958cba6bf9169ed0b5e5e812bde8407"/><file name="mask_81_0.dat" hash="59352f5a91fdda1c299839c388b31094"/><file name="mask_85_0.dat" hash="27d360595156bca380e0882db865d97f"/><file name="mask_89_0.dat" hash="340efa3d23812287232ab47d46acc7f4"/><file name="mask_93_0.dat" hash="071afbef25ba4ce443fe371d286d3f4b"/><file name="mask_97_0.dat" hash="89b20fb88a32644757ee346306a23203"/></dir><dir name="mask_1"><file name="mask_101_1.dat" hash="bf6ab6978bd3e4ddece1c510e84e286d"/><file name="mask_105_1.dat" hash="9d953276346ed743a173ea8ca0e8cd2b"/><file name="mask_109_1.dat" hash="e0b18b6aae70d01b424bcf2f37f76f92"/><file name="mask_113_1.dat" hash="ad0a4162bb87fc14323e8fc95da0f491"/><file name="mask_117_1.dat" hash="cd26e07902b23b0c743505a2732b2498"/><file name="mask_121_1.dat" hash="3755b5cde7076711cb29fbb86e8a0e7f"/><file name="mask_125_1.dat" hash="ca310b53c8ec27d0718e3ef9211d723c"/><file name="mask_129_1.dat" hash="56d78d56fd0bd490a806a9d0a418b93c"/><file name="mask_133_1.dat" hash="25d97fb00854adb525107f41f3178204"/><file name="mask_137_1.dat" hash="c46aabe94b0f98709e634f4722bdb5cf"/><file name="mask_141_1.dat" hash="261a83e7dcf606694332c6c9e04b2b2e"/><file name="mask_145_1.dat" hash="38d5d0690e4603854cc05d315f1dd9c5"/><file name="mask_149_1.dat" hash="aa2eca119e10ec7b9b68a0114ac564ad"/><file name="mask_153_1.dat" hash="7afe60df62eed29834a72c7a0fa036b1"/><file name="mask_157_1.dat" hash="5d9825afa01b120972f1078079d94fd1"/><file name="mask_161_1.dat" hash="226022ea7568c6713f7ced33d58cd0c3"/><file name="mask_165_1.dat" hash="84ae6b587247749c38c4f95eb13db733"/><file name="mask_169_1.dat" hash="7e6db5dc520265a7c2e1b5f840b1aac0"/><file name="mask_173_1.dat" hash="3ce3d555e49b7cb1598b571cd9c39d11"/><file name="mask_177_1.dat" hash="82e07b24b1381c1f679c9ee6dfadccf7"/><file name="mask_21_1.dat" hash="bee4cdaef688947610b10b469c563994"/><file name="mask_25_1.dat" hash="4290a56446ca90443215f2fb4c1959aa"/><file name="mask_29_1.dat" hash="2456b09ddffa9f6c024d0146b2de747b"/><file name="mask_33_1.dat" hash="9d41f80f181d65bb09c4fac192180588"/><file name="mask_37_1.dat" hash="188e3cdd055dba53f9e428491adafe77"/><file name="mask_41_1.dat" hash="0dd7fad119dc0f8d64027c8cb7b87b8d"/><file name="mask_45_1.dat" hash="c0a3c6ed3d6c9e87235f3118c529e20d"/><file name="mask_49_1.dat" hash="2d78d9b0d2ca5f8c2f70a0aee7c91c72"/><file name="mask_53_1.dat" hash="5335af744066a31f48d6e3cab2b40dbe"/><file name="mask_57_1.dat" hash="df0543a3e8403ccfbadc87e1f711c006"/><file name="mask_61_1.dat" hash="87976040b3e1c0f0ef6ce09a100e8a6f"/><file name="mask_65_1.dat" hash="63efa207af9229d00444dc5ffbd0554f"/><file name="mask_69_1.dat" hash="aae34841ca735ca390f8542ee03afdf2"/><file name="mask_73_1.dat" hash="8493bba42242fb0a464247675a7a35c1"/><file name="mask_77_1.dat" hash="3e8c67e245d2d273cb14e773d6a9dfaa"/><file name="mask_81_1.dat" hash="0340c9c4ccd8a3840523a734655afa3f"/><file name="mask_85_1.dat" hash="b0743efcadd883a6597eca6c32cf1f66"/><file name="mask_89_1.dat" hash="f68463319238c992e1672fb74874096e"/><file name="mask_93_1.dat" hash="ea4adb79715c58e337a875b4e4a3956c"/><file name="mask_97_1.dat" hash="e8c8a30ab35215bdd8dbf715ed1cda6a"/></dir><dir name="mask_2"><file name="mask_101_2.dat" hash="c19bd200710ef2a60c5758db76df1202"/><file name="mask_105_2.dat" hash="1bf1c38f25b93af043bacc05798748ac"/><file name="mask_109_2.dat" hash="bffead7278a51efb89b94e6d267f13f0"/><file name="mask_113_2.dat" hash="84cbf90c73ba9a78c0a283b7e70c4ca6"/><file name="mask_117_2.dat" hash="f9fa108e550908a5a1f1087b92bf2154"/><file name="mask_121_2.dat" hash="0b6414fb6f76bfe0381c6cb2aacd34ba"/><file name="mask_125_2.dat" hash="aca184e91ebb60548c7118e17c10de73"/><file name="mask_129_2.dat" hash="0e929552e878974a3951d1eabb31a694"/><file name="mask_133_2.dat" hash="2fe6a8bd3fbe0805d5247952d398d8e9"/><file name="mask_137_2.dat" hash="563bfe8ba15383804f83ca96d39a8896"/><file name="mask_141_2.dat" hash="0f554119e613553d0e290496578d827b"/><file name="mask_145_2.dat" hash="ef3c2eae15e4726bb8803ad2c41dd635"/><file name="mask_149_2.dat" hash="24353d418076add713c045cbd20570a6"/><file name="mask_153_2.dat" hash="3d413b652cfe3d99374e30688053b90c"/><file name="mask_157_2.dat" hash="6e1c88422eb13dd8489d464e3281ee82"/><file name="mask_161_2.dat" hash="53b23561c00e1d00b8f575b3cac30ab8"/><file name="mask_165_2.dat" hash="8e84496c645a09f23cd18bdbb725c31f"/><file name="mask_169_2.dat" hash="990a5c2ece92d9d0e07228b7fbf898de"/><file name="mask_173_2.dat" hash="9749985009d535e753d29ea300456be6"/><file name="mask_177_2.dat" hash="c3c527e46e0dd6909193a06e30cc5f9a"/><file name="mask_21_2.dat" hash="ef7fd6a1deb6cc2e393ace6dd84d5a36"/><file name="mask_25_2.dat" hash="eabdf7cb85e1cf0bdb7952438a24e1cd"/><file name="mask_29_2.dat" hash="e39952d54f008e8d39ad61172d7a6fcd"/><file name="mask_33_2.dat" hash="ceb77e491c9ab253730ba4e72fd948ba"/><file name="mask_37_2.dat" hash="85edba0353ded1e99ef4f7a962cbac1f"/><file name="mask_41_2.dat" hash="7760ee0c6c86087fcde96e2eae9cb90d"/><file name="mask_45_2.dat" hash="3e38a0052f6badc68191d3ee3069e3d9"/><file name="mask_49_2.dat" hash="47ca1f72a8d43d06211b16cc98349abd"/><file name="mask_53_2.dat" hash="419e2b85764065370e791d4602b3d6cd"/><file name="mask_57_2.dat" hash="3c1fa898079586f5338aff22ad3e5e1c"/><file name="mask_61_2.dat" hash="d6e4a7bd67c891d213e2f4e79188fa87"/><file name="mask_65_2.dat" hash="6eddee56c23be857e881eed534e36bc3"/><file name="mask_69_2.dat" hash="e68f0f694c8c9a5f3f86a2906cdbe67a"/><file name="mask_73_2.dat" hash="54c839fcf1bf0a5251ea3d6458f75623"/><file name="mask_77_2.dat" hash="622903170480ae4ba0a41549544cf47b"/><file name="mask_81_2.dat" hash="3c55f79ff8ea70dd8a0862f351b2f3d0"/><file name="mask_85_2.dat" hash="3adfad79aca1860f53b719d3d6d48190"/><file name="mask_89_2.dat" hash="272d60997a9a1691cbe3091733e29162"/><file name="mask_93_2.dat" hash="f17848e3c1aa7981607d62355e36f2d5"/><file name="mask_97_2.dat" hash="85effa425682735086394a0c7bbafbb0"/></dir><dir name="mask_3"><file name="mask_101_3.dat" hash="ae198375944bf5e5db80ed22e67b68b6"/><file name="mask_105_3.dat" hash="6015c6e5f50aa989e01dd58097533ac3"/><file name="mask_109_3.dat" hash="0aff2d331afacd144a9358b0d74facc0"/><file name="mask_113_3.dat" hash="8f19e9effc6dd1c0fc6479bd67c48bf9"/><file name="mask_117_3.dat" hash="a2b2164b64aa246005688ff289cf1a4e"/><file name="mask_121_3.dat" hash="5c2f2642b172d9fe4b65fff2f1dadd62"/><file name="mask_125_3.dat" hash="9f3ad8403cb0e4dee43b6d1120704c42"/><file name="mask_129_3.dat" hash="b2849c22daa0217d68aa604856b9a78d"/><file name="mask_133_3.dat" hash="e81d804c6c49187029b6570262984b81"/><file name="mask_137_3.dat" hash="a59f1c0e5ad80120c501911dc9ef2145"/><file name="mask_141_3.dat" hash="037a2695936927ee7a1707b4811124b7"/><file name="mask_145_3.dat" hash="be939feee94f6d6d6ccc81ae1f600dbd"/><file name="mask_149_3.dat" hash="3196a80f19d3569d2f46ca1c30b8a24b"/><file name="mask_153_3.dat" hash="546b11d703368abb4c0d32a8d9c37982"/><file name="mask_157_3.dat" hash="8470a13e8aacd293d2553bdd313c0f3d"/><file name="mask_161_3.dat" hash="d094c5c953718c9f00cffb2e0d71c2f6"/><file name="mask_165_3.dat" hash="aa34451d98a131743df4bb1d5fd260f1"/><file name="mask_169_3.dat" hash="08548e5d2e1bdad75f9ed1b97b6c8152"/><file name="mask_173_3.dat" hash="7e7cb6489490d6e668a85b812b0b2612"/><file name="mask_177_3.dat" hash="7f21c6fbc48b877e5b31caac71633886"/><file name="mask_21_3.dat" hash="986c775b20f9bc975c3a83faee76329c"/><file name="mask_25_3.dat" hash="d62b82857c88be6ef18f4afb4cf09d56"/><file name="mask_29_3.dat" hash="9f8058257aa8b76d8445b9bb22b9c05a"/><file name="mask_33_3.dat" hash="4f1e8177a0c749ac3931d81c983ffa40"/><file name="mask_37_3.dat" hash="88c26716f6735be2fb4131eed5058051"/><file name="mask_41_3.dat" hash="7d652cb4b36012bc9ba5a7e1d035159c"/><file name="mask_45_3.dat" hash="3714071caccd1e070a2346b919d5f37b"/><file name="mask_49_3.dat" hash="2e2242a88660982e6667bb7ef0fea8de"/><file name="mask_53_3.dat" hash="87169242d83d8a40022bc9d4060798ae"/><file name="mask_57_3.dat" hash="7c6f98cf3629b427436375da98857ac5"/><file name="mask_61_3.dat" hash="6d1b20de6f2805cf18ef98970a7498ee"/><file name="mask_65_3.dat" hash="e0e64afa29e61db165dfc2638cacea41"/><file name="mask_69_3.dat" hash="68e564748c41b81d08e1a34a78a68296"/><file name="mask_73_3.dat" hash="449a36d7abd76c05e25444c8a1d7db82"/><file name="mask_77_3.dat" hash="446c00259878f35d8b468e640ad2ae51"/><file name="mask_81_3.dat" hash="5e55ada7d9fc5f5237e7ef505ba703de"/><file name="mask_85_3.dat" hash="b46ebcdc0121b1a3bedbd184495cfb88"/><file name="mask_89_3.dat" hash="14f648b97ed382c545c8632ac4e1b6f5"/><file name="mask_93_3.dat" hash="b2705428db6f3df45f0bf54bf7f7ebcf"/><file name="mask_97_3.dat" hash="b0103bf0ceaa6d15e13c1ddf314837c7"/></dir><dir name="mask_4"><file name="mask_101_4.dat" hash="ca45a07682fbb6bc77a32e9a15314494"/><file name="mask_105_4.dat" hash="7b74b40294afa78a889105b236e5a3cf"/><file name="mask_109_4.dat" hash="2f88c8ed36981f3080a6f1e035173635"/><file name="mask_113_4.dat" hash="d9a50ab9759fe8a037f4157e478d49ec"/><file name="mask_117_4.dat" hash="df85ef67e5c4cf3267aedc9055ff9a2b"/><file name="mask_121_4.dat" hash="7a66881619731b961dcfac808e2f6be0"/><file name="mask_125_4.dat" hash="409a1bcff906697dfa1f4a2b83aa7f72"/><file name="mask_129_4.dat" hash="c43f5c311576c0ce3537fcdc0aa9baaf"/><file name="mask_133_4.dat" hash="1b0d84cfdbd3520dae9cea6779e6102e"/><file name="mask_137_4.dat" hash="afad876a701bc44207b76b159cc624c4"/><file name="mask_141_4.dat" hash="ff707a8bfc3a08df2715dace4eeee2c9"/><file name="mask_145_4.dat" hash="e08158360699d664f225befb46faafae"/><file name="mask_149_4.dat" hash="16b0984a56f48cb56afb82acd67671a8"/><file name="mask_153_4.dat" hash="730cc2b3e3e12832a3d135dccec1985b"/><file name="mask_157_4.dat" hash="9c80740894d87ac138659dd817cfd326"/><file name="mask_161_4.dat" hash="4e5210091ec433c5c527d1f0585f73f7"/><file name="mask_165_4.dat" hash="a6dbdfb0999db134cca08f7e30cfa7de"/><file name="mask_169_4.dat" hash="9089622362230a309a438d6b3b552c1c"/><file name="mask_173_4.dat" hash="56ea5b38d276af919f2c6544c9ca0c69"/><file name="mask_177_4.dat" hash="87e64a44a0adf6eaeaff9dd68e771ad1"/><file name="mask_21_4.dat" hash="c1328902261a4b750bffd6a322a69e43"/><file name="mask_25_4.dat" hash="128cdfcfa192fb806a5d81f91ebc05dd"/><file name="mask_29_4.dat" hash="1afb863e3bd5f551724cd5e0eaaa659f"/><file name="mask_33_4.dat" hash="b60bbea04379a5edd6765ce656ec235f"/><file name="mask_37_4.dat" hash="fdb59b9945c57ac798ce7f56b436d061"/><file name="mask_41_4.dat" hash="6086f8d8e5e07367d4639ae9cb0ed432"/><file name="mask_45_4.dat" hash="7c39a588c3a02a9f2df71bbb451185f6"/><file name="mask_49_4.dat" hash="be9fe9f94ae480bec52518c31e252259"/><file name="mask_53_4.dat" hash="db6c8031329065e5bcb48d6dc0f53d53"/><file name="mask_57_4.dat" hash="b9d06f6aa6b2398637f04933cdbcd517"/><file name="mask_61_4.dat" hash="f7bb6ffa6ccabbc9fa44aaceb8d50561"/><file name="mask_65_4.dat" hash="04603c3e8d97ef14e2dad753e6eb93c3"/><file name="mask_69_4.dat" hash="36df758133b3febd68156ab37d01a511"/><file name="mask_73_4.dat" hash="51dd4eb76dff0927be98beedf05eaba7"/><file name="mask_77_4.dat" hash="dd103faf186586280ffe0641e2b7978f"/><file name="mask_81_4.dat" hash="90a9312e91e290c7391df673683fd487"/><file name="mask_85_4.dat" hash="d8216a889322d1935a3e7d26fefa473d"/><file name="mask_89_4.dat" hash="6396c3787c999f1d409da28ec4e0e7ee"/><file name="mask_93_4.dat" hash="e9d3369fdd1d79792395646f5923e1fc"/><file name="mask_97_4.dat" hash="77535b91df7f053f8931260141afe6b7"/></dir><dir name="mask_5"><file name="mask_101_5.dat" hash="63e4303918909723ece25197688b8ba7"/><file name="mask_105_5.dat" hash="ee01fae3b22b508e1adb3f47dc99c941"/><file name="mask_109_5.dat" hash="1325823b4e7600739d46c64d4212a5d1"/><file name="mask_113_5.dat" hash="c01d8795c46106917095511b9930c0a0"/><file name="mask_117_5.dat" hash="fbd2cd3349eb860d77369d4b0b944537"/><file name="mask_121_5.dat" hash="156bb97e4e652111cc8969c8c2c15e8e"/><file name="mask_125_5.dat" hash="0cb7294228c178cdd823b6a644967f1e"/><file name="mask_129_5.dat" hash="05635b96e33640886e90b4b8d56171a4"/><file name="mask_133_5.dat" hash="afb77cc82a0b754c7e8c896484430fdd"/><file name="mask_137_5.dat" hash="5dd206b6f8cef84943004dd46473e209"/><file name="mask_141_5.dat" hash="de316b74fdb13d4e2dd231db258e5b10"/><file name="mask_145_5.dat" hash="9db1a1f7ff00930a3a942ce19e5229f8"/><file name="mask_149_5.dat" hash="616f4baac1ccb75cebae890ca66cc639"/><file name="mask_153_5.dat" hash="6a244fbd16d99c00d881e7229626d838"/><file name="mask_157_5.dat" hash="fe12067a1b756e60b55402cd8ecd24d6"/><file name="mask_161_5.dat" hash="6447ad594af51dcfa9f972e82a21e54e"/><file name="mask_165_5.dat" hash="9301e05832397fd35cda0704d5a64e85"/><file name="mask_169_5.dat" hash="7ce18389a7d8a4eddd78e837665fa379"/><file name="mask_173_5.dat" hash="3e39ad33f5a469258e348dd7dbb83b1e"/><file name="mask_177_5.dat" hash="a5a8a619dba0f1ff547e228fc05696aa"/><file name="mask_21_5.dat" hash="7ea675316e14102a14ae2cc70897fd7f"/><file name="mask_25_5.dat" hash="d850e1d1e779dae8073761378b6ce671"/><file name="mask_29_5.dat" hash="150bfabd079b92aa70ab30a7e9368dfe"/><file name="mask_33_5.dat" hash="213369f74b18f08edea17c351d141103"/><file name="mask_37_5.dat" hash="b41c0f5323c4fa71a305521ba452b09d"/><file name="mask_41_5.dat" hash="6dea7e67b63ea326f85517d1c4c56d69"/><file name="mask_45_5.dat" hash="829091dac90854289ec9bcf351774a9d"/><file name="mask_49_5.dat" hash="9c3e06caa2d4917b7b5450ce0a27a7cf"/><file name="mask_53_5.dat" hash="4a81ede5d9554feb48b079e76a895fd1"/><file name="mask_57_5.dat" hash="5194ce0c45d7d9676abaf2fa2cef99fc"/><file name="mask_61_5.dat" hash="863bf39b5bcda2ad4767fb9027770695"/><file name="mask_65_5.dat" hash="9c7fc509da9e5df7e5edbc2a1ae55fd0"/><file name="mask_69_5.dat" hash="1d9d0d5c8c2c9d3e1f47e43d7a4d0869"/><file name="mask_73_5.dat" hash="21200ef88b501d6d22dfe931100fd4c8"/><file name="mask_77_5.dat" hash="517ed455f5eec7593ea201a2ed4cee5f"/><file name="mask_81_5.dat" hash="b3e6de4ae3f3ee7c22e9731e8f951c97"/><file name="mask_85_5.dat" hash="cbe89ebc95a4c3a1ef3eeb9cb81f89e2"/><file name="mask_89_5.dat" hash="8c2bc4a7da237a03224e2301d3895e33"/><file name="mask_93_5.dat" hash="513cb1d0cab1c36d1eca4484340c5e66"/><file name="mask_97_5.dat" hash="c9940067833f5e8e6a29eeb04f99a705"/></dir><dir name="mask_6"><file name="mask_101_6.dat" hash="fe3409bab63a28fd156562843368940b"/><file name="mask_105_6.dat" hash="34efa23c98039ef903960e7fa0592653"/><file name="mask_109_6.dat" hash="36ea76ef2e46af972407d49ff8da9387"/><file name="mask_113_6.dat" hash="03c97aec73f929287857fe364305c984"/><file name="mask_117_6.dat" hash="a9db9006460b267fdd008ee6d7961930"/><file name="mask_121_6.dat" hash="c252620b89e84448b2503203387b4cb9"/><file name="mask_125_6.dat" hash="b2163f500e8c2dc3e14442bbcf1ae2d4"/><file name="mask_129_6.dat" hash="0aecf6a2b535e1036bd64c688b65191e"/><file name="mask_133_6.dat" hash="fe8e9a6d458264eb66ad124528bc47cb"/><file name="mask_137_6.dat" hash="09421a3a805e387e6250cb1c87afcb5b"/><file name="mask_141_6.dat" hash="9910802e214f42ae2abdcee85116c2e3"/><file name="mask_145_6.dat" hash="aef30014661d9963c9617938bda7e2d3"/><file name="mask_149_6.dat" hash="2f9da67a9504c0deca5121d321b200e8"/><file name="mask_153_6.dat" hash="3c6c97c86dc381a338e67917478f3855"/><file name="mask_157_6.dat" hash="51b4b3cf7dddb9debe256fd8911a05f6"/><file name="mask_161_6.dat" hash="e3f360c52072bbfa68ef4d7f68c1970b"/><file name="mask_165_6.dat" hash="b5a9a0a0b8a48e2e193f941535c6484b"/><file name="mask_169_6.dat" hash="2b32a6d292ed03b746cd73f8f5d59f02"/><file name="mask_173_6.dat" hash="54f997312cdc4ef751491cfaf3308c66"/><file name="mask_177_6.dat" hash="92cacc6329349c5effbddeb9a2e559fa"/><file name="mask_21_6.dat" hash="1e2c0fc394840848946b2879a8ea0e58"/><file name="mask_25_6.dat" hash="67ededb602cd3eea65bd7cd15b3b8aba"/><file name="mask_29_6.dat" hash="ae9e79b8d717906f2cee4ac758ed5768"/><file name="mask_33_6.dat" hash="ca09e953f305a38d9e82b1a566c6c856"/><file name="mask_37_6.dat" hash="f1174b18aeeacd12b2efe0d1d9316c99"/><file name="mask_41_6.dat" hash="eb25abab0eccbe9b50e0727f65ddfb3e"/><file name="mask_45_6.dat" hash="e9df8dc1d0d56c4187a0081323998076"/><file name="mask_49_6.dat" hash="3fe09ab83277240614e315932f768afa"/><file name="mask_53_6.dat" hash="83c85d40e678c9b37c2d37f401bc14ee"/><file name="mask_57_6.dat" hash="4e807ebe4413aa11b14af7a0a9d42a50"/><file name="mask_61_6.dat" hash="10b367e0da3f5d0b5fe0b91e830f5653"/><file name="mask_65_6.dat" hash="c0b3bba3387d20f796672ffe9d0e38f9"/><file name="mask_69_6.dat" hash="a37fef158283319557bd0bf3ebe4846d"/><file name="mask_73_6.dat" hash="d9b39a4a9a1a7da544faba4a74c23d04"/><file name="mask_77_6.dat" hash="3268bdbf71bfcd6eca66a6e3dbed48b9"/><file name="mask_81_6.dat" hash="74955ed39c6185272affaeb81090919b"/><file name="mask_85_6.dat" hash="26e0c67dd75a268b3efc628d38d932da"/><file name="mask_89_6.dat" hash="a37653e6a06e2c536a8f585a005ef7f0"/><file name="mask_93_6.dat" hash="3ac10716db6cdd2859a807b9f95a18a2"/><file name="mask_97_6.dat" hash="7d9e1ddc9553878f2931db40fc6ed0e0"/></dir><dir name="mask_7"><file name="mask_101_7.dat" hash="e83d50dcfeddecf35f5bed16b54bbba8"/><file name="mask_105_7.dat" hash="e3bb1535f7075601e2cbb165173421f4"/><file name="mask_109_7.dat" hash="fe7590ee146b69ad00b7169c08a6ab58"/><file name="mask_113_7.dat" hash="84b1badf25a7a5cc4407b2174404821e"/><file name="mask_117_7.dat" hash="4e4233f2b6a3e9b1fa28e68ed52b037f"/><file name="mask_121_7.dat" hash="c9996c9461742edfab6dda88b613585a"/><file name="mask_125_7.dat" hash="f4553613c89cf07e4561ad2aae92e0cc"/><file name="mask_129_7.dat" hash="b4edc59c5e1f790379f71351f196e6bc"/><file name="mask_133_7.dat" hash="e6a4f6fa0a88402cdc0255ca95f5d199"/><file name="mask_137_7.dat" hash="fd33075985f60259af6b7dfd2ae189e5"/><file name="mask_141_7.dat" hash="ec73544083abf6bad1669d781bf09437"/><file name="mask_145_7.dat" hash="75a6237d00e616ca916d977602c0cb7a"/><file name="mask_149_7.dat" hash="a2d5667629afc9ea067e1839eacc8f68"/><file name="mask_153_7.dat" hash="a01eb9a63c1920b705ff4d8b717f4ce7"/><file name="mask_157_7.dat" hash="fad2e537867b26a49f29d60265c0fb40"/><file name="mask_161_7.dat" hash="5d88f58b291f5bb88a0406cfa29012c8"/><file name="mask_165_7.dat" hash="41a900ae9693e5c27d980fdbbd1cc439"/><file name="mask_169_7.dat" hash="365708854b5a146db2b5580225d8048f"/><file name="mask_173_7.dat" hash="13683d9f282668ed475bf707ee53e201"/><file name="mask_177_7.dat" hash="8149d01010cee85d1849a9dca0e102a5"/><file name="mask_21_7.dat" hash="7c80f76fd015f19e48b7a570d55bc262"/><file name="mask_25_7.dat" hash="ea54a40e79f32877e02d1ea8791cb471"/><file name="mask_29_7.dat" hash="a6f4995de8e329204ee3410b22d8da4d"/><file name="mask_33_7.dat" hash="51273577e33506f83d00d7971fc38dc8"/><file name="mask_37_7.dat" hash="8c0fbb3e5121299816be076ce6a356c4"/><file name="mask_41_7.dat" hash="b97a30c39540b5160c652b5324ae9a08"/><file name="mask_45_7.dat" hash="18166274b73ca16a2c5a145076b990dc"/><file name="mask_49_7.dat" hash="270bfbf77a14569a5fc88925beb39189"/><file name="mask_53_7.dat" hash="84e0be977afc54746e41e28f47de1ad9"/><file name="mask_57_7.dat" hash="a37a26bece7e816a87ccdfcef7e96b71"/><file name="mask_61_7.dat" hash="a108bbc684fb0ad8f59228f410d4124d"/><file name="mask_65_7.dat" hash="647767fd83beeec449ef18e04ae12af7"/><file name="mask_69_7.dat" hash="577baae8a8809899b6763719cf5bfa8d"/><file name="mask_73_7.dat" hash="b2bf60ae1da1ce4bb7db15129e99d58b"/><file name="mask_77_7.dat" hash="ab9a75a46a851ad80f0e57b6dd5c64da"/><file name="mask_81_7.dat" hash="fcfaf88379459ac068236827681d9e43"/><file name="mask_85_7.dat" hash="525c8b876f509a127d3dfd80d81aad3f"/><file name="mask_89_7.dat" hash="7c7a821cb5e7d65e7b6e020bd6351f35"/><file name="mask_93_7.dat" hash="c906b28ae62d8866a0eb35ae87db567f"/><file name="mask_97_7.dat" hash="c04cea679212bda3930b3534565a6fd2"/></dir></dir><dir name="tools"><file name="merge.bat" hash="86e934a4304536ad09b2f7b9e814241d"/><file name="merge.php" hash="0b113c70589ac6cc76291087b3f3dff9"/><file name="merge.sh" hash="d2b77c3493b2ffe3d76d4fb9330e72a1"/><file name="merged_config.php" hash="8c4be9477ea9c372b3d2796df9d9d867"/><file name="merged_header.php" hash="3fc51eef6239691f523be743fde28470"/></dir></dir><file name="index.php" hash="15632fb7fff24ae10781a87bc1a5a9bf"/><file name="phpqrcode.php" hash="6e4949ac97acce06de82b2b09988926f"/><file name="qrbitstream.php" hash="7b95645db7e06aba3b55af7dd249663b"/><file name="qrconfig.php" hash="15c58fed3d55a98cda8abeed8c336fa6"/><file name="qrconst.php" hash="4cd7d63ff0b638020e6b0c6d11133d09"/><file name="qrencode.php" hash="dda263c8a9742aaa71cc302820308541"/><file name="qrimage.php" hash="2d1588686abe320c3bf003c94e967ce0"/><file name="qrinput.php" hash="07ee5315fb6c319dc208de59a9de95c0"/><file name="qrlib.php" hash="4d2b63e34326b0df5153be6d928ec960"/><file name="qrmask.php" hash="12ce875d67e242532e2b0da9f0a334ee"/><file name="qrrscode.php" hash="17af6b8769e70c132f227b089152a47f"/><file name="qrspec.php" hash="7d276c5a768c04d62ae0afde8abaad2d"/><file name="qrsplit.php" hash="206c8468e0089be5f58453cbbd003ec0"/><file name="qrtools.php" hash="27aea0ee5d1395d80ef4b9ce7d08fa40"/></dir></dir></dir></target></contents>
19
  <compatible/>
20
  <dependencies><required><php><min>5.0.0</min><max>5.6.0</max></php></required></dependencies>
21
  </package>
skin/frontend/base/default/css/mt/giftcard/giftcard.css CHANGED
@@ -25,7 +25,9 @@
25
  .gc .gc-applied-gift-cards {
26
  padding-top: 10px;
27
  }
28
-
 
 
29
  /*checkout*/
30
 
31
  .sp-methods #checkout-payment-method-gift-card ul.form-list {
25
  .gc .gc-applied-gift-cards {
26
  padding-top: 10px;
27
  }
28
+ .gc-applied-gift-cards span.price {
29
+ display: inline-block;
30
+ }
31
  /*checkout*/
32
 
33
  .sp-methods #checkout-payment-method-gift-card ul.form-list {
skin/frontend/base/default/js/mt/giftcard/giftcardcheckout.js CHANGED
@@ -1,112 +1,117 @@
1
- var GiftCardCheckout = {
2
-
3
- config: {},
4
-
5
- init: function(config)
6
- {
7
- GiftCardCheckout.config = config;
8
- GiftCardCheckout.updateEvents();
9
- payment.addAfterInitFunction('giftcard', function(){
10
- GiftCardCheckout.initEvents();
11
- GiftCardCheckout.updateEvents();
12
- GiftCardCheckout.endLoading();
13
- });
14
- },
15
-
16
- initEvents: function()
17
- {
18
- jQuery('#p_method_giftcard').click(function(){
19
- if (jQuery(this).is(':checked'))
20
- jQuery('.gc-form-element').show();
21
- else {
22
- jQuery('.gc-form-element').hide();
23
- GiftCardCheckout.clearGiftCardCode();
24
- jQuery('input[name="apply_gift_card[]"]').removeAttr('checked');
25
- }
26
- });
27
- },
28
-
29
- addGiftCardCodeSubmit :function()
30
- {
31
- GiftCardCheckout.startLoading();
32
- var giftCardCode = jQuery('#gift_card_code').val();
33
-
34
- jQuery('#gc-applied-codes-error').hide();
35
- jQuery('#gc-please-wait').show();
36
-
37
- var formVisible = 0;
38
- if (jQuery('#p_method_giftcard').is(':checked'))
39
- formVisible = 1;
40
-
41
- jQuery.post(GiftCardCheckout.config.requestUrl+'addGiftCardCodeAjax', {
42
- is_form_visible: formVisible,
43
- giftcard_code: giftCardCode
44
- }, function(response){
45
- var data = jQuery.parseJSON(response);
46
- if (data.content != '') {
47
- jQuery('#checkout-payment-method-gift-card').html(data.content);
48
- }
49
- GiftCardCheckout.updateEvents();
50
- GiftCardCheckout.endLoading();
51
- });
52
- },
53
-
54
- addGiftCardCode :function(giftCardCode)
55
- {
56
- GiftCardCheckout.startLoading();
57
- jQuery.post(GiftCardCheckout.config.requestUrl+'addGiftCardCodeAjax', {
58
- giftcard_code: giftCardCode
59
- }, function(){
60
- GiftCardCheckout.endLoading();
61
- });
62
- },
63
-
64
- removeGiftCardCode :function(giftCardCode)
65
- {
66
- GiftCardCheckout.startLoading();
67
- jQuery.post(GiftCardCheckout.config.requestUrl+'removeGiftCardCodeAjax', {
68
- giftcard_code: giftCardCode
69
- }, function(){
70
- GiftCardCheckout.endLoading();
71
- });
72
- },
73
-
74
- clearGiftCardCode :function()
75
- {
76
- GiftCardCheckout.startLoading();
77
- jQuery.post(GiftCardCheckout.config.requestUrl+'clearGiftCardCodeAjax', {}, function(){
78
- GiftCardCheckout.endLoading();
79
- });
80
- },
81
-
82
- updateEvents :function()
83
- {
84
- jQuery('input[name="apply_gift_card[]"]').click(function(){
85
- if (jQuery(this).is(':checked')) {
86
- GiftCardCheckout.addGiftCardCode(jQuery(this).val());
87
- } else {
88
- GiftCardCheckout.removeGiftCardCode(jQuery(this).val());
89
- }
90
- });
91
- },
92
-
93
- startLoading :function()
94
- {
95
- jQuery('#gc-please-wait').show();
96
- jQuery('.gc-cart-action button').attr('disabled', 'disabled');
97
- jQuery('input[name="apply_gift_card[]"]').attr('disabled', 'disabled');
98
- jQuery('#p_method_giftcard').attr('disabled', 'disabled');
99
- jQuery('#gift_card_code').attr('disabled', 'disabled');
100
- },
101
-
102
- endLoading :function()
103
- {
104
- jQuery('#gc-please-wait').hide();
105
- jQuery('.gc-cart-action button').removeAttr('disabled');
106
- jQuery('input[name="apply_gift_card[]"]').removeAttr('disabled');
107
- jQuery('#p_method_giftcard').removeAttr('disabled');
108
- jQuery('#gift_card_code').removeAttr('disabled');
109
- }
110
- };
111
-
 
 
 
 
 
112
  jQuery.noConflict();
1
+ var GiftCardCheckout = {
2
+
3
+ config: {},
4
+
5
+ init: function(config)
6
+ {
7
+ GiftCardCheckout.config = config;
8
+ GiftCardCheckout.updateEvents();
9
+ payment.addAfterInitFunction('giftcard', function(){
10
+ GiftCardCheckout.initEvents();
11
+ GiftCardCheckout.updateEvents();
12
+ GiftCardCheckout.endLoading();
13
+ });
14
+ },
15
+
16
+ initEvents: function()
17
+ {
18
+ jQuery('#p_method_giftcard').click(function(){
19
+ if (jQuery(this).is(':checked'))
20
+ jQuery('.gc-form-element').show();
21
+ else {
22
+ jQuery('.gc-form-element').hide();
23
+ GiftCardCheckout.clearGiftCardCode();
24
+ jQuery('input[name="apply_gift_card[]"]').removeAttr('checked');
25
+ }
26
+ });
27
+ },
28
+
29
+ addGiftCardCodeSubmit :function()
30
+ {
31
+ GiftCardCheckout.startLoading();
32
+ var giftCardCode = jQuery('#gift_card_code').val();
33
+
34
+ jQuery('#gc-applied-codes-error').hide();
35
+ jQuery('#gc-please-wait').show();
36
+
37
+ var formVisible = 0;
38
+ if (jQuery('#p_method_giftcard').is(':checked'))
39
+ formVisible = 1;
40
+
41
+ jQuery.post(GiftCardCheckout.config.requestUrl+'addGiftCardCodeAjax', {
42
+ is_form_visible: formVisible,
43
+ giftcard_code: giftCardCode
44
+ }, function(response){
45
+ var data = jQuery.parseJSON(response);
46
+ if (data.content != '') {
47
+ jQuery('#checkout-payment-method-gift-card').html(data.content);
48
+ }
49
+ GiftCardCheckout.updateEvents();
50
+ GiftCardCheckout.endLoading();
51
+ });
52
+ },
53
+
54
+ addGiftCardCode :function(giftCardCode)
55
+ {
56
+ GiftCardCheckout.startLoading();
57
+ jQuery.post(GiftCardCheckout.config.requestUrl+'addGiftCardCodeAjax', {
58
+ giftcard_code: giftCardCode
59
+ }, function(){
60
+ GiftCardCheckout.endLoading();
61
+ });
62
+ },
63
+
64
+ removeGiftCardCode :function(giftCardCode)
65
+ {
66
+ GiftCardCheckout.startLoading();
67
+ jQuery.post(GiftCardCheckout.config.requestUrl+'removeGiftCardCodeAjax', {
68
+ giftcard_code: giftCardCode
69
+ }, function(){
70
+ GiftCardCheckout.endLoading();
71
+ });
72
+ },
73
+
74
+ clearGiftCardCode :function()
75
+ {
76
+ GiftCardCheckout.startLoading();
77
+ jQuery.post(GiftCardCheckout.config.requestUrl+'clearGiftCardCodeAjax', {}, function(){
78
+ GiftCardCheckout.endLoading();
79
+ });
80
+ },
81
+
82
+ updateEvents :function()
83
+ {
84
+ jQuery('input[name="apply_gift_card[]"]').click(function(){
85
+ if (jQuery(this).is(':checked')) {
86
+ GiftCardCheckout.addGiftCardCode(jQuery(this).val());
87
+ } else {
88
+ GiftCardCheckout.removeGiftCardCode(jQuery(this).val());
89
+ }
90
+ });
91
+ },
92
+
93
+ startLoading :function()
94
+ {
95
+ jQuery('#gc-please-wait').show();
96
+ jQuery('.gc-cart-action button').attr('disabled', 'disabled');
97
+ jQuery('input[name="apply_gift_card[]"]').attr('disabled', 'disabled');
98
+ jQuery('#p_method_giftcard').attr('disabled', 'disabled');
99
+ jQuery('#gift_card_code').attr('disabled', 'disabled');
100
+ },
101
+
102
+ endLoading :function()
103
+ {
104
+ jQuery('#gc-please-wait').hide();
105
+ jQuery('.gc-cart-action button').removeAttr('disabled');
106
+ jQuery('input[name="apply_gift_card[]"]').removeAttr('disabled');
107
+ jQuery('#p_method_giftcard').removeAttr('disabled');
108
+ jQuery('#gift_card_code').removeAttr('disabled');
109
+ },
110
+
111
+ hidePaymentMethod: function()
112
+ {
113
+ jQuery('#p_method_giftcard').parent().remove();
114
+ }
115
+ };
116
+
117
  jQuery.noConflict();