Beispiel #1
0
 /**
  * Subtract ordered qty for product
  *
  * @param  \Magento\Framework\Object $item
  * @return $this
  * @throws \Magento\Framework\Model\Exception
  */
 public function registerItemSale(\Magento\Framework\Object $item)
 {
     $productId = $item->getProductId();
     if (!$productId) {
         throw new \Magento\Framework\Model\Exception(__('We cannot specify a product identifier for the order item.'));
     }
     /** @var Item $stockItem */
     $stockItem = $this->_stockItemFactory->create()->loadByProduct($productId);
     if ($this->stockItemService->isQty($this->getProductType($productId))) {
         if ($item->getStoreId()) {
             $stockItem->setStoreId($item->getStoreId());
         }
         if ($stockItem->checkQty($item->getQtyOrdered())) {
             $stockItem->subtractQty($item->getQtyOrdered());
             $stockItem->save();
         }
     }
     return $this;
 }
Beispiel #2
0
 /**
  * Get sales item (quote item, order item etc) price including tax based on row total and tax amount
  *
  * @param   \Magento\Framework\Object $item
  * @return  float
  */
 public function getPriceInclTax($item)
 {
     if ($item->getPriceInclTax()) {
         return $item->getPriceInclTax();
     }
     $qty = $item->getQty() ? $item->getQty() : ($item->getQtyOrdered() ? $item->getQtyOrdered() : 1);
     $taxAmount = $item->getTaxAmount() + $item->getDiscountTaxCompensation();
     $price = floatval($qty) ? ($item->getRowTotal() + $taxAmount) / $qty : 0;
     return $this->priceCurrency->round($price);
 }
 /**
  * Retrieve include tax html formatted content
  *
  * @param \Magento\Framework\Object $item
  * @return string
  */
 public function displayPriceInclTax(\Magento\Framework\Object $item)
 {
     $qty = $item->getQtyOrdered() ? $item->getQtyOrdered() : ($item->getQty() ? $item->getQty() : 1);
     $baseTax = $item->getTaxBeforeDiscount() ? $item->getTaxBeforeDiscount() : ($item->getTaxAmount() ? $item->getTaxAmount() : 0);
     $tax = $item->getBaseTaxBeforeDiscount() ? $item->getBaseTaxBeforeDiscount() : ($item->getBaseTaxAmount() ? $item->getBaseTaxAmount() : 0);
     $basePriceTax = 0;
     $priceTax = 0;
     if (floatval($qty)) {
         $basePriceTax = $item->getBasePrice() + $baseTax / $qty;
         $priceTax = $item->getPrice() + $tax / $qty;
     }
     return $this->displayPrices($this->getOrder()->getStore()->roundPrice($basePriceTax), $this->getOrder()->getStore()->roundPrice($priceTax));
 }