Example #1
0
 /**
  * Update tax related fields for quote item
  *
  * @param AbstractItem $quoteItem
  * @param ItemTaxDetails $itemTaxDetails
  * @param ItemTaxDetails $baseItemTaxDetails
  * @param Store $store
  * @return $this
  */
 public function updateItemTaxInfo($quoteItem, $itemTaxDetails, $baseItemTaxDetails, $store)
 {
     //The price should be base price
     $quoteItem->setPrice($baseItemTaxDetails->getPrice());
     $quoteItem->setConvertedPrice($itemTaxDetails->getPrice());
     $quoteItem->setPriceInclTax($itemTaxDetails->getPriceInclTax());
     $quoteItem->setRowTotal($itemTaxDetails->getRowTotal());
     $quoteItem->setRowTotalInclTax($itemTaxDetails->getRowTotalInclTax());
     $quoteItem->setTaxAmount($itemTaxDetails->getRowTax());
     $quoteItem->setTaxPercent($itemTaxDetails->getTaxPercent());
     $quoteItem->setHiddenTaxAmount($itemTaxDetails->getDiscountTaxCompensationAmount());
     $quoteItem->setBasePrice($baseItemTaxDetails->getPrice());
     $quoteItem->setBasePriceInclTax($baseItemTaxDetails->getPriceInclTax());
     $quoteItem->setBaseRowTotal($baseItemTaxDetails->getRowTotal());
     $quoteItem->setBaseRowTotalInclTax($baseItemTaxDetails->getRowTotalInclTax());
     $quoteItem->setBaseTaxAmount($baseItemTaxDetails->getRowTax());
     $quoteItem->setTaxPercent($baseItemTaxDetails->getTaxPercent());
     $quoteItem->setBaseHiddenTaxAmount($baseItemTaxDetails->getDiscountTaxCompensationAmount());
     //Set discount calculation price, this may be needed by discount collector
     if ($this->_config->discountTax($store)) {
         $quoteItem->setDiscountCalculationPrice($itemTaxDetails->getPriceInclTax());
         $quoteItem->setBaseDiscountCalculationPrice($baseItemTaxDetails->getPriceInclTax());
     } else {
         $quoteItem->setDiscountCalculationPrice($itemTaxDetails->getPrice());
         $quoteItem->setBaseDiscountCalculationPrice($baseItemTaxDetails->getPrice());
     }
     return $this;
 }
Example #2
0
 /**
  * Update tax related fields for shipping
  *
  * @param Address $address
  * @param \Magento\Tax\Service\V1\Data\TaxDetails\Item $shippingTaxDetails
  * @param \Magento\Tax\Service\V1\Data\TaxDetails\Item $baseShippingTaxDetails
  * @return $this
  */
 protected function updateShippingTaxInfo(Address $address, $shippingTaxDetails, $baseShippingTaxDetails)
 {
     $address->setTotalAmount('shipping', $shippingTaxDetails->getRowTotal());
     $address->setBaseTotalAmount('shipping', $baseShippingTaxDetails->getRowTotal());
     $address->setShippingTaxAmount($shippingTaxDetails->getRowTax());
     $address->setBaseShippingTaxAmount($baseShippingTaxDetails->getRowTax());
     $address->setTotalAmount('shipping_hidden_tax', $shippingTaxDetails->getDiscountTaxCompensationAmount());
     $address->setBaseTotalAmount('shipping_hidden_tax', $baseShippingTaxDetails->getDiscountTaxCompensationAmount());
     $address->setShippingInclTax($shippingTaxDetails->getRowTotalInclTax());
     $address->setBaseShippingInclTax($baseShippingTaxDetails->getRowTotalInclTax());
     if ($this->_config->discountTax($this->_store)) {
         $address->setShippingAmountForDiscount($shippingTaxDetails->getRowTotalInclTax());
         $address->setBaseShippingAmountForDiscount($baseShippingTaxDetails->getRowTotalInclTax());
     }
     //Add taxes applied to shipping to applied taxes
     $appliedTaxes = $shippingTaxDetails->getAppliedTaxes();
     $baseAppliedTaxes = $baseShippingTaxDetails->getAppliedTaxes();
     $appliedTaxesArray = $this->convertAppliedTaxes($appliedTaxes, $baseAppliedTaxes);
     $this->_saveAppliedTaxes($address, $appliedTaxesArray, $shippingTaxDetails->getRowTax(), $baseShippingTaxDetails->getRowTax(), $shippingTaxDetails->getTaxPercent());
     return $this;
 }