Ejemplo n.º 1
0
 public function hookUpdateCarrier($params)
 {
     $id_reference = (int) DpdGroupCarrier::getReferenceByIdCarrier((int) $params['id_carrier']);
     $id_carrier = (int) $params['carrier']->id;
     $dpdgroup_carrier = new DpdGroupCarrier();
     $dpdgroup_carrier->id_carrier = (int) $id_carrier;
     $dpdgroup_carrier->id_reference = (int) $id_reference;
     $dpdgroup_carrier->save();
 }
Ejemplo n.º 2
0
 public static function install($carrier_type, $carrier_name)
 {
     $id_carrier = (int) Configuration::get($carrier_type);
     if (version_compare(_PS_VERSION_, '1.5', '<')) {
         $id_carrier = (int) DpdGroupCarrier::getIdCarrierByReference((int) $id_carrier);
         $carrier = new Carrier((int) $id_carrier);
     } else {
         $carrier = Carrier::getCarrierByReference($id_carrier);
     }
     if ($id_carrier && Validate::isLoadedObject($carrier)) {
         if (!$carrier->deleted) {
             return true;
         } else {
             $carrier->deleted = 0;
             return (bool) $carrier->save();
         }
     }
     $service = new DpdGroupService();
     $carrier = new Carrier();
     $carrier->name = $carrier_name;
     $carrier->active = 1;
     $carrier->is_free = 0;
     $carrier->shipping_handling = 1;
     $carrier->shipping_external = 1;
     $carrier->shipping_method = 1;
     $carrier->max_width = 0;
     $carrier->max_height = 0;
     $carrier->max_weight = 0;
     $carrier->grade = 0;
     $carrier->is_module = 1;
     $carrier->need_range = 1;
     $carrier->range_behavior = 1;
     $carrier->external_module_name = $service->module_instance->name;
     $carrier->url = _DPDGROUP_TRACKING_URL_;
     $delay = array();
     foreach (Language::getLanguages(false) as $language) {
         $delay[$language['id_lang']] = $carrier_name;
     }
     $carrier->delay = $delay;
     if (!$carrier->save()) {
         return false;
     }
     $dpdgroup_carrier = new DpdGroupCarrier();
     $dpdgroup_carrier->id_carrier = (int) $carrier->id;
     $dpdgroup_carrier->id_reference = (int) $carrier->id;
     if (!$dpdgroup_carrier->save()) {
         return false;
     }
     foreach ($service->continents as $continent => $value) {
         if ($value && !$carrier->addZone($continent)) {
             return false;
         }
     }
     $groups = array();
     foreach (Group::getGroups((int) Context::getContext()->language->id) as $group) {
         $groups[] = $group['id_group'];
     }
     if (version_compare(_PS_VERSION_, '1.5.5', '<')) {
         if (!self::setGroups14((int) $carrier->id, $groups)) {
             return false;
         }
     } else {
         if (!$carrier->setGroups($groups)) {
             return false;
         }
     }
     if (!Configuration::updateValue($carrier_type, (int) $carrier->id)) {
         return false;
     }
     return true;
 }