protected function _initSubtotal() { $store = $this->getStore(); $parent = $this->getParentBlock(); $subtotal = $parent->getTotal('subtotal'); if (!$subtotal) { return $this; } if ($this->_config->displaySalesSubtotalBoth($store)) { $subtotal = (double) $this->_source->getSubtotal(); $baseSubtotal = (double) $this->_source->getBaseSubtotal(); $subtotalIncl = (double) $this->_source->getSubtotalInclTax(); $baseSubtotalIncl = (double) $this->_source->getBaseSubtotalInclTax(); if (!$subtotalIncl || !$baseSubtotalIncl) { //Calculate the subtotal if not set $subtotalIncl = $subtotal + $this->_source->getTaxAmount() - $this->_source->getShippingTaxAmount(); $baseSubtotalIncl = $baseSubtotal + $this->_source->getBaseTaxAmount() - $this->_source->getBaseShippingTaxAmount(); if ($this->_source instanceof Mage_Sales_Model_Order) { //Adjust the discount amounts for the base and well as the weee to display the right totals foreach ($this->_source->getAllItems() as $item) { $subtotalIncl += $item->getHiddenTaxAmount() + $item->getDiscountAppliedForWeeeTax(); $baseSubtotalIncl += $item->getBaseHiddenTaxAmount() + $item->getBaseDiscountAppliedForWeeeTax(); } } } $subtotalIncl = max(0, $subtotalIncl); $baseSubtotalIncl = max(0, $baseSubtotalIncl); $totalExcl = new Varien_Object(array('code' => 'subtotal_excl', 'value' => $subtotal, 'base_value' => $baseSubtotal, 'label' => $this->__('Subtotal (Excl.Tax)'))); $totalIncl = new Varien_Object(array('code' => 'subtotal_incl', 'value' => $subtotalIncl, 'base_value' => $baseSubtotalIncl, 'label' => $this->__('Subtotal (Incl.Tax)'))); $parent->addTotal($totalExcl, 'subtotal'); $parent->addTotal($totalIncl, 'subtotal_excl'); $parent->removeTotal('subtotal'); } elseif ($this->_config->displaySalesSubtotalInclTax($store)) { $subtotalIncl = (double) $this->_source->getSubtotalInclTax(); $baseSubtotalIncl = (double) $this->_source->getBaseSubtotalInclTax(); if (!$subtotalIncl) { $subtotalIncl = $this->_source->getSubtotal() + $this->_source->getTaxAmount() - $this->_source->getShippingTaxAmount(); } if (!$baseSubtotalIncl) { $baseSubtotalIncl = $this->_source->getBaseSubtotal() + $this->_source->getBaseTaxAmount() - $this->_source->getBaseShippingTaxAmount(); } $total = $parent->getTotal('subtotal'); if ($total) { $total->setValue(max(0, $subtotalIncl)); $total->setBaseValue(max(0, $baseSubtotalIncl)); } } return $this; }
protected function _initSubtotal() { $store = $this->getStore(); $parent = $this->getParentBlock(); $subtotal = $parent->getTotal('subtotal'); if (!$subtotal) { return $this; } if ($this->_config->displaySalesSubtotalBoth($store)) { $subtotal = (double) $this->_source->getSubtotal(); $baseSubtotal = (double) $this->_source->getBaseSubtotal(); $subtotalIncl = (double) $this->_source->getSubtotalInclTax(); $baseSubtotalIncl = (double) $this->_source->getBaseSubtotalInclTax(); if (!$subtotalIncl) { $subtotalIncl = $subtotal + $this->_source->getTaxAmount() - $this->_source->getShippingTaxAmount(); } if (!$baseSubtotalIncl) { $baseSubtotalIncl = $baseSubtotal + $this->_source->getBaseTaxAmount() - $this->_source->getBaseShippingTaxAmount(); } $subtotalIncl = max(0, $subtotalIncl); $baseSubtotalIncl = max(0, $baseSubtotalIncl); $totalExcl = new Varien_Object(array('code' => 'subtotal_excl', 'value' => $subtotal, 'base_value' => $baseSubtotal, 'label' => $this->__('Subtotal (Excl.Tax)'))); $totalIncl = new Varien_Object(array('code' => 'subtotal_incl', 'value' => $subtotalIncl, 'base_value' => $baseSubtotalIncl, 'label' => $this->__('Subtotal (Incl.Tax)'))); $parent->addTotal($totalExcl, 'subtotal'); $parent->addTotal($totalIncl, 'subtotal_excl'); $parent->removeTotal('subtotal'); } elseif ($this->_config->displaySalesSubtotalInclTax($store)) { $subtotalIncl = (double) $this->_source->getSubtotalInclTax(); $baseSubtotalIncl = (double) $this->_source->getBaseSubtotalInclTax(); if (!$subtotalIncl) { $subtotalIncl = $this->_source->getSubtotal() + $this->_source->getTaxAmount() - $this->_source->getShippingTaxAmount(); } if (!$baseSubtotalIncl) { $baseSubtotalIncl = $this->_source->getBaseSubtotal() + $this->_source->getBaseTaxAmount() - $this->_source->getBaseShippingTaxAmount(); } $total = $parent->getTotal('subtotal'); if ($total) { $total->setValue(max(0, $subtotalIncl)); $total->setBaseValue(max(0, $baseSubtotalIncl)); } } return $this; }
/** * Check if we need display price include and exclude tax for order/invoice subtotal * * @param mixed $store * @return bool */ public function displaySalesSubtotalBoth($store = null) { return $this->_config->displaySalesSubtotalBoth($store); }
/** * Check if display sales subtotal include and exclude tax * * @param mixed $store * @return bool */ public function displaySalesSubtotalBoth($store = null) { if ($this->_getDataHelper()->isAvataxEnabled($store)) { return false; } return parent::displaySalesSubtotalBoth($store); }