/**
  * 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;
 }