push prod

This commit is contained in:
ToutPratique 2016-05-17 15:54:37 +02:00
parent fe91541572
commit 1d1a2def5f
322 changed files with 52119 additions and 6 deletions

3
.gitignore vendored
View File

@ -79,4 +79,5 @@ maj.php
1_index_sitemap.xml
adm/export/*
adm/import/*
themes/toutpratique/cache/*
themes/toutpratique/cache/*
modules/blocknewsletter/*.csv

View File

@ -0,0 +1 @@
google-site-verification: google4923b609d4e89885.html

View File

@ -0,0 +1,44 @@
b30MJgmq7yax9WBJfmoyYqmULRtauX1bJriHYgSbCeDP6SOIBfPIIg0CD1vtdwSQPe
OIVl0BGqbt1aEvBZuWKwj67ObfcsKuB9Rkctfv9F73ngOjWUrguYRBJVZijcOStHoQ
UwUIdt8OzxIYPTlk0yJih2zVtUeiweQYOKbkb22m0OiNveHPP6LlnqpzXSiUikHNlU
nZdAUOZuoGUQeaJWJ9zUsUCdmbUGU40gZPFTEvlkMwU3G6ZaZ84Omq7GLIvPtAdx1U
DTGgO6ngDP8Si47NT0zedwssyMZYafqDvc2POFpXiq25q1kydSw7WaGBW9CZcWPF4m
6r28c7M63Tg3mb1lrAKhkl3pwVC4qx5djhrLcDp3oobdDrjey0pZx5bpoOSfl7N5xR
uFB0oDKEABFkuJKgjAeBEXfXYbvZlkyS7jNCOhsks9JmEJ1to8lkb1SUZLsnkagZMd
gyyMIzZBOJM21BUg5ytjFKq2WZjVXoXh79RWMTXzL51ytHEbmhRHFnLDxYfUv3wDHx
CBErWTYJB1bXoL18JopV3s6C62XO0kbFcjBY2CZs5wuGU21648JrZcBRKQAzDqojEk
eT7VDAHIwSTn3VE7rfIVeLvQBqeJ6GmvaiORk9hs1SBWpt9G5JYv4t1EWI7SzqrTJw
7o7iw4sC9Bm5Ff7CPcfPZ3yWa5LEaSQOPUGcZVdqAlRTAbenCimkOreXx6aEjEoEzf
Wk02Hd24xkqhiuuG6EagZP1Of0BlGCnSXbXUROBbUhcjNOJoQjQumBA56qYY780VKc
dXFEyydNIYo8F2wXD2BdcKefMsDc7Zb5D5NnuWxYuinwLyYcAzMPfjIzSPYVnAuaQK
0X9nUVm3UErfpb4pTOGzBXttdKW5K5f2qXu1Or7egCZO79HkTpqpu55Vk7a4b4eYOF
ORymq6wrP3hFymKTSD8dwNVInmiQDhDnAJfaNSxMFIrulVu8bRQTsixtlNDW5b024G
KwARP8bECbggsUplObcEKGPVcLgqnyVil1rXhjCybGKVTfekATWyJKIrtYcuPAcNvp
Lyc5dMqpJMehh4aI2ZCBx7JlDvkw0TIqIxfZvTGzxSY2lrz0yJmBEE7XQVL6HaMGlK
tDuYFgPFgOZbvpCNLdtiq06XNNIiHdruPHgqfOmsD3cOqhEE0cj1BSssAN5xDlL7da
qJYgwhTZ2jZfOJhbmofqBkoWAGshBGu4Oi7IncEV9B7K2wsVw6DI4YTHhbaEJZqLd8
T4PwkShegr4HwxPue8EMwQxmmauFf5gcqK6sURirdszEMAK4R1yih4VPurXxT39dUr
rMkMqyk86ouJK9AwbPfI1lm0bkkjOwvU97J3FeNPwK8knUv4ewbVjcZSxzOtTY0oFY
1gULoac8gq5NLo6ZOZXNzQsXQghFUlYIRf2oiUtriCQnznPTLrAWXd9IBSlyUPmDug
QlUeCbXBCKbhgYzDWxHqlbG702g1nBg6tDI0vMZvaiS7Ins1292ljny1Z5vnN9TO5q
z0WhSplzhm1yw4j7n5pl0YuTyzKxzsfS3D3I74G496wdAmpLpvYJtYerY1aFdWNioR
rvonaTEJoe4MPvv2YwdgCMCa7833frbYYjoWucAz6av1dTyNABlUsx10gsGFRS5Gz0
1282280B4B18B4C33FB82341D1D0F69D920299F1CCEA73D8D7148F8A217F0B7241
F20F53592906B75D6279E1AD680F5614C275EA2D65C2AD47CAF0B236E329DEB18C
YhZYW3QiL6OW9eXqQr1zR6dLlJOiMDbG6OGmKSYrbRLjNxgYF6O0LOphKqjcTtEjC4
qRYApJkYmWXLLANZn46w0I65L63PlBVrpYPSvFAu25aUMaSwcELNUKcpgFq5tsI1wG
112F26EAF22B941D68296122852EE412A24D0C95E1DF3B8E8C2E7C169D1BDB5041
718B1F38845381DE26A6D7299C7E7F68EF0659C29A0F2C8D91eFcB1ZxNnOK4rRiC
YhZYW3QiL6OW9eXqQr1zR6dLlJOiMDbG6OGmKSYrbRLjNxgYF6O0LOphKqjcTtEjC4
qRYApJkYmWXLLANZn46w0I65L63PlBVrpYPSvFAu25aUMaSwcELNUKcpgFq5tsI1wG
1282280B4B18B4C33FB82341D1D0F69D920299F1CCEA73D8D7148F8A217F0B7241
F20F53592906B75D6279E1AD680F5614C275EA2D65C2AD47CAF0B236E329DEB18C
YhZYW3QiL6OW9eXqQr1zR6dLlJOiMDbG6OGmKSYrbRLjNxgYF6O0LOphKqjcTtEjC4
qRYApJkYmWXLLANZn46w0I65L63PlBVrpYPSvFAu25aUMaSwcELNUKcpgFq5tsI1wG
1123D43D4C4E67A6ECC25D50435673612FCD517E79E35AAE9BF0BA809CB73BECB9
89C2045BB2189707D639BC1BE7CEFBF4D1AFA1485FD19FB881eFcB1ZxNnOK4rRiC
YhZYW3QiL6OW9eXqQr1zR6dLlJOiMDbG6OGmKSYrbRLjNxgYF6O0LOphKqjcTtEjC4
qRYApJkYmWXLLANZn46w0I65L63PlBVrpYPSvFAu25aUMaSwcELNUKcpgFq5tsI1wG
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
SIPSATIS_TOUTPRATIQUE,20/01/2016,V4,SOGENACTIF,PROD+++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++END

View File

@ -0,0 +1,2 @@
ADVERT!logo.jpg!

View File

@ -2,4 +2,4 @@ DEBUG!NO!
D_LOGO!/modules/atos/img/logos/!
F_CERTIFICATE!/home/www/toutpratique.com/www/modules/atos/certif!
F_PARAM!/home/www/toutpratique.com/www/modules/atos/parmcom!
F_DEFAULT!/home/www/toutpratique.com/www/modules/atos/parmcom.elysnet!
F_DEFAULT!/home/www/toutpratique.com/www/modules/atos/parmcom.sogenactif!

BIN
modules/gls/AdminGls.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 800 B

133
modules/gls/AdminGls.php Normal file
View File

@ -0,0 +1,133 @@
<?php
/*
* 2007-2014 Addonline
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License (AFL 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/afl-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.
*
* @author Addonline <contact@addonline.fr>
* @copyright 2007-2014 Addonline
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
*/
require_once(dirname(__FILE__).'/gls.php');
class AdminGls extends AdminTab
{
private $gls = NULL;
public $post_errors = array();
public function __construct()
{
$this->gls = new Gls();
parent::__construct();
$this->context = Context::getContext();
}
private function displayOrdersTable()
{
$order_state = new OrderState((int)(Configuration::get('GLS_ORDER_STATE')), $this->context->language->id);
$orders = Gls::getOrders(array(), Gls::NO_FILTER); //, $this->gls->account_shop['GLS_WEIGHT_COEFFICIENT']);
foreach($orders as &$order)
{
$order['display_total_price'] = Tools::displayPrice($order['total'], new Currency($order['id_currency']));
$order['display_shipping_price'] = Tools::displayPrice($order['shipping'], new Currency($order['id_currency']));
$order['display_date'] = Tools::displayDate($order['date'], $order['id_lang']);
$order['weight'] = (!empty($order['gls_weight']) && $order['gls_weight'] > 0) ? $order['gls_weight'] : $order['order_weight'];
}
$controller = (_PS_VERSION_ < '1.5') ? 'AdminContact' : 'AdminStores';
$this->context->smarty->assign(array(
'GLS_token_admin_module' => Tools::getAdminToken('AdminModules'.(int)(Tab::getIdFromClassName('AdminModules')).(int)$this->context->employee->id),
'GLS_token_admin_contact' => array(
'controller_name' => $controller,
'token' => Tools::getAdminToken($controller.(int)(Tab::getIdFromClassName($controller)).(int)$this->context->employee->id)),
'GLS_token_admin_orders' => Tools::getAdminToken('AdminOrders'.(int)(Tab::getIdFromClassName('AdminOrders')).(int)$this->context->employee->id),
'GLS_order_state_name' => $order_state->name,
'GLS_orders' => $orders,
'GLS_PS_IMG_DIR_' => _PS_IMG_DIR_,
//'GLS_errors_type' => $GLSCreateTicket->checkPreValidation()
)
);
unset($order_state);
echo $this->gls->fetchTemplate('/tpl/admintab/', 'export_orders');
}
public function displaySettings($post_action)
{
$curr_order_state = new OrderState((int)$this->gls->account_shop['GLS_ORDER_STATE']);
$order_state = array(
'id_order_state' => $this->gls->account_shop['GLS_ORDER_STATE'],
'name' => $curr_order_state->name[$this->context->language->id]
);
$order_state_import = array(
'id_order_state' => $this->gls->account_shop['GLS_ORDER_STATE_IMPORT'],
'name' => $curr_order_state->name[$this->context->language->id]
);
$this->context->smarty->assign(array(
'GLS_token_admin_gls' => Tools::getAdminToken('AdminGls'.(int)(Tab::getIdFromClassName('AdminGls')).(int)$this->context->employee->id),
'GLS_account_set' => Gls::isAccountSet(),
'GLS_order_state' => $order_state,
'GLS_order_state_import' => Configuration::get('GLS_ORDER_STATE_IMPORT'),
'GLS_orders_states_list' => OrderState::getOrderStates($this->context->language->id),
'GLS_form_action' => $post_action,
'GLS_error_list' => $this->post_errors
));
echo $this->gls->fetchTemplate('/tpl/admintab/', 'settings');
}
public function postProcess()
{
$post_action = array(
'type' => Tools::getValue('GLS_action_name'),
'message_success' => $this->l('Action Succeed'),
'had_errors' => false
);
parent::postProcess();
if (Tools::isSubmit('submit_order_state'))
if (($order_state = (int)Tools::getValue('id_order_state')))
{
$this->gls->account_shop['GLS_ORDER_STATE'] = $order_state;
if ($this->gls->updateAccountShop())
$post_action['message_success'] = $this->l('Order State has been updated');
else
$this->post_errors[] = $this->l('Cannot Update the account shop');
}
if (count($this->post_errors))
$post_action['had_errors'] = true;
return $post_action;
}
public function display()
{
$post_action = count($_POST) ? $this->postProcess() : NULL;
$this->displaySettings($post_action);
if (Gls::isAccountSet() && (int)$this->gls->account_shop['GLS_ORDER_STATE'])
{
$this->displayOrdersTable();
}
}
}

137
modules/gls/ajax.php Normal file
View File

@ -0,0 +1,137 @@
<?php
/*
* 2007-2014 Addonline
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License (AFL 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/afl-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.
*
* @author Addonline <contact@addonline.fr>
* @copyright 2007-2014 Addonline
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
*/
/*
* File called by ajax. It's like a controller, you have to send the
* method name of the webservice and implement it.
* Each Name method allow to instanciate an object containing
* methods to manage correctly the data and name fields
*/
header('Access-Control-Allow-Origin: *');
// Clean displayed content for Admin ajax query
if (ob_get_contents()) ob_clean();
// Front Ajax query, need the front cookie and GLS class
// When it's back query, the PS core made the work
if (!defined('_PS_ADMIN_DIR_'))
{
require_once(realpath(dirname(__FILE__).'/../../config/config.inc.php'));
require_once(realpath(dirname(__FILE__).'/../../init.php'));
require_once(dirname(__FILE__).'/gls.php');
}
$gls = new Gls();
require_once(dirname(__FILE__).'/classes/GLSManagement.php');
// Can't use Tools at this time... Need to know if _PS_ADMIN_DIR_ has to be defined
$method = Tools::getValue('method');
$token = Tools::getValue('glstoken');
// Access page List liable to the generated token
$accessPageList = array(
Gls::getToken('front') => array(
'GLSGetRelayPoint',
'addSelectedCarrierToDB'
),
Gls::getToken('back') => array(
'GLSexportToWinExpe',
'GLSImportFromWinExpe',
'GLSCreateTickets',
'GLSDeleteHistory',
'uninstallDetail',
'DeleteHistory'
)
);
$params = array();
$result = array();
// If the method name associated to the token received doesn't match with
// the list, then we kill the request
if (!isset($accessPageList[$token]) || !in_array($method, $accessPageList[$token]))
exit();
// Method name allow to instanciate his object to properly call the
// implemented interface method and do his job
switch($method)
{
case 'GLSexportToWinExpe':
$params['orderIdList'] = Tools::getValue('order_id_list');
$params['totalOrder'] = Tools::getValue('numSelected');
$params['weightList'] = Tools::getValue('weight_list');
break;
case 'GLSImportFromWinExpe':
$params['orderStateImport'] = Tools::getValue('id_order_state');
break;
case 'GLSGetTickets':
$params['detailedExpeditionList'] = Tools::getValue('detailedExpeditionList');
break;
case 'uninstallDetail':
$params['action'] = Tools::getValue('action');
break;
case 'GLSGetRelayPoint':
$params['id_carrier'] = Tools::getValue('id_carrier');
$params['weight'] = Context::getContext()->cart->getTotalWeight();
$params['id_address_delivery'] = Context::getContext()->cart->id_address_delivery;
break;
case 'addSelectedCarrierToDB':
$params['id_carrier'] = Tools::getValue('id_carrier');
$params['id_cart'] = Context::getContext()->cart->id;
$params['id_customer'] = Context::getContext()->customer->id;
$params['id_gls_method'] = Tools::getValue('id_gls_method');
$params['relayPointInfo'] = Tools::getValue('relayPointInfo');
break;
default:
}
// Try to instanciate the method object name and call the necessaries method
try
{
if (class_exists($method, false))
{
// $this is the current mondialrelay object loaded when use in BO. Use for perf
$obj = new $method($params, $mondialrelay);
// Verify that the class implement correctly the interface
// Else use a Management class to do some ajax stuff
if (($obj instanceof IMondialRelayWSMethod))
{
$obj->init();
$obj->send();
$result = $obj->getResult();
}
unset($obj);
}
else if (($management = new GlsManagement($params)) &&
method_exists($management, $method))
$result = $management->{$method}();
else
throw new Exception('Method Class : '.$method.' can\'t be found');
unset($management);
}
catch(Exception $e)
{
echo GLSTools::jsonEncode(array('other' => array('error' => array($e->getMessage()))));
exit(-1);
}
echo GLSTools::jsonEncode($result);
exit(0);

93
modules/gls/ajaxFront.php Normal file
View File

@ -0,0 +1,93 @@
<?php
/*
* 2007-2014 Addonline
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License (AFL 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/afl-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.
*
* @author Addonline <contact@addonline.fr>
* @copyright 2007-2014 Addonline
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
*/
/*
* File called by ajax. It's like a controller, you have to send the
* method name of the webservice and implement it.
* Each Name method allow to instanciate an object containing
* methods to manage correctly the data and name fields
*/
// Clean displayed content for Admin ajax query
if (ob_get_contents()) ob_clean();
// Front Ajax query, need the front cookie and GLS class
// When it's back query, the PS core made the work
if (!defined('_PS_ADMIN_DIR_'))
{
require_once(realpath(dirname(__FILE__).'/../../config/config.inc.php'));
require_once(realpath(dirname(__FILE__).'/../../init.php'));
require_once(dirname(__FILE__).'/gls.php');
}
$gls = new Gls();
// Can't use Tools at this time... Need to know if _PS_ADMIN_DIR_ has to be defined
$method = Tools::getValue('method');
$params = array();
$result = array();
// Method name allow to instanciate his object to properly call the
// implemented interface method and do his job
switch($method)
{
case 'getGLSRelayCarrierId':
break;
case 'getGLSRelayPointsForZipCode':
$params['zipcode'] = Tools::getValue('zipcode');
$params['street'] = Tools::getValue('street');
$params['city'] = Tools::getValue('city');
break;
case 'getDefaultZipCode':
break;
case 'saveDeliveryDetails':
$params['name'] = Tools::getValue('name');
$params['address'] = Tools::getValue('address');
$params['city'] = Tools::getValue('city');
$params['zipcode'] = Tools::getValue('zipcode');
$params['relayId'] = Tools::getValue('relayId');
$params['phone'] = Tools::getValue('phone');
$params['warnbyphone'] = Tools::getValue('warnbyphone');
break;
case 'getChoosenRelay':
break;
case 'resetDeliveryDetails':
break;
default:
exit;
}
// Try to instanciate the method object name and call the necessaries method
try
{
if (method_exists($gls,$method))
{
$result = call_user_func(array($gls,$method),$params);
}
}
catch(Exception $e)
{
echo GLSTools::jsonEncode(array('other' => array('error' => array($e->getMessage()))));
exit(-1);
}
echo GLSTools::jsonEncode($result);
exit(0);

89
modules/gls/changelog.txt Normal file
View File

@ -0,0 +1,89 @@
version 1.1.2
14/07/2015 : - Ajout du test d'existence de la table avant l'import des agences
- Correction de l'affichage d'erreurs avec ajout pour les points relais
version 1.1.1
29/05/2015 : - Mise en place du contact lors de l'export des commandes livrées en Express
27/05/2015 : - Ajout du mode de transport Express
- Corrections de standards prestashop
01/04/2015 : - Gestion de la creation de la table d'export, pour les mises à jour par écrasement de dossier
- Gestion de l'export lors d'installation prestashop en sous dossier
version 1.1.0
04/03/2015 : - Suppression de jQuery tools au profit de popupoverlay
version 1.0.16
30/12/2014 : - Ajout des messages d'erreurs du webservices
version 1.0.15
19/11/2014 : - Ajout du champ « société » dans l'export vers WINEXPE6
- Mise en place de l'automatisation par cron
- Ajout du service « Livraison à domicile premium »
version 1.0.14
27/10/2014 : Utilisation de la version 3 de la google map
version 1.0.13
09/09/2014 : Correction de compatibilité avec la commande rapide
15/09/2014 : Envoi d'email de suivi lors de la mise à jour des commandes par import
16/09/2014 : prise en compte des chagement de poids de commande avant l'export
17/09/2014 : changement de l'unité de poids des commande exportées
version 1.0.12
23/07/2014 : Correction de compatibilité avec le module Mondial Relay + changement javascript des fonction live en on.
version 1.0.11
23/07/2014 : bug javascript, lorsqu'on est pas connecté en mode one page checkout
version 1.0.10
09/07/2014 : message de warning
09/07/2014 : template de configuration pour suppression d'une notice
version 1.0.9
12/06/2014 : poids sur les exports de commande ayant plusieurs fois le même produit
version 1.0.8
09/06/2014 : nom du module
09/06/2014 : Obligation de mettre un numéro de téléphone pourla livraison en point relais
version 1.0.7
02/06/2014 : Gestion de la répartition des caractères de l'adresse sur plusieurs ligne de 35 caractères
version 1.0.6
21/05/2014 : Rajout de sécurités sur le chargement de la carte Google
20/05/2014 : Correction d'un bug aléatoire sur la carte sous FF
16/05/2014 : Adaptation pour la compatibilité avec le module de point de fidélité
13/05/2014 : Placement de la société dans le champs street 1
version 1.0.5
28/04/2014 : Correction de l'export des commandes à la racine du module
28/04/2014 : Correction du non blocage du tunnel lors de la non sélection d'un relais GLS
version 1.0.4
24/04/2014 : Mise à jour de la documentation
22/04/2014 : Mise en place de la case à cocher pour la configuration des zones ou non à l'installation
version 1.0.3
11/04/2014 : Mise à jour pour la compatibilité prestashop 1.6 dans le BO
11/04/2014 : Suppression d'informations persistantes à la désinstallation du module
07/04/2014 : Correction d'un dysfontionnement de l'affichage du relais choisi
version 1.0.2
07/04/2014 : Correction d'un problème de structure de table GLS
01/04/2014 : Limitation du poids des relais XL
version 1.0.1
24/03/2014 : Correction du non ajout des transporteurs à la première installation
24/03/2014 : Correction de l'affichage du overlay GLS sur prestashop 1.6
24/03/2014 : Gestion de la version 1.6 de prestashop dans le javascript du module GLS
20/03/2014 : Affichage du prix de la commande même non payé dans le module GLS
version 1.0.0
19/03/2014 : Mise en place du changement de status pour l'import des commandes
18/03/2014 : Enregistrement de plusieurs numéro de tracking pour la même commande
04/03/2014 : Suppression du Product number lorsde l'export des commande livré à domicile
04/03/2014 : Etre prévenu par SMS coché par défaut, et récupération du numéro de téléphone mobile de l'adresse de facturation
14/02/2014 : Implémentation de l'import des commandes
13/02/2014 : Implémentation de l'export des commandes

View File

@ -0,0 +1,489 @@
<?php
/*
* 2007-2014 Addonline
*
* 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.
*
* @author Addonline <contact@addonline.fr>
* @copyright 2007-2014 Addonline
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
*/
require_once(dirname(__FILE__) . '/../gls.php');
class GlsManagement extends Gls {
private $_params = array();
private $_filename = '';
private $_resultList = array(
'error' => array(),
'success' => array());
private $_aProductnoCorrespondance = array(
'BP' => '02',
'BP_international' => '01',
'ADO' => '18',
'ADO_international' => '19',
'SHD' => '17',
'EXP' => '16'
);
public function __construct($params) {
$this->_params = $params;
parent::__construct();
}
public function __destruct() {
}
public function uninstallDetail() {
$html = '';
switch ($this->_params['action']) {
case 'showFancy':
$html .= '
<div id="PS_GLSAskBackupContent">
<h2>' . $this->l('Uninstalling Gls') . '</h2>
<div>
' . $this->l('You\'re about to uninstall the module, do you want to remove the database') . ' ?
<p id="PS_GLSUninstallListSelection">
<input type="button" id="PS_GLS_BackupAction" href="javascript:void(0)" value="' . $this->l('Keep it and uninstall') . '"/>
<br />
<input type="button" id="PS_GLS_UninstallAction" href="javascript:void(0)" value="' . $this->l('Remove and uninstall') . '" />
<br />
<input type="button" id="PS_GLS_StopUninstall" href="javascript:void(0)" value="' . $this->l('Cancel') . '" />
<br />
</p>
</div>
</div>
';
$this->_resultList['html'] = $html;
break;
case 'backupAndUninstall':
break;
default:
}
return $this->_resultList;
}
public function GLSexportToWinExpe() {
/*
* Csv export configuration
*/
$delimiter = ';';
$encloser = '"';
$this->_filename = 'GlsCmd_' . $this->udate('YmdHisu') . '.csv';
/*
* Get the export Folder
*/
$glsConfiguration = Gls::getAccountDetail();
($glsConfiguration['GLS_EXPORT_FOLDER']) ? $exportFolder = _PS_ROOT_DIR_ . DIRECTORY_SEPARATOR . $glsConfiguration['GLS_EXPORT_FOLDER'] : $exportFolder = dirname(__FILE__) . '/../export/';
(is_array($this->_params["orderIdList"])) ? $orderIdLists = implode(',', $this->_params["orderIdList"]) : $orderIdLists = '';
$aWeightList = array();
if (is_array($this->_params["weightList"]) && count($this->_params["weightList"]) > 0) {
foreach ($this->_params["weightList"] as $weight) {
$aTemp = explode('-', $weight);
$aWeightList[$aTemp[1]] = $aTemp[0];
}
}
if ($orderIdLists && $orderIdLists != '') {
$query = '
SELECT o.id_order,daddress.lastname, daddress.firstname,daddress.address1,daddress.address2,daddress.postcode,daddress.city,daddress.phone,carrier.external_module_name,SUM(od.product_weight*od.product_quantity) as order_weight,customer.id_customer,customer.email,gls.relay_warnbyphone,gls.relay_phone,country.iso_code,gls.relay_id,daddress.company,daddress.phone_mobile
FROM `' . _DB_PREFIX_ . 'orders` o
LEFT JOIN `' . _DB_PREFIX_ . 'address` daddress ON (o.id_address_delivery = daddress.id_address)
LEFT JOIN `' . _DB_PREFIX_ . 'order_detail` od ON (o.id_order = od.id_order)
LEFT JOIN `' . _DB_PREFIX_ . 'carrier` carrier ON (o.id_carrier = carrier.id_carrier)
LEFT JOIN `' . _DB_PREFIX_ . 'customer` customer ON (o.id_customer = customer.id_customer)
LEFT JOIN `' . _DB_PREFIX_ . 'GLS_delivery_info` gls ON (o.id_customer = gls.id_customer AND o.id_cart = gls.id_cart)
LEFT JOIN `' . _DB_PREFIX_ . 'country` country ON (daddress.id_country = country.id_country)
WHERE o.id_order in(' . $orderIdLists . ')
GROUP BY o.id_order
;';
} else {
$query = '
SELECT o.id_order,daddress.lastname, daddress.firstname,daddress.address1,daddress.address2,daddress.postcode,daddress.city,daddress.phone,carrier.external_module_name,SUM(od.product_weight*od.product_quantity) as order_weight,customer.id_customer,customer.email,gls.relay_warnbyphone,gls.relay_phone,country.iso_code,gls.relay_id,daddress.company,daddress.phone_mobile
FROM `' . _DB_PREFIX_ . 'orders` o
LEFT JOIN `' . _DB_PREFIX_ . 'address` daddress ON (o.id_address_delivery = daddress.id_address)
LEFT JOIN `' . _DB_PREFIX_ . 'order_detail` od ON (o.id_order = od.id_order)
LEFT JOIN `' . _DB_PREFIX_ . 'carrier` carrier ON (o.id_carrier = carrier.id_carrier)
LEFT JOIN `' . _DB_PREFIX_ . 'customer` customer ON (o.id_customer = customer.id_customer)
LEFT JOIN `' . _DB_PREFIX_ . 'GLS_delivery_info` gls ON (o.id_customer = gls.id_customer AND o.id_cart = gls.id_cart)
LEFT JOIN `' . _DB_PREFIX_ . 'GLS_orders_import_export` gls_ie ON (o.id_order = gls_ie.id_order)
LEFT JOIN `' . _DB_PREFIX_ . 'country` country ON (daddress.id_country = country.id_country)
WHERE gls_ie.exported IS NULL
GROUP BY o.id_order
;';
}
//On teste la requete afin de créer la table si elle n'existe pas
$aOrdersToExport = Db::getInstance()->executeS($query);
if (!$aOrdersToExport) {
//Test de la présence de la table
if ($this->tableExists(_DB_PREFIX_ . 'GLS_orders_import_export')) {
return false;
} else {
$sql = 'CREATE TABLE IF NOT EXISTS `' . _DB_PREFIX_ . 'GLS_orders_import_export` (
`id_order` int(10) NOT NULL,
`imported` tinyint(1) NULL,
`exported` tinyint(1) NULL,
PRIMARY KEY (`id_order`)
) ENGINE=' . _MYSQL_ENGINE_ . ' DEFAULT CHARSET=utf8;';
Db::getInstance()->execute($sql);
$aOrdersToExport = Db::getInstance()->executeS($query);
}
}
if (!is_array($aOrdersToExport))
$aOrdersToExport = array();
if (count($aOrdersToExport) <= 0) {
return $this->l('Error : No order to export');
}
$aOrdersExported = array();
// HEADERS of the file
$aheaders = array('ORDERID', 'ORDERNAME', 'PRODUCTNO', 'ORDERWEIGHTTOT', 'CONSID', 'CONTACT', 'CONTACTMAIL', 'CONTACTMOBILE', 'CONTACTPHONE', 'STREET1', 'STREET2', 'STREET3', 'COUNTRYCODE', 'CITY', 'ZIPCODE', 'REFPR');
$aOrdersExported[] = $aheaders;
// Parsing of the orders
foreach ($aOrdersToExport as $order) {
$aRow = array();
// ORDERID
$aRow[] = $order['id_order'];
//Test s'il y a un nom de société
if ($order['company']) {
$aRow[] = $order['company'];
} else {
$aRow[] = mb_strtoupper($order['firstname'] . ' ' . $order['lastname'], 'UTF-8');
}
// PRODUCTNO
if ($order['external_module_name'] == 'gls') {
$shippingMethod = 'EXP';
} else {
$shippingMethod = mb_strtoupper(Tools::substr($order['external_module_name'], 4, 3), 'UTF-8');
}
if (mb_strtoupper($order['iso_code'], 'UTF-8') != 'FR') {
$aRow[] = $this->_aProductnoCorrespondance[$shippingMethod . '_international'];
} else {
$aRow[] = $this->_aProductnoCorrespondance[$shippingMethod];
}
// ORDERWEIGHTTOT
if ($order['order_weight'] != $aWeightList[$order['id_order']]) {
$aRow[] = str_pad(number_format($aWeightList[$order['id_order']] / 1000, 2, '.', ''), 5, "0", STR_PAD_LEFT);
} else {
$aRow[] = str_pad(number_format($order['order_weight'], 2, '.', ''), 5, "0", STR_PAD_LEFT);
}
// CONSID
$aRow[] = $order['id_customer'];
// CONTACT
if ($order['company']) {
$aRow[] = mb_strtoupper($order['firstname'] . ' ' . $order['lastname'], 'UTF-8');
} else {
if ($shippingMethod == 'EXP') {
/* If Shipping method is express, CONTACT field is always FIRSTNAME - LASTNAME */
$aRow[] = mb_strtoupper($order['firstname'] . ' ' . $order['lastname'], 'UTF-8');
} else {
$aRow[] = '';
}
}
// CONTACTMAIL
$aRow[] = $order['email'];
// CONTACTMOBILE
if ($shippingMethod != 'SHD') {
$aRow[] = $order['phone_mobile'];
} else {
$aRow[] = $order['relay_warnbyphone'] ? $order['relay_phone'] : '';
}
// CONTACTPHONE
if (!$order['phone']) {
$aRow[] = $order['phone_mobile'];
} else {
$aRow[] = $order['phone'];
}
if ($order['address1'] > 35 || Tools::strlen($order['address2']) > 35) {
$street = $order['address1'] . ' ' . $order['address2'];
$street = wordwrap($street, 35, ';', true);
$aStreet = explode(';', $street);
// STREET1
$aRow[] = mb_strtoupper(isset($aStreet[0]) ? $aStreet[0] : null, 'UTF-8');
// STREET2
$aRow[] = mb_strtoupper(isset($aStreet[1]) ? $aStreet[1] : null, 'UTF-8');
} else {
// STREET1
$aRow[] = mb_strtoupper($order['address1'], 'UTF-8');
// STREET2
$aRow[] = mb_strtoupper($order['address2'], 'UTF-8');
}
// STREET3
$aRow[] = '';
// COUNTRYCODE
$aRow[] = mb_strtoupper($order['iso_code'], 'UTF-8');
// CITY
$aRow[] = mb_strtoupper($this->stripAccents($order['city']), 'UTF-8');
// ZIPCODE
$aRow[] = mb_strtoupper($order['postcode'], 'UTF-8');
// REFPR (identifiant du point relais)
$aRow[] = $order['relay_id'];
// Adding the order to the export array
$aOrdersExported[] = $aRow;
if (!$orderIdLists == '') {
$query = 'DELETE FROM `' . _DB_PREFIX_ . 'GLS_orders_import_export` WHERE `id_order` = ' . $order['id_order'] . ';';
if (!Db::getInstance()->execute($query)) {
if (!$this->tableExists(_DB_PREFIX_ . 'GLS_orders_import_export')) {
$sql = 'CREATE TABLE IF NOT EXISTS `' . _DB_PREFIX_ . 'GLS_orders_import_export` (
`id_order` int(10) NOT NULL,
`imported` tinyint(1) NULL,
`exported` tinyint(1) NULL,
PRIMARY KEY (`id_order`)
) ENGINE=' . _MYSQL_ENGINE_ . ' DEFAULT CHARSET=utf8;';
Db::getInstance()->execute($sql);
$query = 'DELETE FROM `' . _DB_PREFIX_ . 'GLS_orders_import_export` WHERE `id_order` = ' . $order['id_order'] . ';';
Db::getInstance()->execute($query);
} else {
return false;
}
}
}
$query = 'INSERT INTO `' . _DB_PREFIX_ . 'GLS_orders_import_export` (`id_order`,
`imported`,
`exported`)
VALUES
(' . $order['id_order'] . ',
0,
1);';
if (!Db::getInstance()->execute($query))
return false;
}
/*
* Save the file
*/
$writeCsv = $this->array2csv($aOrdersExported, $this->_filename, $delimiter, $encloser, $exportFolder);
($writeCsv) ? $return = $writeCsv : $return = count($aOrdersExported) - 1 . ' ' . $this->l('orders exported');
return _PS_BASE_URL_ . __PS_BASE_URI__ . DIRECTORY_SEPARATOR . $glsConfiguration['GLS_EXPORT_FOLDER'] . DIRECTORY_SEPARATOR . $this->_filename;
}
private function udate($format = 'u', $utimestamp = null) {
if (is_null($utimestamp))
$utimestamp = microtime(true);
$timestamp = floor($utimestamp);
$milliseconds = round(($utimestamp - $timestamp) * 1000000);
$milliseconds = Tools::substr($milliseconds, 0, 2);
return date(preg_replace('`(?<!\\\\)u`', $milliseconds, $format), $timestamp);
}
private function array2csv(array &$array, $filename, $delimiter = ';', $encloser = '"', $folder = 'modules/gls/export/') {
if (count($array) == 0) {
return null;
}
if (!file_exists($folder) and ! is_dir($folder)) {
if (!@mkdir($folder, '777', true)) {
$error = error_get_last();
return $folder . ' ' . $error['message'];
}
}
ob_start();
try {
$df = fopen($folder . DIRECTORY_SEPARATOR . $filename, 'w+');
} catch (Exception $e) {
return ($e->message());
}
foreach ($array as $row) {
//WINEXPE attends de l'ISO-8859-1
foreach (array_keys($row) as $key) {
$row[$key] = iconv('UTF-8', 'ISO-8859-9', $row[$key]);
}
fputcsv($df, $row, $delimiter, $encloser);
}
fclose($df);
return ob_get_clean();
}
public function GLSImportFromWinExpe() {
Configuration::updateValue('GLS_ORDER_STATE_IMPORT', $this->_params["orderStateImport"]);
/*
* Get the import Folder
*/
$glsConfiguration = Gls::getAccountDetail();
($glsConfiguration['GLS_IMPORT_FOLDER']) ? $importFolder = _PS_ROOT_DIR_ . DIRECTORY_SEPARATOR . $glsConfiguration['GLS_IMPORT_FOLDER'] : $importFolder = dirname(__FILE__) . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . 'import' . DIRECTORY_SEPARATOR;
if (!file_exists($importFolder) and ! is_dir($importFolder)) {
return $importFolder . ' ' . $this->l('does not exist');
}
$dir = opendir($importFolder);
$count = 0;
//Parcour du dossier
while ($file = readdir($dir)) {
if ($file != '.' && $file != '..' && !is_dir($importFolder . $file) && strpos($file, 'GlsWinExpe6_') !== FALSE) {
$aOrdersUpdated = array();
// Parcour du fichier
if (($handle = fopen($importFolder . DIRECTORY_SEPARATOR . $file, "r")) !== FALSE) {
$row = 0;
while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) {
$num = count($data);
$row++;
if ($row > 1 && isset($data[4]) && $data[4]) {
// On récupère le champ 5 qui contient le numéro de la commande
// chargement de la commande
$order = new Order($data[4]);
$id_order_carrier = Db::getInstance()->getValue('SELECT `id_order_carrier` FROM `' . _DB_PREFIX_ . 'order_carrier` WHERE `id_order` = ' . (int) $data[4]);
//Si la commande n'existe pas
if (!$id_order_carrier)
continue;
$order_carrier = new OrderCarrier($id_order_carrier);
if (strpos($order_carrier->tracking_number, $data[17]) === false) {
if ($order_carrier->tracking_number) {
$order_carrier->tracking_number = $order_carrier->tracking_number . ',' . pSQL($data[17]);
} else {
$order_carrier->tracking_number = pSQL($data[17]);
}
$order_carrier->update();
}
// On met à jour le trackid avec le champ 18
try {
if (strpos($order->shipping_number, $data[17]) === false) {
if ($order->shipping_number) {
$order->shipping_number .= ',' . $data[17];
} else {
$order->shipping_number = $data[17];
}
$order->update();
}
} catch (Exception $e) {
return $this->l('Order ') . $data[4] . ' ' . $this->l('has no shipping number in the import file ');
}
try {
// Changement du status de la commande
$new_order_state = new OrderState($this->_params["orderStateImport"]);
$current_order_state = $order->getCurrentOrderState();
if ($current_order_state->id != $new_order_state->id) {
// Create new OrderHistory
$history = new OrderHistory();
$history->id_order = $order->id;
$history->id_order_state = $new_order_state->id;
//Sauvegarde dans la base de donnée de l'import
$query = 'UPDATE `' . _DB_PREFIX_ . 'GLS_orders_import_export` set imported = 1 WHERE `id_order` = ' . $data[4] . ';';
if (!Db::getInstance()->execute($query)) {
if (!$this->tableExists(_DB_PREFIX_ . 'GLS_orders_import_export')) {
$sql = 'CREATE TABLE IF NOT EXISTS `' . _DB_PREFIX_ . 'GLS_orders_import_export` (
`id_order` int(10) NOT NULL,
`imported` tinyint(1) NULL,
`exported` tinyint(1) NULL,
PRIMARY KEY (`id_order`)
) ENGINE=' . _MYSQL_ENGINE_ . ' DEFAULT CHARSET=utf8;';
Db::getInstance()->execute($sql);
$query = 'DELETE FROM `' . _DB_PREFIX_ . 'GLS_orders_import_export` WHERE `id_order` = ' . $order['id_order'] . ';';
Db::getInstance()->execute($query);
} else {
return false;
}
}
$use_existings_payment = false;
if (!$order->hasInvoice())
$use_existings_payment = true;
$history->changeIdOrderState((int) $new_order_state->id, $order, $use_existings_payment);
$history->addWithemail(true);
$history->save();
}
} catch (Exception $e) {
Logger::addLog($e->getMessage());
return $this->l('Order ') . $data[4] . ' ' . $this->l('No change of status ');
}
$count++;
}
}
fclose($handle);
try {
unlink($importFolder . DIRECTORY_SEPARATOR . $file);
} catch (Exception $e) {
return ("Import : unable to delete file : " . $importFolder . $file);
}
}
}
}
closedir($dir);
return $count . ' ' . $this->l('orders imported');
}
public function stripAccents($string) {
return strtr($string, 'àáâãäçèéêëìíîïñòóôõöùúûüýÿÀÁÂÃÄÇÈÉÊËÌÍÎÏÑÒÓÔÕÖÙÚÛÜÝ', 'aaaaaceeeeiiiinooooouuuuyyAAAAACEEEEIIIINOOOOOUUUUY');
}
public function tableExists($tableName) {
$tables = Db::getInstance()->executeS('SHOW TABLES');
foreach ($tables as $key => $table) {
if ($table == $tableName) {
return true;
}
}
return false;
}
}

View File

@ -0,0 +1,261 @@
<?php
/*
* 2007-2014 Addonline
*
* 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.
*
* @author Addonline <contact@addonline.fr>
* @copyright 2007-2014 Addonline
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
*/
/*
** Some tools using used in the module
*/
class GLSTools
{
const REGEX_CLEAN_ADDR = '/[^a-zA-Z0-9-\s\'\!\,\|\(\)\.\*\&\#\/\:]/';
const REGEX_CLEAN_PHONE = '/[^0-9+\(\)]*/';
/**
* Check if a string could be UTF8 one
*
* @static
* @param $str
* @return bool
*/
public static function seemsUTF8($str)
{
$length = Tools::strlen($str);
for($i = 0; $i < $length; $i++)
{
$c = ord($str[$i]);
if ($c < 0x80)
$n = 0; # 0bbbbbbb
else if (($c & 0xE0) == 0xC0)
$n = 1; # 110bbbbb
else if (($c & 0xF0) == 0xE0)
$n=2; # 1110bbbb
else if (($c & 0xF8) == 0xF0)
$n = 3; # 11110bbb
else if (($c & 0xFC) == 0xF8)
$n = 4; # 111110bb
else if (($c & 0xFE) == 0xFC)
$n=5; # 1111110b
else
return false; # Does not match any model
for ($j = 0; $j < $n; $j++)
{
# n bytes matching 10bbbbbb follow ?
if ((++$i == $length) || ((ord($str[$i]) & 0xC0) != 0x80))
return false;
}
}
return true;
}
/**
* Converts all accent characters to ASCII characters.
*
* If there are no accent characters, then the string given is just returned.
*
* @param string $string Text that might have accent characters
* @return string Filtered string with replaced "nice" characters.
*/
public static function removeAccents($string)
{
if (!preg_match('/[\x80-\xff]/', $string))
return $string;
if (GLSTools::seemsUTF8($string))
{
$chars = array(
// Decompositions for Latin-1 Supplement
chr(195).chr(128) => 'A', chr(195).chr(129) => 'A',
chr(195).chr(130) => 'A', chr(195).chr(131) => 'A',
chr(195).chr(132) => 'A', chr(195).chr(133) => 'A',
chr(195).chr(135) => 'C', chr(195).chr(136) => 'E',
chr(195).chr(137) => 'E', chr(195).chr(138) => 'E',
chr(195).chr(139) => 'E', chr(195).chr(140) => 'I',
chr(195).chr(141) => 'I', chr(195).chr(142) => 'I',
chr(195).chr(143) => 'I', chr(195).chr(145) => 'N',
chr(195).chr(146) => 'O', chr(195).chr(147) => 'O',
chr(195).chr(148) => 'O', chr(195).chr(149) => 'O',
chr(195).chr(150) => 'O', chr(195).chr(153) => 'U',
chr(195).chr(154) => 'U', chr(195).chr(155) => 'U',
chr(195).chr(156) => 'U', chr(195).chr(157) => 'Y',
chr(195).chr(159) => 's', chr(195).chr(160) => 'a',
chr(195).chr(161) => 'a', chr(195).chr(162) => 'a',
chr(195).chr(163) => 'a', chr(195).chr(164) => 'a',
chr(195).chr(165) => 'a', chr(195).chr(167) => 'c',
chr(195).chr(168) => 'e', chr(195).chr(169) => 'e',
chr(195).chr(170) => 'e', chr(195).chr(171) => 'e',
chr(195).chr(172) => 'i', chr(195).chr(173) => 'i',
chr(195).chr(174) => 'i', chr(195).chr(175) => 'i',
chr(195).chr(177) => 'n', chr(195).chr(178) => 'o',
chr(195).chr(179) => 'o', chr(195).chr(180) => 'o',
chr(195).chr(181) => 'o', chr(195).chr(182) => 'o',
chr(195).chr(182) => 'o', chr(195).chr(185) => 'u',
chr(195).chr(186) => 'u', chr(195).chr(187) => 'u',
chr(195).chr(188) => 'u', chr(195).chr(189) => 'y',
chr(195).chr(191) => 'y',
// Decompositions for Latin Extended-A
chr(196).chr(128) => 'A', chr(196).chr(129) => 'a',
chr(196).chr(130) => 'A', chr(196).chr(131) => 'a',
chr(196).chr(132) => 'A', chr(196).chr(133) => 'a',
chr(196).chr(134) => 'C', chr(196).chr(135) => 'c',
chr(196).chr(136) => 'C', chr(196).chr(137) => 'c',
chr(196).chr(138) => 'C', chr(196).chr(139) => 'c',
chr(196).chr(140) => 'C', chr(196).chr(141) => 'c',
chr(196).chr(142) => 'D', chr(196).chr(143) => 'd',
chr(196).chr(144) => 'D', chr(196).chr(145) => 'd',
chr(196).chr(146) => 'E', chr(196).chr(147) => 'e',
chr(196).chr(148) => 'E', chr(196).chr(149) => 'e',
chr(196).chr(150) => 'E', chr(196).chr(151) => 'e',
chr(196).chr(152) => 'E', chr(196).chr(153) => 'e',
chr(196).chr(154) => 'E', chr(196).chr(155) => 'e',
chr(196).chr(156) => 'G', chr(196).chr(157) => 'g',
chr(196).chr(158) => 'G', chr(196).chr(159) => 'g',
chr(196).chr(160) => 'G', chr(196).chr(161) => 'g',
chr(196).chr(162) => 'G', chr(196).chr(163) => 'g',
chr(196).chr(164) => 'H', chr(196).chr(165) => 'h',
chr(196).chr(166) => 'H', chr(196).chr(167) => 'h',
chr(196).chr(168) => 'I', chr(196).chr(169) => 'i',
chr(196).chr(170) => 'I', chr(196).chr(171) => 'i',
chr(196).chr(172) => 'I', chr(196).chr(173) => 'i',
chr(196).chr(174) => 'I', chr(196).chr(175) => 'i',
chr(196).chr(176) => 'I', chr(196).chr(177) => 'i',
chr(196).chr(178) => 'IJ',chr(196).chr(179) => 'ij',
chr(196).chr(180) => 'J', chr(196).chr(181) => 'j',
chr(196).chr(182) => 'K', chr(196).chr(183) => 'k',
chr(196).chr(184) => 'k', chr(196).chr(185) => 'L',
chr(196).chr(186) => 'l', chr(196).chr(187) => 'L',
chr(196).chr(188) => 'l', chr(196).chr(189) => 'L',
chr(196).chr(190) => 'l', chr(196).chr(191) => 'L',
chr(197).chr(128) => 'l', chr(197).chr(129) => 'L',
chr(197).chr(130) => 'l', chr(197).chr(131) => 'N',
chr(197).chr(132) => 'n', chr(197).chr(133) => 'N',
chr(197).chr(134) => 'n', chr(197).chr(135) => 'N',
chr(197).chr(136) => 'n', chr(197).chr(137) => 'N',
chr(197).chr(138) => 'n', chr(197).chr(139) => 'N',
chr(197).chr(140) => 'O', chr(197).chr(141) => 'o',
chr(197).chr(142) => 'O', chr(197).chr(143) => 'o',
chr(197).chr(144) => 'O', chr(197).chr(145) => 'o',
chr(197).chr(146) => 'OE',chr(197).chr(147) => 'oe',
chr(197).chr(148) => 'R',chr(197).chr(149) => 'r',
chr(197).chr(150) => 'R',chr(197).chr(151) => 'r',
chr(197).chr(152) => 'R',chr(197).chr(153) => 'r',
chr(197).chr(154) => 'S',chr(197).chr(155) => 's',
chr(197).chr(156) => 'S',chr(197).chr(157) => 's',
chr(197).chr(158) => 'S',chr(197).chr(159) => 's',
chr(197).chr(160) => 'S', chr(197).chr(161) => 's',
chr(197).chr(162) => 'T', chr(197).chr(163) => 't',
chr(197).chr(164) => 'T', chr(197).chr(165) => 't',
chr(197).chr(166) => 'T', chr(197).chr(167) => 't',
chr(197).chr(168) => 'U', chr(197).chr(169) => 'u',
chr(197).chr(170) => 'U', chr(197).chr(171) => 'u',
chr(197).chr(172) => 'U', chr(197).chr(173) => 'u',
chr(197).chr(174) => 'U', chr(197).chr(175) => 'u',
chr(197).chr(176) => 'U', chr(197).chr(177) => 'u',
chr(197).chr(178) => 'U', chr(197).chr(179) => 'u',
chr(197).chr(180) => 'W', chr(197).chr(181) => 'w',
chr(197).chr(182) => 'Y', chr(197).chr(183) => 'y',
chr(197).chr(184) => 'Y', chr(197).chr(185) => 'Z',
chr(197).chr(186) => 'z', chr(197).chr(187) => 'Z',
chr(197).chr(188) => 'z', chr(197).chr(189) => 'Z',
chr(197).chr(190) => 'z', chr(197).chr(191) => 's',
// Euro Sign
chr(226).chr(130).chr(172) => 'E',
// GBP (Pound) Sign
chr(194).chr(163) => '');
$string = strtr($string, $chars);
}
else
{
// Assume ISO-8859-1 if not UTF-8
$chars['in'] = chr(128).chr(131).chr(138).chr(142).chr(154).chr(158)
.chr(159).chr(162).chr(165).chr(181).chr(192).chr(193).chr(194)
.chr(195).chr(196).chr(197).chr(199).chr(200).chr(201).chr(202)
.chr(203).chr(204).chr(205).chr(206).chr(207).chr(209).chr(210)
.chr(211).chr(212).chr(213).chr(214).chr(216).chr(217).chr(218)
.chr(219).chr(220).chr(221).chr(224).chr(225).chr(226).chr(227)
.chr(228).chr(229).chr(231).chr(232).chr(233).chr(234).chr(235)
.chr(236).chr(237).chr(238).chr(239).chr(241).chr(242).chr(243)
.chr(244).chr(245).chr(246).chr(248).chr(249).chr(250).chr(251)
.chr(252).chr(253).chr(255);
$chars['out'] = "EfSZszYcYuAAAAAACEEEEIIIINOOOOOOUUUUYaaaaaaceeeeiiiinoooooouuuuyy";
$double_chars = Array();
$string = strtr($string, $chars['in'], $chars['out']);
$double_chars['in'] = array(chr(140), chr(156), chr(198), chr(208), chr(222), chr(223), chr(230), chr(240), chr(254));
$double_chars['out'] = array('OE', 'oe', 'AE', 'DH', 'TH', 'ss', 'ae', 'dh', 'th');
$string = str_replace($double_chars['in'], $double_chars['out'], $string);
}
return $string;
}
// Add for 1.3 compatibility and avoid duplicate code
public static function jsonEncode($result)
{
return Tools::jsonEncode($result);
}
/*
** Fix security and compatibility for PS < 1.4.5
*/
public static function bqSQL($string)
{
return str_replace('`', '\`', pSQL($string));
}
/*
** Check zip code by country
*/
static public function checkZipcodeByCountry($zipcode, $params)
{
$id_country = $params['id_country'];
$zipcodeFormat = Db::getInstance()->getValue('
SELECT `zip_code_format`
FROM `'._DB_PREFIX_.'country`
WHERE `id_country` = '.(int)$id_country);
// -1 to warn user that no layout exist
if (!$zipcodeFormat)
return -1;
$regxMask = str_replace(
array('N', 'C', 'L'),
array(
'[0-9]',
Country::getIsoById((int)$id_country),
'[a-zA-Z]'),
$zipcodeFormat);
if (preg_match('/'.$regxMask.'/', $zipcode))
return true;
return false;
}
static public function getFormatedPhone($phone_number)
{
$begin = Tools::substr($phone_number, 0, 3);
$pad_number = (strpos($begin, '+3') !== false) ? 12 :
(strpos($begin, '00') ? 13 : 10);
return str_pad(Tools::substr(preg_replace(GLSTools::REGEX_CLEAN_PHONE, '', $phone_number), 0, $pad_number), $pad_number, '0');
}
}
?>

View File

@ -0,0 +1,28 @@
<?php
/*
* 2007-2014 Addonline
*
* 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.
*
* @author Addonline <contact@addonline.fr>
* @copyright 2007-2014 Addonline
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
*/
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;

12
modules/gls/config.xml Normal file
View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8" ?>
<module>
<name>gls</name>
<displayName><![CDATA[GLS]]></displayName>
<version><![CDATA[1.1.2]]></version>
<description><![CDATA[Deliver in Relay points]]></description>
<author><![CDATA[Jetpulp]]></author>
<tab><![CDATA[shipping_logistics]]></tab>
<is_configurable>1</is_configurable>
<need_instance>1</need_instance>
<limited_countries></limited_countries>
</module>

12
modules/gls/config_fr.xml Normal file
View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8" ?>
<module>
<name>gls</name>
<displayName><![CDATA[GLS]]></displayName>
<version><![CDATA[1.1.2]]></version>
<description><![CDATA[Livrer dans un Point Relais GLS]]></description>
<author><![CDATA[Jetpulp]]></author>
<tab><![CDATA[shipping_logistics]]></tab>
<is_configurable>1</is_configurable>
<need_instance>1</need_instance>
<limited_countries></limited_countries>
</module>

14
modules/gls/cron.php Normal file
View File

@ -0,0 +1,14 @@
<?php
include_once('../../config/config.inc.php');
include_once('gls.php');
include_once('classes/GLSManagement.php');
if (Tools::getValue('secure_key') != Configuration::get('GLS_SECURE_KEY')) {
echo ' - BAD KEY - ';
exit;
}
$oGlsManagement = new GlsManagement();
$oGlsManagement->GLSexportToWinExpe();
$oGlsManagement->GLSImportFromWinExpe();

View File

@ -0,0 +1,28 @@
<?php
/*
* 2007-2014 Addonline
*
* 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.
*
* @author Addonline <contact@addonline.fr>
* @copyright 2007-2014 Addonline
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
*/
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.

1338
modules/gls/gls.php Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,2 @@
IDENTIFIANT;DATE;COLIS;CODE PRODUIT;REFERENCE 1;REF DESTINATAIRE;NOM ou RAISON SOCIALE;NOM DU CONTACT;ADRESSE 1;ADRESSE 2;ADRESSE 3;ZIPCODE;VILLE;CODE PAYS;REFERENCE 2;CHARGEUR;CHARGEUR SECONDAIRE;TRACKID
1;11/05/2016;1000001;FDBP;;TEST;TEST;;TEST;;;93100;TEST;FR;;2504846601;0;009H2388
1 IDENTIFIANT DATE COLIS CODE PRODUIT REFERENCE 1 REF DESTINATAIRE NOM ou RAISON SOCIALE NOM DU CONTACT ADRESSE 1 ADRESSE 2 ADRESSE 3 ZIPCODE VILLE CODE PAYS REFERENCE 2 CHARGEUR CHARGEUR SECONDAIRE TRACKID
2 1 11/05/2016 1000001 FDBP TEST TEST TEST 93100 TEST FR 2504846601 0 009H2388

View File

@ -0,0 +1,28 @@
<?php
/*
* 2007-2014 Addonline
*
* 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.
*
* @author Addonline <contact@addonline.fr>
* @copyright 2007-2014 Addonline
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
*/
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;

28
modules/gls/index.php Normal file
View File

@ -0,0 +1,28 @@
<?php
/*
* 2007-2014 Addonline
*
* 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.
*
* @author Addonline <contact@addonline.fr>
* @copyright 2007-2014 Addonline
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
*/
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;

BIN
modules/gls/logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

@ -0,0 +1,70 @@
<p>
{l s='All orders which have the state' mod='gls'} "<b>{$GLS_order_state.name}</b>" {l s='will be available for creation of labels' mod='gls'}
</p>
<div class="PS_GLSErrorList error" id="otherErrors">
<span></span>
</div>
<fieldset>
<legend>{l s='Export orders' mod='gls'}</legend>
<form method="post" action="{$smarty.server.REQUEST_URI}" class="GLS_form_admintab">
<table class="table" id='orders'>
<tr>
<th><input type="checkbox" id="toggleStatusOrderList" /></th>
<th>{l s='Order ID' mod='gls'}</th>
<th>{l s='Customer' mod='gls'}</th>
<th>{l s='Total price' mod='gls'}</th>
<th>{l s='Total shipping costs' mod='gls'}</th>
<th>{l s='Date' mod='gls'}</th>
<th>{l s='Insert weight (grams)' mod='gls'}</th>
<th>{l s='GLS Relay Id' mod='gls'}</th>
<th>{l s='Detail' mod='gls'}</th>
</tr>
{foreach from=$GLS_orders key=case_num item=order}
<tr id="PS_GLSLineOrderInformation-{$order.id_order}">
<td><input type="checkbox" class="order_id_list" name="order_id_list[]" id="order_id_list" value="{$order.id_order}" /></td>
<td>{$order.id_order}</td>
<td>{$order.customer}</td>
<td>{$order.display_total_price}</td>
<td>{$order.display_shipping_price}</td>
<td>{$order.display_date}</td>
<td>
<input type="text" name="weight_{$order.id_order}" id="weight_{$order.id_order}" size="7" value="{$order.weight}" />
</td>
<td>{$order.GLS_Selected_Num}</td>
<td class="center">
<a href="index.php?tab=AdminOrders&id_order={$order.id_order}&vieworder&token={$GLS_token_admin_orders}">
<img border="0" title="{l s='View' mod='gls'}" alt="{l s='View' mod='gls'}" src="{$new_gls_base_dir}views/img/details.gif"/>
</a>
</td>
</tr>
<tr class="PS_GLSErrorList error" id="errorCreatingTicket_{$order.id_order}" style="display:none;">
<td colspan="11" style="background:url({$GLS_PS_IMG_DIR_}admin/error2.png) 10px 10px no-repeat;">
<span></span>
</td>
</tr>
<tr class="PS_GLSSuccessList" id="successCreatingTicket_{$order.id_order}" style="display:none;">
<td>{$order.id_order}</td>
<td colspan="10" style="background:url({$GLS_PS_IMG_DIR_}admin/ok2.png) 10px 5px no-repeat #DFFAD3;">
{l s='Operation successful' mod='gls'}
<span></span>
</td>
</tr>
{/foreach}
</table>
{if !$GLS_orders|count}
<h3 style="color:red;">{l s='No orders with this state.' mod='gls'}</h3>
{else}
<div class="submit_button">
<div class="PS_GLSSubmitButton" id="PS_GLSSubmitButtonGenerateTicket">
<input type="button" name="generate" id="generate" value="{l s='Generate' mod='gls'}" class="button" />
<input type="button" name="generate-local" id="generate-local" value="{l s='Generate locally' mod='gls'}" class="button" />
</div>
<div class="PS_GLSLoader" id="PS_GLSSubmitGenerateLoader" style="display:none;"><img src="{$new_gls_base_dir}views/img/getTickets.gif"/></div>
</div>
{/if}
</form>
</fieldset>
<br />

View File

@ -0,0 +1,28 @@
<?php
/*
* 2007-2014 Addonline
*
* 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.
*
* @author Addonline <contact@addonline.fr>
* @copyright 2007-2014 Addonline
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
*/
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,54 @@
{include file="$GLS_local_path/views/templates/admin/post_action.tpl"}
<div>
<fieldset>
<legend><img src="../modules/gls/views/img/logo.png" />{l s='Import' mod='gls'}</legend>
<label for="id_order_state">{l s='Order state' mod='gls'}</label>
<div class="margin-form">
<select id="id_order_state_import" name="id_order_state" style="width:250px">
{foreach from=$GLS_orders_states_list key=num_state item=order_state}
{assign var='selected_option' value=''}
{if $order_state.id_order_state == $GLS_order_state_import}
{assign var='selected_option' value='selected="selected"'}
{/if}
<option value="{$order_state.id_order_state}" style="background-color:{$order_state.color};" {$selected_option}>{$order_state.name}</option>
{/foreach}
</select>
<p>
{l s='Choose the order state after the import.' mod='gls'}
</p>
</div>
<div class="submit_button">
<button name="importOrders" id="importOrders" value="{l s='Save' mod='gls'}" class="button">{l s='Import orders' mod='gls'}</button>
</div>
</fieldset>
</div>
<br />
<div>
<form action="{$smarty.server.REQUEST_URI}" method="post" class="form">
<fieldset>
<legend><img src="../modules/gls/views/img/logo.png" />{l s='Export Filter' mod='gls'}</legend>
<label for="id_order_state">{l s='Order state' mod='gls'}</label>
<div class="margin-form">
<select id="id_order_state" name="id_order_state" style="width:250px">
{foreach from=$GLS_orders_states_list key=num_state item=order_state}
{assign var='selected_option' value=''}
{if $order_state.id_order_state == $GLS_order_state.id_order_state}
{assign var='selected_option' value='selected="selected"'}
{/if}
<option value="{$order_state.id_order_state}" style="background-color:{$order_state.color};" {$selected_option}>{$order_state.name}</option>
{/foreach}
</select>
<p>
{l s='Choose the order state for export.' mod='gls'}
</p>
</div>
<div class="clear"></div>
<div class="margin-form">
<input type="submit" name="submit_order_state" value="{l s='Filter' mod='gls'}" class="button" />
</div>
</fieldset>
<input type="hidden" name="GLS_action_name" value="{l s='Settings'}" />
</form>
</div>

28
modules/gls/tpl/index.php Normal file
View File

@ -0,0 +1,28 @@
<?php
/*
* 2007-2014 Addonline
*
* 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.
*
* @author Addonline <contact@addonline.fr>
* @copyright 2007-2014 Addonline
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
*/
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,6 @@
<?php
global $_MODULE;
$_MODULE = array();
?>

View File

@ -0,0 +1,103 @@
<?php
global $_MODULE;
$_MODULE = array();
$_MODULE['<{gls}prestashop>admingls_e82faee1422140edd04b2f94c5051500'] = 'Opération effectuée';
$_MODULE['<{gls}prestashop>admingls_3b2d373418745276ae6e207421245cdc'] = 'Le status de commande a été mis à jour';
$_MODULE['<{gls}prestashop>admingls_b4ac3d3f15bc0984d0906aff1202e701'] = 'Impossible de mettre à jour le compte';
$_MODULE['<{gls}prestashop>gls_07351bfe713bfebc506f0660ff44b7bf'] = 'GLS';
$_MODULE['<{gls}prestashop>gls_ed4a3b96dc1f38c160775cac1f7bcd6d'] = 'Livrer dans un Point Relais GLS';
$_MODULE['<{gls}prestashop>gls_1889ea20d1343f376f5d52b6b8dc7a3f'] = 'Vous devez choisir un Point Relais GLS avant de continuer.';
$_MODULE['<{gls}prestashop>gls_29616e349017da1ff1b5423ed2ec4fe6'] = 'Login invalide';
$_MODULE['<{gls}prestashop>gls_626295ee4555407394df3e9998e1fc19'] = 'Mot de passe invalide';
$_MODULE['<{gls}prestashop>gls_4eb287cc225ba0e1bcfe9cc1b8315def'] = 'Coefficient de poids invalide';
$_MODULE['<{gls}prestashop>gls_979c6094728c14aac1b66d544dc5cebd'] = 'Statut commande invalide';
$_MODULE['<{gls}prestashop>gls_e82faee1422140edd04b2f94c5051500'] = 'Opération effectuée';
$_MODULE['<{gls}prestashop>gls_672facd73d4aee44c116cfd95298db87'] = 'Les détails du compte ont été mis à jour';
$_MODULE['<{gls}prestashop>gls_6f8522e0610541f1ef215a22ffa66ff6'] = 'Lundi';
$_MODULE['<{gls}prestashop>gls_5792315f09a5d54fb7e3d066672b507f'] = 'Mardi';
$_MODULE['<{gls}prestashop>gls_796c163589f295373e171842f37265d5'] = 'Mercredi';
$_MODULE['<{gls}prestashop>gls_78ae6f0cd191d25147e252dc54768238'] = 'Jeudi';
$_MODULE['<{gls}prestashop>gls_c33b138a163847cdb6caeeb7c9a126b4'] = 'Vendredi';
$_MODULE['<{gls}prestashop>gls_8b7051187b9191cdcdae6ed5a10e5adc'] = 'Samedi';
$_MODULE['<{gls}prestashop>gls_9d1a0949c39e66a0cd65240bc0ac9177'] = 'Dimanche';
$_MODULE['<{gls}prestashop>glsmanagement_aae091010a465c8c8659aa968fa7470c'] = 'Désinstallation de GLS';
$_MODULE['<{gls}prestashop>glsmanagement_a4691c957e81a6f0b6f0ed44f8f2dfe8'] = 'Vous êtes sur le point de désinstaller le module, voulez vous aussi supprimer les tables de la base de donnée';
$_MODULE['<{gls}prestashop>glsmanagement_09c081633d484a62a2f6940c12a0de36'] = 'Désinstaller et garder';
$_MODULE['<{gls}prestashop>glsmanagement_0b7f47fce1d82d53244771c64b1535c0'] = 'Désinstaller et supprimer';
$_MODULE['<{gls}prestashop>glsmanagement_ea4788705e6873b424c65e91c2846b19'] = 'Annuler';
$_MODULE['<{gls}prestashop>glsmanagement_cd27b6954c4fd7b1c515e6547a2593cc'] = 'Erreur : Aucune commande selectionnée';
$_MODULE['<{gls}prestashop>glsmanagement_cd32007c09c15196f0ce210dc5b87fd5'] = 'Erreur : Aucune commande a exporter';
$_MODULE['<{gls}prestashop>glsmanagement_f443ce35e79c75866f0e71b04918c6d6'] = 'commandes exportées';
$_MODULE['<{gls}prestashop>glsmanagement_9416a531e05cf18f1c26b97263e3c96b'] = 'n\'existe pas';
$_MODULE['<{gls}prestashop>glsmanagement_733154f7eeee6cd45162e766e22e47ee'] = 'La commande';
$_MODULE['<{gls}prestashop>glsmanagement_0468a03fb862f0749fe5878a5c7c379a'] = 'n\'a pas de numéro de tracking dans le ficheir d\'import';
$_MODULE['<{gls}prestashop>glsmanagement_5c7ef4234158a462e419f8ca5dff9ed9'] = 'commandes importées';
$_MODULE['<{gls}prestashop>checkout_process_c23f39998a23292635cd98171fe5dc10'] = 'Aucun Point Relay GLS trouvé à cause d\'une erreur prestashop';
$_MODULE['<{gls}prestashop>checkout_process_ba3c1e324bf9ba3e57b0dd9596455766'] = 'Sélectionnez votre Point Relais Mondial Relay';
$_MODULE['<{gls}prestashop>checkout_process_46044ec3d69fc76832e4a905add3dfcb'] = 'Votre code postal';
$_MODULE['<{gls}prestashop>checkout_process_181fdb8722fab09d30fa4adf37f40447'] = 'Votre adresse';
$_MODULE['<{gls}prestashop>checkout_process_e02be3ef47965445137775a22d380f09'] = 'Votre ville';
$_MODULE['<{gls}prestashop>checkout_process_13348442cc6a27032d2b4aa28b75a5d3'] = 'Rechercher';
$_MODULE['<{gls}prestashop>checkout_process_c6b8e0184324765c9bb40aa07fa5a7ac'] = 'Être averti de ma livraison par SMS';
$_MODULE['<{gls}prestashop>checkout_process_errors_c23f39998a23292635cd98171fe5dc10'] = 'Aucun Point Relay GLS trouvé à cause d\'une erreur prestashop';
$_MODULE['<{gls}prestashop>configuration_041208f2c0a4b75a8e609028a46f7ca6'] = 'Configuration GLS';
$_MODULE['<{gls}prestashop>configuration_8bc212f48680748479bbd322d4d73d3f'] = 'Détails du compte';
$_MODULE['<{gls}prestashop>configuration_16ef6a19ec519dd2b75d69c899e789cf'] = 'Veuillez saisir vos identifiants GLS';
$_MODULE['<{gls}prestashop>configuration_5a2355a42ba3ab265701183c914467f2'] = 'Essayer de désactiver le cache et de forcer la compilation';
$_MODULE['<{gls}prestashop>configuration_3de769f9a81eed916583d5b35c58dbdd'] = 'Si vous avez des problèmes après l\'installation du module';
$_MODULE['<{gls}prestashop>configuration_629af0fa024406b13acc1866406cea0a'] = 'Veuillez consulter la documentation ci-jointe pour configurer le module GLS';
$_MODULE['<{gls}prestashop>configuration_78a04c7effa3fad263cfbcaed2c41386'] = 'Pour créer un Transporter';
$_MODULE['<{gls}prestashop>configuration_002d34780fabbef5bc6f4fc81779e6a7'] = 'Saisissez et validez vos identifiants GLS';
$_MODULE['<{gls}prestashop>configuration_2511254b702ea7f18356870188f09297'] = 'Allez dans Expédition > Transporteurs et activez les transporteurs GLS créés par le module ';
$_MODULE['<{gls}prestashop>configuration_8e04f3582757aca7016f30dc71284978'] = 'Gérez vos tranches de prix, tranches de poids et prix comme pour n\'importe quel transporteur Prestashop';
$_MODULE['<{gls}prestashop>configuration_ca4047654a1e199977f8be3af20b2a76'] = 'Paramètres Compte GLS';
$_MODULE['<{gls}prestashop>configuration_d7c8f854948258ef294cba421b615682'] = 'Ces informations vous sont fournies par GLS lors de votre inscription à leurs services';
$_MODULE['<{gls}prestashop>configuration_ee0b97b8efd6a60f55e968e825a88f53'] = 'Login du webservice';
$_MODULE['<{gls}prestashop>configuration_19406da4aeee621d8c9a475775ddd373'] = 'Mot de passe du webservice';
$_MODULE['<{gls}prestashop>configuration_482720eb614b6ed888d79e8438754d7b'] = 'Uniquement les Point Relais XL';
$_MODULE['<{gls}prestashop>configuration_a26329cba9723551cb8654deba32872b'] = 'Coefficient de poids';
$_MODULE['<{gls}prestashop>configuration_de67367c06b155bdcb03ef5eeed7d7c8'] = 'Répertoire d\'export';
$_MODULE['<{gls}prestashop>configuration_0bd19e2249444d89f74bb993548fbc68'] = 'Répertoire d\'import';
$_MODULE['<{gls}prestashop>configuration_bd0c0b64d8cfc71bc9b1d63c05ec0925'] = 'Création de la zone de livraison';
$_MODULE['<{gls}prestashop>configuration_b4fc8333f7df92e2fadbe30674a28cd3'] = 'En cochant cette case, le module va créer une zone France contenant uniquement le pays France afin de permettre la configuration des transporteurs GLS. Pour plus d\'information veuillez vous reporter à la documentation du module.';
$_MODULE['<{gls}prestashop>configuration_61cbc2d26b4157292673c772ddd6c0f7'] = 'Mettre à jour';
$_MODULE['<{gls}prestashop>configuration_70397c4b252a5168c5ec003931cea215'] = 'Champs requis';
$_MODULE['<{gls}prestashop>header-mobile_1889ea20d1343f376f5d52b6b8dc7a3f'] = 'Vous devez choisir un Point Relais GLS avant de continuer.';
$_MODULE['<{gls}prestashop>header-mobile_e0626222614bdee31951d84c64e5e9ff'] = 'Choisissez';
$_MODULE['<{gls}prestashop>header-mobile_91b442d385b54e1418d81adc34871053'] = 'Choisi';
$_MODULE['<{gls}prestashop>header-mobile_ef2a1f426c2c289ed5986c7636a5d696'] = 'Choisissez un Point Relais GLS';
$_MODULE['<{gls}prestashop>header-mobile_80a0c205cd57b22fca7f174253870300'] = 'Voir les horaires';
$_MODULE['<{gls}prestashop>header-mobile_2b56b60f878922093facd42284848a0c'] = 'Plus d\'informations';
$_MODULE['<{gls}prestashop>header_1889ea20d1343f376f5d52b6b8dc7a3f'] = 'Vous devez choisir un Point Relais GLS avant de continuer.';
$_MODULE['<{gls}prestashop>header_e0626222614bdee31951d84c64e5e9ff'] = 'Choisissez';
$_MODULE['<{gls}prestashop>header_91b442d385b54e1418d81adc34871053'] = 'Choisi';
$_MODULE['<{gls}prestashop>header_ef2a1f426c2c289ed5986c7636a5d696'] = 'Choisissez un Point Relais GLS';
$_MODULE['<{gls}prestashop>header_80a0c205cd57b22fca7f174253870300'] = 'Voir les horaires';
$_MODULE['<{gls}prestashop>header_2b56b60f878922093facd42284848a0c'] = 'Plus d\'informations';
$_MODULE['<{gls}prestashop>listrelais_80a0c205cd57b22fca7f174253870300'] = 'Voir les horaires';
$_MODULE['<{gls}prestashop>listrelais_2a6ec44c8ab2477c32eb8b2a74d707dc'] = 'Choisir ce lieu';
$_MODULE['<{gls}prestashop>post_action_466ec9f29b485204ef53818459da48af'] = 'Erreur(s)';
$_MODULE['<{gls}prestashop>export_orders_de21dc13e1ea638777fbfad49f88b332'] = 'Toutes les commandes qui ont le statut';
$_MODULE['<{gls}prestashop>export_orders_378116486b5a90bb50fd4f1557698d96'] = 'seront disponibles pour l\'export';
$_MODULE['<{gls}prestashop>export_orders_da8cbc8f80b433d3d2b6d13eea457873'] = 'Export des commandes';
$_MODULE['<{gls}prestashop>export_orders_ce26601dac0dea138b7295f02b7620a7'] = 'Client';
$_MODULE['<{gls}prestashop>export_orders_0eede552438475bdfe820c13f24c9399'] = 'Total';
$_MODULE['<{gls}prestashop>export_orders_c28e0582276cb6747e37d948e1727929'] = 'Frais de ports';
$_MODULE['<{gls}prestashop>export_orders_52150799c57e873360cca13c080a91b4'] = 'Poids (grammes)';
$_MODULE['<{gls}prestashop>export_orders_059b186a7c30053792c99cc7e967eebe'] = 'Identifiant Relais GLS';
$_MODULE['<{gls}prestashop>export_orders_a254c25adc7d10d7e9c4889484f875a5'] = 'Détail';
$_MODULE['<{gls}prestashop>export_orders_4351cfebe4b61d8aa5efa1d020710005'] = 'Vue';
$_MODULE['<{gls}prestashop>export_orders_2e01172e31495f41fcebcf3f831cc82c'] = 'Opération réussie';
$_MODULE['<{gls}prestashop>export_orders_37c85a61df6352af7285c307022c4413'] = 'Aucune commandes avec ce statut';
$_MODULE['<{gls}prestashop>export_orders_32b919d18cfaca89383f6000dcc9c031'] = 'Exporter';
$_MODULE['<{gls}prestashop>export_orders_37b7d4154dd83425f82d211ae99c8c0e'] = 'Exporter localement';
$_MODULE['<{gls}prestashop>settings_72d6d7a1885885bb55a565fd1070581a'] = 'Importer';
$_MODULE['<{gls}prestashop>settings_d02bbc3cb147c272b0445ac5ca7d1a36'] = 'Statuts des commandes';
$_MODULE['<{gls}prestashop>settings_4e446c09aaeb9b2dd36e6ff44c5b9093'] = 'Choisissez le status après import';
$_MODULE['<{gls}prestashop>settings_c9cc8cce247e49bae79f15173ce97354'] = 'Sauvegarder';
$_MODULE['<{gls}prestashop>settings_4ed2cbb99dd730ccef9d12a72a075984'] = 'Importer les commandes';
$_MODULE['<{gls}prestashop>settings_9dd7fcad7dffd9b96b3ffee10299b56a'] = 'Filtre Export';
$_MODULE['<{gls}prestashop>settings_7c00c3134810759bf0769f94b8093398'] = 'Choisissez le statut pour l\'export';
$_MODULE['<{gls}prestashop>settings_d7778d0c64b6ba21494c97f77a66885a'] = 'Filtrer';
$_MODULE['<{gls}prestashop>settings_f4f70727dc34561dfde1a3c529b6205c'] = 'Réglages';

View File

@ -0,0 +1,28 @@
<?php
/*
* 2007-2014 Addonline
*
* 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.
*
* @author Addonline <contact@addonline.fr>
* @copyright 2007-2014 Addonline
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
*/
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,5 @@
change_parcelshop = "Change the relay point";
choose_this_parcel_shop = "Choose this location";
orders_exported = "orders exported";
error_label = "Error : ";
shipping_method_unavailable = "Shipping method unavailable";

View File

@ -0,0 +1,5 @@
change_parcelshop = "Modifier mon Point Relais";
choose_this_parcel_shop = "Choisir ce lieu";
orders_exported = "commandes exportées";
error_label = "Erreur : ";
shipping_method_unavailable = "Mode de livraison non disponible";

View File

@ -0,0 +1,277 @@
.gm-style {
font-family: Helvetica, Arial, sans-serif !important;
}
.delivery_option_logo img[alt^="GLS"] {
max-width: 150px;
}
#layer_gls,
#layer_gls_body {
position: fixed !important;
display: none;
top: 0 !important;
width: 100% !important;
height: 100% !important;
background: #fff;
z-index: 1000;
text-align: left;
font-family: Helvetica, Arial, sans-serif;
}
#layer_gls .close,
#layer_gls_body .close {
position: absolute;
top: 20px;
right: 10px;
cursor: pointer;
width: 22px;
height: 22px;
background: url(../img/btn_fermer.png);
}
#layer_gls h3,
#layer_gls_body h3 {
background: url(../img/title-repeat.png);
line-height: normal;
padding: 14px 75px 0 110px;
margin: 0;
height: 44px;
font-size: 15px;
font-weight: normal;
color: #fff;
position: relative;
}
#layer_gls h3:before,
#layer_gls_body h3:before {
content: "";
width: 85px;
height: 43px;
position: absolute;
top: 8px;
left: 10px;
background: url(../img/picto_shd.png);
}
#layer_gls #gls_headers,
#layer_gls_body #gls_headers {
background: #ededed;
-webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.45);
-moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.45);
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.45);
position: relative;
z-index: 2;
}
#layer_gls #gls_headers .left,
#layer_gls_body #gls_headers .left {
padding: 5px 10px;
background-color: #d9d9d9;
background-image: -webkit-linear-gradient(bottom, #d2d2d2, #ffffff);
background-image: -moz-linear-gradient(bottom, #d2d2d2, #ffffff);
background-image: -o-linear-gradient(bottom, #d2d2d2, #ffffff);
background-image: linear-gradient(to top, #d2d2d2, #ffffff);
}
#layer_gls #gls_headers .left span,
#layer_gls_body #gls_headers .left span {
font-size: 14px;
font-weight: bold;
color: #06187c;
margin-right: 16px;
vertical-align: middle;
display: block;
}
#layer_gls #gls_headers .left input,
#layer_gls_body #gls_headers .left input {
text-align: center;
padding: 0 10px;
width: 70px;
height: 23px;
font-size: 14px;
border-radius: 8px;
background-color: #fff;
-webkit-box-shadow: inset 0 3px 3px rgba(214, 214, 214, 0.75);
-moz-box-shadow: inset 0 3px 3px rgba(214, 214, 214, 0.75);
box-shadow: inset 0 3px 3px rgba(214, 214, 214, 0.75);
border: solid 1px #d2d2d2;
vertical-align: middle;
box-sizing: border-box;
}
#layer_gls #gls_headers .left input#cp_street,
#layer_gls_body #gls_headers .left input#cp_street {
width: 100%;
}
#layer_gls #gls_headers .left button,
#layer_gls_body #gls_headers .left button {
background: none;
border: none;
margin: 0 0 0 -10px;
padding: 0;
cursor: pointer;
font-size: 12px;
text-shadow: 0 -1px #112282;
color: #fff;
width: 92px;
height: 23px;
-webkit-border-radius: 0 8px 8px 0;
-moz-border-radius: 0 8px 8px 0;
border-radius: 0 8px 8px 0;
background-color: #06187c;
background-image: -webkit-linear-gradient(bottom, #06187c, #8b94c2);
background-image: -moz-linear-gradient(bottom, #06187c, #8b94c2);
background-image: -o-linear-gradient(bottom, #06187c, #8b94c2);
background-image: linear-gradient(to top, #06187c, #8b94c2);
vertical-align: middle;
}
#layer_gls #gls_headers .right,
#layer_gls_body #gls_headers .right {
padding: 5px 10px;
overflow: hidden;
border-top: 1px solid #aeb2be;
}
#layer_gls #gls_headers .right label,
#layer_gls_body #gls_headers .right label {
font-size: 12px;
color: #76798d;
vertical-align: middle;
width: 115px;
float: left;
line-height: 12px;
padding: 0 0 0 25px;
position: relative;
}
#layer_gls #gls_headers .right label input,
#layer_gls_body #gls_headers .right label input {
vertical-align: middle;
position: absolute;
top: 0;
left: 0;
}
#layer_gls #gls_headers .right #num_telephone,
#layer_gls_body #gls_headers .right #num_telephone {
text-align: center;
font-size: 14px;
vertical-align: middle;
padding: 0 10px;
width: 156px;
height: 23px;
-webkit-border-radius: 8px;
-moz-border-radius: 8px;
border-radius: 8px;
background-color: #fff;
-webkit-box-shadow: inset 0 3px 3px rgba(214, 214, 214, 0.75);
-moz-box-shadow: inset 0 3px 3px rgba(214, 214, 214, 0.75);
box-shadow: inset 0 3px 3px rgba(214, 214, 214, 0.75);
border: solid 1px #d2d2d2;
float: right;
}
#layer_gls #col_gauche_gls,
#layer_gls_body #col_gauche_gls {
position: absolute;
top: 126px;
bottom: 0;
left: 0;
right: 0;
z-index: 1;
}
#layer_gls #col_gauche_gls #map_gls,
#layer_gls_body #col_gauche_gls #map_gls {
height: 100%;
}
#layer_gls #col_gauche_gls #map_gls .info-window,
#layer_gls_body #col_gauche_gls #map_gls .info-window {
line-height: 1.35;
overflow: hidden;
white-space: nowrap;
width: 260px;
}
#layer_gls #col_gauche_gls #map_gls .info-window .store-name,
#layer_gls_body #col_gauche_gls #map_gls .info-window .store-name {
font-weight: bold;
font-size: 14px;
color: #06187c;
display: block;
}
#layer_gls #col_gauche_gls #map_gls .info-window table,
#layer_gls_body #col_gauche_gls #map_gls .info-window table {
width: 100%;
margin-top: 10px;
}
#layer_gls #col_gauche_gls #map_gls .info-window table .day,
#layer_gls_body #col_gauche_gls #map_gls .info-window table .day {
width: 80px;
}
#layer_gls #col_gauche_gls #map_gls .info-window .button-wrapper,
#layer_gls_body #col_gauche_gls #map_gls .info-window .button-wrapper {
text-align: center;
padding: 10px 0;
margin-right: -20px;
}
#layer_gls #col_gauche_gls #map_gls .info-window .choose-relay-point,
#layer_gls_body #col_gauche_gls #map_gls .info-window .choose-relay-point {
padding: 0 15px 0 25px;
height: 26px;
-webkit-border-radius: 8px;
-moz-border-radius: 8px;
border-radius: 8px;
background-color: #06187c;
background-image: -webkit-linear-gradient(bottom, #e8b402, #fcd83b);
background-image: -moz-linear-gradient(bottom, #e8b402, #fcd83b);
background-image: -o-linear-gradient(bottom, #e8b402, #fcd83b);
background-image: linear-gradient(to top, #e8b402, #fcd83b);
font-size: 12px;
color: #000;
text-shadow: 0 1px #f7e38b;
text-decoration: none;
line-height: 26px;
display: inline-block;
position: relative;
}
#layer_gls #col_gauche_gls #map_gls .info-window .choose-relay-point:before,
#layer_gls_body #col_gauche_gls #map_gls .info-window .choose-relay-point:before {
content: "";
width: 7px;
height: 10px;
position: absolute;
top: 9px;
left: 12px;
background: url(../img/picto-arrow.png);
}
#layer_gls #col_droite_gls,
#layer_gls_body #col_droite_gls {
display: none;
}
#layer_gls .loader-wrapper,
#layer_gls_body .loader-wrapper {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 999;
}
#layer_gls .loader,
#layer_gls_body .loader {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 1000;
background: #000;
opacity: 0.2;
}
#layer_gls .loader-wheel,
#layer_gls_body .loader-wheel {
position: absolute;
top: 50%;
left: 50%;
margin: -50px 0 0 -16px;
width: 100px;
background: #fff;
border: 1px solid 000;
border-radius: 3px;
text-align: center;
z-index: 1001;
color: #878787;
font-style: italic;
}
#layer_gls .loader-wheel img,
#layer_gls_body .loader-wheel img {
display: block;
margin: auto;
}

View File

@ -0,0 +1,286 @@
.gm-style {
font-family: Helvetica,Arial,sans-serif !important;
}
.delivery_option_logo img[alt^="GLS"] {
max-width:150px;
}
#layer_gls,#layer_gls_body {
position: fixed !important;
display: none;
top: 0 !important;
width: 100% !important;
height: 100% !important;
background: #fff;
z-index: 1000;
text-align: left;
font-family: Helvetica,Arial,sans-serif;
.close {
position: absolute;
top: 20px;
right: 10px;
cursor: pointer;
width: 22px;
height: 22px;
background: url(../images/btn_fermer.png);
}
h3 {
background: url(../images/title-repeat.png);
line-height: normal;
padding: 14px 75px 0 110px;
margin: 0;
height: 44px;
font-size: 15px;
font-weight: normal;
color: #fff;
position: relative;
&:before {
content: "";
width: 85px;
height: 43px;
position: absolute;
top: 8px;
left: 10px;
background: url(../images/picto_shd.png);
}
}
#gls_headers {
background: #ededed;
-webkit-box-shadow: 0 1px 3px rgba(0,0,0,.45);
-moz-box-shadow: 0 1px 3px rgba(0,0,0,.45);
box-shadow: 0 1px 3px rgba(0,0,0,.45);
position: relative;
z-index: 2;
.left {
padding: 5px 10px;
background-color: #d9d9d9;
background-image: -webkit-linear-gradient(bottom, #d2d2d2, #fff);
background-image: -moz-linear-gradient(bottom, #d2d2d2, #fff);
background-image: -o-linear-gradient(bottom, #d2d2d2, #fff);
background-image: linear-gradient(to top, #d2d2d2, #fff);
span {
font-size: 14px;
font-weight: bold;
color: #06187c;
margin-right: 16px;
vertical-align: middle;
display: block;
}
input {
text-align: center;
padding: 0 10px;
width: 70px;
height: 23px;
font-size: 14px;
border-radius: 8px;
background-color: #fff;
-webkit-box-shadow: inset 0 3px 3px rgba(214,214,214,.75);
-moz-box-shadow: inset 0 3px 3px rgba(214,214,214,.75);
box-shadow: inset 0 3px 3px rgba(214,214,214,.75);
border: solid 1px #d2d2d2;
vertical-align: middle;
box-sizing: border-box;
&#cp_street {
width: 100%;
}
}
button {
background: none;
border: none;
margin: 0 0 0 -10px;
padding: 0;
cursor: pointer;
font-size: 12px;
text-shadow: 0 -1px #112282;
color: #fff;
width: 92px;
height: 23px;
-webkit-border-radius: 0 8px 8px 0;
-moz-border-radius: 0 8px 8px 0;
border-radius: 0 8px 8px 0;
background-color: #06187c;
background-image: -webkit-linear-gradient(bottom, #06187c, #8b94c2);
background-image: -moz-linear-gradient(bottom, #06187c, #8b94c2);
background-image: -o-linear-gradient(bottom, #06187c, #8b94c2);
background-image: linear-gradient(to top, #06187c, #8b94c2);
vertical-align: middle;
}
}
.right {
padding: 5px 10px;
overflow: hidden;
border-top: 1px solid #aeb2be;
label {
font-size: 12px;
color: #76798d;
vertical-align: middle;
width: 115px;
float: left;
line-height: 12px;
padding: 0 0 0 25px;
position: relative;
input {
vertical-align: middle;
position: absolute;
top: 0;
left: 0;
}
}
#num_telephone {
text-align: center;
font-size: 14px;
vertical-align: middle;
padding: 0 10px;
width: 156px;
height: 23px;
-webkit-border-radius: 8px;
-moz-border-radius: 8px;
border-radius: 8px;
background-color: #fff;
-webkit-box-shadow: inset 0 3px 3px rgba(214,214,214,.75);
-moz-box-shadow: inset 0 3px 3px rgba(214,214,214,.75);
box-shadow: inset 0 3px 3px rgba(214,214,214,.75);
border: solid 1px #d2d2d2;
float: right;
}
}
}
#col_gauche_gls{
position: absolute;
top: 126px;
bottom: 0;
left: 0;
right: 0;
z-index: 1;
#map_gls {
height: 100%;
.info-window {
line-height:1.35;
overflow:hidden;
white-space:nowrap;
width: 260px;
.store-name {
font-weight: bold;
font-size: 14px;
color: #06187c;
display: block;
}
table {
width: 100%;
margin-top: 10px;
.day {
width: 80px;
}
}
.button-wrapper {
text-align: center;
padding: 10px 0;
margin-right: -20px;
}
.choose-relay-point {
padding: 0 15px 0 25px;
height: 26px;
-webkit-border-radius: 8px;
-moz-border-radius: 8px;
border-radius: 8px;
background-color: #06187c;
background-image: -webkit-linear-gradient(bottom, #e8b402, #fcd83b);
background-image: -moz-linear-gradient(bottom, #e8b402, #fcd83b);
background-image: -o-linear-gradient(bottom, #e8b402, #fcd83b);
background-image: linear-gradient(to top, #e8b402, #fcd83b);
font-size: 12px;
color: #000;
text-shadow: 0 1px #f7e38b;
text-decoration: none;
line-height: 26px;
display: inline-block;
position: relative;
&:before {
content: "";
width: 7px;
height: 10px;
position: absolute;
top: 9px;
left: 12px;
background: url(../views/img/picto-arrow.png);
}
}
}
}
}
#col_droite_gls{ display: none; }
}
.layer > div > div {
}
#layer_gls > div > div {
}
#layer_gls .loader-wrapper,#layer_gls_body .loader-wrapper {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 999;
}
#layer_gls .loader,#layer_gls_body .loader {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 1000;
background: #000;
opacity: 0.2;
}
#layer_gls .loader-wheel,#layer_gls_body .loader-wheel {
position: absolute;
top: 50%;
left: 50%;
margin: -50px 0 0 -16px;
width: 100px;
background: #fff;
border: 1px solid 000;
border-radius: 3px;
text-align: center;
z-index: 1001;
color: #878787;
font-style: italic;
}
#layer_gls .loader-wheel img,#layer_gls_body .loader-wheel img {
display: block;
margin: auto;
}

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,406 @@
.gm-style {
font-family: Helvetica,Arial,sans-serif !important;
}
.delivery_option_logo img[alt^="GLS"] {
height:40px;
}
#layer_gls,#layer_gls_body {
position: relative;
display: none;
width: 950px;
background: #fff;
z-index: 1000;
text-align: left;
border-radius: 10px;
.close {
position: absolute;
top: 15px;
right: 15px;
cursor: pointer;
width: 22px;
height: 22px;
background: url(../images/btn_fermer.png);
}
h3 {
background: url(../images/title-repeat.png);
line-height: 58px;
margin: 0;
padding: 0;
border-radius: 10px 10px 0 0;
font-size: 24px;
font-weight: normal;
color: #fff;
padding-left: 110px;
position: relative;
&:before {
content: "";
width: 85px;
height: 43px;
position: absolute;
top: 8px;
left: 15px;
background: url(../images/picto_shd.png);
}
}
#gls_headers {
background: url(../images/search-repeat.png) repeat-x 0 100%;
margin: 0 -15px 15px;
padding: 0 15px 0 15px;
height: 75px;
.left {
margin-top: 0px;
float: left;
span {
padding: 0 5px;
font-size: 14px;
font-weight: bold;
color: #06187c;
margin-right: 10px;
vertical-align: middle;
}
input {
padding: 0 10px;
width: 40px;
height: 23px;
-webkit-border-radius: 8px;
-moz-border-radius: 8px;
border-radius: 8px;
background-color: #fff;
-webkit-box-shadow: inset 0 3px 3px rgba(214,214,214,.75);
-moz-box-shadow: inset 0 3px 3px rgba(214,214,214,.75);
box-shadow: inset 0 3px 3px rgba(214,214,214,.75);
border: solid 1px #d2d2d2;
vertical-align: middle;
box-sizing:content-box;
}
button {
background: none;
border: none;
margin: 0 0 0 -10px;
padding: 0;
cursor: pointer;
font-size: 12px;
text-shadow: 0 -1px #112282;
color: #fff;
width: 92px;
height: 25px;
-webkit-border-radius: 0 8px 8px 0;
-moz-border-radius: 0 8px 8px 0;
border-radius: 0 8px 8px 0;
filter: progid:DXImageTransform.Microsoft.gradient(startColorStr='#8b94c2', EndColorStr='#06187c');
background-image: -webkit-linear-gradient(bottom, #06187c, #8b94c2);
background-image: -moz-linear-gradient(bottom, #06187c, #8b94c2);
background-image: -o-linear-gradient(bottom, #06187c, #8b94c2);
background-image: linear-gradient(to top, #06187c, #8b94c2);
vertical-align: middle;
}
}
.right {
margin-top: 15px;
float: right;
label {
font-size: 14px;
color: #06187c;
margin-right: 10px;
vertical-align: middle;
input {
vertical-align: middle;
}
}
#num_telephone {
vertical-align: middle;
padding: 0 10px;
width: 130px;
height: 23px;
-webkit-border-radius: 8px;
-moz-border-radius: 8px;
border-radius: 8px;
background-color: #fff;
-webkit-box-shadow: inset 0 3px 3px rgba(214,214,214,.75);
-moz-box-shadow: inset 0 3px 3px rgba(214,214,214,.75);
box-shadow: inset 0 3px 3px rgba(214,214,214,.75);
border: solid 1px #d2d2d2;
}
}
}
#col_gauche_gls{
width: 646px;
height: 353px;
float: left;
border: 1px solid #d6d8e9;
#map_gls {
height: 100%;
.info-window {
width: 440px;
line-height:1.35;
overflow:hidden;
white-space:nowrap;
.store-name {
font-weight: bold;
font-size: 14px;
color: #06187c;
display: block;
}
table {
width: 255px;
margin-top: 10px;
.day {
width: 80px;
}
}
.choose-relay-point {
padding: 0 15px 0 25px;
height: 26px;
-webkit-border-radius: 8px;
-moz-border-radius: 8px;
border-radius: 8px;
filter: progid:DXImageTransform.Microsoft.gradient(startColorStr='#fcd83b', EndColorStr='#e8b402');
background-image: -webkit-linear-gradient(bottom, #e8b402, #fcd83b);
background-image: -moz-linear-gradient(bottom, #e8b402, #fcd83b);
background-image: -o-linear-gradient(bottom, #e8b402, #fcd83b);
background-image: linear-gradient(to top, #e8b402, #fcd83b);
font-size: 12px;
color: #000;
text-shadow: 0 1px #f7e38b;
text-decoration: none;
line-height: 26px;
position: absolute;
top: 68px;
right: 0;
&:before {
content: "";
width: 7px;
height: 10px;
position: absolute;
top: 9px;
left: 12px;
background: url(../images/picto-arrow.png);
}
}
}
}
}
.gls_ws_error{
position: absolute;
top: 50px;
right: 0;
bottom: 0;
left: 0;
padding-left: 20px;
padding-top:70px;
z-index: 9;
color: red;
text-align: left;
font-size: 14px;
}
#col_droite_gls{
width: 268px;
height: 353px;
float:right;
border: 1px solid #d6d8e9;
border-left: none;
overflow: hidden;
overflow-y: scroll;
position: relative;
.gls_point_relay {
padding: 15px 15px 0 15px;
border-bottom: 1px solid #d6d8e9;
line-height: normal;
&.current {
background: #eeeff7;
}
.GLS_relay_name {
font-weight: bold;
font-size: 14px;
color: #06187c;
display: block;
}
.GLS_relay_address, .GLS_relay_zipcode,.GLS_relay_city {
color: #6a6a6a;
}
.GLS_relay_address {
display: block;
}
div {
margin-top: 5px;
overflow: hidden;
}
.GLS_relay_horaires {
float: left;
color: #06187c;
text-decoration: underline;
cursor: pointer;
margin-top: 5px;
margin-bottom: 10px;
}
.choose-relay-point {
border: none;
background: none;
cursor: pointer;
float: right;
padding: 0 15px 0 25px;
margin: 0 0 15px 0;
height: 26px;
-webkit-border-radius: 8px;
-moz-border-radius: 8px;
border-radius: 8px;
filter: progid:DXImageTransform.Microsoft.gradient(startColorStr='#fcd83b', EndColorStr='#e8b402');
background-image: -webkit-linear-gradient(bottom, #e8b402, #fcd83b);
background-image: -moz-linear-gradient(bottom, #e8b402, #fcd83b);
background-image: -o-linear-gradient(bottom, #e8b402, #fcd83b);
background-image: linear-gradient(to top, #e8b402, #fcd83b);
font-size: 12px;
color: #000;
text-shadow: 0 1px #f7e38b;
text-decoration: none;
line-height: 26px;
position: relative;
&:before {
content: "";
width: 7px;
height: 10px;
position: absolute;
top: 9px;
left: 12px;
background: url(../images/picto-arrow.png);
}
}
.GLS_relay_latitude,
.GLS_relay_longitude,
.GLS_relay_hours,
.GLS_relay_id,
.GLS_relay_index {
display: none;
}
}
}
}
.layer > div > div {
overflow: auto;
}
#layer_gls > div > div,#layer_gls_body > div > div {
padding: 15px;
overflow: hidden;
}
#layer_gls .loader-wrapper,#layer_gls_body .loader-wrapper {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 999;
}
#layer_gls .loader,#layer_gls_body .loader {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 1000;
background: #000;
opacity: 0.2;
}
#layer_gls .loader-wheel,#layer_gls_body .loader-wheel {
position: absolute;
top: 50%;
left: 50%;
margin: -50px 0 0 -16px;
width: 100px;
background: #fff;
border: 1px solid 000;
border-radius: 3px;
text-align: center;
z-index: 1001;
color: #878787;
font-style: italic;
}
#layer_gls .loader-wheel img,#layer_gls_body .loader-wheel img {
display: block;
margin: auto;
}
#gls_relais_choisi {
position: relative;
.modifier_relay {
position: absolute;
top: 0px;
right: 0;
font-size: 11px;
color: #999;
font-style: italic;
text-decoration: underline;
cursor: pointer;
&:hover {
color: #000;
}
}
}
#sms_checkbox{
margin-right:5px;
}
#uniform-sms_checkbox{
display:inline;
}
#cp_street{
width:270px !important;
}
#cp_city{
width:100px !important;
}
#cp_recherche{
box-sizing:content-box;
}

View File

@ -0,0 +1,28 @@
<?php
/*
* 2007-2014 Addonline
*
* 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.
*
* @author Addonline <contact@addonline.fr>
* @copyright 2007-2014 Addonline
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
*/
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,307 @@
[
{
"About This File": "This is Prepros config file, https://prepros.io . Please do not edit this file, doing so can crash Prepros."
},
{
"data": {
"id": "",
"cfgVersion": 2,
"name": "CSS GLS prestashop 1611",
"path": "",
"files": {
"d57c4315": {
"id": "d57c4315",
"path": "gls-mobile.css",
"output": "gls-mobile-dist.css",
"name": "gls-mobile.css",
"category": "CSS",
"autoCompile": false,
"sourceMaps": false,
"compress": true,
"cssnext": false,
"autoprefixer": false,
"customOutput": false,
"imported": false,
"parents": [],
"type": "css"
},
"cfcd6a6a": {
"id": "cfcd6a6a",
"path": "gls-mobile.less",
"output": "gls-mobile.css",
"name": "gls-mobile.less",
"category": "CSS",
"autoCompile": true,
"autoprefixer": false,
"compress": false,
"sourceMaps": false,
"strictMath": false,
"strictUnits": false,
"customOutput": false,
"imported": false,
"parents": [],
"type": "less"
},
"c1177281": {
"id": "c1177281",
"path": "gls.css",
"output": "gls-dist.css",
"name": "gls.css",
"category": "CSS",
"autoCompile": false,
"sourceMaps": false,
"compress": true,
"cssnext": false,
"autoprefixer": false,
"customOutput": false,
"imported": false,
"parents": [],
"type": "css"
},
"c68ca203": {
"id": "c68ca203",
"path": "gls.less",
"output": "gls.css",
"name": "gls.less",
"category": "CSS",
"autoCompile": true,
"autoprefixer": true,
"compress": true,
"sourceMaps": false,
"strictMath": false,
"strictUnits": false,
"customOutput": false,
"imported": false,
"parents": [],
"type": "less"
},
"b8f3bc1b": {
"id": "b8f3bc1b",
"path": "index.php",
"output": "index.php",
"name": "index.php",
"category": "JUST_WATCH",
"customOutput": false,
"imported": false,
"parents": [],
"type": "php"
},
"aa810382": {
"id": "aa810382",
"path": "style.css",
"output": "style-dist.css",
"name": "style.css",
"category": "CSS",
"autoCompile": false,
"sourceMaps": false,
"compress": true,
"cssnext": false,
"autoprefixer": false,
"customOutput": false,
"imported": false,
"parents": [],
"type": "css"
}
},
"deploymentHistory": {},
"config": {
"watch": "",
"liveRefresh": true,
"useCustomServer": false,
"port": 0,
"useCustomPort": false,
"customServerUrl": "",
"watchedFileExtensions": "less, sass, scss, styl, md, markdown, coffee, js, jade, haml, slim, ls, html,htm, css, rb, php, asp, aspx, cfm, chm, cms, do, erb, jsp, mhtml, mspx, pl, py, shtml, cshtml, cs,vb, vbs, tpl, ctp, kit, png, jpg, jpeg",
"excludePatterns": "Prepros Build, node_modules, .git, .idea, .sass-cache, .hg, .svn, .cache, config.rb, prepros.cfg, .DS_Store, bower_components",
"autoprefixerBrowsers": "last 4 versions",
"liveRefreshDelay": 0,
"disableImportAutoCompile": true,
"browserFlow": {
"mouseSync": true,
"scrollSync": true,
"keyboardSync": true,
"animateCss": true
},
"deployment": {
"ftpHost": "",
"ftpPort": "21",
"ftpUsePrivateKey": false,
"ftpPrivateKey": "",
"ftpRemotePath": "",
"ftpUserName": "",
"ftpPassword": "",
"ftpType": "FTP",
"ftpSecure": false,
"ftpUploadOnModify": false,
"ftpRefreshAfterUpload": false,
"ignorePreprocessableFiles": true,
"copyPath": "Prepros Build",
"excludePatterns": ".map, Prepros Build, config.rb, prepros.cfg, node_modules, .git, .idea, .sass-cache, .hg, .svn, .cache, .DS_Store, bower_components"
},
"css": {
"path": "css/",
"outputType": "REPLACE_SEGMENT",
"segmentToReplace": "less, sass, stylus, scss, styl",
"segmentToReplaceWith": "css",
"preprocessableFilesDirs": "less/\nsass/\nstylus/\nscss/\nstyl/\n"
},
"minCss": {
"path": "",
"outputType": "RELATIVE_FILEDIR",
"segmentToReplace": "",
"segmentToReplaceWith": "",
"types": "",
"preprocessableFilesDirs": "",
"filePrefix": "-dist"
},
"html": {
"segmentToReplace": "jade, haml, slim, markdown, md, kit",
"segmentToReplaceWith": "html",
"path": "html/",
"extension": ".html",
"outputType": "REPLACE_SEGMENT",
"preprocessableFilesDirs": "jade/\nhaml/\nslim/\nmarkdown/\nmd/\nkit"
},
"js": {
"segmentToReplace": "coffee, coffeescript, coffeescripts, ls, livescript, livescripts",
"segmentToReplaceWith": "html",
"extension": ".html",
"outputType": "REPLACE_SEGMENT",
"preprocessableFilesDirs": "coffee/\ncoffeescript/\ncoffeescripts/\nls/\nlivescript/\nlivescripts",
"path": "js/"
},
"minJs": {
"path": "",
"outputType": "RELATIVE_FILEDIR",
"segmentToReplace": "",
"segmentToReplaceWith": "",
"types": "",
"preprocessableFilesDirs": "",
"filePrefix": "-dist"
},
"compilers": {
"less": {
"autoCompile": true,
"autoprefixer": false,
"compress": false,
"sourceMaps": false,
"strictMath": false,
"strictUnits": false
},
"sass": {
"autoCompile": true,
"autoprefixer": false,
"sourceMaps": false,
"libSass": true,
"nodeSassCompress": true,
"compass": false,
"fullCompass": false,
"outputStyle": "expanded"
},
"stylus": {
"autoCompile": true,
"sourceMaps": false,
"autoprefixer": false,
"nib": false,
"compress": false
},
"markdown": {
"autoCompile": true,
"sanitize": false,
"gfm": true,
"wrapWithHtml": false
},
"coffee": {
"autoCompile": true,
"bare": false,
"uglify": false,
"mangle": true,
"iced": false,
"sourceMaps": false
},
"livescript": {
"autoCompile": true,
"bare": false,
"uglify": false,
"mangle": true
},
"javascript": {
"autoCompile": false,
"uglify": true,
"mangle": true,
"sourceMaps": false
},
"jade": {
"autoCompile": true,
"pretty": true
},
"haml": {
"autoCompile": true,
"pretty": true,
"doubleQuotes": false
},
"kit": {
"autoCompile": true
},
"slim": {
"autoCompile": true,
"pretty": true,
"indent": "default"
},
"css": {
"autoCompile": false,
"sourceMaps": false,
"compress": true,
"cssnext": false,
"autoprefixer": false
},
"uglify": {
"compress": {
"sequences": true,
"properties": true,
"dead_code": true,
"drop_debugger": true,
"unsafe": false,
"unsafe_comps": false,
"conditionals": true,
"comparisons": true,
"evaluate": true,
"booleans": true,
"loops": true,
"unused": true,
"hoist_funs": true,
"keep_fargs": false,
"hoist_vars": false,
"if_return": true,
"join_vars": true,
"cascade": true,
"side_effects": true,
"pure_getters": false,
"negate_iife": true,
"screw_ie8": false,
"drop_console": false,
"angular": false,
"warnings": true,
"pure_funcs": null,
"global_defs": null
},
"output": {
"quote_keys": false,
"space_colon": true,
"ascii_only": false,
"unescape_regexps": false,
"inline_script": false,
"beautify": false,
"bracketize": false,
"semicolons": true,
"comments": false,
"preserve_line": false,
"screw_ie8": false,
"preamble": null
}
}
}
}
}
}
]

View File

@ -0,0 +1,559 @@
div.PS_GLSFormType
{
width:100%;
margin-top:20px;
}
div.PS_GLSFormType fieldset > ul
{
list-style-type: none;
}
div.PS_GLSFormType fieldset > ul > li
{
margin-top:10px;
}
div.PS_GLSFormType fieldset > ul > li > span.indication
{
font-style:italic;
font-size:11px;
margin-left:5px;
}
div.PS_GLSFormType fieldset > ul > li.PS_GLSSubmit
{
text-align:center;
}
div.PS_GLSSubmitButton
{
text-align:center;
margin-top:20px;
}
.PS_GLSRequireFields
{
display:inline;
padding:2px 10px;
}
tr.PS_GLSErrorList td
{
border: 1px solid #EC9B9B;
background-color: #FFE2E3;
color: #383838;
font-weight: 700;
line-height: 18px;
text-align:center;
}
tr.PS_GLSSuccessList td
{
border: 1px solid #72CB67;
background-color: #DFFAD3;
color: #383838;
font-weight: 700;
line-height: 18px;
text-align:center;
}
table#PS_GLSHistoriqueTableList
{
text-align:center;
}
table#PS_GLSHistoriqueTableList tr > td > img
{
margin-bottom:5px;
}
table#PS_GLSHistoriqueTableList
{
width:100%;
}
table#PS_GLSHistoriqueTableList tr
{
height:30px;
}
div#otherErrors
{
display:none;
}
div#otherErrors span
{
text-align:left;
}
div#PS_GLSUnRemovedItem
{
display:none;
color:#FF0000;
}
.shippingList {
}
.shippingList li {
margin: 5px;
display: block;
clear: both;
}
.shipLabel {
width: 230px;
float: left;
text-align: left;
}
.selectShipping {
width: 100px;
}
.settingsList {
width: 400px;
float: left;
margin-right: 10px;
}
.settingsList li {
display: block;
padding: 5px;
clear: both;
}
.upsLabel {
width: 170px;
float: left;
text-align: left;
}
.upsInput {
float: left;
}
.upsSubmit {
text-align: center;
}
.addMethodForm {
margin-bottom: 10px;
}
table#orders
{
width:100%;
}
table#orders td
{
text-align:center;
height: 30px;
}
table#orders th
{
text-align:center;
height: 40px;
}
table#orders th.fixed
{
width:70px;
}
table#orders tr
{
text-align:center;
}
div.submit_button
{
margin-top:10px;
text-align:center;
}
div.PS_GLSLoader
{
display:none;
}
.GLS_form_admintab h3
{
margin: 10px;
margin-bottom: .5em;
line-height: 1.4em;
}
div#PS_GLSAskBackupContent
{
border:1px solid #000;
background: url(../logo_hd.png) no-repeat 10px 50px #BEBEBE;
line-height:18px;
font-size:14px;
height:190px;
}
div#PS_GLSAskBackupContent div
{
width:290px;
float:right;
margin-right:20px;
text-align: center;
}
div#PS_GLSAskBackupContent div > p
{
line-height: 30px;
}
div#PS_GLSAskBackupContent h2
{
padding-top:10px;
}
tr.PS_GLSSelectedCarrier > td
{
text-align: center;
border-bottom: 1px black;
}
.PS_GLSWarn
{
border: 1px solid #D3C200;
background-color: #FFFAC6;
line-height: 20px;
}
.PS_GLSRelayPointInfo
{
text-align: left;
vertical-align: top;
margin: 10px 0;
cursor: pointer;
}
.PS_GLSRelayPointInfo:hover
{
background-color: #f4f4f4;
}
.PS_GLSRelayPointInfo img
{
height: 40px;
float:left;
padding: 0 10px;
}
.PS_GLSRelayPointInfo p
{
float:left;
width:360px;
text-align: justify;
}
.PS_GLSFloatRelayPointSelecteIt
{
display:block;
}
.PS_GLSRelayPointInfo:hover .PS_GLSFloatRelayPointSelecteIt
{
display:block;
}
.PS_GLSRelayPointInfo .PS_GLSFloatRelayPointSelected
{
color:#333333;
background:url(../images/selectRelayPoint.png) no-repeat 0px -25px;
}
.PS_GLSFloatRelayPointSelected
{
display:block;
}
.PS_GLSFloatRelayPointSelecteIt a.PS_GLSSelectRelayPointButton
{
float:right;
display: block;
width: 60px;
height: 20px;
padding: 5px 20px 0px 25px;
color:#666666;
text-decoration: none;
margin-top: 8px;
background:url(../images/selectRelayPoint.png) no-repeat 0px 0px;
}
.PS_GLSFloatRelayPointSelected a.PS_GLSSelectRelayPointButton
{
font-size: 10px;
float:right;
display: block;
width: 60px;
height: 20px;
padding: 7px 20px 0px 25px;
text-decoration: none;
margin-top: 8px;
color:#333333;
background:url(../images/selectRelayPoint.png) no-repeat 0px -25px;
}
a.PS_GLSSelectRelayPointButton:hover
{
color:#333333;
background:url(../images/selectRelayPoint.png) no-repeat 0px -25px;
}
.PS_GLSGmapDefaultPosition
{
display:none;
}
div.PS_GLSGmapStyle
{
width: 550px;
height:250px;
display: none;
}
div#PS_GLSPersonalizedFields
{
display:none;
}
.clearfix:before,
.clearfix:after
{
content: ".";
display: block;
height: 0;
overflow: hidden
}
.clearfix:after {clear: both}
.clearfix {zoom: 1}
.PS_GLSGmapBulbe
{
width:405px;
height:66px;
overflow: hidden;
}
.GLS_date {width:450px;position:relative;float:right; line-height: 9px;}
.GLS_date span.titre {margin-left:50px;font-weight:bold;}
.GLS_date span.vacances {margin-left:5px;color:Red; }
.GLS_date table {border-spacing:3px;font-size:11pt; border: solid 1px #eee;}
.GLS_date tr.p {background-color:#e9e9e9; height:9px;}
.GLS_date td.g {font-weight:bold;}
.GLS_date td.d {}
/* 1.3 compatibility*/
.GLS_warn
{
border: 1px solid #D3C200;
background-color: #FFFAC6;
color: #383838;
font-weight: 700;
margin: 0 0 10px 0;
line-height: 20px;
padding: 10px 0px;
text-align: center;
}
/* 1.3 compatibility*/
.GLS_error
{
border: 1px solid #EC9B9B;
background-color: #FAE2E3;
color: #383838;
font-weight: 700;
margin: 0 0 10px 0;
line-height: 20px;
padding: 10px 0px;
text-align: center;
}
.GLS_error ul > li, .GLS_warn ul > li
{
list-style: none;
text-align: left;
}
/* 1.3 - 1.4 compatibility*/
.GLS_hint
{
margin-top: 4px;
margin-bottom: 2px;
border: 1px solid #268CCD;
padding: 8px 6px 8px 34px;
color: #383838;
background: #F1F9FF;
border-radius: 3px;
}
#GLS_config_menu
{
background-color: #F8F8F8;
border: 1px solid #CCC;
margin-bottom: 10px;
padding: 10px 0;
border-radius: 3px;
-moz-border-radius: 3px;
-webkit-border-radius: 3px;
border-image: initial;
height: 110px;
}
#GLS_config_menu ul
{
margin: 0 auto;
padding: 0;
width:100%;
}
#GLS_config_menu ul > li
{
color: #666;
float: left;
list-style: none outside none;
padding: 10px 40px;
text-align: center;
}
#GLS_config_menu ul > li.selected
{
color: #383838;
font-weight: bolder;
border: 1px solid #CCC;
border-radius: 3px;
-moz-border-radius: 3px;
-webkit-border-radius: 3px;
background-color: #EBEDF4;
}
#GLS_config_menu ul > li.selected > a
{
color: #383838;
font-weight: bolder;
}
#GLS_error_account
{
text-align: center;
}
.send_disable_carrier_form {
cursor: pointer;
}
.nobootstrap .alert.alert-danger, .nobootstrap #carrier_wizard .wizard_error {
padding-left: 50px;
position: relative;
border: none;
border-left: solid 3px #e17875;
}
.nobootstrap .alert-danger, .nobootstrap #carrier_wizard .wizard_error {
background-color: #f2dede;
border-color: #ebccd1;
color: #a94442;
}
.nobootstrap .alert, .nobootstrap #carrier_wizard .wizard_error {
padding: 15px;
margin-bottom: 17px;
border: 1px solid transparent;
border-radius: 3px;
}
.nobootstrap .alert.alert-danger:before, .nobootstrap #carrier_wizard .wizard_error:before {
position: absolute;
top: 6px;
left: 7px;
display: block;
height: 25px;
width: 25px;
color: #e17875;
}
.icon-warning:before, .icon-exclamation-triangle:before, .icon-warning-sign:before, .nobootstrap .alert.alert-danger:before, .nobootstrap #carrier_wizard .wizard_error:before {
content: "\f071";
}
.icon-3x, .nobootstrap .alert.alert-warning:before, .nobootstrap .alert.alert-danger:before, .nobootstrap #carrier_wizard .wizard_error:before, .nobootstrap .alert.alert-success:before, .nobootstrap .alert.alert-info:before, .nobootstrap .alert.alert-addons:before, .nobootstrap .alert.alert-message:before {
font-size: 3em;
}
.icon, .page-sidebar-closed:not(.nav-topbar):not(.mobile-nav) .searchtab:before, [class^="icon-"], [class^="process-icon-"], .nobootstrap .alert.alert-warning:before, .nobootstrap .alert.alert-danger:before, .nobootstrap #carrier_wizard .wizard_error:before, .nobootstrap .alert.alert-success:before, .nobootstrap .alert.alert-info:before, .nobootstrap .alert.alert-addons:before, .nobootstrap .alert.alert-message:before, .nobootstrap .table td.dragHandle .dragGroup:before, .nobootstrap #dashboard .loading .data_value:before, .nobootstrap #employee-thumbnail:before, .mce-ico, .chosen-container-single .chosen-single div b, .chosen-container-single .chosen-search:before {
display: inline-block;
font-family: FontAwesome;
font-style: normal;
font-weight: normal;
line-height: 1;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.nobootstrap *:before, .nobootstrap *:after {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
.nobootstrap .alert.alert-success, .nobootstrap #carrier_wizard .alert-success.wizard_error {
padding-left: 50px;
position: relative;
border: none;
border-left: solid 3px #7cc67c;
}
.nobootstrap .alert-success {
background-color: #dff0d8;
border-color: #d6e9c6;
color: #3c763d;
}
.nobootstrap .alert, .nobootstrap #carrier_wizard .wizard_error {
padding: 15px;
margin-bottom: 17px;
border: 1px solid transparent;
border-radius: 3px;
}
.nobootstrap .alert.alert-success:before, .nobootstrap #carrier_wizard .alert-success.wizard_error:before {
position: absolute;
top: 6px;
left: 7px;
display: block;
height: 25px;
width: 25px;
color: #7cc67c;
}
.icon-check-circle:before, .icon-ok-sign:before, .nobootstrap .alert.alert-success:before, .nobootstrap #carrier_wizard .alert-success.wizard_error:before {
content: "\f058";
}
.icon-3x, .nobootstrap .alert.alert-warning:before, .nobootstrap .alert.alert-danger:before, .nobootstrap #carrier_wizard .wizard_error:before, .nobootstrap .alert.alert-success:before, .nobootstrap .alert.alert-info:before, .nobootstrap .alert.alert-addons:before, .nobootstrap .alert.alert-message:before {
font-size: 3em;
}
.icon, .page-sidebar-closed:not(.nav-topbar):not(.mobile-nav) .searchtab:before, [class^="icon-"], [class^="process-icon-"], .nobootstrap .alert.alert-warning:before, .nobootstrap .alert.alert-danger:before, .nobootstrap #carrier_wizard .wizard_error:before, .nobootstrap .alert.alert-success:before, .nobootstrap .alert.alert-info:before, .nobootstrap .alert.alert-addons:before, .nobootstrap .alert.alert-message:before, .nobootstrap .table td.dragHandle .dragGroup:before, .nobootstrap #dashboard .loading .data_value:before, .nobootstrap #employee-thumbnail:before, .mce-ico, .chosen-container-single .chosen-single div b, .chosen-container-single .chosen-search:before {
display: inline-block;
font-family: FontAwesome;
font-style: normal;
font-weight: normal;
line-height: 1;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.nobootstrap *:before, .nobootstrap *:after {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
.gls_legend{
width: 500px;
margin-left: 46px;
font-style: italic;
text-align: justify;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 954 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

View File

@ -0,0 +1,28 @@
<?php
/*
* 2007-2014 Addonline
*
* 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.
*
* @author Addonline <contact@addonline.fr>
* @copyright 2007-2014 Addonline
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
*/
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: 6.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

View File

@ -0,0 +1,28 @@
<?php
/*
* 2007-2014 Addonline
*
* 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.
*
* @author Addonline <contact@addonline.fr>
* @copyright 2007-2014 Addonline
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
*/
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: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1012 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@ -0,0 +1,28 @@
<?php
/*
* 2007-2014 Addonline
*
* 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.
*
* @author Addonline <contact@addonline.fr>
* @copyright 2007-2014 Addonline
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
*/
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;

1164
modules/gls/views/js/gls.js Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,608 @@
/*
* Cette fonction n'est pas définie dans le cas du thème mobile
* et provoque une erreur au clic sur un transporteur
* @see themes/default/js/cartt-summary.js
*/
if (typeof updateExtraCarrier != "function") {
function updateExtraCarrier(id_delivery_option, id_address)
{
/*
* Si l'on met ici le code de la fonction
* le layer gls est dupliqué au clic sur le transporteur
* => on laisse vide
*/
}
}
/**
* Fonction startWith sur l'objet String de javascript
*/
String.prototype.startWith = function(t, i) {
if (i == false) {
return
(t == this.substring(0, t.length));
} else {
return (t.toLowerCase()
== this.substring(0, t.length).toLowerCase());
}
}
/**
* Variables globales
*/
var glsMyPosition;
var glsListRelais = new Array();
var glsRelayMap;
var glsOpenedInfowindow;
var glsRelaisChoisi;
var glsCarrierRelayId = false;
var defaultZipCode = '75001';
var prestashop1_6 = false;
/* Liste des markers */
var glsMarkersArray = [];
/*
* Suppression des markers
*/
function clearMarkers() {
for (var i = 0; i < glsMarkersArray.length; i++) {
glsMarkersArray[i].setMap(null);
}
glsMarkersArray.length = 0;
glsMarkersArray = [];
jQuery('.gls_point_relay').remove();
}
/**
* Initialisation au chargement de la page
*/
jQuery(function($) {
//Récupération en ajax de l'identifiant du transporteur relais GLS
$.ajax(
{
type: 'POST',
url: baseDir + 'modules/gls/ajaxFront.php',
data: {'method': 'getGLSRelayCarrierId'},
dataType: 'json',
success: function(json)
{
//Ajout de l'identifiant à la page
$('#gls_carrier_id').remove();
$(".order_carrier_content").append("<div id='gls_carrier_id' data-carrier_id='" + json.id_carrier + "' style='display:none;'></div>");
glsCarrierRelayId = json.id_carrier;
getPreviouslyChoosenRelay();
}
});
//Récupération en ajax du code postal de facturation
//Fonction déplacée pour faire fonctionner sur la version mobile, car les champs ne sont pas chargé au début du tunnel de commande
/* $.ajax(
{
type : 'POST',
url : baseDir+'modules/gls/ajaxFront.php',
data : {'method' : 'getDefaultZipCode'},
dataType: 'json',
success: function(json)
{
if(json){
defaultZipCode = json.postcode;
$("#cp_street").val(json.street);
$("#cp_city").val(json.city);
if(json.phone_mobile){
$('#num_telephone').val(json.phone_mobile);
}else{
$('#num_telephone').val(json.phone_number);
}
}
}
});
*/
/**
* Sur l'événement change des radios boutons de choix de mode de livraison
*/
if ($("body").hasClass("ui-mobile-viewport")) {
$(document).on("change", "input.delivery_option_radio", function() {
shippingGLSRadioCheck(this);
});
} else {
$(document).on("click", "input.delivery_option_radio", function() {
shippingGLSRadioCheck(this);
});
}
/*
* Bouton fermer la popup
*/
jQuery(document).on("click", "#layer_gls_body .close", function() {
jQuery("#layer_gls_body").popup('hide');
});
/*
* Sur l'évènement de choix de relay
*/
$('.choose-relay-point').live("click", function(e) {
e.preventDefault();
choisirRelaisGLS($(this).data('relayindex'));
});
/*
* Sur la validation du transporteur
*/
$('button[name="processCarrier"]').click(function() {
if ($('#gls_relais_choisi').size() < 1 && $('.delivery_option_radio[value="' + glsCarrierRelayId + ',"]').attr('checked')) {
if ($('.cart_navigation').length > 0) {
if ($('.GLSWarning').length == 0) {
$('.cart_navigation').prepend('<div class="GLSWarning" style="font-weight:bold; color:#cc0000; text-align:center;">' + PS_GLSWarningNoRelay + '</div>');
}
} else {
alert(PS_GLSWarningNoRelay);
}
return false;
} else {
return true;
}
});
$('input[name="processCarrier"]').click(function() {
if (!$('.delivery_option_radio[value="' + glsCarrierRelayId + ',"]').attr('checked') && $('#gls_relais_choisi').size() > 0) {
resetPointRelay();
}
if ($('#gls_relais_choisi').size() < 1 && $('.delivery_option_radio[value="' + glsCarrierRelayId + ',"]').attr('checked')) {
alert(PS_GLSWarningNoRelay);
return false;
} else {
return true;
}
});
/* Seules les saisies numériques sont autorisées dans les champs textes */
$("#layer_gls_wrapper #cp_recherche").keypress(function(e) {
var charCode = (e.which) ? e.which : e.keyCode;
if (charCode > 31 && (charCode < 48 || charCode > 57)) {
return false;
}
return true;
});
jQuery(document).on('click', '.modifier_relay', function(e) {
jQuery('.delivery_option_radio[value="' + glsCarrierRelayId + ',"]').click();
if (jQuery.uniform) {
jQuery.uniform.update();
}
});
/*
* Initialsation des popup
*/
if ($('.delivery_option_radio[value="' + glsCarrierRelayId + ',"]').next().find('.delivery_option_title').size() > 0) {
prestashop1_6 = false;
} else {
prestashop1_6 = true;
}
if (prestashop1_6) {
//Initialisation du plugin
jQuery("#layer_gls_body").popup({
beforeopen: function() {
glsRelayMap = new google.maps.Map(document.getElementById('map_gls'), mapOptions);
},
onclose: function() {
resetGLSShippingMethod();
},
transition: 'all 0.3s',
});
} else {
jQuery("#layer_gls_body").popup({
transition: 'all 0.3s',
beforeopen: function() {
glsRelayMap = new google.maps.Map(document.getElementById('map_gls'), mapOptions);
},
onclose: function() {
resetGLSShippingMethod();
}
});
}
});
function shippingGLSRadioCheck(element) {
var idCarrierSelected = $(element).val().slice(0, -1);
console.log('enter shippingGLSRadioCheck : ' + glsCarrierRelayId);
if (idCarrierSelected == glsCarrierRelayId) {
geocoder = new google.maps.Geocoder();
console.log('TRY cp_street');
if (!$("#cp_street").val()) {
console.log('TRY ajaxFront');
//Récupération en ajax du code postal de facturation
$.ajax(
{
type: 'POST',
url: baseDir + 'modules/gls/ajaxFront.php',
data: {'method': 'getDefaultZipCode'},
dataType: 'json',
success: function(json)
{
console.log('SUCCESS ajaxFront');
if (json) {
defaultZipCode = json.postcode;
$("#cp_street").val(json.street);
$("#cp_city").val(json.city);
if (json.phone_mobile) {
$('#num_telephone').val(json.phone_mobile);
} else {
$('#num_telephone').val(json.phone_number);
}
}
geocodeGLSAdresse();
}
});
} else {
geocodeGLSAdresse();
}
}
}
function resetGLSShippingMethod() {
if (jQuery('#gls_relais_choisi').size() == 0) {
console.log('TEST 1');
jQuery("input[class='delivery_option_radio']:checked").prop("checked", "");
console.log('TEST 2');
jQuery("input[name='shipping_method']:checked").prop("checked", "");
console.log('TEST 3');
if (jQuery.uniform) {
console.log('TEST 3.1');
jQuery.uniform.update();
}
}
}
function geocodeGLSAdresse() {
var searchAdress = jQuery('#cp_recherche').val();
if (searchAdress == '' || !searchAdress) {
jQuery('#cp_recherche').val(defaultZipCode);
searchAdress = defaultZipCode;
}
if ((typeof google) != "undefined") {
var geocoder = new google.maps.Geocoder();
geocoder.geocode({'address': searchAdress}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
glsMyPosition = results[0].geometry.location;
//on met à jour la carte avec cette position
loadMap();
loadListePointRelais();
} else {
alert('Adresse invalide : ' + searchAdress);
}
});
} else {
alert("Géolocalisation de l'adresse impossible, vérifiez votre connexion internet (Google inaccessible).");
}
}
function changeMap() {
if (glsMyPosition != undefined) {
loadListePointRelais();
}
}
function loadListePointRelais() {
var searchAdress = jQuery('#cp_recherche').val();
if (searchAdress == '' || !searchAdress) {
jQuery('#cp_recherche').val(defaultZipCode);
searchAdress = defaultZipCode;
}
if (searchAdress) {
$.ajax(
{
type: 'POST',
url: baseDir + 'modules/gls/ajaxFront.php',
data: {'method': 'getGLSRelayPointsForZipCode', 'zipcode': jQuery("#cp_recherche").val(), 'street': jQuery("#cp_street").val(), 'city': jQuery("#cp_city").val()},
dataType: 'json',
success: function(json)
{
if (!json) {
alert(shipping_method_unavailable);
} else {
if (json.indexOf("gls_ws_error") <= 0) {
clearMarkers();
jQuery("#col_droite_gls").html(json);
showGLSMap();
} else {
jQuery("#layer_gls_body .contenu").append(json);
}
}
}
});
}
}
function loadMap() {
mapOptions = {
zoom: 10,
center: glsMyPosition,
mapTypeId: google.maps.MapTypeId.ROADMAP,
disableDefaultUI: true,
zoomControlOptions: {
position: google.maps.ControlPosition.RIGHT_TOP
}
}
jQuery('#layer_gls').appendTo('body').attr("id", "layer_gls_body");
if (jQuery('#layer_gls').size()) {
jQuery('#layer_gls').remove();
}
//if( jQuery("#layer_gls_body").data("overlay") == null ) {
// if(prestashop1_6){
// jQuery('#layer_gls_body').css('left','25%');
// }
if (jQuery('html').attr('class')) {
if (jQuery('html').attr('class').indexOf("mobile")) {
jQuery('#layer_gls_body').css('left', '0');
}
}
//}
//Ouverture de la popup
jQuery("#layer_gls_body").popup('show');
console.log('SHOWING');
jQuery("#shipping-method-please-wait").hide();
}
function showGLSMap() {
if ((typeof google) != "undefined") {
var init = false;
//google.maps.event.addListener(glsRelayMap, 'tilesloaded', function () {
// création de bornes vides...
var bounds = new google.maps.LatLngBounds();
if (!init) {
jQuery('.gls_point_relay').each(function(index, element) {
var relayPosition = new google.maps.LatLng(jQuery(this).find('.GLS_relay_latitude').text(), jQuery(this).find('.GLS_relay_longitude').text());
markerGLS = new google.maps.Marker({
map: glsRelayMap,
position: relayPosition,
title: jQuery(this).find('.GLS_relay_name').text(),
icon: (glsRelaisChoisi == jQuery(this).find('.GLS_relay_id').text()) ? baseDir + 'modules/gls/views/img/marker_current.png' : baseDir + 'modules/gls/views/img/marker.png'
});
infowindowGLS = infoGLSBulleGenerator(jQuery(this));
if (glsRelaisChoisi == jQuery(this).find('.GLS_relay_id').text()) {
jQuery("#layer_gls_body .gls_point_relay").removeClass("current").eq(index).addClass("current");
jQuery("#col_droite_gls").scrollTop(0).scrollTop(jQuery(".gls_point_relay").eq(index).position().top);
}
// Ajout à la liste des markers
glsMarkersArray.push(markerGLS);
attachGLSClick(markerGLS, infowindowGLS, index);
// ...étendues à chaque point...
bounds.extend(relayPosition);
});
// ...pour voir tous les points
if (glsRelayMap) {
if (bounds) {
glsRelayMap.fitBounds(bounds);
}
} else {
unlockMapLoading();
}
}
init = true;
//});
}
if (jQuery('#layer_gls_body').find('#map_gls').children().size() <= 0) {
unlockMapLoading();
}
}
//générateur d'infobulle
function infoGLSBulleGenerator(relay) {
contentString = '<div class="info-window">'
contentString += '<span class="store-name">' + relay.find('.GLS_relay_name').text() + '</span>';
contentString += '' +
relay.find('.GLS_relay_address').text() + '<br/>' +
relay.find('.GLS_relay_zipcode').text() + ' ' + relay.find('.GLS_relay_city').text();
contentString += relay.find('.GLS_relay_hours').html();
contentString += "<div class='button-wrapper'><a href='#' class='choose-relay-point' data-relayindex=" + relay.find('.GLS_relay_index').text() + " data-relayid=" + relay.find('.GLS_relay_id').text() + ">" + choose_this_parcel_shop + "</a></div>";
contentString += "</div>";
infowindow = new google.maps.InfoWindow({
content: contentString
});
return infowindow;
}
function attachGLSClick(markerGLS, infowindowGLS, index) {
//Clic sur le relais dans la colonne de gauche
jQuery("#gls_point_relay_" + index).on("click", function() {
clickHandler(markerGLS, infowindowGLS, index);
});
//Clic sur le marqueur du relais dans la carte
google.maps.event.addListener(markerGLS, 'click', function() {
clickHandler(markerGLS, infowindowGLS, index);
});
}
function clickHandler(markerGLS, infowindowGLS, index) {
//fermer la derniere infobulle ouverte
if (glsOpenedInfowindow) {
glsOpenedInfowindow.close();
jQuery("#layer_gls_body .gls_point_relay").removeClass("current");
}
//ouvrir l'infobulle
infowindowGLS.open(glsRelayMap, markerGLS);
glsOpenedInfowindow = infowindowGLS;
// Mise en évidence du relais dans la liste
jQuery("#layer_gls_body .gls_point_relay").removeClass("current").eq(index).addClass("current");
jQuery("#col_droite_gls").scrollTop(0).scrollTop(jQuery(".gls_point_relay").eq(index).position().top);
}
function choisirRelaisGLS(index) {
//resetShippingMethod();
jQuery("select[name='shipping_address_id']").prop('selectedIndex', 0);
jQuery("select[name='shipping_address_id'] option[value='']").prop('selectedIndex', 0);
if (jQuery("#sms_checkbox").is(":checked")) {
v = document.getElementById("num_telephone").value;
//if (!(/^0(6|7)\d{8}$/.test(v)) || (/^0(6|7)(0{8}|1{8}|2{8}|3{8}|4{8}|5{8}|6{8}|7{8}|8{8}|9{8}|12345678)$/.test(v)) ) {
if (!v) {
alert("Veuillez saisir un numéro de téléphone valide (portable de préférence).");
return;
}
}
var contenu_html = "<div id='gls_relais_choisi'><span>" + jQuery('#gls_point_relay_' + index).find('.GLS_relay_name').text() + "</span>" + " <span class='modifier_relay'>" + change_parcelshop + "</span>" + "<br/>" + jQuery('#gls_point_relay_' + index).find('.GLS_relay_address').text() + "<br/>" + jQuery('#gls_point_relay_' + index).find('.GLS_relay_zipcode').text() + " " + jQuery('#gls_point_relay_' + index).find('.GLS_relay_city').text() + "</div>";
jQuery('#gls_relais_choisi').remove();
if (prestashop1_6) {
if (jQuery('.delivery_option_radio[value="' + glsCarrierRelayId + ',"]').parent().parent().parent().next().next().size() < 1) {
jQuery('body').find('.delivery_option_radio[value="' + glsCarrierRelayId + ',"]').parent().parent().find('.delivery_option_title').append(contenu_html);
} else {
jQuery('.delivery_option_radio[value="' + glsCarrierRelayId + ',"]').parent().parent().parent().next().next().append(contenu_html);
}
} else {
if (jQuery('.delivery_option_radio[value="' + glsCarrierRelayId + ',"]').next().size()) {
jQuery('.delivery_option_radio[value="' + glsCarrierRelayId + ',"]').next().find('.delivery_option_title').parent().append(contenu_html);
} else {
jQuery('body').find('.delivery_option_radio[value="' + glsCarrierRelayId + ',"]').parent().parent().find('.delivery_option_title').append(contenu_html);
}
}
/* On stock en session les informations du relais */
if (jQuery("#sms_checkbox").is(":checked") && jQuery("#num_telephone").val() != "") {
var warnbyphone = 1;
} else {
var warnbyphone = 0;
}
glsRelaisChoisi = jQuery('#gls_point_relay_' + index).find('.GLS_relay_id').text();
// On fait la sauvegarde de la méthode de livraison
jQuery.ajax({
type: 'POST',
url: baseDir + 'modules/gls/ajaxFront.php',
data: {
'method': 'saveDeliveryDetails', // <-- just pass an object
name: jQuery('#gls_point_relay_' + index).find('.GLS_relay_name').text(),
address: jQuery('#gls_point_relay_' + index).find('.GLS_relay_address').text(),
city: jQuery('#gls_point_relay_' + index).find('.GLS_relay_city').text(),
zipcode: jQuery('#gls_point_relay_' + index).find('.GLS_relay_zipcode').text(),
relayId: jQuery('#gls_point_relay_' + index).find('.GLS_relay_id').text(),
phone: jQuery("#num_telephone").val(),
warnbyphone: warnbyphone,
},
dataType: 'json',
success: function() {
// On cache le layer
jQuery("#layer_gls_body").popup('hide');
}
});
}
function resetPointRelay() {
jQuery.ajax({
type: 'POST',
url: baseDir + 'modules/gls/ajaxFront.php',
data: {
'method': 'resetDeliveryDetails'
},
dataType: 'json',
success: function() {
}
});
}
//Récupération du relais eventuellement déjà choisi
function getPreviouslyChoosenRelay() {
if ($('.delivery_option_radio[value="' + glsCarrierRelayId + ',"]').next().find('.delivery_option_title').size() > 0) {
prestashop1_6 = false;
} else {
prestashop1_6 = true;
}
$.ajax(
{
type: 'POST',
url: baseDir + 'modules/gls/ajaxFront.php',
data: {'method': 'getChoosenRelay'},
dataType: 'json',
success: function(json)
{
if (json.relay_name != 'undefined' && json.relay_name != undefined && json.relay_name != "undefined ") {
var contenu_html = "<div id='gls_relais_choisi'><span>" + json.relay_name + "</span>" + " <span class='modifier_relay'>" + change_parcelshop + "</span>" + "<br/>" + json.relay_address + "<br/>" + json.relay_zipcode + " " + json.relay_town + "</div>";
jQuery('#gls_relais_choisi').remove();
if (prestashop1_6) {
if (jQuery('.delivery_option_radio[value="' + glsCarrierRelayId + ',"]').parent().parent().parent().next().next().size() < 1) {
jQuery('body').find('.delivery_option_radio[value="' + glsCarrierRelayId + ',"]').parent().parent().find('.delivery_option_title').append(contenu_html);
} else {
jQuery('.delivery_option_radio[value="' + glsCarrierRelayId + ',"]').parent().parent().parent().next().next().append(contenu_html);
}
} else {
if (jQuery('.delivery_option_radio[value="' + glsCarrierRelayId + ',"]').next().size()) {
jQuery('.delivery_option_radio[value="' + glsCarrierRelayId + ',"]').next().find('.delivery_option_title').parent().append(contenu_html);
} else {
jQuery('body').find('.delivery_option_radio[value="' + glsCarrierRelayId + ',"]').parent().parent().find('.delivery_option_title').append(contenu_html);
}
}
} else {
jQuery('#gls_relais_choisi').remove();
}
}
});
}
function unlockMapLoading() {
mapOptions = {
zoom: 10,
center: glsMyPosition,
mapTypeId: google.maps.MapTypeId.ROADMAP,
disableDefaultUI: true,
zoomControlOptions: {
position: google.maps.ControlPosition.RIGHT_TOP
}
}
glsRelayMap = new google.maps.Map(document.getElementById('map_gls'), mapOptions);
geocodeGLSAdresse();
}

View File

@ -0,0 +1,28 @@
<?php
/*
* 2007-2014 Addonline
*
* 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.
*
* @author Addonline <contact@addonline.fr>
* @copyright 2007-2014 Addonline
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
*/
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,786 @@
/*!
* jQuery Popup Overlay
*
* @version 1.7.6
* @requires jQuery v1.7.1+
* @link http://vast-engineering.github.com/jquery-popup-overlay/
*/
;(function ($) {
var $window = $(window);
var options = {};
var zindexvalues = [];
var lastclicked = [];
var scrollbarwidth;
var bodymarginright = null;
var opensuffix = '_open';
var closesuffix = '_close';
var stack = [];
var transitionsupport = null;
var opentimer;
var iOS = /(iPad|iPhone|iPod)/g.test(navigator.userAgent);
var methods = {
_init: function (el) {
var $el = $(el);
var options = $el.data('popupoptions');
lastclicked[el.id] = false;
zindexvalues[el.id] = 0;
if (!$el.data('popup-initialized')) {
$el.attr('data-popup-initialized', 'true');
methods._initonce(el);
}
if (options.autoopen) {
setTimeout(function() {
methods.show(el, 0);
}, 0);
}
},
_initonce: function (el) {
var $el = $(el);
var $body = $('body');
var $wrapper;
var options = $el.data('popupoptions');
var css;
bodymarginright = parseInt($body.css('margin-right'), 10);
transitionsupport = document.body.style.webkitTransition !== undefined ||
document.body.style.MozTransition !== undefined ||
document.body.style.msTransition !== undefined ||
document.body.style.OTransition !== undefined ||
document.body.style.transition !== undefined;
if (options.type == 'tooltip') {
options.background = false;
options.scrolllock = false;
}
if (options.backgroundactive) {
options.background = false;
options.blur = false;
options.scrolllock = false;
}
if (options.scrolllock) {
// Calculate the browser's scrollbar width dynamically
var parent;
var child;
if (typeof scrollbarwidth === 'undefined') {
parent = $('<div style="width:50px;height:50px;overflow:auto"><div/></div>').appendTo('body');
child = parent.children();
scrollbarwidth = child.innerWidth() - child.height(99).innerWidth();
parent.remove();
}
}
if (!$el.attr('id')) {
$el.attr('id', 'j-popup-' + parseInt((Math.random() * 100000000), 10));
}
$el.addClass('popup_content');
$body.prepend(el);
$el.wrap('<div id="' + el.id + '_wrapper" class="popup_wrapper" />');
$wrapper = $('#' + el.id + '_wrapper');
$wrapper.css({
opacity: 0,
visibility: 'hidden',
position: 'absolute'
});
// Make div clickable in iOS
if (iOS) {
$wrapper.css('cursor', 'pointer');
}
if (options.type == 'overlay') {
$wrapper.css('overflow','auto');
}
$el.css({
opacity: 0,
visibility: 'hidden',
display: 'inline-block'
});
if (options.setzindex && !options.autozindex) {
$wrapper.css('z-index', '100001');
}
if (!options.outline) {
$el.css('outline', 'none');
}
if (options.transition) {
$el.css('transition', options.transition);
$wrapper.css('transition', options.transition);
}
// Hide popup content from screen readers initially
$el.attr('aria-hidden', true);
if ((options.background) && (!$('#' + el.id + '_background').length)) {
$body.prepend('<div id="' + el.id + '_background" class="popup_background"></div>');
var $background = $('#' + el.id + '_background');
$background.css({
opacity: 0,
visibility: 'hidden',
backgroundColor: options.color,
position: 'fixed',
top: 0,
right: 0,
bottom: 0,
left: 0
});
if (options.setzindex && !options.autozindex) {
$background.css('z-index', '100000');
}
if (options.transition) {
$background.css('transition', options.transition);
}
}
if (options.type == 'overlay') {
$el.css({
textAlign: 'left',
position: 'relative',
verticalAlign: 'middle'
});
css = {
position: 'fixed',
width: '100%',
height: '100%',
top: 0,
left: 0,
textAlign: 'center'
};
if(options.backgroundactive){
css.position = 'relative';
css.height = '0';
css.overflow = 'visible';
}
$wrapper.css(css);
// CSS vertical align helper
$wrapper.append('<div class="popup_align" />');
$('.popup_align').css({
display: 'inline-block',
verticalAlign: 'middle',
height: '100%'
});
}
// Add WAI ARIA role to announce dialog to screen readers
$el.attr('role', 'dialog');
var openelement = (options.openelement) ? options.openelement : ('.' + el.id + opensuffix);
$(openelement).each(function (i, item) {
$(item).attr('data-popup-ordinal', i);
if (!item.id) {
$(item).attr('id', 'open_' + parseInt((Math.random() * 100000000), 10));
}
});
// Set aria-labelledby (if aria-label or aria-labelledby is not set in html)
if (!($el.attr('aria-labelledby') || $el.attr('aria-label'))) {
$el.attr('aria-labelledby', $(openelement).attr('id'));
}
// Show and hide tooltips on hover
if(options.action == 'hover'){
options.keepfocus = false;
// Handler: mouseenter, focusin
$(openelement).on('mouseenter', function (event) {
methods.show(el, $(this).data('popup-ordinal'));
});
// Handler: mouseleave, focusout
$(openelement).on('mouseleave', function (event) {
methods.hide(el);
});
} else {
// Handler: Show popup when clicked on `open` element
$(document).on('click', openelement, function (event) {
event.preventDefault();
var ord = $(this).data('popup-ordinal');
setTimeout(function() { // setTimeout is to allow `close` method to finish (for issues with multiple tooltips)
methods.show(el, ord);
}, 0);
});
}
if (options.closebutton) {
methods.addclosebutton(el);
}
if (options.detach) {
$el.hide().detach();
} else {
$wrapper.hide();
}
},
/**
* Show method
*
* @param {object} el - popup instance DOM node
* @param {number} ordinal - order number of an `open` element
*/
show: function (el, ordinal) {
var $el = $(el);
if ($el.data('popup-visible')) return;
// Initialize if not initialized. Required for: $('#popup').popup('show')
if (!$el.data('popup-initialized')) {
methods._init(el);
}
$el.attr('data-popup-initialized', 'true');
var $body = $('body');
var options = $el.data('popupoptions');
var $wrapper = $('#' + el.id + '_wrapper');
var $background = $('#' + el.id + '_background');
// `beforeopen` callback event
callback(el, ordinal, options.beforeopen);
// Remember last clicked place
lastclicked[el.id] = ordinal;
// Add popup id to popup stack
setTimeout(function() {
stack.push(el.id);
}, 0);
// Calculating maximum z-index
if (options.autozindex) {
var elements = document.getElementsByTagName('*');
var len = elements.length;
var maxzindex = 0;
for(var i=0; i<len; i++){
var elementzindex = $(elements[i]).css('z-index');
if(elementzindex !== 'auto'){
elementzindex = parseInt(elementzindex, 10);
if(maxzindex < elementzindex){
maxzindex = elementzindex;
}
}
}
zindexvalues[el.id] = maxzindex;
// Add z-index to the background
if (options.background) {
if (zindexvalues[el.id] > 0) {
$('#' + el.id + '_background').css({
zIndex: (zindexvalues[el.id] + 1)
});
}
}
// Add z-index to the wrapper
if (zindexvalues[el.id] > 0) {
$wrapper.css({
zIndex: (zindexvalues[el.id] + 2)
});
}
}
if (options.detach) {
$wrapper.prepend(el);
$el.show();
} else {
$wrapper.show();
}
opentimer = setTimeout(function() {
$wrapper.css({
visibility: 'visible',
opacity: 1
});
$('html').addClass('popup_visible').addClass('popup_visible_' + el.id);
$wrapper.addClass('popup_wrapper_visible');
}, 20); // 20ms required for opening animation to occur in FF
// Disable background layer scrolling when popup is opened
if (options.scrolllock) {
$body.css('overflow', 'hidden');
if ($body.height() > $window.height()) {
$body.css('margin-right', bodymarginright + scrollbarwidth);
}
}
if(options.backgroundactive){
//calculates the vertical align
$el.css({
top:(
$window.height() - (
$el.get(0).offsetHeight +
parseInt($el.css('margin-top'), 10) +
parseInt($el.css('margin-bottom'), 10)
)
)/2 +'px'
});
}
$el.css({
'visibility': 'visible',
'opacity': 1
});
// Show background
if (options.background) {
$background.css({
'visibility': 'visible',
'opacity': options.opacity
});
// Fix IE8 issue with background not appearing
setTimeout(function() {
$background.css({
'opacity': options.opacity
});
}, 0);
}
$el.data('popup-visible', true);
// Position popup
methods.reposition(el, ordinal);
// Remember which element had focus before opening a popup
$el.data('focusedelementbeforepopup', document.activeElement);
// Handler: Keep focus inside dialog box
if (options.keepfocus) {
// Make holder div focusable
$el.attr('tabindex', -1);
// Focus popup or user specified element.
// Initial timeout of 50ms is set to give some time to popup to show after clicking on
// `open` element, and after animation is complete to prevent background scrolling.
setTimeout(function() {
if (options.focuselement === 'closebutton') {
$('#' + el.id + ' .' + el.id + closesuffix + ':first').focus();
} else if (options.focuselement) {
$(options.focuselement).focus();
} else {
$el.focus();
}
}, options.focusdelay);
}
// Hide main content from screen readers
$(options.pagecontainer).attr('aria-hidden', true);
// Reveal popup content to screen readers
$el.attr('aria-hidden', false);
callback(el, ordinal, options.onopen);
if (transitionsupport) {
$wrapper.one('transitionend', function() {
callback(el, ordinal, options.opentransitionend);
});
} else {
callback(el, ordinal, options.opentransitionend);
}
},
/**
* Hide method
*
* @param {object} el - popup instance DOM node
*/
hide: function (el) {
if(opentimer) clearTimeout(opentimer);
var $body = $('body');
var $el = $(el);
var options = $el.data('popupoptions');
var $wrapper = $('#' + el.id + '_wrapper');
var $background = $('#' + el.id + '_background');
$el.data('popup-visible', false);
if (stack.length === 1) {
$('html').removeClass('popup_visible').removeClass('popup_visible_' + el.id);
} else {
if($('html').hasClass('popup_visible_' + el.id)) {
$('html').removeClass('popup_visible_' + el.id);
}
}
// Remove last opened popup from the stack
stack.pop();
if($wrapper.hasClass('popup_wrapper_visible')) {
$wrapper.removeClass('popup_wrapper_visible');
}
if (options.keepfocus) {
// Focus back on saved element
setTimeout(function() {
if ($($el.data('focusedelementbeforepopup')).is(':visible')) {
$el.data('focusedelementbeforepopup').focus();
}
}, 0);
}
// Hide popup
$wrapper.css({
'visibility': 'hidden',
'opacity': 0
});
$el.css({
'visibility': 'hidden',
'opacity': 0
});
// Hide background
if (options.background) {
$background.css({
'visibility': 'hidden',
'opacity': 0
});
}
// Reveal main content to screen readers
$(options.pagecontainer).attr('aria-hidden', false);
// Hide popup content from screen readers
$el.attr('aria-hidden', true);
// `onclose` callback event
callback(el, lastclicked[el.id], options.onclose);
if (transitionsupport && $el.css('transition-duration') !== '0s') {
$el.one('transitionend', function(e) {
if (!($el.data('popup-visible'))) {
if (options.detach) {
$el.hide().detach();
} else {
$wrapper.hide();
}
}
// Re-enable scrolling of background layer
if (options.scrolllock) {
setTimeout(function() {
$body.css({
overflow: 'visible',
'margin-right': bodymarginright
});
}, 10); // 10ms added for CSS transition in Firefox which doesn't like overflow:auto
}
callback(el, lastclicked[el.id], options.closetransitionend);
});
} else {
if (options.detach) {
$el.hide().detach();
} else {
$wrapper.hide();
}
// Re-enable scrolling of background layer
if (options.scrolllock) {
setTimeout(function() {
$body.css({
overflow: 'visible',
'margin-right': bodymarginright
});
}, 10); // 10ms added for CSS transition in Firefox which doesn't like overflow:auto
}
callback(el, lastclicked[el.id], options.closetransitionend);
}
},
/**
* Toggle method
*
* @param {object} el - popup instance DOM node
* @param {number} ordinal - order number of an `open` element
*/
toggle: function (el, ordinal) {
if ($(el).data('popup-visible')) {
methods.hide(el);
} else {
setTimeout(function() {
methods.show(el, ordinal);
}, 0);
}
},
/**
* Reposition method
*
* @param {object} el - popup instance DOM node
* @param {number} ordinal - order number of an `open` element
*/
reposition: function (el, ordinal) {
var $el = $(el);
var options = $el.data('popupoptions');
var $wrapper = $('#' + el.id + '_wrapper');
var $background = $('#' + el.id + '_background');
ordinal = ordinal || 0;
// Tooltip type
if (options.type == 'tooltip') {
$wrapper.css({
'position': 'absolute'
});
var $tooltipanchor;
if (options.tooltipanchor) {
$tooltipanchor = $(options.tooltipanchor);
} else if (options.openelement) {
$tooltipanchor = $(options.openelement).filter('[data-popup-ordinal="' + ordinal + '"]');
} else {
$tooltipanchor = $('.' + el.id + opensuffix + '[data-popup-ordinal="' + ordinal + '"]');
}
var linkOffset = $tooltipanchor.offset();
// Horizontal position for tooltip
if (options.horizontal == 'right') {
$wrapper.css('left', linkOffset.left + $tooltipanchor.outerWidth() + options.offsetleft);
} else if (options.horizontal == 'leftedge') {
$wrapper.css('left', linkOffset.left + $tooltipanchor.outerWidth() - $tooltipanchor.outerWidth() + options.offsetleft);
} else if (options.horizontal == 'left') {
$wrapper.css('right', $window.width() - linkOffset.left - options.offsetleft);
} else if (options.horizontal == 'rightedge') {
$wrapper.css('right', $window.width() - linkOffset.left - $tooltipanchor.outerWidth() - options.offsetleft);
} else {
$wrapper.css('left', linkOffset.left + ($tooltipanchor.outerWidth() / 2) - ($el.outerWidth() / 2) - parseFloat($el.css('marginLeft')) + options.offsetleft);
}
// Vertical position for tooltip
if (options.vertical == 'bottom') {
$wrapper.css('top', linkOffset.top + $tooltipanchor.outerHeight() + options.offsettop);
} else if (options.vertical == 'bottomedge') {
$wrapper.css('top', linkOffset.top + $tooltipanchor.outerHeight() - $el.outerHeight() + options.offsettop);
} else if (options.vertical == 'top') {
$wrapper.css('bottom', $window.height() - linkOffset.top - options.offsettop);
} else if (options.vertical == 'topedge') {
$wrapper.css('bottom', $window.height() - linkOffset.top - $el.outerHeight() - options.offsettop);
} else {
$wrapper.css('top', linkOffset.top + ($tooltipanchor.outerHeight() / 2) - ($el.outerHeight() / 2) - parseFloat($el.css('marginTop')) + options.offsettop);
}
// Overlay type
} else if (options.type == 'overlay') {
// Horizontal position for overlay
if (options.horizontal) {
$wrapper.css('text-align', options.horizontal);
} else {
$wrapper.css('text-align', 'center');
}
// Vertical position for overlay
if (options.vertical) {
$el.css('vertical-align', options.vertical);
} else {
$el.css('vertical-align', 'middle');
}
}
},
/**
* Add-close-button method
*
* @param {object} el - popup instance DOM node
*/
addclosebutton: function (el) {
var genericCloseButton;
if ($(el).data('popupoptions').closebuttonmarkup) {
genericCloseButton = $(options.closebuttonmarkup).addClass(el.id + '_close');
} else {
genericCloseButton = '<button class="popup_close ' + el.id + '_close" title="Close" aria-label="Close"><span aria-hidden="true">×</span></button>';
}
if ($el.data('popup-initialized')){
$el.append(genericCloseButton);
}
}
};
/**
* Callback event calls
*
* @param {object} el - popup instance DOM node
* @param {number} ordinal - order number of an `open` element
* @param {function} func - callback function
*/
var callback = function (el, ordinal, func) {
var options = $(el).data('popupoptions');
var openelement = (options.openelement) ? options.openelement : ('.' + el.id + opensuffix);
var elementclicked = $(openelement + '[data-popup-ordinal="' + ordinal + '"]');
if (typeof func == 'function') {
func.call($(el), el, elementclicked);
}
};
// Hide popup if ESC key is pressed
$(document).on('keydown', function (event) {
if(stack.length) {
var elementId = stack[stack.length - 1];
var el = document.getElementById(elementId);
if ($(el).data('popupoptions').escape && event.keyCode == 27) {
methods.hide(el);
}
}
});
// Hide popup on click
$(document).on('click', function (event) {
if(stack.length) {
var elementId = stack[stack.length - 1];
var el = document.getElementById(elementId);
var closeButton = ($(el).data('popupoptions').closeelement) ? $(el).data('popupoptions').closeelement : ('.' + el.id + closesuffix);
// Click on Close button
if ($(event.target).closest(closeButton).length) {
event.preventDefault();
methods.hide(el);
}
// Click outside of popup
if ($(el).data('popupoptions').blur && !$(event.target).closest('#' + elementId).length && event.which !== 2 && $(event.target).is(':visible')) {
methods.hide(el);
if ($(el).data('popupoptions').type === 'overlay') {
event.preventDefault(); // iOS will trigger click on the links below the overlay when clicked on the overlay if we don't prevent default action
}
}
}
});
// Keep keyboard focus inside of popup
$(document).on('focusin', function(event) {
if(stack.length) {
var elementId = stack[stack.length - 1];
var el = document.getElementById(elementId);
if ($(el).data('popupoptions').keepfocus) {
if (!el.contains(event.target)) {
event.stopPropagation();
el.focus();
}
}
}
});
/**
* Plugin API
*/
$.fn.popup = function (customoptions) {
return this.each(function () {
$el = $(this);
if (typeof customoptions === 'object') { // e.g. $('#popup').popup({'color':'blue'})
var opt = $.extend({}, $.fn.popup.defaults, customoptions);
$el.data('popupoptions', opt);
options = $el.data('popupoptions');
methods._init(this);
} else if (typeof customoptions === 'string') { // e.g. $('#popup').popup('hide')
if (!($el.data('popupoptions'))) {
$el.data('popupoptions', $.fn.popup.defaults);
options = $el.data('popupoptions');
}
methods[customoptions].call(this, this);
} else { // e.g. $('#popup').popup()
if (!($el.data('popupoptions'))) {
$el.data('popupoptions', $.fn.popup.defaults);
options = $el.data('popupoptions');
}
methods._init(this);
}
});
};
$.fn.popup.defaults = {
type: 'overlay',
autoopen: false,
background: true,
backgroundactive: false,
color: 'black',
opacity: '0.5',
horizontal: 'center',
vertical: 'middle',
offsettop: 0,
offsetleft: 0,
escape: true,
blur: true,
setzindex: true,
autozindex: false,
scrolllock: false,
closebutton: false,
closebuttonmarkup: null,
keepfocus: true,
focuselement: null,
focusdelay: 50,
outline: false,
pagecontainer: null,
detach: false,
openelement: null,
closeelement: null,
transition: null,
tooltipanchor: null,
beforeopen: null,
onclose: null,
onopen: null,
opentransitionend: null,
closetransitionend: null
};
})(jQuery);

View File

@ -0,0 +1,33 @@
{*
* 2007-2014 Addonline
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License (AFL 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/afl-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.
*
*
* @author Addonline <contact@addonline.fr>
* @copyright 2007-2014 Addonline
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
*}
{if $GLS_error_list|count}
<div class="alert error">
{$GLS_error_list|count} {l s='error(s)' mod='gls'}
<ul>
{foreach from=$GLS_error_list key=error_num item=error_message}
<li>{$error_message}</li>
{/foreach}
</ul>
</div>
{elseif $GLS_form_action.type|strlen != 0}
<div class="conf confirm alert alert-success">
{$GLS_form_action.message_success}
</div>
{/if}

View File

@ -0,0 +1,38 @@
{*
* 2007-2014 Addonline
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License (AFL 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/afl-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.
*
*
* @author Addonline <contact@addonline.fr>
* @copyright 2007-2014 Addonline
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
*}
{if isset($ps_version) && $ps_version == '1.5'}
<link rel='stylesheet' href='{$new_gls_base_dir}views/css/style.css' type='text/css' media='all' />
{* If jQuery is not already loaded. We include it. *}
<script type="text/javascript">
if (typeof jQuery == 'undefined') {
document.write('<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></' + 'script>');
}
</script>
<script type='text/javascript' src='{$new_gls_base_dir}views/js/gls.js'></script>
{/if}
<script type="text/javascript">
var PS_GLS_ACCOUNT_SET = {if $GLS_account_set}true{else}false{/if};
var _PS_GLS_MODULE_DIR_ = "{$new_gls_base_dir}";
var glstoken = "{$GLS_token}";
</script>

View File

@ -0,0 +1,57 @@
{*
* 2007-2014 Addonline
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License (AFL 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/afl-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.
*
*
* @author Addonline <contact@addonline.fr>
* @copyright 2007-2014 Addonline
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
*}
<script type="text/javascript">
// Global JS Value
var PS_GLSData = {$GLS_Data|@json_encode};
</script>
{*if $GLS_Data.PS_VERSION >= '1.5' && !isset($GLS_Data.carrier)}
{l s='GLS relay can\'t fetch any replay point due to prestashop error' mod='gls'}
{/if*}
<div id="shipping-method-please-wait" style="display:none"></div>
<div id="layer_gls">
<div>
<h3>{l s='Choose Mondial Relay ParcelShop' mod='gls'} </h3><a class="layer_gls_close layer_gls_body_close close"></a>
<div class="contenu">
<div id="gls_headers">
<div class="left">
<span>{l s='Your zipcode' mod='gls'}</span>
<input type="text" data-role="none" id="cp_recherche" value=""/>
<span>{l s='Your street' mod='gls'}</span>
<input type="text" data-role="none" id="cp_street" value=""/>
<span>{l s='Your city' mod='gls'}</span>
<input type="text" data-role="none" id="cp_city" value=""/>
<button data-role="none" id="cp_recherche_bouton" onclick="geocodeGLSAdresse()">{l s='Search' mod='gls'}</button>
</div>
<div class="right">
<label><input data-role="none" type="checkbox" id="sms_checkbox" checked="checked"/>{l s='To receive an sms when delivery is done' mod='gls'}</label>
<input data-role="none" type="text" id="num_telephone" class="valid-telephone-portable"/>
</div>
</div>
<div id="col_gauche_gls">
<div id="map_gls"></div>
</div>
<div id="col_droite_gls"></div>
</div>
</div>
</div>

View File

@ -0,0 +1,36 @@
{*
* 2007-2014 Addonline
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License (AFL 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/afl-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.
*
*
* @author Addonline <contact@addonline.fr>
* @copyright 2007-2014 Addonline
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
*}
<script type="text/javascript">
// Global JS Value
var PS_GLSData = {$GLS_Data};
// literal for smarty v2 compatibility
$(document).ready(function() {literal}{{/literal}
PS_GLSObject.initFront();
{literal}}{/literal});
</script>
{*if $GLS_Data.PS_VERSION >= '1.5' && !$GLS_Data.carrier}
{l s='GLS relay can\'t fetch any replay point due to prestashop error' mod='gls'}
{/if*}
<div id="shipping-method-please-wait">Les détails du compte GLS ne sont pas remplis</div>

View File

@ -0,0 +1,144 @@
{*
* 2007-2014 Addonline
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License (AFL 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/afl-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.
*
*
* @author Addonline <contact@addonline.fr>
* @copyright 2007-2014 Addonline
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
*}
<script type="text/javascript">
var PS_GLS_SELECTED_TAB = 'account_form';
</script>
<h2>{l s='GLS Configuration' mod='gls'}</h2>
{include file="$GLS_local_path/views/templates/admin/post_action.tpl"}
{if !$GLS_account_set}
<div id="GLS_error_account" class="GLS_error">
{l s='Please set your GLS account settings' mod='gls'}
</div>
{/if}
{*
** General information
*}
<div id="GLS_info_form_block" class="PS_GLSFormType">
<div class="GLS_warn">
<a style="color:#383838;text-decoration:underline" href="index.php?tab=AdminPerformance&token={$GLS_token_admin_performance}">
{l s='Try to turn off the cache and put the force compilation to on' mod='gls'}
</a>
{l s='if you have any problems with the module after an update' mod='gls'}
</div>
<div class="GLS_hint">
{l s='Have a look to the following HOW-TO to help you to configure the GLS module' mod='gls'}
<b>
<a href="{$GLS_base_dir}docs/install.pdf">
<img width="20" src="{$GLS_base_dir}views/img/pdf_icon.jpg" />
</a>
</b>
</div>
<br />
<fieldset>
<legend>
<img src="../modules/gls/views/img/logo.png" />{l s='To create a GLS carrier' mod='gls'}
</legend>
- {l s='Enter and save your GLS account settings' mod='gls'} <br />
- {l s='Go to Shipping > Carriers and activate the GLS Carriers already created by the module' mod='gls'} <br />
- {l s='Manage your price ranges, weight ranges and prices as any prestashop carrier' mod='gls'} <br />
- {l s='URL Cron tache' mod='gls'} {$GLS_CRON_URL}<br />
</fieldset>
</div>
{*
** Account settings form
*}
<div id="GLS_account_form_block" class="PS_GLSFormType">
<form action="{$smarty.server.REQUEST_URI|escape:'htmlall'}" method="post" >
<fieldset>
<legend><img src="../modules/gls/views/img/logo.png" />{l s='GLS Account Settings' mod='gls'}</legend>
<div>
{l s='These parameters are provided by GLS once you subscribed to their service' mod='gls'}
</div>
<ul>
<li>
<label for="GLS_webservice_login" class="glsLabel">{l s='Webservice Login:' mod='gls'}</label>
<input id="GLS_webservice_login" class="glsInput" type="text" name="GLS_webservice_login" value="{$GLS_webservice_login|escape:all}" />
<sup>*</sup>
</li>
<li>
<label for="GLS_webservice_password" class="glsLabel">
{l s='Webservice Password:' mod='gls'}
</label>
<input id="GLS_webservice_password" class="glsInput" type="text" name="GLS_webservice_password" value="{$GLS_webservice_password|escape:all}" />
<sup>*</sup>
</li>
<li>
<label class="conf-label">{l s='Only XL Parcel Shops' mod='gls'} :</label>
{if $GLS_SHD_ONLYXL}
<input type="radio" name="GLS_SHD_ONLYXL" id="active_on" value="1" checked="checked">
{else}
<input type="radio" name="GLS_SHD_ONLYXL" id="active_on" value="1">
{/if}
<label class="t" for="active_on">
<img src="../img/admin/enabled.gif" alt="Activé" title="Activé">
</label>
{if $GLS_SHD_ONLYXL}
<input type="radio" name="GLS_SHD_ONLYXL" id="active_off" value="0">
{else}
<input type="radio" name="GLS_SHD_ONLYXL" id="active_off" value="0" checked="checked">
{/if}
<label class="t" for="active_off">
<img src="../img/admin/disabled.gif" alt="Désactivé" title="Désactivé">
</label>
</li>
{*
<li>
<label for="GLS_weight_coefficient" class="glsLabel">{l s='Weight Coefficient:' mod='gls'}</label>
<input class="glsInput" type="text" name="GLS_weight_coefficient" id="GLS_weight_coefficient" style="width:45px; " value="{$GLS_weight_coefficient|escape:'htmlall'}"/>
<sup>*</sup>
<span class="indication" style="display: inline-block; line-height: 18px; vertical-align: top">{l s='grammes = 1 ' mod='gls'}{$GLS_unit_weight_used}<br />{l s='The total package weight is evaluated from products weight with this coefficient, the default billing method will be set according to this weight.' mod='gls'}</span>
</li>
*}
<li>
<label for="GLS_export_folder" class="glsLabel">{l s='Export folder:' mod='gls'}</label>
<input class="glsInput" type="text" name="GLS_export_folder" id="GLS_export_folder" style="width:150px; " value="{$GLS_export_folder}"/>
</li>
<li>
<label for="GLS_import_folder" class="glsLabel">{l s='Import folder:' mod='gls'}</label>
<input class="glsInput" type="text" name="GLS_import_folder" id="GLS_import_folder" style="width:150px; " value="{$GLS_import_folder}"/>
</li>
<li>
<label for="GLS_zone_configuration" class="glsLabel">{l s='Create delivery zone:' mod='gls'}</label>
<input class="glsInput" type="checkbox" name="GLS_zone_configuration" id="GLS_zone_configuration" {if $GLS_zone_configuration}checked="checked"{/if}/>
<p class="gls_legend">{l s='create zone legend' mod='gls'}</p>
</li>
<li>
<label for="GLS_express_delivery_agency" class="glsLabel">{l s='Express delivery agency:' mod='gls'}</label>
<input class="glsInput" type="text" name="GLS_express_delivery_agency" id="GLS_express_delivery_agency" style="width:150px; " value="{$GLS_express_delivery_agency}"/>
<p class="gls_legend">{l s='Express delivery agency' mod='gls'}</p>
</li>
<li class="PS_GLSSubmit">
<input type="submit" name="submit_account_detail" value="{l s='Update Settings' mod='gls'}" class="button" />
</li>
</ul>
<div class="small"><sup>*</sup>{l s='Required fields' mod='gls'}</div>
</fieldset>
<input type="hidden" name="GLS_tab_name" value="account_form" />
</form>
</div>

View File

@ -0,0 +1,48 @@
{*
* 2007-2014 Addonline
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License (AFL 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/afl-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.
*
*
* @author Addonline <contact@addonline.fr>
* @copyright 2007-2014 Addonline
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
*}
{* TODO : Delete these deprecated lines
<link href="{$new_gls_base_dir}css/style.css" rel="stylesheet" type="text/css" media="all" />
<link href="{$new_gls_base_dir}css/gls-mobile.css" rel="stylesheet" type="text/css" media="all" />
*}
<script type="text/javascript">
// Global JS Value
var _PS_GLS_MODULE_DIR_ = "{$new_gls_base_dir}";
var glstoken = "{$GLSToken}";
var PS_GLSOPC = {$one_page_checkout};
var PS_GLSTranslationList = [];
var PS_GLSCarrierMethodList = [];
var PS_GLSSelectedRelayPoint = {literal}{{/literal}'carrier_id': 0, 'relayPointNum': 0{literal}}{/literal};
var PS_GLSWarningMessage = "{$warning_message}";
var PS_GLSWarningNoRelay = "{l s='You need to select a dropp-off point before going to the next step.' mod='gls'}";
PS_GLSTranslationList['Select'] = "{l s='Select' mod='gls'}";
PS_GLSTranslationList['Selected'] = "{l s='Selected' mod='gls'}";
PS_GLSTranslationList['errorSelection'] = "{l s='Please choose a relay point' mod='gls'}";
PS_GLSTranslationList['openingRelay'] = "{l s='Opening hours' mod='gls'}";
PS_GLSTranslationList['moreDetails'] = "{l s='More details' mod='gls'}";
</script>
{* TODO : Delete these deprecated lines
<script type="text/javascript" src="{$new_gls_base_dir}js/jquery.popupoverlay.js"></script>
<script type="text/javascript" src="https://maps.google.com/maps/api/js?sensor=false&v=3"></script>
<script type="text/javascript" src="{$new_gls_base_dir}js/glsFront.js"></script>
<script type="text/javascript" src="{$new_gls_base_dir}translations/translate_{$lang_iso}.js"></script>
*}

View File

@ -0,0 +1,38 @@
{*
* 2007-2014 Addonline
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License (AFL 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/afl-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.
*
*
* @author Addonline <contact@addonline.fr>
* @copyright 2007-2014 Addonline
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
*}
<script type="text/javascript">
// Global JS Value
var _PS_GLS_MODULE_DIR_ = "{$new_gls_base_dir}";
var glstoken = "{$GLSToken}";
var PS_GLSOPC = {$one_page_checkout};
var PS_GLSTranslationList = [];
var PS_GLSCarrierMethodList = [];
var PS_GLSSelectedRelayPoint = {literal}{{/literal}'carrier_id': 0, 'relayPointNum': 0{literal}}{/literal};
var PS_GLSWarningMessage = "{$warning_message}";
var PS_GLSWarningNoRelay = "{l s='You need to select a dropp-off point before going to the next step.' mod='gls'}";
PS_GLSTranslationList['Select'] = "{l s='Select' mod='gls'}";
PS_GLSTranslationList['Selected'] = "{l s='Selected' mod='gls'}";
PS_GLSTranslationList['errorSelection'] = "{l s='Please choose a relay point' mod='gls'}";
PS_GLSTranslationList['openingRelay'] = "{l s='Opening hours' mod='gls'}";
PS_GLSTranslationList['moreDetails'] = "{l s='More details' mod='gls'}";
</script>

View File

@ -0,0 +1,28 @@
<?php
/*
* 2007-2014 Addonline
*
* 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.
*
* @author Addonline <contact@addonline.fr>
* @copyright 2007-2014 Addonline
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
*/
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,47 @@
{assign var='count' value=0}
{if $GLS_error}
{if $GLS_error == 502}
<span class="gls_ws_error">Login ou mot de passe GLS invalide</span>
{/if}
{if $GLS_error == 999}
<span class="gls_ws_error">Aucun Point Relais trouvé</span>
{/if}
{if $GLS_error == 9999}
<span class="gls_ws_error">Les Webservices de GLS ne sont pas accessibles.<br/>Veuillez essayer plus tard ou choisir un autre mode de livraison</span>
{/if}
{else}
{foreach from=$GLS_relais item=GLSrelais}
<div class="gls_point_relay" id="gls_point_relay_{$count}">
<span class="GLS_relay_index">{$count}</span>
<span class="GLS_relay_id">{$GLSrelais->Parcelshop->ParcelShopId}</span>
<span class="GLS_relay_name">{$GLSrelais->Parcelshop->Address->Name1}{$GLSrelais->Parcelshop->Address->Name2}{$GLSrelais->Parcelshop->Address->Name3}</span>
<span class="GLS_relay_address">{$GLSrelais->Parcelshop->Address->Street1}{$GLSrelais->Parcelshop->Address->Street2}</span>
<span class="GLS_relay_zipcode">{$GLSrelais->Parcelshop->Address->ZipCode}</span>
<span class="GLS_relay_city">{$GLSrelais->Parcelshop->Address->City}</span>
<span class="GLS_relay_latitude">{$GLSrelais->Parcelshop->GLSCoordinates->Latitude}</span>
<span class="GLS_relay_longitude">{$GLSrelais->Parcelshop->GLSCoordinates->Longitude}</span>
<div>
<span class="GLS_relay_horaires">{l s='Opening hours' mod='gls'}</span>
<a href="#" class='choose-relay-point' data-relayindex={$count}>{l s='Choose this ParcelShop' mod='gls'}</a>
</div>
<span class="GLS_relay_hours">
<table cellpadding="0" cellspacing="0">
{foreach from=$GLSrelais->Parcelshop->GLSWorkingDay key="day" item="workingDay"}
<tr>
<td class="day">{l s=$aCalendarDays[$day] mod='gls'}</td>
{assign var='hours' value=0}
{if $workingDay->Breaks->Hours->From != ''}
<td>{$workingDay->OpeningHours->Hours->From|substr:0:2}h{$workingDay->OpeningHours->Hours->From|substr:2:2} - {$workingDay->Breaks->Hours->From|substr:0:2}h{$workingDay->Breaks->Hours->From|substr:2:2} / {$workingDay->Breaks->Hours->To|substr:0:2}h{$workingDay->Breaks->Hours->To|substr:2:2} - {$workingDay->OpeningHours->Hours->To|substr:0:2}h{$workingDay->OpeningHours->Hours->To|substr:2:2}</td>
{else}
<td>{$workingDay->OpeningHours->Hours->From|substr:0:2}h{$workingDay->OpeningHours->Hours->From|substr:2:2} - {$workingDay->OpeningHours->Hours->To|substr:0:2}h{$workingDay->OpeningHours->Hours->To|substr:2:2}</td>
{/if}
</tr>
{/foreach}
</table>
</span>
</div>
<span style="display:none;">{$count++}</span>
{/foreach}
{/if}

View File

@ -0,0 +1,28 @@
<?php
/*
* 2007-2014 Addonline
*
* 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.
*
* @author Addonline <contact@addonline.fr>
* @copyright 2007-2014 Addonline
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
*/
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: 112 KiB

View File

@ -0,0 +1,136 @@
<?php
/**
* AdminOrderTaxProfitReport.php file defines admin tab class of module
*/
if (!defined('_PS_VERSION_')) {
exit(1);
}
class AdminOrderTaxProfitReport extends AdminTab
{
/**
* @var int $iCurrentLang : store id of default lang
*/
public static $iCurrentLang = null;
/**
* @var string $sBASE_URI : base of URI in prestashop
*/
public static $sBASE_URI = null;
/**
* @var string $multishop_context_group : store context group
*/
public $multishop_context_group = null;
/**
* @var string $multishop_context : store context
*/
public $multishop_context = null;
/**
* Magic Method __construct assigns few information about module and instantiate parent class
*/
public function __construct()
{
// hack for older version than 1 4 5 1
if (version_compare(_PS_VERSION_, '1.4.5.1') == -1) {
require_once(_PS_MODULE_DIR_ . 'ordertaxprofitreport/conf/common.conf.php');
}
else {
require_once(dirname(__FILE__) . '/conf/common.conf.php');
}
// use case - get link context
if (version_compare(_PS_VERSION_, '1.5', '>')) {
$cookie = Context::getContext()->cookie;
}
else {
global $cookie;
}
global $currentIndex;
// get default lang
self::$iCurrentLang = $cookie->id_lang;
// set module name
$this->module = _OTPR_MODULE_SET_NAME;
// Fix for translations before v1.4
if (version_compare(_PS_VERSION_, '1.4.0.1') == -1) {
global $_LANGADM, $_MODULE;
// set lang filename
$sLangFile = _PS_MODULE_DIR_ . $this->module . '/' . Language::getIsoById(self::$iCurrentLang) . '.php';
// check lang file exists
if (file_exists($sLangFile)) {
// include php lang file
require_once $sLangFile;
foreach ($_MODULE as $nKey => $sValue) {
if (Tools::substr(strip_tags($nKey), 0, 5) == 'Admin') {
$_LANGADM[str_replace('_', '', strip_tags($nKey))] = $sValue;
}
}
}
}
// construct
parent::__construct();
self::$sBASE_URI = $currentIndex;
}
/**
* display() method manages all data in Back Office of admin tab
*
* @return string
*/
public function display()
{
// include main class
require_once(_OTPR_PATH_ROOT . 'ordertaxprofitreport.php');
// instantiate
$oMainClass = new OrderTaxProfitReport();
// use case - display => search form / export => return HTML report or a downloadable CVS report
$_REQUEST['sAction'] = (!Tools::getIsset('sAction') || (Tools::getIsset('sAction') && 'display' == Tools::getValue('sAction')))? 'display' : Tools::getValue('sAction');
$_REQUEST['sType'] = !Tools::getIsset('sType')? 'searchForm' : $_REQUEST['sType'];
// set URI of admin tab
$_REQUEST['sAdminTabURI'] = self::$sBASE_URI;
echo (
$oMainClass->getContent()
);
}
/**
* addCSS() method return always true because some other modules are hooked on adminBackofficeHeader and call addCSS() method. This method doesn't exist in the Admin context tab.
* This prevent those modules do not execute functions which do not exists
*
* @return bool true
*/
public function addCSS()
{
// return true
return true;
}
/**
* addJS() method return always true because some other modules are hooked on adminBackofficeHeader and call addJS() method. This method doesn't exist in the Admin context tab.
* This prevents those modules do not execute functions which doesn't exists
*
* @return bool true
*/
public function addJS()
{
// return true
return true;
}
}

View File

@ -0,0 +1,227 @@
Order Tax Profit Report
http://www.businesstech.fr/en/contact-us
Change history for "Order Tax Profit Report"
---------------------------------------
Version 2.9.1 (09/02/2016)
- Updated API URL
- Updated for validator
Version 2.9.0 (23/11/2015)
- Update to manage the margin when a discount amount of 100% is applied
- Bug fix for PS 1.3 with total_products_no_tax
- Add calculation details
Version 2.8.4 (13/04/2015)
- Update getOrdersDetail() and getOrderDetailIds() for shop without product attribute
Version 2.8.3
- make the module compatible with some stantards of PrestaShop Addons (validator)
- Bug fix for product_price column when a group reduction and a specific price are applied at the same time. PS calculate the product unit price tax excluded from specific price first and apply the group reduction after.
- Bug fix for product quantity in product report, for product with more one supplier.
Version 2.8.2
- Bug fix for wholesale_price populate
- Update getOrdersDetail() function
Version 2.8.1
- Small bug fix for populate wholesale_price in module installation.
Version 2.8.0
- Added better management for wholesale_price
Version 2.7.1 (01/10/2014)
- Update to respect validator
Version 2.7.1 (01/10/2014)
- Small bug fix for french translations
- Small bug fix for "order by" missing in getOrderDetails() function. In some cases, the order by is not well-done by Mysql and order's details were truncated and mismatched the wrapping order ID.
Version 2.7.0 (05/06/2014)
- Make the module compatible PS 1.6
- Added new layout look like PS 1.6
- Added type of filter at the top of report with range of date or number
Version 2.6.3 (25/02/2014)
- Small bug fix for Ecotax addition to the total tax, it is included by default in price with tax and the same for Tax amount. We have removed ecotax addition to the total.
- Small bug fix for Order slip made only on shipping amount in order to add properly by testing if key exists and not with isset() function. Because PrestaShop returns NULL as value when there is no order slip made for product tax Excl.
Version 2.6.2 (18/02/2014)
- Small bug fix for SQL function name in module-dao class. it made an issue around MySql update during installation.
Version 2.6.1 (07/01/2014)
- Added order date filter
- changed the way to insert data into their own ables around Shipping and wrapping tax, loop on MySql resource in order to perform SQl INSERT
- Changes MySql query on tax table to matching with inactive tax too.
Version 2.6.0 (27/11/2013)
- Added filter on multiple countries + display EAN and UPC code for product report
- Small bug fix for encoded string. String was UTF-8 decode twice and display ? characters with CSV output.
Version 2.5.4 (25/11/2013)
- Added Spanish and Italian translations
Version 2.5.3 (09/09/2013)
- small fix bug on default text when manufacturers, categories and products have been removed from the back-office. The text was displayd with HTML tags and the csv export didn't work in this case, all columns were shifted.
Version 2.5.2 (05/09/2013)
- Fix on total product tax excluded calculated with rounding on 2 digits by Prestashop in ps_orders table. Make a wrong rounding on total product tax excl. and net and gross margin.
Version 2.5.1 (20/08/2013)
- Fix on tax rate columns for when tax is disabled altogether on the shop
Version 2.5.0 (22/07/2013)
- Add credit slip feature
- Added number formatting options in module configuration
- change rounding behavior in entire calculation process, accurate rounding made in last calculation
- Fix on gross profit calculation with group reductions for versions 1.3.2.3 to 1.4.11
- allow float number formatting with a ',' or '.'
- Fix in /templates/admin/tab/form.tpl (added {literal} otherwise it crashes on 1.2 / 1.3)
- Fix in /lib/module-dao_class.php => getCustomerGroup: there is no id_default_group in customer table on 1.2. Just use Group::getGroups() instead. Deleted getCustomerGroup() in DAO.
Version 2.4.0 (22/04/2013):
- change all layout of the module, default PS 1.5 layout has been included
- add preferences feature on displayed filters
- bug fix for reduction group which is already included in sale price => subtracted twice
- bug fix for total product tax, a subtraction of a negative value was made, we are using the absolute value now
- bug fix for discount distribution on each product of order, only made individually, quantity of each product has not taken into account
Version 2.3.2 (22/04/2013):
- Fix on shipping amount and shipping tax on versions 1.2 / 1.3 when there is no tax assigned to carrier
Version 2.3.1 (28/03/2013):
- Fix on shipping tax for versions 1.2 / 1.3
- Fix on ecotax for versions 1.2 / 1.3
Version 2.2.6 (27/03/2013):
- Fix on extra space in product total quantity column in CSV mode
Version 2.2.5 (26/03/2013):
- Fix on ecotax (forgot to multiply by product quantity)
Version 2.2.4 (20/03/2013):
- In product reports when choosing breakdown by attribute combination, fix to correctly return reference and supplier_reference on products without combinations
Version 2.2.3 (19/03/2013):
-Small fix on ecotax for version 1.4
Version 2.2.2 (18/03/2013):
-Small formating fix on ecotax no tax column
Version 2.2.1 (14/03/2013):
- Added carrier and payment method in Full report
- Replaced ob_clean() with @ob_end_clean
- Added 2 Ecotax columns (HT and VAT) in all reports
- Added images option on product reports
- Added customer / CRM reports
- Fixed display issue where suffix (currency or %) was not appended to numbers when amount was 0
Version 2.1.1 (24/01/2013):
- small bug fix on product unit price for Tax calculation and displaying product report
- small change fix for displaying supplier reference when combination are displayed in product report
Version 2.0.7 (22/01/2013):
- small bug fix on wrapping tax calculation, reverse wrapping tax excl and wrapping tax incl for populate wrapping order table from orders detail
- small bug fix on checking module upgrade condition
Version 2.0.6 (10/01/2013):
- small bug fix on wrapping tax calculation, forgot SUM function in MySql
Version 2.0.5 (10/01/2013):
- small bug fix on discount tax calculation
Version 2.0.4 (09/01/2013):
- bug fix on orders detail for wrapping
- bug fix on calculation of total tax
Version 2.0.3 (07/01/2013):
- Small bug fix on version_compare for 1.5 on datepicker.css inclusion
Version 2.0.2 (07/01/2013):
- fix supplier reference on product report, wrong copy paste
- Consequence : display product reference twice instead of supplier reference.
- fix supplier translation on export form with product report
- consequence : display supplier instead of manufacturers
Version 2.0.1 (17/12/2012):
- Updates to make the module with version 1.5 and multi-shop
- Add tables for taking account of discount and wrapping on vouchers, it makes a more accurately report by including profit and VAT amount on it
Version 1.1.4 (05/10/2012):
- Change checking number version for under 1.3 version
- Consequence : wrong databases fields applied for under 1.3.0.1 version as new level is 1.3.2.3
Version 1.1.3 (17/09/2012):
- Move conversion rate to calculation of gross profit with product price and not with product price - whole sale price. Made for all prestashop versions.
- Consequence : applied on sum of product price - wholesale price as well as on product report is was only applied on product price and not on wholesale price
- detect report's type for combination option
- Consequence : user experience was in trouble when you display product report with combination and after you display order report. Combination was still activated and made a group by attribute id.
Version 1.1.2 (13/09/2012):
- Delete product attribute name column + join on tables with product combination and lang + delete conversion rate in total cost for order reports
- Consequence : duplicate result's lines with product attribute name (quantity *2 for combination with multiple attributes + calculation of total cost was wrong with conversion rate
Version 1.1.1 (30/08/2012):
- Modified column order and included columns on some reports
Version 1.1.0 (13/08/2012):
- fix bug : net margin calculation + gross margin + product gross margin, add multi currencies / handle discounted sell product price , add Fancybox for HTML report, add country filter, add group by product attribute, add % of total sales and profit for brands, suppliers and categories
Version 1.0.2 (25/06/2012):
- fix bug : modify templates in search form
Version 1.0.1 (10/05/2012):
- Original release

View File

@ -0,0 +1,119 @@
<?php
/**
* admin.conf.php file defines all needed constants and variables for admin context
*/
/* include common conf */
require_once('common.conf.php');
/* defines admin library path
* uses => to include class files
*/
define('_OTPR_PATH_LIB_ADMIN', _OTPR_PATH_LIB . 'admin/');
/* defines admin path tpl
* uses => to set good relative path
*/
define('_OTPR_TPL_ADMIN_PATH', 'admin/');
/* defines header tpl
* uses => with display admin interface
*/
define('_OTPR_TPL_HEADER', 'header.tpl');
/* defines confirm tpl
* uses => with display admin interface
*/
define('_OTPR_TPL_CONFIRM', 'confirm.tpl');
/* defines basic settings tpl
* uses => with display admin interface
*/
define('_OTPR_TPL_SETTINGS', 'basic-settings.tpl');
/* defines module update tpl
* uses => with display admin interface
*/
define('_OTPR_TPL_MODULE_UPDATE', 'module-update.tpl');
/* defines registered orders tpl
* uses => with display admin interface
*/
define('_OTPR_TPL_REGISTER_ORDERS', 'register-orders.tpl');
/* defines multi shop config tpl
* uses => with display admin interface
*/
define('_OTPR_TPL_MULTI_SHOP', 'multi-shop-config.tpl');
/* defines admin tab path tpl
* uses => to set good relative path
*/
define('_OTPR_TPL_ADMIN_TAB_PATH', _OTPR_TPL_ADMIN_PATH . 'tab/');
/* defines form tpl
* uses => with display admin interface
*/
define('_OTPR_TPL_FORM', _OTPR_TPL_ADMIN_TAB_PATH . 'form.tpl');
/* defines html report tpl
* uses => with display admin interface
*/
define('_OTPR_TPL_REPORT_HTML', _OTPR_TPL_ADMIN_TAB_PATH . 'report-html.tpl');
/* defines csv report tpl
* uses => with display admin interface
*/
define('_OTPR_TPL_REPORT_CSV', _OTPR_TPL_ADMIN_TAB_PATH . 'report-csv.tpl');
/* defines voucher's update sql file
* uses => only with DB update action
*/
define('_OTPR_UPDATE_SQL_FILE', 'update.sql');
/* defines constant to use or not js on submit action
* uses => only in debug mode - test checking control on server side
*/
define('_OTPR_USE_JS', true);
/* defines constant to use temporary file
* uses => with display admin interface
*/
define('_OTPR_UPLOAD_REPORT_FILE', 'report');
/* defines constant for external BT API URL
* uses => with display admin interface
*/
define('_OTPR_BT_API_MAIN_URL', 'https://api.businesstech.fr:441/prestashop-modules/');
/* defines constant for external BT API URL
* uses => with display admin interface
*/
define('_OTPR_BT_FAQ_MAIN_URL', 'http://faq.businesstech.fr/');
/* defines variable for translating js msg
* uses => with admin interface - declare all displayed error messages
*/
$GLOBALS[_OTPR_MODULE_NAME . '_JS_MSG'] = array();
/* defines variable for date type used in export
* uses => with admin interface, see translation in module-tools_class.php
*/
$GLOBALS[_OTPR_MODULE_NAME . '_DATE_TYPE'] = array('invoice' => '', 'delivery' => '', 'credit' => '', 'order' => '');
/* defines variable for export type
* uses => with admin interface
*/
$GLOBALS[_OTPR_MODULE_NAME . '_EXPORT_TYPE'] = array('html', 'csv');
/* defines variable for sql update
* uses => with admin
*/
$GLOBALS[_OTPR_MODULE_NAME . '_SQL_UPDATE'] = array(
'table' => array(
'wholesale_price' => _OTPR_UPDATE_SQL_FILE,
),
// 'field' => array(
// 'VCHR_ID' => array('table' => 'voucher', 'file' => _GSR_VOUCHER_SQL_FILE),
// )
);

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,22 @@
<?php
/**
* hook.conf.php file defines all needed constants and variables for hook context
*/
/* include common conf */
require_once(dirname(__FILE__) . '/common.conf.php');
/* defines hook library path
* uses => to include class files
*/
define('_OTPR_PATH_LIB_HOOK', _OTPR_PATH_LIB . 'hook/');
/* defines hook tpl path
* uses => to set good absolute path
*/
define('_OTPR_TPL_HOOK_PATH', 'hook/');
/* defines order validation tpl
* uses => to use in hook order validation
*/
define('_OTPR_TPL_ORDER_VALIDATION', 'order-validation.tpl');

View File

@ -0,0 +1,35 @@
<?php
/*
* 2007-2015 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License (AFL 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/afl-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-2015 PrestaShop SA
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 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;

View File

@ -0,0 +1,37 @@
<?php
/**
* install.conf.php file defines all needed constants and variables used in installation of module
*/
/* include common conf */
require_once('common.conf.php');
/* defines install library path
* uses => to include class files
*/
define('_OTPR_PATH_LIB_INSTALL', _OTPR_PATH_LIB . 'install/');
/* defines installation sql file
* uses => only with DB install action
*/
define('_OTPR_INSTALL_SQL_FILE', 'install.sql');
/* defines uninstallation sql file
* uses => only with DB uninstall action
*/
define('_OTPR_UNINSTALL_SQL_FILE', 'uninstall.sql');
/* defines constant for plug SQL install/uninstall debug
* uses set "true" only in debug mode - exceeds install sql execution
*/
define('_OTPR_LOG_JAM_SQL', false);
/* defines constant for plug CONFIG install/uninstall debug
* uses set "true" only in debug mode - exceeds uninstall sql execution
*/
define('_OTPR_LOG_JAM_CONFIG', false);
/* defines constant for plug Admin Tab install/uninstall debug
* uses set "true" only in debug mode - exceeds uninstall admin tab execution
*/
define('_OTPR_LOG_JAM_TAB', false);

View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8" ?>
<module>
<name>ordertaxprofitreport</name>
<displayName><![CDATA[Order, Tax and Profit Report]]></displayName>
<version><![CDATA[2.9.1]]></version>
<description><![CDATA[Configure and export your "Order, Tax and Profit Report"]]></description>
<author><![CDATA[Business Tech]]></author>
<tab><![CDATA[billing_invoicing]]></tab>
<confirmUninstall>Etes-vous sûr de vouloir le supprimer? Votre rapport Commandes, TVA et Bénéfices ne fonctionnera plus</confirmUninstall>
<is_configurable>1</is_configurable>
<need_instance>1</need_instance>
<limited_countries></limited_countries>
</module>

View File

@ -0,0 +1,6 @@
<?php
global $_MODULE;
$_MODULE = array();
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_ea067eb37801c5aab1a1c685eb97d601'] = 'Total paid with tax';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_f844c20c041eb15e94c27891be644918'] = 'Total really paid with tax';

View File

@ -0,0 +1,235 @@
<?php
global $_MODULE;
$_MODULE = array();
$_MODULE['<{ordertaxprofitreport}prestashop>ordertaxprofitreport_5baef7a978f870358032f9d757de0691'] = 'Informe Pedidos, IVA y Beneficios';
$_MODULE['<{ordertaxprofitreport}prestashop>ordertaxprofitreport_d3a25b47e9eef1c22792ee5a65224c40'] = 'Configure y exporte su informe de Pedidos, IVA y Beneficios';
$_MODULE['<{ordertaxprofitreport}prestashop>ordertaxprofitreport_2d97d5bf5df9e35b7cab65e1ad5b0b28'] = '¿Está seguro de querer suprimirlo? Su informe de Pedidos, IVA y beneficios dejará de funcionar';
$_MODULE['<{ordertaxprofitreport}prestashop>ordertaxprofitreport_9c9ab624360885fcf93b7643c93b6748'] = 'creciente';
$_MODULE['<{ordertaxprofitreport}prestashop>ordertaxprofitreport_b19e9805fd7727c52ca04dfa3d24a2e5'] = 'decreciente';
$_MODULE['<{ordertaxprofitreport}prestashop>ordertaxprofitreport_c7247e0f47d955963f1dfdccca16b30d'] = 'actualización de la plantilla';
$_MODULE['<{ordertaxprofitreport}prestashop>ordertaxprofitreport_ed73f6b46391b95e1d03c6818a73b8b9'] = 'ko';
$_MODULE['<{ordertaxprofitreport}prestashop>ordertaxprofitreport_ea38438926bba03c7df2af1e6d75c511'] = 'registro de los hooks KO';
$_MODULE['<{ordertaxprofitreport}prestashop>ordertaxprofitreport_a181a603769c1f98ad927e7367c7aa51'] = 'todos';
$_MODULE['<{ordertaxprofitreport}prestashop>module-dao_class_c61ab4204f572e9b3aa84a040e0dab31'] = 'Ver productos';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_5370b50f5788232a579e5c3429fb18ee'] = 'Fecha de añadido del pedido';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_b216d0c9d30c5296511580555b3058a7'] = 'Fecha de actualización del pedido';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_409392495c695c6cfbf64783753b815a'] = 'Fecha de entrega del pedido';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_def4a99ed5f227665c8d570d6b72890b'] = 'Fecha de facturación del pedido';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_9127fe218b2cac7f0c8aecd7016a891d'] = 'Nombre de la tienda';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_d79cf3f429596f77db95c65074663a54'] = 'ID del pedido';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_8ae4286d38bb2235def98fd68d7420d2'] = 'Número de factura';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_19f2f692c96d2aff892bad71b80521e9'] = 'Número de entrega';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_914419aa32f04011357d3b604a86d7eb'] = 'Transportista';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_f0aaaae189e9c7711931a65ffcd22543'] = 'Método de pago';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_d02bbc3cb147c272b0445ac5ca7d1a36'] = 'Estatus del pedido';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_ea067eb37801c5aab1a1c685eb97d601'] = 'Total pagado (impuestos incluidos)';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_f844c20c041eb15e94c27891be644918'] = 'Total realmente pagado (impuestos incluidos)';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_8047bd57bbed2e8ea0a7c67931a703fd'] = 'Total productos (sin impuestos)';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_f147c0b57bb034a0b18d375a00caada5'] = 'Incluyendo Ecotasa Impuesto Excl.';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_6937770a9ed6e75bb990a566096493cf'] = 'Incluyendo cantidad de impuestos Ecotasa';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_ec2c244b1ff797b2ced33cccb55d3e42'] = 'Total gastos de envío (sin impuestos)';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_22b5e30f8660c693620a131a463a7a69'] = 'IVA gastos de envío';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_65b2eb8951e9008b9594b2c7444bc9cb'] = 'Total IVA recaudado';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_7d3f36bdfd25c41280b422cc90697291'] = 'Total descuentos (sin impuestos)';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_bd96af035f2858f0b37d2328b3735ed5'] = 'IVA descuentos';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_6f43f5151eb6cb7eca1ea079d8b81340'] = 'Total embalaje (sin impuestos)';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_5fbe938fb1f859affb8da34f2b175f3a'] = 'IVA embalaje';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_e59097d27bdaaa2987aaaf8100fa91c2'] = 'IVA productos';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_3cf600f753fc673c1e57c0f3c807f4d7'] = 'Total precio de coste';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_3601146c4e948c32b6424d2c0a7f0118'] = 'Precio';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_7f117379ebd5c7a5e478742b111ad9ee'] = 'Utilidad Bruta Antes Descuentos.';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_52f838a581b8e87c094fa0765218ecfb'] = 'Beneficios netos (sin impuestos)';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_c7083f41f6132cf5132b3354d1383147'] = 'Margen Bruto Antes de Descuentos.';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_d786c466e41374f63f00875156696e0f'] = 'Margen neto (sin impuestos)';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_97f08a40f22a625d0cbfe03db3349108'] = 'ID Producto';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_be53a0541a6d36f6ecb879fa2c584b08'] = 'Foto';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_b9aefa40a54680bb258f9f9569290fae'] = 'Nombre del producto';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_75ed578ac3cb02b0ba40002a25bc0403'] = 'Referencia producto';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_8284ae5df53e6e7ffc1f2cc67ae68765'] = 'Referencia proveedor';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_5bb375030580afe70139b30663173cb8'] = 'Referencia EAN13';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_dc459b2c746f3805dee7eaa42695aa50'] = 'Referencia UPC';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_82af5acf70292f0a0e81063ef38f6724'] = 'El producto ha sido suprimido, ninguna información disponible';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_024f2ba49b4c1e30f90b7a04fc1b35a3'] = 'Total Cantidad';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_48f0cbaa50487ac274da786ae8383d36'] = 'Precio Unitario Medio';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_20a34c4e30c5bbe1d3f870ac55f0d831'] = 'Tasa IVA';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_f6b38fb0febd3c1178071b735a3330d0'] = 'Total producto (sin impuestos)';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_347a231da3bd5e326e73e103abdd1673'] = 'IVA neto (producto - reducción)';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_2bd92e2d3c1b16e032b23e040471b1b1'] = 'Beneficios brutos';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_921f6830401e5cd1e59240594d2e9bec'] = 'Margen bruto (sin impuestos)';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_43d729c7b81bfa5fc10e756660d877d1'] = 'Beneficios netos';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_58da2fff8dfce588a8fdd4d42c1f682f'] = 'Margen neto (sin impuestos)';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_60fe0c4da1f0775cbae4ed3a596febdc'] = '% del total de ventas';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_6f689f49f6945238d7d81c9d1ef1b67e'] = '% del total de beneficios brutos';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_fb3329a037ec126ff3eb59422b82ac72'] = '% del total de beneficios netos';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_bb77e12461293768706c1ced4cb2354c'] = 'Acumulativo % del total de ventas';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_e805fa6e3a9108f33ce8390327b4a737'] = 'Acumulativo % del total de beneficios brutos';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_c6df81ee565a2a9a5f36288167d4be47'] = 'Acumulativo % del total de beneficios netos';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_ad4c7beed61601926b2b2bdfd138f772'] = 'Nombre del fabricante';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_416000ae4bd8e9942103c9cfd4e985f1'] = 'El fabricante ha sido suprimido, ninguna información disponible';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_a40dd44b49ccaa9c22aef96442cadd98'] = 'ID Fabricante';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_bb34a159a88035cce7ef1607e7907f8f'] = 'Nombre categoría';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_ec97ed38e53de96ab38a1e65c2de25f8'] = 'La categoría ha sido suprimida, ninguna información disponible';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_f9edc7482d3eff492319e6c033e9cf55'] = 'ID Categoría';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_6848cd52e0f00104097433f402168ad5'] = 'Nombre proveedor';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_7da2f8619de74aa4fa95052ad16a3243'] = 'El proveedor ha sido suprimido, ninguna información disponible';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_7fd6956c0f477599c3c963b36458cf12'] = 'ID Proveedor';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_ce8ae9da5b7cd6c3df2929543a9af92d'] = 'E-mail';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_aac772216aecbeca0e86d06671fe985a'] = 'Fecha de cumpleaños';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_8d3f5eff9c40ee315d452392bed5309b'] = 'Apellido';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_20db0bfeecd8fe60533206a2b5e9891a'] = 'Nombre';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_4bcd49c5567bd26de52b583562de4483'] = 'Fecha de añadido del cliente';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_4df4b43c0596fd33084382db7ada41a1'] = 'Fecha de actualización del cliente';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_1c76cbfe21c6f44c1d1e59d54f3e4420'] = 'Empresa';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_956205f0d2c8352f3d92aa3438f1b646'] = 'Dirección 1';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_2e21e83375deefc4a3620ab667157e27'] = 'Dirección 2';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_8bcdc441379cbf584638b0589a3f9adb'] = 'Código postal';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_57d056ed0984166336b7879c2af3657f'] = 'Ciudad';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_bcc254b55c4a1babdf1dcb82c207506b'] = 'Teléfono';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_59716c97497eb9694541f7c3d37b1a4d'] = 'País';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_64500d3e065dad68345d63e37a182bb8'] = 'Primer pedido';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_d37c2bf1bd3143847fca087b354f920e'] = 'ID cliente';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_d957e2652355299cb367c4b7e07d9141'] = 'Último pedido';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_e435e1597b793d65c3300af5049c2d2f'] = 'Nº de pedidos';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_76ae87f51dcdf009e6537181bb6f30d5'] = 'Nº de productos pedidos';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_8783eff1323cf938b395319173177925'] = 'Cesta media (impuestos incluidos)';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_3295a54e3830a75b4a3097420505d1e7'] = 'Productos pedidos';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_e7e9aee61e6618b7ab8cfff2af334196'] = 'ID Haber';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_8b94d893d4e0b0eb0600b3124f36bd1a'] = 'Fecha Haber';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_a52bea227179ecafe141e9b13318e74d'] = 'Total sin impuestos';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_e86d4d3db54715c430a156cbf82a7812'] = 'Total impuestos incluidos';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_8334df53274fdf53563feb74baf0d2b8'] = 'Total productos sin impuestos - Costo total';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_e58e20045a852787c62ba6a685c58c25'] = 'Total productos sin impuestos - Precio total - Total de descuentos de impuestos Excl.';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_3fbe6a964fbe8dd864a59008e750656e'] = 'Utilidad Bruta Excluido / Total productos sin impuestos x 100';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_639f2aeed02253fdb880732a91d57a52'] = '(Sin IVA Beneficio Neto + Total envolver Impuestos Excl.) / (Total productos sin impuestos -.. Total de descuentos Excluido + envoltura total sin IVA) x 10';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_78463a384a5aa4fad5fa73e2f506ecfc'] = 'Inglés';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_ad225f707802ba118c22987186dd38e8'] = 'Francés';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_a240fa27925a635b08dc28c9e4f9216d'] = 'Pedido';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_065ab3a28ca4f16f55f103adc7d0226f'] = 'Entrega';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_466eadd40b3c10580e3ab4e8061161ce'] = 'Factura';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_8718093cc5771291c51e9d8d75e4e58d'] = 'El número de comienzo de pedido no es un número entero';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_1e9dfec8ceb4225e574fe913cae9e758'] = 'El número de final de pedido no es un número entero';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_60add46717e95760aac89a34a213dc0a'] = 'El número de comienzo de factura no es un número entero';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_e23eae8ab9676935cb3f51bf589de715'] = 'El número de final de factura no es un número entero';
$_MODULE['<{ordertaxprofitreport}prestashop>admin-export_class_4b400cf1a3fd5f760dd8d613ec8f2e0e'] = 'El tipo de plantilla no es válido';
$_MODULE['<{ordertaxprofitreport}prestashop>admin-export_class_8718093cc5771291c51e9d8d75e4e58d'] = 'El número de comienzo de pedido no es un número entero';
$_MODULE['<{ordertaxprofitreport}prestashop>admin-export_class_a240fa27925a635b08dc28c9e4f9216d'] = 'Pedido';
$_MODULE['<{ordertaxprofitreport}prestashop>admin-export_class_1e9dfec8ceb4225e574fe913cae9e758'] = 'El número de final de pedido no es un número entero';
$_MODULE['<{ordertaxprofitreport}prestashop>admin-export_class_60add46717e95760aac89a34a213dc0a'] = 'El número de comienzo de factura no es un número entero';
$_MODULE['<{ordertaxprofitreport}prestashop>admin-export_class_e23eae8ab9676935cb3f51bf589de715'] = 'El número de final de factura no es un número entero';
$_MODULE['<{ordertaxprofitreport}prestashop>admin-export_class_fc00821b8ddd74aa9e882b2c083ff3cf'] = 'El número de comienzo del haber no es un número entero';
$_MODULE['<{ordertaxprofitreport}prestashop>admin-export_class_4a15d2433983408e3ba2307bcaecd7b8'] = 'El número de final del haber no es un número entero';
$_MODULE['<{ordertaxprofitreport}prestashop>admin-export_class_f43e7643b8e9370a80a640ab5d18ddf6'] = 'Ha ocurrido un error durante la actualización del \"estatus de selección\"';
$_MODULE['<{ordertaxprofitreport}prestashop>admin-export_class_65db350a5f3acd5e9cf05d610a394682'] = 'El campo de clasificación seleccionado no es válido';
$_MODULE['<{ordertaxprofitreport}prestashop>admin-export_class_b01102f5284584334270c0c37fcb92d9'] = 'La dirección de clasificación no es válida';
$_MODULE['<{ordertaxprofitreport}prestashop>admin-export_class_eab36e1b95cf7497068aaad4661b98cc'] = 'La lista de categorías no es una tabla';
$_MODULE['<{ordertaxprofitreport}prestashop>admin-export_class_8f461c277e4ab89b7cf566a095db3bc9'] = 'La lista de fabricantes no es una tabla';
$_MODULE['<{ordertaxprofitreport}prestashop>admin-export_class_bea59ae2ad66b2f89114886363763244'] = 'La lista de proveedores no es una tabla';
$_MODULE['<{ordertaxprofitreport}prestashop>admin-export_class_47948dd414948435b0b2b92ba56dfe8a'] = 'La opción de visualización de la versión no es válida';
$_MODULE['<{ordertaxprofitreport}prestashop>admin-export_class_dd8baccde29a3f17d2d6dc4b4a333e98'] = 'La lista de País IDs no es una tabla';
$_MODULE['<{ordertaxprofitreport}prestashop>admin-export_class_851bd9c9a17ef959f2d57421c44a7cb3'] = 'La lista de grupos de cliente no es una tabla';
$_MODULE['<{ordertaxprofitreport}prestashop>admin-export_class_90c336f34c40ca27e9b3d6aadc449056'] = 'Ha ocurrido un error durante la actualización de las \"preferencias\"';
$_MODULE['<{ordertaxprofitreport}prestashop>admin-export_class_87557f11575c0ad78e4e28abedc13b6e'] = 'Fin';
$_MODULE['<{ordertaxprofitreport}prestashop>admin-export_class_a8c6472c3b4672f4101549a5f7fdd5c3'] = 'fecha debe ser mayor que la fecha de comienzo';
$_MODULE['<{ordertaxprofitreport}prestashop>admin-update_class_4b82e5cdd90fbd3a6b000e2b39ce3339'] = 'Ha ocurrido un error durante la actualización de la opción \"encabezamientos y totales\"';
$_MODULE['<{ordertaxprofitreport}prestashop>admin-update_class_faa3a8fa4293e373893043ff3b9417ee'] = 'Ha ocurrido un error durante la actualización de la opción \"Formato de fecha\"';
$_MODULE['<{ordertaxprofitreport}prestashop>admin-update_class_c38069d9e21696961ecb56b215a49d75'] = 'Ha ocurrido un error durante la actualización de la opción \"número de decimales tras la coma\"';
$_MODULE['<{ordertaxprofitreport}prestashop>admin-update_class_208bfc6b716a22e707e80bff7ae21141'] = 'Ha ocurrido un error durante la actualización de la opción \"separador decimal\"';
$_MODULE['<{ordertaxprofitreport}prestashop>admin-update_class_37afe90683268e034fe83342bf394f2f'] = 'Une erreur est survenue lors de la mise à jour de l\'option \"fixer une taille de cellule\"';
$_MODULE['<{ordertaxprofitreport}prestashop>admin-update_class_70f666c46f0f575682dce3071b0d2748'] = 'Ha ocurrido un error durante la actualización del detalle del pedido para';
$_MODULE['<{ordertaxprofitreport}prestashop>admin-update_class_35a82907e1c8cd3e81555f2ff13e61a1'] = 'ID del pedido';
$_MODULE['<{ordertaxprofitreport}prestashop>admin-update_class_179d2123ef38fe32afb6a1287ec9b50a'] = 'ID del detalle del pedido';
$_MODULE['<{ordertaxprofitreport}prestashop>admin-update_class_8bb66ba9e450affc5967ff7c3fe0107a'] = 'Une erreur est survenue lors de la mise à jour du prix d\'achat';
$_MODULE['<{ordertaxprofitreport}prestashop>admin-update_class_d6638fe6f1a2d636dec54690826e6fb4'] = 'No hay ningún pedido para esta tienda';
$_MODULE['<{ordertaxprofitreport}prestashop>basic-settings_36d203068578209f63c0e501a6bd6a2b'] = 'Por favor, lea atentamente nuestra documentación en el / pestaña FAQ AYUDA';
$_MODULE['<{ordertaxprofitreport}prestashop>basic-settings_83218ac34c1834c26781fe4bde918ee4'] = 'Bienvenido';
$_MODULE['<{ordertaxprofitreport}prestashop>basic-settings_2a94082b582d0620bae922fc14c36444'] = 'Ajustes básicos';
$_MODULE['<{ordertaxprofitreport}prestashop>basic-settings_74b7ffaf50e2a3c4d050e43e1cdc6f53'] = 'Inicio';
$_MODULE['<{ordertaxprofitreport}prestashop>basic-settings_0ff6eb37f842d564efa312bdf7c4f38b'] = 'Bienvenido y gracias por adquirir nuestro módulo';
$_MODULE['<{ordertaxprofitreport}prestashop>basic-settings_df678e223d77378a05d89fb6d790de3e'] = 'Formulario de exportación';
$_MODULE['<{ordertaxprofitreport}prestashop>basic-settings_fc95f13ef64791ed6e8b9dab8f4d4d7a'] = 'Dejará esta casilla seleccionada en la mayor parte de los casos, a menos que quiera aprovechar los datos en otra aplicación';
$_MODULE['<{ordertaxprofitreport}prestashop>basic-settings_688a21937c346d1c62020982b5a732a9'] = 'Incluir los encabezamientos y los totales';
$_MODULE['<{ordertaxprofitreport}prestashop>basic-settings_2ddc3e619828b2c0f07b89be00f1f532'] = 'Definir el formato de fecha a mostrar en cada línea del informe';
$_MODULE['<{ordertaxprofitreport}prestashop>basic-settings_534fd46732986cba0efeda8701592427'] = 'Formato de fecha';
$_MODULE['<{ordertaxprofitreport}prestashop>basic-settings_2f554476eebba4c39ffaa873acd1b1c7'] = 'Número de decimales tras la coma';
$_MODULE['<{ordertaxprofitreport}prestashop>basic-settings_5da24cfbd879004aa381e435067738a5'] = 'Su separador decimal';
$_MODULE['<{ordertaxprofitreport}prestashop>basic-settings_2aefcd49d33f0a08c0af1bf1826a5dc9'] = 'Définir une largeur de cellule';
$_MODULE['<{ordertaxprofitreport}prestashop>basic-settings_bafd7322c6e97d25b6299b5d6fe8920b'] = 'Non';
$_MODULE['<{ordertaxprofitreport}prestashop>basic-settings_93cba07454f06a4a960172bbd6e2a435'] = 'Oui';
$_MODULE['<{ordertaxprofitreport}prestashop>basic-settings_829ac370756b1b19ddc9d20ae7fa42f2'] = 'Pour les rapports HTML seulement';
$_MODULE['<{ordertaxprofitreport}prestashop>basic-settings_87cb99e72eafb07be7a04a05e645b4f1'] = 'Largeur de la cellule';
$_MODULE['<{ordertaxprofitreport}prestashop>basic-settings_06933067aafd48425d67bcb01bba5cb6'] = 'Actualización';
$_MODULE['<{ordertaxprofitreport}prestashop>basic-settings_869e770c1d3c500cb96656c6239ddb5e'] = 'PREGUNTAS FRECUENTES EN LÍNEA';
$_MODULE['<{ordertaxprofitreport}prestashop>basic-settings_af95c95ffb5ffd8d0ff2e197782fa644'] = '¿Cómo gestionar informe';
$_MODULE['<{ordertaxprofitreport}prestashop>basic-settings_c43b7cbb611179919912ca11e824a33d'] = 'Comment sont gérer les calculs ?';
$_MODULE['<{ordertaxprofitreport}prestashop>basic-settings_c0241eae411627c19ba9835b6d194b1c'] = 'CONTACTO';
$_MODULE['<{ordertaxprofitreport}prestashop>confirm_c888438d14855d7d96a2724ee9c306bd'] = 'Parámetros actualización';
$_MODULE['<{ordertaxprofitreport}prestashop>error_5f36cf760a5c474cc32a6d35d9c50d05'] = 'Código error';
$_MODULE['<{ordertaxprofitreport}prestashop>module-update_a1e0a22d72e52d41a027a4b712272ba3'] = 'Ha ocurrido un error durante la ejecución de la petición para';
$_MODULE['<{ordertaxprofitreport}prestashop>module-update_aab9e1de16f38176f86d7a92ba337a8d'] = 'tabla';
$_MODULE['<{ordertaxprofitreport}prestashop>module-update_06e3d36fa30cea095545139854ad1fb9'] = 'campo';
$_MODULE['<{ordertaxprofitreport}prestashop>module-update_d49c385804594f966dcb6eedd658504a'] = 'en la tabla';
$_MODULE['<{ordertaxprofitreport}prestashop>module-update_c0ceed3d6337c651186565208b96991b'] = 'SQL fuente / mensaje';
$_MODULE['<{ordertaxprofitreport}prestashop>module-update_80c8df16f1f26e89eefffe8492540145'] = 'Por favor, recargue esta página para volver a intentar actualizar los campos y las tablas de la base de datos, o compruebe con su alojamiento web por qué obtiene un error SQL';
$_MODULE['<{ordertaxprofitreport}prestashop>multi-shop-config_b30753ed85c2d22559cdcf14d8226751'] = 'Por razones de prestación, el módulo no puede ser configurado o exportado en el contexto del grupo o de todas las tiendas. Debe configurarlo o exportar una tienda cada vez.';
$_MODULE['<{ordertaxprofitreport}prestashop>register-orders_be7d9ac214bd9b4f5af3a922cf844bf5'] = 'Necesitamos efectuar algunas operaciones…';
$_MODULE['<{ordertaxprofitreport}prestashop>register-orders_ceb81efbca7febd4efa509ebaa575420'] = 'Con el fin de exportar los informes con un margen neto lo más preciso posible, necesitamos efectuar algunas operaciones en la base de datos y calcular nuestras propias cifras. Haga clic en el enlace situado más abajo con el fin de lanzar la actualización ahora.';
$_MODULE['<{ordertaxprofitreport}prestashop>register-orders_c0e6e174de6e6f3ba19d325e0b1c1334'] = 'operación de base de datos';
$_MODULE['<{ordertaxprofitreport}prestashop>register-orders_06933067aafd48425d67bcb01bba5cb6'] = 'Actualización';
$_MODULE['<{ordertaxprofitreport}prestashop>register-orders_c3be74db97c976391b8d76bede8aec96'] = 'Operaciones de base de datos en curso…';
$_MODULE['<{ordertaxprofitreport}prestashop>form_81912d9bfe0426a3d7699bd246fed17e'] = 'Informe Pedidos IVA Beneficios';
$_MODULE['<{ordertaxprofitreport}prestashop>form_c5ffaba818ee05ac13a4ac9fbf563c46'] = 'ATTENTION : Vous avez activé les stocks avancés. A cause de la structure de la base données de Prestashop, le module ne peut pas déterminer le prix d\'achat et calculer les profits, quand cette option est activée.';
$_MODULE['<{ordertaxprofitreport}prestashop>form_bca8ab0a72428866a6f0311a3092eea3'] = 'Preferencias de exportación';
$_MODULE['<{ordertaxprofitreport}prestashop>form_f67f1e0a40edd04af7362c853b3efde6'] = 'Elija su formato de informe';
$_MODULE['<{ordertaxprofitreport}prestashop>form_7b3f4450b1ed91cbae0125d9e65a2789'] = 'Seleccione el formato de informe. Cada formato muestra una lista de datos predefinidos';
$_MODULE['<{ordertaxprofitreport}prestashop>form_6dace83250c630bfbf38c78872cd8167'] = 'Elija su formato de informe';
$_MODULE['<{ordertaxprofitreport}prestashop>form_f519607d4fe7c126f9ca9acd0ee6a0fd'] = 'Definir el formato de visualización del informe';
$_MODULE['<{ordertaxprofitreport}prestashop>form_9b9935ad5969c28de13381a2e512b47c'] = 'NOTA:';
$_MODULE['<{ordertaxprofitreport}prestashop>form_2be5bdb54291894d3dd380c65aef6415'] = 'Si utiliza el formato de salida \"csv\", algunos números se pueden mostrar con el formato científico, en este caso, cambie la propiedad de celda con el fin de ver el valor absoluto de un número en el software Excel por ejemplo';
$_MODULE['<{ordertaxprofitreport}prestashop>form_d4d3bef5ebd27233b2b462dcc4825155'] = 'Codificación UTF-8';
$_MODULE['<{ordertaxprofitreport}prestashop>form_37035d2e98371b82b9affefb628ef4a0'] = 'Exporte en UTF-8. La aplicación Excel no genera la codificación UTF-8.';
$_MODULE['<{ordertaxprofitreport}prestashop>form_e961855da8e75b0e48725b78378b1107'] = 'IMPORTANT A PROPOS DES PRIX D\'ACHAT ET DU CALCUL DES PROFITS';
$_MODULE['<{ordertaxprofitreport}prestashop>form_5063622908f5d0bfe2a520796600065e'] = 'Si vous voulez calculer votre marge et vos bénéfices de manière plus précise, merci de suivre attentivement le lien qui suis :';
$_MODULE['<{ordertaxprofitreport}prestashop>form_2a5238c6872a48cccc1b20294e0b08ba'] = 'Comment est géré le prix d\'achat ?';
$_MODULE['<{ordertaxprofitreport}prestashop>form_58cb31c940f8e84899071c324d5fcc2f'] = 'Filtros de tiempo';
$_MODULE['<{ordertaxprofitreport}prestashop>form_a5056090b4bc2a134833f61a0fd636bf'] = 'Por fecha de pedido';
$_MODULE['<{ordertaxprofitreport}prestashop>form_5da618e8e4b89c66fe86e32cdafde142'] = 'del';
$_MODULE['<{ordertaxprofitreport}prestashop>form_e12167aa0a7698e6ebc92b4ce3909b53'] = 'al';
$_MODULE['<{ordertaxprofitreport}prestashop>form_6fc16081479d28fc3a2300ef1877386e'] = 'Por fecha de factura';
$_MODULE['<{ordertaxprofitreport}prestashop>form_809f2f3c4be38374bb9e192d21779143'] = 'Desde una perspectiva contable, se utilizarán factura deberes de fecha';
$_MODULE['<{ordertaxprofitreport}prestashop>form_9ff3b5b8b130ebd5f699f37bccc2fe01'] = 'Por fecha de entrega';
$_MODULE['<{ordertaxprofitreport}prestashop>form_a434b8a39675b02c717f854a8180c94a'] = 'Por número de pedido';
$_MODULE['<{ordertaxprofitreport}prestashop>form_103f199ec4884712be0c51c5dbe53e65'] = 'Por número de factura';
$_MODULE['<{ordertaxprofitreport}prestashop>form_281bbeb63f7c7a9ac8107524f7821e93'] = 'Por fecha de haber';
$_MODULE['<{ordertaxprofitreport}prestashop>form_463e3fc8563b15e65878f8846cb0b028'] = 'Filtros de estatus';
$_MODULE['<{ordertaxprofitreport}prestashop>form_4c41e0bd957698b58100a5c687d757d9'] = 'Seleccionar todo';
$_MODULE['<{ordertaxprofitreport}prestashop>form_c8b84a4981af221d5531dfae0f655222'] = 'Filtros de país';
$_MODULE['<{ordertaxprofitreport}prestashop>form_10ba9dab52555111007ebed4ac1d54d4'] = 'Elija sus países';
$_MODULE['<{ordertaxprofitreport}prestashop>form_c3dce9c2f449bfcf921bf24a39731460'] = 'Seleccione su país con el fin de extraer únicamente los datos de éste';
$_MODULE['<{ordertaxprofitreport}prestashop>form_06f1ac65b0a6a548339a38b348e64d79'] = 'Orden de clasificación';
$_MODULE['<{ordertaxprofitreport}prestashop>form_42c744ebb60a239f54b7f10df264c0bc'] = 'Seleccione su campo de clasificación';
$_MODULE['<{ordertaxprofitreport}prestashop>form_02674a4ef33e11c879283629996c8ff8'] = 'Sentido';
$_MODULE['<{ordertaxprofitreport}prestashop>form_3bf568445bf0afb3ffc40c1af7226931'] = 'Filtro de producto';
$_MODULE['<{ordertaxprofitreport}prestashop>form_16629982b0a460d8372fa8ab56a0903a'] = 'Seleccione sus categorías';
$_MODULE['<{ordertaxprofitreport}prestashop>form_02ff3d5eb6acadb104c97ed6b3449a5f'] = 'Seleccione sus fabricantes';
$_MODULE['<{ordertaxprofitreport}prestashop>form_2942adbcbd0e002ff06b330ffe9e06dc'] = 'Seleccione sus distribuidores';
$_MODULE['<{ordertaxprofitreport}prestashop>form_498ef55c478439740495d553329b02a5'] = 'Mostrar por versión';
$_MODULE['<{ordertaxprofitreport}prestashop>form_7fa3b767c460b54a2be4d49030b349c7'] = 'no';
$_MODULE['<{ordertaxprofitreport}prestashop>form_a6105c0a611b41b08f1209506350279e'] = 'sí';
$_MODULE['<{ordertaxprofitreport}prestashop>form_905472b73c7b16c40b5f4df354d66f2d'] = 'Mostrar fotos de productos';
$_MODULE['<{ordertaxprofitreport}prestashop>form_8bffd0df8a023620b5372149c01ec9c9'] = 'Sí, utilizar esta talla:';
$_MODULE['<{ordertaxprofitreport}prestashop>form_d3766dc1be9587c9545d9ef039ea6872'] = 'Seleccione su tasa de IVA';
$_MODULE['<{ordertaxprofitreport}prestashop>form_70cc3d3fb8178f19eabf99d3562e85c6'] = 'Filtro de cliente';
$_MODULE['<{ordertaxprofitreport}prestashop>form_0095a9fa74d1713e43e370a7d7846224'] = 'Exportar';
$_MODULE['<{ordertaxprofitreport}prestashop>report-csv_d98a07f84921b24ee30f86fd8cd85c3c'] = 'de';
$_MODULE['<{ordertaxprofitreport}prestashop>report-csv_382b0f5185773fa0f67a8ed8056c7759'] = 'N/A';
$_MODULE['<{ordertaxprofitreport}prestashop>report-csv_01b6e20344b68835c5ed1ddedf20d531'] = 'al';
$_MODULE['<{ordertaxprofitreport}prestashop>report-csv_edd291d1439a6c1c18fe38bee411580f'] = 'Totales';
$_MODULE['<{ordertaxprofitreport}prestashop>report-csv_d82615a23e54f9456c0b0194239474df'] = 'Ningún pedido';
$_MODULE['<{ordertaxprofitreport}prestashop>report-html_d98a07f84921b24ee30f86fd8cd85c3c'] = 'de';
$_MODULE['<{ordertaxprofitreport}prestashop>report-html_382b0f5185773fa0f67a8ed8056c7759'] = 'N/A';
$_MODULE['<{ordertaxprofitreport}prestashop>report-html_01b6e20344b68835c5ed1ddedf20d531'] = 'al';
$_MODULE['<{ordertaxprofitreport}prestashop>report-html_ce1526ee69447d2e7524d503b20fa5fd'] = 'Para obtener más información sobre la gestión de los cálculos, se puede colocar el ratón sobre el icono';
$_MODULE['<{ordertaxprofitreport}prestashop>report-html_3844e7fcba84200517b8db423d23b4b5'] = 'en la cabecera de la tabla de abajo';
$_MODULE['<{ordertaxprofitreport}prestashop>report-html_fde47c510518d2322c606f11cb4172ab'] = 'NOTA IMPORTANTE: Los beneficios y el margen bruto pueden ser calculados de manera precisa sólo si el producto vendido no ha sido suprimido tras la emisión del pedido. Si han sido suprimidos productos vendidos, las cifras para esas columnas serán incorrectas. Si el precio de compra ha sido modificado tras la emisión del pedido, el margen bruto calculado estará basado en el precio corriente de compra del producto, y no en el precio de compra tras el pedido. Esto es debido a la propia aplicación Prestashop, y lamentablemente no podemos hacer nada a este nivel. Esto será corregido a partir de la versión 1.5 de Prestashop, en la cual el precio de compra será almacenado al nivel del detalle del pedido.';
$_MODULE['<{ordertaxprofitreport}prestashop>report-html_d82615a23e54f9456c0b0194239474df'] = 'Ningún pedido';

View File

@ -0,0 +1,235 @@
<?php
global $_MODULE;
$_MODULE = array();
$_MODULE['<{ordertaxprofitreport}prestashop>ordertaxprofitreport_5baef7a978f870358032f9d757de0691'] = 'Rapport Commandes, TVA et Bénéfices';
$_MODULE['<{ordertaxprofitreport}prestashop>ordertaxprofitreport_d3a25b47e9eef1c22792ee5a65224c40'] = 'Configurez et exportez votre rapport Commandes, TVA et Bénéfices';
$_MODULE['<{ordertaxprofitreport}prestashop>ordertaxprofitreport_2d97d5bf5df9e35b7cab65e1ad5b0b28'] = 'Etes-vous sûr de vouloir le supprimer? Votre rapport Commandes, TVA et Bénéfices ne fonctionnera plus';
$_MODULE['<{ordertaxprofitreport}prestashop>ordertaxprofitreport_9c9ab624360885fcf93b7643c93b6748'] = 'croissant';
$_MODULE['<{ordertaxprofitreport}prestashop>ordertaxprofitreport_b19e9805fd7727c52ca04dfa3d24a2e5'] = 'décroissant';
$_MODULE['<{ordertaxprofitreport}prestashop>ordertaxprofitreport_c7247e0f47d955963f1dfdccca16b30d'] = 'mise à jour du template';
$_MODULE['<{ordertaxprofitreport}prestashop>ordertaxprofitreport_ed73f6b46391b95e1d03c6818a73b8b9'] = 'ko';
$_MODULE['<{ordertaxprofitreport}prestashop>ordertaxprofitreport_ea38438926bba03c7df2af1e6d75c511'] = 'enregistrement des hooks KO';
$_MODULE['<{ordertaxprofitreport}prestashop>ordertaxprofitreport_a181a603769c1f98ad927e7367c7aa51'] = 'tous';
$_MODULE['<{ordertaxprofitreport}prestashop>module-dao_class_c61ab4204f572e9b3aa84a040e0dab31'] = 'Voir produits';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_5370b50f5788232a579e5c3429fb18ee'] = 'Date d\'ajout de commande';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_b216d0c9d30c5296511580555b3058a7'] = 'Date de mise à jour de commande';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_409392495c695c6cfbf64783753b815a'] = 'Date de livraison de commande';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_def4a99ed5f227665c8d570d6b72890b'] = 'Date de facturation de commande';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_9127fe218b2cac7f0c8aecd7016a891d'] = 'Nom Boutique';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_d79cf3f429596f77db95c65074663a54'] = 'ID de commande';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_8ae4286d38bb2235def98fd68d7420d2'] = 'Numéro de facture';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_19f2f692c96d2aff892bad71b80521e9'] = 'Numéro de livraison';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_914419aa32f04011357d3b604a86d7eb'] = 'Transporteur';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_f0aaaae189e9c7711931a65ffcd22543'] = 'Méthode de paiement';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_d02bbc3cb147c272b0445ac5ca7d1a36'] = 'Statut commande';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_ea067eb37801c5aab1a1c685eb97d601'] = 'Total payé TTC';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_f844c20c041eb15e94c27891be644918'] = 'Total réellement payé TTC';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_8047bd57bbed2e8ea0a7c67931a703fd'] = 'Total produits HT';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_f147c0b57bb034a0b18d375a00caada5'] = 'Dont Ecotaxe HT';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_6937770a9ed6e75bb990a566096493cf'] = 'Dont TVA écotaxe';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_ec2c244b1ff797b2ced33cccb55d3e42'] = 'Total frais de port HT';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_22b5e30f8660c693620a131a463a7a69'] = 'TVA frais de port';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_65b2eb8951e9008b9594b2c7444bc9cb'] = 'Total TVA collectée';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_7d3f36bdfd25c41280b422cc90697291'] = 'Total réductions HT';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_bd96af035f2858f0b37d2328b3735ed5'] = 'TVA réductions ';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_6f43f5151eb6cb7eca1ea079d8b81340'] = 'Total emballage HT';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_5fbe938fb1f859affb8da34f2b175f3a'] = 'TVA emballage';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_e59097d27bdaaa2987aaaf8100fa91c2'] = 'TVA produits';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_3cf600f753fc673c1e57c0f3c807f4d7'] = 'Total coût de revient';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_3601146c4e948c32b6424d2c0a7f0118'] = 'Prix';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_7f117379ebd5c7a5e478742b111ad9ee'] = 'Bénéfices bruts avant remises';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_52f838a581b8e87c094fa0765218ecfb'] = 'Bénéfices nets HT';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_c7083f41f6132cf5132b3354d1383147'] = 'Marge brut avant remises';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_d786c466e41374f63f00875156696e0f'] = 'Marge nette HT';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_97f08a40f22a625d0cbfe03db3349108'] = 'Id Produit';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_be53a0541a6d36f6ecb879fa2c584b08'] = 'Photo';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_b9aefa40a54680bb258f9f9569290fae'] = 'Nom Produit';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_75ed578ac3cb02b0ba40002a25bc0403'] = 'Référence produit';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_8284ae5df53e6e7ffc1f2cc67ae68765'] = 'Référence fournisseur';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_5bb375030580afe70139b30663173cb8'] = 'Référence EAN13';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_dc459b2c746f3805dee7eaa42695aa50'] = 'Référence UPC';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_82af5acf70292f0a0e81063ef38f6724'] = 'Le produit a été supprimé, aucunes infos disponibles';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_024f2ba49b4c1e30f90b7a04fc1b35a3'] = 'Total Quantité';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_48f0cbaa50487ac274da786ae8383d36'] = 'Prix Unitaire Moyen';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_20a34c4e30c5bbe1d3f870ac55f0d831'] = 'Taux TVA';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_f6b38fb0febd3c1178071b735a3330d0'] = 'Total produit H.T';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_347a231da3bd5e326e73e103abdd1673'] = 'TVA Nette (produit - réduction)';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_2bd92e2d3c1b16e032b23e040471b1b1'] = 'Bénéfices bruts';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_921f6830401e5cd1e59240594d2e9bec'] = 'Marge brute HT';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_43d729c7b81bfa5fc10e756660d877d1'] = 'Bénéfices nets';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_58da2fff8dfce588a8fdd4d42c1f682f'] = 'Marge nette HT';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_60fe0c4da1f0775cbae4ed3a596febdc'] = '% du total ventes';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_6f689f49f6945238d7d81c9d1ef1b67e'] = '% du total bénéfices bruts';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_fb3329a037ec126ff3eb59422b82ac72'] = '% du total bénéfices nets';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_bb77e12461293768706c1ced4cb2354c'] = 'Cumulatif % du total ventes';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_e805fa6e3a9108f33ce8390327b4a737'] = 'Cumulatif % total bénéfices bruts';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_c6df81ee565a2a9a5f36288167d4be47'] = 'Cumulatif % total bénéfices nets';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_ad4c7beed61601926b2b2bdfd138f772'] = 'Nom fabricant';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_416000ae4bd8e9942103c9cfd4e985f1'] = 'Le fabricant a été supprimé, aucunes infos disponibles';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_a40dd44b49ccaa9c22aef96442cadd98'] = 'Id Fabricant';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_bb34a159a88035cce7ef1607e7907f8f'] = 'Nom Catégorie';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_ec97ed38e53de96ab38a1e65c2de25f8'] = 'La catégorie a été supprimée, aucunes infos disponibles';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_f9edc7482d3eff492319e6c033e9cf55'] = 'Id Catégorie';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_6848cd52e0f00104097433f402168ad5'] = 'Nom fournisseur';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_7da2f8619de74aa4fa95052ad16a3243'] = 'Le fournisseur a été supprimé, aucunes infos disponibles';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_7fd6956c0f477599c3c963b36458cf12'] = 'Id Fournisseur';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_ce8ae9da5b7cd6c3df2929543a9af92d'] = 'Email';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_aac772216aecbeca0e86d06671fe985a'] = 'Date d\'anniversaire';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_8d3f5eff9c40ee315d452392bed5309b'] = 'Nom';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_20db0bfeecd8fe60533206a2b5e9891a'] = 'Prénom';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_4bcd49c5567bd26de52b583562de4483'] = 'Date d\'ajout client';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_4df4b43c0596fd33084382db7ada41a1'] = 'Date de mise à jour client';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_1c76cbfe21c6f44c1d1e59d54f3e4420'] = 'Société';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_956205f0d2c8352f3d92aa3438f1b646'] = 'Adresse 1';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_2e21e83375deefc4a3620ab667157e27'] = 'Adresse 2';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_8bcdc441379cbf584638b0589a3f9adb'] = 'Code postal';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_57d056ed0984166336b7879c2af3657f'] = 'Ville';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_bcc254b55c4a1babdf1dcb82c207506b'] = 'Téléphone';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_59716c97497eb9694541f7c3d37b1a4d'] = 'Pays';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_64500d3e065dad68345d63e37a182bb8'] = 'Première commande';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_d37c2bf1bd3143847fca087b354f920e'] = 'ID client';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_d957e2652355299cb367c4b7e07d9141'] = 'Dernière commande';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_e435e1597b793d65c3300af5049c2d2f'] = '# de commandes';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_76ae87f51dcdf009e6537181bb6f30d5'] = '# de produits commandés';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_8783eff1323cf938b395319173177925'] = 'Panier moyen (TTC, tout compris)';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_3295a54e3830a75b4a3097420505d1e7'] = 'Produits commandés';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_e7e9aee61e6618b7ab8cfff2af334196'] = 'ID Avoir';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_8b94d893d4e0b0eb0600b3124f36bd1a'] = 'Date Avoir';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_a52bea227179ecafe141e9b13318e74d'] = 'Total H.T';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_e86d4d3db54715c430a156cbf82a7812'] = 'Total T.T.C';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_8334df53274fdf53563feb74baf0d2b8'] = 'Total Produits HT - Total coût de revient';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_e58e20045a852787c62ba6a685c58c25'] = 'Total Produits HT - Total coût de revient - Total réductions HT';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_3fbe6a964fbe8dd864a59008e750656e'] = 'Bénéfices bruts HT / Total Produits HT x 100';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_639f2aeed02253fdb880732a91d57a52'] = '(Bénéfices nets HT + Total emballage HT) / (Total Produits HT - Total réductions HT + Total emballage HT) x 100';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_78463a384a5aa4fad5fa73e2f506ecfc'] = 'Anglais';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_ad225f707802ba118c22987186dd38e8'] = 'Français';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_a240fa27925a635b08dc28c9e4f9216d'] = 'Commande';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_065ab3a28ca4f16f55f103adc7d0226f'] = 'Livraison';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_466eadd40b3c10580e3ab4e8061161ce'] = 'Facture';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_8718093cc5771291c51e9d8d75e4e58d'] = 'Le numéro de début de commande n\'est pas un entier';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_1e9dfec8ceb4225e574fe913cae9e758'] = 'Le numéro de fin de commande n\'est pas un entier';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_60add46717e95760aac89a34a213dc0a'] = 'Le numéro de début de facture n\'est pas un entier';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_e23eae8ab9676935cb3f51bf589de715'] = 'Le numéro de fin de facture n\'est pas un entier';
$_MODULE['<{ordertaxprofitreport}prestashop>admin-export_class_4b400cf1a3fd5f760dd8d613ec8f2e0e'] = 'Le type de template n\'est pas valide';
$_MODULE['<{ordertaxprofitreport}prestashop>admin-export_class_8718093cc5771291c51e9d8d75e4e58d'] = 'Le numéro de début de commande n\'est pas un entier';
$_MODULE['<{ordertaxprofitreport}prestashop>admin-export_class_a240fa27925a635b08dc28c9e4f9216d'] = 'Commande';
$_MODULE['<{ordertaxprofitreport}prestashop>admin-export_class_1e9dfec8ceb4225e574fe913cae9e758'] = 'Le numéro de fin de commande n\'est pas un entier';
$_MODULE['<{ordertaxprofitreport}prestashop>admin-export_class_60add46717e95760aac89a34a213dc0a'] = 'Le numéro de début de facture n\'est pas un entier';
$_MODULE['<{ordertaxprofitreport}prestashop>admin-export_class_e23eae8ab9676935cb3f51bf589de715'] = 'Le numéro de fin de facture n\'est pas un entier';
$_MODULE['<{ordertaxprofitreport}prestashop>admin-export_class_fc00821b8ddd74aa9e882b2c083ff3cf'] = 'Le numéro de début de l\'avoir n\'est pas un entier';
$_MODULE['<{ordertaxprofitreport}prestashop>admin-export_class_4a15d2433983408e3ba2307bcaecd7b8'] = 'Le numéro de fin de l\'avoir n\'est pas un entier';
$_MODULE['<{ordertaxprofitreport}prestashop>admin-export_class_f43e7643b8e9370a80a640ab5d18ddf6'] = 'Une erreur est survenue lors de la mise à jour du \"statut de sélection\"';
$_MODULE['<{ordertaxprofitreport}prestashop>admin-export_class_65db350a5f3acd5e9cf05d610a394682'] = 'Le champ de tri sélectionné n\'est pas valide';
$_MODULE['<{ordertaxprofitreport}prestashop>admin-export_class_b01102f5284584334270c0c37fcb92d9'] = 'La direction de tri n\'est pas valide';
$_MODULE['<{ordertaxprofitreport}prestashop>admin-export_class_eab36e1b95cf7497068aaad4661b98cc'] = 'La liste des catégories n\'est pas un tableau';
$_MODULE['<{ordertaxprofitreport}prestashop>admin-export_class_8f461c277e4ab89b7cf566a095db3bc9'] = 'La liste des fabricants n\'est pas un tableau';
$_MODULE['<{ordertaxprofitreport}prestashop>admin-export_class_bea59ae2ad66b2f89114886363763244'] = 'La liste des fournisseurs n\'est pas un tableau';
$_MODULE['<{ordertaxprofitreport}prestashop>admin-export_class_47948dd414948435b0b2b92ba56dfe8a'] = 'l\'option d\'affichage de la déclinaison n\'est pas valide';
$_MODULE['<{ordertaxprofitreport}prestashop>admin-export_class_dd8baccde29a3f17d2d6dc4b4a333e98'] = 'La liste d\'IDs pays n\'est pas un tableau';
$_MODULE['<{ordertaxprofitreport}prestashop>admin-export_class_851bd9c9a17ef959f2d57421c44a7cb3'] = 'La liste des groupes client n\'est pas un tableau';
$_MODULE['<{ordertaxprofitreport}prestashop>admin-export_class_90c336f34c40ca27e9b3d6aadc449056'] = 'Une erreur est survenue lors de la mise à jour des \"préférences\"';
$_MODULE['<{ordertaxprofitreport}prestashop>admin-export_class_87557f11575c0ad78e4e28abedc13b6e'] = 'Fin';
$_MODULE['<{ordertaxprofitreport}prestashop>admin-export_class_a8c6472c3b4672f4101549a5f7fdd5c3'] = 'date doit être plus grande que la date de début';
$_MODULE['<{ordertaxprofitreport}prestashop>admin-update_class_4b82e5cdd90fbd3a6b000e2b39ce3339'] = 'Une erreur est survenue lors de la mise à jour de l\'option \"en-têtes et totaux\"';
$_MODULE['<{ordertaxprofitreport}prestashop>admin-update_class_faa3a8fa4293e373893043ff3b9417ee'] = 'Une erreur est survenue lors de la mise à jour de l\'option \"Format de date\"';
$_MODULE['<{ordertaxprofitreport}prestashop>admin-update_class_c38069d9e21696961ecb56b215a49d75'] = 'Une erreur est survenue lors de la mise à jour de l\'option \"nombre de décimales après la virgule\"';
$_MODULE['<{ordertaxprofitreport}prestashop>admin-update_class_208bfc6b716a22e707e80bff7ae21141'] = 'Une erreur est survenue lors de la mise à jour de l\'option \"séparateur décimale\"';
$_MODULE['<{ordertaxprofitreport}prestashop>admin-update_class_37afe90683268e034fe83342bf394f2f'] = 'Une erreur est survenue lors de la mise à jour de l\'option \"fixer une taille de cellule\"';
$_MODULE['<{ordertaxprofitreport}prestashop>admin-update_class_70f666c46f0f575682dce3071b0d2748'] = 'Une erreur est survenue lors de la mise à jour du détail de la commande pour';
$_MODULE['<{ordertaxprofitreport}prestashop>admin-update_class_35a82907e1c8cd3e81555f2ff13e61a1'] = 'ID de commande';
$_MODULE['<{ordertaxprofitreport}prestashop>admin-update_class_179d2123ef38fe32afb6a1287ec9b50a'] = 'ID du détail de commande';
$_MODULE['<{ordertaxprofitreport}prestashop>admin-update_class_8bb66ba9e450affc5967ff7c3fe0107a'] = 'Une erreur est survenue lors de la mise à jour du prix d\'achat';
$_MODULE['<{ordertaxprofitreport}prestashop>admin-update_class_d6638fe6f1a2d636dec54690826e6fb4'] = 'Il n\'y a aucune commande pour cette boutique';
$_MODULE['<{ordertaxprofitreport}prestashop>basic-settings_36d203068578209f63c0e501a6bd6a2b'] = 'Merci de lire attentivement la documentation dans l\'onglet AIDE / FAQ ';
$_MODULE['<{ordertaxprofitreport}prestashop>basic-settings_83218ac34c1834c26781fe4bde918ee4'] = 'Bienvenue';
$_MODULE['<{ordertaxprofitreport}prestashop>basic-settings_2a94082b582d0620bae922fc14c36444'] = 'Paramètres de base';
$_MODULE['<{ordertaxprofitreport}prestashop>basic-settings_74b7ffaf50e2a3c4d050e43e1cdc6f53'] = 'Aide / F.A.Q';
$_MODULE['<{ordertaxprofitreport}prestashop>basic-settings_0ff6eb37f842d564efa312bdf7c4f38b'] = 'Merci et merci d\'avoir acheté notre module';
$_MODULE['<{ordertaxprofitreport}prestashop>basic-settings_df678e223d77378a05d89fb6d790de3e'] = 'Formulaire d\'export';
$_MODULE['<{ordertaxprofitreport}prestashop>basic-settings_fc95f13ef64791ed6e8b9dab8f4d4d7a'] = 'Vous laisserez cette case cochée dans la plupart des cas, à moins que vous ne vouliez exploiter les données dans une autre application';
$_MODULE['<{ordertaxprofitreport}prestashop>basic-settings_688a21937c346d1c62020982b5a732a9'] = 'Inclure les en-têtes et les totaux';
$_MODULE['<{ordertaxprofitreport}prestashop>basic-settings_2ddc3e619828b2c0f07b89be00f1f532'] = 'Définir le format de date à afficher à chaque ligne du rapport';
$_MODULE['<{ordertaxprofitreport}prestashop>basic-settings_534fd46732986cba0efeda8701592427'] = 'Format de date';
$_MODULE['<{ordertaxprofitreport}prestashop>basic-settings_2f554476eebba4c39ffaa873acd1b1c7'] = 'Nombre de décimales après la virgule';
$_MODULE['<{ordertaxprofitreport}prestashop>basic-settings_5da24cfbd879004aa381e435067738a5'] = 'Votre séparateur décimale';
$_MODULE['<{ordertaxprofitreport}prestashop>basic-settings_2aefcd49d33f0a08c0af1bf1826a5dc9'] = 'Définir une largeur de cellule';
$_MODULE['<{ordertaxprofitreport}prestashop>basic-settings_bafd7322c6e97d25b6299b5d6fe8920b'] = 'Non';
$_MODULE['<{ordertaxprofitreport}prestashop>basic-settings_93cba07454f06a4a960172bbd6e2a435'] = 'Oui';
$_MODULE['<{ordertaxprofitreport}prestashop>basic-settings_829ac370756b1b19ddc9d20ae7fa42f2'] = 'Pour les rapports HTML seulement';
$_MODULE['<{ordertaxprofitreport}prestashop>basic-settings_87cb99e72eafb07be7a04a05e645b4f1'] = 'Largeur de la cellule';
$_MODULE['<{ordertaxprofitreport}prestashop>basic-settings_06933067aafd48425d67bcb01bba5cb6'] = 'Mettre à jour';
$_MODULE['<{ordertaxprofitreport}prestashop>basic-settings_869e770c1d3c500cb96656c6239ddb5e'] = 'FAQ en ligne';
$_MODULE['<{ordertaxprofitreport}prestashop>basic-settings_af95c95ffb5ffd8d0ff2e197782fa644'] = 'Comment gérer un rapport';
$_MODULE['<{ordertaxprofitreport}prestashop>basic-settings_c43b7cbb611179919912ca11e824a33d'] = 'Comment sont gérer les calculs ?';
$_MODULE['<{ordertaxprofitreport}prestashop>basic-settings_c0241eae411627c19ba9835b6d194b1c'] = 'CONTACT';
$_MODULE['<{ordertaxprofitreport}prestashop>confirm_c888438d14855d7d96a2724ee9c306bd'] = 'Paramètres mis à jour';
$_MODULE['<{ordertaxprofitreport}prestashop>error_5f36cf760a5c474cc32a6d35d9c50d05'] = 'Code erreur';
$_MODULE['<{ordertaxprofitreport}prestashop>module-update_a1e0a22d72e52d41a027a4b712272ba3'] = 'Une erreur est survenue lors de l\'exécution de la requête pour';
$_MODULE['<{ordertaxprofitreport}prestashop>module-update_aab9e1de16f38176f86d7a92ba337a8d'] = 'table';
$_MODULE['<{ordertaxprofitreport}prestashop>module-update_06e3d36fa30cea095545139854ad1fb9'] = 'champ';
$_MODULE['<{ordertaxprofitreport}prestashop>module-update_d49c385804594f966dcb6eedd658504a'] = 'dans la table';
$_MODULE['<{ordertaxprofitreport}prestashop>module-update_c0ceed3d6337c651186565208b96991b'] = 'SQL source / message';
$_MODULE['<{ordertaxprofitreport}prestashop>module-update_80c8df16f1f26e89eefffe8492540145'] = 'Veuillez recharger cette page afin de réessayer la mise à jour des tables et des champs SQL ou alors veuillez voir avec votre hébergeur pourquoi vous obtenez une erreur SQL';
$_MODULE['<{ordertaxprofitreport}prestashop>multi-shop-config_b30753ed85c2d22559cdcf14d8226751'] = 'Pour des raisons de performance, le module ne peut-être configuré ou ne peut exporter dans le contexte de groupe ou de toutes les boutiques. Vous devez le configurer ou exporter une boutique à la fois. ';
$_MODULE['<{ordertaxprofitreport}prestashop>register-orders_be7d9ac214bd9b4f5af3a922cf844bf5'] = 'Nous avons besoin de faire quelques opérations...';
$_MODULE['<{ordertaxprofitreport}prestashop>register-orders_ceb81efbca7febd4efa509ebaa575420'] = 'Afin d\'exporter les rapports avec une marge nette la plus précise possible, nous avons besoin d\'exécuter quelques opérations dans la base de données et de calculer nos propres chiffres. Veuillez cliquer sur le lien ci-dessous afin de lancer la mise à jour maintenant';
$_MODULE['<{ordertaxprofitreport}prestashop>register-orders_c0e6e174de6e6f3ba19d325e0b1c1334'] = 'opérations de base de données';
$_MODULE['<{ordertaxprofitreport}prestashop>register-orders_06933067aafd48425d67bcb01bba5cb6'] = 'Mettre à jour';
$_MODULE['<{ordertaxprofitreport}prestashop>register-orders_c3be74db97c976391b8d76bede8aec96'] = 'Opérations de base de données en cours...';
$_MODULE['<{ordertaxprofitreport}prestashop>form_81912d9bfe0426a3d7699bd246fed17e'] = 'Rapport Commandes T.V.A Bénéfices';
$_MODULE['<{ordertaxprofitreport}prestashop>form_c5ffaba818ee05ac13a4ac9fbf563c46'] = 'ATTENTION : Vous avez activé les stocks avancés. A cause de la structure de la base données de Prestashop, le module ne peut pas déterminer le prix d\'achat et calculer les profits, quand cette option est activée.';
$_MODULE['<{ordertaxprofitreport}prestashop>form_bca8ab0a72428866a6f0311a3092eea3'] = 'Préférences d\'export';
$_MODULE['<{ordertaxprofitreport}prestashop>form_f67f1e0a40edd04af7362c853b3efde6'] = 'Choisissez votre format de rapport';
$_MODULE['<{ordertaxprofitreport}prestashop>form_7b3f4450b1ed91cbae0125d9e65a2789'] = 'Sélectionnez le format de rapport. Chaque format affiche une liste de données prédéfinies';
$_MODULE['<{ordertaxprofitreport}prestashop>form_6dace83250c630bfbf38c78872cd8167'] = 'Choisissez votre format d\'affichage';
$_MODULE['<{ordertaxprofitreport}prestashop>form_f519607d4fe7c126f9ca9acd0ee6a0fd'] = 'Définir le format d\'affichage du rapport';
$_MODULE['<{ordertaxprofitreport}prestashop>form_9b9935ad5969c28de13381a2e512b47c'] = 'NOTE:';
$_MODULE['<{ordertaxprofitreport}prestashop>form_2be5bdb54291894d3dd380c65aef6415'] = 'Si vous utilisez le format de sortie \"csv\", certains nombres pourront être affichés au format scientifique, dans ce cas, changez la propriété de la cellule afin de faire voir la valeur absolue du nombre dans Excel par exemple';
$_MODULE['<{ordertaxprofitreport}prestashop>form_d4d3bef5ebd27233b2b462dcc4825155'] = 'Encodage UTF-8';
$_MODULE['<{ordertaxprofitreport}prestashop>form_37035d2e98371b82b9affefb628ef4a0'] = 'Exportez en UTF-8. L\'application excel ne gère pas l\'encodage UTF-8.';
$_MODULE['<{ordertaxprofitreport}prestashop>form_e961855da8e75b0e48725b78378b1107'] = 'IMPORTANT A PROPOS DES PRIX D\'ACHAT ET DU CALCUL DES PROFITS';
$_MODULE['<{ordertaxprofitreport}prestashop>form_5063622908f5d0bfe2a520796600065e'] = 'Si vous voulez calculer votre marge et vos bénéfices de manière plus précise, merci de suivre attentivement le lien qui suis :';
$_MODULE['<{ordertaxprofitreport}prestashop>form_2a5238c6872a48cccc1b20294e0b08ba'] = 'Comment est géré le prix d\'achat ?';
$_MODULE['<{ordertaxprofitreport}prestashop>form_58cb31c940f8e84899071c324d5fcc2f'] = 'Filtres de temps';
$_MODULE['<{ordertaxprofitreport}prestashop>form_a5056090b4bc2a134833f61a0fd636bf'] = 'Par date de commande';
$_MODULE['<{ordertaxprofitreport}prestashop>form_5da618e8e4b89c66fe86e32cdafde142'] = 'du';
$_MODULE['<{ordertaxprofitreport}prestashop>form_e12167aa0a7698e6ebc92b4ce3909b53'] = 'au';
$_MODULE['<{ordertaxprofitreport}prestashop>form_6fc16081479d28fc3a2300ef1877386e'] = 'Par date de facture';
$_MODULE['<{ordertaxprofitreport}prestashop>form_809f2f3c4be38374bb9e192d21779143'] = 'D\'un point de vue comptable, vous devriez utiliser la date de facturation';
$_MODULE['<{ordertaxprofitreport}prestashop>form_9ff3b5b8b130ebd5f699f37bccc2fe01'] = 'Par date de livraison';
$_MODULE['<{ordertaxprofitreport}prestashop>form_a434b8a39675b02c717f854a8180c94a'] = 'Par numéro de commande';
$_MODULE['<{ordertaxprofitreport}prestashop>form_103f199ec4884712be0c51c5dbe53e65'] = 'Par numéro de facture';
$_MODULE['<{ordertaxprofitreport}prestashop>form_281bbeb63f7c7a9ac8107524f7821e93'] = 'Par date d\'avoir';
$_MODULE['<{ordertaxprofitreport}prestashop>form_463e3fc8563b15e65878f8846cb0b028'] = 'Filtres de statut';
$_MODULE['<{ordertaxprofitreport}prestashop>form_4c41e0bd957698b58100a5c687d757d9'] = 'Tout sélectionner';
$_MODULE['<{ordertaxprofitreport}prestashop>form_c8b84a4981af221d5531dfae0f655222'] = 'Filtres de pays';
$_MODULE['<{ordertaxprofitreport}prestashop>form_10ba9dab52555111007ebed4ac1d54d4'] = 'Choisissez vos pays';
$_MODULE['<{ordertaxprofitreport}prestashop>form_c3dce9c2f449bfcf921bf24a39731460'] = 'Sélectionnez votre pays afin d\'en extraire uniquement les données de celui-ci';
$_MODULE['<{ordertaxprofitreport}prestashop>form_06f1ac65b0a6a548339a38b348e64d79'] = 'Ordre de tri';
$_MODULE['<{ordertaxprofitreport}prestashop>form_42c744ebb60a239f54b7f10df264c0bc'] = 'Sélectionnez votre champ de tri';
$_MODULE['<{ordertaxprofitreport}prestashop>form_02674a4ef33e11c879283629996c8ff8'] = 'Sens';
$_MODULE['<{ordertaxprofitreport}prestashop>form_3bf568445bf0afb3ffc40c1af7226931'] = 'Filtre de produit';
$_MODULE['<{ordertaxprofitreport}prestashop>form_16629982b0a460d8372fa8ab56a0903a'] = 'Sélectionnez vos catégories';
$_MODULE['<{ordertaxprofitreport}prestashop>form_02ff3d5eb6acadb104c97ed6b3449a5f'] = 'Sélectionnez vos fabricants';
$_MODULE['<{ordertaxprofitreport}prestashop>form_2942adbcbd0e002ff06b330ffe9e06dc'] = 'Sélectionnez vos fournisseurs';
$_MODULE['<{ordertaxprofitreport}prestashop>form_498ef55c478439740495d553329b02a5'] = 'Affiché par déclinaison';
$_MODULE['<{ordertaxprofitreport}prestashop>form_7fa3b767c460b54a2be4d49030b349c7'] = 'non';
$_MODULE['<{ordertaxprofitreport}prestashop>form_a6105c0a611b41b08f1209506350279e'] = 'oui';
$_MODULE['<{ordertaxprofitreport}prestashop>form_905472b73c7b16c40b5f4df354d66f2d'] = 'Montrer photos produits';
$_MODULE['<{ordertaxprofitreport}prestashop>form_8bffd0df8a023620b5372149c01ec9c9'] = 'Oui, utiliser cette taille: ';
$_MODULE['<{ordertaxprofitreport}prestashop>form_d3766dc1be9587c9545d9ef039ea6872'] = 'Sélectionnez votre taux de T.V.A';
$_MODULE['<{ordertaxprofitreport}prestashop>form_70cc3d3fb8178f19eabf99d3562e85c6'] = 'Filtre de client';
$_MODULE['<{ordertaxprofitreport}prestashop>form_0095a9fa74d1713e43e370a7d7846224'] = 'Exporter';
$_MODULE['<{ordertaxprofitreport}prestashop>report-csv_d98a07f84921b24ee30f86fd8cd85c3c'] = 'du';
$_MODULE['<{ordertaxprofitreport}prestashop>report-csv_382b0f5185773fa0f67a8ed8056c7759'] = 'N/A';
$_MODULE['<{ordertaxprofitreport}prestashop>report-csv_01b6e20344b68835c5ed1ddedf20d531'] = 'ai';
$_MODULE['<{ordertaxprofitreport}prestashop>report-csv_edd291d1439a6c1c18fe38bee411580f'] = 'Totaux';
$_MODULE['<{ordertaxprofitreport}prestashop>report-csv_d82615a23e54f9456c0b0194239474df'] = 'Aucune commande';
$_MODULE['<{ordertaxprofitreport}prestashop>report-html_d98a07f84921b24ee30f86fd8cd85c3c'] = 'du';
$_MODULE['<{ordertaxprofitreport}prestashop>report-html_382b0f5185773fa0f67a8ed8056c7759'] = 'N/A';
$_MODULE['<{ordertaxprofitreport}prestashop>report-html_01b6e20344b68835c5ed1ddedf20d531'] = 'au';
$_MODULE['<{ordertaxprofitreport}prestashop>report-html_ce1526ee69447d2e7524d503b20fa5fd'] = 'Afin de connaitre les détails des calculs vous pouvez passer votre souris sur l\'icone';
$_MODULE['<{ordertaxprofitreport}prestashop>report-html_3844e7fcba84200517b8db423d23b4b5'] = 'dans l\'entête du tableau ci dessous';
$_MODULE['<{ordertaxprofitreport}prestashop>report-html_fde47c510518d2322c606f11cb4172ab'] = 'NOTE IMPORTANTE: Les bénéfices et la marge brute peuvent être calculés précisément seulement si le produit vendu n\'a pas été supprimé depuis le passage de la commande. Si des produits vendus ont été supprimés, les chiffres pour ces colonnes seront incorrects. Si le prix d\'achat a été modifié depuis le passage de la commande, la marge brute calculée sera basée sur le prix courant d\'achat du produit, et non pas sur le prix d\'achat du produit lors de la commande. Cela est dû à l\'application Prestashop elle-même et malheureusement nous ne pouvons rien faire à ce niveau là. Cela sera corrigé à partir de la version 1.5 de Prestashop, dans laquelle le prix d\'achat sera stocké au niveau du détail de la commande.';
$_MODULE['<{ordertaxprofitreport}prestashop>report-html_d82615a23e54f9456c0b0194239474df'] = 'Aucune commande';

View File

@ -0,0 +1,35 @@
<?php
/*
* 2007-2015 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License (AFL 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/afl-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-2015 PrestaShop SA
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 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;

View File

@ -0,0 +1,235 @@
<?php
global $_MODULE;
$_MODULE = array();
$_MODULE['<{ordertaxprofitreport}prestashop>ordertaxprofitreport_5baef7a978f870358032f9d757de0691'] = 'Rapporto ordini, IVA e utili';
$_MODULE['<{ordertaxprofitreport}prestashop>ordertaxprofitreport_d3a25b47e9eef1c22792ee5a65224c40'] = 'Configuri e esporti il suo rapporto ordini, IVA e utili';
$_MODULE['<{ordertaxprofitreport}prestashop>ordertaxprofitreport_2d97d5bf5df9e35b7cab65e1ad5b0b28'] = 'Sicuro di volerlo eliminare? Il suo rapporto ordini, IVA e utili non sarà più attivo';
$_MODULE['<{ordertaxprofitreport}prestashop>ordertaxprofitreport_9c9ab624360885fcf93b7643c93b6748'] = 'crescente';
$_MODULE['<{ordertaxprofitreport}prestashop>ordertaxprofitreport_b19e9805fd7727c52ca04dfa3d24a2e5'] = 'decrescente';
$_MODULE['<{ordertaxprofitreport}prestashop>ordertaxprofitreport_c7247e0f47d955963f1dfdccca16b30d'] = 'aggiornamento del template';
$_MODULE['<{ordertaxprofitreport}prestashop>ordertaxprofitreport_ed73f6b46391b95e1d03c6818a73b8b9'] = 'ko';
$_MODULE['<{ordertaxprofitreport}prestashop>ordertaxprofitreport_ea38438926bba03c7df2af1e6d75c511'] = 'registrazione degli hooks KO';
$_MODULE['<{ordertaxprofitreport}prestashop>ordertaxprofitreport_a181a603769c1f98ad927e7367c7aa51'] = 'tutti';
$_MODULE['<{ordertaxprofitreport}prestashop>module-dao_class_c61ab4204f572e9b3aa84a040e0dab31'] = 'Vedere prodotti';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_5370b50f5788232a579e5c3429fb18ee'] = 'Data inserimento ordine';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_b216d0c9d30c5296511580555b3058a7'] = 'Data aggiornamento ordine';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_409392495c695c6cfbf64783753b815a'] = 'Data spedizione ordine';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_def4a99ed5f227665c8d570d6b72890b'] = 'Data fatturazione ordine';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_9127fe218b2cac7f0c8aecd7016a891d'] = 'Nome Negozio';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_d79cf3f429596f77db95c65074663a54'] = 'ID ordine';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_8ae4286d38bb2235def98fd68d7420d2'] = 'Numero fattura';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_19f2f692c96d2aff892bad71b80521e9'] = 'Numero spedizione';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_914419aa32f04011357d3b604a86d7eb'] = 'Trasportatore';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_f0aaaae189e9c7711931a65ffcd22543'] = 'Metodo di pagamento';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_d02bbc3cb147c272b0445ac5ca7d1a36'] = 'Stato ordine';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_ea067eb37801c5aab1a1c685eb97d601'] = 'Totale pagato TTC';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_f844c20c041eb15e94c27891be644918'] = 'Totale realmente pagato TTC';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_8047bd57bbed2e8ea0a7c67931a703fd'] = 'Totale prodotti HT';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_f147c0b57bb034a0b18d375a00caada5'] = 'Compreso Ecotassa UST escl.';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_6937770a9ed6e75bb990a566096493cf'] = 'Compreso importo Tax Ecotassa';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_ec2c244b1ff797b2ced33cccb55d3e42'] = 'Totale tasse di porto';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_22b5e30f8660c693620a131a463a7a69'] = 'IVA tasse di porto';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_65b2eb8951e9008b9594b2c7444bc9cb'] = 'Totale IVA raccolta';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_7d3f36bdfd25c41280b422cc90697291'] = 'Totale riduzioni HT';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_bd96af035f2858f0b37d2328b3735ed5'] = 'Riduzioni IVA';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_6f43f5151eb6cb7eca1ea079d8b81340'] = 'Totale imballaggio HT';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_5fbe938fb1f859affb8da34f2b175f3a'] = 'IVA imballaggio';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_e59097d27bdaaa2987aaaf8100fa91c2'] = 'IVA prodotti';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_3cf600f753fc673c1e57c0f3c807f4d7'] = 'Totale costo beni venduti';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_3601146c4e948c32b6424d2c0a7f0118'] = 'Prezzo';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_7f117379ebd5c7a5e478742b111ad9ee'] = 'Il Profitto Lordo al lordo degli sconti.';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_52f838a581b8e87c094fa0765218ecfb'] = 'Utili netti HT';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_c7083f41f6132cf5132b3354d1383147'] = 'Margine lordo prima degli sconti.';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_d786c466e41374f63f00875156696e0f'] = 'Margine netto HT';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_97f08a40f22a625d0cbfe03db3349108'] = 'Id Prodotto';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_be53a0541a6d36f6ecb879fa2c584b08'] = 'Foto';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_b9aefa40a54680bb258f9f9569290fae'] = 'Nome Prodotto';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_75ed578ac3cb02b0ba40002a25bc0403'] = 'Referenza prodotto';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_8284ae5df53e6e7ffc1f2cc67ae68765'] = 'Referenza fornitore';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_5bb375030580afe70139b30663173cb8'] = 'Referenza EAN13';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_dc459b2c746f3805dee7eaa42695aa50'] = 'Referenza UPC';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_82af5acf70292f0a0e81063ef38f6724'] = 'Il prodotto è stato eliminato, nessuna informazione disponibile';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_024f2ba49b4c1e30f90b7a04fc1b35a3'] = 'Totale Quantità';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_48f0cbaa50487ac274da786ae8383d36'] = 'Prezzo Unitario Medio';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_20a34c4e30c5bbe1d3f870ac55f0d831'] = 'Tasso IVA';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_f6b38fb0febd3c1178071b735a3330d0'] = 'Totale prodotto HT';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_347a231da3bd5e326e73e103abdd1673'] = 'IVA netta (prodotto - riduzione)';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_2bd92e2d3c1b16e032b23e040471b1b1'] = 'Utili lordi';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_921f6830401e5cd1e59240594d2e9bec'] = 'Margine lordo HT';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_43d729c7b81bfa5fc10e756660d877d1'] = 'Utili netti';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_58da2fff8dfce588a8fdd4d42c1f682f'] = 'Margine netto HT';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_60fe0c4da1f0775cbae4ed3a596febdc'] = '% del totale delle vendite';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_6f689f49f6945238d7d81c9d1ef1b67e'] = '% del totale utili lordi';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_fb3329a037ec126ff3eb59422b82ac72'] = '% del totale utili netti';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_bb77e12461293768706c1ced4cb2354c'] = '% cumulativa del totale delle vendite';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_e805fa6e3a9108f33ce8390327b4a737'] = '% cumulativa del totale utili lordi';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_c6df81ee565a2a9a5f36288167d4be47'] = '% cumulativa del totale utili netti';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_ad4c7beed61601926b2b2bdfd138f772'] = 'Nome produttore';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_416000ae4bd8e9942103c9cfd4e985f1'] = 'Il produttore è stato eliminato, nessuna informazione disponibile';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_a40dd44b49ccaa9c22aef96442cadd98'] = 'ID produttore';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_bb34a159a88035cce7ef1607e7907f8f'] = 'Nome Categoria';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_ec97ed38e53de96ab38a1e65c2de25f8'] = 'La categoria è stata eliminata, nessuna informazione disponibile';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_f9edc7482d3eff492319e6c033e9cf55'] = 'ID categoria';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_6848cd52e0f00104097433f402168ad5'] = 'Nome fornitore';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_7da2f8619de74aa4fa95052ad16a3243'] = 'Il fornitore è stato eliminato, nessuna informazione disponibile';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_7fd6956c0f477599c3c963b36458cf12'] = 'ID fornitore';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_ce8ae9da5b7cd6c3df2929543a9af92d'] = 'Email';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_aac772216aecbeca0e86d06671fe985a'] = 'Data di nascita';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_8d3f5eff9c40ee315d452392bed5309b'] = 'Cognome';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_20db0bfeecd8fe60533206a2b5e9891a'] = 'Nome';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_4bcd49c5567bd26de52b583562de4483'] = 'Data di inserimento cliente';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_4df4b43c0596fd33084382db7ada41a1'] = 'Data di aggiornamento cliente';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_1c76cbfe21c6f44c1d1e59d54f3e4420'] = 'Società';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_956205f0d2c8352f3d92aa3438f1b646'] = 'Indirizzo 1';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_2e21e83375deefc4a3620ab667157e27'] = 'Indirizzo 2';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_8bcdc441379cbf584638b0589a3f9adb'] = 'Codice postale';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_57d056ed0984166336b7879c2af3657f'] = 'Città';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_bcc254b55c4a1babdf1dcb82c207506b'] = 'Telefono';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_59716c97497eb9694541f7c3d37b1a4d'] = 'Stato';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_64500d3e065dad68345d63e37a182bb8'] = 'Primo ordine';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_d37c2bf1bd3143847fca087b354f920e'] = 'ID cliente';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_d957e2652355299cb367c4b7e07d9141'] = 'Ultimo ordine';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_e435e1597b793d65c3300af5049c2d2f'] = '# ordini';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_76ae87f51dcdf009e6537181bb6f30d5'] = '# prodotti ordinati';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_8783eff1323cf938b395319173177925'] = 'Carrello medio (TTC, tutto incluso)';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_3295a54e3830a75b4a3097420505d1e7'] = 'Prodotti ordinati';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_e7e9aee61e6618b7ab8cfff2af334196'] = 'ID Buono';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_8b94d893d4e0b0eb0600b3124f36bd1a'] = 'Data Buono';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_a52bea227179ecafe141e9b13318e74d'] = 'Totale HT';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_e86d4d3db54715c430a156cbf82a7812'] = 'Totale TTC';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_8334df53274fdf53563feb74baf0d2b8'] = 'Totale prodotti non fiscali - Costo totale';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_e58e20045a852787c62ba6a685c58c25'] = 'Totale prodotti non fiscali - Costo totale - Totale sconti tasse escl.';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_3fbe6a964fbe8dd864a59008e750656e'] = 'Utile lordo IVA / Totale prodotti non imposta x 100';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_639f2aeed02253fdb880732a91d57a52'] = '(Tasse Utile netto esclusa + Totale confezionamento tasse escl.) / (Totale prodotti non imposta -.. Totale sconti Iva escl + avvolgimento totale Iva escl) x 10';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_78463a384a5aa4fad5fa73e2f506ecfc'] = 'Inglese';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_ad225f707802ba118c22987186dd38e8'] = 'Francese';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_a240fa27925a635b08dc28c9e4f9216d'] = 'Ordine';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_065ab3a28ca4f16f55f103adc7d0226f'] = 'Spedizione';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_466eadd40b3c10580e3ab4e8061161ce'] = 'Fattura';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_8718093cc5771291c51e9d8d75e4e58d'] = 'Il numero di inizio ordine non è completo';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_1e9dfec8ceb4225e574fe913cae9e758'] = 'Il numero di fine ordine non è completo';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_60add46717e95760aac89a34a213dc0a'] = 'Il numero di inizio fattura non è completo';
$_MODULE['<{ordertaxprofitreport}prestashop>module-tools_class_e23eae8ab9676935cb3f51bf589de715'] = 'Il numero di fine fattura non è completo';
$_MODULE['<{ordertaxprofitreport}prestashop>admin-export_class_4b400cf1a3fd5f760dd8d613ec8f2e0e'] = 'Il tipo di template non è valido';
$_MODULE['<{ordertaxprofitreport}prestashop>admin-export_class_8718093cc5771291c51e9d8d75e4e58d'] = 'Il numero di inizio ordine non è completo';
$_MODULE['<{ordertaxprofitreport}prestashop>admin-export_class_a240fa27925a635b08dc28c9e4f9216d'] = 'Ordine';
$_MODULE['<{ordertaxprofitreport}prestashop>admin-export_class_1e9dfec8ceb4225e574fe913cae9e758'] = 'Il numero di fine ordine non è completo';
$_MODULE['<{ordertaxprofitreport}prestashop>admin-export_class_60add46717e95760aac89a34a213dc0a'] = 'Il numero di inizio fattura non è completo';
$_MODULE['<{ordertaxprofitreport}prestashop>admin-export_class_e23eae8ab9676935cb3f51bf589de715'] = 'Il numero di fine fattura non è completo';
$_MODULE['<{ordertaxprofitreport}prestashop>admin-export_class_fc00821b8ddd74aa9e882b2c083ff3cf'] = 'Il numero di inizio buono non è completo';
$_MODULE['<{ordertaxprofitreport}prestashop>admin-export_class_4a15d2433983408e3ba2307bcaecd7b8'] = 'Il numero di fine buono non è completo';
$_MODULE['<{ordertaxprofitreport}prestashop>admin-export_class_f43e7643b8e9370a80a640ab5d18ddf6'] = 'Si è verificato un errore durante l\'aggiornamento dello \"stato di selezione\"';
$_MODULE['<{ordertaxprofitreport}prestashop>admin-export_class_65db350a5f3acd5e9cf05d610a394682'] = 'Il campo di selezione non è valido';
$_MODULE['<{ordertaxprofitreport}prestashop>admin-export_class_b01102f5284584334270c0c37fcb92d9'] = 'La direzione di selezione non è valida';
$_MODULE['<{ordertaxprofitreport}prestashop>admin-export_class_eab36e1b95cf7497068aaad4661b98cc'] = 'La lista delle categorie non è una tabella';
$_MODULE['<{ordertaxprofitreport}prestashop>admin-export_class_8f461c277e4ab89b7cf566a095db3bc9'] = 'La lista dei produttori non è una tabella';
$_MODULE['<{ordertaxprofitreport}prestashop>admin-export_class_bea59ae2ad66b2f89114886363763244'] = 'La lista dei fornitori non è una tabella';
$_MODULE['<{ordertaxprofitreport}prestashop>admin-export_class_47948dd414948435b0b2b92ba56dfe8a'] = 'L\'opzione di visualizzazione della variante non è valida';
$_MODULE['<{ordertaxprofitreport}prestashop>admin-export_class_dd8baccde29a3f17d2d6dc4b4a333e98'] = 'La lista dei ID paese non è una tabella';
$_MODULE['<{ordertaxprofitreport}prestashop>admin-export_class_851bd9c9a17ef959f2d57421c44a7cb3'] = 'La lista dei gruppi cliente non è una tabella';
$_MODULE['<{ordertaxprofitreport}prestashop>admin-export_class_90c336f34c40ca27e9b3d6aadc449056'] = 'Si è verificato un errore durante l\'aggiornamento delle \"preferenze\"';
$_MODULE['<{ordertaxprofitreport}prestashop>admin-export_class_87557f11575c0ad78e4e28abedc13b6e'] = 'Fine';
$_MODULE['<{ordertaxprofitreport}prestashop>admin-export_class_a8c6472c3b4672f4101549a5f7fdd5c3'] = 'La data di fine deve essere un valore maggiore della data di inizio';
$_MODULE['<{ordertaxprofitreport}prestashop>admin-update_class_4b82e5cdd90fbd3a6b000e2b39ce3339'] = 'Si è verificato un errore durante l\'aggiornamento dell\'opzione \"intestazioni e totali\"';
$_MODULE['<{ordertaxprofitreport}prestashop>admin-update_class_faa3a8fa4293e373893043ff3b9417ee'] = 'Si è verificato un errore durante l\'aggiornamento dell\'opzione \"Formato data\"';
$_MODULE['<{ordertaxprofitreport}prestashop>admin-update_class_c38069d9e21696961ecb56b215a49d75'] = 'Si è verificato un errore durante l\'aggiornamento dell\'opzione \"numero di decimali dopo la virgola\"';
$_MODULE['<{ordertaxprofitreport}prestashop>admin-update_class_208bfc6b716a22e707e80bff7ae21141'] = 'Si è verificato un errore durante l\'aggiornamento dell\'opzione \"separatore decimale\"';
$_MODULE['<{ordertaxprofitreport}prestashop>admin-update_class_37afe90683268e034fe83342bf394f2f'] = 'Une erreur est survenue lors de la mise à jour de l\'option \"fixer une taille de cellule\"';
$_MODULE['<{ordertaxprofitreport}prestashop>admin-update_class_70f666c46f0f575682dce3071b0d2748'] = 'Si è verificato un errore durante l\'aggiornamento dell\' ordine per';
$_MODULE['<{ordertaxprofitreport}prestashop>admin-update_class_35a82907e1c8cd3e81555f2ff13e61a1'] = 'ID ordine';
$_MODULE['<{ordertaxprofitreport}prestashop>admin-update_class_179d2123ef38fe32afb6a1287ec9b50a'] = 'ID dettaglio ordine';
$_MODULE['<{ordertaxprofitreport}prestashop>admin-update_class_8bb66ba9e450affc5967ff7c3fe0107a'] = 'Une erreur est survenue lors de la mise à jour du prix d\'achat';
$_MODULE['<{ordertaxprofitreport}prestashop>admin-update_class_d6638fe6f1a2d636dec54690826e6fb4'] = 'Non c\'è nessun ordine per questo negozio';
$_MODULE['<{ordertaxprofitreport}prestashop>basic-settings_36d203068578209f63c0e501a6bd6a2b'] = 'Si prega di leggere con attenzione la nostra documentazione in / scheda AIUTO FAQ';
$_MODULE['<{ordertaxprofitreport}prestashop>basic-settings_83218ac34c1834c26781fe4bde918ee4'] = 'Benvenuto';
$_MODULE['<{ordertaxprofitreport}prestashop>basic-settings_2a94082b582d0620bae922fc14c36444'] = 'Impostazioni di base';
$_MODULE['<{ordertaxprofitreport}prestashop>basic-settings_74b7ffaf50e2a3c4d050e43e1cdc6f53'] = 'Aiuto / FAQ';
$_MODULE['<{ordertaxprofitreport}prestashop>basic-settings_0ff6eb37f842d564efa312bdf7c4f38b'] = 'Benvenuti e grazie di aver acquistato il nostro modulo';
$_MODULE['<{ordertaxprofitreport}prestashop>basic-settings_df678e223d77378a05d89fb6d790de3e'] = 'Modulo di esportazione';
$_MODULE['<{ordertaxprofitreport}prestashop>basic-settings_fc95f13ef64791ed6e8b9dab8f4d4d7a'] = 'Lascerà questa casella selezionata nella maggior parte dei casi, a meno che non voglia sfruttare i dati in un\'altra applicazione';
$_MODULE['<{ordertaxprofitreport}prestashop>basic-settings_688a21937c346d1c62020982b5a732a9'] = 'Includere le intestazioni e i totali';
$_MODULE['<{ordertaxprofitreport}prestashop>basic-settings_2ddc3e619828b2c0f07b89be00f1f532'] = 'Definire il formato data da visualizzare a ogni linea del report';
$_MODULE['<{ordertaxprofitreport}prestashop>basic-settings_534fd46732986cba0efeda8701592427'] = 'Formato data';
$_MODULE['<{ordertaxprofitreport}prestashop>basic-settings_2f554476eebba4c39ffaa873acd1b1c7'] = 'Numero di decimali dopo la virgola';
$_MODULE['<{ordertaxprofitreport}prestashop>basic-settings_5da24cfbd879004aa381e435067738a5'] = 'Il suo separatore decimale';
$_MODULE['<{ordertaxprofitreport}prestashop>basic-settings_2aefcd49d33f0a08c0af1bf1826a5dc9'] = 'Définir une largeur de cellule';
$_MODULE['<{ordertaxprofitreport}prestashop>basic-settings_bafd7322c6e97d25b6299b5d6fe8920b'] = 'Non';
$_MODULE['<{ordertaxprofitreport}prestashop>basic-settings_93cba07454f06a4a960172bbd6e2a435'] = 'Oui';
$_MODULE['<{ordertaxprofitreport}prestashop>basic-settings_829ac370756b1b19ddc9d20ae7fa42f2'] = 'Pour les rapports HTML seulement';
$_MODULE['<{ordertaxprofitreport}prestashop>basic-settings_87cb99e72eafb07be7a04a05e645b4f1'] = 'Largeur de la cellule';
$_MODULE['<{ordertaxprofitreport}prestashop>basic-settings_06933067aafd48425d67bcb01bba5cb6'] = 'Aggiornare';
$_MODULE['<{ordertaxprofitreport}prestashop>basic-settings_869e770c1d3c500cb96656c6239ddb5e'] = 'FAQ IN LINEA';
$_MODULE['<{ordertaxprofitreport}prestashop>basic-settings_af95c95ffb5ffd8d0ff2e197782fa644'] = 'Come gestire relazione';
$_MODULE['<{ordertaxprofitreport}prestashop>basic-settings_c43b7cbb611179919912ca11e824a33d'] = 'Comment sont gérer les calculs ?';
$_MODULE['<{ordertaxprofitreport}prestashop>basic-settings_c0241eae411627c19ba9835b6d194b1c'] = 'CONTATTI';
$_MODULE['<{ordertaxprofitreport}prestashop>confirm_c888438d14855d7d96a2724ee9c306bd'] = 'Parametri di aggiornamento';
$_MODULE['<{ordertaxprofitreport}prestashop>error_5f36cf760a5c474cc32a6d35d9c50d05'] = 'Codice errore';
$_MODULE['<{ordertaxprofitreport}prestashop>module-update_a1e0a22d72e52d41a027a4b712272ba3'] = 'Si è verificato un errore durante l\'esecuzione della richiesta per';
$_MODULE['<{ordertaxprofitreport}prestashop>module-update_aab9e1de16f38176f86d7a92ba337a8d'] = 'tabella';
$_MODULE['<{ordertaxprofitreport}prestashop>module-update_06e3d36fa30cea095545139854ad1fb9'] = 'campo';
$_MODULE['<{ordertaxprofitreport}prestashop>module-update_d49c385804594f966dcb6eedd658504a'] = 'nella tabella';
$_MODULE['<{ordertaxprofitreport}prestashop>module-update_c0ceed3d6337c651186565208b96991b'] = 'SQL source/ message';
$_MODULE['<{ordertaxprofitreport}prestashop>module-update_80c8df16f1f26e89eefffe8492540145'] = 'Si prega di ricaricare questa pagina per riprovare l\'aggiornamento delle tabelle e dei campo SQL o verifichi con il suo host perché si verifica un errore SQL';
$_MODULE['<{ordertaxprofitreport}prestashop>multi-shop-config_b30753ed85c2d22559cdcf14d8226751'] = 'Per ragioni di prestazioni, il modulo non può essere configurato o configurato nel contesto di gruppo o di tutti i negozi. Si prega di configurare o esportare un negozio alla volta.';
$_MODULE['<{ordertaxprofitreport}prestashop>register-orders_be7d9ac214bd9b4f5af3a922cf844bf5'] = 'Abbiamo bisogno di effettuare alcune operazioni';
$_MODULE['<{ordertaxprofitreport}prestashop>register-orders_ceb81efbca7febd4efa509ebaa575420'] = 'Per poter esportare i report con un margine netto il più preciso possibile, abbiamo bisogno di eseguire qualche operazione al database e calcolare le nostre cifre. Si prega di cliccare sul link qua sotto per lanciare l\'aggiornamento ora';
$_MODULE['<{ordertaxprofitreport}prestashop>register-orders_c0e6e174de6e6f3ba19d325e0b1c1334'] = 'Operazioni di database';
$_MODULE['<{ordertaxprofitreport}prestashop>register-orders_06933067aafd48425d67bcb01bba5cb6'] = 'Aggiornare';
$_MODULE['<{ordertaxprofitreport}prestashop>register-orders_c3be74db97c976391b8d76bede8aec96'] = 'Operazioni di database in corso…';
$_MODULE['<{ordertaxprofitreport}prestashop>form_81912d9bfe0426a3d7699bd246fed17e'] = 'Rapporto ordini, IVA, utili';
$_MODULE['<{ordertaxprofitreport}prestashop>form_c5ffaba818ee05ac13a4ac9fbf563c46'] = 'ATTENTION : Vous avez activé les stocks avancés. A cause de la structure de la base données de Prestashop, le module ne peut pas déterminer le prix d\'achat et calculer les profits, quand cette option est activée.';
$_MODULE['<{ordertaxprofitreport}prestashop>form_bca8ab0a72428866a6f0311a3092eea3'] = 'Preferenze di esportazione';
$_MODULE['<{ordertaxprofitreport}prestashop>form_f67f1e0a40edd04af7362c853b3efde6'] = 'Scelga il suo formato di report';
$_MODULE['<{ordertaxprofitreport}prestashop>form_7b3f4450b1ed91cbae0125d9e65a2789'] = 'Selezioni il formato di report. Ogni formato permette di visualizzare una lista di dati predefiniti';
$_MODULE['<{ordertaxprofitreport}prestashop>form_6dace83250c630bfbf38c78872cd8167'] = 'Scelga il suo formato di visualizzazione';
$_MODULE['<{ordertaxprofitreport}prestashop>form_f519607d4fe7c126f9ca9acd0ee6a0fd'] = 'Definire il formato di visualizzazione del report';
$_MODULE['<{ordertaxprofitreport}prestashop>form_9b9935ad5969c28de13381a2e512b47c'] = 'NOTA:';
$_MODULE['<{ordertaxprofitreport}prestashop>form_2be5bdb54291894d3dd380c65aef6415'] = 'Se si utilizza il formato di output \"csv\", alcuni numeri possono essere visualizzati con il formato scientifica, in questo caso, modificare la struttura delle cellule al fine di vedere il valore assoluto del numero in software excel per esempio';
$_MODULE['<{ordertaxprofitreport}prestashop>form_d4d3bef5ebd27233b2b462dcc4825155'] = 'Encoding UTF-8';
$_MODULE['<{ordertaxprofitreport}prestashop>form_37035d2e98371b82b9affefb628ef4a0'] = 'Esporti in UTF-8. L\'applicazione excel non gestisce l\'encoding UTF-8.';
$_MODULE['<{ordertaxprofitreport}prestashop>form_e961855da8e75b0e48725b78378b1107'] = 'IMPORTANT A PROPOS DES PRIX D\'ACHAT ET DU CALCUL DES PROFITS';
$_MODULE['<{ordertaxprofitreport}prestashop>form_5063622908f5d0bfe2a520796600065e'] = 'Si vous voulez calculer votre marge et vos bénéfices de manière plus précise, merci de suivre attentivement le lien qui suis :';
$_MODULE['<{ordertaxprofitreport}prestashop>form_2a5238c6872a48cccc1b20294e0b08ba'] = 'Comment est géré le prix d\'achat ?';
$_MODULE['<{ordertaxprofitreport}prestashop>form_58cb31c940f8e84899071c324d5fcc2f'] = 'Filtri di data';
$_MODULE['<{ordertaxprofitreport}prestashop>form_a5056090b4bc2a134833f61a0fd636bf'] = 'Per data de ordine';
$_MODULE['<{ordertaxprofitreport}prestashop>form_5da618e8e4b89c66fe86e32cdafde142'] = 'dal';
$_MODULE['<{ordertaxprofitreport}prestashop>form_e12167aa0a7698e6ebc92b4ce3909b53'] = 'al';
$_MODULE['<{ordertaxprofitreport}prestashop>form_6fc16081479d28fc3a2300ef1877386e'] = 'Per data di fattura';
$_MODULE['<{ordertaxprofitreport}prestashop>form_809f2f3c4be38374bb9e192d21779143'] = 'Dal punto di vista contabile, data della fattura deve essere usato';
$_MODULE['<{ordertaxprofitreport}prestashop>form_9ff3b5b8b130ebd5f699f37bccc2fe01'] = 'Per data di spedizione';
$_MODULE['<{ordertaxprofitreport}prestashop>form_a434b8a39675b02c717f854a8180c94a'] = 'Per numero di ordini';
$_MODULE['<{ordertaxprofitreport}prestashop>form_103f199ec4884712be0c51c5dbe53e65'] = 'Per numero di fattura';
$_MODULE['<{ordertaxprofitreport}prestashop>form_281bbeb63f7c7a9ac8107524f7821e93'] = 'Per data di buono';
$_MODULE['<{ordertaxprofitreport}prestashop>form_463e3fc8563b15e65878f8846cb0b028'] = 'Filtri di stato';
$_MODULE['<{ordertaxprofitreport}prestashop>form_4c41e0bd957698b58100a5c687d757d9'] = 'Selezionare tutto';
$_MODULE['<{ordertaxprofitreport}prestashop>form_c8b84a4981af221d5531dfae0f655222'] = 'Filtri di paese';
$_MODULE['<{ordertaxprofitreport}prestashop>form_10ba9dab52555111007ebed4ac1d54d4'] = 'Scegli i tuoi paesi';
$_MODULE['<{ordertaxprofitreport}prestashop>form_c3dce9c2f449bfcf921bf24a39731460'] = 'Selezioni il suo paese per estrarre solamente i dati di quest\'ultimo';
$_MODULE['<{ordertaxprofitreport}prestashop>form_06f1ac65b0a6a548339a38b348e64d79'] = 'Ordine di selezione';
$_MODULE['<{ordertaxprofitreport}prestashop>form_42c744ebb60a239f54b7f10df264c0bc'] = 'Selezioni il suo campo';
$_MODULE['<{ordertaxprofitreport}prestashop>form_02674a4ef33e11c879283629996c8ff8'] = 'Senso';
$_MODULE['<{ordertaxprofitreport}prestashop>form_3bf568445bf0afb3ffc40c1af7226931'] = 'Filtri di prodotto';
$_MODULE['<{ordertaxprofitreport}prestashop>form_16629982b0a460d8372fa8ab56a0903a'] = 'Selezioni le sue categorie';
$_MODULE['<{ordertaxprofitreport}prestashop>form_02ff3d5eb6acadb104c97ed6b3449a5f'] = 'Selezioni i suoi produttori';
$_MODULE['<{ordertaxprofitreport}prestashop>form_2942adbcbd0e002ff06b330ffe9e06dc'] = 'Selezioni i suoi fornitori';
$_MODULE['<{ordertaxprofitreport}prestashop>form_498ef55c478439740495d553329b02a5'] = 'Visualizzazione per varianti';
$_MODULE['<{ordertaxprofitreport}prestashop>form_7fa3b767c460b54a2be4d49030b349c7'] = 'no';
$_MODULE['<{ordertaxprofitreport}prestashop>form_a6105c0a611b41b08f1209506350279e'] = 'sì';
$_MODULE['<{ordertaxprofitreport}prestashop>form_905472b73c7b16c40b5f4df354d66f2d'] = 'Mostrare le foto prodotto';
$_MODULE['<{ordertaxprofitreport}prestashop>form_8bffd0df8a023620b5372149c01ec9c9'] = 'Sì, scegliere questa taglia:';
$_MODULE['<{ordertaxprofitreport}prestashop>form_d3766dc1be9587c9545d9ef039ea6872'] = 'Selezioni il suo tasso di IVA';
$_MODULE['<{ordertaxprofitreport}prestashop>form_70cc3d3fb8178f19eabf99d3562e85c6'] = 'Filtri di clienti';
$_MODULE['<{ordertaxprofitreport}prestashop>form_0095a9fa74d1713e43e370a7d7846224'] = 'Esportare';
$_MODULE['<{ordertaxprofitreport}prestashop>report-csv_d98a07f84921b24ee30f86fd8cd85c3c'] = 'di';
$_MODULE['<{ordertaxprofitreport}prestashop>report-csv_382b0f5185773fa0f67a8ed8056c7759'] = 'N/A';
$_MODULE['<{ordertaxprofitreport}prestashop>report-csv_01b6e20344b68835c5ed1ddedf20d531'] = 'a';
$_MODULE['<{ordertaxprofitreport}prestashop>report-csv_edd291d1439a6c1c18fe38bee411580f'] = 'Totali';
$_MODULE['<{ordertaxprofitreport}prestashop>report-csv_d82615a23e54f9456c0b0194239474df'] = 'Nessun ordine';
$_MODULE['<{ordertaxprofitreport}prestashop>report-html_d98a07f84921b24ee30f86fd8cd85c3c'] = 'di';
$_MODULE['<{ordertaxprofitreport}prestashop>report-html_382b0f5185773fa0f67a8ed8056c7759'] = 'N/A';
$_MODULE['<{ordertaxprofitreport}prestashop>report-html_01b6e20344b68835c5ed1ddedf20d531'] = 'a';
$_MODULE['<{ordertaxprofitreport}prestashop>report-html_ce1526ee69447d2e7524d503b20fa5fd'] = 'Per avere maggiori informazioni sulla gestione di calcoli, è possibile posizionare il mouse sopra l\'icona';
$_MODULE['<{ordertaxprofitreport}prestashop>report-html_3844e7fcba84200517b8db423d23b4b5'] = 'nell\'intestazione della tabella sottostante';
$_MODULE['<{ordertaxprofitreport}prestashop>report-html_fde47c510518d2322c606f11cb4172ab'] = 'NOTA IMPORTANTE: Gli utili e il margine lordo possono essere calcolati precisamente solo se il prodotto venduto non è stato eliminato dopo la conferma dell\'ordine. Se alcuni prodotti venduti sono stati eliminati i valori per queste colonne saranno sbagliati. Se il prezzo di acquisto è stato modificato dopo la conferma dell\'ordine, il margine lordo calcolato sarà basato sul prezzo corrente di acquisto del prodotto e non sul prezzo di acquisto del prodotto al momento dell\'ordine. Ciò è dovuto all\'applicazione PrestaShop stessa e purtroppo noi non possiamo fare niente a questo proposito. Tutto ciò sarà corretto a partire dalla versione 1.5 di PrestaShop, nella quale il prezzo di acquisto sarà stockato nel momento del dettaglio dell\'ordine.';
$_MODULE['<{ordertaxprofitreport}prestashop>report-html_d82615a23e54f9456c0b0194239474df'] = 'Nessun ordine';

View File

@ -0,0 +1,74 @@
<?php
/**
* admin-ctrl_class.php file defines controller which manage type of derived admin object of abstract type as factory pattern
*/
class BT_AdminCtrl
{
/**
* Magic Method __construct
*/
public function __construct()
{
}
/**
* Magic Method __destruct
*/
public function __destruct()
{
}
/**
* run() method execute asbtract derived admin object
* Add admin object type => declare a new class file in admin lib, define name type in main class (OTPR) and add case of 'switch' in run() method
*
* @param string $sAdminType : type of interface to display
* @param array $aRequest : request
* @return array $aDisplay : empty => false / not empty => true
*/
public function run($sAdminType, $aRequest)
{
// set
$aDisplay = array();
// include interface
require_once(_OTPR_PATH_LIB_ADMIN . 'i-admin.php');
switch ($sAdminType) {
case 'display' :
// include matched admin object
require_once(_OTPR_PATH_LIB_ADMIN . 'admin-display_class.php');
$oAdminType = BT_AdminDisplay::create();
break;
case 'update' : // update basic settings /
// include matched admin object
require_once(_OTPR_PATH_LIB_ADMIN . 'admin-update_class.php');
$oAdminType = BT_AdminUpdate::create();
break;
case 'export' : // export report /
// include matched admin object
require_once(_OTPR_PATH_LIB_ADMIN . 'admin-export_class.php');
$oAdminType = BT_AdminExport::create();
break;
default :
$oAdminType = false;
break;
}
// process data to use in view (tpl)
if (!empty($oAdminType)) {
$aDisplay = $oAdminType->run($aRequest);
// destruct
unset($oAdminType);
}
return $aDisplay;
}
}

View File

@ -0,0 +1,223 @@
<?php
/**
* admin-display_class.php file defines method to display content tabs of admin page and module page form
*/
class BT_AdminDisplay implements BT_IAdmin
{
/**
* Magic Method __construct
*/
public function __construct()
{
}
/**
* Magic Method __destruct
*/
public function __destruct()
{
}
/**
* run() method display all configured data admin
*
* @param array $aParam
* @return array
*/
public function run($aParam = null)
{
// set variables
$aDisplayData = array();
// get type
$aParam['sType'] = empty($aParam['sType'])? 'settings' : $aParam['sType'];
switch ($aParam['sType']) {
case 'settings' : // use case - display basic settings
case 'searchForm' : // use case - display search form of admin tab
require_once(_OTPR_PATH_LIB . 'module-dao_class.php');
// execute match function
$aDisplayData = call_user_func_array(array($this, '_display' . ucfirst($aParam['sType'])), array($aParam));
// check if orders detail have been registered
$aDisplayData['assign']['bRegisterOrders'] = BT_OtprModuleDao::isExistDiscountOrders();
$aDisplayData['assign']['sOrdersTplPath'] = _OTPR_PATH_TPL . _OTPR_TPL_ADMIN_PATH . _OTPR_TPL_REGISTER_ORDERS;
// check if 1.5 and multishop active and if group is selected
$bMultiShop = BT_OtprModuleTools::checkGroupMultiShop();
if ($bMultiShop && $aParam['sType'] != 'searchForm') {
$aDisplayData['assign']['bMultiGroupError'] = true;
$aDisplayData['assign']['sMultiTplPath'] = _OTPR_PATH_TPL . _OTPR_TPL_ADMIN_PATH . _OTPR_TPL_MULTI_SHOP;
}
break;
default :
break;
}
return $aDisplayData;
}
/**
* _displaySettings() method displays first page with all basic settings
*
* @param array $aPost
* @return array
*/
private function _displaySettings(array $aPost)
{
$aData = array();
// set date format translation
BT_OtprModuleTools::setDateFormatTitle();
// get token
if (version_compare(_PS_VERSION_, '1.5', '>')) {
$sAdminUrl = $_SERVER['SCRIPT_NAME'] . '?controller=AdminOrderTaxProfitReport&token=' . Tools::getAdminTokenLite('AdminOrderTaxProfitReport');
}
else {
$sAdminUrl = $_SERVER['SCRIPT_NAME'] . '?tab=AdminOrderTaxProfitReport&token=' .
Tools::getAdminToken('AdminOrderTaxProfitReport'.(int)(Tab::getIdFromClassName('AdminOrderTaxProfitReport')).(Tools::getValue('id_employee', OrderTaxProfitReport::$oCookie->id_employee)));
}
// set smarty variables
$aData['assign'] = array(
'bPS16' => version_compare(_PS_VERSION_, '1.6', '>'),
'bPS1606' => version_compare(_PS_VERSION_, '1.6.0.5', '>'),
'sURI' => BT_OtprModuleTools::truncateUri(),
'sActionSettings' => 'update',
'sTypeSettings' => 'settings',
'sDateFormat' => OrderTaxProfitReport::$aConfiguration[_OTPR_MODULE_NAME . '_DATE_FORMAT'],
'bUseHeadings' => OrderTaxProfitReport::$aConfiguration[_OTPR_MODULE_NAME . '_HEADINGS_TOTAL'],
'iFloatNumber' => OrderTaxProfitReport::$aConfiguration[_OTPR_MODULE_NAME . '_FLOAT_NUMBER'],
'sFloatSeparator' => OrderTaxProfitReport::$aConfiguration[_OTPR_MODULE_NAME . '_FLOAT_SEPARATOR'],
'bFixCellSize' => OrderTaxProfitReport::$aConfiguration[_OTPR_MODULE_NAME . '_FIX_CELL_SIZE'],
'iCellSize' => OrderTaxProfitReport::$aConfiguration[_OTPR_MODULE_NAME . '_CELL_SIZE'],
'iDefaultLang' => intval(OrderTaxProfitReport::$iCurrentLang),
'sHeaderTplPath' => _OTPR_PATH_TPL . _OTPR_TPL_ADMIN_PATH . _OTPR_TPL_HEADER,
'sModuleUptTplPath' => _OTPR_PATH_TPL . _OTPR_TPL_ADMIN_PATH . _OTPR_TPL_MODULE_UPDATE,
'aDateFormat' => $GLOBALS[_OTPR_MODULE_NAME . '_DATE_FORMAT'],
'sAdminTabUrl' => $sAdminUrl,
'sCurrentIso' => Language::getIsoById(OrderTaxProfitReport::$iCurrentLang),
'sDocUri' => _MODULE_DIR_ . _OTPR_MODULE_SET_NAME . '/',
'sDocName' => 'readme_' . ((OrderTaxProfitReport::$sCurrentLang == 'fr')? 'fr' : 'en') . '.pdf',
'sContactUs' => 'http://www.businesstech.fr/' . ((OrderTaxProfitReport::$sCurrentLang == 'fr')? 'fr/contactez-nous' : 'en/contact-us'),
'sTs' => time(),
);
// set tpl
$aData['tpl'] = _OTPR_TPL_ADMIN_PATH . _OTPR_TPL_SETTINGS;
return $aData;
}
/**
* _displaySearchForm() method displays search form of admin tab
*
* @param array $aPost
* @return array
*/
private function _displaySearchForm(array $aPost)
{
$aData = array();
// get templates
$aTemplates = BT_OtprModuleDao::getTemplates();
// set tpl title
BT_OtprModuleTools::getTranslatedTplTitle($aTemplates);
// set translation of columns title
BT_OtprModuleTools::setColTitle();
// get categories
$aCategories = BT_OtprModuleDao::getCategories();
// get different tax
$aTax = BT_OtprModuleDao::getTax();
// get different customer group
$aGroup = Group::getGroups(OrderTaxProfitReport::$iCurrentLang);
$aFormatGroup = array();
foreach ($aGroup as $iKey => $aGroupId) {
$aFormatGroup[$aGroupId['id_group']] = $aGroupId['name'];
}
unset($aGroup);
// add indent for each category => display combo with indentation
if (!empty($aCategories)) {
foreach ($aCategories as $nKey => &$aCategory) {
$aCategory['sIndent'] = str_repeat('&nbsp;', $aCategory['iNewLevel'] * 5);
}
}
if (!empty(OrderTaxProfitReport::$aConfiguration[_OTPR_MODULE_NAME . '_PREFERENCES'])) {
OrderTaxProfitReport::$aConfiguration[_OTPR_MODULE_NAME . '_PREFERENCES'] = unserialize(OrderTaxProfitReport::$aConfiguration[_OTPR_MODULE_NAME . '_PREFERENCES']);
}
// get preselection
$aSelection = !empty(OrderTaxProfitReport::$aConfiguration[_OTPR_MODULE_NAME . '_STATUS_SELECTION'])? unserialize(OrderTaxProfitReport::$aConfiguration[_OTPR_MODULE_NAME . '_STATUS_SELECTION']) : OrderTaxProfitReport::$aConfiguration[_OTPR_MODULE_NAME . '_STATUS_SELECTION'];
// get countries
$aCountries = Country::getCountries(OrderTaxProfitReport::$iCurrentLang, true);
// set smarty variables
$aData['assign'] = array(
'sURI' => (Tools::getIsset('sAdminTabURI')? Tools::getValue('sAdminTabURI') : BT_OtprModuleTools::truncateUri()),
'sActionExport' => 'export', /* use case - different submit in post method without XHR */
'aTypeExport' => $GLOBALS[_OTPR_MODULE_NAME . '_EXPORT_TYPE'],
'sDateFormat' => OrderTaxProfitReport::$aConfiguration[_OTPR_MODULE_NAME . '_DATE_FORMAT'],
'bUseHeadings' => OrderTaxProfitReport::$aConfiguration[_OTPR_MODULE_NAME . '_HEADINGS_TOTAL'],
'aPreferences' => OrderTaxProfitReport::$aConfiguration[_OTPR_MODULE_NAME . '_PREFERENCES'],
'aSelection' => $aSelection,
'iDefaultLang' => intval(OrderTaxProfitReport::$iCurrentLang),
'sDefaultLang' => OrderTaxProfitReport::$sCurrentLang,
'sHeaderTplPath' => _OTPR_PATH_TPL . _OTPR_TPL_ADMIN_PATH . _OTPR_TPL_HEADER,
'sModuleUptTplPath' => _OTPR_PATH_TPL . _OTPR_TPL_ADMIN_PATH . _OTPR_TPL_MODULE_UPDATE,
'aTemplates' => $aTemplates,
'aOrderStatusTitle' => BT_OtprModuleDao::getStatusOrder(),
'sDateFormat' => ((OrderTaxProfitReport::$aConfiguration[_OTPR_MODULE_NAME . '_DATE_FORMAT'] != false)? $GLOBALS[_OTPR_MODULE_NAME . '_DATE_FORMAT'][OrderTaxProfitReport::$aConfiguration[_OTPR_MODULE_NAME . '_DATE_FORMAT']]['format'] : $GLOBALS[_OTPR_MODULE_NAME . '_DATE_FORMAT']['en']['format']) ,
'aSortGroupFields' => BT_OtprModuleTools::getSortFields(),
'aGroups' => $aFormatGroup,
'aTaxRate' => $aTax,
'aCategories' => $aCategories,
'aManufacturers' => Manufacturer::getManufacturers(),
'aSuppliers' => Supplier::getSuppliers(),
'aCountries' => ((count($aCountries) == 1)? false : $aCountries),
'aWayType' => $GLOBALS[_OTPR_MODULE_NAME . '_WAY'],
'bUseJqueryUI' => true,
'bUseJqueryFancy' => true,
'aImageSizes' => ImageType::getImagesTypes('products'),
'bSearchForm' => true,
'sCurrentIso' => Language::getIsoById(OrderTaxProfitReport::$iCurrentLang),
'bStockAdvanceEnable' => Configuration::get('PS_ADVANCED_STOCK_MANAGEMENT'),
);
// set tpl
$aData['tpl'] = _OTPR_TPL_FORM;
return $aData;
}
/**
* create() method manages singleton
*
* @return obj
*/
public static function create()
{
static $oDisplay;
if (null === $oDisplay) {
$oDisplay = new BT_AdminDisplay();
}
return $oDisplay;
}
}

View File

@ -0,0 +1,503 @@
<?php
/**
* admin-export_class.php file defines method to export report in many format
*/
class BT_AdminExport implements BT_IAdmin
{
/**
* @var array $aError : array get error
*/
private static $_aError = array();
/**
* @var array $_aPost : array of params
*/
private static $_aPost = array();
/**
* Magic Method __construct
*/
public function __construct()
{
}
/**
* Magic Method __destruct
*/
public function __destruct()
{
}
/**
* run() method update all tabs content of admin page
*
* @param array $aParam
* @return array
*/
public function run($aParam = null)
{
// set variables
$aDisplayData = array();
switch ($aParam['sType']) {
case 'csv' : // use case - return downloadable csv report
case 'html' : // use case - return html report
// require
require_once(_OTPR_PATH_LIB . 'module-dao_class.php');
// get params
self::$_aPost = $aParam;
// execute match function
$aDisplayData = call_user_func(array($this, '_export' . ucfirst($aParam['sType'])));
break;
default :
break;
}
return $aDisplayData;
}
/**
* _exportCsv() method returns downloadable csv report
*
* @return array
*/
private function _exportCsv()
{
// set
$aUpdateData = array();
$aUpdateData = $this->_check();
// get configuration options
BT_OtprModuleTools::getConfiguration();
// use case - no errors
if (empty(self::$_aError)) {
// set col title
BT_OtprModuleTools::setColTitle();
// decode html
$aUpdateData['bHtmlDecode'] = true;
$aUpdateData['sOutputType'] = 'csv';
// get DAO report
$aUpdateData['aOrders'] = BT_OtprModuleDao::getReport($aUpdateData);
// assign carriage return
$aUpdateData['sCR'] = chr(13);
// display
$sContent = OrderTaxProfitReport::$oModule->displayModule(_OTPR_TPL_REPORT_CSV, $aUpdateData);
// flush header
@ob_end_clean();
// set header
header('Content-type: text/csv');
header('Content-Disposition: attachment; filename="' . _OTPR_UPLOAD_REPORT_FILE . '-' . $aUpdateData['sReportName'] . '_' . date('Ymd', time()) . '.csv' . '"');
// read file
echo $sContent;
// exit
exit(0);
}
// use case - errors while checking or writing report file
$aUpdateData['aErrors'] = self::$_aError;
$aUpdateData['sErrorTplPath'] = _OTPR_PATH_TPL . _OTPR_TPL_ERROR;
$aUpdateData['bDisplayReport'] = false;
// require admin display class - to factorise
require_once(_OTPR_PATH_LIB_ADMIN . 'admin-display_class.php');
// get run of admin display in order to display first page of admin with basic settings updated
$aData = BT_AdminDisplay::create()->run(array('sType' => 'searchForm'));
// use case - empty error
$aData['assign'] = array_merge($aData['assign'], $aUpdateData);
return $aData;
}
/**
* _exportHtml() method returns HTML report
*
* @return array
*/
private function _exportHtml()
{
// flush header
@ob_end_clean();
// set
$aAssign = array();
// check and get data
$aAssign = $this->_check(true, true);
// get configuration options
BT_OtprModuleTools::getConfiguration();
// use case - errors
if (!empty(self::$_aError)) {
$aAssign['aErrors'] = self::$_aError;
$aAssign['sErrorTplPath'] = _OTPR_PATH_TPL . _OTPR_TPL_ERROR;
$aAssign['bDisplayReport'] = false;
}
else {
// get config
BT_OtprModuleTools::getConfiguration();
// set col title
BT_OtprModuleTools::setColTitle();
// set prefix
BT_OtprModuleTools::setColsSuffix();
$aAssign['sOutputType'] = 'html';
// get DAO report
$aAssign['aOrders'] = BT_OtprModuleDao::getReport($aAssign);
$aAssign['bDisplayReport'] = true;
$aAssign['bFixCellSize'] = OrderTaxProfitReport::$aConfiguration[_OTPR_MODULE_NAME . '_FIX_CELL_SIZE'];
$aAssign['iCellSize'] = OrderTaxProfitReport::$aConfiguration[_OTPR_MODULE_NAME . '_CELL_SIZE'];
}
// use case - empty error
OrderTaxProfitReport::$sQueryMode = 'xhr';
return array(
'assign' => $aAssign, 'tpl' => _OTPR_TPL_REPORT_HTML
);
}
/**
* _check() method checks params
*
* @param bool $bHeadings
* @param bool $bUTF8
* @return array
*/
private function _check($bHeadings = false, $bUTF8 = false)
{
// set
$aData = array();
// use case - template type
if (!Tools::getIsset(strtolower(_OTPR_MODULE_NAME) . 'Template')
|| (Tools::getIsset(strtolower(_OTPR_MODULE_NAME) . 'Template')
&& !array_key_exists(self::$_aPost[strtolower(_OTPR_MODULE_NAME) . 'Template'], $GLOBALS[_OTPR_MODULE_NAME . '_SEARCH_TEMPLATE']))
) {
self::$_aError[] = array('msg' => OrderTaxProfitReport::$oModule->l('Template type isn\'t valid', 'admin-export_class'), 'code' => 140);
}
else {
$aData['aTemplateCols'] = $GLOBALS[_OTPR_MODULE_NAME . '_SEARCH_TEMPLATE'][self::$_aPost[strtolower(_OTPR_MODULE_NAME) . 'Template']]['cols'];
$aData['sGroupBy'] = $GLOBALS[_OTPR_MODULE_NAME . '_SEARCH_TEMPLATE'][self::$_aPost[strtolower(_OTPR_MODULE_NAME) . 'Template']]['groupby'];
$aData['sOrderBy'] = $GLOBALS[_OTPR_MODULE_NAME . '_SEARCH_TEMPLATE'][self::$_aPost[strtolower(_OTPR_MODULE_NAME) . 'Template']]['orderby'];
$aData['sGroup'] = $GLOBALS[_OTPR_MODULE_NAME . '_SEARCH_TEMPLATE'][self::$_aPost[strtolower(_OTPR_MODULE_NAME) . 'Template']]['group'];
$aData['sReportName'] = self::$_aPost[strtolower(_OTPR_MODULE_NAME) . 'Template'];
// Used for product reports if the user has decided to show product photos
// If it is not equal to 0, then it is equal to the desired image size
// If it is 0, we set the column not to be displayed
if (Tools::getValue(strtolower(_OTPR_MODULE_NAME).'ShowPhotos') && strval(Tools::getValue(strtolower(_OTPR_MODULE_NAME).'ShowPhotos')) != '0') {
$aData['mPhotos'] = Tools::getValue(strtolower(_OTPR_MODULE_NAME).'ShowPhotos');
}
else {
$GLOBALS[_OTPR_MODULE_NAME . '_COLS']['id_image']['use'] = false;
$GLOBALS[_OTPR_MODULE_NAME . '_COLS']['id_image']['display'] = false;
}
}
// use case - start and end order and invoice number
if (!empty(self::$_aPost[strtolower(_OTPR_MODULE_NAME) . 'OrderStart'])) {
if (!is_numeric(self::$_aPost[strtolower(_OTPR_MODULE_NAME) . 'OrderStart'])) {
self::$_aError[] = array('msg' => OrderTaxProfitReport::$oModule->l('Order start number isn\'t an integer', 'admin-export_class'), 'code' => 141);
}
else {
$aData['iOrderStart'] = self::$_aPost[strtolower(_OTPR_MODULE_NAME) . 'OrderStart'];
$aData['iStart'] = self::$_aPost[strtolower(_OTPR_MODULE_NAME) . 'OrderStart'];
$aData['sRangeLabel'] = OrderTaxProfitReport::$oModule->l('Order', 'admin-export_class');
}
}
if (!empty(self::$_aPost[strtolower(_OTPR_MODULE_NAME) . 'OrderEnd'])) {
if (!is_numeric(self::$_aPost[strtolower(_OTPR_MODULE_NAME) . 'OrderEnd'])) {
self::$_aError[] = array('msg' => OrderTaxProfitReport::$oModule->l('Order end number isn\'t an integer', 'admin-export_class'), 'code' => 142);
}
else {
$aData['iOrderEnd'] = self::$_aPost[strtolower(_OTPR_MODULE_NAME) . 'OrderEnd'];
$aData['iEnd'] = self::$_aPost[strtolower(_OTPR_MODULE_NAME) . 'OrderEnd'];
$aData['sRangeLabel'] = OrderTaxProfitReport::$oModule->l('Order', 'admin-export_class');
}
}
if (!empty(self::$_aPost[strtolower(_OTPR_MODULE_NAME) . 'InvoiceStart'])) {
if (!is_numeric(self::$_aPost[strtolower(_OTPR_MODULE_NAME) . 'InvoiceStart'])) {
self::$_aError[] = array('msg' => OrderTaxProfitReport::$oModule->l('Invoice start number isn\'t an integer', 'admin-export_class'), 'code' => 143);
}
else {
$aData['iInvoiceStart'] = self::$_aPost[strtolower(_OTPR_MODULE_NAME) . 'InvoiceStart'];
$aData['iStart'] = self::$_aPost[strtolower(_OTPR_MODULE_NAME) . 'InvoiceStart'];
$aData['sRangeLabel'] = OrderTaxProfitReport::$oModule->l('Order', 'admin-export_class');
}
}
if (!empty(self::$_aPost[strtolower(_OTPR_MODULE_NAME) . 'InvoiceEnd'])) {
if (!is_numeric(self::$_aPost[strtolower(_OTPR_MODULE_NAME) . 'InvoiceEnd'])) {
self::$_aError[] = array('msg' => OrderTaxProfitReport::$oModule->l('Invoice end number isn\'t an integer', 'admin-export_class'), 'code' => 144);
}
else {
$aData['iInvoiceEnd'] = self::$_aPost[strtolower(_OTPR_MODULE_NAME) . 'InvoiceEnd'];
$aData['iEnd'] = self::$_aPost[strtolower(_OTPR_MODULE_NAME) . 'InvoiceEnd'];
$aData['sRangeLabel'] = OrderTaxProfitReport::$oModule->l('Order', 'admin-export_class');
}
}
if (!empty(self::$_aPost[strtolower(_OTPR_MODULE_NAME) . 'CreditOrderStart'])) {
if (!is_numeric(self::$_aPost[strtolower(_OTPR_MODULE_NAME) . 'CreditOrderStart'])) {
self::$_aError[] = array('msg' => OrderTaxProfitReport::$oModule->l('Credit slip start number isn\'t an integer', 'admin-export_class'), 'code' => 160);
}
else {
$aData['iCreditSlipStart'] = self::$_aPost[strtolower(_OTPR_MODULE_NAME) . 'CreditOrderStart'];
$aData['iStart'] = self::$_aPost[strtolower(_OTPR_MODULE_NAME) . 'CreditOrderStart'];
$aData['sRangeLabel'] = OrderTaxProfitReport::$oModule->l('Order', 'admin-export_class');
}
}
if (!empty(self::$_aPost[strtolower(_OTPR_MODULE_NAME) . 'CreditOrderEnd'])) {
if (!is_numeric(self::$_aPost[strtolower(_OTPR_MODULE_NAME) . 'CreditOrderEnd'])) {
self::$_aError[] = array('msg' => OrderTaxProfitReport::$oModule->l('Credit slip end number isn\'t an integer', 'admin-export_class'), 'code' => 161);
}
else {
$aData['iCreditSlipEnd'] = self::$_aPost[strtolower(_OTPR_MODULE_NAME) . 'CreditOrderEnd'];
$aData['iEnd'] = self::$_aPost[strtolower(_OTPR_MODULE_NAME) . 'CreditOrderEnd'];
$aData['sRangeLabel'] = OrderTaxProfitReport::$oModule->l('Order', 'admin-export_class');
}
}
// use case - check begin and end invoice / delivery date
// get date format
if (OrderTaxProfitReport::$aConfiguration[_OTPR_MODULE_NAME . '_DATE_FORMAT'] != false) {
$sDateFormat = OrderTaxProfitReport::$aConfiguration[_OTPR_MODULE_NAME . '_DATE_FORMAT'];
}
else {
$sDateFormat = 'en';
}
// set title
BT_OtprModuleTools::setDateTypeTitle();
// loop on each date type to check begin and end date
foreach ($GLOBALS[_OTPR_MODULE_NAME . '_DATE_TYPE'] as $sType => $sTitle) {
$aDate = $this->_checkDate(
self::$_aPost[strtolower(_OTPR_MODULE_NAME) . ucfirst($sType) . 'DateStart'],
self::$_aPost[strtolower(_OTPR_MODULE_NAME) . ucfirst($sType) . 'DateEnd'],
$sType,
$sDateFormat,
$sTitle
);
$aData = array_merge($aData, $aDate);
}
// use case - order status
if (empty(self::$_aPost[strtolower(_OTPR_MODULE_NAME) . 'OrderStatus'])) {
$aData['aOrderStatus'] = array_keys(BT_OtprModuleDao::getStatusOrder());
// update status selection
if (!Configuration::updateValue(_OTPR_MODULE_NAME . '_STATUS_SELECTION', '')) {
self::$_aError[] = array('msg' => OrderTaxProfitReport::$oModule->l('An error occured during the "Status selection" update', 'admin-export_class'), 'code' => 145);
}
}
else {
// update status selection
if (!Configuration::updateValue(_OTPR_MODULE_NAME . '_STATUS_SELECTION', serialize(self::$_aPost[strtolower(_OTPR_MODULE_NAME) . 'OrderStatus']))) {
self::$_aError[] = array('msg' => OrderTaxProfitReport::$oModule->l('An error occured during the "Status selection" update', 'admin-export_class'), 'code' => 146);
}
$aData['aOrderStatus'] = self::$_aPost[strtolower(_OTPR_MODULE_NAME) . 'OrderStatus'];
}
// use case - sort fields
if (!empty(self::$_aPost[strtolower(_OTPR_MODULE_NAME) . 'SortField']) && is_array(self::$_aPost[strtolower(_OTPR_MODULE_NAME) . 'SortField'])) {
foreach(self::$_aPost[strtolower(_OTPR_MODULE_NAME) . 'SortField'] as $nKey => &$sSortfield) {
if (empty($sSortfield)) {
unset(self::$_aPost[strtolower(_OTPR_MODULE_NAME) . 'SortField'][$nKey]);
}
}
if (!empty(self::$_aPost[strtolower(_OTPR_MODULE_NAME) . 'SortField'])) {
$sSortField = array_shift(self::$_aPost[strtolower(_OTPR_MODULE_NAME) . 'SortField']);
if (!array_key_exists($sSortField, $GLOBALS[_OTPR_MODULE_NAME . '_COLS'])) {
self::$_aError[] = array('msg' => OrderTaxProfitReport::$oModule->l('Selected sort field isn\'t valid', 'admin-export_class'), 'code' => 147);
}
else {
// use case - application sort
if ($GLOBALS[_OTPR_MODULE_NAME . '_COLS'][$sSortField]['sort'] == 2) {
$aData['sSortField'] = null;
$aData['sSortPhpField'] = $sSortField;
}
// use case - MySQL sort
else {
$aData['sSortField'] = $GLOBALS[_OTPR_MODULE_NAME . '_COLS'][$sSortField]['realname'];
}
}
unset($sSortField);
}
}
// use case - way type
if (!empty(self::$_aPost[strtolower(_OTPR_MODULE_NAME) . 'WayType'])) {
if (!array_key_exists(self::$_aPost[strtolower(_OTPR_MODULE_NAME) . 'WayType'], $GLOBALS[_OTPR_MODULE_NAME . '_WAY'])) {
self::$_aError[] = array('msg' => OrderTaxProfitReport::$oModule->l('Direction isn\'t valid', 'admin-export_class'), 'code' => 148);
}
else {
$aData['sWayType'] = self::$_aPost[strtolower(_OTPR_MODULE_NAME) . 'WayType'];
}
}
// use case - categories
if (!empty(self::$_aPost[strtolower(_OTPR_MODULE_NAME) . 'Categories'])) {
if (!is_array(self::$_aPost[strtolower(_OTPR_MODULE_NAME) . 'Categories'])) {
self::$_aError[] = array('msg' => OrderTaxProfitReport::$oModule->l('Categories list isn\'t an array', 'admin-export_class'), 'code' => 149);
}
else {
$aData['aSearchCategories'] = self::$_aPost[strtolower(_OTPR_MODULE_NAME) . 'Categories'];
}
}
// use case - manufacturers
if (!empty(self::$_aPost[strtolower(_OTPR_MODULE_NAME) . 'Manufacturers'])) {
if (!is_array(self::$_aPost[strtolower(_OTPR_MODULE_NAME) . 'Manufacturers'])) {
self::$_aError[] = array('msg' => OrderTaxProfitReport::$oModule->l('Manufacturers list isn\'t an array', 'admin-export_class'), 'code' => 150);
}
else {
$aData['aSearchManufacturers'] = self::$_aPost[strtolower(_OTPR_MODULE_NAME) . 'Manufacturers'];
}
}
// use case - suppliers
if (!empty(self::$_aPost[strtolower(_OTPR_MODULE_NAME) . 'Suppliers'])) {
if (!is_array(self::$_aPost[strtolower(_OTPR_MODULE_NAME) . 'Suppliers'])) {
self::$_aError[] = array('msg' => OrderTaxProfitReport::$oModule->l('Suppliers list isn\'t an array', 'admin-export_class'), 'code' => 151);
}
else {
$aData['aSearchSuppliers'] = self::$_aPost[strtolower(_OTPR_MODULE_NAME) . 'Suppliers'];
}
}
// use case - product attribute display
if (!empty(self::$_aPost[strtolower(_OTPR_MODULE_NAME) . 'UseAttribute'])
&&
!empty($GLOBALS[_OTPR_MODULE_NAME . '_SEARCH_TEMPLATE'][self::$_aPost[strtolower(_OTPR_MODULE_NAME) . 'Template']]['attribute'])
) {
if (self::$_aPost[strtolower(_OTPR_MODULE_NAME) . 'UseAttribute'] != 'true' && self::$_aPost[strtolower(_OTPR_MODULE_NAME) . 'UseAttribute'] != 'false') {
self::$_aError[] = array('msg' => OrderTaxProfitReport::$oModule->l('Display attribute isn\'t valid', 'admin-export_class'), 'code' => 152);
}
else {
$aData['bUseAttribute'] = self::$_aPost[strtolower(_OTPR_MODULE_NAME) . 'UseAttribute'] == 'true' ? true : false;
}
}
// use case - display headings and total
$aData['bHeadings'] = (OrderTaxProfitReport::$aConfiguration[_OTPR_MODULE_NAME . '_HEADINGS_TOTAL'] || $bHeadings)? true : false;
// use case - check charset
$aData['bUtf8'] = (!empty(self::$_aPost[strtolower(_OTPR_MODULE_NAME) . 'Utf']) && self::$_aPost[strtolower(_OTPR_MODULE_NAME) . 'Utf'] == 'on' || $bUTF8)? true : false;
// use case - selected country
// use case - template type
if (!empty(self::$_aPost[strtolower(_OTPR_MODULE_NAME) . 'Countries'])) {
if (!is_array(self::$_aPost[strtolower(_OTPR_MODULE_NAME) . 'Countries'])) {
self::$_aError[] = array('msg' => OrderTaxProfitReport::$oModule->l('Country IDs list isn\'t an array', 'admin-export_class'), 'code' => 153);
}
else {
$aData['aCountryIds'] = self::$_aPost[strtolower(_OTPR_MODULE_NAME) . 'Countries'];
}
}
// use case - tax rate
if (!empty(self::$_aPost[strtolower(_OTPR_MODULE_NAME) . 'TaxRate'])) {
$aData['fTaxRate'] = self::$_aPost[strtolower(_OTPR_MODULE_NAME) . 'TaxRate'];
}
// use case - customer group
if (!empty(self::$_aPost[strtolower(_OTPR_MODULE_NAME) . 'Groups'])) {
if (!is_array(self::$_aPost[strtolower(_OTPR_MODULE_NAME) . 'Groups'])) {
self::$_aError[] = array('msg' => OrderTaxProfitReport::$oModule->l('Customer group list isn\'t an array', 'admin-export_class'), 'code' => 154);
}
else {
$aData['aCustomerGroup'] = self::$_aPost[strtolower(_OTPR_MODULE_NAME) . 'Groups'];
}
}
// use case - layout preferences
if (empty(self::$_aPost['aPreferences'])) {
self::$_aPost['aPreferences'] = array();
}
// update preferences selection
if (!Configuration::updateValue(_OTPR_MODULE_NAME . '_PREFERENCES', serialize(self::$_aPost['aPreferences']))) {
self::$_aError[] = array('msg' => OrderTaxProfitReport::$oModule->l('An error occured during "preferences" update', 'admin-export_class'), 'code' => 155);
}
return $aData;
}
/**
* _checkDate() method checks begin and end date
*
* @param string $sStartDate
* @param string $sEndDate
* @param string $sType
* @param string $sDateFormat
* @param string $sTranslate
* @return array
*/
private function _checkDate($sStartDate, $sEndDate, $sType, $sDateFormat, $sTranslate)
{
// set
$aData = array();
// get start date
$iStartDate = (empty($sStartDate))? false : BT_OtprModuleTools::getTimeStamp($sStartDate, $sDateFormat);
// get end date
$iEndDate = (empty($sEndDate))? false : BT_OtprModuleTools::getTimeStamp($sEndDate, $sDateFormat, true);
if (false !== $iStartDate && false !== $iEndDate) {
if ($iStartDate > $iEndDate) {
self::$_aError[] = array(
'msg' => OrderTaxProfitReport::$oModule->l('End', 'admin-export_class')
. ' ' . $sTranslate . ' '
. OrderTaxProfitReport::$oModule->l('date have to be greater than begin date', 'admin-export_class'),
'code' => 147);
}
else {
$aData['i' . ucfirst($sType) . 'StartDate'] = $iStartDate;
$aData['i' . ucfirst($sType) . 'EndDate'] = $iEndDate;
$aData['iStart'] = $sStartDate;
$aData['iEnd'] = $sEndDate;
$aData['sRangeLabel'] = $sTranslate;
}
}
elseif (!empty($iStartDate)) {
$aData['i' . ucfirst($sType) . 'StartDate'] = $iStartDate;
$aData['iStart'] = $sStartDate;
$aData['sRangeLabel'] = $sTranslate;
}
elseif (!empty($iEndDate)) {
$aData['i' . ucfirst($sType) . 'EndDate'] = $iEndDate;
$aData['iEnd'] = $sEndDate;
$aData['sRangeLabel'] = $sTranslate;
}
return $aData;
}
/**
* create() method manages singleton
*
* @return obj
*/
public static function create()
{
static $oExport;
if (null === $oExport) {
$oExport = new BT_AdminExport();
}
return $oExport;
}
}

View File

@ -0,0 +1,283 @@
<?php
/**
* admin-update_class.php file defines method update content for basic settings
* @author Business Tech (www.businesstech.fr) - Contact: http://www.businesstech.fr/en/contact-us
* @category admin collection
* @license Business Tech
* @uses Please read included installation and configuration instructions (PDF format)
* @see IInstall Interface
*/
class BT_AdminUpdate implements BT_IAdmin
{
/**
* Magic Method __construct
*/
public function __construct()
{
}
/**
* Magic Method __destruct
*/
public function __destruct()
{
}
/**
* run() method update all tabs content of admin page
*
* @param array $aParam
* @return array
*/
public function run($aParam = null)
{
// set variables
$aDisplayData = array();
switch ($aParam['sType']) {
case 'settings' : /* use case - update basic settings */
case 'ordersDetail' : /* use case - update order details */
// execute match function
$aDisplayData = call_user_func_array(array($this, '_update' . ucfirst($aParam['sType'])), array($aParam));
break;
default :
break;
}
return $aDisplayData;
}
/**
* _updateSettings() method update basic settings
*
* @param array $aPost
* @return array
*/
private function _updateSettings(array $aPost)
{
// set
$aUpdateData = array();
try {
// use case - update use Headings and total
if (Tools::getIsset(strtolower(_OTPR_MODULE_NAME) . 'Headings')) {
if ('on' == $aPost[strtolower(_OTPR_MODULE_NAME) . 'Headings']) {
$bUse = true;
}
}
else {
$bUse = false;
}
// set use Headings & total
if (!Configuration::updateValue(_OTPR_MODULE_NAME . '_HEADINGS_TOTAL', $bUse)) {
throw new Exception(OrderTaxProfitReport::$oModule->l('An error occured during the "Headings & total" update', 'admin-update_class'), 140);
}
// set date format
if (!Configuration::updateValue(_OTPR_MODULE_NAME . '_DATE_FORMAT', $aPost[strtolower(_OTPR_MODULE_NAME) . 'Date'])) {
throw new Exception(OrderTaxProfitReport::$oModule->l('An error occured during the "Date format" update', 'admin-update_class'), 141);
}
// set number after decimal point
if (!Configuration::updateValue(_OTPR_MODULE_NAME . '_FLOAT_NUMBER', $aPost[strtolower(_OTPR_MODULE_NAME) . 'FloatNumber'])) {
throw new Exception(OrderTaxProfitReport::$oModule->l('An error occured during the "number after decimal point" update', 'admin-update_class'), 142);
}
// set float number
if (!Configuration::updateValue(_OTPR_MODULE_NAME . '_FLOAT_SEPARATOR', $aPost[strtolower(_OTPR_MODULE_NAME) . 'FloatSeparator'])) {
throw new Exception(OrderTaxProfitReport::$oModule->l('An error occured during the "float separator" update', 'admin-update_class'), 143);
}
// set float bool
if (!Configuration::updateValue(_OTPR_MODULE_NAME . '_FIX_CELL_SIZE', $aPost[strtolower(_OTPR_MODULE_NAME) . 'FixCellSize'])) {
throw new Exception(OrderTaxProfitReport::$oModule->l('An error occured during the "Fix cell size update" update', 'admin-update_class'), 144);
}
// set float integer
if (!Configuration::updateValue(_OTPR_MODULE_NAME . '_CELL_SIZE', $aPost['cellSizeValue'])) {
throw new Exception(OrderTaxProfitReport::$oModule->l('An error occured during the "Fix cell size update" update', 'admin-update_class'), 145);
}
}
catch (Exception $e) {
$aUpdateData['aError'] = array('msg' => $e->getMessage(), 'code' => $e->getCode());
$aUpdateData['sErrorTplPath'] = _OTPR_PATH_TPL . _OTPR_TPL_ERROR;
}
// destruct
unset($bUse);
// get configuration options
BT_OtprModuleTools::getConfiguration();
// require admin configure classe - to factorise
require_once(_OTPR_PATH_LIB_ADMIN . 'admin-display_class.php');
// get run of admin display in order to display first page of admin with basic settings updated
$aData = BT_AdminDisplay::create()->run(array('sType' => 'settings'));
// use case - empty error
$aData['assign'] = array_merge($aData['assign'], array(
'bXHR' => true,
'bUpdate' => (empty($aUpdateData['aError']) ? true : false),
'sConfirmTplPath' => _OTPR_PATH_TPL . _OTPR_TPL_ADMIN_PATH ._OTPR_TPL_CONFIRM,
), $aUpdateData);
return $aData;
}
/**
* _updateOrdersDetail() method register orders detail in table for discount and wrapping
*
* @param array $aPost
* @return array
*/
private function _updateOrdersDetail(array $aPost)
{
// flush header
@ob_end_clean();
// set
$aUpdateData = array();
// include
require_once(_OTPR_PATH_LIB . 'module-dao_class.php');
try {
$bReturn = true;
$aOrdersDetail = array();
// get order detail
$rOrdersDetail = BT_OtprModuleDao::getOrdersDetail();
// get number of records
$iNumRows = Db::getInstance()->numRows();
// use case - no orders
if ($iNumRows > 0 && $rOrdersDetail !== false) {
// set counter
$iCounter = 0;
// set previous record
$aPreviousRecord = array();
// set transaction
Db::getInstance()->Execute('BEGIN');
// get tables
$aDiscount = $GLOBALS[_OTPR_MODULE_NAME . '_SQL_TABLES']['discount'];
$aWrapping = $GLOBALS[_OTPR_MODULE_NAME . '_SQL_TABLES']['wrapping'];
$aWholePrice = $GLOBALS[_OTPR_MODULE_NAME . '_SQL_TABLES']['wholesale_price'];
// loop on each orders details
while ($aDetail = Db::getInstance()->nextRow($rOrdersDetail)) {
// populate orders detail discount
if (!BT_OtprModuleTools::populateDiscountOrdersDetail($aDetail['id_order'], $aDetail['id_order_detail'], $aDetail['total_discounts'], $aDetail['total_products'], $aDetail['prod_unit_price'], $aDetail['tax_rate'], $aDetail['product_quantity'])) {
// set error msg
$sMsg = OrderTaxProfitReport::$oModule->l('An error occurred during inserting order detail for', 'admin-update_class') . ' ' . $aDiscount['name']
. ' => ' . OrderTaxProfitReport::$oModule->l('Id order', 'admin-update_class') . ' : ' . $aDetail['id_order']
. ' - ' . OrderTaxProfitReport::$oModule->l('Id order detail', 'admin-update_class') . ' : ' . $aDetail['id_order_detail']
;
throw new Exception($sMsg, 150);
}
// populate orders wrapping
if ($iCounter == 0
||
(!empty($aPreviousRecord) && $aPreviousRecord['id_order'] != $aDetail['id_order'])
) {
$fWrappingTaxIncl = isset($aDetail['total_wrapping_tax_incl'])? $aDetail['total_wrapping_tax_incl'] : null;
$fWrappingTaxExcl = isset($aDetail['total_wrapping_tax_excl'])? $aDetail['total_wrapping_tax_excl'] : null;
if (!BT_OtprModuleTools::populateWrappingOrdersDetail($aDetail['id_order'], $aDetail['total_wrapping'], $fWrappingTaxExcl, $fWrappingTaxIncl)) {
// set error msg
$sMsg = OrderTaxProfitReport::$oModule->l('An error occurred during inserting order detail for', 'admin-update_class') . ' ' . $aWrapping['name']
. ' => ' . OrderTaxProfitReport::$oModule->l('Id order', 'admin-update_class') . ' : ' . $aDetail['id_order']
. ' - ' . OrderTaxProfitReport::$oModule->l('Id order detail', 'admin-update_class') . ' : ' . $aDetail['id_order_detail']
;
throw new Exception($sMsg, 151);
}
}
// manage the best whole_saleprice to use
if (!empty($aDetail['purchase_supplier_price'])
&& $aDetail['purchase_supplier_price'] != 0.0
) {
$fWholeSalePrice = (float)$aDetail['purchase_supplier_price'];
}
elseif (!empty($aDetail['attribute_wholesale_price'])
&& $aDetail['attribute_wholesale_price'] != 0.0
) {
$fWholeSalePrice = (float)$aDetail['attribute_wholesale_price'];
}
elseif (!empty($aDetail['product_wholesale_price'])
&& $aDetail['product_wholesale_price'] != 0.0
) {
$fWholeSalePrice = (float)$aDetail['product_wholesale_price'];
}
else {
$fWholeSalePrice = 0.00;
}
//populate wholesaleprice
if (!BT_OtprModuleDao::populateWholeSalePrice($aDetail['id_order'], $fWholeSalePrice, $aDetail['id_order_detail'])) {
$sMsg = OrderTaxProfitReport::$oModule->l('An error occurred during inserting wholesale price for', 'admin-update_class') . ' ' . $aWholePrice['name']
. ' => ' . OrderTaxProfitReport::$oModule->l('Id order', 'admin-update_class') . ' : ' . $aDetail['id_order']
. ' - ' . OrderTaxProfitReport::$oModule->l('Id order detail', 'admin-update_class') . ' : ' . $aDetail['id_order_detail'];
throw new Exception($sMsg, 152);
}
// register current record
$aPreviousRecord = $aDetail;
// increase counter
++$iCounter;
}
// commit register
Db::getInstance()->Execute('COMMIT');
}
else {
$sMsg = OrderTaxProfitReport::$oModule->l('There is no Orders for this shop', 'admin-update_class') ;
throw new Exception($sMsg, 153);
}
}
catch (Exception $e) {
Db::getInstance()->Execute('ROLLBACK');
$aUpdateData['aErrors'][] = array('msg' => $e->getMessage(), 'code' => $e->getCode());
$aUpdateData['sErrorTplPath'] = _OTPR_PATH_TPL . _OTPR_TPL_ERROR;
}
// get configuration options
BT_OtprModuleTools::getConfiguration();
// require admin configure class - to factorise
require_once(_OTPR_PATH_LIB_ADMIN . 'admin-display_class.php');
// get run of admin display in order to display first page of admin with basic settings updated
$aData = BT_AdminDisplay::create()->run(array('sType' => (strtolower(Tools::getValue('tab')) == 'adminordertaxprofitreport' || strtolower(Tools::getValue('controller')) == 'adminordertaxprofitreport'? 'searchForm' : 'settings')));
// use case - empty error
$aData['assign'] = array_merge($aData['assign'], array(
'bUpdate' => (empty($aUpdateData['aErrors']) ? true : false),
'sConfirmTplPath' => _OTPR_PATH_TPL . _OTPR_TPL_ADMIN_PATH ._OTPR_TPL_CONFIRM,
'bAdminTab' => (Tools::getValue('tab') == 'AdminOrderTaxProfitReport' ? true : false),
), $aUpdateData);
// use case - empty error
OrderTaxProfitReport::$sQueryMode = 'xhr';
return $aData;
}
/**
* create() method manages singleton
*
* @return obj
*/
public static function create()
{
static $oUpdate;
if (null === $oUpdate) {
$oUpdate = new BT_AdminUpdate();
}
return $oUpdate;
}
}

View File

@ -0,0 +1,15 @@
<?php
/**
* i-admin.php file defines mandatory method to manage module's admin
*/
interface BT_IAdmin
{
/**
* run() method process configuration or updating admin
*
* @param mixed $aParam => $_GET or $_POST
* @return bool
*/
public function run($aParam = null);
}

View File

@ -0,0 +1,35 @@
<?php
/*
* 2007-2015 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License (AFL 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/afl-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-2015 PrestaShop SA
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 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;

View File

@ -0,0 +1,222 @@
<?php
/**
* dir-reader.class.php file defines methods to read directories recursively and get info about files and directories
*/
final class BT_DirReader implements Iterator
{
/**
* @var object $obj : stock obj
*/
public static $obj = null;
/**
* @var array $_aFiles : get all match files
*/
private $_aFiles = array();
/**
* @var array $_iPosition : set pointer position
*/
private $_iPosition = 0;
/**
* __construct()
*/
public function __construct() {}
/**
* __destruct()
*/
public function __destruct() {}
/**
* run() method load specified directory
*
* @param array params
* @return array
*/
public function run (array $aParams)
{
// test of obligatory validated path
if (isset($aParams['path']) && is_dir($aParams['path']) && (isset($aParams['pattern']) || isset($aParams['extension']))) {
// init object
$oDirRecIterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($aParams['path']));
// case of not recursive
if (isset($aParams['recursive']) === false || (isset($aParams['recursive']) === true && $aParams['recursive'] === false)) {
$oDirRecIterator->setMaxDepth(1);
}
// clear array
$this->_aFiles = array();
// rewind
$this->rewind();
$iCount = 0;
// loop on object result
while ($oDirRecIterator->valid()) {
if ($oDirRecIterator->isDot() === false) {
// get file name
$sFileName = $oDirRecIterator->getFilename();
if ((isset($aParams['pattern']) && preg_match($aParams['pattern'] , $sFileName))
||
(isset($aParams['extension'])
&&
substr(strtolower($sFileName),strrpos($sFileName,'.')+1) == $aParams['extension'])
) {
$this->_aFiles[$iCount]['path'] = $oDirRecIterator->key();
$this->_aFiles[$iCount]['filename'] = $sFileName;
// case of subpath
if (isset($aParams['subpath']) && $aParams['subpath']) {
$this->_aFiles[$iCount]['subpath'] = $oDirRecIterator->getSubPath();
}
// case of subpathname
if (isset($aParams['subpathname']) && $aParams['subpathname']) {
$this->_aFiles[$iCount]['subpathname'] = $oDirRecIterator->getSubPathname();
}
// case of size
if (isset($aParams['size']) && $aParams['size']) {
$this->_aFiles[$iCount]['size'] = $oDirRecIterator->getSize();
}
// case of type
if (isset($aParams['type']) && $aParams['type']) {
$this->_aFiles[$iCount]['type'] = $oDirRecIterator->getType();
}
// case of owner
if (isset($aParams['owner']) && $aParams['owner']) {
$this->_aFiles[$iCount]['owner'] = $oDirRecIterator->getOwner();
}
// case of group
if (isset($aParams['group']) && $aParams['group']) {
$this->_aFiles[$iCount]['group'] = $oDirRecIterator->getGroup();
}
// case of time
if (isset($aParams['time']) && $aParams['time']) {
$this->_aFiles[$iCount]['time'] = $oDirRecIterator->getCTime();
}
// case of verbose
if (isset($aParams['verbose']) && $aParams['verbose']) {
echo '[ ', (isset($aParams['service'])?$aParams['service']:'FILE'), ' ] ', date("d-m-Y à H:i:s"), ' => matched file : ', $sFileName, "\n";
}
++$iCount;
}
}
$oDirRecIterator->next();
}
// destruct object
unset($oDirRecIterator);
// return
return $this->_aFiles;
}
else {
// throw exception if specified directory is not declared
throw new Exception('Specified path or extension or pattern are not declared or is not a valid path');
}
}
/**
* rewind() method goes to position 0
*
*/
public function rewind()
{
$this->_iPosition = 0;
}
/**
* current() method returns current object
*
* @return mixed
*/
public function current()
{
if (!isset($this->_aFiles[$this->_iPosition])) {
return null;
}
else {
return (
$this->_aFiles[$this->_iPosition]
);
}
}
/**
* key() method returns current position
*
* @return int
*/
public function key()
{
return $this->_iPosition;
}
/**
* next() method goes to next position
*
*/
public function next() {
++$this->_iPosition;
}
/**
* valid() method tests if current position exist
*
* @return bool
*/
public function valid()
{
return(
isset($this->_aFiles[$this->_iPosition])
);
}
/**
* mkDirRec() method create directories recursively
*
* @param string $sPath
* @return mixed
*/
public static function mkdirRec( $sPath )
{
if (!empty($sPath) && !is_dir($sPath)) {
if (self::mkdirRec(dirname($sPath))) {
return mkdir($sPath);
}
}
else {
return true;
}
}
/**
* create() method set singleton
*
* @return obj self::$obj
*/
public static function create()
{
if (self::$obj === null) {
self::$obj = new BT_DirReader();
}
return self::$obj;
}
/**
* destruct() method delete object singleton
*
*/
public static function destruct()
{
if (self::$obj !== null) {
unset(self::$obj);
}
}
}

View File

@ -0,0 +1,35 @@
<?php
/*
* 2007-2015 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License (AFL 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/afl-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-2015 PrestaShop SA
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 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;

View File

@ -0,0 +1,173 @@
<?php
/**
* pagination.class.php file defines methods to calculate a pagination with page and group
*/
class BT_Pagination
{
/**
* @var array $aParams : define array
*/
protected $aParams = array('group' => false);
/**
* @var array $aPagination : define array
*/
public $aPagination = array();
/**
* @var int $iStart : use to determinate begin and end value in each mode - don't have a same value with 'page' mode and 'group' mode
*/
protected $iStart = 0;
/**
* @var int $iEnd : use to determinate begin and end value in each mode - don't have a same value with 'page' mode and 'group' mode
*/
protected $iEnd = 1;
/**
* __construct()
*
* @param array $aParams
*/
public function __construct($aParams = null)
{
// set param
if (!empty($aParams)) {
$this->set($aParams);
}
}
/**
* set() method define init parameters of class
* @param array $aParams
*/
public function set(array $aParams)
{
foreach ($aParams as $sParam => $mValue) {
if (array_key_exists($sParam, $this->aParams)) {
$this->aParams[$sParam] = $mValue;
}
}
}
/**
* run() method process pagination
*
* @param array $aParams
* @return array
*/
public function run(array $aParams)
{
if (!array_key_exists('total' , $aParams)
|| !array_key_exists('perPage' , $aParams)
) {
// throw exception
throw new Exception('There is not all valid keys : "total" & "perPage"');
}
else {
// flush array if necessary
$this->aPagination = array();
// get pagination
$this->_get('page' , $aParams['total'], $aParams['perPage']);
// use case - group
if ($this->aParams['group'] === true) {
if (!array_key_exists('perGroup' , $aParams)) {
// throw exception
throw new Exception('Param "perGroup" do not exists');
}
else {
$this->iStart = 1;
$this->iEnd = 0;
// get pagination
$this->_get('group' , count($this->aPagination['page']), $aParams['perGroup']);
}
}
// use case - empty group
if ($this->aParams['group'] === false
||
!isset($this->aPagination['group'])
||
(isset($this->aPagination['group'])
&&
empty($this->aPagination))
) {
// return
return $this->aPagination['page'];
}
// use case - page & group
else {
// return
return $this->aPagination;
}
}
}
/**
* _get() process pagination
*
* @param string $sType
* @param int $iTotal
* @param int $iPerContent
*/
private function _get($sType , $iTotal , $iPerContent)
{
// case - no pagination or no group
if ($iTotal < $iPerContent) {
$this->aPagination[$sType][1]['begin'] = $this->iStart;
$this->aPagination[$sType][1]['end'] = $iTotal - $this->iEnd;
$this->aPagination[$sType][1]['nb'] = $iTotal;
}
// case idem
elseif ($iTotal == $iPerContent) {
$this->aPagination[$sType][1]['begin'] = $this->iStart;
$this->aPagination[$sType][1]['end'] = $iPerContent - $this->iEnd;
$this->aPagination[$sType][1]['nb'] = $iPerContent;
}
// case pagination
else {
// nb pages
$iNbPage = floor($iTotal / $iPerContent);
// set param of each page
for ($i = 1; $i <= $iNbPage; ++$i) {
// first
if ($i == 1) {
$this->aPagination[$sType][$i]['begin'] = $this->iStart;
$this->aPagination[$sType][$i]['end'] = $iPerContent - $this->iEnd;
}
else {
$this->aPagination[$sType][$i]['begin'] = $this->aPagination[$sType][$i-1]['end'] + 1;
$this->aPagination[$sType][$i]['end'] = $this->aPagination[$sType][$i]['begin'] + ($iPerContent - 1);
}
$this->aPagination[$sType][$i]['nb'] = $iPerContent;
}
// calculate last page
$iDelta = $iTotal - ($iNbPage * $iPerContent);
// only if > 0
if ($iDelta > 0) {
$this->aPagination[$sType][$iNbPage+1]['begin'] = $this->aPagination[$sType][$iNbPage]['end'] + 1;
$this->aPagination[$sType][$iNbPage+1]['end'] = $this->aPagination[$sType][$iNbPage+1]['begin'] + ($iDelta - 1);
$this->aPagination[$sType][$iNbPage+1]['nb'] = $iDelta;
}
}
}
/**
* create() method returns singleton
*
* @return obj
*/
public static function create()
{
static $oPagination;
if (null === $oPagination) {
$oPagination = new BT_Pagination();
}
return $oPagination;
}
}

View File

@ -0,0 +1,280 @@
<?php
/**
* verbose.class.php file defines methods to display configurable verbose
*/
class BT_Verbose
{
/**
* @var array $_aOptions : array of set configuration
*/
private $_aOptions = array();
/**
* @var string $_sDatePattern : date pattern
*/
private $_sDatePattern = '';
/**
* @var array $_aDisplayOrder : array of displayed order
*/
private $_aDisplayOrder = array();
/**
* @var string $_sSeparator : separator
*/
private $_sSeparator = '';
/**
* @var string $_sStepLine : step line
*/
private $_sStepLine = '';
/**
* @var array $_aCallBack : callback
*/
private $_aCallBack = null;
/**
* @var array $_aTraces : array for traces
*/
private $_aTraces = array();
/**
* __construct() save configuration options.
*
* @param array $aOptions : display options array
*/
public function __construct(array $aOptions = null)
{
if (isset($aOptions['callBack'])) {
$this->_aCallBack = $aOptions['callBack'];
}
$this->_aOptions = array(
'd' => '^date',
'm' => '^memory',
'c' => '^caller',
'l' => '^line',
'p' => '^process_id',
);
if (isset($aOptions['stepLine'])) {
$this->_sStepLine = $aOptions['stepLine'];
}
else {
$this->_sStepLine = ' ';
}
if (isset($aOptions['separator'])) {
$this->_sSeparator = $aOptions['separator'];
}
else {
$this->_sSeparator = ' ~ ';
}
if (isset($aOptions['datePattern'])) {
$this->_sDatePattern = $aOptions['datePattern'];
}
else {
$this->_sDatePattern = 'H:i:s';
}
if (isset($aOptions['mask'])) {
for ($i = 0 ; $i < strlen($aOptions['mask']) ; $i++) {
$sOptionCode = substr($aOptions['mask'], $i, 1);
if ('^' == $sOptionCode) {
$i++;
$sOptionCode = substr($aOptions['mask'], $i, 1);
if (isset($this->_aOptions[$sOptionCode])) {
$this->_aDisplayOrder[] = $this->_aOptions[$sOptionCode];
}
}
else {
$this->_aDisplayOrder[] = $sOptionCode;
}
}
}
}
/**
* startTrace() makes start trace point
*
* @param string $sTraceCode : trace 's unique code
*/
public function startTrace($sTraceCode)
{
if ($this->_aCallBack != null) {
if (!isset($this->_aTraces[$sTraceCode])) {
$this->_aTraces[$sTraceCode] = microtime(true);
}
}
}
/**
* endTrace() finish trace end and execute callback with specified data of trace
*
* @param string $sTraceCode : trace's unique code
* @param string $sTraceDetail : trace detail (optional)
* @param string $sTraceError : error (optional)
*/
public function endTrace($sTraceCode, $sTraceDetail = '', $sTraceError = '')
{
if ($this->_aCallBack != null) {
if (!isset($this->_aTraces[$sTraceCode])) {
$this->_aTraces[$sTraceCode] = microtime(true);
}
$aResult = array(
'ComponentCode' => $this->_aCallBack[0],
'Time' => microtime(true) - $this->_aTraces[$sTraceCode],
'Detail' => $sTraceCode . ' -> ' . $sTraceDetail
);
if ($sTraceError) {
$aResult['Error'] = $sTraceError;
}
// call back
call_user_func($this->_aCallBack[1],
$aResult
);
// raz trace
unset($this->_aTraces[$sTraceCode]);
}
} // endTrace()
/**
* display() displays verbose line
*
* @param string $sCaller : caller (section / module / component)
* @param string $sLine : display line
* @param mixed $iLevel : tab of line
*/
public function line($sCaller, $sLine, $iLevel = 1)
{
$sOut = '';
foreach($this->_aDisplayOrder as $sDisplay) {
if ($sDisplay == '^date') {
$sOut .= date($this->_sDatePattern);
}
elseif ($sDisplay == '^memory') {
$sOut .= round(memory_get_usage()/1000);
}
elseif ($sDisplay == '^process_id' && function_exists('posix_getpid')) {
$sOut .= posix_getpid();
}
elseif ($sDisplay == '^caller') {
$sOut .= $sCaller;
}
elseif ($sDisplay == '^line') {
$sOut .= $sLine;
}
else {
$sOut .= $sDisplay;
}
}
if (is_integer($iLevel) && ($iLevel > 1) && count($this->_aDisplayOrder)) {
$sStep = '';
for ($i = 1 ; $i < $iLevel ; $i++) {
$sStep .= $this->_sStepLine;
}
$sOut = $sStep . $sOut;
}
if ($sOut != '') {
echo ($sOut . "\n");
}
}
/**
* debug() displays variable content.
* Display next, ask to continue or stop script
*
* @param string $sTitle : debug title
* @param string $sVar : displayed variable
* @param string $sDisplayFunc : function applied on it
*/
public function debug($sTitle, $sVar, $sDisplayFunc = 'var_dump')
{
echo ("\n" . str_pad('', 80, "#") . "\n"
. "#" . str_pad('', 78, " ") . "#\n"
. "#" . str_pad('', 30, " ") . "DEBUG MODE" . str_pad('', 38, " ") . "#\n"
. "#" . str_pad('', 78, " ") . "#\n"
. str_pad('', 80, "#") . "\n\n"
. str_pad('', 21, "#") . " " . $sTitle . " "
. str_pad('', 57-strlen($sTitle), "#") . "\n");
call_user_func($sDisplayFunc, $sVar);
echo ("***********************************************************\n"
. "Type <enter> to continue, 'q' to stop execution\nBT>");
$sLine = trim(fgets(STDIN));
if ($sLine == 'q') {
exit(0);
}
}
/**
* backTrace() allow to display a script backtrace.
*/
public function backTrace()
{
echo ("\n" . str_pad('', 80, "#") . "\n"
. "#" . str_pad('', 78, " ") . "#\n"
. "#" . str_pad('', 30, " ") . "BACK TRACE" . str_pad('', 38, " ") . "#\n"
. "#" . str_pad('', 78, " ") . "#\n"
. str_pad('', 80, "#") . "\n\n");
// get back traces
$aBackTrace = array_reverse(debug_backtrace());
array_pop($aBackTrace);
$loop = 0;
foreach ($aBackTrace as $aTrace) {
$loop++;
echo (str_pad('', ceil(39-(strlen($loop)/2)), "#") . " " . $loop . " "
. str_pad('', floor(39-(strlen($loop)/2)), "#") . "\n");
if (isset($aTrace['file']) && isset($aTrace['line'])) {
echo (" . " . $aTrace['file'] . " (" . $aTrace['line'] . ")\n");
}
if (isset($aTrace['class'])) {
echo (" . " . $aTrace['class'] . $aTrace['type']
. $aTrace['function'] . "(");
}
else {
echo (" . " . $aTrace['function'] . "(");
}
if (isset($aTrace['args'])) {
$iLoopArg = 0;
foreach ($aTrace['args'] as $arg) {
$iLoopArg++;
$argLine = var_export($arg, true);
$argLine = explode("\n", $argLine);
foreach ($argLine as &$tps) {
$tps = trim($tps);
}
$argLine = join('', $argLine);
echo (($iLoopArg>1 ? ",\n\t" : "\n\t") . $argLine);
}
echo (($iLoopArg ? "\n " : "") . ")\n");
}
else {
echo (")\n");
}
echo ("\n");
}
echo ("***********************************************************\n"
. "Type <enter> to continue, 'q' to stop execution\nBT>");
$sLine = trim(fgets(STDIN));
if ($sLine == 'q') {
exit(0);
}
}
/**
* create() method returns singleton
*
* @param array $aOptions
* @return obj
*/
public static function create(array $aOptions = null)
{
static $oVerbose;
if (null === $oVerbose) {
$oVerbose = new BT_Verbose($aOptions);
}
return $oVerbose;
}
}

View File

@ -0,0 +1,125 @@
<?php
/**
* hook_class.php file defines controller which manage hooks sequentially
*/
class BT_OtprHook
{
/**
* @var string $sHookType : define hook type
*/
protected $sHookType = null;
/**
* Magic Method __construct assigns few information about hook
* @param string
*/
public function __construct($sHookType)
{
$this->sHookType = $sHookType;
}
/**
* Magic Method __destruct
*/
public function __destruct()
{
unset($this);
}
/**
* run() method execute hook
*
* @param array $aParams
* @return array
*/
public function run(array $aParams = null)
{
// set variables
$aDisplayHook = array();
switch ($this->sHookType) {
case 'validateOrder' :
// execute match function
$aDisplayHook = call_user_func_array(array($this, '_validateOrder'), array($aParams));
break;
default :
break;
}
return $aDisplayHook;
}
/**
* _validateOrder() method register new order's data for discount and wrapping calculation in report
*
* @param array $aParams
* @return array
*/
private function _validateOrder(array $aParams = null)
{
if (!empty($aParams['order'])
&& is_object($aParams['order'])
&& $aParams['order']->module != OrderTaxProfitReport::$oModule->name
&& $aParams['order']->getCurrentState() != _PS_OS_ERROR_
) {
// include
require_once(_OTPR_PATH_LIB . 'module-dao_class.php');
$bReturn = true;
// get order detail IDs
$aOrderDetailIds = BT_OtprModuleDao::getOrderDetailIds($aParams['order']->id);
if (!empty($aOrderDetailIds)) {
// set transaction
Db::getInstance()->Execute('BEGIN');
foreach ($aOrderDetailIds as $aId) {
// populate orders detail discount
if (!BT_OtprModuleTools::populateDiscountOrdersDetail($aParams['order']->id, $aId['id_order_detail'], $aParams['order']->total_discounts, $aParams['order']->total_products, $aId['prod_unit_price'], $aId['tax_rate'], $aId['product_quantity'])) {
// set return to false
$bReturn = false;
}
// manage the best whole_saleprice to use
if ($aId['purchase_supplier_price'] != 0.0)
{
$fWholeSalePrice = (float)$aId['purchase_supplier_price'];
}
elseif ($aId['attribute_wholesale_price'] != 0.0) {
$fWholeSalePrice = (float)$aId['attribute_wholesale_price'];
}
elseif ($aId['product_wholesale_price'] != 0.0) {
$fWholeSalePrice = $aId['product_wholesale_price'];
}
else
{
$fWholeSalePrice = 0;
}
BT_OtprModuleDao::populateWholeSalePrice($aParams['order']->id,$fWholeSalePrice,$aId['id_order_detail']);
}
// check for Prestashop 1.5
$fWrappingTaxIncl = isset($aParams['order']->total_wrapping_tax_incl)? $aParams['order']->total_wrapping_tax_incl : null;
$fWrappingTaxExcl = isset($aParams['order']->total_wrapping_tax_excl)? $aParams['order']->total_wrapping_tax_excl : null;
// populate orders detail wrapping
if (!BT_OtprModuleTools::populateWrappingOrdersDetail($aParams['order']->id, $aParams['order']->total_wrapping, $fWrappingTaxExcl, $fWrappingTaxIncl)) {
// set return to false
$bReturn = false;
}
if (!empty($bReturn)) {
Db::getInstance()->Execute('COMMIT');
}
else {
Db::getInstance()->Execute('ROLLBACK');
}
}
}
return (
array('tpl' => _OTPR_TPL_HOOK_PATH . _OTPR_TPL_ORDER_VALIDATION, 'assign' => array())
);
}
}

View File

@ -0,0 +1,35 @@
<?php
/*
* 2007-2015 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License (AFL 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/afl-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-2015 PrestaShop SA
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 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;

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