/** * extract the necessary data from the shipping data of the invoice * * @param Mage_Sales_Model_Order_Invoice $invoice * * @return $this */ protected function extractFromInvoicedShippingMethod(Mage_Sales_Model_Order_Invoice $invoice) { $amount = $invoice->getBaseShippingInclTax(); if (0 < $amount) { $this->additionalParams['ITEMID' . $this->itemIdx] = 'SHIPPING'; $this->additionalParams['ITEMNAME' . $this->itemIdx] = substr($invoice->getOrder()->getShippingDescription(), 0, 30); $this->additionalParams['ITEMPRICE' . $this->itemIdx] = $this->getOpsDataHelper()->getAmount($amount); $this->additionalParams['ITEMQUANT' . $this->itemIdx] = 1; $this->additionalParams['ITEMVATCODE' . $this->itemIdx] = $this->getShippingTaxRate($invoice) . '%'; $this->additionalParams['TAXINCLUDED' . $this->itemIdx] = 1; ++$this->itemIdx; } return $this; }
/** * Adds shipping 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 _addShipping($object, $credit = false) { if ($object->getBaseShippingAmount() == 0) { return false; } $order = $object->getOrder(); $lineNumber = $this->_getNewLineCode(); $storeId = $object->getStore()->getId(); $taxClass = Mage::helper('tax')->getShippingTaxClass($storeId); $line = $this->_getNewDocumentRequestLineObject(); $amount = $object->getBaseShippingAmount(); if ($this->_getTaxDataHelper()->priceIncludesTax($storeId)) { $amount = (double) $object->getBaseShippingInclTax(); $line->setTaxIncluded('true'); } if ($this->_getTaxDataHelper()->applyTaxAfterDiscount($storeId)) { $amount -= (double) $order->getBaseShippingDiscountAmount(); } //@startSkipCommitHooks $amount = $credit ? -1 * $amount : $amount; //@finishSkipCommitHooks $line->setLineCode($lineNumber); $shippingSku = $this->_getConfigHelper()->getShippingSku($storeId); $line->setItemCode($shippingSku ? $shippingSku : self::DEFAULT_SHIPPING_ITEMS_SKU); $line->setItemDescription(self::DEFAULT_SHIPPING_ITEMS_DESCRIPTION); $line->setAvalaraGoodsAndServicesType($taxClass); $line->setNumberOfItems(1); $line->setlineAmount($amount); $discounted = (double) $order->getBaseShippingDiscountAmount() && $this->_getTaxDataHelper()->applyTaxAfterDiscount($storeId) ? 'true' : 'false'; $line->setDiscounted($discounted); $this->_lineToItemId[$lineNumber] = $shippingSku; $this->_lines[$lineNumber] = $line; $this->_setLinesToRequest(); return $lineNumber; }
/** * Adds shipping 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 _addShipping($object, $credit = false) { if ($object->getBaseShippingAmount() == 0) { return false; } $order = $object->getOrder(); $lineNumber = count($this->_lines); $storeId = $object->getStore()->getId(); $taxClass = Mage::helper('tax')->getShippingTaxClass($storeId); $line = new Line(); $amount = (double) $object->getBaseShippingAmount(); if ($this->_getTaxDataHelper()->priceIncludesTax($storeId)) { $amount = (double) $object->getBaseShippingInclTax(); $line->setTaxIncluded(true); } if ($this->_getTaxDataHelper()->applyTaxAfterDiscount()) { $amount -= (double) $order->getBaseShippingDiscountAmount(); } if ($credit) { //@startSkipCommitHooks $amount *= -1; //@finishSkipCommitHooks } $line->setNo($lineNumber); $line->setItemCode($this->_getConfigHelper()->getShippingSku($storeId)); $line->setDescription('Shipping costs'); $line->setTaxCode($taxClass); $line->setQty(1); $line->setAmount($amount); $line->setDiscounted((double) $order->getBaseShippingDiscountAmount() && $this->_getTaxDataHelper()->applyTaxAfterDiscount($storeId)); $this->_lineToItemId[$lineNumber] = 'shipping'; $this->_lines[$lineNumber] = $line; $this->_request->setLines($this->_lines); return $lineNumber; }