Exemple #1
0
 public static function getRealTimeRates(ShippingRateCalculator $handler, Shipment $shipment)
 {
     $rates = new ShippingRateSet();
     $handler->setWeight($shipment->getChargeableWeight());
     $order = $shipment->order->get();
     if ($order->isMultiAddress->get()) {
         $address = $shipment->shippingAddress->get();
     } else {
         $address = $order->shippingAddress->get();
     }
     if (!$address) {
         return $rates;
     }
     $handler->setDestCountry($address->countryID->get());
     $handler->setDestState($address->state->get() ? $address->state->get()->code->get() : $address->stateName->get());
     $handler->setDestZip($address->postalCode->get());
     $config = $shipment->getApplication()->getConfig();
     $handler->setSourceCountry($config->get('STORE_COUNTRY'));
     $handler->setSourceZip($config->get('STORE_ZIP'));
     $handler->setSourceState($config->get('STORE_STATE'));
     foreach ($handler->getAllRates() as $k => $rate) {
         $newRate = new ShipmentDeliveryRate();
         $newRate->setApplication($shipment->getApplication());
         $newRate->setCost($rate->getCostAmount(), $rate->getCostCurrency());
         $newRate->setServiceName($rate->getServiceName());
         $newRate->setClassName($rate->getClassName());
         $newRate->setProviderName($rate->getProviderName());
         $newRate->setServiceId($rate->getClassName() . '_' . $k);
         $rates->add($newRate);
     }
     return $rates;
 }
 public static function getRealTimeRates(ShippingRateCalculator $handler, Shipment $shipment)
 {
     $rates = new ShippingRateSet();
     $handler->setWeight($shipment->getChargeableWeight());
     $order = $shipment->order->get();
     // TODO: fix issue when address has zip and country data, but are missing city, user and record id!
     //             (now workround - get address id, if $address has no id, load address by id)
     if ($order->isMultiAddress->get()) {
         $address = $shipment->shippingAddress->get();
         $arr = $shipment->toArray();
     } else {
         $address = $order->shippingAddress->get();
         $arr = $order->toArray();
     }
     if (!$address->getID() && array_key_exists('shippingAddressID', $arr)) {
         $address = ActiveRecordModel::getInstanceByID('UserAddress', $arr['shippingAddressID'], true);
     }
     if (!$address) {
         return $rates;
     }
     $handler->setDestCountry($address->countryID->get());
     $handler->setDestState($address->state->get() ? $address->state->get()->code->get() : $address->stateName->get());
     $handler->setDestZip($address->postalCode->get());
     $handler->setDestCity($address->city->get());
     $config = $shipment->getApplication()->getConfig();
     $handler->setSourceCountry($config->get('STORE_COUNTRY'));
     $handler->setSourceZip($config->get('STORE_ZIP'));
     $handler->setSourceState($config->get('STORE_STATE'));
     foreach ($handler->getAllRates() as $k => $rate) {
         $newRate = new ShipmentDeliveryRate();
         $newRate->setApplication($shipment->getApplication());
         $newRate->setCost($rate->getCostAmount(), $rate->getCostCurrency());
         $newRate->setServiceName($rate->getServiceName());
         $newRate->setClassName($rate->getClassName());
         $newRate->setProviderName($rate->getProviderName());
         $newRate->setServiceId($rate->getClassName() . '_' . $k);
         $rates->add($newRate);
     }
     return $rates;
 }
Exemple #3
0
 function uninstall($_ModuleConfigID = 0)
 {
     ShippingRateCalculator::uninstall($_ModuleConfigID);
     if (!count(modGetModuleConfigs(get_class($this)))) {
         //drop shipping rates table
         $sql = '
                             DROP TABLE IF EXISTS ' . CourierShippingModule2::_getDBName() . '
                     ';
     } else {
         $sql = '
                             DELETE FROM ' . CourierShippingModule2::_getDBName() . ' WHERE module_id="' . $_ModuleConfigID . '"
                     ';
     }
     db_query($sql);
 }
Exemple #4
0
 function install()
 {
     $this->SettingsFields['CONF_SHIPPING_MODULE_FIXEDRATE_SHIPPINGRATE'] = array('settings_value' => '10', 'settings_title' => CSHIPPINGMODULEFIXED_CONF_SHIPPINGRATE_TITLE, 'settings_description' => CSHIPPINGMODULEFIXED_CONF_SHIPPINGRATE_DESCR, 'settings_html_function' => 'setting_TEXT_BOX(1,', 'sort_order' => 2);
     ShippingRateCalculator::install();
 }
 function uninstall($_ModuleConfigID = 0)
 {
     ShippingRateCalculator::uninstall($_ModuleConfigID);
     if (!count(modGetModuleConfigs(get_class($this)))) {
         //drop shipping rates table
         db_query('DROP TABLE IF EXISTS ' . CSHIPPINGMODULEBYCOUNTRYBYZONEPERCENT_TABLE);
     } else {
         $sql = '
                             DELETE FROM ' . CSHIPPINGMODULEBYCOUNTRYBYZONEPERCENT_TABLE . ' WHERE module_id="' . $this->ModuleConfigID . '"
                     ';
     }
 }
 function install()
 {
     $this->SettingsFields['CONF_SHIPPING_MODULE_FIXEDRATEXORPERCENT_FIXEDRATE'] = array('settings_value' => '0', 'settings_title' => CSHIPPINGMODULEFIXEDXORPERCENT_CONF_FIXEDRATE_TTL, 'settings_description' => CSHIPPINGMODULEFIXEDXORPERCENT_CONF_FIXEDRATE_DSCR, 'settings_html_function' => 'setting_TEXT_BOX(1,', 'sort_order' => 2);
     $this->SettingsFields['CONF_SHIPPING_MODULE_FIXEDRATEXORPERCENT_PERCENT'] = array('settings_value' => '0', 'settings_title' => CSHIPPINGMODULEFIXEDXORPERCENT_CONF_PERCENT_TTL, 'settings_description' => CSHIPPINGMODULEFIXEDXORPERCENT_CONF_PERCENT_DSCR, 'settings_html_function' => 'setting_TEXT_BOX(1,', 'sort_order' => 2);
     ShippingRateCalculator::install();
 }