Merge branch 'ticket/r13031-colissimo-webservice' into dev

This commit is contained in:
Michael RICOIS 2017-09-27 14:49:36 +02:00
commit 731db1fe28
212 changed files with 16494 additions and 9 deletions

View File

@ -74,14 +74,16 @@
};
// Handle input click of the other input to hide the previous relay point list displayed
$('input[name=id_carrier], input.delivery_option_radio').click(function(e){
if ( e.isPropagationStopped() ) {
return false;
// Only make action on carrier ID 236
if ($(this).data('key') == '236,') {
if ( e.isPropagationStopped() ) {
return false;
}
refreshDeliveryOptions();
overrideUpdateExtraCarrier($(this).val(), id_address);
hideRelaySelectedBox($(this));
e.stopPropagation();
}
// refreshDeliveryOptions();
overrideUpdateExtraCarrier($(this).val(), id_address);
hideRelaySelectedBox($(this));
e.stopPropagation();
});
// 1.5 OPC Validation - Warn user to select a relay point

View File

@ -24,8 +24,8 @@
* International Registered Trademark & Property of PrestaShop SA
*}
<!--On charge Google Map API-->
<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?sensor=false"></script>
<!--On charge le widget mondial relay depuis leurs serveurs-->
<!-- <script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?sensor=false"></script> -->
<!--On charge le widget mondial relay depuis leurs serveurs-->
<script type="text/javascript" src="{$new_base_dir|escape:'htmlall':'UTF-8'}js/jquery.plugin.mondialrelay.parcelshoppicker.2.0.0.js"></script>
<script type="text/javascript" src="{$new_base_dir|escape:'htmlall':'UTF-8'}js/mondialrelay_widget.js"></script>

View File

@ -0,0 +1,212 @@
NOTICE OF LICENSE
This source file is subject to a commercial license from Common-Services Co., Ltd.
Use, copy, modification or distribution of this source file without written
license agreement from the SARL SMC is strictly forbidden.
In order to obtain a license, please contact us: contact@common-services.com
INFORMATION SUR LA LICENCE D'UTILISATION
L'utilisation de ce fichier source est soumise a une licence commerciale concedee par la societe Common-Services Co., Ltd.
Toute utilisation, reproduction, modification ou distribution du present fichier source sans contrat de licence ecrit de la part de la
Common-Services Co. Ltd. est expressement interdite.
Pour obtenir une licence, veuillez contacter Common-Services Co., Ltd. a l'adresse: contact@common-services.com
@package So Colissimo Flexibilite
@copyright Copyright (c) 2011-2015 Common Services Co Ltd - 90/25 Sukhumvit 81 - 10260 Bangkok - Thailand
@author Alexandre D.
@license Commercial license
-----------------------------------------------------------------------------------------------------------------------------------------------------
####################################
# v3.1.09 - (2016-09-06)
####################################
Fixed bugs:
[*] FIX : "Denied Access" on PrestaShop 1.4.5.1
[*] FIX : Google Maps address search sometimes did not get a part of the address required by Colissimo Web Service
Improved/changed features:
[*] CORE : Clean up deprecated/unused code
[*] BO : Hide password then added button to display or hide it
[*] FO : Carriers texts and descriptions compliant with Colissimo recommendations
####################################
# v3.1.08 - (2016-08-01)
####################################
Fixed bugs:
[*] FIX : Added code reseau in SoFlexibiliteWebService::getRelayStatic() to get foreign pickup informations (before was null)
Improved/changed features:
[*] CORE : Linked orders are now dealt, previously the entry in `socolissimo_delivery_info` was deleted because one of the order was not made with Colissimo
[*] CORE : Added Google Map API Key field in module configuration (@see http://googlegeodevelopers.blogspot.de/2016/06/building-for-scale-updates-to-google.html)
[*] BO : N/A
[*] FO : Carrier description (Carrier::delay) is different when delivery is not in FR or BE to match Colissimo requirement
####################################
# v3.1.07 - (2016-06-**)
####################################
Fixed bugs:
[*] FIX : Bug on Firefox with phone number, it was impossible to erase it
[*] FIX : Wrong ID_CUSTOMER in order sheet when change phone number
[*] FIX : Google Maps problem in PS1.5 on hookDisplayBackOfficeFooter()
[*] FIX : Problem with Google Maps Places Autocomplete in front-office
[*] FIX : Updated phone number size to 15 for tier table in DB
[*] FIX : Updated postcode size to 8 for tier table in DB
[*] FIX : Phone number checking for Europe delivery
Improved/changed features:
[*] CORE : File structure updated to be compliant with PrestaShop recommandations
[*] BO : N/A
[*] FO : N/A
####################################
# v3.1.06 - (2016-05-25)
####################################
Fixed bugs:
[*] FIX : Delivery address set to invoice address when delivery was at home
Improved/changed features:
[*] CORE : Code optimizations for Europe delivery (PHP and JS)
[*] FO : CSS fix for PS 1.4
####################################
# v3.1.06 - (2016-04-16)
####################################
Fixed bugs:
[*] FIX : N/A
Improved/changed features:
[*] CORE : Updated minimum required `max_execution_time` is now 30s, no more 60s
[*] CORE : Debug mode added
[*] CORE : Code reorganised
[*] CORE : Full implementation of Colissimo Europe API (will be available soon, only test client for now)
[*] BO : It is now possible to select a delivery point when you create an order from the back-office (only available on PS 1.6)
[*] FO : Fix CSS bug under 700px width if only map is enabled
####################################
# v3.1.05 - (2016-03-28)
####################################
Fixed bugs:
[*] FIX : Display error with deliveries at home in Order sheet
Improved/changed features:
[*] CORE : N/A
[*] BO : N/A
####################################
# v3.1.04 - (2016-03-21)
####################################
Fixed bugs:
[*] FIX : Bug with table `cart_product` and `customization` on PS 1.4
[*] FIX : Bug with delivery point not found if address is in Belgium
[*] FIX : Country ISO code when customer create an account on the order page
Improved/changed features:
[*] CORE : N/A
[*] BO : It is now possible to change the relay on the order sheet, a Google Map is displayed and merchant selects the relay
[*] BO : It is now possible to change the phone number on the order sheet
[*] BO : It is now possible to automatically set the carriers' delivery price for each country, a documentation is given to properly set it
[*] FO : N/A
####################################
# v3.1.03 - (2016-02-16)
####################################
Fixed bugs:
[*] FIX : add field `cecountry` in table `socolissimo_delivery_info` if it does not exist
[*] FIX : variable containing table name in SoFlexibiliteDelivery.php
[*] FIX : id_country while creating address
Improved/changed features:
[*] CORE : N/A
[*] BO : N/A
[*] FO : N/A
####################################
# v3.1.02 - (2016-02-10)
####################################
Fixed bugs:
[*] FIX : Customer phone on FO
Improved/changed features:
[*] CORE : New SoFlexibiliteDelivery class (SoFlexibiliteDelivery.php)
[*] CORE : Removed file SoColissimo.class.php
[*] BO : Admin order now uses same template from PS 1.4 to PS 1.6
[*] BO : Admin order template updated and placed under "Delivery" section
[*] FO : CSS in front-office
[*] FO : Screen display < 700px, clic on relay div now select the point
####################################
# v3.1.01 - (2016-01-05)
####################################
Fixed bugs:
[*] FIX : Colissimo sumup in order sheet
Improved/changed features:
[*] BO : N/A
####################################
# v3.1.0 - (2016-01-05)
####################################
Fixed bugs:
[*] FIX : Updated to use the new Coliposte Web Service
[*] FIX : Compliant for new Colissimo API
Improved/changed features:
[*] BO : Add Google Maps design option
[*] BO : Configuration now uses same JS and CSS from PS 1.4 to PS 1.6
[*] BO : Possible to lower the So Colissimo Flexibilité bloc in the order page
[*] FO : Order page now uses same JS and CSS from PS 1.4 to PS 1.6
[*] FO : Design compliant with new Colissimo branding

View File

@ -0,0 +1,83 @@
# So Colissimo Flexibilité
## A propos
So Colissimo Flexibilité - Module Officiel recommandé par Coliposte permet d'offrir une page conviviale de sélection de modes de transports sans altérer son tunnel de conversion.
## Les "+" pour vous
SoColissimo Flexibilité permet à vos clients de se faire livrer via le Web Service SoColissimo Flexibilité de La Poste.
L'option Flexibilité se différencie de l'option simplicité par le fait qu'il n'y ait pas de page interstitielle tel que sur l'offre Simplicité.
Le module So Colissimo Flexibilité version 2 est multitarif, il offre la possibilité de définir un tarif par méthode de livraison (Domicile, Rendez Vous, Point de Retrait etc..).
Grâce au thème mobile du module vous ne ratez plus de ventes à cause d'un mauvais support sur appareil mobile. Un autre point fort du module est qu'il rentre parfaitement dans les dimensions de la page PrestaShop.
Le support est gratuit et garanti jusqu'à la mise en ligne service complète du module ce qui vous confère sécurité et paisibilité.
__Le module Flexibilité est l'alternative professionnnelle du module gratuit utilisé pour les sites de faible envergure.
Le module Flexibilité a été audité et validé par Coliposte.__
Ce module a été développé par Common-Services, agence partenaire Prestashop, présente sur Prestashop Addons depuis 2010 et qui édite également 15 autres modules best-seller commercialisés uniquement sur Prestashop Addons.
## Fonctionnalités
Ce service offert par la Poste vous permet d'offrir à vos clients 5 méthodes de livraison :
* A domicile
* Dans un Espace Cityssimo
* Dans un Bureau de Poste
* Dans un Commerce du Réseau SoColissimo
* A Domicile, sur rendez-vous (Paris uniquement)
__Fonctionnement :__
Le module SoColissimo Flexibilité pour Prestashop est basé sur l'offre SoColissimo Flexibilité du groupe Coliposte.
Deux offres existent Liberté et Flexibilité, cette dernière et la dernière version de Coliposte et évite les mises à jour régulière, le principe du module étant d'obtenir les données par un WebService (SOAP/XML).
L'option Flexibilité se différencie avec l'option simplicité par le fait qu'il n'y ai pas de page externe au site (Pas de page sandwich ou page interstitielle), la transaction est réalisée via le Web Service Flexibilité de Coliposte.
La différence avec le module Liberté est que ce module ne nécessite pas d'import de fichiers, il affiche une liste de point de retrait obtenue depuis le web/service de Coliposte.
__Compatibilité :__
- SoColissimo Flexibilité version 2 est compatible de Prestashop de 1.3 à 1.4 avec ou sans OPC (OnePageCheckout)
- SoColissimo Flexibilité version 2 est compatible de Prestashop à partir de la version 1.5 et Prestashop 1.6 avec ou sans OPC (OnePageCheckout) et sur mobile.
- Compatible avec toutes les solutions Expéditor Inet du marché.
- Compatible avec la suite backoffice "SoNice" disponible sur Prestashop Addons
- Le support technique est gratuit et garanti jusqu'à la mise en production du module
__Thèmes & Interfaces :__
* Support du thème Prestashop
* Support des thèmes Responsive
* Support du thème Mobile de Prestashop
* Support de OPC, OPC Mobile
__Démonstration:__
http://flexibilite.prestashop150.common-services.com/
Note : Vous devez avoir souscrit un contrat professionnel auprès de Coliposte pour accéder à ce service
## Les "+" pour vos clients
Proposer à vos client une interface simple, claire et conviviale :
* Une grande carte Google Maps avec les points de retrait les plus proches de vos clients
* Options de filtrage des points de retrait
* Information sur les points de retrait (horaires, fermetures, distance du domicile)
* Itinéraire du domicile jusqu'au point de retrait, en voiture ou à pied
* Navigation virtuelle dans la rue du point de retrait grâce au mode StreetView de Google
* Rechercher les points de retrait à proximité d'une adresse
* Une charte graphique neutre, adaptée à toutes les boutiques et personnalisable
* Livraison en Belgique
* Support Multi-Tarif : Une tarification différente par méthode de livraison, livraison gratuite possible, règles panier applicables
* Assurance Ad Valorem (optionnel, configurable dans le module)
* Remise avec ou Sans Signature en Front Office (optionnel, configurable dans le module)
__NB: Ce module s'adresse aux marchands disposant d'un numéro SIRET.__
### Requirements
- Vous devez avoir souscrit un contrat professionnel (option Flexibilité) auprès de la Poste pour accéder à ce service ou demander une simple modification de celui ci si vous êtes sous "Simplicité"
- Nous recommandons vivement l'utilisation d'un hébergement recommandé par Prestashop pour un fonctionnement optimal du module. Le choix d'un tel hébergement vous garanti le bon fonctionnement du module et un support optimal en cas de nécessité.

View File

@ -0,0 +1,347 @@
<?php
/*
* 2007-2014 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Open Software License (OSL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/osl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2014 PrestaShop SA
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
if ((bool)Configuration::get('PS_MOBILE_DEVICE'))
require_once(_PS_MODULE_DIR_ . '/mobile_theme/Mobile_Detect.php');
// Retro 1.3, 'class_exists' cause problem with autoload...
if (version_compare(_PS_VERSION_, '1.4', '<'))
{
// Not exist for 1.3
class Shop extends ObjectModel
{
public $id = 1;
public $id_shop_group = 1;
public function __construct()
{
}
public static function getShops()
{
return array(
array('id_shop' => 1, 'name' => 'Default shop')
);
}
public static function getCurrentShop()
{
return 1;
}
}
class Logger
{
public static function AddLog($message, $severity = 2)
{
$fp = fopen(dirname(__FILE__).'/../logs.txt', 'a+');
fwrite($fp, '['.(int)$severity.'] '.Tools::safeOutput($message));
fclose($fp);
}
}
}
// Not exist for 1.3 and 1.4
class Context
{
/**
* @var Context
*/
protected static $instance;
/**
* @var Cart
*/
public $cart;
/**
* @var Customer
*/
public $customer;
/**
* @var Cookie
*/
public $cookie;
/**
* @var Link
*/
public $link;
/**
* @var Country
*/
public $country;
/**
* @var Employee
*/
public $employee;
/**
* @var Controller
*/
public $controller;
/**
* @var Language
*/
public $language;
/**
* @var Currency
*/
public $currency;
/**
* @var AdminTab
*/
public $tab;
/**
* @var Shop
*/
public $shop;
/**
* @var Smarty
*/
public $smarty;
/**
* @ var Mobile Detect
*/
public $mobile_detect;
/**
* @var boolean|string mobile device of the customer
*/
protected $mobile_device;
public function __construct()
{
global $cookie, $cart, $smarty, $link;
$this->tab = null;
$this->cookie = $cookie;
$this->cart = $cart;
$this->smarty = $smarty;
$this->link = $link;
$this->controller = new ControllerBackwardModule();
if (is_object($cookie))
{
$this->currency = new Currency((int)$cookie->id_currency);
$this->language = new Language((int)$cookie->id_lang);
$this->country = new Country((int)$cookie->id_country);
$this->customer = new CustomerBackwardModule((int)$cookie->id_customer);
$this->employee = new Employee((int)$cookie->id_employee);
}
else
{
$this->currency = null;
$this->language = null;
$this->country = null;
$this->customer = null;
$this->employee = null;
}
$this->shop = new ShopBackwardModule();
if ((bool)Configuration::get('PS_MOBILE_DEVICE'))
$this->mobile_detect = new Mobile_Detect();
}
public function getMobileDevice()
{
if (is_null($this->mobile_device))
{
$this->mobile_device = false;
if ($this->checkMobileContext())
{
switch ((int)Configuration::get('PS_MOBILE_DEVICE'))
{
case 0: // Only for mobile device
if ($this->mobile_detect->isMobile() && !$this->mobile_detect->isTablet())
$this->mobile_device = true;
break;
case 1: // Only for touchpads
if ($this->mobile_detect->isTablet() && !$this->mobile_detect->isMobile())
$this->mobile_device = true;
break;
case 2: // For touchpad or mobile devices
if ($this->mobile_detect->isMobile() || $this->mobile_detect->isTablet())
$this->mobile_device = true;
break;
}
}
}
return $this->mobile_device;
}
protected function checkMobileContext()
{
return isset($_SERVER['HTTP_USER_AGENT'])
&& (bool)Configuration::get('PS_MOBILE_DEVICE')
&& !Context::getContext()->cookie->no_mobile;
}
/**
* Get a singleton context
*
* @return Context
*/
public static function getContext()
{
if (!isset(self::$instance))
self::$instance = new Context();
return self::$instance;
}
/**
* Clone current context
*
* @return Context
*/
public function cloneContext()
{
return clone($this);
}
/**
* @return int Shop context type (Shop::CONTEXT_ALL, etc.)
*/
public static function shop()
{
if (!self::$instance->shop->getContextType())
return ShopBackwardModule::CONTEXT_ALL;
return self::$instance->shop->getContextType();
}
}
/**
* Class Shop for Backward compatibility
*/
class ShopBackwardModule extends Shop
{
const CONTEXT_ALL = 1;
public $id = 1;
public $id_shop_group = 1;
public function getContextType()
{
return ShopBackwardModule::CONTEXT_ALL;
}
// Simulate shop for 1.3 / 1.4
public function getID()
{
return 1;
}
/**
* Get shop theme name
*
* @return string
*/
public function getTheme()
{
return _THEME_NAME_;
}
public function isFeatureActive()
{
return false;
}
}
/**
* Class Controller for a Backward compatibility
* Allow to use method declared in 1.5
*/
class ControllerBackwardModule
{
/**
* @param $js_uri
* @return void
*/
public function addJS($js_uri)
{
Tools::addJS($js_uri);
}
/**
* @param $css_uri
* @param string $css_media_type
* @return void
*/
public function addCSS($css_uri, $css_media_type = 'all')
{
Tools::addCSS($css_uri, $css_media_type);
}
public function addJquery()
{
if (_PS_VERSION_ < '1.5')
$this->addJS(_PS_JS_DIR_.'jquery/jquery-1.4.4.min.js');
elseif (_PS_VERSION_ >= '1.5')
$this->addJS(_PS_JS_DIR_.'jquery/jquery-1.7.2.min.js');
}
}
/**
* Class Customer for a Backward compatibility
* Allow to use method declared in 1.5
*/
class CustomerBackwardModule extends Customer
{
public $logged = false;
/**
* Check customer informations and return customer validity
*
* @since 1.5.0
* @param boolean $with_guest
* @return boolean customer validity
*/
public function isLogged($with_guest = false)
{
if (!$with_guest && $this->is_guest == 1)
return false;
/* Customer is valid only if it can be load and if object password is the same as database one */
if ($this->logged == 1 && $this->id && Validate::isUnsignedId($this->id) && Customer::checkPassword($this->id, $this->passwd))
return true;
return false;
}
}

View File

@ -0,0 +1,48 @@
<?php
/*
* 2007-2014 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Open Software License (OSL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/osl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2014 PrestaShop SA
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
/**
* Class allow to display tpl on the FO
*/
class BWDisplay extends FrontController
{
// Assign template, on 1.4 create it else assign for 1.5
public function setTemplate($template)
{
if (_PS_VERSION_ >= '1.5')
parent::setTemplate($template);
else
$this->template = $template;
}
// Overload displayContent for 1.4
public function displayContent()
{
parent::displayContent();
echo Context::getContext()->smarty->fetch($this->template);
}
}

View File

@ -0,0 +1 @@
version = 0.4

View File

@ -0,0 +1,55 @@
<?php
/*
* 2007-2014 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Open Software License (OSL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/osl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2014 PrestaShop SA
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
/**
* Backward function compatibility
* Need to be called for each module in 1.4
*/
// Get out if the context is already defined
if (!in_array('Context', get_declared_classes()))
require_once(dirname(__FILE__).'/Context.php');
// Get out if the Display (BWDisplay to avoid any conflict)) is already defined
if (!in_array('BWDisplay', get_declared_classes()))
require_once(dirname(__FILE__).'/Display.php');
// If not under an object we don't have to set the context
if (!isset($this))
return;
else if (isset($this->context))
{
// If we are under an 1.5 version and backoffice, we have to set some backward variable
if (_PS_VERSION_ >= '1.5' && isset($this->context->employee->id) && $this->context->employee->id && isset(AdminController::$currentIndex) && !empty(AdminController::$currentIndex))
{
global $currentIndex;
$currentIndex = AdminController::$currentIndex;
}
return;
}
$this->context = Context::getContext();
$this->smarty = $this->context->smarty;

View File

@ -0,0 +1,35 @@
<?php
/*
* 2007-2014 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Open Software License (OSL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/osl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2014 PrestaShop SA
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
header("Location: ../");
exit;

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,11 @@
<?php
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
header("Location: ../");
exit;

View File

@ -0,0 +1,207 @@
<?php
/**
* NOTICE OF LICENSE
*
* This source file is subject to a commercial license from Common-Services Co., Ltd.
* Use, copy, modification or distribution of this source file without written
* license agreement from the SARL SMC is strictly forbidden.
* In order to obtain a license, please contact us: contact@common-services.com
* ...........................................................................
* INFORMATION SUR LA LICENCE D'UTILISATION
*
* L'utilisation de ce fichier source est soumise a une licence commerciale
* concedee par la societe Common-Services Co., Ltd.
* Toute utilisation, reproduction, modification ou distribution du present
* fichier source sans contrat de licence ecrit de la part de la Common-Services Co. Ltd. est
* expressement interdite.
* Pour obtenir une licence, veuillez contacter Common-Services Co., Ltd. a l'adresse: contact@common-services.com
* ...........................................................................
*
* @package soflexibilite
* @author Alexandre D.
* @copyright Copyright (c) 2011-2015 Common Services Co Ltd - 90/25 Sukhumvit 81 - 10260 Bangkok - Thailand
* @license Commercial license
* Support by mail : support.soflexibilite@common-services.com
*/
class SoFlexibiliteCarrier extends Carrier
{
const TEXT_DOM = 'Colissimo Domicile - sans signature';
const TEXT_DOS = 'Colissimo Domicile - avec signature';
const TEXT_BPR = 'Colissimo - &Agrave; La Poste';
const TEXT_A2P = 'Colissimo - En relais PickUp ou en consigne PickUp Station';
public $mode;
protected static $carrier_config = array(
'name' => '',
'id_tax' => 1,
'id_tax_rules_group' => 1,
'url' => 'http://www.colissimo.fr/portail_colissimo/suivreResultat.do?parcelnumber=@',
'active' => true,
'deleted' => 0,
'shipping_handling' => false,
'range_behavior' => 0,
'is_module' => false,
'id_zone' => 1,
'shipping_external' => true,
'external_module_name' => 'soflexibilite',
'need_range' => true
);
public function __construct($id = null, $id_lang = null)
{
parent::__construct($id, $id_lang);
}
public function add($autodate = true, $null_values = false)
{
if (parent::add($autodate, $null_values)) {
if (version_compare(_PS_VERSION_, '1.5', '>=') && Feature::isFeatureActive()) {
Configuration::updateGlobalValue('SOFLEXIBILITE_'.$this->mode.'_ID', (int)$this->id, false);
} else {
Configuration::updateValue('SOFLEXIBILITE_'.$this->mode.'_ID', (int)$this->id);
}
return true;
}
return false;
}
public function setColissimoConfiguration($active)
{
foreach (self::$carrier_config as $k => $v) {
$this->{$k} = $v;
}
$this->name .= $this->getNameExtension();
$this->active = (int)$active;
$this->setColissimoDelay();
}
private function setColissimoDelay()
{
foreach (Language::getLanguages(false) as $language) {
if ($language['iso_code'] == 'fr') {
switch ($this->mode) {
case 'DOM':
case 'DOS':
$this->delay[$language['id_lang']] = 'Faites vous livrer à une adresse de votre choix, '.
($this->mode === 'DOM' ? 'sans' : 'avec').' signature';
break;
case 'BPR':
$this->delay[$language['id_lang']] = 'Faites vous livrer dans un des bureaux de poste parmi '.
'10 000 points de retrait partout en France';
break;
case 'A2P':
$this->delay[$language['id_lang']] = 'Faites vous livrer dans un des relais pickup ou '.
'consignes Pickup Station parmi 8 000 points de retrait partout en France';
break;
default:
$this->delay[$language['id_lang']] = 'Faites vous livrer en France selon votre choix';
break;
}
} else {
switch ($this->mode) {
case 'DOM':
case 'DOS':
$this->delay[$language['id_lang']] = 'Get delivered at home, in France '.
($this->mode === 'DOM' ? 'with' : 'without').' signature';
break;
case 'BPR':
$this->delay[$language['id_lang']] = 'Get delivered among one of our 10 000 post-offices '.
'everywhere in France';
break;
case 'A2P':
$this->delay[$language['id_lang']] = 'Get delivered in one of our relay pickup or '.
'Pickup Station among 8 000 relay everywhere in France';
break;
default:
$this->delay[$language['id_lang']] = 'Get delivered in France according to your choice';
break;
}
}
}
}
private function getNameExtension()
{
$name_extension = null;
switch ($this->mode) {
case 'DOM':
$name_extension = self::TEXT_DOM;
break;
case 'DOS':
$name_extension = self::TEXT_DOS;
break;
case 'BPR':
$name_extension = self::TEXT_BPR;
break;
case 'A2P':
$name_extension = self::TEXT_A2P;
break;
}
return html_entity_decode($name_extension, ENT_COMPAT, 'UTF-8');
}
public static function getSoColissimoCarriers(Context $context)
{
$ps15x = version_compare(_PS_VERSION_, '1.5', '>=');
$sql = 'SELECT c.*, cl.delay
FROM `'._DB_PREFIX_.'carrier` c
LEFT JOIN `'._DB_PREFIX_.'carrier_lang` cl ON (
c.`id_carrier` = cl.`id_carrier` AND cl.`id_lang` = '.(int)$context->language->id.'
)
WHERE c.`deleted` = 0
AND c.`external_module_name` = "soflexibilite"
GROUP BY c.`id_carrier`';
if ($ps15x) {
$sql .= '
ORDER BY c.`position` ASC';
}
$carriers = Db::getInstance()->executeS($sql);
if (!is_array($carriers)) {
$carriers = array();
ConfigureMessage::error(
'Beware : you do not have any So Colissimo carrier linked to this module. '.
'A new install or reset is necessary.'
);
} else {
foreach (array_keys($carriers) as $key) {
$carriers[$key]['logo'] = __PS_BASE_URI__.'img/s/'.(int)$carriers[$key]['id_carrier'].'.jpg';
if (version_compare(_PS_VERSION_, '1.5.4.1', '>')) {
$carriers[$key]['conf_url'] = '?controller=AdminCarrierWizard&token='.
Tools::getAdminToken(
'AdminCarrierWizard'.(int)Tab::getIdFromClassName('AdminCarrierWizard').
(int)$context->employee->id
).'&id_carrier='.(int)$carriers[$key]['id_carrier'];
} elseif ($ps15x) {
$carriers[$key]['conf_url'] = '?controller=AdminCarriers&id_carrier='.
(int)$carriers[$key]['id_carrier'].'&updatecarrier&token='.
Tools::getAdminToken(
'AdminCarriers'.(int)Tab::getIdFromClassName('AdminCarriers').
(int)$context->employee->id
);
} else {
$carriers[$key]['conf_url'] = '?tab=AdminCarriers&id_carrier='.(int)$carriers[$key]['id_carrier'].
'&updatecarrier&token='.Tools::getAdminToken(
'AdminCarriers'.(int)Tab::getIdFromClassName('AdminCarriers').
(int)$context->employee->id
);
}
}
}
return ($carriers);
}
}

View File

@ -0,0 +1,94 @@
<?php
/**
* NOTICE OF LICENSE
*
* This source file is subject to a commercial license from Common-Services Co., Ltd.
* Use, copy, modification or distribution of this source file without written
* license agreement from the SARL SMC is strictly forbidden.
* In order to obtain a license, please contact us: contact@common-services.com
* ...........................................................................
* INFORMATION SUR LA LICENCE D'UTILISATION
*
* L'utilisation de ce fichier source est soumise a une licence commerciale
* concedee par la societe Common-Services Co., Ltd.
* Toute utilisation, reproduction, modification ou distribution du present
* fichier source sans contrat de licence ecrit de la part de la Common-Services Co. Ltd. est
* expressement interdite.
* Pour obtenir une licence, veuillez contacter Common-Services Co., Ltd. a l'adresse: contact@common-services.com
* ...........................................................................
*
* @package soflexibilite
* @author Alexandre D.
* @copyright Copyright (c) 2011-2015 Common Services Co Ltd - 90/25 Sukhumvit 81 - 10260 Bangkok - Thailand
* @license Commercial license
* Support by mail : support.soflexibilite@common-services.com
*/
class SoFlexibiliteCarrierFeeChecker
{
const DEFAULT_INTERVAL = 3;
/**
* @param int $id_cart
* @param int $id_customer
* @param string $iso_code
* @return bool
*/
public static function set($id_cart, $id_customer, $iso_code)
{
return (bool)Db::getInstance()->execute(
'REPLACE INTO `'._DB_PREFIX_.'soflexibilite_carrier_fee_check` (
`id_cart`,
`id_customer`,
`iso_code`
)
VALUES (
'.(int)$id_cart.',
'.(int)$id_customer.',
"'.pSQL($iso_code).'"
)'
);
}
/**
* Compare current timestamp with relay selection timestamp.
*
* If interval is less than self::DEFAULT_INTERVAL then return true, false otherwise.
* When true is returned then SoFlexibilite::getOrderShippingCost() must return the delivery price
* for the selected country.
*
* @param int $id_cart
* @param int $id_customer
* @return bool
*/
public static function check($id_cart, $id_customer)
{
try {
$current_timestamp = time();
$last_timestamp = (int)Db::getInstance()->getValue(
'SELECT UNIX_TIMESTAMP(`timestamp`)
FROM `'._DB_PREFIX_.'soflexibilite_carrier_fee_check`
WHERE `id_cart` = '.(int)$id_cart.'
AND `id_customer` = '.(int)$id_customer
);
} catch (Exception $excp) {
return false;
}
return ($current_timestamp - $last_timestamp) < self::DEFAULT_INTERVAL;
}
public static function getIdZone($id_cart, $id_customer)
{
$iso_code = Db::getInstance()->getValue(
'SELECT `iso_code`
FROM `'._DB_PREFIX_.'soflexibilite_carrier_fee_check`
WHERE `id_cart` = '.(int)$id_cart.'
AND `id_customer` = '.(int)$id_customer
);
return Country::getIdZone((int)Country::getByIso($iso_code));
}
}

View File

@ -0,0 +1,700 @@
<?php
/**
* NOTICE OF LICENSE
*
* This source file is subject to a commercial license from Common-Services Co., Ltd.
* Use, copy, modification or distribution of this source file without written
* license agreement from the SARL SMC is strictly forbidden.
* In order to obtain a license, please contact us: contact@common-services.com
* ...........................................................................
* INFORMATION SUR LA LICENCE D'UTILISATION
*
* L'utilisation de ce fichier source est soumise a une licence commerciale
* concedee par la societe Common-Services Co., Ltd.
* Toute utilisation, reproduction, modification ou distribution du present
* fichier source sans contrat de licence ecrit de la part de la Common-Services Co. Ltd. est
* expressement interdite.
* Pour obtenir une licence, veuillez contacter Common-Services Co., Ltd. a l'adresse: contact@common-services.com
* ...........................................................................
*
* @package soflexibilite
* @author Alexandre D.
* @copyright Copyright (c) 2011-2015 Common Services Co Ltd - 90/25 Sukhumvit 81 - 10260 Bangkok - Thailand
* @license Commercial license
* Support by mail : support.soflexibilite@common-services.com
*/
class SoFlexibiliteDelivery
{
const MODE_PRESTASHOP = 1;
const MODE_THIRDPARTY = 2;
public $mode;
public $id;
public $id_order;
public $id_cart;
public $id_point;
public $id_customer;
public $firstname;
public $lastname;
public $company;
public $telephone;
public $email;
public $type;
public $libelle;
public $indice;
public $postcode;
public $city;
public $country;
public $address1;
public $address2;
public $lieudit;
public $informations;
public $reseau;
public $validation = array(
'company' => '/[<>=#{}]*/',
'firstname' => '/[0-9!<>,;?=+()@#"°{}_$%:]*/',
'lastname' => '/[0-9!<>,;?=+()@#"°{}_$%:]*/',
'address1' => '/[!<>?=+@{}_$%]*/',
'address2' => '/[!<>?=+@{}_$%]*/',
'postcode' => '/[^a-zA-Z 0-9-]/',
'city' => '/[!<>;?=+@#"°{}_$%]*/',
'phone' => '/[a-zA-Z^%$#@!-]/',
'phone_mobile' => '/[a-zA-Z^%$#@!-]/'
);
protected $database_mapping_fields = array(
'id' => array('prid', 'point_id'),
'id_order' => array('order_id'),
'id_cart' => array('id_cart', 'cart_id'),
'id_point' => array('prid', 'point_id'),
'id_customer' => array('id_customer', 'customer_id'),
'firstname' => array('cefirstname', 'firstname'),
'lastname' => array('cename', 'lastname'),
'company' => array('cecompanyname', 'company'),
'telephone' => array('cephonenumber', 'telephone'),
'email' => array('ceemail', 'email'),
'type' => array('delivery_mode', 'type'),
'libelle' => array('prname', 'libelle'),
'indice' => array('prcompladress', 'indice'),
'postcode' => array('przipcode', 'code_postal'),
'city' => array('prtown', 'commune'),
'country' => array('cecountry', 'pays'),
'reseau' => array('codereseau', 'codereseau'),
'address1' => array('pradress1', 'adresse1'),
'address2' => array('pradress2', 'adresse2'),
'lieudit' => array('pradress3', 'lieudit'),
'informations' => array('cedeliveryinformation', 'informations'),
);
public function __construct($id_cart = null, $id_customer = null)
{
$this->mode = max(1, (int)Configuration::get('SOFLEXIBILITE_MODE')) == 1 ?
self::MODE_PRESTASHOP : self::MODE_THIRDPARTY;
if ($id_cart) {
$this->id_cart = (int)$id_cart;
}
if ($id_customer) {
$this->id_customer = (int)$id_customer;
}
}
public function loadDelivery()
{
if (!$this->isInitSoFlexibiliteDelivery()) {
return (false);
}
$id_cart = 'id_cart';
$id_customer = 'id_customer';
$table_name = 'socolissimo_delivery_info';
if ($this->mode == self::MODE_THIRDPARTY) {
$id_cart = 'cart_id';
$id_customer = 'customer_id';
$table_name = 'so_delivery';
}
if (!$this->tableExists($table_name)) {
return (false);
}
$result = Db::getInstance()->getRow(
'SELECT *
FROM `'._DB_PREFIX_.$table_name.'`
WHERE `'.$id_cart.'` = '.(int)$this->id_cart.'
AND `'.$id_customer.'` = '.(int)$this->id_customer
);
if (!isset($result[$id_cart]) || !(int)$result[$id_cart]) {
return (false);
}
foreach ($this->database_mapping_fields as $k => $arr) {
foreach ($result as $idx => $val) {
if (in_array($idx, $arr)) {
$this->{$k} = $val;
}
}
}
return (true);
}
public function isInitSoFlexibiliteDelivery()
{
return ($this instanceof SoFlexibiliteDelivery && $this->id_cart && $this->id_customer);
}
public function tableExists($table_name)
{
try {
$result = Db::getInstance()->executeS('SHOW TABLES LIKE "'._DB_PREFIX_.$table_name.'"');
} catch (Exception $e) {
return (false);
}
if (!count($result)) {
return (false);
}
try {
$result = Db::getInstance()->executeS('SHOW COLUMNS FROM `'._DB_PREFIX_.$table_name.'`');
} catch (Exception $e) {
return (false);
}
if (!count($result)) {
return (false);
}
return (true);
}
public function isLoadedObject()
{
return ($this instanceof SoFlexibiliteDelivery && $this->id_cart && $this->id_customer && $this->type);
}
public function createAddressForPickupPoint($id_address_delivery = null)
{
if (!$this->isInitSoFlexibiliteDelivery()) {
return (false);
}
if ($id_address_delivery) {
$customer_address = new Address($id_address_delivery);
} else {
$customer_address = null;
}
$address = new Address();
$address_rules = Address::getValidationRules('Address');
$this->id_customer = $this->id_customer ? $this->id_customer : $customer_address->id_customer;
$address->id_customer = (int)$this->id_customer;
$address->firstname = $customer_address->firstname;
$address->lastname = $customer_address->lastname;
$address->company = $this->libelle;
$address->address1 = $this->address1 ? $this->address1 : $customer_address->address1;
$address->address2 = $this->address2;
$address->postcode = $this->postcode ? $this->postcode : $customer_address->postcode;
$address->city = $this->city ? $this->city : $customer_address->city;
$address->id_country = (int)Country::getByIso($this->country ? $this->country : 'FR');
$address->country = Country::getNameById(null, (int)$address->id_country);
$address->phone_mobile = $this->telephone ? $this->telephone : $customer_address->phone_mobile;
$address->phone = $this->telephone ? $this->telephone : $customer_address->phone;
if (!$address->phone_mobile) {
$address->phone_mobile = Configuration::get('SOFLEXIBILITE_SUB_PHONE');
}
$address_fields = array(
'company',
'firstname',
'lastname',
'address1',
'address2',
'postcode',
'city',
'phone',
'phone_mobile'
);
foreach ($address_fields as $field) {
$address->{$field} = preg_replace($this->validation[$field], '', $address->{$field});
if (isset($address_rules['required'][$field]) && $address_rules['required'][$field]) {
if (empty($address->{$field})) {
$address->{$field} = '-';
}
}
if (isset($address_rules['size'][$field]) && $address_rules['size'][$field]) {
$address->{$field} = Tools::substr($address->{$field}, 0, $address_rules['size'][$field]);
}
}
$address->alias = 'So Colissimo - '.date('d-m-Y');
$address->active = 1;
$address->deleted = 1;
$address->add();
if (!Validate::isLoadedObject($address)) {
return (false);
}
return ((int)$address->id);
}
public function removeDelivery($id_cart_to_delete)
{
if (!$id_cart_to_delete || !is_numeric($id_cart_to_delete)) {
return false;
}
$id_cart = 'id_cart';
$table_name = 'socolissimo_delivery_info';
if ($this->mode == self::MODE_THIRDPARTY) {
$id_cart = 'cart_id';
$table_name = 'so_delivery';
}
return (Db::getInstance()->delete(_DB_PREFIX_.$table_name, '`'.$id_cart.'` = '.(int)$id_cart_to_delete));
}
public function saveDelivery()
{
$this->installDeliveryTable();
if ($this->existsDelivery()) {
$result = $this->updateDelivery();
} else {
$result = $this->createDelivery();
}
return ($result);
}
public function installDeliveryTable()
{
$pass = true;
$tables = array();
$query = Db::getInstance()->executeS('SHOW TABLES');
foreach ($query as $rows) {
foreach ($rows as $table) {
$tables[$table] = 1;
}
}
if ($this->mode == self::MODE_PRESTASHOP) {
if (isset($tables[_DB_PREFIX_.'socolissimo_delivery_info'])) {
$pass = true;
$sqls = array();
$fields = array();
$query = Db::getInstance()->executeS('SHOW COLUMNS FROM `'._DB_PREFIX_.'socolissimo_delivery_info`');
// Check existing field
if ($query) {
foreach ($query as $row) {
if ($row['Field'] === 'cephonenumber' &&
filter_var($row['Type'], FILTER_SANITIZE_NUMBER_INT) < 15) {
Db::getInstance()->execute(
'ALTER TABLE `'._DB_PREFIX_.'socolissimo_delivery_info`
MODIFY `cephonenumber` VARCHAR(15)'
);
}
}
}
if ($query) {
foreach ($query as $row) {
$fields[$row['Field']] = 1;
}
}
// Add new field sample
if (!isset($fields['codereseau'])) {
$sqls[] =
'ALTER TABLE `'._DB_PREFIX_.'socolissimo_delivery_info`
ADD `codereseau` VARCHAR(3) NOT NULL AFTER `cedoorcode2`';
}
if (!isset($fields['cename'])) {
$sqls[] =
'ALTER TABLE `'._DB_PREFIX_.'socolissimo_delivery_info`
ADD `cename` VARCHAR(64) DEFAULT NULL';
}
if (!isset($fields['cefirstname'])) {
$sqls[] =
'ALTER TABLE `'._DB_PREFIX_.'socolissimo_delivery_info`
ADD `cefirstname` VARCHAR(64) DEFAULT NULL';
}
if (!isset($fields['cecountry'])) {
$sqls[] =
'ALTER TABLE `'._DB_PREFIX_.'socolissimo_delivery_info`
ADD `cecountry` VARCHAR(10) DEFAULT NULL AFTER `prtown`';
}
if (count($sqls)) {
foreach ($sqls as $sql) {
$pass = Db::getInstance()->execute($sql) && $pass;
}
}
} else {
$sql = '
CREATE TABLE IF NOT EXISTS `'._DB_PREFIX_.'socolissimo_delivery_info` (
`id_cart` INT(10) NOT NULL,
`id_customer` INT(10) NOT NULL,
`delivery_mode` VARCHAR(3) NOT NULL,
`prid` TEXT(10) NOT NULL,
`prname` VARCHAR(64) NOT NULL,
`prfirstname` VARCHAR(64) NOT NULL,
`prcompladress` TEXT NOT NULL,
`pradress1` TEXT NOT NULL,
`pradress2` TEXT NOT NULL,
`pradress3` TEXT NOT NULL,
`pradress4` TEXT NOT NULL,
`przipcode` TEXT(10) NOT NULL,
`prtown` VARCHAR(64) NOT NULL,
`cecountry` VARCHAR(10) NOT NULL,
`cephonenumber` VARCHAR(15) NOT NULL,
`ceemail` VARCHAR(64) NOT NULL,
`cecompanyname` VARCHAR(64) NOT NULL,
`cedeliveryinformation` TEXT NOT NULL,
`cedoorcode1` VARCHAR(10) NOT NULL,
`cedoorcode2` VARCHAR(10) NOT NULL,
`codereseau` VARCHAR(3) DEFAULT NULL,
`cename` VARCHAR(64) DEFAULT NULL,
`cefirstname` VARCHAR(64) DEFAULT NULL,
PRIMARY KEY (`id_cart`,`id_customer`)
) ENGINE='._MYSQL_ENGINE_.' DEFAULT CHARSET=utf8;';
$pass = Db::getInstance()->execute($sql);
}
} else {
$pass = true;
// Laisser les champs de type TEXT a la fin pour des raisons d'optimisation SQL
$sql = '
CREATE TABLE IF NOT EXISTS `'._DB_PREFIX_.'so_delivery`(
`id` int(11) NOT NULL AUTO_INCREMENT,
`order_id` int(11) DEFAULT NULL,
`cart_id` int(11) DEFAULT NULL,
`point_id` int(11) NOT NULL,
`customer_id` int(11) NOT NULL,
`firstname` varchar(38) DEFAULT NULL,
`lastname` varchar(38) DEFAULT NULL,
`company` varchar(38) DEFAULT NULL,
`telephone` varchar(15) DEFAULT NULL,
`email` varchar(64) DEFAULT NULL,
`type` varchar(3) DEFAULT NULL,
`libelle` varchar(50) DEFAULT NULL,
`indice` varchar(70) DEFAULT NULL,
`code_postal` varchar(5) DEFAULT NULL,
`commune` varchar(32) DEFAULT NULL,
`pays` varchar(32) NOT NULL,
`adresse1` varchar(38) DEFAULT NULL,
`adresse2` varchar(38) DEFAULT NULL,
`lieudit` varchar(38) DEFAULT NULL,
`codereseau` varchar(3) DEFAULT NULL,
`informations` text,
PRIMARY KEY (`id`),
UNIQUE KEY `u_order_id` (`order_id`),
UNIQUE KEY `u_cart_id` (`cart_id`)
) ENGINE='._MYSQL_ENGINE_.' DEFAULT CHARSET=utf8 AUTO_INCREMENT=10000000 ;';
if (!Db::getInstance()->execute($sql)) {
return false;
}
$sqls = array();
// Alter the table to reflect new approach and add some
// REFIX: Add Fields
$query = Db::getInstance()->executeS('SHOW COLUMNS FROM `'._DB_PREFIX_.'so_delivery`');
$fields = array();
// Check existing field
if ($query) {
foreach ($query as $row) {
if ($row['Field'] === 'telephone' && filter_var($row['Type'], FILTER_SANITIZE_NUMBER_INT) < 15) {
Db::getInstance()->execute(
'ALTER TABLE `'._DB_PREFIX_.'so_delivery`
MODIFY `telephone` VARCHAR(15)'
);
} elseif ($row['Field'] === 'code_postal' &&
filter_var($row['Type'], FILTER_SANITIZE_NUMBER_INT) < 8) {
Db::getInstance()->execute(
'ALTER TABLE `'._DB_PREFIX_.'so_delivery`
MODIFY `code_postal` VARCHAR(8)'
);
}
}
}
foreach ($query as $row) {
$fields[$row['Field']] = 1;
}
if (!isset($fields['cart_id'])) {
$sqls[] = sprintf(
'ALTER TABLE `%s` ADD `cart_id` int(11) NULL AFTER `order_id`',
_DB_PREFIX_.'so_delivery'
);
}
if (!isset($fields['pays'])) {
$sqls[] = sprintf(
'ALTER TABLE `%s` ADD `pays` int(11) NULL AFTER `commune`',
_DB_PREFIX_.'so_delivery'
);
}
if (!isset($fields['codereseau'])) {
$sqls[] = sprintf(
'ALTER TABLE `%s` ADD `codereseau` varchar(3) DEFAULT NULL',
_DB_PREFIX_.'so_delivery'
);
}
// REFIX: Add Indexes
$query = Db::getInstance()->executeS('SHOW INDEX FROM `'._DB_PREFIX_.'so_delivery`');
$fields = array();
foreach ($query as $row) {
$fields[$row['Key_name']] = 1;
}
if (!isset($fields['u_order_id'])) {
$sqls[] = sprintf(
'ALTER TABLE `%s` ADD UNIQUE `u_order_id` (`order_id`)',
_DB_PREFIX_.$this->_delivery
);
}
if (!isset($fields['u_order_id'])) {
$sqls[] = sprintf(
'ALTER TABLE `%s` ADD UNIQUE `u_cart_id` (`cart_id`)',
_DB_PREFIX_.$this->_delivery
);
}
// REFIX: Change Fields
$sqls[] = sprintf(
'ALTER TABLE `%s` CHANGE `order_id` `order_id` int(11) NULL',
_DB_PREFIX_.'so_delivery'
);
if ($sqls) {
foreach ($sqls as $sql) {
try {
if (!Db::getInstance()->execute($sql)) {
$pass = false;
}
} catch (Exception $e) {
$pass = false;
echo $e->getMessage();
}
}
}
}
return $pass;
}
public function existsDelivery()
{
$id_cart = 'id_cart';
$id_customer = 'id_customer';
$table_name = 'socolissimo_delivery_info';
if ($this->mode == self::MODE_THIRDPARTY) {
$id_cart = 'cart_id';
$id_customer = 'customer_id';
$table_name = 'so_delivery';
}
if ($this->isInitSoFlexibiliteDelivery()) {
$result = Db::getInstance()->getRow(
'SELECT `'.$id_cart.'`
FROM `'._DB_PREFIX_.$table_name.'`
WHERE `'.$id_cart.'` = '.(int)$this->id_cart.'
AND `'.$id_customer.'` = '.(int)$this->id_customer
);
return (isset($result[$id_cart]) && (int)$result[$id_cart]);
}
return (false);
}
public function updateDelivery()
{
if (!$this->isInitSoFlexibiliteDelivery()) {
return (false);
}
if ($this->mode == self::MODE_PRESTASHOP) {
$table_name = 'socolissimo_delivery_info';
$where = '`id_cart` = '.(int)$this->id_cart;
$values = array(
'id_cart' => (int)$this->id_cart,
'id_customer' => (int)$this->id_customer,
'delivery_mode' => pSQL($this->type),
'prid' => pSQL($this->id_point),
'prname' => pSQL($this->libelle),
// pSQL($this->lastname),
'prfirstname' => pSQL($this->firstname),
'prcompladress' => pSQL($this->indice),
'pradress4' => null,
'przipcode' => pSQL($this->postcode),
'prtown' => pSQL($this->city),
'cephonenumber' => pSQL(str_replace(' ', '', $this->telephone)),
'ceemail' => pSQL($this->email),
'cecompanyname' => pSQL($this->company),
'cedeliveryinformation' => pSQL($this->informations),
'cedoorcode1' => null,
'cedoorcode2' => null,
'cename' => pSQL($this->lastname),
'cefirstname' => pSQL($this->firstname),
'cecountry' => pSQL($this->country),
'codereseau' => $this->reseau
);
if (in_array($this->type, array('DOM', 'DOS', 'RDV'))) {
$values['pradress1'] = pSQL($this->address2);
$values['pradress2'] = pSQL($this->lieudit);
$values['pradress3'] = pSQL($this->address1);
$values['prname'] = pSQL($this->lastname);
} else {
$values['pradress1'] = pSQL($this->address1);
$values['pradress2'] = pSQL($this->address2);
$values['pradress3'] = pSQL($this->lieudit);
}
} else {
$table_name = 'so_delivery';
$where = '`cart_id` = '.(int)$this->id_cart;
$values = array(
'cart_id' => (int)$this->id_cart,
'order_id' => (int)$this->id_order,
'customer_id' => (int)$this->id_customer,
'type' => pSQL($this->type),
'point_id' => $this->id_point ? pSQL($this->id_point) : 0,
'libelle' => pSQL($this->libelle),
'firstname' => pSQL($this->firstname),
'lastname' => pSQL($this->lastname),
'indice' => pSQL($this->indice),
'adresse1' => pSQL($this->address1),
'adresse2' => pSQL($this->address2),
'lieudit' => pSQL($this->lieudit),
'code_postal' => pSQL($this->postcode),
'commune' => pSQL($this->city),
'pays' => in_array($this->country, array('Belgique', 'BE')) ? 'BE' : 'FR',
'telephone' => pSQL(str_replace(' ', '', $this->telephone)),
'email' => pSQL($this->email),
'company' => pSQL($this->company),
'codereseau' => in_array($this->type, array('CMT', 'BDP', 'BOM', 'BOS')) ? 'R12' : ''
);
if (in_array($values['type'], array('DOM', 'DOS')) && $values['pays'] == 'BE') {
$values['codereseau'] = 'R12';
}
}
if (version_compare(_PS_VERSION_, '1.5', '>=')) {
$result = Db::getInstance()->update($table_name, $values, $where);
} else {
$result = Db::getInstance()->autoExecute(_DB_PREFIX_.$table_name, $values, 'UPDATE', $where);
}
return ($result);
}
public function createDelivery()
{
if (!$this->isInitSoFlexibiliteDelivery()) {
return (false);
}
if ($this->mode == self::MODE_PRESTASHOP) {
$table_name = 'socolissimo_delivery_info';
$values = array(
'id_cart' => (int)$this->id_cart,
'id_customer' => (int)$this->id_customer,
'delivery_mode' => pSQL($this->type),
'prid' => pSQL($this->id_point),
'prname' => pSQL($this->libelle),
// pSQL($this->lastname),
'prfirstname' => pSQL($this->firstname),
'prcompladress' => pSQL($this->indice),
'pradress4' => null,
'przipcode' => pSQL($this->postcode),
'prtown' => pSQL($this->city),
'cephonenumber' => pSQL(str_replace(' ', '', $this->telephone)),
'ceemail' => pSQL($this->email),
'cecompanyname' => pSQL($this->company),
'cedeliveryinformation' => null,
'cedoorcode1' => null,
'cedoorcode2' => null,
'cename' => pSQL($this->lastname),
'cefirstname' => pSQL($this->firstname),
'cecountry' => pSQL($this->country),
'codereseau' => pSQL($this->reseau)
);
if (in_array($this->type, array('DOM', 'DOS')) && $values['cecountry'] == 'BE') {
$values['delivery_mode'] = ($this->type == 'DOM') ? 'BOM' : 'BOS';
}
if (in_array($this->type, array('DOM', 'DOS'))) {
$values['pradress1'] = pSQL($this->address2);
$values['pradress2'] = pSQL($this->lieudit);
$values['pradress3'] = pSQL($this->address1);
$values['prname'] = pSQL($this->lastname);
} else {
$values['pradress1'] = pSQL($this->address1);
$values['pradress2'] = pSQL($this->address2);
$values['pradress3'] = pSQL($this->lieudit);
}
} else {
$table_name = 'so_delivery';
$values = array(
'cart_id' => (int)$this->id_cart,
'order_id' => -(int)time(),
'customer_id' => (int)$this->id_customer,
'type' => pSQL($this->type),
'point_id' => $this->id_point ? pSQL($this->id_point) : 0,
'libelle' => pSQL($this->libelle),
'firstname' => pSQL($this->firstname),
'lastname' => pSQL($this->lastname),
'indice' => pSQL($this->indice),
'adresse1' => pSQL($this->address1),
'adresse2' => pSQL($this->address2),
'lieudit' => pSQL($this->lieudit),
'code_postal' => pSQL($this->postcode),
'commune' => pSQL($this->city),
'pays' => $this->country,
'telephone' => pSQL(str_replace(' ', '', $this->telephone)),
'email' => pSQL($this->email),
'company' => pSQL($this->company),
'codereseau' => in_array($this->type, array('CMT', 'BDP', 'BOM', 'BOS')) ? 'R12' : ''
);
if (in_array($values['type'], array('DOM', 'DOS')) && $values['pays'] == 'BE') {
$values['codereseau'] = 'R12';
$values['type'] = ($this->type == 'DOM') ? 'BOM' : 'BOS';
}
if ($this->type == 'CMT' && in_array($this->country, array('DE', 'ES', 'GB', 'LU', 'NL'))) {
$values['codereseau'] = 'R09';
} elseif (in_array($this->type, array('BDP', 'PCS')) && in_array($this->country, array('DE', 'ES', 'NL'))) {
$values['codereseau'] = 'X00';
}
}
if (version_compare(_PS_VERSION_, '1.5', '>=')) {
$result = Db::getInstance()->insert($table_name, $values);
} else {
$result = Db::getInstance()->autoExecute(_DB_PREFIX_.$table_name, $values, 'INSERT');
}
return ($result);
}
}

View File

@ -0,0 +1,62 @@
<?php
/**
* NOTICE OF LICENSE
*
* This source file is subject to a commercial license from Common-Services Co., Ltd.
* Use, copy, modification or distribution of this source file without written
* license agreement from the SARL SMC is strictly forbidden.
* In order to obtain a license, please contact us: contact@common-services.com
* ...........................................................................
* INFORMATION SUR LA LICENCE D'UTILISATION
*
* L'utilisation de ce fichier source est soumise a une licence commerciale
* concedee par la societe Common-Services Co., Ltd.
* Toute utilisation, reproduction, modification ou distribution du present
* fichier source sans contrat de licence ecrit de la part de la Common-Services Co. Ltd. est
* expressement interdite.
* Pour obtenir une licence, veuillez contacter Common-Services Co., Ltd. a l'adresse: contact@common-services.com
* ...........................................................................
*
* @package soflexibilite
* @author Alexandre D.
* @copyright Copyright (c) 2011-2015 Common Services Co Ltd - 90/25 Sukhumvit 81 - 10260 Bangkok - Thailand
* @license Commercial license
* Support by mail : support.soflexibilite@common-services.com
*/
class SoFlexibiliteFileSystem
{
public static $errors = array();
public static function isDirWritable($path)
{
$path = rtrim($path, '/\\');
$testfile = sprintf('%s%stestfile_%s.chk', $path, DIRECTORY_SEPARATOR, uniqid());
$timestamp = time();
if (@file_put_contents($testfile, $timestamp)) {
$result = trim(@SoFlexibiliteTools::fileGetContents($testfile));
@unlink($testfile);
if ((int)$result == (int)$timestamp) {
return (true);
}
}
return false;
}
public static function copyColissimoLogo($source, $dest)
{
if (method_exists('Tools', 'copy') && !Tools::copy($source, $dest)) {
return false;
} elseif (!method_exists('Tools', 'copy') && !SoFlexibiliteTools::copy($source, $dest)) {
return false;
}
return true;
}
}

View File

@ -0,0 +1,53 @@
<?php
/**
* NOTICE OF LICENSE
*
* This source file is subject to a commercial license from Common-Services Co., Ltd.
* Use, copy, modification or distribution of this source file without written
* license agreement from the SARL SMC is strictly forbidden.
* In order to obtain a license, please contact us: contact@common-services.com
* ...........................................................................
* INFORMATION SUR LA LICENCE D'UTILISATION
*
* L'utilisation de ce fichier source est soumise a une licence commerciale
* concedee par la societe Common-Services Co., Ltd.
* Toute utilisation, reproduction, modification ou distribution du present
* fichier source sans contrat de licence ecrit de la part de la Common-Services Co. Ltd. est
* expressement interdite.
* Pour obtenir une licence, veuillez contacter Common-Services Co., Ltd. a l'adresse: contact@common-services.com
* ...........................................................................
*
* @package soflexibilite
* @author Alexandre D.
* @copyright Copyright (c) 2011-2015 Common Services Co Ltd - 90/25 Sukhumvit 81 - 10260 Bangkok - Thailand
* @license Commercial license
* Support by mail : support.soflexibilite@common-services.com
*/
class SoFlexibiliteGroup extends Group
{
public static function setColissimoGroups($id_carrier, $id_lang = null)
{
if (!$id_lang) {
$id_lang = (int)Configuration::get('PS_LANG_DEFAULT');
}
$groups = self::getGroups((int)$id_lang);
foreach ($groups as $group) {
$table = 'carrier_group';
$values = array(
'id_carrier' => (int)$id_carrier,
'id_group' => (int)$group['id_group']
);
if (version_compare(_PS_VERSION_, '1.5', '>=')) {
Db::getInstance()->insert($table, $values);
} else {
Db::getInstance()->autoExecute(_DB_PREFIX_.$table, $values, 'INSERT');
}
}
}
}

View File

@ -0,0 +1,43 @@
<?php
/**
* NOTICE OF LICENSE
*
* This source file is subject to a commercial license from Common-Services Co., Ltd.
* Use, copy, modification or distribution of this source file without written
* license agreement from the SARL SMC is strictly forbidden.
* In order to obtain a license, please contact us: contact@common-services.com
* ...........................................................................
* INFORMATION SUR LA LICENCE D'UTILISATION
*
* L'utilisation de ce fichier source est soumise a une licence commerciale
* concedee par la societe Common-Services Co., Ltd.
* Toute utilisation, reproduction, modification ou distribution du present
* fichier source sans contrat de licence ecrit de la part de la Common-Services Co. Ltd. est
* expressement interdite.
* Pour obtenir une licence, veuillez contacter Common-Services Co., Ltd. a l'adresse: contact@common-services.com
* ...........................................................................
*
* @package soflexibilite
* @author Alexandre D.
* @copyright Copyright (c) 2011-2015 Common Services Co Ltd - 90/25 Sukhumvit 81 - 10260 Bangkok - Thailand
* @license Commercial license
* Support by mail : support.soflexibilite@common-services.com
*/
class SoFlexibiliteRangePrice extends RangePrice
{
public static function create()
{
return new self();
}
public function setColissimoRange($id_carrier)
{
$this->id_carrier = (int)$id_carrier;
$this->delimiter1 = 0;
$this->delimiter2 = 10000;
$this->add();
}
}

View File

@ -0,0 +1,63 @@
<?php
/**
* NOTICE OF LICENSE
*
* This source file is subject to a commercial license from Common-Services Co., Ltd.
* Use, copy, modification or distribution of this source file without written
* license agreement from the SARL SMC is strictly forbidden.
* In order to obtain a license, please contact us: contact@common-services.com
* ...........................................................................
* INFORMATION SUR LA LICENCE D'UTILISATION
*
* L'utilisation de ce fichier source est soumise a une licence commerciale
* concedee par la societe Common-Services Co., Ltd.
* Toute utilisation, reproduction, modification ou distribution du present
* fichier source sans contrat de licence ecrit de la part de la Common-Services Co. Ltd. est
* expressement interdite.
* Pour obtenir une licence, veuillez contacter Common-Services Co., Ltd. a l'adresse: contact@common-services.com
* ...........................................................................
*
* @package soflexibilite
* @author Alexandre D.
* @copyright Copyright (c) 2011-2015 Common Services Co Ltd - 90/25 Sukhumvit 81 - 10260 Bangkok - Thailand
* @license Commercial license
* Support by mail : support.soflexibilite@common-services.com
*/
class SoFlexibiliteRangeWeight extends RangeWeight
{
public static function create()
{
return new self();
}
public function setColissimoRange($id_carrier)
{
$this->id_carrier = (int)$id_carrier;
$this->delimiter1 = 0;
$this->delimiter2 = 10000;
$this->add();
}
/**
* Override add to create delivery value for selected zones without call to addDeliveryPrice
* @see classes/ObjectModelCore::add()
*
* @param bool $null_values
* @param bool $autodate
* @return bool Insertion result
*/
public function addWithoutCallToAddDeliveryPrice($autodate = true, $null_values = false)
{
if (!ObjectModel::add($autodate, $null_values) || !Validate::isLoadedObject($this)) {
return false;
}
if (defined('PS_INSTALLATION_IN_PROGRESS')) {
return true;
}
return true;
}
}

View File

@ -0,0 +1,53 @@
<?php
/**
* NOTICE OF LICENSE
*
* This source file is subject to a commercial license from Common-Services Co., Ltd.
* Use, copy, modification or distribution of this source file without written
* license agreement from the SARL SMC is strictly forbidden.
* In order to obtain a license, please contact us: contact@common-services.com
* ...........................................................................
* INFORMATION SUR LA LICENCE D'UTILISATION
*
* L'utilisation de ce fichier source est soumise a une licence commerciale
* concedee par la societe Common-Services Co., Ltd.
* Toute utilisation, reproduction, modification ou distribution du present
* fichier source sans contrat de licence ecrit de la part de la Common-Services Co. Ltd. est
* expressement interdite.
* Pour obtenir une licence, veuillez contacter Common-Services Co., Ltd. a l'adresse: contact@common-services.com
* ...........................................................................
*
* @package soflexibilite
* @author Alexandre D.
* @copyright Copyright (c) 2011-2015 Common Services Co Ltd - 90/25 Sukhumvit 81 - 10260 Bangkok - Thailand
* @license Commercial license
* Support by mail : support.soflexibilite@common-services.com
*/
class SoFlexibiliteThirdParty
{
public static function fixExpeditor($id_carrier_so)
{
$expeditor_conf = Configuration::getMultiple(array(
'EXPEDITOR_CARRIER_CODES_'.$id_carrier_so['SOFLEXIBILITE_DOM_ID'],
'EXPEDITOR_CARRIER_CODES_'.$id_carrier_so['SOFLEXIBILITE_DOS_ID'],
'EXPEDITOR_CARRIER_CODES_'.$id_carrier_so['SOFLEXIBILITE_BPR_ID'],
'EXPEDITOR_CARRIER_CODES_'.$id_carrier_so['SOFLEXIBILITE_A2P_ID'],
));
if (Module::isInstalled('expeditor')) {
foreach ($expeditor_conf as $exp_carrier_conf => $val) {
if ($val !== 'SO') {
Configuration::updateValue($exp_carrier_conf, 'SO');
ConfigureMessage::success(
'Une erreur avec le module Expeditor Inet a &eacute;t&eacute; corrig&eacute; ('.
$exp_carrier_conf.').'
);
}
}
}
}
}

View File

@ -0,0 +1,282 @@
<?php
/**
* NOTICE OF LICENSE
*
* This source file is subject to a commercial license from Common-Services Co., Ltd.
* Use, copy, modification or distribution of this source file without written
* license agreement from the SARL SMC is strictly forbidden.
* In order to obtain a license, please contact us: contact@common-services.com
* ...........................................................................
* INFORMATION SUR LA LICENCE D'UTILISATION
*
* L'utilisation de ce fichier source est soumise a une licence commerciale
* concedee par la societe Common-Services Co., Ltd.
* Toute utilisation, reproduction, modification ou distribution du present
* fichier source sans contrat de licence ecrit de la part de la Common-Services Co. Ltd. est
* expressement interdite.
* Pour obtenir une licence, veuillez contacter Common-Services Co., Ltd. a l'adresse: contact@common-services.com
* ...........................................................................
*
* @package Colissimo Flexibilite
* @author Alexandre D.
* @copyright Copyright (c) 2011-2015 Common Services Co Ltd - 90/25 Sukhumvit 81 - 10260 Bangkok - Thailand
* @license Commercial license
* Support by mail : support.soflexibilite@common-services.com
*/
class SoFlexibiliteTools
{
public static function fileGetContents($url, $use_include_path = false, $stream_context = null, $curl_timeout = 30)
{
if ($stream_context == null && preg_match('/^https?:\/\//', $url)) {
$contextOptions = array();
if (preg_match('/^https:\/\//', $url)) {
$contextOptions = array(
'ssl' => array(
'verify_peer' => true,
'cafile' => sprintf('%s/%s', dirname(dirname(__FILE__)), 'cert/cacert.pem'),
)
);
}
$stream_context = @stream_context_create(
array('http' => array('timeout' => $curl_timeout)),
$contextOptions
);
}
if (in_array(ini_get('allow_url_fopen'), array('On', 'on', '1')) || !preg_match('/^https?:\/\//', $url)) {
return file_get_contents($url, $use_include_path, $stream_context);
} elseif (function_exists('curl_init')) {
$curl = curl_init();
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 5);
curl_setopt($curl, CURLOPT_TIMEOUT, $curl_timeout);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 2);
curl_setopt($curl, CURLOPT_CAINFO, sprintf('%s/%s', dirname(dirname(__FILE__)), 'cert/cacert.pem'));
if ($stream_context != null) {
$opts = stream_context_get_options($stream_context);
if (isset($opts['http']['method']) && Tools::strtolower($opts['http']['method']) == 'post') {
curl_setopt($curl, CURLOPT_POST, true);
if (isset($opts['http']['content'])) {
parse_str($opts['http']['content'], $post_data);
curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data);
}
}
}
$content = curl_exec($curl);
curl_close($curl);
return $content;
}
return false;
}
public static function moduleIsInstalled($module_name)
{
if (method_exists('Module', 'isInstalled')) {
return (Module::isInstalled($module_name));
} else {
Db::getInstance()->executeS(
'SELECT `id_module` FROM `'._DB_PREFIX_.'module` WHERE `name` = \''.pSQL($module_name).'\''
);
return (bool)Db::getInstance()->numRows();
}
}
public static function copy($source, $destination, $stream_context = null)
{
if (is_null($stream_context) && !preg_match('/^https?:\/\//', $source)) {
return @copy($source, $destination);
}
return @file_put_contents($destination, Tools::file_get_contents($source, false, $stream_context));
}
public static function carrierIsEnabled($id_carrier)
{
return ((bool)Db::getInstance()->getValue(
'SELECT `active` FROM `'._DB_PREFIX_.'carrier` WHERE `id_carrier` = '.(int)$id_carrier
));
}
public static function getTables()
{
$tables = array();
$query = Db::getInstance()->executeS('SHOW TABLES');
foreach ($query as $rows) {
foreach ($rows as $table) {
$tables[$table] = 1;
}
}
return $tables;
}
public static function checkTablesExist($compat_type = 1)
{
$sql = null;
$tables = self::getTables();
if ($compat_type == 1 && !isset($tables[_DB_PREFIX_.'socolissimo_delivery_info'])) {
$sql = 'CREATE TABLE IF NOT EXISTS `'._DB_PREFIX_.'socolissimo_delivery_info` (
`id_cart` INT(10) NOT NULL,
`id_customer` INT(10) NOT NULL,
`delivery_mode` VARCHAR(3) NOT NULL,
`prid` TEXT(10) NOT NULL,
`prname` VARCHAR(64) NOT NULL,
`prfirstname` VARCHAR(64) NOT NULL,
`prcompladress` TEXT NOT NULL,
`pradress1` TEXT NOT NULL,
`pradress2` TEXT NOT NULL,
`pradress3` TEXT NOT NULL,
`pradress4` TEXT NOT NULL,
`przipcode` TEXT(10) NOT NULL,
`prtown` VARCHAR(64) NOT NULL,
`cecountry` VARCHAR(10) NOT NULL,
`cephonenumber` VARCHAR(15) NOT NULL,
`ceemail` VARCHAR(64) NOT NULL,
`cecompanyname` VARCHAR(64) NOT NULL,
`cedeliveryinformation` TEXT NOT NULL,
`cedoorcode1` VARCHAR(10) NOT NULL,
`cedoorcode2` VARCHAR(10) NOT NULL,
PRIMARY KEY (`id_cart`,`id_customer`)
) ENGINE='._MYSQL_ENGINE_.' DEFAULT CHARSET=utf8;';
} elseif (!isset($tables[_DB_PREFIX_.'so_delivery'])) {
$sql = 'CREATE TABLE IF NOT EXISTS `'._DB_PREFIX_.'so_delivery` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`order_id` INT(11) DEFAULT NULL,
`cart_id` INT(11) DEFAULT NULL,
`point_id` INT(11) NOT NULL,
`customer_id` INT(11) NOT NULL,
`firstname` VARCHAR(38) DEFAULT NULL,
`lastname` VARCHAR(38) DEFAULT NULL,
`company` VARCHAR(38) DEFAULT NULL,
`telephone` VARCHAR(10) DEFAULT NULL,
`email` VARCHAR(64) DEFAULT NULL,
`type` VARCHAR(3) DEFAULT NULL,
`libelle` VARCHAR(50) DEFAULT NULL,
`indice` VARCHAR(70) DEFAULT NULL,
`code_postal` VARCHAR(5) DEFAULT NULL,
`commune` VARCHAR(32) DEFAULT NULL,
`pays` VARCHAR(32) NOT NULL,
`adresse1` VARCHAR(38) DEFAULT NULL,
`adresse2` VARCHAR(38) DEFAULT NULL,
`lieudit` VARCHAR(38) DEFAULT NULL,
`informations` TEXT,
`codereseau` VARCHAR(3) DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `u_order_id` (`order_id`),
UNIQUE KEY `u_cart_id` (`cart_id`)
) ENGINE='._MYSQL_ENGINE_.' DEFAULT CHARSET=utf8 AUTO_INCREMENT=10000000;';
}
if ($sql && !Db::getInstance()->execute($sql)) {
ConfigureMessage::error(sprintf(
'%s `%s`',
'Error while creating table',
($compat_type == 1) ? _DB_PREFIX_.'socolissimo_delivery_info' : _DB_PREFIX_.'so_delivery'
));
}
$sql = 'CREATE TABLE IF NOT EXISTS `'._DB_PREFIX_.'soflexibilite_carrier_fee_check` (
`id_cart` INT(10) NOT NULL,
`id_customer` INT(10) NOT NULL,
`iso_code` VARCHAR(3) NOT NULL,
`timestamp` TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL,
PRIMARY KEY (`id_cart`, `id_customer`)
) ENGINE='._MYSQL_ENGINE_.' DEFAULT CHARSET=utf8;';
if (!Db::getInstance()->execute($sql)) {
ConfigureMessage::error(sprintf(
'%s `%s`',
'Error while creating table',
_DB_PREFIX_.'soflexibilite_carrier_fee_check'
));
}
}
public static function checkFieldsExist($compat_type = 1)
{
$tables = self::getTables();
$fields = array();
if ($compat_type == 1 && isset($tables[_DB_PREFIX_.'socolissimo_delivery_info'])) {
$query = Db::getInstance()->executeS('SHOW COLUMNS FROM `'._DB_PREFIX_.'socolissimo_delivery_info`');
foreach ($query as $row) {
$fields[$row['Field']] = 1;
}
if (!isset($fields['codereseau'])) {
$sql =
'ALTER TABLE `'._DB_PREFIX_.'socolissimo_delivery_info`
ADD `codereseau` VARCHAR(3) DEFAULT NULL';
if (!Db::getInstance()->execute($sql)) {
ConfigureMessage::error(
'Error while updating table `socolissimo_delivery_info`.'
);
} else {
ConfigureMessage::success(
'Field `codereseau` added to the table `socolissimo_delivery_info`.'
);
}
}
} elseif ($compat_type == 2 && isset($tables[_DB_PREFIX_.'so_delivery'])) {
$query = Db::getInstance()->executeS('SHOW COLUMNS FROM `'._DB_PREFIX_.'so_delivery`');
foreach ($query as $row) {
$fields[$row['Field']] = 1;
}
if (!isset($fields['codereseau'])) {
$sql = 'ALTER TABLE `'._DB_PREFIX_.'so_delivery` ADD `codereseau` VARCHAR(3) DEFAULT NULL';
if (!Db::getInstance()->execute($sql)) {
ConfigureMessage::error('Error while updating table `so_delivery`.');
} else {
ConfigureMessage::success('Field `codereseau` added to the table `so_delivery`.');
}
}
}
}
public static function arrayMapCastInt($v)
{
return (int)$v;
}
public static function arrayFilterNullOrLowerThanEqualZero($v)
{
return $v != null && $v != -1;
}
/**
* Replacement for array_column, only available from PHP 5.5.0
* @see http://php.net/manual/fr/function.array-column.php
* @param $array
* @param $column_name
* @return array
*/
public static function arrayColumn($array, $column_name)
{
if (function_exists('array_column')) {
return array_column($array, $column_name);
}
return array_map(
array(__CLASS__, 'arrayColumFunctionDoubleParameters'),
$array,
array_fill(0, count($array), $column_name)
);
}
private static function arrayColumFunctionDoubleParameters($element, $column_name)
{
return $element[$column_name];
}
}

View File

@ -0,0 +1,225 @@
<?php
/**
* NOTICE OF LICENSE
*
* This source file is subject to a commercial license from Common-Services Co., Ltd.
* Use, copy, modification or distribution of this source file without written
* license agreement from the SARL SMC is strictly forbidden.
* In order to obtain a license, please contact us: contact@common-services.com
* ...........................................................................
* INFORMATION SUR LA LICENCE D'UTILISATION
*
* L'utilisation de ce fichier source est soumise a une licence commerciale
* concedee par la societe Common-Services Co., Ltd.
* Toute utilisation, reproduction, modification ou distribution du present
* fichier source sans contrat de licence ecrit de la part de la Common-Services Co. Ltd. est
* expressement interdite.
* Pour obtenir une licence, veuillez contacter Common-Services Co., Ltd. a l'adresse: contact@common-services.com
* ...........................................................................
*
* @package soflexibilite
* @author Alexandre D.
* @copyright Copyright (c) 2011-2015 Common Services Co Ltd - 90/25 Sukhumvit 81 - 10260 Bangkok - Thailand
* @license Commercial license
* Support by mail : support.spartoo@common-services.com
*/
class SoFlexibiliteWebService
{
protected $debug;
private $ws;
private $login;
private $password;
public $options;
/**
* SoFlexibiliteWebService constructor.
*/
public function __construct()
{
$this->debug = Configuration::get('SOFLEXIBILITE_DEBUG') || Tools::getValue('debug');
$this->params = null;
$this->ws = Configuration::get('SOFLEXIBILITE_WS');
$this->login = Configuration::get('SOFLEXIBILITE_LOGIN');
$this->password = Configuration::get('SOFLEXIBILITE_PASSWORD');
$this->options = array(
'trace' => true,
'exceptions' => true,
'soap_version' => SOAP_1_1,
'encoding' => 'UTF-8'
);
}
/**
* Call web service.
*
* @param $method
* @param $params
* @return bool|mixed|null
*/
private function call($method, $params)
{
ini_set('soap.wsdl_cache_enabled', 0);
ini_set('soap.wsdl_cache_ttl', 0);
libxml_disable_entity_loader(false);
$options = $this->options;
$debug = $this->debug;
try {
$client = new SoapClient($this->ws, $options);
} catch (Exception $e) {
if ($debug) {
echo '<pre>'.print_r(libxml_get_errors(), true)."\n".
var_dump(libxml_get_last_error())."\n".
$e->getMessage().
'</pre>';
}
return false;
}
try {
$result = $client->__call($method, array($params));
} catch (SoapFault $fault) {
if ($debug) {
echo 'Request : <br/><xmp>'.$client->__getLastRequest().'</xmp><br/>Response : <br/>
<xmp>'.$client->__getLastResponse().'</xmp><br/>Error Message : <br/>'.$fault->getMessage().'<br/>\n';
echo $fault->getMessage().'\n';
}
$result = null;
}
return ($result);
}
/**
* Get the delivery mode available.
*
* @return array
*/
protected function getSelectedDeliveryMode()
{
$delivery_mode = array();
$relay_carrier = new Carrier((int)Configuration::get('SOFLEXIBILITE_A2P_ID'));
$bpr_carrier = new Carrier((int)Configuration::get('SOFLEXIBILITE_BPR_ID'));
if (Validate::isLoadedObject($relay_carrier) && $relay_carrier->active) {
$delivery_mode = array_merge($delivery_mode, array('A2P', 'CMT'));
}
if (Validate::isLoadedObject($bpr_carrier) && $bpr_carrier->active) {
$delivery_mode = array_merge($delivery_mode, array('BPR', 'BDP', 'CDI'));
}
return ($delivery_mode);
}
/**
* Get a list of relay pickup based on the address.
*
* @param $address
* @param int $filter_relay Filter relay pickup, set 0 not to get PickUp relays
* @return bool|mixed|null
*/
public function getRelays($address, $filter_relay = 1)
{
$method = 'findRDVPointRetraitAcheminement';
$request_id = md5(date('Ymdhis'));
if (isset($address['country']) && Tools::strlen($address['country']) > 2) {
$address['country'] = Country::getIsoById((int)Country::getIdByName(null, $address['country']));
}
$params = array(
'accountNumber' => $this->login,
'password' => $this->password,
'address' => $this->cleanup($address['address']),
'zipCode' => sprintf('%s', str_replace(' ', '', $address['postcode'])),
'city' => $this->cleanup($address['city']),
'countryCode' => (isset($address['country']) && $address['country']) ? $address['country'] : 'FR',
'optionInter' => (isset($address['country']) && !in_array($address['country'], array('FR'))) ? 1 : 0,
'weight' => $address['weight'],
'shippingDate' => $address['date'],
'filterRelay' => (int)$filter_relay,
'requestId' => $request_id.$request_id
);
return ($this->call($method, $params));
}
/**
* Get Information about a relay based on its ID.
*
* @param $id
* @param string|null $date
* @param string $reseau
* @return null|stdClass
*/
public function getRelay($id, $date = null, $reseau = '')
{
$method = 'findPointRetraitAcheminementByID';
if (!$date) {
$date = date('d/m/Y', time() + 86400 * 2);
}
$params = array(
'accountNumber' => $this->login,
'password' => $this->password,
'id' => $id,
'date' => $date,
'reseau' => $reseau
);
$result = $this->call($method, $params);
if (!$result->return->errorCode) {
return ($result->return->pointRetraitAcheminement);
} else {
return null;
}
}
/**
* Get Information about a relay based on its ID.
* Static function.
*
* @param $id
* @param string|null $date
* @param string $reseau
* @return null|stdClass
*/
public static function getRelayStatic($id, $date = null, $reseau = '')
{
$web_service = new SoFlexibiliteWebService();
if (in_array($reseau, array('R01', 'R02', 'R03', 'R04', 'R05', 'R06', 'R07', 'R08', 'R09', 'R10', 'R11'))) {
$reseau = '';
}
return $web_service->getRelay($id, $date, $reseau);
}
/**
* Santize string for web service call
*
* @param $text
* @return string
*/
private function cleanup($text)
{
$text = mb_convert_encoding($text, 'HTML-ENTITIES', 'UTF-8');
$text = preg_replace(
array('/&szlig;/', '/&(..)lig;/', '/&([aouAOU])uml;/', '/&(.)[^;]*;/'),
array('ss', '$1', '$1e', '$1'),
$text
);
$text = str_replace('_', '/', $text);
$text = preg_replace('/[\x00-\x1F\x21-\x2E\x3A-\x3F\x5B-\x60\x7B-\x7F]/', ' ', $text);
return (Tools::strtoupper($text));
}
}

View File

@ -0,0 +1,38 @@
<?php
/**
* NOTICE OF LICENSE
*
* This source file is subject to a commercial license from Common-Services Co., Ltd.
* Use, copy, modification or distribution of this source file without written
* license agreement from the SARL SMC is strictly forbidden.
* In order to obtain a license, please contact us: contact@common-services.com
* ...........................................................................
* INFORMATION SUR LA LICENCE D'UTILISATION
*
* L'utilisation de ce fichier source est soumise a une licence commerciale
* concedee par la societe Common-Services Co., Ltd.
* Toute utilisation, reproduction, modification ou distribution du present
* fichier source sans contrat de licence ecrit de la part de la Common-Services Co. Ltd. est
* expressement interdite.
* Pour obtenir une licence, veuillez contacter Common-Services Co., Ltd. a l'adresse: contact@common-services.com
* ...........................................................................
*
* @package soflexibilite
* @author Alexandre D.
* @copyright Copyright (c) 2011-2015 Common Services Co Ltd - 90/25 Sukhumvit 81 - 10260 Bangkok - Thailand
* @license Commercial license
* Support by mail : support.soflexibilite@common-services.com
*/
class SoFlexibiliteZone extends Zone
{
public static function setColissimoZone(Carrier $carrier)
{
$zones = self::getZones(true);
foreach ($zones as $zone) {
$carrier->addZone((int)$zone['id_zone']);
}
}
}

View File

@ -0,0 +1,11 @@
<?php
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
header("Location: ../");
exit;

View File

@ -0,0 +1,230 @@
<?php
/**
* NOTICE OF LICENSE
*
* This source file is subject to a commercial license from SARL SMC
* Use, copy, modification or distribution of this source file without written
* license agreement from the SARL SMC is strictly forbidden.
* In order to obtain a license, please contact us: contact@common-services.com
* ...........................................................................
* INFORMATION SUR LA LICENCE D'UTILISATION
*
* L'utilisation de ce fichier source est soumise a une licence commerciale
* concedee par la societe SMC
* Toute utilisation, reproduction, modification ou distribution du present
* fichier source sans contrat de licence ecrit de la part de la SARL SMC est
* expressement interdite.
* Pour obtenir une licence, veuillez contacter Common-Services Co., Ltd. a l'adresse: contact@common-services.com
* ...........................................................................
*
* @author Debusschere A.
* @copyright Copyright (c) 2011-2015 Common Services Co Ltd - 90/25 Sukhumvit 81 - 10260 Bangkok - Thailand
* @package Shared
* @license Commercial license
*/
if (!defined('_PS_VERSION_')) {
exit;
}
/**
* Class generating configuration message
*/
class ConfigureMessage
{
const _MESSAGE_ = '<div class="%s">%s</div>';
const _DEBUG_ = '<div class="%s"><pre>%s</pre></div>';
const _CLASS_ERROR_15_ = 'error';
const _CLASS_WARNING_15_ = 'warn';
const _CLASS_SUCCESS_15_ = 'conf';
const _CLASS_INFO_15_ = 'info hint';
const _CLASS_ERROR_16_ = 'alert alert-danger';
const _CLASS_WARNING_16_ = 'alert alert-warning';
const _CLASS_SUCCESS_16_ = 'alert alert-success';
const _CLASS_INFO_16_ = 'alert alert-info';
protected static $msg_list = array();
protected static $has_error_msg = false;
protected static $has_warning_msg = false;
protected static $has_success_msg = false;
protected static $has_info_msg = false;
/**
* Generate the HTML code corresponding to an error message
*
* @param String $msg
*/
public static function error($msg = 'Error')
{
$error_msg = null;
if (version_compare(_PS_VERSION_, '1.6', '<')) {
$error_msg = sprintf(self::_MESSAGE_, self::_CLASS_ERROR_15_, $msg);
} else {
$error_msg = '<div class="bootstrap">'.sprintf(self::_MESSAGE_, self::_CLASS_ERROR_16_, $msg).'</div>';
}
self::$has_error_msg = true;
self::$msg_list[] = $error_msg;
}
/**
* Generate the HTML code corresponding to a warning message
*
* @param String $msg
*/
public static function warning($msg = 'Warning')
{
$warning_msg = null;
if (version_compare(_PS_VERSION_, '1.6', '<')) {
$warning_msg = sprintf(self::_MESSAGE_, self::_CLASS_WARNING_15_, $msg);
} else {
$warning_msg = '<div class="bootstrap">'.sprintf(self::_MESSAGE_, self::_CLASS_WARNING_16_, $msg).'</div>';
}
self::$has_warning_msg = true;
self::$msg_list[] = $warning_msg;
}
/**
* Generate the HTML code corresponding to a success message
*
* @param String $msg
*/
public static function success($msg = 'Success')
{
$success_msg = null;
if (version_compare(_PS_VERSION_, '1.6', '<')) {
$success_msg = sprintf(self::_MESSAGE_, self::_CLASS_SUCCESS_15_, $msg);
} else {
$success_msg = '<div class="bootstrap">'.sprintf(self::_MESSAGE_, self::_CLASS_SUCCESS_16_, $msg).'</div>';
}
self::$has_success_msg = true;
self::$msg_list[] = $success_msg;
}
/**
* Generate the HTML code corresponding to an information message
*
* @param String $msg
*/
public static function info($msg = 'Success')
{
$info_msg = null;
if (version_compare(_PS_VERSION_, '1.6', '<')) {
$info_msg = sprintf(self::_MESSAGE_, self::_CLASS_INFO_15_, $msg);
} else {
$info_msg = '<div class="bootstrap">'.sprintf(self::_MESSAGE_, self::_CLASS_INFO_16_, $msg).'</div>';
}
self::$has_info_msg = true;
self::$msg_list[] = $info_msg;
}
/**
* Generate the HTML code corresponding to a debug message
*
* @param String $msg
*/
public static function debug($msg = 'Debug')
{
$info_msg = null;
if (version_compare(_PS_VERSION_, '1.6', '<')) {
$info_msg = sprintf(self::_DEBUG_, self::_CLASS_INFO_15_, $msg);
} else {
$info_msg = '<div class="bootstrap">'.sprintf(self::_DEBUG_, self::_CLASS_INFO_16_, $msg).'</div>';
}
self::$msg_list[] = $info_msg;
}
/**
* Return the html code of all messages to be displayed
*
* @return String
*/
public static function display()
{
$html = '';
if (count(self::$msg_list)) {
foreach (self::$msg_list as $msg) {
$html .= $msg;
}
}
return ($html);
}
/**
* Return the list of message
*
* @return array
*/
public static function getMessageList()
{
return (self::$msg_list);
}
/**
* Return true if the message list contain at least 1 error message
*
* @return Boolean
*/
public static function hasErrorMessage()
{
return (self::$has_error_msg);
}
/**
* Return true if the message list contain at least 1 warning message
*
* @return Boolean
*/
public static function hasWarningMessage()
{
return (self::$has_warning_msg);
}
/**
* Return true if the message list contain at least 1 success message
*
* @return Boolean
*/
public static function hasSuccessMessage()
{
return (self::$has_success_msg);
}
/**
* Return true if the message list contain at least 1 information message
*
* @return Boolean
*/
public static function hasInfoMessage()
{
return (self::$has_info_msg);
}
}

View File

@ -0,0 +1,105 @@
<?php
/**
* NOTICE OF LICENSE
*
* This source file is subject to a commercial license from SARL SMC
* Use, copy, modification or distribution of this source file without written
* license agreement from the SARL SMC is strictly forbidden.
* In order to obtain a license, please contact us: contact@common-services.com
* ...........................................................................
* INFORMATION SUR LA LICENCE D'UTILISATION
*
* L'utilisation de ce fichier source est soumise a une licence commerciale
* concedee par la societe SMC
* Toute utilisation, reproduction, modification ou distribution du present
* fichier source sans contrat de licence ecrit de la part de la SARL SMC est
* expressement interdite.
* Pour obtenir une licence, veuillez contacter Common-Services Co., Ltd. a l'adresse: contact@common-services.com
* ...........................................................................
*
* @author Debusschere A.
* @copyright Copyright (c) 2011-2015 Common Services Co Ltd - 90/25 Sukhumvit 81 - 10260 Bangkok - Thailand
* @package Shared
* @license Commercial license
*/
if (!defined('_PS_VERSION_')) {
exit;
}
/**
* Class generating configuration tabs
*/
class ConfigureTab
{
public static function generateTabs($tab_list, $module_name = '')
{
// $protocol = Configuration::get('PS_SSL_ENABLED') ? 'https://' : 'http://';
if (!Tools::strlen($module_name)) {
$module_name = self::getModuleName();
}
// commented out by O.B. on 2015-03-10: cause cross domain redirection issue
// $url = $protocol.htmlspecialchars($_SERVER['HTTP_HOST'], ENT_COMPAT, 'UTF-8').
// __PS_BASE_URI__.'modules/'.$module_name.'/';
$url = __PS_BASE_URI__.'modules/'.$module_name.'/';
$context = Context::getContext();
$context->smarty->assign(array(
'tab_list' => $tab_list,
'img_dir' => $url.'views/img/shared/tab/',
'module_url' => $url,
'module_name' => $module_name,
'ps16x' => version_compare(_PS_VERSION_, '1.6', '>='),
'ps15x' => version_compare(_PS_VERSION_, '1.5', '>='),
'has_line' => self::hasLine($tab_list),
'line_number' => self::getLineNumber($tab_list)
));
$html = $context->smarty->fetch(dirname(__FILE__).'/../../views/templates/admin/shared/tabs.tpl');
return ($html);
}
public static function getModuleName($addslash = false)
{
$e = new Exception();
$trace = $e->getTrace();
$caller = $trace[2];
if (!isset($caller['class'])) {
return (false);
}
return (Tools::strtolower($caller['class']).($addslash ? '/' : ''));
}
public static function hasLine($tab_list)
{
if (is_array($tab_list) && count($tab_list)) {
foreach ($tab_list as $tab) {
if (isset($tab['line']) && $tab['line']) {
return (true);
}
}
}
return (false);
}
public static function getLineNumber($tab_list)
{
$line_number = array();
if (is_array($tab_list) && count($tab_list)) {
foreach ($tab_list as $tab) {
if (isset($tab['line']) && $tab['line']) {
$line_number[$tab['line']] = 1;
}
}
}
return (count($line_number));
}
}

View File

@ -0,0 +1,11 @@
<?php
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: post-check=0, pre-check=0', false);
header('Pragma: no-cache');
header('Location: ../');
exit;

View File

@ -0,0 +1,131 @@
<?php
/**
* NOTICE OF LICENSE
*
* This source file is subject to a commercial license from SARL SMC
* Use, copy, modification or distribution of this source file without written
* license agreement from the SARL SMC is strictly forbidden.
* In order to obtain a license, please contact us: contact@common-services.com
* ...........................................................................
* INFORMATION SUR LA LICENCE D'UTILISATION
*
* L'utilisation de ce fichier source est soumise a une licence commerciale
* concedee par la societe SMC
* Toute utilisation, reproduction, modification ou distribution du present
* fichier source sans contrat de licence ecrit de la part de la SARL SMC est
* expressement interdite.
* Pour obtenir une licence, veuillez contacter Common-Services Co., Ltd. a l'adresse: contact@common-services.com
* ...........................................................................
*
* @author Debusschere A.
* @copyright Copyright (c) 2011-2015 Common Services Co Ltd - 90/25 Sukhumvit 81 - 10260 Bangkok - Thailand
* @package Shared
* @license Commercial license
*/
/**
* Class generating module tabs
*/
class CommonServicesTab extends Tab
{
const ADD = 'a';
const REMOVE = 'd';
const UPDATE = 'u';
public static function setup($action, $class, $name, $parent, $debug = false)
{
switch ($action) {
case self::ADD:
if (!Tab::getIdFromClassName($class)) {
if (!self::installModuleTab($class, $name, $parent)) {
if ($debug) {
printf('%s(#%d): Unable to install: %s', basename(__FILE__), __LINE__, $class);
}
return false;
}
}
break;
case self::UPDATE:
if (self::setup(self::REMOVE, $class, $name, $parent, $debug)) {
return (self::setup(self::ADD, $class, $name, $parent, $debug));
}
break;
case self::REMOVE:
if (Tab::getIdFromClassName($class)) {
if (!self::uninstallModuleTab($class)) {
if ($debug) {
printf('%s(#%d): Unable to uninstall: %s', basename(__FILE__), __LINE__, $class);
}
return false;
}
}
break;
}
return true;
}
private static function installModuleTab($tabClass, $tabName, $tabParent)
{
$module = self::getModuleName();
$pass = true;
$tabNameLang = array();
foreach (Language::getLanguages() as $language) {
$tabNameLang[$language['id_lang']] = $tabName;
}
$tab = new Tab();
$tab->name = $tabNameLang;
$tab->class_name = $tabClass;
$tab->module = $module;
$tab->id_parent = Tab::getIdFromClassName($tabParent);
// For Prestashop 1.2
if (version_compare(_PS_VERSION_, '1.3', '<')) {
$pass = $tab->add();
} else {
$pass = $tab->save();
}
return ($pass);
}
public static function getModuleName()
{
$trace = debug_backtrace();
$caller = $trace[4];
if (!isset($caller['class'])) {
return (false);
} else {
return (Tools::strtolower($caller['class']));
}
}
private static function uninstallModuleTab($tabClass)
{
$pass = true;
$idTab = Tab::getIdFromClassName($tabClass);
// Big Bug PS 1.4 - cached entry is not removed on delete() ...
if (version_compare(_PS_VERSION_, '1.5.5', '<')) {
if (isset(Tab::$_getIdFromClassName[Tools::strtolower($tabClass)])) {
unset(Tab::$_getIdFromClassName[Tools::strtolower($tabClass)]);
}
if (isset(Tab::$_getIdFromClassName[($tabClass)])) {
unset(Tab::$_getIdFromClassName[($tabClass)]);
}
}
if ($idTab != 0) {
$tab = new Tab($idTab);
$pass = $tab->delete();
}
return ($pass);
}
}

View File

@ -0,0 +1,11 @@
<?php
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
header("Location: ../");
exit;

Binary file not shown.

View File

@ -0,0 +1,200 @@
<?php
global $_MODULE;
$_MODULE = array();
$_MODULE['<{soflexibilite}prestashop>soflexibilite_c9b03e3b2617405bed7d3871d83e42c3'] = 'Colissimo - Intégration en web service - Officiel';
$_MODULE['<{soflexibilite}prestashop>soflexibilite_83c815afa0e8015bed7035360a91541c'] = 'Voulez-vous vraiment désinstaller ce module ?';
$_MODULE['<{soflexibilite}prestashop>soflexibilite_7bf393de769b5971ea2231779b9fdd18'] = 'L\'extension SoapClient doit être activée pour utiliser le module.';
$_MODULE['<{soflexibilite}prestashop>soflexibilite_dfc7f76358db8692831406dd8c9f8e11'] = 'Une erreur s\'est produite pendant l\'installation avec parent::install().';
$_MODULE['<{soflexibilite}prestashop>soflexibilite_69efb2929c02d2fbccf7c18def39dfa5'] = 'Impossible de copier les images pour le transporteur.';
$_MODULE['<{soflexibilite}prestashop>soflexibilite_ce2ef065f2ed91f52d75e1fba4666646'] = 'Impossible de créer le transporteur.';
$_MODULE['<{soflexibilite}prestashop>soflexibilite_a007630573718006fdf2a29a85b50848'] = 'Une erreur est survenue pendant l\'enregistrement du point d\'accroche';
$_MODULE['<{soflexibilite}prestashop>soflexibilite_93533746f11ea97824a8d214459ab0a6'] = 'Une erreur est survenue pendant la suppression du point d\'accroche';
$_MODULE['<{soflexibilite}prestashop>soflexibilite_5431e5e203773b8fbf0f3823db849c61'] = 'Une erreur s\'est produite pendant la désinstallation avec parent::uninstall().';
$_MODULE['<{soflexibilite}prestashop>soflexibilite_9f88712da436e8d35afd72e30cddf828'] = 'Une erreur s\'est produite pendant la désinstallation des hooks.';
$_MODULE['<{soflexibilite}prestashop>soflexibilite_81a2d306d12033459d4a844ae2fcc98b'] = 'Le numéro de téléphone de substitution n\'a pas le bon format.';
$_MODULE['<{soflexibilite}prestashop>soflexibilite_8661626e97af70a1d76fb9dc248545ce'] = 'Les options ont été mises à jour.';
$_MODULE['<{soflexibilite}prestashop>soflexibilite_8711dbcb9166dca544544b027d7edb83'] = 'Une erreur s\'est produite.';
$_MODULE['<{soflexibilite}prestashop>soflexibilite_2daf1cb573c2c61422faf64610cf9402'] = 'Identifiants';
$_MODULE['<{soflexibilite}prestashop>soflexibilite_57fe132c158447f26f6c14db9bd3d1ac'] = 'Personalisation';
$_MODULE['<{soflexibilite}prestashop>soflexibilite_1d6af794b2599c1407a83029a09d1ecf'] = 'Transporteurs';
$_MODULE['<{soflexibilite}prestashop>soflexibilite_49a5ea999a06c401bcf5c6112ce03512'] = 'Vous n\'avez pas encore renseigné votre mot de passe, merci de remplir le champ \"Mot de passe\" dans l\'onglet Configuration avec le mot de passe fournit par ColiPoste.';
$_MODULE['<{soflexibilite}prestashop>soflexibilite_b7b77a75ea6b3e288f98e74063d40a37'] = 'La variable `display_errors` de PHP est activée.';
$_MODULE['<{soflexibilite}prestashop>soflexibilite_c05fdc9a5510c343c6f53bae8d649c89'] = 'La constante Prestashop _PS_MODE_DEV_ est activée.';
$_MODULE['<{soflexibilite}prestashop>soflexibilite_fb4f4115c731024342eb1a33e0d898f0'] = 'Attention';
$_MODULE['<{soflexibilite}prestashop>soflexibilite_9839e5f1ec0b98cc2cee3aaba4650cea'] = 'Le contexte de la boutique n\'est pas proprement sélectionné.';
$_MODULE['<{soflexibilite}prestashop>soflexibilite_d56531b85a2c3a8ab3f538dd1833f494'] = 'Merci de sélectionné un contexte de boutique spécifique, pas un groupe de boutique ni \"Toutes les boutiques\".';
$_MODULE['<{soflexibilite}prestashop>soflexibilite_e307db07b3975fef922a80d07455ee5e'] = 'Base de données';
$_MODULE['<{soflexibilite}prestashop>soflexibilite_14a3fbe2fad9af67fdd9c4ac30bd57fc'] = 'Livraison en bureau de poste';
$_MODULE['<{soflexibilite}prestashop>soflexibilite_bfec4139dc6620f513a35daf0274a3d2'] = 'Livraison chez un commerçant';
$_MODULE['<{soflexibilite}prestashop>soflexibilite_4d960f76e0b8a1fd3995d7e0d887f96a'] = 'Livraison à domicile (sans signature)';
$_MODULE['<{soflexibilite}prestashop>soflexibilite_e7108f062e9e52334387d1321323818d'] = 'Livraison à domicile (contre signature)';
$_MODULE['<{soflexibilite}prestashop>soflexibilite_a38354510e1f57e77f09246b20bf3482'] = 'Faites-vous livrer sur l\'ensemble des bureaux de poste disponible en Europe.';
$_MODULE['<{soflexibilite}prestashop>soflexibilite_2e6a54b060e9861602bec79906bf8a45'] = 'Faites-vous livrer parmi lun des points relais disponibles en Europe.';
$_MODULE['<{soflexibilite}prestashop>point_list_bf0470c36d95f4ba1aa18c67e6d2b0ec'] = 'Requête invalide.';
$_MODULE['<{soflexibilite}prestashop>point_list_902b0d55fddef6f8d651fe1035b7d4bd'] = 'Erreur';
$_MODULE['<{soflexibilite}prestashop>point_list_73a41a206b4d5e9bfbdb981187e3e30c'] = 'L\'appel au Web Service a échoué.';
$_MODULE['<{soflexibilite}prestashop>point_list_fd29458ae58ac32a2d8734ed90ad51ec'] = 'Lun';
$_MODULE['<{soflexibilite}prestashop>point_list_2ddecde85408faf230652444db78cb72'] = 'Mar';
$_MODULE['<{soflexibilite}prestashop>point_list_510c292b1686eb070d9e90a575f74106'] = 'Mer';
$_MODULE['<{soflexibilite}prestashop>point_list_ed5e8353dfc585f4c6b3a55d1a9fc01d'] = 'Jeu';
$_MODULE['<{soflexibilite}prestashop>point_list_ac616f844b9a5ea5a827bf7fb99b1ad5'] = 'Ven';
$_MODULE['<{soflexibilite}prestashop>point_list_13c7d2d737f81f7bf89aed9fbcd0ad55'] = 'Sam';
$_MODULE['<{soflexibilite}prestashop>point_list_ef6572e4cd58bb39a3f4e82fc64fe9f0'] = 'Dim';
$_MODULE['<{soflexibilite}prestashop>point_list_6f8522e0610541f1ef215a22ffa66ff6'] = 'Lundi';
$_MODULE['<{soflexibilite}prestashop>point_list_5792315f09a5d54fb7e3d066672b507f'] = 'Mardi';
$_MODULE['<{soflexibilite}prestashop>point_list_796c163589f295373e171842f37265d5'] = 'Mercredi';
$_MODULE['<{soflexibilite}prestashop>point_list_78ae6f0cd191d25147e252dc54768238'] = 'Jeudi';
$_MODULE['<{soflexibilite}prestashop>point_list_c33b138a163847cdb6caeeb7c9a126b4'] = 'Vendredi';
$_MODULE['<{soflexibilite}prestashop>point_list_8b7051187b9191cdcdae6ed5a10e5adc'] = 'Samedi';
$_MODULE['<{soflexibilite}prestashop>point_list_9d1a0949c39e66a0cd65240bc0ac9177'] = 'Dimanche';
$_MODULE['<{soflexibilite}prestashop>point_list_d98a07f84921b24ee30f86fd8cd85c3c'] = 'de';
$_MODULE['<{soflexibilite}prestashop>point_list_01b6e20344b68835c5ed1ddedf20d531'] = 'à';
$_MODULE['<{soflexibilite}prestashop>configuration_1f4fffcf70effe1297b9e4ad3de41669'] = 'Colissimo est une offre de livraison de La Poste qui vous permet d\'offrir à vos clients 3 services de livraison';
$_MODULE['<{soflexibilite}prestashop>configuration_04fb71d0744c228ce73efee48ccfecf7'] = 'Colissimo Domicile avec signature';
$_MODULE['<{soflexibilite}prestashop>configuration_921605ec6420ee693e40ccf1e621ff89'] = 'Colissimo Domicile sans signature';
$_MODULE['<{soflexibilite}prestashop>configuration_65264e79e6d40f8615e5e80bef84d930'] = 'Colissimo Point Retrait à La Poste, en relais Pickup, en consigne Pickup Station';
$_MODULE['<{soflexibilite}prestashop>configuration_c4c95c36570d5a8834be5e88e2f0f6b2'] = 'Informations';
$_MODULE['<{soflexibilite}prestashop>configuration_ac858b8ec193d2e6eb95cb8d611a56a1'] = 'Ce module est fourni par';
$_MODULE['<{soflexibilite}prestashop>configuration_71611e8bc3d53ba196b4ecae9143aac4'] = 'Pour plus d\'informations, suivez nous sur notre blog';
$_MODULE['<{soflexibilite}prestashop>configuration_75856f3970cc3dddb58fda68068c4f60'] = 'Plus d\'informations sur nous sur le site de Prestashop';
$_MODULE['<{soflexibilite}prestashop>configuration_46f5a6aafb0c9281896bc83e12799510'] = 'Vous allez adorer nos autres modules';
$_MODULE['<{soflexibilite}prestashop>configuration_5b6cf869265c13af8566f192b4ab3d2a'] = 'Documentation';
$_MODULE['<{soflexibilite}prestashop>configuration_b5182d8eb75347e441450c33a940f9c4'] = 'Merci de lire la documentation';
$_MODULE['<{soflexibilite}prestashop>configuration_db5eb84117d06047c97c9a0191b5fffe'] = 'Support';
$_MODULE['<{soflexibilite}prestashop>configuration_5a20360a4561a8537d41d37780992c17'] = 'Le support technique est disponible seulement par e-mail.';
$_MODULE['<{soflexibilite}prestashop>configuration_651430de2bd38198965f8268749e908b'] = 'Pour tout support, merci de nous fournir';
$_MODULE['<{soflexibilite}prestashop>configuration_bb15b8d458f23303a9bb6a5f4b6f2f34'] = 'Une description détaillée du problème rencontré';
$_MODULE['<{soflexibilite}prestashop>configuration_5fa2806040520dc81cd5ed2534d795cb'] = 'Votre ID de commande disponible dans votre historique des commandes sur Prestashop Addons';
$_MODULE['<{soflexibilite}prestashop>configuration_7a579b573ff0f01c4bfa0412bc3abd03'] = 'Votre version de Prestashop';
$_MODULE['<{soflexibilite}prestashop>configuration_eec204828b3f96091a3cfa061a25918b'] = 'Votre version du module';
$_MODULE['<{soflexibilite}prestashop>configuration_07c42d0498378c2928d592bd933c385c'] = 'Support Common-Services';
$_MODULE['<{soflexibilite}prestashop>configuration_340fa442fa5e4a2f1bd881f7daf5854e'] = 'Support Colissimo Flexibilite';
$_MODULE['<{soflexibilite}prestashop>configuration_5a4986250fb1e473c546861131a2b61f'] = 'Bonjour, Je rencontre actuellement quelques soucis avec votre module en version %s sur mon Prestashop v%s.';
$_MODULE['<{soflexibilite}prestashop>configuration_8d282a8bd2fe903679ba3011d408c26a'] = 'Licence';
$_MODULE['<{soflexibilite}prestashop>configuration_01f1d0aed624750b841177137a71fceb'] = 'Ce module est soumit à une licence commerciale de la part de la S.A.R.L. SMC.';
$_MODULE['<{soflexibilite}prestashop>configuration_5930131df7694eeb2ba3fa1084fc851e'] = 'En cas d\'acquisition sur Prestashop Addons, la facture est la preuve de l\'obtention de votre licence.';
$_MODULE['<{soflexibilite}prestashop>configuration_a4fde23bda2fb6a622fc38653d8a661a'] = 'Dans les autres cas, veuillez nous contacter pour obtenir une licence';
$_MODULE['<{soflexibilite}prestashop>configuration_279d5d00ea04380ed74235702e10567f'] = 'Vérification de la Configuration';
$_MODULE['<{soflexibilite}prestashop>configuration_dd202cbc38daedfa3524477692fe9f14'] = 'Veuillez lire plus sur :';
$_MODULE['<{soflexibilite}prestashop>configuration_cc9b821f4d3c01e7cefffaf94056021a'] = 'La configuration du module et le contrôle d\'intégrité ont été réalisé avec succès.';
$_MODULE['<{soflexibilite}prestashop>configuration_eec6f26b86c7b449c8b292b5b0315d17'] = 'Paramètres PHP';
$_MODULE['<{soflexibilite}prestashop>configuration_550dffd05b1106af7252fa1d5f2326e4'] = 'Vos paramètres PHP pour le module ont été contrôlés et vérifiés avec succès.';
$_MODULE['<{soflexibilite}prestashop>configuration_38338588815210b0bae966d889e38416'] = 'Paramètres Prestashop';
$_MODULE['<{soflexibilite}prestashop>configuration_73ea827227ef5833d1cfdf93d27e7835'] = 'Vos paramètres Prestashop pour le module ont été contrôlés et vérifiés avec succès.';
$_MODULE['<{soflexibilite}prestashop>configuration_e2a0f83207975a5a9a08adfd80fa6345'] = 'Informations complémentaires pour le support';
$_MODULE['<{soflexibilite}prestashop>configuration_2daf1cb573c2c61422faf64610cf9402'] = 'Identifiants';
$_MODULE['<{soflexibilite}prestashop>configuration_c999566a089ad23d6d9c27d677e7a03d'] = 'Veuillez suivre notre tutoriel en ligne';
$_MODULE['<{soflexibilite}prestashop>configuration_99dea78007133396a7b8ed70578ac6ae'] = 'Identifiant';
$_MODULE['<{soflexibilite}prestashop>configuration_dc647eb65e6711e155375218212b3964'] = 'Mot de passe';
$_MODULE['<{soflexibilite}prestashop>configuration_344d3b5276f7f75ec0984e8b38ccaaab'] = 'Lien du Service Web';
$_MODULE['<{soflexibilite}prestashop>configuration_060bf2d587991d8f090a1309b285291c'] = 'Vérifier';
$_MODULE['<{soflexibilite}prestashop>configuration_3b19b09853de73179c3342fd4d5f7fa7'] = 'Échec de la connexion au Web Service.';
$_MODULE['<{soflexibilite}prestashop>configuration_c737e08003238dfac303f49806843cac'] = 'Plus d\'informations sur la configuration des identifiants';
$_MODULE['<{soflexibilite}prestashop>configuration_21b362533a61f7ddcbc893a306cf7162'] = 'Connexion réussi.';
$_MODULE['<{soflexibilite}prestashop>configuration_ec3028a12402ab7f43962a6f3a667b6e'] = 'Mode débug';
$_MODULE['<{soflexibilite}prestashop>configuration_93cba07454f06a4a960172bbd6e2a435'] = 'Oui';
$_MODULE['<{soflexibilite}prestashop>configuration_bafd7322c6e97d25b6299b5d6fe8920b'] = 'Non';
$_MODULE['<{soflexibilite}prestashop>configuration_254f642527b45bc260048e30704edb39'] = 'Configuration';
$_MODULE['<{soflexibilite}prestashop>configuration_928d3ee4b2a9f0d2b063693d9ef109a9'] = 'Compatibilité des Données';
$_MODULE['<{soflexibilite}prestashop>configuration_10d3fcb5268409515f510d256fb19ba7'] = 'Compatible avec SoNice Étiquetage et Expeditor Inet';
$_MODULE['<{soflexibilite}prestashop>configuration_0904930724358822330919d741e85d79'] = 'Compatible avec d\'autre solution tierce';
$_MODULE['<{soflexibilite}prestashop>configuration_13e5a4d3366a88ffa40a77a5263952d9'] = 'Numéro de substitution';
$_MODULE['<{soflexibilite}prestashop>configuration_0267a6a545be860d5377332d966e5f0c'] = 'Activer Google Maps';
$_MODULE['<{soflexibilite}prestashop>configuration_a38eed8be0d795a1a5778a1dbc3d913a'] = 'Clé API Google Maps';
$_MODULE['<{soflexibilite}prestashop>configuration_57fe132c158447f26f6c14db9bd3d1ac'] = 'Personalisation';
$_MODULE['<{soflexibilite}prestashop>configuration_d721757161f7f70c5b0949fdb6ec2c30'] = 'Thème';
$_MODULE['<{soflexibilite}prestashop>configuration_69504dc98a45978538ff7b9863f63a51'] = 'Afficher seulement la carte';
$_MODULE['<{soflexibilite}prestashop>configuration_f5629f60982026dad809b5eef5dad32a'] = 'Style Google Map';
$_MODULE['<{soflexibilite}prestashop>configuration_1d6af794b2599c1407a83029a09d1ecf'] = 'Transporteurs';
$_MODULE['<{soflexibilite}prestashop>configuration_bb2230e4ef5cb3a8ad3064ff31045608'] = 'Votre transporteur Colissimo';
$_MODULE['<{soflexibilite}prestashop>configuration_c09d91ec40ee6dfc4cce946f701b2400'] = 'Attention, il s\'agit d\'une fonctionnalité expérimentale.';
$_MODULE['<{soflexibilite}prestashop>configuration_b064d2bff9db0b0209e5c5785f7882af'] = 'Cette fonctionnalité nécessite que vous ayez configuré vos zones et pays convenablement avant de l\'utiliser. Merci de suivre les instructions de la mise en place des zones et pays sur la documentation en ligne du module avant d\'utiliser cette fonctionnalité.';
$_MODULE['<{soflexibilite}prestashop>configuration_67dc6d7035fdef191ee8d68e3a48dbce'] = 'Frais de port des transporteurs';
$_MODULE['<{soflexibilite}prestashop>configuration_847264de5690638e1d70f493867f2b7d'] = 'Mettre les frais de port aux transporteurs';
$_MODULE['<{soflexibilite}prestashop>configuration_b24d928d5b5a1bb3ce3715cc9065caba'] = 'Les frais de port ont été mis en place avec succès !';
$_MODULE['<{soflexibilite}prestashop>configuration_49e49a32e3588ab6f16c3927507694d5'] = 'Une erreur est survenu lors de la mise en place des frais de port...';
$_MODULE['<{soflexibilite}prestashop>configuration_21be31eb15eb1c8aa1be9689fd3bdbd6'] = 'Cette fonctionnalité nécessite que vous ayez configuré vos zones et pays convenablement avant de l\'utiliser.';
$_MODULE['<{soflexibilite}prestashop>configuration_8794de297f5bf1e2f7bcaa0c6656a775'] = 'Merci de suivre les instructions de la documentation en ligne pour tout mettre en place avant d\'utiliser cette fonctionnalité';
$_MODULE['<{soflexibilite}prestashop>configuration_ea4788705e6873b424c65e91c2846b19'] = 'Annuler';
$_MODULE['<{soflexibilite}prestashop>glossary_7f527d66e01174abaa6a623cbf1f5f72'] = 'Il s\'agit du n° de client sur 6 caractères, fourni par La Poste Colissimo à l\'ouverture de votre compte client.';
$_MODULE['<{soflexibilite}prestashop>glossary_af307ed3f97be14c33de885dac5d4048'] = 'Vous devez souscrire un contrat Colissimo Flexibilité opion Web Service d\'Étiquetage Unifié avec ColiPoste pour recevoir votre identifiant / mot de passe et utiliser ce service.';
$_MODULE['<{soflexibilite}prestashop>glossary_7710ad2def7b2d51f7ba82a5f670d754'] = 'Mot de passe associé au n° de client saisi.';
$_MODULE['<{soflexibilite}prestashop>glossary_80dbd24640339d90b28d3d116609349f'] = 'Il doit être identique à celui de votre espace client.';
$_MODULE['<{soflexibilite}prestashop>glossary_e9ab1d87878817b11baa72da253e6671'] = 'Lien du web service.';
$_MODULE['<{soflexibilite}prestashop>glossary_74aa17c0276383680b2f0201f2639c3d'] = 'Ne changez jamais ce lien sauf si Coliposte vous a explicitement demandé de le changer.';
$_MODULE['<{soflexibilite}prestashop>glossary_a71c7da865affb350dc174e1be011945'] = 'Affiche les traces pour débugguer ou en mode développement.';
$_MODULE['<{soflexibilite}prestashop>glossary_c01dba2d402de656eaee297772d10ac5'] = 'En exploitation cette option ne doit pas être active !';
$_MODULE['<{soflexibilite}prestashop>glossary_f02b46510ed8eff7cc2c17cacdf425c5'] = 'Choisir un mode de compatibilité pour utiliser le module soit avec la solution Expéditor Inet de Prestashop soit avec une solution d\'un tiers développeur ou interne.';
$_MODULE['<{soflexibilite}prestashop>glossary_b97347b0f11e27766e845f11a8c8fa54'] = 'Si vous utilisez le module Prestashop Expeditor Inet vous devez choisir la première solution';
$_MODULE['<{soflexibilite}prestashop>glossary_48c5c22d6b7ed968570b5de0bd105152'] = 'Vous devez aussi contacter le fournisseur de la solution pour une parfaite intégration. L\'intégrateur est responsable des données exportées vers Expéditor. Le module Colissimo Liberté garanti simplement la compatibilité des données exportées.';
$_MODULE['<{soflexibilite}prestashop>glossary_899a86a1bf983b85f218411065288e00'] = 'Attention, ce paramètre doit être configuré une fois et ne doit normalement pas être changé.';
$_MODULE['<{soflexibilite}prestashop>glossary_2a01fba29c81a0f272af2a574042d2c3'] = 'Ce numéro de téléphone sera utilisé au cas où un problème survient avec le numéro du client lors de l\'enregistrement de la commande.';
$_MODULE['<{soflexibilite}prestashop>glossary_0eaadb4fcb48a0a0ed7bc9868be9fbaa'] = 'Attention';
$_MODULE['<{soflexibilite}prestashop>glossary_6a4dd805abf4928973f68ce822899f5f'] = 'Coliposte détecte les faux numéros de téléphone tel que 0606123456, donnez le numéro de votre service client par exemple. Doit commencer par 06 ou 07.';
$_MODULE['<{soflexibilite}prestashop>glossary_23ab62eb0a575e74e887a81c132a1893'] = 'Si activé, seule la carte apparaîtra en front-office, la liste des points de retrait sera caché.';
$_MODULE['<{soflexibilite}prestashop>glossary_cbf663bfb90eb55ae054ed043684a061'] = 'Activer ou désactiver le chargement de l\'API Google Maps sur le front-office.';
$_MODULE['<{soflexibilite}prestashop>glossary_dae64c871401152f61138753548a550f'] = 'Peut être utile si plusieurs de vos modules chargent l\'API Google Maps sur la page de commande.';
$_MODULE['<{soflexibilite}prestashop>glossary_30e4ec2a9492b585580be43f41e21f4e'] = 'Ceci est un résumé de vos transporteurs Colissimo.';
$_MODULE['<{soflexibilite}prestashop>glossary_0a7adad436951e7372982537ea455550'] = 'Vous pouvez modifier un transporteur en cliquant sur la ligne qui lui correspond, vous serez redirigé vers la page de configuration du transporteur de Prestashop.';
$_MODULE['<{soflexibilite}prestashop>glossary_91d757703ca6fbd32a15e19007db8fe9'] = 'Vous pouvez personnaliser les couleurs de la Google Maps ici.';
$_MODULE['<{soflexibilite}prestashop>glossary_8bf1ebcb66d713879c96b337be08107e'] = 'Plusieurs styles peuvent être trouvé en ligne, par exemple sur';
$_MODULE['<{soflexibilite}prestashop>glossary_679c65ef812cae2fce35d30268fb90be'] = 'Copiez puis collez le tableau de style JavaScript (JavaScript Style Array) dans le champ texte ci-contre pour personnaliser la Google Map en front-office.';
$_MODULE['<{soflexibilite}prestashop>glossary_686c21e714cb38aa4e4a7d0a8a2c4813'] = 'Le module va configurer tous les frais de port automatiquement pour vos transporteurs ainsi vous n\'avez pas à le faire.';
$_MODULE['<{soflexibilite}prestashop>glossary_b2168fd28eaded224dac3f18c7517da6'] = 'Attention, il s\'agit d\'une fonctionnalité expérimentale, à utiliser avec précaution.';
$_MODULE['<{soflexibilite}prestashop>glossary_f267f91df2a148b534a3b4cc5c900b93'] = 'Cette fonctionnalité nécessite que vous ayez configuré vos zones et pays convenablement avant de l\'utiliser. Merci de suivre les instructions de la documentation en ligne pour tout mettre en place avant d\'utiliser cette fonctionnalité.';
$_MODULE['<{soflexibilite}prestashop>glossary_ea8c96bc73f1c4facded5b88deeebffd'] = 'Google a récemment annoncé une mise à jour de l\'API Google Maps et a introduit des plans limités et payant pour cette API.';
$_MODULE['<{soflexibilite}prestashop>glossary_1866df17513df9386a8bb2b4abce6c4f'] = 'Ce plan limité ne sera pris en compte que pour les site web utilisant Google Maps après le 22 Juin 2016, ainsi vous n\'avez peut être pas besoin d\'une clé API pour utiliser Google Maps sur votre boutique.';
$_MODULE['<{soflexibilite}prestashop>glossary_186705fc75b8b835aa2982276e3ad611'] = 'Cependant, si la carte ne se charge pas en front-office alors vous avez probablement besoin d\'une clé API. Pour recevoir votre clé API, visitez cette page';
$_MODULE['<{soflexibilite}prestashop>personnal_data_214157b085c3957c0e8974257eedbcb1'] = 'Étape préliminaire';
$_MODULE['<{soflexibilite}prestashop>personnal_data_6264ee9382870e7e4001f0b6a955e152'] = 'Afin d\'assurer le fonctionnement correct du module, veuillez compléter ce formulaire.';
$_MODULE['<{soflexibilite}prestashop>personnal_data_2e425432a80e80d146d26df8b7c7c6bc'] = 'Les champs suivis d\'une * sont obligatoires.';
$_MODULE['<{soflexibilite}prestashop>personnal_data_1f8261d17452a959e013666c5df45e07'] = 'Numéro de téléphone';
$_MODULE['<{soflexibilite}prestashop>personnal_data_a48b1a090fb0af2d51e34beda530794e'] = 'Exemple : 0144183004';
$_MODULE['<{soflexibilite}prestashop>personnal_data_642d3ba5db8b57e006584b544e490ec7'] = 'Code postal';
$_MODULE['<{soflexibilite}prestashop>personnal_data_4ed2b7a454f496bc1d48a35da6e06e90'] = 'Exemple : 92300';
$_MODULE['<{soflexibilite}prestashop>personnal_data_188f19afec76e0a3a1336a14ae8b455a'] = 'Nombre moyen de colis';
$_MODULE['<{soflexibilite}prestashop>personnal_data_043950cb479c3260ade8eeece54b5409'] = '< 250 colis / mois';
$_MODULE['<{soflexibilite}prestashop>personnal_data_5b208a9315eacba80fb231724ea47e83'] = '> 250 colis / mois';
$_MODULE['<{soflexibilite}prestashop>personnal_data_60adc330494a66981dec101c81e27f03'] = 'Siret';
$_MODULE['<{soflexibilite}prestashop>personnal_data_eecb47313f320edf63380079b3ee1bc3'] = 'Le siret est obligatoire';
$_MODULE['<{soflexibilite}prestashop>personnal_data_13f1f96ac7703ef2ced4beaeca2b6e01'] = 'Jaccepte que les informations relatives à mon volume denvoi de colis soient transmises à notre partenaire la Poste Colissimo.';
$_MODULE['<{soflexibilite}prestashop>personnal_data_97b9f3e84195b37135a3e6bc409cd6e0'] = 'En cas de refus, vous pouvez adresser un mail à ladresse suivante';
$_MODULE['<{soflexibilite}prestashop>personnal_data_70d9be9b139893aa6c69b5e77e614311'] = 'Confirmer';
$_MODULE['<{soflexibilite}prestashop>personnal_data_a54c596b03b4a6857bbf031c6045f57e'] = 'Demandez moi plus tard';
$_MODULE['<{soflexibilite}prestashop>validate_c9cc8cce247e49bae79f15173ce97354'] = 'Sauvegarder';
$_MODULE['<{soflexibilite}prestashop>displayadminorder_4d5ba370cd5e76a1ae5b3bbd69ff0882'] = 'Taper l\'ID du point de retrait';
$_MODULE['<{soflexibilite}prestashop>displayadminorder_13348442cc6a27032d2b4aa28b75a5d3'] = 'Chercher';
$_MODULE['<{soflexibilite}prestashop>displaybackofficefooter_13348442cc6a27032d2b4aa28b75a5d3'] = 'Chercher';
$_MODULE['<{soflexibilite}prestashop>displaybeforecarrier_f342ef0d400c668756c7a35311b1f028'] = 'Vous devez choisir un point de retrait pour continuer !';
$_MODULE['<{soflexibilite}prestashop>displaybeforecarrier_e0161ecc87073e7189602c4852ca238e'] = 'Vous devez être connecté pour utiliser ce transporteur.';
$_MODULE['<{soflexibilite}prestashop>displaybeforecarrier_9fe1e82a78dce9160004a81c2c7ec989'] = 'SoFlexibilite : Pas de DIV cible trouvée, contactez notre support technique s\'il vous plait.';
$_MODULE['<{soflexibilite}prestashop>displaybeforecarrier_0ee9e5e2990e6fbedf9136f8aa1f88d0'] = 'SoFlexibilite : Pas de DIV de vérification avant paiement cible trouvée, contactez notre support technique s\'il vous plait.';
$_MODULE['<{soflexibilite}prestashop>displaybeforecarrier_364b70fcec1d5e9fa35e144f4eead6dd'] = 'Veuillez indiquer un numéro de téléphone mobile valide. Vous ne pouvez saisir qu\'un numéro de téléphone mobile français ou belge.';
$_MODULE['<{soflexibilite}prestashop>displaybeforecarrier_b0bc8a0f67489bd4648727c5953a37ce'] = 'Veuillez indiquer un numéro de téléphone mobile valide. Vous ne pouvez saisir qu\'un numéro de téléphone mobile français ou belge.';
$_MODULE['<{soflexibilite}prestashop>displaybeforecarrier_87d12a541cd57893ae501b232bfa080e'] = 'Vous devez entrer une adresse email valide !';
$_MODULE['<{soflexibilite}prestashop>displaybeforecarrier_19b1bd5733e883538e0885c9e687c05b'] = 'Google Map n\'a pas réussi à être chargé sur la page, essayer de rafraichir la page. Si le problème persiste, merci de contacter l\'administrateur.';
$_MODULE['<{soflexibilite}prestashop>displaybeforecarrier_efebc1024ec090c27ef7f05e7eabcdcd'] = 'Désolé, nous ne livrons actuellement pas nos produits vers ce pays. Sélectionnez en un autre.';
$_MODULE['<{soflexibilite}prestashop>displaybeforecarrier_16d58d39f1ae2abb2be9f87bd2d3c32f'] = 'Attention, les frais de livraison pour ce pays (##relay_country##) sont différents de ceux du pays actuel que vous avez choisit (##current_country##).';
$_MODULE['<{soflexibilite}prestashop>displaybeforecarrier_239de4a11f95a2119c7b0eb69314e4ca'] = 'Les frais de livraison vers ce pays sont de ##relay_price##.';
$_MODULE['<{soflexibilite}prestashop>displaybeforecarrier_e42d01f95bd074aa68ba88c7ab2c1d91'] = 'Voulez-vous continuer ?';
$_MODULE['<{soflexibilite}prestashop>displaybeforecarrier_f2b0442681557f01400cdefc6f0b9b96'] = 'Mise à jour de la liste des transporteurs, merci de patienter.';
$_MODULE['<{soflexibilite}prestashop>displaybeforecarrier_d9d53fbcfa2a0ea1801ce3040eb27677'] = 'Livraison Colissimo';
$_MODULE['<{soflexibilite}prestashop>displaybeforecarrier_5020eaae41baf0caa37bcb73b4a12934'] = 'Portable';
$_MODULE['<{soflexibilite}prestashop>displaybeforecarrier_1cc596f547117a22733a5a12783b754a'] = 'Vous recevrez les notifications par SMS sur votre mobile';
$_MODULE['<{soflexibilite}prestashop>displaybeforecarrier_3dfc5f71b2e9b8821b4933e79860b28b'] = 'Information sur la commande';
$_MODULE['<{soflexibilite}prestashop>displaybeforecarrier_fca8b7f2a8fa7d9ce92120e284064bf5'] = 'VOUS AVEZ DÉCIDÉ D\'ÊTRE LIVRÉ À L\'ADRESSE DE VOTRE CHOIX';
$_MODULE['<{soflexibilite}prestashop>displaybeforecarrier_8d3454c011622ee132108dbd1da3009d'] = 'VOUS AVEZ DÉCIDÉ D\'ÊTRE LIVRÉ AU POINT DE RETRAIT DE VOTRE CHOIX';
$_MODULE['<{soflexibilite}prestashop>displaybeforecarrier_a774b05ed1ee17f019d8b0acce7e6eaa'] = 'Vous serez informé de la disponibilité de votre colis par SMS et par courriel, avec un bon de retrait vous permettant de venir le retirer en bureau dans les 10 jours ouvrables.';
$_MODULE['<{soflexibilite}prestashop>displaybeforecarrier_3a668c59d67617b224a109c3086b6289'] = 'A proximité de quelle adresse souhaitez-vous chercher';
$_MODULE['<{soflexibilite}prestashop>displaybeforecarrier_13348442cc6a27032d2b4aa28b75a5d3'] = 'Recherche';
$_MODULE['<{soflexibilite}prestashop>displaybeforecarrier_fe3ec5583839c5875550edc302410ebe'] = 'Recherche détaillée';
$_MODULE['<{soflexibilite}prestashop>displaybeforecarrier_8524de963f07201e5c086830d370797f'] = 'Chargement...';
$_MODULE['<{soflexibilite}prestashop>displaybeforecarrier_0067bea96d80c3d5518f53ff5bcbda76'] = 'Itinéraire par';
$_MODULE['<{soflexibilite}prestashop>displaybeforecarrier_8060dc318b0fafb0fc2e609eb5954723'] = 'Voiture';
$_MODULE['<{soflexibilite}prestashop>displaybeforecarrier_db6ea77c7cd8a86b17014c3b688fd1a1'] = 'Marche';
$_MODULE['<{soflexibilite}prestashop>displaybeforecarrier_25f7347236b51a5eae4ba01a7862cb55'] = 'Horaires';
$_MODULE['<{soflexibilite}prestashop>displaybeforecarrier_7d9cb787a2770759855db528d98504c2'] = 'Fermetures';
$_MODULE['<{soflexibilite}prestashop>displaybeforecarrier_cdbebfa876c0c326cf725954dacdccd6'] = 'Choisir un autre point de retrait';
$_MODULE['<{soflexibilite}prestashop>displaybeforecarrier_961f2247a2070bedff9f9cd8d64e2650'] = 'Choisir';
$_MODULE['<{soflexibilite}prestashop>displaybeforecarrier_953bccf9d99292c2aee8dbeb90e48603'] = 'Désolé. Il n\'y a pas de point de retrait dans cette zone pour votre sélection';

View File

@ -0,0 +1,99 @@
<?php
/**
* NOTICE OF LICENSE
*
* This source file is subject to a commercial license from Common-Services Co., Ltd.
* Use, copy, modification or distribution of this source file without written
* license agreement from the SARL SMC is strictly forbidden.
* In order to obtain a license, please contact us: contact@common-services.com
* ...........................................................................
* INFORMATION SUR LA LICENCE D'UTILISATION
*
* L'utilisation de ce fichier source est soumise a une licence commerciale
* concedee par la societe Common-Services Co., Ltd.
* Toute utilisation, reproduction, modification ou distribution du present
* fichier source sans contrat de licence ecrit de la part de la Common-Services Co. Ltd. est
* expressement interdite.
* Pour obtenir une licence, veuillez contacter Common-Services Co., Ltd. a l'adresse: contact@common-services.com
* ...........................................................................
*
* @package Colissimo Flexibilite
* @author Alexandre D.
* @copyright Copyright (c) 2011-2015 Common Services Co Ltd - 90/25 Sukhumvit 81 - 10260 Bangkok - Thailand
* @license Commercial license
* Support by mail : support.soflexibilite@common-services.com
*/
ob_start();
if (isset($_SERVER['HTTP_HOST']) && $_SERVER['HTTP_HOST'] == 'localhost') {
require_once(readlink(dirname($_SERVER['SCRIPT_FILENAME']).'/../../../config/config.inc.php'));
require_once(readlink(dirname($_SERVER['SCRIPT_FILENAME']).'/../../../init.php'));
} else {
@require_once(dirname(__FILE__).'/../../../config/config.inc.php');
@require_once(dirname(__FILE__).'/../../../init.php');
}
require_once(_PS_MODULE_DIR_.'soflexibilite/soflexibilite.php');
require_once(_PS_MODULE_DIR_.'soflexibilite/classes/SoFlexibiliteWebService.php');
require_once(_PS_MODULE_DIR_.'soflexibilite/classes/SoFlexibiliteDelivery.php');
$id_pickup = Tools::getValue('id_pickup');
$id_customer = Tools::getValue('id_customer');
$id_cart = Tools::getValue('id_cart');
if (!$id_pickup) {
die('No pickup ID retrieved');
}
if (!$id_customer) {
die('No customer ID retrieved');
}
if (!$id_cart) {
die('No cart ID retrieved');
}
$id_pickup = sprintf('%06s', $id_pickup);
$soflexibilite_api = new SoFlexibiliteWebService();
$relay = $soflexibilite_api->getRelay($id_pickup);
if ($relay instanceof stdClass && $relay->identifiant) {
// Change pickup information
$so_delivery = new SoFlexibiliteDelivery();
$so_delivery->id_cart = (int)$id_cart;
$so_delivery->id_customer = (int)$id_customer;
$so_delivery->loadDelivery();
$old_company = $so_delivery->libelle;
$so_delivery->type = $relay->typeDePoint;
$so_delivery->id_point = $relay->identifiant;
$so_delivery->libelle = $relay->nom;
$so_delivery->country = $relay->codePays;
$so_delivery->reseau = $relay->reseau;
$status = (bool)$so_delivery->saveDelivery();
// Pickup name is saved in Comapny name in address
// Change it
$cart = new Cart($id_cart);
$delivery_address = new Address((int)$cart->id_address_delivery);
if (Validate::isLoadedObject($delivery_address) && $old_company == $delivery_address->company) {
$delivery_address->company = $so_delivery->libelle;
$delivery_address->save();
}
$json = array(
'output' => ob_get_clean(),
'status' => $status
);
die(Tools::jsonEncode($json));
}
$json = array(
'output' => ob_get_clean(),
'status' => false
);
die(Tools::jsonEncode($json));

View File

@ -0,0 +1,115 @@
<?php
/**
* NOTICE OF LICENSE
*
* This source file is subject to a commercial license from Common-Services Co., Ltd.
* Use, copy, modification or distribution of this source file without written
* license agreement from the SARL SMC is strictly forbidden.
* In order to obtain a license, please contact us: contact@common-services.com
* ...........................................................................
* INFORMATION SUR LA LICENCE D'UTILISATION
*
* L'utilisation de ce fichier source est soumise a une licence commerciale
* concedee par la societe Common-Services Co., Ltd.
* Toute utilisation, reproduction, modification ou distribution du present
* fichier source sans contrat de licence ecrit de la part de la Common-Services Co. Ltd. est
* expressement interdite.
* Pour obtenir une licence, veuillez contacter Common-Services Co., Ltd. a l'adresse: contact@common-services.com
* ...........................................................................
*
* @package Colissimo Flexibilite
* @author Alexandre D.
* @copyright Copyright (c) 2011-2015 Common Services Co Ltd - 90/25 Sukhumvit 81 - 10260 Bangkok - Thailand
* @license Commercial license
* Support by mail : support.soflexibilite@common-services.com
*/
if (isset($_SERVER['DropBox']) && $_SERVER['DropBox']) {
require_once(readlink(dirname($_SERVER['SCRIPT_FILENAME']).'/../../../config/config.inc.php'));
} else {
require_once(dirname(__FILE__).'/../../../config/config.inc.php');
}
class CheckLogin
{
public $options = array();
public $params = array();
public $method = 'findRDVPointRetraitAcheminement';
public $request;
public $client;
public $ws;
public function __construct()
{
// SOAP
$this->options['trace'] = true;
$this->options['exceptions'] = true;
$this->options['soap_version'] = 'SOAP_1_1';
$this->options['encoding'] = 'utf-8';
$this->ws = Tools::getValue('ws');
// Params
$this->request = md5(date('Ymdhis'));
$this->params['accountNumber'] = Tools::getValue('login');
$this->params['password'] = Tools::getValue('pwd');
$this->params['address'] = '51 avenue Paul Doumer';
$this->params['zipCode'] = '75116';
$this->params['city'] = 'Paris';
$this->params['countryCode'] = 'FR';
$this->params['optionInter'] = 1;
$this->params['weight'] = '30';
$this->params['shippingDate'] = date('d/m/Y', time() + 86400 * 2);
$this->params['filterRelay'] = '0';
$this->params['requestId'] = $this->request.$this->request;
}
public function checkLog()
{
try {
$this->client = new SoapClient($this->ws, $this->options);
} catch (Exception $e) {
$callback = Tools::getValue('callback');
die($callback.'('.Tools::jsonEncode(array(
'status' => false,
'error_id' => 0,
'error' => '<pre>'.print_r(libxml_get_errors(), true).'<br>'.
var_dump(libxml_get_last_error()).'<br>'.$e->getMessage().'</pre>'
)).')');
}
try {
$result = $this->client->__call($this->method, array($this->params));
} catch (SoapFault $fault) {
$callback = Tools::getValue('callback');
die($callback.'('.Tools::jsonEncode(array(
'status' => false,
'error_id' => 0,
'error' => '<pre>Request : <br/><xmp>'.$this->client->__getLastRequest().'</xmp><br/>'.
'Response : <br/><xmp>'.$this->client->__getLastResponse().'</xmp><br/>'.
'Error Message : <br/>'.$fault->getMessage().'<br/>'.$fault->getMessage().'</pre>'
)).')');
}
if (isset($result->return->listePointRetraitAcheminement) &&
is_array($result->return->listePointRetraitAcheminement) &&
count($result->return->listePointRetraitAcheminement)) {
$status = true;
} else {
$status = false;
}
$callback = Tools::getValue('callback');
die($callback.'('.Tools::jsonEncode(array(
'status' => $status,
'error_id' => (string)$result->return->errorCode,
'error' => (string)$result->return->errorMessage,
)).')');
}
}
$checker = new CheckLogin();
$checker->checkLog();

View File

@ -0,0 +1,59 @@
<?php
/**
* NOTICE OF LICENSE
*
* This source file is subject to a commercial license from Common-Services Co., Ltd.
* Use, copy, modification or distribution of this source file without written
* license agreement from the SARL SMC is strictly forbidden.
* In order to obtain a license, please contact us: contact@common-services.com
* ...........................................................................
* INFORMATION SUR LA LICENCE D'UTILISATION
*
* L'utilisation de ce fichier source est soumise a une licence commerciale
* concedee par la societe Common-Services Co., Ltd.
* Toute utilisation, reproduction, modification ou distribution du present
* fichier source sans contrat de licence ecrit de la part de la Common-Services Co. Ltd. est
* expressement interdite.
* Pour obtenir une licence, veuillez contacter Common-Services Co., Ltd. a l'adresse: contact@common-services.com
* ...........................................................................
*
* @package soflexibilite
* @author ${MY_NAME}
* @copyright Copyright (c) 2011-2015 Common Services Co Ltd - 90/25 Sukhumvit 81 - 10260 Bangkok - Thailand
* @license Commercial license
* Support by mail : support.soflexibilite@common-services.com
*/
// Load libraries
if (isset($_SERVER['DropBox']) && $_SERVER['DropBox']) {
if (@readlink(dirname($_SERVER['SCRIPT_FILENAME']).'/config/config.inc.php') !== false) {
require_once readlink(dirname($_SERVER['SCRIPT_FILENAME']).'/config/config.inc.php');
} elseif (@readlink(dirname($_SERVER['SCRIPT_FILENAME']).'/../../config/config.inc.php') !== false) {
require_once readlink(dirname($_SERVER['SCRIPT_FILENAME']).'/../../config/config.inc.php');
} elseif (@readlink(dirname($_SERVER['SCRIPT_FILENAME']).'/../../../config/config.inc.php') !== false) {
require_once readlink(dirname($_SERVER['SCRIPT_FILENAME']).'/../../../config/config.inc.php');
}
} else {
require_once dirname(__FILE__).'/../../../config/config.inc.php';
}
$init_path = _PS_ROOT_DIR_;
if (version_compare(_PS_VERSION_, '1.4.5.1', '==')) {
$init_path = defined('_PS_ADMIN_DIR_') ? _PS_ADMIN_DIR_ : _PS_ROOT_DIR_;
}
require_once $init_path.'/init.php';
require_once dirname(__FILE__).'/../classes/SoFlexibiliteDelivery.php';
require_once dirname(__FILE__).'/../classes/SoFlexibiliteTools.php';
require_once dirname(__FILE__).'/../classes/SoFlexibiliteWebService.php';
require_once dirname(__FILE__).'/../classes/SoFlexibiliteCarrier.php';
require_once dirname(__FILE__).'/../classes/SoFlexibiliteGroup.php';
require_once dirname(__FILE__).'/../classes/SoFlexibiliteRangePrice.php';
require_once dirname(__FILE__).'/../classes/SoFlexibiliteRangeWeight.php';
require_once dirname(__FILE__).'/../classes/SoFlexibiliteZone.php';
require_once dirname(__FILE__).'/../classes/SoFlexibiliteFileSystem.php';
require_once dirname(__FILE__).'/../classes/SoFlexibiliteThirdParty.php';
if (!class_exists('ConfigureMessage')) {
require_once(dirname(__FILE__).'/../classes/shared/configure_message.class.php');
}

View File

@ -0,0 +1,11 @@
<?php
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
header("Location: ../");
exit;

View File

@ -0,0 +1,317 @@
<?php
/**
* NOTICE OF LICENSE
*
* This source file is subject to a commercial license from Common-Services Co., Ltd.
* Use, copy, modification or distribution of this source file without written
* license agreement from the SARL SMC is strictly forbidden.
* In order to obtain a license, please contact us: contact@common-services.com
* ...........................................................................
* INFORMATION SUR LA LICENCE D'UTILISATION
*
* L'utilisation de ce fichier source est soumise a une licence commerciale
* concedee par la societe Common-Services Co., Ltd.
* Toute utilisation, reproduction, modification ou distribution du present
* fichier source sans contrat de licence ecrit de la part de la Common-Services Co. Ltd. est
* expressement interdite.
* Pour obtenir une licence, veuillez contacter Common-Services Co., Ltd. a l'adresse: contact@common-services.com
* ...........................................................................
*
* @package Colissimo Flexibilite
* @author Alexandre D.
* @copyright Copyright (c) 2011-2015 Common Services Co Ltd - 90/25 Sukhumvit 81 - 10260 Bangkok - Thailand
* @license Commercial license
* Support by mail : support.soflexibilite@common-services.com
*/
if (isset($_SERVER['HTTP_HOST']) && $_SERVER['HTTP_HOST'] == 'localhost') {
require_once(readlink(dirname($_SERVER['SCRIPT_FILENAME']).'/../../../config/config.inc.php'));
require_once(readlink(dirname($_SERVER['SCRIPT_FILENAME']).'/../../../init.php'));
} else {
@require_once(dirname(__FILE__).'/../../../config/config.inc.php');
@require_once(dirname(__FILE__).'/../../../init.php');
}
require_once(_PS_MODULE_DIR_.'soflexibilite/soflexibilite.php');
require_once(_PS_MODULE_DIR_.'soflexibilite/classes/SoFlexibiliteWebService.php');
class SoFlexibilitePointList extends Module
{
private $soflexibilite = null;
public function __construct()
{
$this->soflexibilite = new SoFlexibilite();
parent::__construct();
}
public function l($string, $specific = false)
{
if (!$specific) {
$specific = 'point_list';
}
return ($this->soflexibilite->l($string, $specific));
}
protected function getActiveSoColissimoPickupCarriers()
{
$relay = Configuration::get('SOFLEXIBILITE_A2P_ID');
$cityssimo = Configuration::get('SOFLEXIBILITE_CIT_ID');
$bpr = Configuration::get('SOFLEXIBILITE_BPR_ID');
$relay_types = array_filter(array((int)$relay, (int)$cityssimo, (int)$bpr));
$active_carriers = Db::getInstance()->executeS(
'SELECT `id_carrier`, `active`
FROM `'._DB_PREFIX_.'carrier`
WHERE `id_carrier` IN ('.implode(', ', $relay_types).')'
);
$carriers = array();
if (is_array($active_carriers) && count($active_carriers)) {
foreach ($active_carriers as $carrier) {
$carriers[$carrier['id_carrier']] = $carrier['active'];
}
} else {
$carriers = array(
$relay => false,
$cityssimo => false,
$bpr => false
);
}
return ($carriers);
}
public function dispatch()
{
$error = '';
$horaires = array();
$fermetures_relay = array();
$test = null;
$ferme_relay = null;
$points = array();
$point = null;
$relay = Configuration::get('SOFLEXIBILITE_A2P_ID');
$bpr = Configuration::get('SOFLEXIBILITE_BPR_ID');
$active_carriers = $this->getActiveSoColissimoPickupCarriers();
$relay = isset($active_carriers[$relay]) ? (bool)$active_carriers[$relay] : false;
$bpr = isset($active_carriers[$bpr]) ? (bool)$active_carriers[$bpr] : false;
ob_start();
$pass = true;
$address = array();
if (Tools::getValue('adresseRecherche') && Tools::getValue('address') &&
Tools::getValue('postcode') && Tools::getValue('city')) {
$address = array(
'address' => pSQL(Tools::getValue('address')),
'postcode' => (Tools::getValue('postcode')),
'city' => pSQL(Tools::getValue('city')),
'country' => pSQL(Tools::getValue('country')),
'weight' => '1',
'date' => date('d/m/Y', time() + 86400 * 2)
);
} else {
$error = $this->l('Invalid Query');
$pass = false;
}
if ($pass) {
$so_colissimo = new SoFlexibiliteWebService();
$point = $so_colissimo->getRelays($address, $relay);
}
if (isset($point->return->listePointRetraitAcheminement) &&
is_array($point->return->listePointRetraitAcheminement) &&
count($point->return->listePointRetraitAcheminement)) {
$listePointRetraitAcheminement = $point->return->listePointRetraitAcheminement;
$i = 0;
foreach ($listePointRetraitAcheminement as $pointRetraitAcheminement) {
if (!$pointRetraitAcheminement instanceof stdClass) {
continue;
} elseif (!$bpr && in_array($pointRetraitAcheminement->typeDePoint, array('BPR', 'BDP', 'CDI'))) {
continue;
}
$points[$i] = $pointRetraitAcheminement;
$horaires[$i] = $pointRetraitAcheminement->horairesOuvertureLundi.' '
.$pointRetraitAcheminement->horairesOuvertureMardi.' '
.$pointRetraitAcheminement->horairesOuvertureMercredi.' '
.$pointRetraitAcheminement->horairesOuvertureJeudi.' '
.$pointRetraitAcheminement->horairesOuvertureVendredi.' '
.$pointRetraitAcheminement->horairesOuvertureSamedi.' '
.$pointRetraitAcheminement->horairesOuvertureDimanche;
if (isset($pointRetraitAcheminement->listeConges->calendarDeDebut)) {
$fermetures_relay[$i] = Tools::substr(
str_replace('-', '/', $pointRetraitAcheminement->listeConges->calendarDeDebut),
0,
10
).'-'.Tools::substr(
str_replace('-', '/', $pointRetraitAcheminement->listeConges->calendarDeFin),
0,
10
);
} else {
$fermetures_relay[$i] = null;
}
$i++;
}
} elseif (isset($point->return->errorCode) && $point->return->errorCode) {
$error = sprintf('%s (%d): %s', $this->l('Error'), $point->return->errorCode, $point->return->errorMessage);
} else {
$error = sprintf('%s: %s', $this->l('Error'), $this->l('Web Service call failed'));
$error .= print_r($point, true);
}
foreach ($horaires as $str) {
$html = '<table class="tableHoFe"><thead><td>'.$this->l('Mon').'</td><td>'.$this->l('Tue').'</td><td>'.
$this->l('Wed').'</td><td>'.$this->l('Thu').'</td><td>'.$this->l('Fri').'</td><td>'.$this->l('Sat').
'</td><td>'.$this->l('Sun').'</td></thead>';
if (trim($str) == '') {
$str = '00:00-00:00 00:00-00:00 00:00-00:00 00:00-00:00 00:00-00:00 00:00-00:00 00:00-00:00 '.
'00:00-00:00 00:00-00:00 00:00-00:00 00:00-00:00 00:00-00:00 00:00-00:00 00:00-00:00';
}
$tps = explode(' ', $str);
$ranges_html = '';
for ($i = 0, $j = 0; $i < 14; $i += 2, $j += 1) {
$matin = explode('-', $tps[$i]);
$aprem = explode('-', $tps[$i + 1]);
$o_matin = $matin[0];
$c_matin = $matin[1];
$o_aprem = $aprem[0];
$c_aprem = $aprem[1];
$tranche1_ouverture = strtotime('Monday') + 80000 + strtotime($o_matin);
$tranche1_fermeture = strtotime('Monday') + 80000 + strtotime($c_matin);
$tranche2_ouverture = strtotime('Monday') + 80000 + strtotime($o_aprem);
$tranche2_fermeture = strtotime('Monday') + 80000 + strtotime($c_aprem);
$jour = date('l', (strtotime('Monday') + 80000 + (86400 * $j)));
$jours = array();
$jours['Monday'] = $this->l('Monday');
$jours['Tuesday'] = $this->l('Tuesday');
$jours['Wednesday'] = $this->l('Wednesday');
$jours['Thursday'] = $this->l('Thursday');
$jours['Friday'] = $this->l('Friday');
$jours['Saturday'] = $this->l('Saturday');
$jours['Sunday'] = $this->l('Sunday');
$jour = $jours[$jour];
if ($tranche1_fermeture - $tranche1_ouverture) {
$debutMat = $o_matin;
$finMat = $c_matin;
$debutAprem = $o_aprem;
$finAprem = $c_aprem;
if ($tranche2_fermeture - $tranche2_ouverture) {
$class = 'hoClose';
$ranges_html = '<table class="hoLeft"><thead>'.
'<tr><td>&nbsp;</td></tr></thead>'.
'<tbody>'.
'<tr><td>'.$debutMat.' - '.$finMat.'</td></tr>'.
'<tr><td>'.$finMat.' - '.$debutAprem.'</td></tr>'.
'<tr><td>'.$debutAprem.' - '.$finAprem.'</td></tr>'.
'</tbody>'.
'</table>';
} else {
$class = 'hoOpen';
$ranges_html = '<table class="hoLeft"><thead>'.
'<tr><td>&nbsp;</td></tr></thead>'.
'<tbody>'.
'<tr><td>'.$debutMat.' - 12h00</td></tr>'.
'<tr><td>12h00 - 14h00</td></tr>'.
'<tr><td>14h00 - '.$finMat.'</td></tr>'.
'</tbody>'.
'</table>';
}
$html .= '<td><div class="hoOpen">&nbsp;</div><div class="'.$class.
'">&nbsp;<br></div><div class="hoOpen">&nbsp;</div></td>';
} else {
$html .= '<td><div class="hoClose">&nbsp;</div><div class="hoClose">&nbsp;<br></div>'.
'<div class="hoClose">&nbsp;</div></td>';
$ranges_html = '<table class="hoLeft"><thead>'.
'<tr><td>&nbsp;</td></tr></thead>'.
'<tbody>'.
'<tr><td>08h00 - 12h00</td></tr>'.
'<tr><td>12h00 - 14h00</td></tr>'.
'<tr><td>14h00 - 18h00</td></tr>'.
'</tbody>'.
'</table>';
}
}
$html .= '</tr>';
$html .= '</table>';
$end_html = '<div class="hoClean"></div>';
$test[] .= $ranges_html.$html.$end_html;
}
// Formatage des fermetures
$html = null;
foreach ($fermetures_relay as $val) {
if ($val) {
$ho = explode('-', $val);
$today = date('Y/m/d');
if (strtotime($today) >= strtotime($ho[0]) && strtotime($today.' +3 days') <= strtotime($ho[1])) {
$html = 'disabled';
} else {
$ho[0] = date('d/m/Y', strtotime($ho[0]));
$ho[1] = date('d/m/Y', strtotime($ho[1]));
$html = '<span style="font-weight: bold;">'.$this->l('from').' '.$ho[0].' '.
$this->l('to').' '.$ho[1].'</span>';
}
$ferme_relay[] .= $html;
} else {
$ferme_relay[] .= 'N/A';
}
}
$result = ob_get_clean();
if ($result) {
$output = $result;
} else {
$output = null;
}
$points ? $status = true : $status = false;
$json = array(
'output' => $output,
'status' => $status,
'points' => $points,
'error' => $error,
'horaires' => $test,
'fermetures' => $ferme_relay
);
die(Tools::jsonEncode($json));
}
}
$_soFlexibilite_PointList = new SoFlexibilitePointList();
$_soFlexibilite_PointList->dispatch();

View File

@ -0,0 +1,154 @@
<?php
/**
* NOTICE OF LICENSE
*
* This source file is subject to a commercial license from Common-Services Co., Ltd.
* Use, copy, modification or distribution of this source file without written
* license agreement from the SARL SMC is strictly forbidden.
* In order to obtain a license, please contact us: contact@common-services.com
* ...........................................................................
* INFORMATION SUR LA LICENCE D'UTILISATION
*
* L'utilisation de ce fichier source est soumise a une licence commerciale
* concedee par la societe Common-Services Co., Ltd.
* Toute utilisation, reproduction, modification ou distribution du present
* fichier source sans contrat de licence ecrit de la part de la Common-Services Co. Ltd. est
* expressement interdite.
* Pour obtenir une licence, veuillez contacter Common-Services Co., Ltd. a l'adresse: contact@common-services.com
* ...........................................................................
*
* @package Colissimo Flexibilite
* @author Alexandre D.
* @copyright Copyright (c) 2011-2015 Common Services Co Ltd - 90/25 Sukhumvit 81 - 10260 Bangkok - Thailand
* @license Commercial license
* Support by mail : support.soflexibilite@common-services.com
*/
if (isset($_SERVER['HTTP_HOST']) && $_SERVER['HTTP_HOST'] == 'localhost') {
require_once(readlink(dirname($_SERVER['SCRIPT_FILENAME']) . '/../../../config/config.inc.php'));
require_once(readlink(dirname($_SERVER['SCRIPT_FILENAME']) . '/../../../init.php'));
} else {
@require_once(dirname(__FILE__) . '/../../../config/config.inc.php');
@require_once(dirname(__FILE__) . '/../../../init.php');
}
require_once(dirname(__FILE__).'/../soflexibilite.php');
require_once(dirname(__FILE__).'/../classes/SoFlexibiliteDelivery.php');
require_once(dirname(__FILE__).'/../classes/SoFlexibiliteCarrierFeeChecker.php');
class SoFlexibiliteDeliverySave extends SoFlexibilite
{
public function save()
{
ob_start();
$id = null;
$type = null;
$pass = true;
$debug = false || Tools::getValue('debug');
// Ocarat change to invoice address
$address = new Address((int)$this->context->cart->id_address_invoice);
if (!Validate::isLoadedObject($address) && Tools::getValue('id_cart')) {
$cart = new Cart((int)Tools::getValue('id_cart'));
if (Validate::isLoadedObject($cart)) {
$address = new Address((int)$cart->id_address_invoice);
}
}
if (!Validate::isLoadedObject($address)) {
if ($debug) {
die(sprintf(
'%s(#%d): Validate::isLoadedObject(%d) failed' . "\n",
basename(__FILE__),
__LINE__,
(int)$this->context->cart->id_address_delivery
));
}
$pass = false;
}
if (!(Tools::getValue('id') && Tools::getValue('type') && Tools::getValue('id_cart') &&
Tools::getValue('libelle') && Tools::getValue('adresse1') && Tools::getValue('code_postal')
&& Tools::getValue('commune'))
) {
if ($debug) {
die(sprintf(
'%s(#%d): Missing Parameter' . "\n",
basename(__FILE__),
__LINE__,
(int)$this->context->cart->id_address_delivery
));
}
$pass = false;
}
if ($pass) {
if (!isset($this->context->customer) || !Validate::isLoadedObject($this->context->customer)) {
if (isset($cart) && Validate::isLoadedObject($cart)) {
$this->context->customer = new Customer((int)$cart->id_customer);
}
}
$id = (int)Tools::getValue('id');
$type = Tools::getValue('type');
$id_cart = (int)Tools::getValue('id_cart');
$phone = Tools::getValue('phone');
$libelle = Tools::getValue('libelle');
$indice = Tools::getValue('indice');
$codePostal = Tools::getValue('code_postal');
$commune = Tools::getValue('commune');
$adresse1 = Tools::getValue('adresse1');
$country = Tools::getValue('country');
$reseau = Tools::getValue('reseau');
$so_delivery = new SoFlexibiliteDelivery();
$so_delivery->id_cart = (int)$id_cart;
$so_delivery->id_order = -time();
$so_delivery->id_point = pSQL(sprintf('%06s', $id));
$so_delivery->id_customer = (int)$this->context->customer->id;
$so_delivery->firstname = $address->firstname;
$so_delivery->lastname = $address->lastname;
$so_delivery->company = $address->company;
$so_delivery->telephone = pSQL($phone);
$so_delivery->email = pSQL($this->context->customer->email);
$so_delivery->type = $type;
$so_delivery->libelle = pSQL($libelle);
$so_delivery->indice = pSQL($indice);
$so_delivery->postcode = pSQL($codePostal);
$so_delivery->city = pSQL($commune);
$so_delivery->country = pSQL($country);
$so_delivery->address1 = pSQL($adresse1);
$so_delivery->address2 = pSQL('');
$so_delivery->lieudit = pSQL('');
$so_delivery->reseau = pSQL($reseau);
$status = (bool)$so_delivery->saveDelivery();
SoFlexibiliteCarrierFeeChecker::set($id_cart, $this->context->customer->id, $country);
} else {
$status = false;
}
$result = ob_get_clean();
if ($result) {
$output = $result;
} else {
$output = null;
}
$json = array(
'output' => $output,
'status' => $status
);
die(Tools::jsonEncode($json));
}
}
$so_flexibilite_delivery_save = new SoFlexibiliteDeliverySave();
$so_flexibilite_delivery_save->save();

View File

@ -0,0 +1,113 @@
<?php
/**
* NOTICE OF LICENSE
*
* This source file is subject to a commercial license from Common-Services Co., Ltd.
* Use, copy, modification or distribution of this source file without written
* license agreement from the SARL SMC is strictly forbidden.
* In order to obtain a license, please contact us: contact@common-services.com
* ...........................................................................
* INFORMATION SUR LA LICENCE D'UTILISATION
*
* L'utilisation de ce fichier source est soumise a une licence commerciale
* concedee par la societe Common-Services Co., Ltd.
* Toute utilisation, reproduction, modification ou distribution du present
* fichier source sans contrat de licence ecrit de la part de la Common-Services Co. Ltd. est
* expressement interdite.
* Pour obtenir une licence, veuillez contacter Common-Services Co., Ltd. a l'adresse: contact@common-services.com
* ...........................................................................
*
* @package Colissimo Flexibilite
* @author Alexandre D.
* @copyright Copyright (c) 2011-2015 Common Services Co Ltd - 90/25 Sukhumvit 81 - 10260 Bangkok - Thailand
* @license Commercial license
* Support by mail : support.soflexibilite@common-services.com
*/
if (isset($_SERVER['HTTP_HOST']) && $_SERVER['HTTP_HOST'] == 'localhost') {
require_once(readlink(dirname($_SERVER['SCRIPT_FILENAME']).'/../../../config/config.inc.php'));
if (version_compare(_PS_VERSION_, '1.5', '<')) {
require_once(readlink(dirname($_SERVER['SCRIPT_FILENAME']).'/../../../init.php'));
}
} else {
@require_once(dirname(__FILE__).'/../../../config/config.inc.php');
if (version_compare(_PS_VERSION_, '1.5', '<')) {
@require_once(dirname(__FILE__).'/../../../init.php');
}
}
require_once(_PS_MODULE_DIR_.'soflexibilite/soflexibilite.php');
require_once(_PS_MODULE_DIR_.'soflexibilite/classes/SoFlexibiliteDelivery.php');
class SoFlexibiliteSaveInfoCommande extends SoFlexibilite
{
public function save()
{
ob_start();
$id_cart = (int)Tools::getValue('cart');
$id_customer = (int)Tools::getValue('customer');
$phone = null;
$info = null;
$status = true;
$update_required = false;
$soDelivery = new SoFlexibiliteDelivery();
$soDelivery->id_cart = (int)$id_cart;
$soDelivery->id_customer = $id_customer ? (int)$id_customer : (int)$this->context->customer->id;
$soDelivery->loadDelivery();
$phone = trim(Tools::getValue('phone'));
$info = trim(Tools::getValue('infoDelivery'));
$email = trim(Tools::getValue('email'));
$delivery_mode = Tools::strtoupper(trim(Tools::getValue('delivery_mode')));
if ($phone && $soDelivery->telephone != $phone) {
$soDelivery->telephone = pSQL(str_replace(' ', '', $phone));
$update_required = true;
}
if ($info && $soDelivery->informations != $info) {
$soDelivery->informations = pSQL($info);
$update_required = true;
}
if ($email && $soDelivery->email != $email) {
$soDelivery->email = pSQL($email);
$update_required = true;
}
if ($delivery_mode && $soDelivery->type != $delivery_mode) {
$soDelivery->type = pSQL($delivery_mode);
$update_required = true;
}
if ($update_required) {
$status = $soDelivery->saveDelivery() ? true : false;
}
$result = ob_get_clean();
if ($result) {
$output = $result;
} else {
$output = null;
}
$json = array(
'output' => $output,
'status' => $status,
'phone' => $phone,
'mail' => $email,
'info' => $info
);
die(Tools::jsonEncode($json));
}
}
$soflexibilite_saveinfocommande = new SoFlexibiliteSaveInfoCommande();
$soflexibilite_saveinfocommande->save();

View File

@ -0,0 +1,165 @@
<?php
/**
* NOTICE OF LICENSE
*
* This source file is subject to a commercial license from Common-Services Co., Ltd.
* Use, copy, modification or distribution of this source file without written
* license agreement from the SARL SMC is strictly forbidden.
* In order to obtain a license, please contact us: contact@common-services.com
* ...........................................................................
* INFORMATION SUR LA LICENCE D'UTILISATION
*
* L'utilisation de ce fichier source est soumise a une licence commerciale
* concedee par la societe Common-Services Co., Ltd.
* Toute utilisation, reproduction, modification ou distribution du present
* fichier source sans contrat de licence ecrit de la part de la Common-Services Co. Ltd. est
* expressement interdite.
* Pour obtenir une licence, veuillez contacter Common-Services Co., Ltd. a l'adresse: contact@common-services.com
* ...........................................................................
*
* @package soflexibilite
* @author Alexandre D. <debuss-a>
* @copyright Copyright (c) 2011-2015 Common Services Co Ltd - 90/25 Sukhumvit 81 - 10260 Bangkok - Thailand
* @license Commercial license
* Support by mail : support.soflexibilite@common-services.com
*/
if (isset($_SERVER['HTTP_HOST']) && $_SERVER['HTTP_HOST'] == 'localhost') {
require_once(readlink(dirname($_SERVER['SCRIPT_FILENAME']).'/../../../config/config.inc.php'));
require_once(readlink(dirname($_SERVER['SCRIPT_FILENAME']).'/../../../init.php'));
} else {
@require_once(dirname(__FILE__).'/../../../config/config.inc.php');
@require_once(dirname(__FILE__).'/../../../init.php');
}
require_once dirname(__FILE__).'/../classes/SoFlexibiliteTools.php';
require_once dirname(__FILE__).'/../classes/SoFlexibiliteRangeWeight.php';
ob_start();
Context::getContext()->shop->setContext(Shop::CONTEXT_ALL);
$shipping_cost_json_link = 'https://dl.dropboxusercontent.com/u/60698220/tarifs.json';
$shipping_cost = SoFlexibiliteTools::fileGetContents($shipping_cost_json_link);
$status = true;
try {
$shipping_cost = Tools::jsonDecode($shipping_cost, true);
} catch (Exception $e) {
$status = false;
$shipping_cost = null;
}
if (is_array($shipping_cost) && count($shipping_cost)) {
$id_carriers = Configuration::getMultiple(
array('SOFLEXIBILITE_DOM_ID', 'SOFLEXIBILITE_DOS_ID', 'SOFLEXIBILITE_BPR_ID', 'SOFLEXIBILITE_A2P_ID'),
null,
null,
null
);
if (!is_array($id_carriers) || !count($id_carriers)) {
$status = false;
} else {
foreach ($id_carriers as $key => $id_carrier) {
switch ($key) {
case 'SOFLEXIBILITE_DOM_ID':
$mode = 'DOM';
break;
case 'SOFLEXIBILITE_DOS_ID':
$mode = 'DOS';
break;
case 'SOFLEXIBILITE_BPR_ID':
$mode = 'BPR';
break;
case 'SOFLEXIBILITE_A2P_ID':
$mode = 'A2P';
break;
default:
$mode = null;
}
$carrier = new Carrier((int)$id_carrier);
if (!Validate::isLoadedObject($carrier)) {
printf('Impossible de charger le transporteur [%s].<br>', $mode);
continue;
}
// Delete carrier previous range weight
$range_weights = RangeWeight::getRanges($carrier->id);
foreach ($range_weights as $range_weight) {
$range = new RangeWeight((int)$range_weight['id_range_weight']);
if (Validate::isLoadedObject($range)) {
$range->delete();
}
}
// Add the new range weight
foreach ($shipping_cost as $iso_country => $ranges) {
if (!in_array($iso_country, array('FR', 'BE', 'LU', 'NL', 'DE', 'GB', 'ES'))) {
printf('[%s] not an accepted ISO', $iso_country);
continue;
}
$id_zone = Country::getIdZone((int)Country::getByIso($iso_country));
if (!$id_zone) {
printf('Error, unable to get id_zone for country [%s] ==> Skipped<br>', $iso_country);
continue;
} elseif ($id_zone && !$carrier->getZone((int)$id_zone)) {
$carrier->addZone((int)$id_zone);
}
$price_list = array();
$previous_range = 0;
foreach ($ranges as $weight => $costs) {
if (!RangeWeight::rangeExist($carrier->id, $previous_range, min(30, $weight + 0.001))) {
$range_w = new SoFlexibiliteRangeWeight();
$range_w->id_carrier = $carrier->id;
$range_w->delimiter1 = (float)$previous_range;
$range_w->delimiter2 = (float)min(30, $weight + 0.001);
$range_w->addWithoutCallToAddDeliveryPrice();
$previous_range = $range_w->delimiter2;
} else {
$range_w = new stdClass();
$range_w->id = (int)Db::getInstance()->getValue(
'SELECT `id_range_weight`
FROM `'._DB_PREFIX_.'range_weight` rw
WHERE `id_carrier` = '.(int)$carrier->id.'
AND `delimiter1` = '.(float)$previous_range.'
AND `delimiter2` = '.(float)min(30, $weight + 0.001)
);
$previous_range = (float)min(30, $weight + 0.001);
}
// Add price to range
if (Validate::isLoadedObject($range_w)) {
$price_list[] = array(
'id_shop' => null,
'id_shop_group' => null,
'id_range_price' => null,
'id_range_weight' => (int)$range_w->id,
'id_carrier' => (int)$carrier->id,
'id_zone' => (int)$id_zone,
'price' => (float)$costs[$mode]
);
}
}
$carrier->addDeliveryPrice($price_list, true);
}
}
}
}
$output = ob_get_clean();
$callback = Tools::getValue('callback');
$json = array(
'output' => $output,
'status' => $status
);
die($callback.'('.Tools::jsonEncode($json).')');

View File

@ -0,0 +1,11 @@
<?php
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
header("Location: ../");
exit;

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,11 @@
<?php
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
header("Location: ../");
exit;

View File

@ -0,0 +1,61 @@
<?php
/**
* NOTICE OF LICENSE
*
* This source file is subject to a commercial license from Common-Services Co., Ltd.
* Use, copy, modification or distribution of this source file without written
* license agreement from the SARL SMC is strictly forbidden.
* In order to obtain a license, please contact us: contact@common-services.com
* ...........................................................................
* INFORMATION SUR LA LICENCE D'UTILISATION
*
* L'utilisation de ce fichier source est soumise a une licence commerciale
* concedee par la societe Common-Services Co., Ltd.
* Toute utilisation, reproduction, modification ou distribution du present
* fichier source sans contrat de licence ecrit de la part de la Common-Services Co. Ltd. est
* expressement interdite.
* Pour obtenir une licence, veuillez contacter Common-Services Co., Ltd. a l'adresse: contact@common-services.com
* ...........................................................................
*
* @package soflexibilite
* @author Alexandre D.
* @copyright Copyright (c) 2011-2015 Common Services Co Ltd - 90/25 Sukhumvit 81 - 10260 Bangkok - Thailand
* @license Commercial license
* Support by mail : support.soflexibilite@common-services.com
*/
$sql = array();
$sql[] = '
CREATE TABLE IF NOT EXISTS `'._DB_PREFIX_.'socolissimo_delivery_info` (
`id_cart` INT(10) NOT NULL,
`id_customer` INT(10) NOT NULL,
`delivery_mode` VARCHAR(3) NOT NULL,
`prid` TEXT(10) NOT NULL,
`prname` VARCHAR(64) NOT NULL,
`prfirstname` VARCHAR(64) NOT NULL,
`prcompladress` TEXT NOT NULL,
`pradress1` TEXT NOT NULL,
`pradress2` TEXT NOT NULL,
`pradress3` TEXT NOT NULL,
`pradress4` TEXT NOT NULL,
`przipcode` TEXT(10) NOT NULL,
`prtown` VARCHAR(64) NOT NULL,
`cecountry` VARCHAR(10) NOT NULL,
`cephonenumber` VARCHAR(15) NOT NULL,
`ceemail` VARCHAR(64) NOT NULL,
`cecompanyname` VARCHAR(64) NOT NULL,
`cedeliveryinformation` TEXT NOT NULL,
`cedoorcode1` VARCHAR(10) NOT NULL,
`cedoorcode2` VARCHAR(10) NOT NULL,
`codereseau` VARCHAR(3) DEFAULT NULL,
PRIMARY KEY (`id_cart`,`id_customer`)
) ENGINE='._MYSQL_ENGINE_.' DEFAULT CHARSET=utf8;';
foreach ($sql as $query) {
if (Db::getInstance()->execute($query) == false) {
return false;
}
}

View File

@ -0,0 +1,36 @@
<?php
/**
* NOTICE OF LICENSE
*
* This source file is subject to a commercial license from Common-Services Co., Ltd.
* Use, copy, modification or distribution of this source file without written
* license agreement from the SARL SMC is strictly forbidden.
* In order to obtain a license, please contact us: contact@common-services.com
* ...........................................................................
* INFORMATION SUR LA LICENCE D'UTILISATION
*
* L'utilisation de ce fichier source est soumise a une licence commerciale
* concedee par la societe Common-Services Co., Ltd.
* Toute utilisation, reproduction, modification ou distribution du present
* fichier source sans contrat de licence ecrit de la part de la Common-Services Co. Ltd. est
* expressement interdite.
* Pour obtenir une licence, veuillez contacter Common-Services Co., Ltd. a l'adresse: contact@common-services.com
* ...........................................................................
*
* @package soflexibilite
* @author ${MY_NAME}
* @copyright Copyright (c) 2011-2015 Common Services Co Ltd - 90/25 Sukhumvit 81 - 10260 Bangkok - Thailand
* @license Commercial license
* Support by mail : support.soflexibilite@common-services.com
*/
$sql = array();
$sql[] = 'UPDATE `'._DB_PREFIX_.'carrier` SET `deleted` = 1 WHERE `external_module_name` = "soflexibilite"';
foreach ($sql as $query) {
if (Db::getInstance()->execute($query) == false) {
return false;
}
}

View File

@ -0,0 +1,42 @@
<?php
/**
* NOTICE OF LICENSE
*
* This source file is subject to a commercial license from Common-Services Co., Ltd.
* Use, copy, modification or distribution of this source file without written
* license agreement from the SARL SMC is strictly forbidden.
* In order to obtain a license, please contact us: contact@common-services.com
* ...........................................................................
* INFORMATION SUR LA LICENCE D'UTILISATION
*
* L'utilisation de ce fichier source est soumise a une licence commerciale
* concedee par la societe Common-Services Co., Ltd.
* Toute utilisation, reproduction, modification ou distribution du present
* fichier source sans contrat de licence ecrit de la part de la Common-Services Co. Ltd. est
* expressement interdite.
* Pour obtenir une licence, veuillez contacter Common-Services Co., Ltd. a l'adresse: contact@common-services.com
* ...........................................................................
*
* @package soflexibilite
* @author debuss-a
* @copyright Copyright (c) 2011-2015 Common Services Co Ltd - 90/25 Sukhumvit 81 - 10260 Bangkok - Thailand
* @license Commercial license
* Support by mail : support.soflexibilite@common-services.com
*/
/**
* @param SoFlexibilite $soflexibilite
* @return bool
*/
function upgrade_module_3_1_09($soflexibilite)
{
return (bool)Db::getInstance()->execute(
'CREATE TABLE IF NOT EXISTS `'._DB_PREFIX_.'soflexibilite_carrier_fee_check` (
`id_cart` INT(10) NOT NULL,
`id_customer` INT(10) NOT NULL,
`iso_code` VARCHAR(3) NOT NULL,
`timestamp` TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL,
PRIMARY KEY (`id_cart`, `id_customer`)
) ENGINE='._MYSQL_ENGINE_.' DEFAULT CHARSET=utf8;'
);
}

View File

@ -0,0 +1,11 @@
<?php
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
header("Location: ../");
exit;

View File

@ -0,0 +1,166 @@
/**
* NOTICE OF LICENSE
*
* This source file is subject to a commercial license from Common-Services Co., Ltd.
* Use, copy, modification or distribution of this source file without written
* license agreement from the SARL SMC is strictly forbidden.
* In order to obtain a license, please contact us: contact@common-services.com
* ...........................................................................
* INFORMATION SUR LA LICENCE D'UTILISATION
*
* L'utilisation de ce fichier source est soumise a une licence commerciale
* concedee par la societe Common-Services Co., Ltd.
* Toute utilisation, reproduction, modification ou distribution du present
* fichier source sans contrat de licence ecrit de la part de la Common-Services Co. Ltd. est
* expressement interdite.
* Pour obtenir une licence, veuillez contacter Common-Services Co., Ltd. a l'adresse: contact@common-services.com
* ...........................................................................
*
* @package Colissimo Flexibilite
* @author Alexandre D.
* @copyright Copyright (c) 2011-2015 Common Services Co Ltd - 90/25 Sukhumvit 81 - 10260 Bangkok - Thailand
* @license Commercial license
* Support by mail : support.soflexibilite@common-services.com
*/
.hint {
display: block !important;
padding: 10px 15px !important;
background: #DDE9F7 !important;
font-weight: 700 !important;
line-height: 20px !important;
}
/* QTIP */
form label.tip span {
text-decoration: none;
font-style: inherit;
border-bottom: 1px dashed rgba(255, 150, 0, 0.40);
padding-bottom: 2px;
cursor: pointer;
}
#module_form {
font-family: Arial, Verdana, Helvetica, sans-serif;
}
#module_form input[type="text"],
#module_form input[type="password"],
#module_form select {
width: 400px;
display: inline;
}
#so_readme {
display: none;
position: absolute;
margin-top: 40px;
left: 735px;
}
.cleaner {
clear: both;
}
#conf-import {
position: relative;
}
#import-loader {
position: absolute;
top: 0;
left: 550px;
}
#import-loader img {
width: 30px;
height: 30px;
}
.so-warning {
font-size: 12px;
margin-top: 5px;
display: block;
color: navy;
}
.so-alert {
font-size: 12px;
margin-top: 5px;
display: block;
color: red;
}
#conf-so-param input[type="text"] {
width: 50%;
background-color: #EBEDF4;
}
.descriptionList {
list-style: disc inside;
padding-left: 10px;
}
.descriptionBold {
font-weight: bold;
}
.descriptionLogo {
position: relative;
float: right;
}
.Licence {
color: brown;
font-weight: bold;
}
.urlLike {
color: black;
}
.defaultURL {
text-decoration: underline;
color: blue;
}
.submitconf {
float: right;
margin: 20px;
}
#import-loader {
position: absolute;
top: 15px;
left: 565px;
}
.col-lg-1 {
text-align: center;
}
.alert.alert-info {
line-height: 1.6em;
border: 1px solid transparent !important;
border-left: 3px solid #81cfe6 !important;
}
.alert.alert-info a {
font-weight: bold;
}
.bootstrap .form-group .control-label.col-lg-3 {
font-weight: bold;
margin-top: -2px;
}
.socolissimo_carriers_table a, .socolissimo_carriers_table a:hover {
color: initial;
text-decoration: none;
}
#show_pwd,
#hide_pwd {
cursor: pointer;
linear-gradient: rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0.7)
}

View File

@ -0,0 +1,11 @@
<?php
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
header("Location: ../");
exit;

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,11 @@
<?php
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: post-check=0, pre-check=0', false);
header('Pragma: no-cache');
header('Location: ../');
exit;

View File

@ -0,0 +1,99 @@
h2 {
font-size: 1.3em;
text-align: start;
}
.label-checkbox {
text-align: left;
float: none;
font-size: 1.2em;
color: navy;
opacity: 0.8;
padding: 5px;
}
#menuTab {
float: left;
margin: 0;
text-align: left;
background-color: #efefef;
padding: 10px;
border-top: 1px solid #CCC;
border-right: 1px solid #CCC;
border-left: 1px solid #CCC;
}
#menuTab li {
text-align: left;
float: left;
min-width: 150px;
height: 35px;
display: inline;
padding: 0 10px 15px 15px;
margin: 5px;
background: #EFEFEF;
font-weight: bold;
cursor: pointer;
}
#menuTab li span {
position: relative;
top: 10px;
font-weight: bold;
letter-spacing: 1px;
color: gray;
}
#menuTab li.menuTabButton.selected {
border-bottom: 3px solid #6495ED;
margin-bottom: 2px;
}
#menuTab li.menuTabButton:hover {
cursor: pointer;
background: #6495ED;
opacity: 0.7;
}
#ps16_tabs_separator {
clear:both;
}
#tabList div:first-child ul {
list-style-type: disc;
margin: 0 0 0 20px;
padding: 1em;
}
#tabList div:first-child hr {
width: 30%;
}
.row {
background: none;
}
div.col-lg-1 {
width: 8.33333%;
float: left;
text-align: center;
}
div.col-lg-11 {
width: 91.66667%;
float: left;
margin-bottom: 15px;
}
.form-group {
margin-bottom: 15px;
}
/* info class for PS 14x */
body:not([style]) .info {
font-weight: 700;
margin: 0 0 10px 0;
line-height: 20px;
}

View File

@ -0,0 +1,26 @@
#menuTab li {
max-width: 210px;
min-width: 160px;
display: inline-block !important;
border-bottom: 3px solid transparent;
margin-right: 20px;
height: 55px;
}
#menuTab li.menuTabButton.selected {
border-bottom: 3px solid #6495ED;
}
#menuTab li a:focus, #menuTab li a:visited {
background: none;
}
#ps16_tabs_separator {
clear:both;
border-bottom: 4px solid whitesmoke;
margin: 10px 0;
}
div.col-lg-1 {
text-align: center;
}

View File

@ -0,0 +1,900 @@
/**
* NOTICE OF LICENSE
*
* This source file is subject to a commercial license from Common-Services Co., Ltd.
* Use, copy, modification or distribution of this source file without written
* license agreement from the SARL SMC is strictly forbidden.
* In order to obtain a license, please contact us: contact@common-services.com
* ...........................................................................
* INFORMATION SUR LA LICENCE D'UTILISATION
*
* L'utilisation de ce fichier source est soumise a une licence commerciale
* concedee par la societe Common-Services Co., Ltd.
* Toute utilisation, reproduction, modification ou distribution du present
* fichier source sans contrat de licence ecrit de la part de la Common-Services Co. Ltd. est
* expressement interdite.
* Pour obtenir une licence, veuillez contacter Common-Services Co., Ltd. a l'adresse: contact@common-services.com
* ...........................................................................
*
* @package Colissimo Flexibilite
* @author Alexandre D.
* @copyright Copyright (c) 2011-2015 Common Services Co Ltd - 90/25 Sukhumvit 81 - 10260 Bangkok - Thailand
* @license Commercial license
* Support by mail : support.soflexibilite@common-services.com
*/
/* PrestaShop Fix */
#columns {
z-index: 10;
}
/* !PrestaShop Fix */
.soflexibilite_overlay {
position: fixed;
top: 0;
bottom: 0;
left: 0;
right: 0;
z-index: 6000;
}
.so_box {
display: none;
box-sizing: border-box;
font-family: "Trebuchet MS", Helvetica, sans-serif;
position: fixed;
top: 50%;
left: 50%;
right: 50%;
z-index: 6001;
}
#gmap #uniform-so_constraint {
width: 15px !important;
display: inline-block !important;
}
#points::-webkit-scrollbar {
width: 10px;
}
#points::-webkit-scrollbar-track {
background-color: #eaeaea;
border-left: 1px solid #ccc;
}
#points::-webkit-scrollbar-thumb {
background-color: #ccc;
}
#points::-webkit-scrollbar-thumb:hover {
background-color: #aaa;
}
.row #soflexibilite_carrierList li img {
float: right;
margin-top: -15px;
}
.soflexibilite_addr_sumup input {
padding-left: 5px;
width: 50%;
min-height: 30px;
}
#infoCommande {
padding-left: 5px;
}
/* IE plus de cadre degue parce que src='' */
img[src=''] {
display: none;
}
a.tooltip {
outline: none;
margin-left: 5px;
text-decoration: none;
cursor: pointer;
}
a.tooltip:hover {
text-decoration: none;
}
a.tooltip span {
z-index: 10;
display: none;
}
#prevent_note {
width: 525px;
}
#soflexibilite_description_address #infoCommande {
width: 100%;
max-width: 100%;
}
/* CSS from default PS theme */
#so_box_hors {
font: normal 11px/14px Arial, Verdana, sans-serif;
color: #222;
}
#so_box_hors input,
#so_box_hors textarea {
-webkit-writing-mode: horizontal-tb;
}
#so_box_hors input,
#so_box_hors textarea {
margin: 0;
color: initial;
letter-spacing: normal;
word-spacing: normal;
text-transform: none;
text-indent: 0;
text-shadow: none;
display: inline-block;
}
#so_box_hors input[type="text"],
#so_box_hors input[type="email"],
#so_box_hors input[type="password"],
#so_box_hors input[type="submit"],
#so_box_hors input[type="image"] {
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
-webkit-border-radius: 0 !important;
-moz-border-radius: 0 !important;
border-radius: 0 !important;
}
/* !CSS from default PS theme */
#soflex-loader {
width: 150px;
margin-left: auto;
margin-right: auto;
margin-top: 30%;
text-align: center;
}
#soflex-loader img {
width: 20px;
height: 20px;
}
#soflex-loader p {
margin-top: 10px;
}
#so_box_hors a.boxclose {
float: right;
width: 15px;
height: 15px;
background: transparent top left;
margin-top: -5px;
margin-right: 5px;
cursor: pointer;
}
#so_box_hors a.boxclose:hover {
background-position: -15px 0;
}
.float-left {
float: left;
display: block;
}
.keep-left {
margin-top: 10px;
width: 350px;
height: 423px;
}
.float-right {
float: right;
display: block;
}
#so-h3-recap-horsdom {
display: none;
}
.myAdress {
font-weight: bold;
font-size: 24px;
margin: 20px 0 20px;
}
#myContent2 {
display: block;
margin-left: auto;
margin-right: auto;
width: 550px;
/*border: 1px solid black;*/
}
.centrageInfo {
display: block;
margin-left: auto;
margin-right: auto;
width: 400px;
}
.so_info {
margin-bottom: 40px;
}
.telephone {
border: 1px solid silver;
font-weight: bold;
padding: 5px 5px 5px 5px;
}
.validation {
float: right;
padding: 5px 7px;
font-weight: bold;
color: #fff;
background-color: #ff6a00;
cursor: pointer;
}
#so_box_hors .lookup {
height: 32px;
width: 60%;
font-size: 18px;
padding-left: 5px;
}
#soflex-search {
position: relative;
width: 150px;
height: 30px;
text-align: center;
margin-left: 615px;
margin-top: -42px;
}
#soflex-search input {
position: absolute;
width: 100%;
height: 100%;
top: 0;
left: 0;
}
#soflex-search img {
display: none;
margin-top: 7px;
}
#so_box_hors #search-btn-pending {
display: none;
opacity: 0.2;
}
#so_recherche_loader {
vertical-align: -7px;
}
#so_box_hors .so-home {
float: left;
}
#so_box_hors .so-home img {
margin: 5px 15px 5px 5px;
}
#so-search {
height: 36px;
vertical-align: 3px;
margin: 5px;
}
#so_box_hors button, #so_box_hors input[type="button"] {
border: 1px solid #cc9900;
background: #f4b61b;
color: black !important;
}
#so-search .so-search-button {
font-weight: normal;
width: 135px;
height: 33px;
vertical-align: 1px;
margin: 9px;
text-align: center;
font-size: 1.4em;
padding: 5px 7px;
white-space: normal;
background-image: none;
}
#so_box_hors .so-hd-search {
font-size: 1.8em;
position: relative;
top: -3px;
width: 80%;
}
#so_box_hors .so-dt-search {
font-size: 1.8em;
margin: 0 0 9px;
padding: 0;
}
#so_box_hors #super-selector {
margin: 0;
}
#so_box_hors .so-separator {
border-bottom: 1px solid #CFCECE;
margin: 15px auto 15px auto;
width: 100%;
height: 5px;
background-color: gainsboro;
opacity: 0.37;
-moz-opacity: 0.37;
-khtml-opacity: 0.37;
filter: alpha(opacity=37);
}
.valideDomRdv {
position: absolute;
right: 40px;
bottom: 40px;
}
#gmap {
border: 1px solid silver;
width: 60%;
height: 493px;
float: right;
}
#information-pr {
box-sizing: border-box;
position: relative;
display: none;
height: 100%;
width: 100%;
background: #fff;
border: 1px solid gainsboro;
padding: 10px
}
#so_box_hors .choixPR {
width: 170px;
height: 35px;
}
#so-no-points {
display: inline-block;
line-height: 1.3em;
font-size: 1.3em;
text-align: center;
margin-top: 50%;
padding: 15px;
color: grey;
}
#so_box_hors .pickup-point {
display: none;
cursor: pointer;
border-bottom: 1px solid silver;
}
#so_box_hors .picto {
float: left;
display: inline-block;
height: 60px;
margin: 5px 0 0 5px;
}
#so_box_hors .libelle {
padding-left: 10px;
font-weight: bold;
font-size: 1.2em;
display: inline-block;
width: 265px;
}
#so_box_hors .customName {
padding-left: 10px;
}
#so_box_hors .address1 {
padding-left: 10px;
white-space: nowrap;
}
#so_box_hors .code_postal {
padding-left: 10px;
}
#so_box_hors .commune {
padding-left: 10px;
}
#so_box_hors .point-choose {
float: right;
width: 24px;
height: 24px;
margin: -2px 15px 5px 0;
}
#so_box_hors table {
margin: 0;
}
#so_box_hors table td {
border: none;
}
#so_box_hors .hoLeft {
float: left;
border: 0 solid transparent;
font-family: "Lucida Console", Monaco, monospace;
background: none;
width: 98px;
}
#so_box_hors .hoLeft thead tr {
height: 35px;
}
#so_box_hors .hoLeft tbody tr td {
text-align: right;
height: 20px;
padding-right: 3px;
font-size: 11px;
}
#so_box_hors .hoClean {
clear: both;
width: 100%;
border: 2px solid whitesmoke;
}
#so_box_hors .tableHoFe {
/*float:left;*/
text-align: center;
border: 1px solid transparent;
font-family: "Lucida Console", "Courier New";
font-size: 10px;
background: none;
width: 230px;
}
#so_box_hors .tableHoFe tbody tr {
height: 60px;
}
#so_box_hors .tableHoFe thead {
color: black;
background-color: whitesmoke;
}
#so_box_hors .tableHoFe thead tr {
height: 25px;
}
#so_box_hors .tableHoFe thead tr td {
border: 1px solid white;
padding: 5px;
}
#so_box_hors .horaires {
background-color: white;
border: none;
}
#so_box_hors .tableHoFe tbody td {
width: 10%;
border: 1px solid transparent;
}
#so_box_hors .hoOpen {
background-color: darkseagreen;
color: white;
width: 100%;
height: 5px;
margin: 15px 0 15px 0;
}
#so_box_hors .hoClose {
background-color: salmon;
color: white;
width: 100%;
height: 5px;
margin: 15px 0 15px 0;
}
#main-selector {
width: 100%;
height: 100%;
position: absolute;
/*background-position-x: 0%;*/
/*background-position-y: 120%;*/
/*background-position: 0% 120%;*/
background-repeat: no-repeat;
}
#main-selector:hover {
background-color: gainsboro;
}
#button-selector {
position: absolute;
top: 0;
left: 0;
font-style: normal;
cursor: pointer;
border: 2px outset buttonface;
width: 350px;
height: 60px;
background-position-x: 95%;
background-position-y: 50%;
background: transparent no-repeat 95% 50%;
margin-left: 0;
}
#selector {
background-color: whitesmoke;
border: 1px solid #ccc;
width: 100%;
position: relative;
top: 65px;
overflow: hidden;
display: none;
z-index: 1600;
}
#selector ul {
list-style-type: none;
padding: 0;
margin: 0;
width: 350px;
}
#selector ul li:hover {
background-color: gainsboro;
cursor: pointer;
}
#handicappedAccess {
width: 430px;
}
#so_box_hors .handiOp {
margin-left: 10%;
margin-right: 10%;
}
#so_box_hors #mapPanel {
position: absolute;
top: 85%;
left: 44%;
z-index: 5;
background-color: white;
padding: 5px;
border: 1px solid #999;
opacity: 0.75;
-moz-opacity: 0.75;
-khtml-opacity: 0.75;
filter: alpha(opacity=75);
}
#nbPoint {
width: auto;
background-color: whitesmoke;
}
#so_box_hors .choosethePR {
padding: 5px;
}
#so_box_hors .choosethePR:hover {
z-index: 3000;
background-color: lightgray;
border: 1px solid grey;
}
#so_box_hors .so-info-libelle {
color: #138913;
font-weight: bold;
margin-bottom: 10px;
padding-top: 5px;
line-height: 1.1em;
}
#so_box_hors .prez {
font-size: 1.4em;
line-height: 1.2em;
}
.so-prez-libelle {
font-size: 1.2em;
line-height: 1.3em;
color: #138913;
font-weight: bold;
margin-bottom: 10px;
}
#so_box_hors .so-infoWindow {
min-width: 300px;
}
#so_box_hors .so-info-close {
border: 1px solid whitesmoke;
cursor: pointer;
}
#so_box_hors .so-info-close:hover {
border: 1px solid gainsboro;
background-color: whitesmoke;
}
#so_box_hors table td, #so_box_hors table th {
padding: 0;
}
#so_box_hors .so-info-itinerary {
/*margin-left: 15px;*/
background: none;
border: none;
}
#so_box_hors .so-info-itinerary td {
background: none;
border: none;
}
#so_box_hors .so-info-itinerary input {
margin-right: 10px;
width: 100px;
text-align: center;
opacity: 0.6;
-moz-opacity: 0.6;
-khtml-opacity: 0.6;
filter: alpha(opacity=60);
}
#so_box_hors .so-info-itinerary-title {
font-weight: bold;
display: inline-block;
margin: 20px 0 10px 0;
}
#so_box_hors .so-info-schedule-title {
font-weight: bold;
display: inline-block;
margin: 20px 0 10px 0;
}
#so_box_hors .so-info-closing-title {
font-weight: bold;
display: inline-block;
margin: 20px 0 10px 0;
}
#fermeture {
font-weight: bold;
margin-left: auto;
margin-right: auto;
width: 200px;
text-align: center;
}
#so-info-buttons {
/*position: absolute;*/
height: 30px;
/*width: 320px;*/
padding: 15px;
/*bottom: 25px;*/
/*left:0;*/
}
.soflexibiliteStar {
color: red;
font-size: 2em;
vertical-align: -7px;
margin-left: 5px;
}
#soflexibilite_speech {
width: 500px;
text-align: center;
margin: 10px auto 0 auto;
}
#soflexibilite_desc_pr td {
width: 270px;
}
#soflexibilite_desc_pr input, .choiceDomOrDos {
width: 70%;
border-radius: 5px;
border: 1px solid silver;
padding: 5px;
}
#soflexibilite_info_cust td {
width: 25%;
height: 80px;
}
#adresseFinal {
/*border: 1px dashed black;*/
/*padding: 10px;*/
/*width: 100%;*/
/*margin-top: 15px;*/
}
.soTabInfo {
width: 120px;
display: inline-block;
margin-bottom: 5px;
}
#infofofo {
margin: 5px 5px 5px 10px;
}
#table_so_info input, #infofofo input {
width: 50%;
border-radius: 5px;
border: 1px solid silver;
padding: 5px;
}
#table_so_info {
width: 100%;
}
#infofofo input {
width: 98%;
}
#soflexibilite_carrierList {
/*font: normal 12px/14px Arial, Verdana, sans-serif;*/
/*background-color: #F1F2F4;*/
/*border: 1px solid #BDC2C9;*/
/*padding: 5px;*/
}
#soflexibilite_cust {
border: 1px dashed black;
padding: 10px;
width: 300px;
alignment-adjust: central;
}
.soflex_leger_decal {
padding-left: 10px;
font-size: 15px;
font-weight: bold;
}
.so-bold {
font-weight: bold;
height: 25px;
}
#so_box_hors .so_distance {
position: relative;
color: grey;
margin-right: 15px;
top: -2px;
}
.delivery_option_title a:hover {
text-decoration: none;
}
#so_constraint {
vertical-align: -2px;
}
#so_box_hors .so-pipe-separator {
margin: 0 5px 0 5px;
color: black;
font-size: 14px;
}
#so_box_hors .so-info-cpt {
margin-bottom: 30px;
}
#so_box_hors .enConges {
color: #bd4931;
font-size: 1.7em;
font-weight: bolder;
float: right;
}
#custMail, #sl_phone {
min-height: 30px;
}
.pac-container {
z-index: 6002;
}
@media (max-width: 1024px), (max-height: 660px) {
#table_so_info > tbody td:nth-child(3) {
display: none;
}
#so_box_hors a.boxclose {
margin-top: 13px;
margin-right: 10px;
}
#so_box_hors .hoLeft tbody tr td {
font-size: 9px;
}
#button-selector {
background-repeat: no-repeat;
}
}
@media (max-width: 991px) {
#table_so_info {
width: 97%;
}
}
@media (max-width: 700px) {
#soflexibilite_desc_pr > tbody > tr > td:nth-child(1) {
display: none;
}
img[alt^="mon "] {
width: 40px;
}
.tooltip {
display: none !important;
}
#gmap {
display: none;
}
#so_box_hors #super-selector {
width: 100% !important;
}
#so_box_hors .keep-left {
width: 100% !important;
height: 80% !important;
}
#so_box_hors {
-webkit-border-radius: 0;
-moz-border-radius: 0;
border-radius: 0;
}
#so_box_hors .soflexibilite_addr_sumup .col-lg-6 {
float: none;
}
#so_box_hors > p,
#super-selector,
#so_box_hors > div.float-left.keep-left,
.infoButton {
display: block !important;
}
}

View File

@ -0,0 +1,210 @@
/**
* NOTICE OF LICENSE
*
* This source file is subject to a commercial license from Common-Services Co., Ltd.
* Use, copy, modification or distribution of this source file without written
* license agreement from the SARL SMC is strictly forbidden.
* In order to obtain a license, please contact us: contact@common-services.com
* ...........................................................................
* INFORMATION SUR LA LICENCE D'UTILISATION
*
* L'utilisation de ce fichier source est soumise a une licence commerciale
* concedee par la societe Common-Services Co., Ltd.
* Toute utilisation, reproduction, modification ou distribution du present
* fichier source sans contrat de licence ecrit de la part de la Common-Services Co. Ltd. est
* expressement interdite.
* Pour obtenir une licence, veuillez contacter Common-Services Co., Ltd. a l'adresse: contact@common-services.com
* ...........................................................................
*
* @package Colissimo Flexibilite
* @author Alexandre D.
* @copyright Copyright (c) 2011-2015 Common Services Co Ltd - 90/25 Sukhumvit 81 - 10260 Bangkok - Thailand
* @license Commercial license
* Support by mail : support.soflexibilite@common-services.com
*/
.soflexibilite_overlay {
background-color: black;
opacity: 0.7;
-moz-opacity: 0.7;
-khtml-opacity: 0.7;
filter: alpha(opacity=70);
}
.so_box {
width: 950px;
height: 645px;
margin-left: -475px;
margin-top: -350px;
background-color: #E9E9E9;
padding: 20px;
border: 2px solid #ccc;
-moz-box-shadow: 0 1px 5px #333;
-webkit-box-shadow: 0 1px 5px #333;
text-align: left;
}
#so_box_hors .selectBox {
width: 350px;
height: 425px;
overflow: auto;
background-color: white;
}
#so_box_hors #points div {
border-bottom: 1px solid whitesmoke;
}
#so_box_hors #points div:hover {
background-color: whitesmoke;
cursor:pointer;
}
/* LE CSS DU SELECT */
#so_box_hors #super-selector {
position:relative;
width:350px;
height:60px;
}
#so_box_hors #selector {
background-color: #fff;
border: 1px solid #ccc;
width:100%;
position:relative;
top:65px;
overflow:hidden;
display:none;
z-index:1600;
}
#so_box_hors #selector ul li:hover {
background-color:whitesmoke;
cursor:pointer;
}
.so-bold {
font-weight: bold;
height: 25px;
}
#so_box_hors #gmap div {
font-family: "Trebuchet MS", Helvetica, sans-serif;
}
#so_box_hors #gmap .so-info-libelle {
font-weight: bold;
font-size: 1.2em;
}
#so_box_hors #gmap .so-info-adresse, #so_box_hors #gmap .so-info-cpt {
font-weight: normal;
}
/***********************
** Responsive / Mobile
***********************/
@media (max-width: 800px) {
#so_box_hors .infoButton {
visibility: hidden;
display: none;
}
}
@media (max-width: 1024px), (max-height: 660px) {
.so_box {
display: none;
position: fixed;
bottom: 0;
left: 0;
right: 0;
z-index: 6001;
top: 0;
width: 100%;
height:100%;
margin: 0;
-webkit-box-shadow: none;
-moz-box-shadow: none;
box-shadow: none;
background-clip: padding-box;
border: none;
padding: 5px;
}
#so_box_hors .socolissimoLogo {
display: none;
visibility: hidden;
}
#so_box_hors #super-selector {
position: relative;
width: 35%;
height: 60px;
background-color: whitesmoke;
float: none;
top: 0;
}
#so_box_hors #button-selector {
position: relative;
top: 0;
font-style: normal;
cursor: pointer;
border: 2px outset buttonface;
width: 100%;
height: 60px;
background: transparent;
}
#so_box_hors .keep-left {
width: 35%;
height: 75%;
}
#so_box_hors .so-dt-search, #so_box_hors .so-home, #so_box_hors .so-separator,
#so_box_hors .picto, #so_box_hors #mapPanel, #so_box_hors .so-hd-search {
display: none;
}
#so_box_hors #so-search .so-search-button {
font-weight: normal;
width: 100px;
height: 34px;
margin: 5px 0 0 -150px;
font-size: 1.4em;
}
#so_box_hors .selectBox {
width: 100%;
height: 100%;
overflow-x: hidden;
}
#so_box_hors #information-pr {
width: 94%;
height: 98%;
overflow-x: hidden;
}
#so_box_hors #gmap {
position: fixed;
border: 1px solid silver;
width: 60%;
height: 87%;
right: 5px;
}
#so_box_hors .so-info-itinerary {
margin: 0;
}
#so_box_hors #soflex-search {
position: relative;
text-align: center;
margin-top: -42px;
margin-left: 85%;
width: 0;
height: 0;
}
}

View File

@ -0,0 +1,216 @@
/**
* NOTICE OF LICENSE
*
* This source file is subject to a commercial license from Common-Services Co., Ltd.
* Use, copy, modification or distribution of this source file without written
* license agreement from the SARL SMC is strictly forbidden.
* In order to obtain a license, please contact us: contact@common-services.com
* ...........................................................................
* INFORMATION SUR LA LICENCE D'UTILISATION
*
* L'utilisation de ce fichier source est soumise a une licence commerciale
* concedee par la societe Common-Services Co., Ltd.
* Toute utilisation, reproduction, modification ou distribution du present
* fichier source sans contrat de licence ecrit de la part de la Common-Services Co. Ltd. est
* expressement interdite.
* Pour obtenir une licence, veuillez contacter Common-Services Co., Ltd. a l'adresse: contact@common-services.com
* ...........................................................................
*
* @package Colissimo Flexibilite
* @author Alexandre D.
* @copyright Copyright (c) 2011-2015 Common Services Co Ltd - 90/25 Sukhumvit 81 - 10260 Bangkok - Thailand
* @license Commercial license
* Support by mail : support.soflexibilite@common-services.com
*/
.soflexibilite_overlay {
background-color: white;
opacity: 0.6;
-moz-opacity: 0.6;
-khtml-opacity: 0.6;
filter: alpha(opacity=60);
}
.so_box {
-webkit-box-shadow: 1px 1px 12px black;
-moz-box-shadow: 1px 1px 12px black;
box-shadow: 1px 1px 12px black;
background: #fbfbfb;
background-clip: padding-box;
border: 1px solid rgba(0,0,0,.333);
outline: 0;
width: 950px;
height: 645px;
margin-left: -475px;
margin-top: -350px;
padding: 20px;
text-align: left;
font: normal 11px/14px Arial, Verdana, sans-serif;
}
#so_box_hors .selectBox {
width: 350px;
height: 425px;
overflow: auto;
background-color: whitesmoke;
border: 1px solid gainsboro;
}
#so_box_hors #points div {
border-bottom: 1px solid gainsboro;
}
#so_box_hors #points div:hover {
background-color: gainsboro;
cursor:pointer;
}
/* LE CSS DU SELECT */
#so_box_hors #super-selector {
position:relative;
width:350px;
height:60px;
background-color: whitesmoke;
}
#so_box_hors #selector {
background-color: whitesmoke;
border: 1px solid #ccc;
width:100%;
position:relative;
top:65px;
overflow:hidden;
display:none;
z-index:1600;
}
#so_box_hors #selector ul li:hover {
background-color: gainsboro;
cursor:pointer;
}
.so-bold {
font-weight: bold;
height: 25px;
}
#so_box_hors #gmap div {
font-family: "Trebuchet MS", Helvetica, sans-serif;
}
#so_box_hors #gmap .so-info-libelle {
font-weight: bold;
font-size: 1.2em;
}
#so_box_hors #gmap .so-info-adresse, #so_box_hors #gmap .so-info-cpt {
font-weight: normal;
}
/***********************
** Responsive / Mobile
***********************/
@media (max-width: 800px) {
#so_box_hors .infoButton {
visibility: hidden;
display: none;
}
}
@media (max-width: 1024px), (max-height: 660px) {
.so_box {
display: none;
position: fixed;
bottom: 0;
left: 0;
right: 0;
z-index: 6001;
top: 0;
width: 100%;
height:100%;
margin: 0;
-webkit-box-shadow: none;
-moz-box-shadow: none;
box-shadow: none;
background-clip: padding-box;
border: none;
padding: 5px;
}
#so_box_hors .socolissimoLogo {
display: none;
visibility: hidden;
}
#so_box_hors #super-selector {
position: relative;
width: 35%;
height: 60px;
background-color: whitesmoke;
float: none;
top: 0;
}
#so_box_hors #button-selector {
position: relative;
top: 0;
font-style: normal;
cursor: pointer;
border: 2px outset buttonface;
width: 100%;
height: 60px;
background: transparent;
}
#so_box_hors .keep-left {
width: 35%;
height: 75%;
}
#so_box_hors .so-dt-search, #so_box_hors .so-home, #so_box_hors .so-separator,
#so_box_hors .picto, #so_box_hors #mapPanel, #so_box_hors .so-hd-search {
display: none;
}
#so_box_hors #so-search .so-search-button {
font-weight: normal;
width: 100px;
height: 34px;
margin: 5px 0 0 -150px;
font-size: 1.4em;
}
#so_box_hors .selectBox {
width: 100%;
height: 100%;
overflow-x: hidden;
}
#so_box_hors #information-pr {
width: 94%;
height: 98%;
overflow-x: hidden;
}
#so_box_hors #gmap {
position: fixed;
border: 1px solid silver;
width: 60%;
height: 87%;
right: 5px;
}
#so_box_hors .so-info-itinerary {
margin: 0;
}
#so_box_hors #soflex-search {
position: relative;
text-align: center;
margin-top: -42px;
margin-left: 85%;
width: 0;
height: 0;
}
}

View File

@ -0,0 +1,241 @@
/**
* NOTICE OF LICENSE
*
* This source file is subject to a commercial license from Common-Services Co., Ltd.
* Use, copy, modification or distribution of this source file without written
* license agreement from the SARL SMC is strictly forbidden.
* In order to obtain a license, please contact us: contact@common-services.com
* ...........................................................................
* INFORMATION SUR LA LICENCE D'UTILISATION
*
* L'utilisation de ce fichier source est soumise a une licence commerciale
* concedee par la societe Common-Services Co., Ltd.
* Toute utilisation, reproduction, modification ou distribution du present
* fichier source sans contrat de licence ecrit de la part de la Common-Services Co. Ltd. est
* expressement interdite.
* Pour obtenir une licence, veuillez contacter Common-Services Co., Ltd. a l'adresse: contact@common-services.com
* ...........................................................................
*
* @package Colissimo Flexibilite
* @author Alexandre D.
* @copyright Copyright (c) 2011-2015 Common Services Co Ltd - 90/25 Sukhumvit 81 - 10260 Bangkok - Thailand
* @license Commercial license
* Support by mail : support.soflexibilite@common-services.com
*/
.soflexibilite_overlay {
background-color: black;
opacity: 0.75;
-moz-opacity: 0.75;
-khtml-opacity: 0.75;
filter: alpha(opacity=75);
}
.so_box {
background: #fbfbfb;
width: 950px;
height: 645px;
margin-left: -475px;
margin-top: -350px;
padding: 20px;
text-align: left;
font: normal 11px/14px Arial, Verdana, sans-serif;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
}
#button-selector, #gmap {
-webkit-border-radius: 3px;
-moz-border-radius: 3px;
border-radius: 3px;
}
#main-selector:hover, #so_box_hors #selector ul li:hover {
background-color: #fbfbfb;
}
#so_box_hors, #so-search > input {
color: #777777;
}
#so_box_hors .so-separator {
height: 1px;
}
#information-pr {
-webkit-border-radius: 3px;
-moz-border-radius: 3px;
border-radius: 3px;
}
#so_box_hors .selectBox {
width: 350px;
height: 425px;
overflow: auto;
background-color: white;
border: 1px solid gainsboro;
-webkit-border-radius: 3px;
-moz-border-radius: 3px;
border-radius: 3px;
}
#so_box_hors #points div {
border-bottom: 1px solid gainsboro;
}
#so_box_hors #points div:hover {
background-color: gainsboro;
cursor:pointer;
}
/* LE CSS DU SELECT */
#so_box_hors #super-selector {
position:relative;
width:350px;
height:60px;
background-color: white;
}
#so_box_hors #selector {
background-color: white;
border: 1px solid #ccc;
width:100%;
position:relative;
top:65px;
overflow:hidden;
display:none;
-webkit-border-radius: 3px;
-moz-border-radius: 3px;
border-radius: 3px;
}
#so_box_hors #selector ul li:hover {
background-color: gainsboro;
cursor:pointer;
}
.so-bold {
font-weight: bold;
height: 25px;
}
#so_box_hors #gmap div {
font-family: "Trebuchet MS", Helvetica, sans-serif;
}
#so_box_hors #gmap .so-info-libelle {
font-weight: bold;
font-size: 1.2em;
}
#so_box_hors #gmap .so-info-adresse, #so_box_hors #gmap .so-info-cpt {
font-weight: normal;
}
/***********************
Responsive / Mobile
***********************/
@media (max-width: 800px) {
#so_box_hors .infoButton {
visibility: hidden;
display: none;
}
}
@media (max-width: 1024px), (max-height: 660px) {
.so_box {
display: none;
position: fixed;
bottom: 0;
left: 0;
right: 0;
top: 0;
width: 100%;
height:100%;
margin: 0;
-webkit-box-shadow: none;
-moz-box-shadow: none;
box-shadow: none;
background-clip: padding-box;
border: none;
padding: 5px;
}
#so_box_hors .socolissimoLogo {
display: none;
visibility: hidden;
}
#so_box_hors #super-selector {
position: relative;
width: 35%;
height: 60px;
background-color: whitesmoke;
float: none;
top: 0;
}
#so_box_hors #button-selector {
position: relative;
top: 0;
font-style: normal;
cursor: pointer;
border: 2px outset buttonface;
width: 100%;
height: 60px;
background: transparent;
}
#so_box_hors .keep-left {
width: 35%;
height: 75%;
}
#so_box_hors .so-dt-search, #so_box_hors .so-home, #so_box_hors .so-separator,
#so_box_hors .picto, #so_box_hors #mapPanel, #so_box_hors .so-hd-search {
display: none;
}
#so_box_hors #so-search .so-search-button {
font-weight: normal;
width: 100px;
height: 34px;
margin: 8px 0 0 -80px;
font-size: 1.4em;
}
#so_box_hors .selectBox {
width: 100%;
height: 100%;
overflow-x: hidden;
}
#so_box_hors #information-pr {
width: 94%;
height: 98%;
overflow-x: hidden;
}
#so_box_hors #gmap {
position: fixed;
border: 1px solid silver;
width: 60%;
height: 87%;
right: 5px;
}
#so_box_hors .so-info-itinerary {
margin: 0;
}
#so_box_hors #soflex-search {
position: relative;
text-align: center;
margin-top: -42px;
margin-left: 85%;
width: 0;
height: 0;
}
}

View File

@ -0,0 +1,136 @@
/**
* NOTICE OF LICENSE
*
* This source file is subject to a commercial license from Common-Services Co., Ltd.
* Use, copy, modification or distribution of this source file without written
* license agreement from the SARL SMC is strictly forbidden.
* In order to obtain a license, please contact us: contact@common-services.com
* ...........................................................................
* INFORMATION SUR LA LICENCE D'UTILISATION
*
* L'utilisation de ce fichier source est soumise a une licence commerciale
* concedee par la societe Common-Services Co., Ltd.
* Toute utilisation, reproduction, modification ou distribution du present
* fichier source sans contrat de licence ecrit de la part de la Common-Services Co. Ltd. est
* expressement interdite.
* Pour obtenir une licence, veuillez contacter Common-Services Co., Ltd. a l'adresse: contact@common-services.com
* ...........................................................................
*
* @package Colissimo Flexibilite
* @author Alexandre D.
* @copyright Copyright (c) 2011-2015 Common Services Co Ltd - 90/25 Sukhumvit 81 - 10260 Bangkok - Thailand
* @license Commercial license
* Support by mail : support.soflexibilite@common-services.com
*/
#soflexibilite_logo_area {
float: right;
text-align: right;
}
#soflexibilite_em {
color: red;
font-weight: bold;
}
.soflexibilite_desc {
font-weight: bold;
}
.sf_slider_trigger {
cursor: pointer;
}
.float-left {
float: left;
}
#sf_panel {
margin-bottom: 0;
}
#sf_panel div.float-left:first-child {
text-align: center;
}
#sf_panel div.float-left {
width: 50%;
}
#sf_panel .sf_delivery_mode {
color: #fb4f14;
font-weight: bold;
}
/*
* GMAP
*/
.soflexibilite_overlay {
display: none;
position: fixed;
top: 0;
bottom: 0;
left: 0;
right: 0;
z-index: 6000;
background-color: black;
opacity: 0.75;
-moz-opacity: 0.75;
-khtml-opacity: 0.75;
filter: alpha(opacity=75);
}
#so_box {
color: #000;
display: none;
box-sizing: border-box;
position: fixed;
top: 50%;
left: 50%;
right: 50%;
z-index: 6001;
background: #fbfbfb;
width: 950px;
height: 645px;
margin-left: -475px;
margin-top: -350px;
padding: 20px;
text-align: left;
font: normal 11px/14px Arial, Verdana, sans-serif;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
}
#so_box .col-lg-10 {
width: 83.33333%;
}
#so_box .col-lg-2 {
width: 16.66667%;
}
#so_box #sf_address.sf_loading {
background: url("../img/import-loader.gif") no-repeat;
background-position-x: 100%;
background-position-y: 1px;
background-size: 26px;
}
#so_box #sf_address {
width: 82%;
}
#so_box .float-right {
float: right;
}
#sf_map {
border: 1px solid silver;
height: 565px;
}
#sf_map .sf_active {
background-color: gainsboro;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 404 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 519 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 280 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 583 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 732 B

View File

@ -0,0 +1,11 @@
<?php
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
header("Location: ../");
exit;

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 486 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 307 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

View File

@ -0,0 +1,11 @@
<?php
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
header("Location: ../");
exit;

Binary file not shown.

After

Width:  |  Height:  |  Size: 709 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 608 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 902 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.0 KiB

View File

@ -0,0 +1,11 @@
<?php
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: post-check=0, pre-check=0', false);
header('Pragma: no-cache');
header('Location: ../');
exit;

Some files were not shown because too many files have changed in this diff Show More