/**
  * Collect gift wrapping tax totals
  *
  * @param Mage_Sales_Model_Order_Invoice $invoice
  * @return Enterprise_GiftWrapping_Model_Total_Invoice_Tax_Giftwrapping
  */
 public function collect(Mage_Sales_Model_Order_Invoice $invoice)
 {
     $order = $invoice->getOrder();
     /**
      * Wrapping for items
      */
     $invoiced = 0;
     $baseInvoiced = 0;
     foreach ($invoice->getAllItems() as $invoiceItem) {
         if (!$invoiceItem->getQty() || $invoiceItem->getQty() == 0) {
             continue;
         }
         $orderItem = $invoiceItem->getOrderItem();
         if ($orderItem->getGwId() && $orderItem->getGwBaseTaxAmount() && $orderItem->getGwBaseTaxAmount() != $orderItem->getGwBaseTaxAmountInvoiced()) {
             $orderItem->setGwBaseTaxAmountInvoiced($orderItem->getGwBaseTaxAmount());
             $orderItem->setGwTaxAmountInvoiced($orderItem->getGwTaxAmount());
             $baseInvoiced += $orderItem->getGwBaseTaxAmount();
             $invoiced += $orderItem->getGwTaxAmount();
         }
     }
     if ($invoiced > 0 || $baseInvoiced > 0) {
         $order->setGwItemsBaseTaxInvoiced($order->getGwItemsBaseTaxInvoiced() + $baseInvoiced);
         $order->setGwItemsTaxInvoiced($order->getGwItemsTaxInvoiced() + $invoiced);
         $invoice->setGwItemsBaseTaxAmount($baseInvoiced);
         $invoice->setGwItemsTaxAmount($invoiced);
     }
     /**
      * Wrapping for order
      */
     if ($order->getGwId() && $order->getGwBaseTaxAmount() && $order->getGwBaseTaxAmount() != $order->getGwBaseTaxAmountInvoiced()) {
         $order->setGwBaseTaxAmountInvoiced($order->getGwBaseTaxAmount());
         $order->setGwTaxAmountInvoiced($order->getGwTaxAmount());
         $invoice->setGwBaseTaxAmount($order->getGwBaseTaxAmount());
         $invoice->setGwTaxAmount($order->getGwTaxAmount());
     }
     /**
      * Printed card
      */
     if ($order->getGwAddCard() && $order->getGwCardBaseTaxAmount() && $order->getGwCardBaseTaxAmount() != $order->getGwCardBaseTaxInvoiced()) {
         $order->setGwCardBaseTaxInvoiced($order->getGwCardBaseTaxAmount());
         $order->setGwCardTaxInvoiced($order->getGwCardTaxAmount());
         $invoice->setGwCardBaseTaxAmount($order->getGwCardBaseTaxAmount());
         $invoice->setGwCardTaxAmount($order->getGwCardTaxAmount());
     }
     if (!$invoice->isLast()) {
         $baseTaxAmount = $invoice->getGwItemsBaseTaxAmount() + $invoice->getGwBaseTaxAmount() + $invoice->getGwCardBaseTaxAmount();
         $taxAmount = $invoice->getGwItemsTaxAmount() + $invoice->getGwTaxAmount() + $invoice->getGwCardTaxAmount();
         $invoice->setBaseTaxAmount($invoice->getBaseTaxAmount() + $baseTaxAmount);
         $invoice->setTaxAmount($invoice->getTaxAmount() + $taxAmount);
         $invoice->setBaseGrandTotal($invoice->getBaseGrandTotal() + $baseTaxAmount);
         $invoice->setGrandTotal($invoice->getGrandTotal() + $taxAmount);
     }
     return $this;
 }
Example #2
0
 /**
  * Adds giftwrap printed card 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 _addGwPrintedCardAmount($object, $credit = false)
 {
     if (!$object->getGwPrintedCardBasePrice()) {
         return false;
     }
     $lineNumber = $this->_getNewLineCode();
     $storeId = $object->getStore()->getId();
     $amount = $object->getGwPrintedCardBasePrice();
     $line = $this->_getNewDocumentRequestLineObject();
     if ($this->_getTaxDataHelper()->priceIncludesTax($storeId)) {
         $amount += $object->getGwCardBaseTaxAmount();
         $line->setTaxIncluded('true');
     }
     //@startSkipCommitHooks
     $amount = $credit ? -1 * $amount : $amount;
     //@finishSkipCommitHooks
     $line->setLineCode($lineNumber);
     $gwPrintedCardSku = $this->_getConfigHelper()->getGwPrintedCardSku($storeId);
     $line->setItemCode($gwPrintedCardSku ? $gwPrintedCardSku : self::DEFAULT_GW_PRINTED_CARD_SKU);
     $line->setItemDescription(self::DEFAULT_GW_PRINTED_CARD_DESCRIPTION);
     $line->setAvalaraGoodsAndServicesType($this->_getGiftTaxClassCode($storeId));
     $line->setNumberOfItems(1);
     $line->setlineAmount($amount);
     $line->setDiscounted('false');
     $this->_lineToItemId[$lineNumber] = $gwPrintedCardSku;
     $this->_lines[$lineNumber] = $line;
     $this->_setLinesToRequest();
     return $lineNumber;
 }
Example #3
0
 /**
  * Adds giftwrap printed card 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 _addGwPrintedCardAmount($object, $credit = false)
 {
     if (!$object->getGwPrintedCardBasePrice()) {
         return false;
     }
     $lineNumber = count($this->_lines);
     $storeId = $object->getStore()->getId();
     $amount = $object->getGwPrintedCardBasePrice();
     $line = new Line();
     if ($this->_getTaxDataHelper()->priceIncludesTax($storeId)) {
         $amount += $object->getGwCardBaseTaxAmount();
         $line->setTaxIncluded(true);
     }
     if ($credit) {
         //@startSkipCommitHooks
         $amount *= -1;
         //@finishSkipCommitHooks
     }
     $line->setNo($lineNumber);
     $line->setItemCode($this->_getConfigHelper()->getGwPrintedCardSku($storeId));
     $line->setDescription('Gift Wrap Printed Card Amount');
     $line->setTaxCode($this->_getGiftTaxClassCode($storeId));
     $line->setQty(1);
     $line->setAmount($amount);
     $line->setDiscounted(false);
     $this->_lineToItemId[$lineNumber] = $this->_getConfigHelper()->getGwPrintedCardSku($storeId);
     $this->_lines[$lineNumber] = $line;
     $this->_request->setLines($this->_lines);
     return $lineNumber;
 }