/** * Collect grand total address amount * * @param Mage_Sales_Model_Quote_Address $address * @return Mage_Sales_Model_Quote_Address_Total_Grand */ public function collect(Mage_Sales_Model_Quote_Address $address) { $grandTotal = $address->getGrandTotal(); $baseGrandTotal = $address->getBaseGrandTotal(); $totals = array_sum($address->getAllTotalAmounts()); $baseTotals = array_sum($address->getAllBaseTotalAmounts()); $address->setGrandTotal($grandTotal + $totals); $address->setBaseGrandTotal($baseGrandTotal + $baseTotals); return $this; }
/** * Collect grand total address amount * * @param Mage_Sales_Model_Quote_Address $address * @return Mage_Sales_Model_Quote_Address_Total_Grand */ public function collect(Mage_Sales_Model_Quote_Address $address) { /** @var $helper Openstream_RappenRounding_Helper_Data */ $helper = Mage::helper('rappenrounding'); $grandTotal = $address->getGrandTotal(); $baseGrandTotal = $address->getBaseGrandTotal(); $totals = array_sum($address->getAllTotalAmounts()); $baseTotals = array_sum($address->getAllBaseTotalAmounts()); if ($helper->getScope() == 'totals' || $helper->getScope() == 'all') { $address->setGrandTotal($helper->_roundBase5($grandTotal + $totals)); $address->setBaseGrandTotal($helper->_roundBase5($baseGrandTotal + $baseTotals)); } else { $address->setGrandTotal($grandTotal + $totals); $address->setBaseGrandTotal($baseGrandTotal + $baseTotals); } return $this; }
/** * Get base amount for calculation of fee (for Magento 1.4.X - 1.6.X) * @param Mage_Sales_Model_Quote_Address $shippingAddress * @return number */ public function getFeeBaseAmount(Mage_Sales_Model_Quote_Address $shippingAddress) { return array_sum($shippingAddress->getAllTotalAmounts()); }
public function calculateDiscount(Mage_Sales_Model_Quote_Address $address, $currencyCode) { $giftCardDiscount = 0; $total = 0; $totals = $address->getAllTotalAmounts(); $quote = $address->getQuote(); if (count($totals) > 0) { foreach ($totals as $amount) { $total += $amount; } } if ($total > 0) { $giftCardDiscount = 0; $appliedGiftCardCollection = $this->getGiftCardCollection($quote->getId()); if (count($appliedGiftCardCollection) > 0) { foreach ($appliedGiftCardCollection as $giftCard) { $balance = $giftCard->getBalance($currencyCode); $giftCardDiscount -= $balance; } } //if total less than gift cards balance if ($giftCardDiscount < $total * -1) { $giftCardDiscount = $total * -1; } } return $giftCardDiscount; }