Example #1
0
 /**
  * Aggregate item discount information to total data and related properties
  *
  * @param \Magento\Quote\Model\Quote\Item\AbstractItem $item
  * @param \Magento\Quote\Model\Quote\Address\Total $total
  * @return $this
  */
 protected function aggregateItemDiscount(\Magento\Quote\Model\Quote\Item\AbstractItem $item, \Magento\Quote\Model\Quote\Address\Total $total)
 {
     $total->addTotalAmount($this->getCode(), -$item->getDiscountAmount());
     $total->addBaseTotalAmount($this->getCode(), -$item->getBaseDiscountAmount());
     return $this;
 }
 /**
  * Map an item to item data object
  *
  * @param \Magento\Tax\Api\Data\QuoteDetailsItemInterfaceFactory $itemDataObjectFactory
  * @param AbstractItem $item
  * @param bool $priceIncludesTax
  * @param bool $useBaseCurrency
  * @param string $parentCode
  * @return \Magento\Tax\Api\Data\QuoteDetailsItemInterface
  */
 public function mapItem(\Magento\Tax\Api\Data\QuoteDetailsItemInterfaceFactory $itemDataObjectFactory, AbstractItem $item, $priceIncludesTax, $useBaseCurrency, $parentCode = null)
 {
     if (!$item->getTaxCalculationItemId()) {
         $sequence = 'sequence-' . $this->getNextIncrement();
         $item->setTaxCalculationItemId($sequence);
     }
     /** @var \Magento\Tax\Api\Data\QuoteDetailsItemInterface $itemDataObject */
     $itemDataObject = $itemDataObjectFactory->create();
     $itemDataObject->setCode($item->getTaxCalculationItemId())->setQuantity($item->getQty())->setTaxClassKey($this->taxClassKeyDataObjectFactory->create()->setType(TaxClassKeyInterface::TYPE_ID)->setValue($item->getProduct()->getTaxClassId()))->setIsTaxIncluded($priceIncludesTax)->setType(self::ITEM_TYPE_PRODUCT);
     if ($useBaseCurrency) {
         if (!$item->getBaseTaxCalculationPrice()) {
             $item->setBaseTaxCalculationPrice($item->getBaseCalculationPriceOriginal());
         }
         $itemDataObject->setUnitPrice($item->getBaseTaxCalculationPrice())->setDiscountAmount($item->getBaseDiscountAmount());
     } else {
         if (!$item->getTaxCalculationPrice()) {
             $item->setTaxCalculationPrice($item->getCalculationPriceOriginal());
         }
         $itemDataObject->setUnitPrice($item->getTaxCalculationPrice())->setDiscountAmount($item->getDiscountAmount());
     }
     $itemDataObject->setParentCode($parentCode);
     return $itemDataObject;
 }
 /**
  * Calculate total amount for the item
  *
  * @param QuoteItem|Item|InvoiceItem|CreditmemoItem $item
  * @return mixed
  */
 public function getTotalAmount($item)
 {
     $totalAmount = $item->getRowTotal() - $item->getDiscountAmount();
     return $totalAmount;
 }
Example #4
0
 /**
  * Aggregate item discount information to address data and related properties
  *
  * @param AbstractItem $item
  * @return $this
  */
 protected function _aggregateItemDiscount($item)
 {
     $this->_addAmount(-$item->getDiscountAmount());
     $this->_addBaseAmount(-$item->getBaseDiscountAmount());
     return $this;
 }