/** * UC-17 * Added to ensure the max weight doesn't come into play with time in transit when used with dim shipping. * * @param Mage_Shipping_Model_Rate_Request $request * @return bool|Mage_Shipping_Model_Carrier_Abstract|Mage_Shipping_Model_Rate_Result_Error */ public function proccessAdditionalValidation(Mage_Shipping_Model_Rate_Request $request) { if (Mage::helper('wsacommon')->isModuleEnabled('Webshopapps_Shipusa', 'shipping/shipusa/active')) { return Mage::getModel('shipusa/shipping_carrier_ups')->proccessAdditionalValidation($request); } else { return parent::proccessAdditionalValidation($request); } }
/** * Processing additional validation to check is carrier applicable. * * @param Mage_Shipping_Model_Rate_Request $request * @return Mage_Shipping_Model_Carrier_Abstract|Mage_Shipping_Model_Rate_Result_Error|boolean */ public function proccessAdditionalValidation(Mage_Shipping_Model_Rate_Request $request) { if (!Mage::getStoreConfig('shipping/shipusa/active')) { return parent::proccessAdditionalValidation($request); } //Skip by item validation if there is no items in request if (!count($request->getAllItems())) { return $this; } // $maxAllowedWeight = (float) $this->getConfigData('max_package_weight'); $errorMsg = ''; $configErrorMsg = $this->getConfigData('specificerrmsg'); $defaultErrorMsg = Mage::helper('shipping')->__('The shipping module is not available.'); $showMethod = $this->getConfigData('showmethod'); /* foreach ($request->getAllItems() as $item) { if ($item->getProduct() && $item->getProduct()->getId()) { if ($item->getProduct()->getWeight() > $maxAllowedWeight) { $errorMsg = ($configErrorMsg) ? $configErrorMsg : $defaultErrorMsg; break; } } } */ if (!$errorMsg && !$request->getDestPostcode() && $this->isZipCodeRequired($request->getDestCountryId())) { $errorMsg = Mage::helper('shipping')->__('This shipping method is not available, please specify ZIP-code'); } if ($errorMsg && $showMethod) { $error = Mage::getModel('shipping/rate_result_error'); $error->setCarrier($this->_code); $error->setCarrierTitle($this->getConfigData('title')); $error->setErrorMessage($errorMsg); return $error; } elseif ($errorMsg) { return false; } return $this; }