Example #1
0
 public function getAddressItems($a)
 {
     if (!Mage::helper('udsplit')->isActive()) {
         return parent::getAddressItems($a);
     }
     $q = $this->getCheckout()->getQuote();
     $methods = array();
     $details = $a->getUdropshipShippingDetails();
     if ($details) {
         $details = Zend_Json::decode($details);
         $methods = isset($details['methods']) ? $details['methods'] : array();
     }
     $aItems = $a->getAllItems();
     $qItems = array();
     foreach ($aItems as $item) {
         $qItem = $q->getItemById($item->getQuoteItemId());
         if (!$qItem->getProduct()) {
             $qItem->setProduct(new Varien_Object());
         }
         $item->setQuoteItem($qItem);
         $qItems[] = $qItem;
     }
     Mage::helper('udropship/protected')->prepareQuoteItems($qItems);
     $vendorItems = array();
     foreach ($aItems as $item) {
         $vendorItems[$item->getUdropshipVendor()][] = $item;
     }
     $rates = array();
     $qRates = $a->getGroupedAllShippingRates();
     foreach ($qRates as $cCode => $cRates) {
         foreach ($cRates as $rate) {
             $vId = $rate->getUdropshipVendor();
             if (!$vId) {
                 continue;
             }
             $rates[$vId][$cCode][] = $rate;
         }
     }
     $items = array();
     foreach ($vendorItems as $vId => $vItems) {
         $obj = new Varien_Object();
         if (!Mage::getStoreConfigFlag('carriers/udsplit/hide_vendor_name')) {
             $items[] = $obj->setQuoteItem(Mage::getModel('udsplit/cart_vendor')->setPart('header')->setVendor(Mage::helper('udropship')->getVendor($vId)));
         }
         foreach ($vItems as $item) {
             if ($item->getParentItemId()) {
                 continue;
             }
             $item->setQty(sprintf('%d', $item->getQty()));
             $items[] = $item;
         }
         $errorsOnly = false;
         if (!empty($rates[$vId])) {
             $errorsOnly = true;
             foreach ($rates[$vId] as $cCode => $rs) {
                 foreach ($rs as $r) {
                     if (!$r->getErrorMessage()) {
                         $errorsOnly = false;
                     }
                 }
             }
         }
         #echo "<pre>"; print_r($rates[$vId]); echo "</pre>";
         $obj = new Varien_Object();
         $items[] = $obj->setQuoteItem(Mage::getModel('udsplit/cart_vendor')->setPart('footer')->setVendor(Mage::helper('udropship')->getVendor($vId))->setShowDropdowns(true)->setEstimateRates(isset($rates[$vId]) ? $rates[$vId] : array())->setErrorsOnly($errorsOnly)->setShippingMethod(isset($methods[$vId]) ? $methods[$vId] : null)->setItems($vItems)->setAddress($a)->setQuote1($q));
     }
     return $items;
 }