示例#1
0
 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;
 }
示例#2
0
 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;
 }
示例#3
0
 /**
  * Check if we need display price include tax for order/invoice subtotal
  *
  * @param mixed $store
  * @return bool
  */
 public function displaySalesSubtotalInclTax($store = null)
 {
     return $this->_config->displaySalesSubtotalInclTax($store);
 }
示例#4
0
文件: Config.php 项目: shabirm/avatax
 /**
  * Check if display sales subtotal include tax
  *
  * @param mixed $store
  * @return bool
  */
 public function displaySalesSubtotalInclTax($store = null)
 {
     if ($this->_getDataHelper()->isAvataxEnabled($store)) {
         return false;
     }
     return parent::displaySalesSubtotalInclTax($store);
 }