/**
  * 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;
 }
Example #2
0
 /**
  * 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;
 }
Example #3
0
 /**
  * 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;
 }