コード例 #1
0
ファイル: Tax.php プロジェクト: VinuWebtech/production267
 public function fetch(Mage_Sales_Model_Quote_Address $address)
 {
     if (!method_exists($address->getQuote(), 'isR4q') || !$address->getQuote()->isR4q() || Mage::helper('request4quote')->isTaxEstimatesEnabled()) {
         parent::fetch($address);
     }
     return $this;
 }
コード例 #2
0
ファイル: Tax.php プロジェクト: rajarshc/Rooja
 /**
  * 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;
 }
コード例 #4
0
ファイル: Tax.php プロジェクト: kanotest15/cbmagento
 /**
  * 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;
 }
コード例 #5
0
ファイル: Tax.php プロジェクト: shebin512/Magento_Zoff
 /**
  * Calculate address total tax based on address subtotal
  *
  * @param   Mage_Sales_Model_Quote_Address $address
  * @param   Varien_Object $taxRateRequest
  * @return  Mage_Tax_Model_Sales_Total_Quote
  */
 protected function _totalBaseCalculation(Mage_Sales_Model_Quote_Address $address, $taxRateRequest)
 {
     $store_id = Mage::app()->getStore()->getId();
     if ((int) Mage::helper('rewardpoints')->getRedeemPointsOnTax($store_id) == MW_RewardPoints_Model_Redeemtax::AFTER) {
         parent::_totalBaseCalculation($address, $taxRateRequest);
         return;
     }
     $items = $this->_getAddressItems($address);
     $store = $address->getQuote()->getStore();
     $taxGroups = array();
     $itemTaxGroups = array();
     $catalogPriceInclTax = $this->_config->priceIncludesTax($store);
     /** [Start] Rewardpoint added */
     $countItem = 0;
     foreach ($items as $item) {
         if ($item->getParentItem()) {
             continue;
         }
         $countItem++;
     }
     $pointToRdeem = Mage::getSingleton('core/session')->getMwRewardpointAfterDrop();
     $amountRedeem = Mage::helper('core')->currency(Mage::helper('rewardpoints')->exchangePointsToMoneys($pointToRdeem), false, false);
     $amountRedeemItem = $this->_calculator->round($amountRedeem / $countItem);
     $lastMemory = 0;
     $savedReedemItem = array();
     if ($amountRedeem > 0) {
         foreach ($items as $item) {
             if ($item->getParentItem()) {
                 continue;
             }
             if ($item->getHasChildren() && $item->isChildrenCalculated()) {
                 continue;
             } else {
                 $taxAmount = $item->getTaxableAmount();
                 if ($taxAmount < $amountRedeemItem + $lastMemory) {
                     $lastMemory = $amountRedeemItem + $lastMemory - $taxAmount;
                     $amountRedeemThisItem = $taxAmount;
                 } else {
                     $amountRedeemThisItem = $lastMemory + $amountRedeemItem;
                     $lastMemory = 0;
                 }
                 $savedReedemItem[$item->getItemId()] = $amountRedeemThisItem;
             }
         }
         foreach ($items as $item) {
             if ($item->getParentItem()) {
                 continue;
             }
             if ($item->getHasChildren() && $item->isChildrenCalculated()) {
                 $amountRedeemChildItem = $this->_calculator->round(($amountRedeemItem + $lastMemory) / count($item->getChildren()));
                 $lastMemoryChildren = 0;
                 foreach ($item->getChildren() as $child) {
                     $taxAmount = $child->getTaxableAmount();
                     if ($taxAmount < $amountRedeemChildItem + $lastMemoryChildren) {
                         $lastMemoryChildren = $amountRedeemChildItem + $lastMemoryChildren - $taxAmount;
                         $amountRedeemThisChild = $taxAmount;
                     } else {
                         $amountRedeemThisChild = $lastMemoryChildren + $amountRedeemChildItem;
                         $lastMemoryChildren = 0;
                     }
                     $savedReedemItem[$child->getItemId()] = $amountRedeemThisChild;
                 }
             }
         }
     }
     /** [End] Rewardpoint added */
     foreach ($items as $item) {
         if ($item->getParentItem()) {
             continue;
         }
         if ($item->getHasChildren() && $item->isChildrenCalculated()) {
             foreach ($item->getChildren() as $child) {
                 $this->_totalBaseProcessItemTax($child, $taxRateRequest, $taxGroups, $itemTaxGroups, $catalogPriceInclTax, isset($savedReedemItem[$child->getItemId()]) ? $savedReedemItem[$child->getItemId()] : 0);
             }
             $this->_recalculateParent($item);
         } else {
             $this->_totalBaseProcessItemTax($item, $taxRateRequest, $taxGroups, $itemTaxGroups, $catalogPriceInclTax, isset($savedReedemItem[$item->getItemId()]) ? $savedReedemItem[$item->getItemId()] : 0);
         }
     }
     if ($address->getQuote()->getTaxesForItems()) {
         $itemTaxGroups += $address->getQuote()->getTaxesForItems();
     }
     $address->getQuote()->setTaxesForItems($itemTaxGroups);
     foreach ($taxGroups as $taxId => $data) {
         if ($catalogPriceInclTax) {
             $rate = (double) $taxId;
         } else {
             $rate = $data['applied_rates'][0]['percent'];
         }
         $inclTax = $data['incl_tax'];
         $totalTax = array_sum($data['tax']);
         $baseTotalTax = array_sum($data['base_tax']);
         $this->_addAmount($totalTax);
         $this->_addBaseAmount($baseTotalTax);
         $totalTaxRounded = $this->_calculator->round($totalTax);
         $baseTotalTaxRounded = $this->_calculator->round($totalTaxRounded);
         $this->_saveAppliedTaxes($address, $data['applied_rates'], $totalTaxRounded, $baseTotalTaxRounded, $rate);
     }
     return $this;
 }
コード例 #6
0
ファイル: Tax.php プロジェクト: aoepeople/aoe_avatax
 /**
  * Fetch (Retrieve data as array)
  *
  * @param Mage_Sales_Model_Quote_Address $address
  *
  * @return $this
  */
 public function fetch(Mage_Sales_Model_Quote_Address $address)
 {
     $store = $address->getQuote()->getStore();
     if (!$this->getHelper()->isActive($store)) {
         return parent::fetch($address);
     }
     Mage_Sales_Model_Quote_Address_Total_Abstract::fetch($address);
     $quote = $address->getQuote();
     $store = $quote->getStore();
     $amount = floatval($address->getTaxAmount());
     if ($amount != 0.0 || $this->_config->displayCartZeroTax($store)) {
         $fullInfo = array();
         $address->addTotal(array('code' => $this->getCode(), 'title' => Mage::helper('tax')->__('Tax'), 'full_info' => $fullInfo, 'value' => $amount));
     }
     $displaySubtotal = $this->_config->displayCartSubtotalInclTax($store) ? $address->getSubtotalInclTax() : $address->getSubtotal();
     $address->addTotal(array('code' => 'subtotal', 'title' => Mage::helper('sales')->__('Subtotal'), 'value' => $displaySubtotal, 'value_incl_tax' => $address->getSubtotalInclTax(), 'value_excl_tax' => $address->getSubtotal()));
     $displayShipping = $this->_config->displayCartShippingInclTax($store) ? $address->getShippingInclTax() : $address->getShippingAmount();
     $address->addTotal(array('code' => 'shipping', 'title' => Mage::helper('sales')->__('Shipping'), 'value' => $displayShipping, 'value_incl_tax' => $address->getShippingInclTax(), 'value_excl_tax' => $address->getShippingAmount()));
     return $this;
 }
コード例 #7
0
ファイル: Tax2.php プロジェクト: rajarshc/Rooja
 /**
  * Collect tax totals for quote address
  *
  * @param   Mage_Sales_Model_Quote_Address $address
  * @return  Mage_Tax_Model_Sales_Total_Quote
  */
 public function collect141(Mage_Sales_Model_Quote_Address $address)
 {
     parent::collect($address);
     $this->_saveRewardsTaxDiscount($address);
     //TODO recalculate tax on shipping discounted amount
     return $this;
 }
コード例 #8
0
ファイル: Tax.php プロジェクト: Gilbertoavitia1/AHBS
 public function collect(Mage_Sales_Model_Quote_Address $address)
 {
     parent::collect($address);
     return $this;
 }