/** * Calculate tax for shipping amount * * @param Mage_Sales_Model_Quote_Address $address * @param type $taxRateRequest */ protected function _calculateShippingTax(Mage_Sales_Model_Quote_Address $address, $taxRateRequest) { $discount = $address->getShippingDiscountAmount(); $baseDiscount = $address->getBaseShippingDiscountAmount(); $address->setShippingDiscountAmount($discount + $address->getCustomerrewardAmount()); $address->setBaseShippingDiscountAmount($baseDiscount + $address->getBaseCustomerrewardAmount()); parent::_calculateShippingTax($address, $taxRateRequest); $address->setShippingDiscountAmount($discount); $address->setBaseShippingDiscountAmount($baseDiscount); return $this; }
/** * Calculate tax for shipping amount * * @param Mage_Sales_Model_Quote_Address $address * @param type $taxRateRequest */ protected function _calculateShippingTax(Mage_Sales_Model_Quote_Address $address, $taxRateRequest) { $discount = $address->getShippingDiscountAmount(); $baseDiscount = $address->getBaseShippingDiscountAmount(); /* hainh add this for calculating discount base on incl or excl tax price 22-04-2014 */ if (!$this->_discountIncludeTax()) { $address->setShippingDiscountAmount($discount + $address->getCustomerrewardAmount()); $address->setBaseShippingDiscountAmount($baseDiscount + $address->getBaseCustomerrewardAmount()); } parent::_calculateShippingTax($address, $taxRateRequest); $address->setShippingDiscountAmount($discount); $address->setBaseShippingDiscountAmount($baseDiscount); return $this; }
/** * Calculate tax for shipping amount * * @param Mage_Sales_Model_Quote_Address $address * @param type $taxRateRequest */ protected function _calculateShippingTax(Mage_Sales_Model_Quote_Address $address, $taxRateRequest) { $discount = $address->getShippingDiscountAmount(); $baseDiscount = $address->getBaseShippingDiscountAmount(); $taxRateRequest->setProductClassId($this->_config->getShippingTaxClass($this->_store)); if ($address->getIsShippingInclTax()) { $address->setMagestoreDiscountTaxForShipping($this->_calculator->calcTaxAmount($address->getMagestoreDiscountForShipping(), $this->_calculator->getRate($taxRateRequest), false, false)); $address->setMagestoreBaseDiscountTaxForShipping($this->_calculator->calcTaxAmount($address->getMagestoreBaseDiscountForShipping(), $this->_calculator->getRate($taxRateRequest), false, false)); } $address->setShippingDiscountAmount($discount + $address->getMagestoreDiscountForShipping() + $address->getMagestoreDiscountTaxForShipping()); $address->setBaseShippingDiscountAmount($baseDiscount + $address->getMagestoreBaseDiscountForShipping() + $address->getMagestoreBaseDiscountTaxForShipping()); parent::_calculateShippingTax($address, $taxRateRequest); if ($address->getIsShippingInclTax() && $address->getMagestoreDiscountTaxForShipping() > 0) { $length = count($this->_hiddenTaxes); if ($this->_hiddenTaxes[$length - 1]['value'] > 0) { $this->_hiddenTaxes[$length - 1]['value'] = $this->_hiddenTaxes[$length - 1]['value'] - $address->getMagestoreDiscountTaxForShipping(); $this->_hiddenTaxes[$length - 1]['base_value'] = $this->_hiddenTaxes[$length - 1]['base_value'] - $address->getMagestoreBaseDiscountTaxForShipping(); } //fix 1.4 if ($address->getShippingHiddenTaxAmount()) { $address->setShippingHiddenTaxAmount($address->getShippingHiddenTaxAmount() - $address->getMagestoreDiscountTaxForShipping()); $address->setBaseShippingHiddenTaxAmount($address->getBaseShippingHiddenTaxAmount() - $address->getMagestoreBaseDiscountTaxForShipping()); } } $address->setShippingDiscountAmount($discount); $address->setBaseShippingDiscountAmount($baseDiscount); return $this; }