/**
  * Collect gift wrapping tax totals
  *
  * @param   Mage_Sales_Model_Order_Creditmemo $creditmemo
  * @return  Enterprise_GiftWrapping_Model_Total_Creditmemo_Tax_Giftwrapping
  */
 public function collect(Mage_Sales_Model_Order_Creditmemo $creditmemo)
 {
     $order = $creditmemo->getOrder();
     /**
      * Wrapping for items
      */
     $refunded = 0;
     $baseRefunded = 0;
     foreach ($creditmemo->getAllItems() as $creditmemoItem) {
         if (!$creditmemoItem->getQty() || $creditmemoItem->getQty() == 0) {
             continue;
         }
         $orderItem = $creditmemoItem->getOrderItem();
         if ($orderItem->getGwId() && $orderItem->getGwBaseTaxAmountInvoiced() && $orderItem->getGwBaseTaxAmountInvoiced() != $orderItem->getGwBaseTaxAmountRefunded()) {
             $orderItem->setGwBaseTaxAmountRefunded($orderItem->getGwBaseTaxAmountInvoiced());
             $orderItem->setGwTaxAmountRefunded($orderItem->getGwTaxAmountInvoiced());
             $baseRefunded += $orderItem->getGwBaseTaxAmountInvoiced() * $creditmemoItem->getQty();
             $refunded += $orderItem->getGwTaxAmountInvoiced() * $creditmemoItem->getQty();
         }
     }
     if ($refunded > 0 || $baseRefunded > 0) {
         $order->setGwItemsBaseTaxRefunded($order->getGwItemsBaseTaxRefunded() + $baseRefunded);
         $order->setGwItemsTaxRefunded($order->getGwItemsTaxRefunded() + $refunded);
         $creditmemo->setGwItemsBaseTaxAmount($baseRefunded);
         $creditmemo->setGwItemsTaxAmount($refunded);
     }
     /**
      * Wrapping for order
      */
     if ($order->getGwId() && $order->getGwBaseTaxAmountInvoiced() && $order->getGwBaseTaxAmountInvoiced() != $order->getGwBaseTaxAmountRefunded()) {
         $order->setGwBaseTaxAmountRefunded($order->getGwBaseTaxAmountInvoiced());
         $order->setGwTaxAmountRefunded($order->getGwTaxAmountInvoiced());
         $creditmemo->setGwBaseTaxAmount($order->getGwBaseTaxAmountInvoiced());
         $creditmemo->setGwTaxAmount($order->getGwTaxAmountInvoiced());
     }
     /**
      * Printed card
      */
     if ($order->getGwAddCard() && $order->getGwCardBaseTaxInvoiced() && $order->getGwCardBaseTaxInvoiced() != $order->getGwCardBaseTaxRefunded()) {
         $order->setGwCardBaseTaxRefunded($order->getGwCardBaseTaxInvoiced());
         $order->setGwCardTaxRefunded($order->getGwCardTaxInvoiced());
         $creditmemo->setGwCardBaseTaxAmount($order->getGwCardBaseTaxInvoiced());
         $creditmemo->setGwCardTaxAmount($order->getGwCardTaxInvoiced());
     }
     $baseTaxAmount = $creditmemo->getGwItemsBaseTaxAmount() + $creditmemo->getGwBaseTaxAmount() + $creditmemo->getGwCardBaseTaxAmount();
     $taxAmount = $creditmemo->getGwItemsTaxAmount() + $creditmemo->getGwTaxAmount() + $creditmemo->getGwCardTaxAmount();
     $creditmemo->setBaseTaxAmount($creditmemo->getBaseTaxAmount() + $baseTaxAmount);
     $creditmemo->setTaxAmount($creditmemo->getTaxAmount() + $taxAmount);
     $creditmemo->setBaseGrandTotal($creditmemo->getBaseGrandTotal() + $baseTaxAmount);
     $creditmemo->setGrandTotal($creditmemo->getGrandTotal() + $taxAmount);
     $creditmemo->setBaseCustomerBalanceReturnMax($creditmemo->getBaseCustomerBalanceReturnMax() + $baseTaxAmount);
     $creditmemo->setCustomerBalanceReturnMax($creditmemo->getCustomerBalanceReturnMax() + $taxAmount);
     return $this;
 }
Example #2
0
 /**
  * Adds giftwrapitems cost to request as item
  *
  * @param Mage_Sales_Model_Order_Invoice|Mage_Sales_Model_Order_Creditmemo $object
  * @param bool $credit
  * @return int|bool
  */
 protected function _addGwItemsAmount($object, $credit = false)
 {
     if ($object->getGwItemsPrice() == 0) {
         return false;
     }
     $lineNumber = $this->_getNewLineCode();
     $storeId = $object->getStore()->getId();
     $amount = $object->getGwItemsBasePrice();
     $line = $this->_getNewDocumentRequestLineObject();
     if ($this->_getTaxDataHelper()->priceIncludesTax($storeId)) {
         $amount += $object->getGwItemsBaseTaxAmount();
         $line->setTaxIncluded('true');
     }
     //@startSkipCommitHooks
     $amount = $credit ? -1 * $amount : $amount;
     //@finishSkipCommitHooks
     $line->setLineCode($lineNumber);
     $gwItemsSku = $this->_getConfigHelper()->getGwItemsSku($storeId);
     $line->setItemCode($gwItemsSku ? $gwItemsSku : self::DEFAULT_GW_ITEMS_SKU);
     $line->setItemDescription(self::DEFAULT_GW_ITEMS_DESCRIPTION);
     $line->setAvalaraGoodsAndServicesType($this->_getGiftTaxClassCode($storeId));
     $line->setNumberOfItems(1);
     $line->setlineAmount($amount);
     $line->setDiscounted('false');
     $this->_lineToItemId[$lineNumber] = $gwItemsSku;
     $this->_lines[$lineNumber] = $line;
     $this->_setLinesToRequest();
     return $lineNumber;
 }
Example #3
0
 /**
  * Adds giftwrapitems cost to request as item
  *
  * @param Mage_Sales_Model_Order_Invoice|Mage_Sales_Model_Order_Creditmemo $object
  * @param bool $credit
  * @return int|bool
  */
 protected function _addGwItemsAmount($object, $credit = false)
 {
     if ($object->getGwItemsPrice() == 0) {
         return false;
     }
     $lineNumber = count($this->_lines);
     $storeId = $object->getStore()->getId();
     $amount = $object->getGwItemsBasePrice();
     $line = new Line();
     if ($this->_getTaxDataHelper()->priceIncludesTax($storeId)) {
         $amount += $object->getGwItemsBaseTaxAmount();
         $line->setTaxIncluded(true);
     }
     if ($credit) {
         //@startSkipCommitHooks
         $amount *= -1;
         //@finishSkipCommitHooks
     }
     $line->setNo($lineNumber);
     $line->setItemCode($this->_getConfigHelper()->getGwItemsSku($storeId));
     $line->setDescription('Gift Wrap Items Amount');
     $line->setTaxCode($this->_getGiftTaxClassCode($storeId));
     $line->setQty(1);
     $line->setAmount($amount);
     $line->setDiscounted(false);
     $this->_lineToItemId[$lineNumber] = $this->_getConfigHelper()->getGwItemsSku($storeId);
     $this->_lines[$lineNumber] = $line;
     $this->_request->setLines($this->_lines);
     return $lineNumber;
 }