public function collectRates(Mage_Shipping_Model_Rate_Request $request) { // Dimensional Shipping takes precendence over UpsCalendar if (Mage::helper('wsacommon')->isModuleEnabled('Webshopapps_Shipusa', 'shipping/shipusa/active')) { if (!Mage::registry('shipusa_upsmodel')) { $model = Mage::getModel('shipusa/shipping_carrier_ups'); Mage::register('shipusa_upsmodel', $model); } return Mage::registry('shipusa_upsmodel')->collectRates($request); } if (Mage::helper('wsacommon')->isModuleEnabled('Webshopapps_Upscalendar', 'shipping/webshopapps_dateshiphelper/active')) { if (!Mage::registry('upscalendar_upsmodel')) { $model = Mage::getModel('upscalendar/usa_shipping_carrier_ups'); Mage::register('upscalendar_upsmodel', $model); } return Mage::registry('upscalendar_upsmodel')->collectRates($request); } if (Mage::helper('wsacommon')->isModuleEnabled('Webshopapps_UPSDateShipping', 'shipping/webshopapps_dateshiphelper/active')) { if (!Mage::registry('upsdateshipping_upsmodel')) { $model = Mage::getModel('webshopapps_upsdateshipping/usa_shipping_carrier_ups'); Mage::register('upsdateshipping_upsmodel', $model); } return Mage::registry('upsdateshipping_upsmodel')->collectRates($request); } // default return parent::collectRates($request); }
/** * This is only used if UPS Calendar or UPS DateShipHelper are installed * @param Mage_Shipping_Model_Rate_Request $request * @return bool|Mage_Shipping_Model_Rate_Result|mixed|null */ public function collectRates(Mage_Shipping_Model_Rate_Request $request) { if (!Mage::helper('wsacommon')->isModuleEnabled('Webshopapps_DateShipHelper', 'shipping/webshopapps_dateshiphelper/active')) { return parent::collectRates($request); } if (!$this->getConfigFlag('active')) { return false; } if (!Mage::helper('wsacommon')->isModuleEnabled('Webshopapps_UPSDateShipping', 'shipping/webshopapps_dateshiphelper/active')) { if (!Mage::helper('calendarbase')->useUPSRates()) { return parent::collectRates($request); } } self::$_upsCalendarDebug = Mage::helper('wsalogger')->isDebug('Webshopapps_DateShipHelper'); $this->setRequest($request); $this->setXMLAccessRequest(); if (!Mage::helper('wsacommon')->isModuleEnabled('Webshopapps_UPSDateShipping', 'shipping/webshopapps_dateshiphelper/active')) { $this->_upsTransitModel = Mage::getModel('upscalendar/usa_shipping_upstransit'); $this->_upsTransitModel->_populateTimeInTransitValues($request, $this->_rawRequest, $this->_xmlAccessRequest, self::$_upsCalendarDebug); } $dateFormat = Mage::helper('webshopapps_dateshiphelper')->getDateFormat(); $dayCount = 0; $dispatchDate = ''; $this->setRequest($request); $this->setXMLAccessRequest(); Mage::helper('webshopapps_dateshiphelper')->getEarliestDispatchDay($dayCount, $dispatchDate, 0, -1, 'Ymd'); if (self::$_upsCalendarDebug) { Mage::helper('wsalogger/log')->postInfo('webshopapps_upsdateshipping', 'Earliest Dispatch Date', $dispatchDate); } $this->_upsTransitModel = Mage::getSingleton('webshopapps_upsdateshipping/usa_shipping_transit'); $this->_upsTransitModel->getTimeInTransitArr($this->_rawRequest, $this->_xmlAccessRequest, $dispatchDate); $this->_earliestDispatchDate = date($dateFormat, strtotime($dispatchDate)); $this->_result = $this->_getQuotes(); $this->_updateFreeMethodQuote($request); return $this->getResult(); }