Exemple #1
0
 private function createCarriers()
 {
     $history_table = SeurLib::getLastSeurCarriers();
     if (empty($history_table) == false) {
         return $this->updateCarriers($history_table);
     }
     $carriers = array(array('name' => 'SEUR', 'active' => 1, 'type' => 'SEN', 'delay' => array('es' => 'Envío Urgente', 'fr' => 'Livraison Express', 'default' => 'Express Delivery')), array('name' => 'SEUR Puntos de Venta', 'active' => 0, 'type' => 'SEP', 'delay' => array('es' => 'Recogida en punto de venta', 'fr' => 'Retrait au point de venta', 'default' => 'Point of sale pickup')), array('name' => 'SEUR Canarias (M)', 'active' => 1, 'type' => 'SCN', 'delay' => array('es' => 'Envío a Islas Canarias', 'fr' => 'Livraison a Canary Islands', 'default' => 'Delivery to Canary Islands')), array('name' => 'SEUR Canarias (48/72)', 'active' => 1, 'type' => 'SCE', 'delay' => array('es' => 'Envío Urgente a Islas Canarias', 'fr' => 'Livraison Express a Canary Islands', 'default' => 'Express Delivery to Canary Islands')));
     foreach ($carriers as &$values) {
         $carrier = new Carrier();
         $carrier->name = $values['name'];
         $carrier->id_tax_rules_group = 1;
         $carrier->need_range = true;
         $carrier->is_module = true;
         $carrier->external_module_name = $this->name;
         $carrier->url = 'http://www.seur.com';
         $carrier->active = $values['active'];
         $languages = Language::getLanguages();
         foreach ($languages as $language) {
             if (isset($values['delay'][$language['iso_code']])) {
                 $carrier->delay[(int) $language['id_lang']] = $values['delay'][$language['iso_code']];
             } else {
                 $carrier->delay[(int) $language['id_lang']] = $values['delay']['default'];
             }
         }
         if ($carrier->save() == false) {
             return false;
         }
         $values['id'] = (int) $carrier->id;
         @copy(dirname(__FILE__) . '/img/logoSEUR.jpg', _PS_SHIP_IMG_DIR_ . (int) $carrier->id . '.jpg');
         $groups = array();
         foreach (Group::getGroups((int) Context::getContext()->language->id) as $group) {
             $groups[] = (int) $group['id_group'];
         }
         if (version_compare(_PS_VERSION_, '1.5', '<')) {
             if (!$this->setGroups14((int) $carrier->id, $groups)) {
                 return false;
             }
         } else {
             if (!$carrier->setGroups($groups)) {
                 return false;
             }
         }
     }
     SeurLib::updateSeurCarriers($carriers);
     return true;
 }
Exemple #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;
 }