/** * Collect Weee taxes amount and prepare items prices for taxation and discount * * @param Mage_Sales_Model_Quote_Address $address * @return Mage_Weee_Model_Total_Quote_Weee */ public function collect(Mage_Sales_Model_Quote_Address $address) { Mage_Sales_Model_Quote_Address_Total_Abstract::collect($address); $this->_isTaxAffected = false; $items = $this->_getAddressItems($address); if (!count($items)) { return $this; } $address->setAppliedTaxesReset(true); $address->setAppliedTaxes(array()); $this->_store = $address->getQuote()->getStore(); $this->_helper->setStore($this->_store); foreach ($items as $item) { if ($item->getParentItemId()) { continue; } $this->_resetItemData($item); if ($item->getHasChildren() && $item->isChildrenCalculated()) { foreach ($item->getChildren() as $child) { $this->_resetItemData($child); $this->_process($address, $child); } $this->_recalculateParent($item); } else { $this->_process($address, $item); } } if ($this->_isTaxAffected) { $address->unsSubtotalInclTax(); $address->unsBaseSubtotalInclTax(); } return $this; }