Example #1
0
 public function testGetAllItems()
 {
     $totals = $this->_prepareValidModelData();
     $this->assertEquals([new \Magento\Framework\DataObject(['name' => $this->_validItem->getName(), 'qty' => $this->_validItem->getQty(), 'amount' => $this->_validItem->getPrice()])], $this->_model->getAllItems());
     $this->assertEquals($totals['subtotal'], $this->_model->getSubtotal());
     $this->assertEquals($totals['tax'], $this->_model->getTax());
     $this->assertEquals($totals['shipping'], $this->_model->getShipping());
     $this->assertEquals($totals['discount'], $this->_model->getDiscount());
 }
 /**
  * @param \Magento\Quote\Model\Quote $quote
  * @param \Magento\Catalog\Model\Product $product
  * @param \Magento\Framework\DataObject $config
  * @return \Magento\Quote\Model\Quote\Item|string
  */
 public function init(\Magento\Quote\Model\Quote $quote, \Magento\Catalog\Model\Product $product, \Magento\Framework\DataObject $config)
 {
     $stockItem = $this->stockRegistry->getStockItem($product->getId(), $quote->getStore()->getWebsiteId());
     if ($stockItem->getIsQtyDecimal()) {
         $product->setIsQtyDecimal(1);
     } else {
         $config->setQty((int) $config->getQty());
     }
     $product->setCartQty($config->getQty());
     $item = $quote->addProduct($product, $config, \Magento\Catalog\Model\Product\Type\AbstractType::PROCESS_MODE_FULL);
     return $item;
 }
 /**
  * Get item qty
  *
  * @param \Magento\Framework\DataObject $item
  * @return int
  */
 public function getItemQty(\Magento\Framework\DataObject $item)
 {
     return $item->getQty() * 1 ? $item->getQty() * 1 : 1;
 }
Example #4
0
 /**
  * Get sales item (quote item, order item etc) price including tax based on row total and tax amount
  *
  * @param   \Magento\Framework\DataObject $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);
 }