/** * 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; }
/** * 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; }
/** * 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; }