/** * @return $this */ protected function _initGrandTotal() { $store = $this->getStore(); $parent = $this->getParentBlock(); $grandototal = $parent->getTotal('grand_total'); if (!$grandototal || !(double) $this->_source->getGrandTotal()) { return $this; } if ($this->_config->displaySalesTaxWithGrandTotal($store)) { $grandtotal = $this->_source->getGrandTotal(); $baseGrandtotal = $this->_source->getBaseGrandTotal(); $grandtotalExcl = $grandtotal - $this->_source->getTaxAmount(); $baseGrandtotalExcl = $baseGrandtotal - $this->_source->getBaseTaxAmount(); $grandtotalExcl = max($grandtotalExcl, 0); $baseGrandtotalExcl = max($baseGrandtotalExcl, 0); $totalExcl = new \Magento\Framework\Object(['code' => 'grand_total', 'strong' => true, 'value' => $grandtotalExcl, 'base_value' => $baseGrandtotalExcl, 'label' => __('Grand Total (Excl.Tax)')]); $totalIncl = new \Magento\Framework\Object(['code' => 'grand_total_incl', 'strong' => true, 'value' => $grandtotal, 'base_value' => $baseGrandtotal, 'label' => __('Grand Total (Incl.Tax)')]); $parent->addTotal($totalExcl, 'grand_total'); $this->_addTax('grand_total'); $parent->addTotal($totalIncl, 'tax'); } return $this; }
/** * Get sales item (quote item, order item etc) row total price including tax * * @param \Magento\Framework\Object $item * @return float */ public function getSubtotalInclTax($item) { if ($item->getRowTotalInclTax()) { return $item->getRowTotalInclTax(); } $tax = $item->getTaxAmount() + $item->getDiscountTaxCompensation(); return $item->getRowTotal() + $tax; }
/** * Retrieve subtotal price include tax html formated content * * @param \Magento\Framework\Object $item * @return string */ public function displaySubtotalInclTax($item) { $baseTax = $item->getTaxBeforeDiscount() ? $item->getTaxBeforeDiscount() : ($item->getTaxAmount() ? $item->getTaxAmount() : 0); $tax = $item->getBaseTaxBeforeDiscount() ? $item->getBaseTaxBeforeDiscount() : ($item->getBaseTaxAmount() ? $item->getBaseTaxAmount() : 0); return $this->displayPrices($item->getBaseRowTotal() + $baseTax, $item->getRowTotal() + $tax); }
/** * Create and return new order item based on payment item data and $itemInfo * for initial payment * * @param \Magento\Framework\Object $itemInfo * @return \Magento\Sales\Model\Order\Item */ protected function _getInitialItem($itemInfo) { $price = $itemInfo->getPrice() ? $itemInfo->getPrice() : $this->getInitAmount(); $shippingAmount = $itemInfo->getShippingAmount() ? $itemInfo->getShippingAmount() : 0; $taxAmount = $itemInfo->getTaxAmount() ? $itemInfo->getTaxAmount() : 0; $item = $this->_orderItemFactory->create()->setStoreId($this->getStoreId())->setProductType(\Magento\Catalog\Model\Product\Type::TYPE_VIRTUAL)->setIsVirtual(1)->setSku('initial_fee')->setName(__('Recurring Payment Initial Fee'))->setDescription('')->setWeight(0)->setQtyOrdered(1)->setPrice($price)->setOriginalPrice($price)->setBasePrice($price)->setBaseOriginalPrice($price)->setRowTotal($price)->setBaseRowTotal($price)->setTaxAmount($taxAmount)->setShippingAmount($shippingAmount); $option = array('label' => __('Payment type'), 'value' => __('Initial period payment')); $this->_addAdditionalOptionToItem($item, $option); return $item; }