Compare commits

...

136 Commits

Author SHA1 Message Date
Michael RICOIS
1ae6cde983 Merge branch 'tickets/r13985-telephone' into dev 2017-09-15 16:51:56 +02:00
Michael RICOIS
ae65d25d88 Add "representant phone"
SQL

ALTER TABLE `ps_customer` ADD `representant_tel` VARCHAR(10) NOT NULL
DEFAULT '' AFTER `representant`;
2017-09-07 15:38:22 +02:00
Michael RICOIS
5377f2c14d Merge remote-tracking branch 'origin/ticket/r13603-mydownloads' into dev 2017-09-06 15:50:20 +02:00
Michael RICOIS
84d72f07b1 Mode 0644 don't work in preprod so we use 0777 2017-09-06 15:47:35 +02:00
Michael RICOIS
865bebbd5a Merge remote-tracking branch 'origin/ticket/r13603-mydownloads' into dev 2017-09-06 14:59:43 +02:00
Michael RICOIS
218169e21f use redirectAdmin after delete 2017-09-06 14:59:19 +02:00
Michael RICOIS
0b59a0b11c Merge remote-tracking branch 'origin/ticket/r13603-mydownloads' into dev 2017-09-06 14:45:12 +02:00
Michael RICOIS
513bb86c3e Wait file is really upload to save in db 2017-09-06 14:44:24 +02:00
Michael RICOIS
24204ab7b5 Merge remote-tracking branch 'origin/ticket/r13603-mydownloads' into dev 2017-08-23 12:34:39 +02:00
Michael RICOIS
ee416c8041 Translate 2017-08-23 12:32:09 +02:00
Michael RICOIS
514d0511da Merge remote-tracking branch 'origin/ticket/r13603-mydownloads' into dev 2017-08-23 12:19:14 +02:00
Michael RICOIS
ea5e539bb9 Translate 2017-08-23 12:18:26 +02:00
Michael RICOIS
8e80044c97 Module string 2017-08-23 12:10:22 +02:00
Michael RICOIS
5c8d19854f Translate 2017-08-23 12:04:35 +02:00
Michael RICOIS
ee0ba31617 Display 2017-08-23 11:58:35 +02:00
Michael RICOIS
e22c38c3df Merge remote-tracking branch 'origin/ticket/r13603-mydownloads' into dev 2017-08-23 11:17:51 +02:00
Michael RICOIS
b368e4fe00 Fix permission on upload 2017-08-23 11:17:09 +02:00
Michael RICOIS
74acc0fa62 Fix permission on upload dir 2017-08-23 11:15:51 +02:00
Michael RICOIS
574d5f146c Merge remote-tracking branch 'origin/ticket/r13603-mydownloads' into dev 2017-08-23 11:10:04 +02:00
Michael RICOIS
c5ee4748c6 Filter only files associated to customer 2017-08-23 11:09:32 +02:00
Michael RICOIS
9960d45989 Fix display 2017-08-23 11:08:42 +02:00
Michael RICOIS
92c7928b6e Add logo 2017-08-23 10:55:18 +02:00
Michael RICOIS
918ed8f983 Merge remote-tracking branch 'origin/ticket/r13603-mydownloads' into dev 2017-08-23 10:29:56 +02:00
Michael RICOIS
8ee25f935e Fix file path 2017-08-23 10:16:04 +02:00
Michael RICOIS
193fe9e5d3 Add global file in list 2017-08-23 10:11:09 +02:00
Michael RICOIS
d623f19f56 Path to db install 2017-08-23 10:08:32 +02:00
Michael RICOIS
fc2df29f23 Add menu for MyDownloads 2017-08-23 10:03:45 +02:00
Michael RICOIS
5e93244674 Module Db install 2017-08-23 10:03:17 +02:00
Michael RICOIS
104eb16be2 File path 2017-08-23 09:58:49 +02:00
Michael RICOIS
dcb82b8096 added property 2017-08-23 09:56:54 +02:00
Michael RICOIS
f4cabfa29b Module antadisfiles 2017-08-22 17:09:06 +02:00
RoykinPROD
738aa51c1e update img cart 2017-08-01 15:16:13 +02:00
Michael RICOIS
f0f0361a8f Merge remote-tracking branch 'origin/ticket/image_carte-13604' into dev 2017-07-19 12:20:09 +02:00
Michael RICOIS
6bf3a6ed7f Merge remote-tracking branch 'origin/ticket/mail_password_13496' into dev 2017-07-19 12:18:03 +02:00
Michael RICOIS
30ae9f5dac Merge remote-tracking branch 'origin/master' into dev 2017-07-19 12:05:05 +02:00
Valentin TARLOWSKI
ac21fc235c Modification image paanier header et footer 2017-07-19 02:41:13 +02:00
Thibault GUILLAUME
301bef8069 Merge branch 'ticket/favicon_logo_13604-2' into 'master'
Modification favicon

See merge request !6
2017-07-05 17:53:06 +02:00
Thibault GUILLAUME
5392d1d300 Merge branch 'pb_image' into 'master'
fix pb file exist

See merge request !3
2017-06-29 11:08:39 +02:00
Valentin
b9d4cfcf5b Modification favicon 2017-06-28 16:04:08 +02:00
Valentin
7ba63e58bd Ajout d'un destinataire pour le mail password 2017-06-28 12:16:47 +02:00
Thibault GUILLAUME
2b9b182030 Merge branch 'tickets/r13484-addpageregister' into 'master'
Rajout des input ville et code postal

See merge request !2
2017-06-26 09:55:06 +02:00
root
6c0a154096 fix pb file exist 2017-06-26 09:52:48 +02:00
Valentin
b15a82b1ae Modification du destinataire de l'email 2017-06-23 15:43:02 +02:00
Valentin
f646c42db7 Rajout des input ville et code postal 2017-06-23 15:35:56 +02:00
root
51442d7287 Merge branch 'tickets/r13536-addpageregister' 2017-06-21 18:01:32 +02:00
RoykinPROD
88a2834870 push prod 2017-06-21 15:44:30 +02:00
Valentin
11b9f278c0 Nom et Prenom passé en required 2017-06-20 21:27:38 +02:00
Valentin
820e080976 Modification affichage erreur du form 2017-06-20 20:46:41 +02:00
Valentin
8f17f76225 Modification du message d'information 2017-06-20 20:38:07 +02:00
Valentin
773b8db153 Petite modification du front 2017-06-20 20:28:35 +02:00
Valentin
5b49ba1fcd Modification du visu du form 2017-06-20 20:16:25 +02:00
Valentin
4f314a1310 Modification de l'affichage du block d'inscription 2017-06-20 20:10:13 +02:00
Valentin
ea946e212c modification du form 2017-06-20 18:41:48 +02:00
Valentin
2969c5b01a Modification du mail 2017-06-20 17:23:38 +02:00
Valentin
c64355eb2a ajout de la traducition 2017-06-20 13:02:23 +02:00
Valentin
9fa6bcaa42 Ajout de la redirection, du dossier mail et modification du form 2017-06-20 12:55:58 +02:00
root
a31bb7105a divers 2017-06-19 18:02:46 +02:00
root
47f206a351 add index file 2017-06-19 17:50:41 +02:00
root
fa56cdd243 replace layout function 2017-06-19 17:47:56 +02:00
Valentin
90cab265de Ajout du module pour ajouter des clients à l'espace professionnel 2017-06-19 17:46:51 +02:00
Rodney Figaro
967ca30a6f Merge branch 'levest_merge' into dev 2017-06-07 12:32:05 +02:00
Rodney Figaro
1a760d8bf0 Merge branch 'levest_merge' into dev 2017-06-07 11:23:33 +02:00
Rodney Figaro
f63fb84af8 Merge branch 'ticket/r13161-Fusion-Levest-Roykin' into dev 2017-06-02 16:42:18 +02:00
Rodney Figaro
179dd86c83 Merge branch 'ticket/r13265-2-fix-label-bottle' into dev 2017-05-30 18:23:55 +02:00
Rodney Figaro
652bcc3c46 Merge branch 'ticket/r13265-2-fix-label-bottle' into dev 2017-05-30 18:19:06 +02:00
Rodney Figaro
07c8d42616 Merge branch 'ticket/r13144-bug-double-orders' into dev 2017-05-29 16:18:02 +02:00
Rodney Figaro
7e51bf6ab2 Merge branch 'ticket/r13144-bug-double-orders' into dev 2017-05-29 12:26:03 +02:00
Rodney Figaro
107558f0aa Merge branch 'ticket/r13144-bug-double-orders' into dev 2017-05-24 12:07:41 +02:00
Rodney Figaro
290e1070e6 Merge branch 'ticket/r13161-remove-guest-in-emails' into dev 2017-05-19 15:52:23 +02:00
Rodney Figaro
0a310d3eeb fix conflict 2017-05-19 15:51:46 +02:00
Rodney Figaro
ffd2b0398e Merge branch 'ticket/r13161-Fusion-Levest-Roykin' into dev 2017-05-17 11:16:01 +02:00
Rodney Figaro
a8c83bf508 fix conflicts 2017-05-16 16:31:36 +02:00
Rodney Figaro
e82e8c4d12 Merge branch 'ticket/r13161-Fusion-Levest-Roykin' into dev 2017-05-15 11:04:47 +02:00
Rodney Figaro
ec46216f7f Merge branch 'ticket/r13161-Fusion-Levest-Roykin' into dev 2017-05-15 10:59:20 +02:00
Rodney Figaro
d795a8e236 Merge branch 'ticket/r13161-Fusion-Levest-Roykin' into dev 2017-05-15 10:55:33 +02:00
Rodney Figaro
c97dbd5b54 Merge branch 'ticket/r13161-Fusion-Levest-Roykin' into dev 2017-05-15 10:53:43 +02:00
Rodney Figaro
9d614a89ec Merge branch 'ticket/r13161-Fusion-Levest-Roykin' into dev 2017-05-15 10:42:03 +02:00
Rodney Figaro
9712c1dcf1 fix conflicts 2017-05-12 18:29:40 +02:00
Rodney Figaro
fc1fc93528 fix conflicts 2017-05-12 17:54:55 +02:00
Rodney Figaro
766078a8df Merge branch 'ticket/r13265-hide-product-text' into dev 2017-05-12 17:50:02 +02:00
Rodney Figaro
8edc8294e0 Merge branch 'ticket/r13265-hide-product-text' into dev 2017-05-12 17:46:08 +02:00
Rodney Figaro
f377439f61 Merge branch 'ticket/r13265-hide-product-text' into dev 2017-05-12 17:42:41 +02:00
Rodney Figaro
f13635d3ca Merge branch 'ticket/r13161-Fusion-Levest-Roykin' into dev 2017-05-12 17:10:00 +02:00
Rodney Figaro
b4d7500699 Merge branch 'ticket/r13161-Fusion-Levest-Roykin' into dev 2017-05-12 16:59:58 +02:00
Rodney Figaro
0c909a97e2 Merge branch 'fix_erp_mailer' into dev 2017-05-12 16:32:40 +02:00
Rodney Figaro
73a82fa8e7 Merge branch 'ticket/r13161-Fusion-Levest-Roykin' into dev 2017-05-12 16:24:23 +02:00
Rodney Figaro
b9bf9c018c Merge branch 'ticket/r13161-Fusion-Levest-Roykin' into dev 2017-05-12 16:00:13 +02:00
Rodney Figaro
413de3b3ec fix conflit in global css 2017-05-12 12:50:42 +02:00
Rodney Figaro
c68a051cfe Merge branch 'ticket/r13161-Fusion-Levest-Roykin' into dev 2017-05-12 11:33:45 +02:00
Rodney Figaro
42149ac043 Merge branch 'ticket/r13161-Fusion-Levest-Roykin' into dev 2017-05-12 10:42:45 +02:00
Rodney Figaro
9b68479750 Merge branch 'ticket/r13161-Fusion-Levest-Roykin' into dev 2017-05-12 09:25:43 +02:00
Rodney Figaro
28ef200c4b Merge branch 'ticket/r13161-Fusion-Levest-Roykin' into dev 2017-05-10 18:42:30 +02:00
Rodney Figaro
fe8295dd55 Merge branch 'ticket/r13161-Fusion-Levest-Roykin' into dev 2017-05-10 14:38:09 +02:00
Rodney Figaro
2cf7914a8b Merge branch 'ticket/r13161-Fusion-Levest-Roykin' into dev 2017-05-10 14:25:17 +02:00
Rodney Figaro
2d3c944003 Merge branch 'ticket/r13161-Fusion-Levest-Roykin' into dev 2017-05-10 14:18:27 +02:00
Rodney Figaro
7bfbbecd06 Merge branch 'ticket/r13075-erp-fix-update-products' into dev 2017-05-05 11:41:30 +02:00
Rodney Figaro
14b6c35903 Merge branch 'ticket/r13075-erp-fix-update-products' into dev 2017-05-03 17:50:58 +02:00
Rodney Figaro
2b28851bf7 Merge branch 'ticket/r12695-allinonereward' into dev 2017-04-28 12:25:25 +02:00
Rodney Figaro
1e15cc999a 12695 - increase font size of the text displayed in cart summary 2017-04-28 12:25:03 +02:00
Rodney Figaro
be34cd8eb3 Merge branch 'ticket/r12695-allinonereward' into dev 2017-04-27 18:42:45 +02:00
Rodney Figaro
e6d5829a21 12695 - display voucher code input bloc even if voucher has been entered 2017-04-27 18:42:37 +02:00
Rodney Figaro
742285b162 Merge branch 'ticket/r12695-allinonereward' into dev 2017-04-27 18:13:50 +02:00
Rodney Figaro
03a449b4a9 12695 - replace in translation "recompenses" by "avoirs" in rewards account front page 2017-04-27 18:13:39 +02:00
Rodney Figaro
7b93b6fb2b Merge branch 'ticket/r12695-allinonereward' into dev 2017-04-27 18:09:25 +02:00
Rodney Figaro
3cdd2cf5ea 12695 - change text in shopping cart when no fidelity is possible 2017-04-27 18:09:15 +02:00
Rodney Figaro
25c1eebe36 Merge branch 'ticket/r13064-automatic-tva' into dev 2017-04-27 17:57:20 +02:00
Rodney Figaro
d22dc86e3d Merge branch 'ticket/r12890-upgrade-give-a-gift-2' into dev 2017-04-27 17:45:28 +02:00
Rodney Figaro
2ec644a69c Merge branch 'ticket/r13075-erp-fix-update-products' into dev 2017-04-21 12:04:22 +02:00
Rodney Figaro
5af89d532e Merge branch 'ticket/r13075-erp-fix-update-products' into dev 2017-04-21 11:54:39 +02:00
Rodney Figaro
7ae2ff628b Merge branch 'ticket/r13075-erp-fix-update-products' into dev 2017-04-21 11:44:09 +02:00
Rodney Figaro
a393c22970 Merge branch 'fix_give_a_gift' into dev 2017-04-21 10:46:02 +02:00
Rodney Figaro
9300802f70 Merge branch 'ticket/r13075-erp-fix-update-products' into dev 2017-04-21 10:39:13 +02:00
Rodney Figaro
6520bdb78d Merge branch 'ticket/r12695-allinonereward' into dev 2017-04-19 17:34:21 +02:00
Rodney Figaro
d3815878a2 12695 - restore previous text "Add some products..." in shopping cart 2017-04-19 17:34:11 +02:00
Rodney Figaro
db49038494 Merge branch 'ticket/r12695-allinonereward' into dev 2017-04-19 17:24:13 +02:00
Rodney Figaro
23009b7d08 12695 - save translations 2017-04-19 17:24:05 +02:00
Rodney Figaro
9dd40d2d78 Merge branch 'ticket/r12695-allinonereward' into dev 2017-04-19 17:16:53 +02:00
Rodney Figaro
a3192820d0 12695 - add link to rewards in block account, fix give a gift shopping-cart display issue 2017-04-19 17:16:44 +02:00
Rodney Figaro
e7281a7a34 12695 - Fixes all-in-one reward integration in shopping cart 2017-04-19 16:33:47 +02:00
Rodney Figaro
ecb330844f Merge branch 'master' of gitlab.antadis.net:dev-antadis/roykin into ticket/r12695-allinonereward 2017-04-19 15:45:56 +02:00
Rodney Figaro
965382262f Merge branch 'ticket/r12890-upgrade-give-a-gift' into dev 2017-04-19 13:01:39 +02:00
Rodney Figaro
8bb6a2cc1b fix conflicts 2017-04-11 15:18:25 +02:00
Rodney Figaro
d77f4da0af Merge branch 'master' into dev 2017-03-29 17:40:27 +02:00
root
7b3e160f86 12756 - fix emails filtering in erp 2017-03-29 11:32:53 +00:00
root
2a8ac9dec0 Merge branch 'dev' of gitlab.antadis.net:dev-antadis/roykin into dev 2017-03-29 07:16:34 +00:00
Rodney Figaro
9426808c2e Merge branch 'fix_preprod_erp' into dev 2017-03-29 09:05:54 +02:00
Rodney Figaro
00bd2d11b3 12756 - add PREPROD MODE, anonymize email erp - presta, except test emails from antadis and roykin 2017-03-29 09:05:19 +02:00
Rodney Figaro
455145cef7 12695 - add link to rewards account in shopping cart + translations 2017-03-24 18:14:55 +01:00
root
33f9aaf2bd 12695 - override allinone_reward to use the theme emails rather than the module emails 2017-03-24 16:08:21 +00:00
Rodney Figaro
e791aa768b Merge branch 'dev' of gitlab.antadis.net:dev-antadis/roykin into dev 2017-03-24 11:11:29 +01:00
Rodney Figaro
1e1d58d7ea Merge branch 'ticket/r12695-allinonereward' of gitlab.antadis.net:dev-antadis/roykin into ticket/r12695-allinonereward 2017-03-24 10:55:06 +01:00
root
9c6b53ceeb skin all in one + mail 2017-03-24 09:52:14 +00:00
Rodney Figaro
16907e9c17 Merge branch 'master' of gitlab.antadis.net:dev-antadis/roykin into ticket/r12695-allinonereward 2017-03-23 12:54:49 +01:00
root
7e64106487 Merge branch 'master' of gitlab.antadis.net:dev-antadis/roykin into dev 2017-03-21 17:39:42 +00:00
Rodney Figaro
84a0001706 Merge branch 'master' into dev 2017-03-20 09:19:51 +01:00
Rodney Figaro
5c41070458 add all-in-one reward module (not modified, original version) 2017-03-16 14:06:13 +01:00
56 changed files with 2045 additions and 61 deletions

View File

@ -33,20 +33,19 @@ $ids_customer = $models->execute_kw($db, $uid, $password,
// $ids_customer = array(7463);
// }
foreach ($ids_customer as $id_customer) {
// get info company
foreach ($ids_customer as $id_customer)
{
// Get info company
$record = $models->execute_kw($db, $uid, $password,
'res.partner', 'read', array($id_customer));
$other_addresses = $models->execute_kw($db, $uid, $password,
'res.partner', 'read', array($record['child_ids']));
$tags = $models->execute_kw($db, $uid, $password,
'res.partner.category', 'read', array($record['category_id']));
// get representant info
// Get representant info
$representant_email = '';
if (is_array($record) && isset($record['user_id']) && isset($record['user_id'][1])) {
$ids_representant = $models->execute_kw($db, $uid, $password,
@ -59,7 +58,7 @@ foreach ($ids_customer as $id_customer) {
if (is_array($ids_representant) && isset($ids_representant[0])) {
$representant = $models->execute_kw($db, $uid, $password,
'res.users', 'read', array($ids_representant[0]), array('fields'=>array('email')));
'res.users', 'read', array($ids_representant[0]), array('fields'=>array('email', 'phone')));
if (is_array($representant)) {
$representant_email = $representant['email'];
@ -67,7 +66,6 @@ foreach ($ids_customer as $id_customer) {
}
}
$group_to_add_to_customer = array();
foreach ($tags as $key => $tag) {
if (!Group::getByName($tag['name'], 1)) {
@ -158,6 +156,7 @@ foreach ($ids_customer as $id_customer) {
$customer->company = utf8_encode( (isset($record['display_name']) ? $record['display_name'] : $record['name'] ) );
$customer->id_erp = $record['id'];
$customer->representant = (isset($record['user_id'][1]) ? $record['user_id'][1] : '' );
$customer->representant_tel = str_replace(" ", "", $representant['phone']);
// If customer add with success create Address
if ($customer->add()) {

View File

@ -91,5 +91,10 @@ foreach ($final as $key => $item) {
$address->id_country = ErpTools::getCountryIdForPresta($item['addr']['country_id'][0]);
$address->is_erp = 1;
$address->id_erp = $item['addr']['id'];
if (!empty($address->address1)) {
$address->save();
}
else {
error_log('erp_update_address - customer id #'.$customer->id.' / erp id #'.$item['company_id_erp'].' empty address');
}
}

View File

@ -8,6 +8,14 @@ require '../config/config.inc.php';
require 'ErpTools.php';
require 'config.php';
// Var to exec from cli
$executeCli = false;
if (php_sapi_name() === 'cli') {
$executeCli = true;
$_SERVER['REMOTE_ADDR'] = '127.0.0.1';
$_GET['token'] = ERP_SCRIPT_TOKEN;
}
if (empty($_GET['token']) || $_GET['token'] !== ERP_SCRIPT_TOKEN) {
die;
}
@ -29,8 +37,18 @@ $ids_customer_update = $models->execute_kw($db, $uid, $password,
)
);
foreach ($ids_customer_update as $id_customer) {
// get info company
$customerCpt = 0;
$customerTotal = count($ids_customer_update);
if ($customerTotal == 0) {
if ($executeCli) { echo "Nothing to update\n"; }
}
foreach ($ids_customer_update as $id_customer)
{
$customerCpt++;
if ($executeCli) { echo "$customerCpt/$customerTotal\n"; }
// Get info company
$record = $models->execute_kw($db, $uid, $password,
'res.partner', 'read', array($id_customer));
@ -43,6 +61,22 @@ foreach ($ids_customer_update as $id_customer) {
// echo '<pre>'; var_dump($record); echo '</pre>';
// die;
// Get representant info
if (is_array($record) && isset($record['user_id']) && isset($record['user_id'][1])) {
$ids_representant = $models->execute_kw($db, $uid, $password,
'res.users', 'search', array(
array(
array('name', '=', $record['user_id'][1])
)
)
);
if (is_array($ids_representant) && isset($ids_representant[0])) {
$representant = $models->execute_kw($db, $uid, $password,
'res.users', 'read', array($ids_representant[0]), array('fields' => array('email', 'phone')));
}
}
$group_to_add_to_customer = array();
foreach ($tags as $key => $tag) {
$group = '';
@ -111,6 +145,7 @@ foreach ($ids_customer_update as $id_customer) {
$customer->email = $email;
$customer->company = utf8_encode($record['name']);
$customer->representant = $record['user_id'][1];
$customer->representant_tel = str_replace(" ", "", $representant['phone']);
$customer->update();
$customer->updateGroup($group_to_add_to_customer);
@ -166,7 +201,13 @@ foreach ($ids_customer_update as $id_customer) {
$address->id_country = ErpTools::getCountryIdForPresta($other_address['country_id'][0]);
$address->is_erp = 1;
$address->id_erp = $other_address['id'];
if (!empty($address->address1)) {
$address->save();
}
else {
error_log('erp_customer_update : customer id #'.$customer->id.' / erp id #'.$record['id'].' empty address');
}
}
}
}

View File

@ -31,8 +31,9 @@ $ids_product = $models->execute_kw($db, $uid, $password,
$d = Db::getInstance();
foreach ($ids_product as $key => $id) {
$date = date('Y-m-d H:i:s');
foreach ($ids_product as $key => $id) {
// get product's information
$record = $models->execute_kw($db, $uid, $password,
'product.template', 'read', array($id)
@ -80,7 +81,8 @@ foreach ($ids_product as $key => $id) {
p.`reference` = "'.$record['default_code'].'",
p.`weight` = '.(float)$record['weight'].',
p.`out_of_stock` = 2,
pl.`name` = "'.pSQL(trim(utf8_encode($name_product))).'"
pl.`name` = "'.pSQL(trim(utf8_encode($name_product))).'",
p.`date_upd` = "' . $date .'"
WHERE
`id_erp` = '.(int)$id.'
AND p.`id_product` = pl.id_product
@ -97,6 +99,8 @@ foreach ($ids_product as $key => $id) {
$sql = 'SELECT `id_image` FROM '._DB_PREFIX_.'image WHERE `id_product` = '.(int)$product_id;
$id_image = $d->getValue($sql);
if ($id_image) {
$image = new Image($id_image);
$imagesTypes = ImageType::getImagesTypes('products');
@ -104,7 +108,7 @@ foreach ($ids_product as $key => $id) {
$image_exists = true;
foreach ($imagesTypes as $imageType) {
$image_exists = file_exists($existing_path.'-'.stripslashes($imageType['name']).'.'.$image->image_format);
$image_exists = file_exists('../img/p/'.$existing_path.'-'.stripslashes($imageType['name']).'.'.$image->image_format);
if (!$image_exists) {
break;
}

View File

@ -0,0 +1,60 @@
<?php
class addCustomer extends Module
{
public function __construct()
{
$this->name = 'addcustomer';
$this->tab = 'front_office_feature';
$this->version = '1.0';
$this->author = 'Antadis';
$this->need_instance = 0;
$this->ps_versions_compliance = array('min' => '1.5', 'max' => _PS_VERSION_);
parent::__construct();
$this->displayName = $this->l('Add customer');
$this->description = $this->l('Ajout de client pouvant passer des commandes pro.');
$this->confirmUninstall = $this->l('Are you sure you want to uninstall this module?');
}
public function install()
{
return parent::install()
&& $this->registerHook('DisplayHomeAddCusto')
&& $this->registerHook('moduleRoutes');
}
public function hookDisplayHomeAddCusto($params)
{
$this->context->smarty->assign(
array(
'formLink' => $this->context->link->getModuleLink('addcustomer', 'form'),
'register' => Tools::getValue('register'),
)
);
return $this->display(__FILE__, 'views/templates/hook/addcustomer.tpl');
}
public function hookModuleRoutes($params)
{
return [
'module-addcustomer-form' => [
'controller' => 'form',
'rule' => 'ouverture-compte.html',
'keywords' => [
'code'=> array(
'regexp'=>'[\w]+',
'param'=>'short_code'
)
],
'params' => [
'fc' => 'module',
'module' => 'addcustomer',
'controller' => 'form'
]
]
];
}
}

View File

@ -0,0 +1,86 @@
<?php
class addCustomerFormModuleFrontController extends ModuleFrontController
{
public $errors = null;
public function initContent()
{
if (Tools::isSubmit('SubmitRegister')) {
$this->processRequest();
if (empty($this->errors)) {
$this->sendMail();
}
}
$this->context->smarty->assign(array(
'hasError' => !empty($this->errors),
'errors' => $this->errors,
'formLink' => $this->context->link->getModuleLink('addcustomer', 'form'),
));
parent::initContent();
$this->setTemplate('form.tpl');
}
private function processRequest()
{
if (!Tools::getValue('lastName')) {
$this->errors = Tools::displayError('Un nom est requis');
} elseif (!Validate::isName(Tools::getValue('lastName'))) {
$this->errors = Tools::displayError('Veuillez renseigner un nom correct');
} elseif (!Tools::getValue('firstName')) {
$this->errors = Tools::displayError('Un nom est requis');
} elseif (!Validate::isName(Tools::getValue('firstName'))) {
$this->errors = Tools::displayError('Veuillez renseigner un prenom correct');
} elseif (!Tools::getValue('phoneNumber')) {
$this->errors = Tools::displayError('Un numéro est requis');
} elseif (!Validate::isPhoneNumber(Tools::getValue('phoneNumber'))) {
$this->errors = Tools::displayError('Veuillez renseigner un numéro correct');
} elseif (!Tools::getValue('email')) {
$this->errors = Tools::displayError('Une adresse mail est requise');
} elseif (!Validate::isEmail(Tools::getValue('email'))) {
$this->errors = Tools::displayError('Veuillez renseigner une adresse mail correct');
} elseif (!Tools::getValue('name')) {
$this->errors = Tools::displayError('Un nom d\'entrerpise est requise');
} elseif (!Tools::getValue('address')) {
$this->errors = Tools::displayError('Une adresse est requise');
} elseif (!Validate::isAddress(Tools::getValue('address'))) {
$this->errors = Tools::displayError('Veuillez renseigner une adresse correct');
}elseif (!Tools::getValue('city')) {
$this->errors = Tools::displayError('Une ville est requise');
} elseif (!Validate::isCityName(Tools::getValue('city'))) {
$this->errors = Tools::displayError('Veuillez renseigner une ville correct');
} elseif (!Tools::getValue('code')) {
$this->errors = Tools::displayError('Un code postal est requise');
} elseif (!Validate::isInt(Tools::getValue('code'))) {
$this->errors = Tools::displayError('Veuillez renseigner un code postal correct');
} elseif (!Tools::getValue('siret')) {
$this->errors = Tools::displayError('Un SIRET est requise');
} elseif (!Validate::isSiret(Tools::getValue('siret'))) {
$this->errors = Tools::displayError('Veuillez renseigner un SIRET correct');
}
}
private function sendMail()
{
$subject = 'Demande d\'accès à l\'espace professionnel';
$data = array(
'{lastName}' => Tools::getValue('lastName'),
'{firstName}' => Tools::getValue('firstName'),
'{phoneNumber}' => Tools::getValue('phoneNumber'),
'{address}' => Tools::getValue('address'),
'{city}' => Tools::getValue('city'),
'{code}' => Tools::getValue('code'),
'{email}' => Tools::getValue('email'),
'{name}' => Tools::getValue('name'),
'{siret}' => Tools::getValue('siret'),
);
Mail::Send(intval(Context::getContext()->language->id), 'addcustomer', $subject, $data, 'christophe@roykin.fr', null, null, null, null, null, 'modules/addcustomer/mails/');
Mail::Send(intval(Context::getContext()->language->id), 'addcustomer', $subject, $data, 'gerald@roykin.fr', null, null, null, null, null, 'modules/addcustomer/mails/');
$link = $this->context->link->getPageLink('index').'?register=success';
Tools::redirect($link);
}
}

View File

@ -0,0 +1,35 @@
<?php
/*
* 2007-2014 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-2014 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,35 @@
<?php
/*
* 2007-2014 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-2014 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,35 @@
<?php
/*
* 2007-2014 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-2014 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,119 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/1999/REC-html401-19991224/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" />
<title>Message de {shop_name}</title>
<style> @media only screen and (max-width: 300px){
body {
width:218px !important;
margin:auto !important;
}
.table {width:195px !important;margin:auto !important;}
.logo, .titleblock, .linkbelow, .box, .footer, .space_footer{width:auto !important;display: block !important;}
span.title{font-size:20px !important;line-height: 23px !important}
span.subtitle{font-size: 14px !important;line-height: 18px !important;padding-top:10px !important;display:block !important;}
td.box p{font-size: 12px !important;font-weight: bold !important;}
.table-recap table, .table-recap thead, .table-recap tbody, .table-recap th, .table-recap td, .table-recap tr {
display: block !important;
}
.table-recap{width: 200px!important;}
.table-recap tr td, .conf_body td{text-align:center !important;}
.address{display: block !important;margin-bottom: 10px !important;}
.space_address{display: none !important;}
}
@media only screen and (min-width: 301px) and (max-width: 500px) {
body {width:308px!important;margin:auto!important;}
.table {width:285px!important;margin:auto!important;}
.logo, .titleblock, .linkbelow, .box, .footer, .space_footer{width:auto!important;display: block!important;}
.table-recap table, .table-recap thead, .table-recap tbody, .table-recap th, .table-recap td, .table-recap tr {
display: block !important;
}
.table-recap{width: 295px !important;}
.table-recap tr td, .conf_body td{text-align:center !important;}
}
@media only screen and (min-width: 501px) and (max-width: 768px) {
body {width:478px!important;margin:auto!important;}
.table {width:450px!important;margin:auto!important;}
.logo, .titleblock, .linkbelow, .box, .footer, .space_footer{width:auto!important;display: block!important;}
}
@media only screen and (max-device-width: 480px) {
body {width:308px!important;margin:auto!important;}
.table {width:285px;margin:auto!important;}
.logo, .titleblock, .linkbelow, .box, .footer, .space_footer{width:auto!important;display: block!important;}
.table-recap{width: 295px!important;}
.table-recap tr td, .conf_body td{text-align:center!important;}
.address{display: block !important;margin-bottom: 10px !important;}
.space_address{display: none !important;}
}
</style>
</head>
<body style="-webkit-text-size-adjust:none;background-color:#fff;width:100%;font-family:Open-sans, sans-serif;color:#555454;font-size:13px;line-height:18px;margin:auto">
<table bgcolor="{mail-bg-color}" class="table table-mail" style="width:100%;margin-top:10px;-moz-box-shadow:0 0 5px #afafaf;-webkit-box-shadow:0 0 5px #afafaf;-o-box-shadow:0 0 5px #afafaf;box-shadow:0 0 5px #afafaf;filter:progid:DXImageTransform.Microsoft.Shadow(color=#afafaf,Direction=134,Strength=5)">
<tr>
<td class="space" style="width:20px;padding:7px 0">&nbsp;</td>
<td align="center">
<table class="table" bgcolor="{table-bg-color}" style="width:600px" cellspacing="0" cellspacing="0">
<tr>
<td align="center" class="logo">
<a title="{shop_name}" href="{shop_url}" style="color:{link-color}">
<img src="{header_img}" alt="{shop_name}">
</a>
</td>
</tr>
</table>
<table bgcolor="{table-bg-color}" style="width:600px" cellspacing="0">
<tr>
<td class="titleblock" style="padding:10px 25px">
<font size="2" face="Open-sans, sans-serif" color="#555454">
<span class="title" style="color:{titre1-color};font-weight:500;font-size:28px;line-height:33px">Demande d'accès à l'espace professionnel !</span>
</font>
</td>
</tr>
<tr>
<td class="box" style="padding:10px 25px">
<table class="table" style="border:1px solid {box-border-color};background-color:{box-bg-color};width:100%">
<tr>
<td width="5" style="padding:15px 5px">&nbsp;</td>
<td style="padding:15px 0">
<font size="2" face="Open-sans, sans-serif" color="#555454">
<span style="color:#777">
<span style="color:#333"><strong>Nom du client :</strong></span> {firstName} {lastName}<br /><br />
<span style="color:#333"><strong>Nom de l'enseigne :</strong></span> {name}<br /><br />
<span style="color:#333"><strong>Adresse du siège social :</strong></span> {address}<br /><br />
<span style="color:#333"><strong>Ville du siège social :</strong></span> {city}<br /><br />
<span style="color:#333"><strong>Code postal du siège social :</strong></span> {code}<br /><br />
<span style="color:#333"><strong>SIRET de l'entreprise :</strong></span> {siret}<br /><br />
<span style="color:#333"><strong>Adresse e-mail du client : <a href="mailto:{email}" style="color:#337ff1">{email}</a></strong></span><br /><br />
<span style="color:#333"><strong>Numéro de telephone du client :</strong></span> {phoneNumber}<br /><br />
</span>
</font>
</td>
<td width="10" style="padding:15px 5px">&nbsp;</td>
</tr>
</table>
</td>
</tr>
</table>
<table class="table" bgcolor="{table-bg-color}" style="width:600px;padding-top:10px" cellspacing="0" cellpadding="0">
<tr>
<td class="footer">
<img src="{footer_img}" alt="{shop_name}">
</td>
</tr>
</table>
</td>
<td class="space" style="width:20px;padding:7px 0">&nbsp;</td>
</tr>
</table>
</body>
</html>

View File

@ -0,0 +1,23 @@
[{shop_url}]
Demande d'accès à l'espace professionnel !
Nom du client : {firstName} {lastName}
Nom de l'entreprise : {name}
Adresse du siège social : {address}
Ville du siège social : {city}
Code postal du siège social : {code}
SIRET de l'entreprise : {siret}
Adresse e-mail du client : {email}
Numéro de telephone du client : {phoneNumber}
{shop_name} [{shop_url}] réalisé avec
PrestaShop(tm) [http://www.prestashop.com/]

View File

@ -0,0 +1 @@
<h1>{l s='test' mod='addcustomer'}</h1>

View File

@ -0,0 +1,35 @@
<?php
/*
* 2007-2014 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-2014 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,35 @@
<?php
/*
* 2007-2014 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-2014 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,35 @@
<?php
/*
* 2007-2014 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-2014 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,67 @@
<body style="background-color: black;">
<header class="page-heading">
<div class="ctn">
<h1>{l s='Inscription espace professionnel' mod='addcustomer'}</h1>
</div>
</header>
<div id="auth" class="ctn">
<div class="row">
<div class="offset-lg3 lg6 offset-md2 md8 sm12">
{if $errors === null || $hasError === true}
<form action="{$formLink}" method="post" class="box" id="login_form">
<div class="inner">
<div class="box-content clearfix">
{if $hasError === true}
<div class="alert alert-danger displayError" style="margin-bottom: 20px;">{$errors}</div>
{/if}
<div class="form-group">
<label for="lastName">{l s='Nom' mod='addcustomer'} <sup>*</sup></label>
<input type="text" required name="lastName" class="account_input form-control" {if (isset($smarty.post.lastName))} value="{$smarty.post.lastName}"{/if}>
</div>
<div class="form-group">
<label for="firstName">{l s='Prenom' mod='addcustomer'} <sup>*</sup></label>
<input type="text" required name="firstName" class="account_input form-control" {if (isset($smarty.post.firstName))} value="{$smarty.post.firstName}"{/if}>
</div>
<div class="form-group">
<label for="phoneNumber">{l s='Numéro de téléphone' mod='addcustomer'} <sup>*</sup></label>
<input type="tel" required name="phoneNumber" class="account_input form-control" {if (isset($smarty.post.phoneNumber))} value="{$smarty.post.phoneNumber}"{/if}>
</div>
<div class="form-group">
<label for="email">{l s='Adresse e-mail' mod='addcustomer'} <sup>*</sup></label>
<input type="email" required name="email" class="account_input form-control" {if (isset($smarty.post.email))} value="{$smarty.post.email}"{/if}>
</div>
<div class="form-group">
<label for="name">{l s='Nom de l\'enseigne' mod='addcustomer'} <sup>*</sup></label>
<input type="text" required name="name" class="account_input form-control" {if (isset($smarty.post.name))} value="{$smarty.post.name}"{/if}>
</div>
<div class="form-group">
<label for="address">{l s='Adresse du siège social' mod='addcustomer'} <sup>*</sup></label>
<input type="text" required name="address" class="account_input form-control" {if (isset($smarty.post.address))} value="{$smarty.post.address}"{/if}>
</div>
<div class="form-group">
<label for="address">{l s='Ville du siège social' mod='addcustomer'} <sup>*</sup></label>
<input type="text" required name="city" class="account_input form-control" {if (isset($smarty.post.city))} value="{$smarty.post.city}"{/if}>
</div>
<div class="form-group">
<label for="address">{l s='Code Postal du siège social' mod='addcustomer'} <sup>*</sup></label>
<input type="text" required name="code" class="account_input form-control" {if (isset($smarty.post.code))} value="{$smarty.post.code}"{/if}>
</div>
<div class="form-group">
<label for="siret">{l s='SIRET de l\'entreprise' mod='addcustomer'} <sup>*</sup></label>
<input type="text" required name="siret" class="account_input form-control" {if (isset($smarty.post.siret))} value="{$smarty.post.siret}"{/if}>
</div>
<button type="submit" id="SubmitLogin" name="SubmitRegister" class="btn btn-full-width no-icon">
<span>{l s='envoyer' mod='addcustomer'}</span>
</button>
</div>
</div>
</form>
{else}
<div class="displayError">
<p>{l s='Merci un conseiller prendra contact avec vous rapidement' mod='addcustomer'}</p>
</div>
{/if}
</div>
</div>
</div>
</body>

View File

@ -0,0 +1,35 @@
<?php
/*
* 2007-2014 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-2014 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,12 @@
<div class="lg6 md6 sm12 xs12">
<div class="box">
<div class="inner">
<h2 class="title">{l s='Pas encore inscrit ?' mod='addcustomer'}</h2>
{if $register == 'success'}
<p class="alert alert-success">{l s='L\'email a bien était envoyé et nous traitons votre demande d\'accès dans les plus bref délais.' mod='addcustomer'}</p>
{else}
<a style="color: #bfa56d;" class="lost_password" href="{$formLink}">{l s='Demander un accès à l\'espace professionnel' mod='addcustomer'}</a>
{/if}
</div>
</div>
</div>

View File

@ -0,0 +1,35 @@
<?php
/*
* 2007-2014 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-2014 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,35 @@
<?php
/*
* 2007-2014 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-2014 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,167 @@
<?php
require_once dirname(__FILE__).'/classes/Files.php';
class AntadisFiles extends Module
{
public function __construct()
{
$this->name = 'antadisfiles';
$this->tab = 'front_office_features';
$this->version = '0.1';
$this->author = 'antadis';
$this->bootstrap = true;
parent::__construct();
$this->displayName = $this->l('Files for customers');
$this->description = $this->l('With this module, you could assign files to customers.');
}
public function install()
{
// Call install parent method
if (!parent::install()) {
return false;
}
// Execute module install SQL statements
$sql_file = dirname(__FILE__).'/install/db.txt';
if (!$this->loadSQLFile($sql_file)) {
return false;
}
// Menu
if (!$this->installTab('AdminCustomers', 'AdminAntadisFiles', 'Files for customers')) {
return false;
}
// Controllers
// Register hooks
if (!$this->registerHook('displayAdminCustomers')
|| !$this->registerHook('displayBackOfficeHeader')
|| !$this->registerHook('ModuleRoutes')) {
return false;
}
return true;
}
public function uninstall()
{
// Call uninstall parent method
if (!parent::uninstall()) {
return false;
}
// Hook
if (!$this->unregisterHook('displayAdminCustomers')
|| !$this->unregisterHook('displayBackOfficeHeader')
|| !$this->unregisterHook('ModuleRoutes')) {
return false;
}
// Controllers
// Menu
if (!$this->uninstallTab('AdminAntadisFiles')) {
return false;
}
// All went well!
return true;
}
public function installTab($parent, $class_name, $name)
{
// Create new admin tab
$tab = new Tab();
$tab->id_parent = (int)Tab::getIdFromClassName($parent);
$tab->name = array();
foreach (Language::getLanguages(true) as $lang)
$tab->name[$lang['id_lang']] = $name;
$tab->class_name = $class_name;
$tab->module = $this->name;
$tab->active = 1;
return $tab->add();
}
public function uninstallTab($class_name)
{
// Retrieve Tab ID
$id_tab = (int)Tab::getIdFromClassName($class_name);
// Load tab
$tab = new Tab((int)$id_tab);
// Delete it
return $tab->delete();
}
public function loadSQLFile($sql_file)
{
// Get install SQL file content
$sql_content = file_get_contents($sql_file);
// Replace prefix and store SQL command in array
$sql_content = str_replace('PREFIX_', _DB_PREFIX_, $sql_content);
$sql_requests = preg_split("/;\s*[\r\n]+/", $sql_content);
// Execute each SQL statement
$result = true;
foreach($sql_requests as $request) {
if (!empty($request)) {
$result &= Db::getInstance()->execute(trim($request));
}
}
return $result;
}
public function getHookController($hook_name)
{
// Include the controller file
require_once(dirname(__FILE__).'/controllers/hook/'. $hook_name.'.php');
// Build dynamically the controller name
$controller_name = $this->name.$hook_name.'Controller';
// Instantiate controller
$controller = new $controller_name($this, __FILE__, $this->_path);
// Return the controller
return $controller;
}
public function getContent()
{
$ajax_hook = Tools::getValue('ajax_hook');
if ($ajax_hook != '') {
$ajax_method = 'hook'.ucfirst($ajax_hook);
if (method_exists($this, $ajax_method)) {
die($this->{$ajax_method}(array()));
}
}
$controller = $this->getHookController('getContent');
return $controller->run();
}
public function hookDisplayAdminCustomers($params)
{
$controller = $this->getHookController('displayAdminCustomers');
return $controller->run();
}
public function hookDisplayBackOfficeHeader($params)
{
$controller = $this->getHookController('displayBackOfficeHeader');
return $controller->run($params);
}
public function hookModuleRoutes()
{
$controller = $this->getHookController('modulesRoutes');
return $controller->run();
}
}

View File

@ -0,0 +1,78 @@
<?php
class Files extends ObjectModel
{
public $id_file;
public $id_customer;
public $reference;
public $name;
public $added;
public static $definition = array(
'table' => 'antadis_files',
'primary' => 'id_file',
'multilang' => false,
'fields' => array(
'id_customer' => array('type' => self::TYPE_INT),
'reference' => array('type' => self::TYPE_STRING),
'name' => array('type' => self::TYPE_STRING),
'added' => array('type' => self::TYPE_DATE),
),
'associations' => array(
'customer' => array('type' => self::HAS_ONE),
),
);
public function getAdminCustomerFiles($id, $limit_start, $limit_end = false)
{
$limit = (int)$limit_start;
if ($limit_end) {
$limit = (int)$limit_start.','.(int)$limit_end;
}
$files = Db::getInstance()->executeS('
SELECT * FROM `'._DB_PREFIX_.'antadis_files`
WHERE `id_customer` = '.(int)$id.
' ORDER BY `added` DESC LIMIT '.$limit
);
return $files;
}
public function getAdminCustomerNbFiles($id)
{
$nb = Db::getInstance()->getValue('
SELECT COUNT(`id_file`)
FROM `'._DB_PREFIX_.'antadis_files`
WHERE `id_customer` = '.(int)$id
);
return $nb;
}
public function getCustomerFiles($id, $limit_start, $limit_end = false)
{
$limit = (int)$limit_start;
if ($limit_end) {
$limit = (int)$limit_start.','.(int)$limit_end;
}
$files = Db::getInstance()->executeS('
SELECT * FROM `'._DB_PREFIX_.'antadis_files`
WHERE `id_customer`=0 OR `id_customer` = '.(int)$id.
' ORDER BY `added` DESC LIMIT '.$limit
);
return $files;
}
public function getCustomerNbFiles($id)
{
$nb = Db::getInstance()->getValue('
SELECT COUNT(`id_file`)
FROM `'._DB_PREFIX_.'antadis_files`
WHERE `id_customer`=0 OR `id_customer` = '.(int)$id
);
return $nb;
}
}

View File

@ -0,0 +1,263 @@
<?php
class AdminAntadisFilesController extends ModuleAdminController
{
public function __construct()
{
$this->table = 'antadis_files';
$this->className = 'Files';
$this->identifier = 'id_file';
$this->lang = false;
$this->list_simple_header = false;
// Set fields list
$this->fields_list = array(
'customer' => array(
'title' => $this->l('Client'),
),
'reference' => array(
'title' => $this->l('Reference'),
'type' => 'text',
),
'name' => array(
'title' => $this->l('Fichier'),
'type' => 'text',
),
);
// Enable bootstrap
$this->bootstrap = true;
// Call of the parent constructor method
parent::__construct();
}
//public function init(){}
//public function setMedia(){}
public function postProcess()
{
if (Tools::getIsset('submitAddFiles')) {
$this->processUpload();
}
if (Tools::getIsset('deleteantadis_files')) {
$this->processDelete();
}
if (Tools::getIsset('download')) {
$this->processDownload();
}
parent::postProcess();
}
public function processDelete()
{
$id_file = Tools::getValue('id_file');
$id_customer = Tools::getValue('id_customer', 0);
$fileM = new Files($id_file);
$pathUpload = _PS_UPLOAD_DIR_.'customer/global';
if ($id_customer > 0) {
$pathUpload = _PS_UPLOAD_DIR_.'customer/'.$id_customer;
}
if (file_exists($pathUpload.'/'.$fileM->name)) {
unlink($pathUpload.'/'.$fileM->name);
}
$isDeleted = $fileM->delete();
if ($isDeleted) {
$link = $this->context->link->getAdminLink('AdminAntadisFiles', true);
if ($id_customer > 0) {
$link.= '&id_customer='.$id_customer;
}
Tools::redirectAdmin($link);
} else {
Tools::displayError("Error : Can't delete file");
}
}
public function processUpload()
{
if (!$reference = Tools::getValue('reference')) {
$this->errors[] = Tools::displayError("Error : no reference");
}
$id_customer = Tools::getValue('id_customer', 0);
if(count($this->errors) == 0 && isset($_FILES) && count($_FILES['file']) > 0) {
if ($_FILES['file']['error'] == UPLOAD_ERR_OK) {
$file = $_FILES['file'];
$isInsert = $isUpload = false;
// File
$pathUpload = _PS_UPLOAD_DIR_.'customer/global';
if ($id_customer > 0) {
$pathUpload = _PS_UPLOAD_DIR_.'customer/'.$id_customer;
}
if (!file_exists($pathUpload)) {
mkdir($pathUpload, 0777, true);
}
$isUpload = move_uploaded_file($file['tmp_name'], $pathUpload.'/'.$file['name']);
// Form
if ($isUpload) {
$fileM = new Files();
$fileM->id_customer = $id_customer;
$fileM->name = $file['name'];
$fileM->reference = $reference;
$fileM->added = date('Ymdhis');
$isInsert = $fileM->add();
}
if (!$isInsert || !$isUpload) {
Tools::displayError("Error : Can't add file");
}
} else {
$this->errors[] = Tools::displayError("Error : file not sent");
}
}
}
public function processDownload()
{
$id_file = Tools::getValue('id_file');
$fileM = new Files($id_file);
$filename = $fileM->name;
$pathUpload = _PS_UPLOAD_DIR_.'customer/global';
if ($fileM->id_customer > 0) {
$pathUpload = _PS_UPLOAD_DIR_.'customer/'.$fileM->id_customer;
}
$file = $pathUpload.'/'.$filename;
if (file_exists($file)) {
$content_type = 'application/pdf';
ini_set('zlib.output_compression', '0');
header('Content-Transfer-Encoding: none');
header('Content-Type: ' . $content_type.'');
header('Content-Length: ' . filesize($file));
header('Content-MD5: ' . base64_encode(md5_file($file)));
header('Content-Disposition: inline; filename="' . basename($file) . '"');
header('Cache-Control: private, max-age=0, must-revalidate');
header('Pragma: public');
readfile($file);
exit;
}
}
//public function initHeader(){}
//public function initContent(){}
//public function initFooter(){}
public function renderList()
{
$id_customer = (int)Tools::getValue('id_customer', 0);
$customer = null;
$this->toolbar_btn = array();
if ($id_customer > 0) {
$this->_where = ' AND a.`id_customer`='.(int)$id_customer;
$customer = new Customer($id_customer);
// Override page title
$this->page_header_toolbar_title.= ' : '.$customer->email;
$this->toolbar_title[count($this->toolbar_title)-1].= ' : '.$customer->email;
}
else {
// Override page title
$this->page_header_toolbar_title.= ' : Global';
$this->toolbar_title[count($this->toolbar_title)-1].= ' : Global';
}
$this->_select = ' CONCAT(CONCAT_WS(" ", c.`firstname`, c.`lastname`), " (", c.`email`, ")") AS customer';
$this->_join = ' LEFT JOIN `'._DB_PREFIX_.'customer` c ON(c.`id_customer` = a.`id_customer`)';
$this->_orderBy = 'added';
$this->_orderWay = 'DESC';
$this->addRowAction('download');
$this->addRowAction('delete');
$list = parent::renderList();
// Create upload view
$tpl = $this->context->smarty->createTemplate(_PS_MODULE_DIR_.$this->module->name.'/views/templates/admin/upload.tpl');
$tpl->assign(array(
'customer' => $customer,
));
$html = $tpl->fetch();
return $html.$list;
}
public function renderForm()
{
$id_file = Tools::getValue('id_file');
$id_customer = Tools::getValue('id_customer');
$fileM = new Files($id_file);
// Override page title
$this->page_header_toolbar_title.= ' - '.$fileM->reference;
// Override cancel
if ($id_customer) {
self::$currentIndex = self::$currentIndex.'&id_customer='.(int)$id_customer;
}
$this->fields_form = array(
'legend' => array('title' => $this->l('Edit file reference')),
'input' => array(
'id_file' => array(
'type' => 'hidden',
),
'id_customer' => array(
'type' => 'hidden',
),
'reference' => array(
'type' => 'text',
'name' => 'reference'
),
'name' => array(
'type' => 'hidden',
),
'added' => array(
'type' => 'hidden',
),
),
'submit' => array('title' => $this->l('Save')),
);
$this->fields_value = array(
'id_file' => $fileM->id,
'id_customer' => $fileM->id_customer,
'reference' => $fileM->reference,
'name' => $fileM->name,
'added' => $fileM->added,
);
return parent::renderForm();
}
public function displayDownloadLink($token = null, $id, $name = null)
{
$tpl = $this->createTemplate('helpers/list/list_action_details.tpl');
if (!array_key_exists('Download', self::$cache_lang)) {
self::$cache_lang['Download'] = $this->l('Download', 'Helper');
}
$link = $this->context->link->getAdminLink('AdminAntadisFiles', true);
$tpl->assign(array(
'href' => $link.'&download&id_file='.$id,
'action' => self::$cache_lang['Download'],
'id' => $id
));
return $tpl->fetch();
}
}

View File

@ -0,0 +1,40 @@
<?php
class AntadisFilesGetModuleFrontController extends ModuleFrontController
{
public function initContent()
{
parent::initContent();
$id = Tools::getValue('id');
$filename = Tools::getValue('q');
$fileM = new Files($id);
if ($fileM->name != $filename) {
http_response_code(403);
exit('403 Forbidden');
}
$pathUpload = _PS_UPLOAD_DIR_.'customer/global';
if ($fileM->id_customer > 0) {
$pathUpload = _PS_UPLOAD_DIR_.'customer/'.$fileM->id_customer;
}
$file = $pathUpload.'/'.$filename;
if (file_exists($file)) {
$content_type = 'application/pdf';
ini_set('zlib.output_compression', '0');
header('Content-Transfer-Encoding: none');
header('Content-Type: ' . $content_type.'');
header('Content-Length: ' . filesize($file));
header('Content-MD5: ' . base64_encode(md5_file($file)));
header('Content-Disposition: inline; filename="' . basename($file) . '"');
header('Cache-Control: private, max-age=0, must-revalidate');
header('Pragma: public');
readfile($file);
exit;
}
http_response_code(404);
exit('404 Not Found');
}
}

View File

@ -0,0 +1,34 @@
<?php
class AntadisFilesListModuleFrontController extends ModuleFrontController
{
public function initContent()
{
parent::initContent();
$id_customer = $this->context->customer->id;
$fileM = new Files();
// Get number of files
$nb_files = $fileM->getCustomerNbFiles($id_customer);
// Init
$nb_per_page = 50;
$nb_pages = ceil($nb_files / $nb_per_page);
$page = (int)Tools::getValue('page', 1);
if ($page < 1) {
$page = 1;
}
$limit_start = ($page - 1) * $nb_per_page;
$limit_end = $nb_per_page;
// Get comments
$files = $fileM->getCustomerFiles($id_customer, $limit_start, $limit_end);
// Assign comments and product object
$this->context->smarty->assign('files', $files);
$this->context->smarty->assign('page', $page);
$this->context->smarty->assign('nb_pages', $nb_pages);
$this->setTemplate('list.tpl');
}
}

View File

@ -0,0 +1,34 @@
<?php
class AntadisFilesDisplayAdminCustomersController
{
public function __construct($module, $file, $path)
{
$this->file = $file;
$this->module = $module;
$this->context = Context::getContext();
$this->_path = $path;
}
public function run()
{
$id_customer = (int)Tools::getValue('id_customer');
$nbFiles = 0;
$files = array();
if ($id_customer > 0) {
// Get files list
$filesM = new Files();
$nbFiles = $filesM->getAdminCustomerNbFiles($id_customer);
$files = $filesM->getAdminCustomerFiles($id_customer, 10);
}
$this->context->smarty->assign(array(
'id_customer' => $id_customer,
'nbFiles' => $nbFiles,
'files' => $files,
));
return $this->module->display($this->file, 'displayAdminCustomers.tpl');
}
}

View File

@ -0,0 +1,26 @@
<?php
class AntadisFilesDisplayBackOfficeHeaderController
{
public function __construct($module, $file, $path)
{
$this->file = $file;
$this->module = $module;
$this->context = Context::getContext();
$this->_path = $path;
}
public function run($params)
{
// If we are not on section modules, we do not add JS file
if (!in_array(Tools::getValue('controller'), array('AdminCustomers', 'AdminAntadisFiles'))) {
return '';
}
// Assign module base dir
$this->context->smarty->assign('pc_base_dir', __PS_BASE_URI__.'modules/'.$this->module->name.'/');
// Display template
return $this->module->display($this->file, 'displayBackOfficeHeader.tpl');
}
}

View File

@ -0,0 +1,17 @@
<?php
class AntadisFilesGetContentController
{
public function __construct($module, $file, $path)
{
$this->file = $file;
$this->module = $module;
$this->context = Context::getContext();
$this->_path = $path;
}
public function run()
{
return $this->module->display($this->file, 'getContent.tpl');
}
}

View File

@ -0,0 +1,44 @@
<?php
class AntadisFilesModulesRoutesController
{
public function run()
{
return array(
'module-antadisfiles-list' => array(
'controller' => 'list',
'rule' => 'mydownloads/list{/page/:page}',
'keywords' => array(
'page' => array(
'regexp' => '[\d]+',
'param' => 'page'
),
),
'params' => array(
'fc' => 'module',
'module' => 'antadisfiles',
'controller' => 'list'
)
),
'module-antadisfiles-get' => array(
'controller' => 'get',
'rule' => 'mydownloads/get{/:id}{/:q}',
'keywords' => array(
'q' => array(
'regexp' => '[\w-\. ]+',
'param' => 'q'
),
'id' => array(
'regexp' => '[\d]+',
'param' => 'id'
),
),
'params' => array(
'fc' => 'module',
'module' => 'antadisfiles',
'controller' => 'get'
)
),
);
}
}

View File

@ -0,0 +1,8 @@
CREATE TABLE IF NOT EXISTS `PREFIX_antadis_files` (
`id_file` int(11) NOT NULL AUTO_INCREMENT,
`id_customer` int(11) NOT NULL DEFAULT '0',
`reference` varchar(255) NOT NULL,
`name` varchar(255) NOT NULL,
`added` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id_file`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

View File

@ -0,0 +1,4 @@
<?php
header("Location: ../");
exit;

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

View File

@ -0,0 +1,21 @@
<?php
global $_MODULE;
$_MODULE = array();
$_MODULE['<{antadisfiles}prestashop>antadisfiles_8c60b56cb112d1abbff3fd78de0514f9'] = 'Fichiers client';
$_MODULE['<{antadisfiles}prestashop>antadisfiles_beb81167411200bd66e2439be28f0ab2'] = 'Avec ce module, vous pouvez associer des fichiers à vos clients';
$_MODULE['<{antadisfiles}prestashop>adminantadisfilescontroller_577d7068826de925ea2aec01dbadf5e4'] = 'Client';
$_MODULE['<{antadisfiles}prestashop>adminantadisfilescontroller_63d5049791d9d79d86e9a108b0a999ca'] = 'Référence';
$_MODULE['<{antadisfiles}prestashop>adminantadisfilescontroller_a7516634dda136a038e76e37bf15e7ec'] = 'Fichier';
$_MODULE['<{antadisfiles}prestashop>adminantadisfilescontroller_75c0912ebad8851ac872b6055a1dd7ce'] = 'Editer la référence fichier';
$_MODULE['<{antadisfiles}prestashop>upload_94495b6b79180d544e53ae9a0ded9aff'] = 'Choisir un fichier';
$_MODULE['<{antadisfiles}prestashop>upload_ec183306633f912ff99285620fb3793e'] = 'Ajouter le fichier';
$_MODULE['<{antadisfiles}prestashop>list_f83dea9405cc68eacb68a3224e51f968'] = 'Vos téléchargements';
$_MODULE['<{antadisfiles}prestashop>list_c521b7a548c42eb16fd317e357a1988d'] = 'Liste des fichiers à télécharger';
$_MODULE['<{antadisfiles}prestashop>list_63d5049791d9d79d86e9a108b0a999ca'] = 'Référence';
$_MODULE['<{antadisfiles}prestashop>list_0b27918290ff5323bea1e3b78a9cf04e'] = 'Fichier';
$_MODULE['<{antadisfiles}prestashop>list_70e44c96a76c910aa18b40e143661d71'] = 'Aucun fichier de disponible';
$_MODULE['<{antadisfiles}prestashop>displayadmincustomers_d3fcac47f342842c8b0a6361c1d776bc'] = 'Fichiers liés au client';
$_MODULE['<{antadisfiles}prestashop>displayadmincustomers_63d5049791d9d79d86e9a108b0a999ca'] = 'Référence';
$_MODULE['<{antadisfiles}prestashop>displayadmincustomers_a7516634dda136a038e76e37bf15e7ec'] = 'Fichier';
$_MODULE['<{antadisfiles}prestashop>displayadmincustomers_ac0c0db9735061f3bbd512983edb1dea'] = 'Aucun fichier lié au client';

View File

@ -0,0 +1,58 @@
window.onload = function() {
$(document).ready(function(){
$('#file-selectbutton').click(function(e) {
$('#file').trigger('click');
});
$('#file-name').click(function(e) {
$('#file').trigger('click');
});
$('#file-name').on('dragenter', function(e) {
e.stopPropagation();
e.preventDefault();
});
$('#file-name').on('dragover', function(e) {
e.stopPropagation();
e.preventDefault();
});
$('#file-name').on('drop', function(e) {
e.preventDefault();
var files = e.originalEvent.dataTransfer.files;
$('#file')[0].files = files;
$(this).val(files[0].name);
});
$('#file').change(function(e) {
if ($(this)[0].files !== undefined)
{
var files = $(this)[0].files;
var name = '';
$.each(files, function(index, value) {
name += value.name+', ';
});
$('#file-name').val(name.slice(0, -2));
}
else // Internet Explorer 9 Compatibility
{
var name = $(this).val().split(/[\\/]/);
$('#file-name').val(name[name.length-1]);
}
});
if (typeof file_max_files !== 'undefined')
{
$('#file').closest('form').on('submit', function(e) {
if ($('#file')[0].files.length > file_max_files) {
e.preventDefault();
alert('You can upload a maximum of files');
}
});
}
});
}

View File

@ -0,0 +1,25 @@
<div class="panel">
{if isset($customer)}
<div class="panel-heading">{l s="Ajout de fichier pour le client" mod="antadisfiles"} {$customer->email}</div>
{else}
<div class="panel-heading">{l s="Ajout de fichier disponible pour tous les clients" mod="antadisfiles"}</div>
{/if}
<div class="panel-body">
<form method="POST" action="#" enctype="multipart/form-data" class="form-inline">
<input id="file" type="file" name="file" class="hide" accept=".pdf">
<div class="dummyfile input-group">
<span class="input-group-addon"><i class="icon-file"></i></span>
<input id="file-name" type="text" name="filename" readonly/>
<span class="input-group-btn">
<button id="file-selectbutton" type="button" class="btn btn-default">
<i class="icon-folder-open"></i> {l s='Choisir un fichier' mod='antadisfiles'}</button>
</span>
</div>
<div class="form-group">
<label class="sr-only" for="reference">Reference</label>
<input type="text" class="form-control" id="reference" name="reference" placeholder="Reference" value=""/>
</div>
<button type="submit" name="submitAddFiles" class="btn btn-default">{l s='Ajouter le fichier' mod='antadisfiles'}</button>
</form>
</div>
</div>

View File

@ -0,0 +1,67 @@
{capture name=title}{l s='Your downloads' mod='antadisfiles'}{/capture}
{capture name=subtitle}{l s='Here you will find your files to download' mod='antadisfiles'}{/capture}
<main>
<section>
{include file="$tpl_dir./page-heading.tpl" title=$smarty.capture.title subtitle=$smarty.capture.subtitle type='account'}
{if $slowValidation}
<p class="alert alert-warning">{l s='If you have just placed an order, it may take a few minutes for it to be validated. Please refresh this page if your order is missing.'}</p>
{/if}
<div class="ctn account">
<div class="row">
<div class="md12">
<div class="box">
<div class="inner">
<h2 class="title">{l s='Your downloads' mod='antadisfiles'}</h2>
<div class="box-content">
{if $files && count($files)}
<div class="table-div">
<div class="table-head">
<div class="md2 hidden-sm hidden-xs hidden-xxs">{l s='Reference' mod='antadisfiles'}</div>
<div class="md2 hidden-sm hidden-xs hidden-xxs">{l s='File' mod='antadisfiles'}</div>
</div>
{foreach $files as $f}
<div class="table-row row{$smarty.foreach.myLoop.index % 2}">
<div class="md2">
{$f.reference}
</div>
<div class="md2">
{assign var=params value=[
'id' => $f.id_file,
'q' => $f.name
]}
<a href="{$link->getModuleLink('antadisfiles', 'get', $params)|escape:'html':'UTF-8'}" target="_blank">{$f.name}</a>
</div>
</div>
{/foreach}
</div>
{else}
<p class="alert alert-warning">{l s='No file is available.' mod='antadisfiles'}</p>
{/if}
{if $nb_pages > 1}
<ul class="pagination">
{for $count=1 to $nb_pages}
{assign var=params value=[
'page' => $count
]}
{if $page ne $count}
<li><a href="{$link->getModuleLink('antadisfiles', 'list', $params)|escape:'html':'UTF-8'}"><span>{$count}</span> </a></li>
{else}
<li class="active current"><span><span>{$count}</span></span> </li>
{/if}
{/for}
</ul>
{/if}
</div>
</div>
</div>
</div>
</div>
</div>
</section>
</main>

View File

@ -0,0 +1,37 @@
<div class="col-lg-12">
<div class="panel">
<div class="panel-heading">
<i class="icon-file"></i> {l s='Fichiers liés au client' mod='antadisfiles'}<span class="badge">{$nbFiles}</span>
<div class="panel-heading-action">
<a class="btn btn-default" href="{$link->getAdminLink('AdminAntadisFiles', true)|escape:'html':'UTF-8'}&id_customer={$id_customer}">Voir tous les fichiers liés au client</a>
</div>
</div>
{if $nbFiles > 0}
<table class="table">
<thead>
<tr>
<th><span class="title_box">{l s='Reference' mod='antadisfiles'}</span></th>
<th><span class="title_box">{l s='Fichier' mod='antadisfiles'}</span></th>
</tr>
</thead>
<tbody>
{foreach $files as $k => $v}
<tr>
<td>{$v['reference']}</td>
<td>
{assign var=params value=[
'id' => $v.id_file,
'q' => $v.name
]}
<a href="{$link->getModuleLink('antadisfiles', 'get', $params)|escape:'html':'UTF-8'}" target="_blank">{$v['name']}</a>
</td>
</tr>
{/foreach}
</tbody>
</table>
{else}
<p>{l s='Aucun fichier lié au client' mod='antadisfiles'}</p>
{/if}
</div>
</div>

View File

@ -0,0 +1 @@
<script type="text/javascript" src="{$pc_base_dir}views/assets/js/addfile.js"></script>

View File

@ -0,0 +1,3 @@
{if isset($confirmation)}
<div class="alert alert-success">{l s='Settings updated' mod='antadisfiles'}</div>
{/if}

View File

@ -176,6 +176,7 @@ class Erporder extends Module
);
// }
foreach ($order->getProducts() as $key => $p) {
$product = new Product($p['product_id']);
$attr = $product->getAttributeCombinationsById($p['product_attribute_id'], (int)Context::getContext()->language->id)[0];
@ -183,7 +184,7 @@ class Erporder extends Module
$res = $newOrder->search('product.product', array(array('id', '=', $attr['id_erp'])));
$tax_id = $newOrder->read('product.product', $res, 'taxes_id');
$newOrder->assignLineProduct($key, $attr['id_erp']);
$newOrder->assignLineProduct($key, (int)$attr['id_erp']);
$newOrder->assignLineName($key, $p['product_name']);
$newOrder->assignLineOrder($key, $order_id);
$newOrder->assignLineUnitPrice($key, $p['unit_price_tax_excl'] / $p['nb_per_box']);

View File

@ -5,6 +5,7 @@ class Customer extends CustomerCore
public $id_erp;
public $representant;
public $representant_tel;
public static $definition = array(
'table' => 'customer',
@ -43,6 +44,7 @@ class Customer extends CustomerCore
// ADD ERP INPUT
'id_erp' => array('type' => self::TYPE_INT, 'validate' => 'isInt', 'copy_post' => false),
'representant' => array('type' => self::TYPE_STRING, 'validate' => 'isGenericName', 'copy_post' => false),
'representant_tel' => array(),
),
);

View File

@ -3,6 +3,7 @@ define('ANTADIS_CHECK_GROUPS', true);
class FrontController extends FrontControllerCore
{
public function display()
{
global $cookie;
@ -36,21 +37,25 @@ class FrontController extends FrontControllerCore
}
/*
* Force assign template
*/
if (!$cookie->isLogged()) {
// * Force assign template
// */
if (!$cookie->isLogged()
&& (!Context::getContext()->controller instanceOf addCustomerFormModuleFrontController)
) {
$this->template = _PS_THEME_DIR_.'authentication.tpl';
if ($this->php_self == 'password') {
$this->php_self = 'index';
$this->template = _PS_THEME_DIR_.'password.tpl';
}
if (!in_array($this->php_self, ['index', 'password']) || Tools::getValue('submitAccount') || Tools::getValue('SubmitCreate')) {
if (!in_array($this->php_self, ['index', 'password'])
|| Tools::getValue('submitAccount')
|| Tools::getValue('SubmitCreate')) {
Tools::redirect('index');
exit;
}
}
Tools::safePostVars();
// assign css_files and js_files at the very last time
@ -67,7 +72,7 @@ class FrontController extends FrontControllerCore
/* Override destroy all css */
$this->css_files = array();
/* Override Add real css */
// Override Add real css
$this->css_files[_THEME_CSS_DIR_.'strapivarious.css?v='.filemtime($this->getThemeDir().'css/strapivarious.css')] = 'all';
$this->css_files[_THEME_CSS_DIR_.'k2000.css?v='.filemtime($this->getThemeDir().'css/k2000.css')] = 'all';
$this->css_files[_THEME_CSS_DIR_.'global.css?v='.filemtime($this->getThemeDir().'css/global.css')] = 'all';
@ -141,14 +146,15 @@ class FrontController extends FrontControllerCore
return true;
}
public function getLayout()
{
global $cookie;
$entity = $this->php_self;
if (!$cookie->isLogged()) {
if (!$cookie->isLogged()
&& (!Context::getContext()->controller instanceOf addCustomerFormModuleFrontController)
) {
if (!in_array($this->php_self, ['index', 'password']) || Tools::getValue('submitAccount') || Tools::getValue('SubmitCreate')) {
Tools::redirect('index');
exit;

View File

@ -0,0 +1,71 @@
<?php
class PasswordController extends PasswordControllerCore
{
public function postProcess()
{
if (Tools::isSubmit('email')) {
if (!($email = trim(Tools::getValue('email'))) || !Validate::isEmail($email)) {
$this->errors[] = Tools::displayError('Invalid email address.');
} else {
$customer = new Customer();
$customer->getByemail($email);
if (!Validate::isLoadedObject($customer)) {
$this->errors[] = Tools::displayError('There is no account registered for this email address.');
} elseif (!$customer->active) {
$this->errors[] = Tools::displayError('You cannot regenerate the password for this account.');
} elseif ((strtotime($customer->last_passwd_gen.'+'.($min_time = (int)Configuration::get('PS_PASSWD_TIME_FRONT')).' minutes') - time()) > 0) {
$this->errors[] = sprintf(Tools::displayError('You can regenerate your password only every %d minute(s)'), (int)$min_time);
} else {
$mail_params = array(
'{email}' => $customer->email,
'{lastname}' => $customer->lastname,
'{firstname}' => $customer->firstname,
'{url}' => $this->context->link->getPageLink('password', true, null, 'token='.$customer->secure_key.'&id_customer='.(int)$customer->id)
);
if (Mail::Send($this->context->language->id, 'password_query', Mail::l('Password query confirmation'), $mail_params, $customer->email, $customer->firstname.' '.$customer->lastname)) {
$this->context->smarty->assign(array('confirmation' => 2, 'customer_email' => $customer->email));
} else {
$this->errors[] = Tools::displayError('An error occurred while sending the email.');
}
}
}
} elseif (($token = Tools::getValue('token')) && ($id_customer = (int)Tools::getValue('id_customer'))) {
$email = Db::getInstance()->getValue('SELECT `email` FROM '._DB_PREFIX_.'customer c WHERE c.`secure_key` = \''.pSQL($token).'\' AND c.id_customer = '.(int)$id_customer);
if ($email) {
$customer = new Customer();
$customer->getByemail($email);
if (!Validate::isLoadedObject($customer)) {
$this->errors[] = Tools::displayError('Customer account not found');
} elseif (!$customer->active) {
$this->errors[] = Tools::displayError('You cannot regenerate the password for this account.');
} elseif ((strtotime($customer->last_passwd_gen.'+'.(int)Configuration::get('PS_PASSWD_TIME_FRONT').' minutes') - time()) > 0) {
Tools::redirect('index.php?controller=authentication&error_regen_pwd');
} else {
$customer->passwd = Tools::encrypt($password = Tools::passwdGen(MIN_PASSWD_LENGTH, 'RANDOM'));
$customer->last_passwd_gen = date('Y-m-d H:i:s', time());
if ($customer->update()) {
Hook::exec('actionPasswordRenew', array('customer' => $customer, 'password' => $password));
$mail_params = array(
'{email}' => $customer->email,
'{lastname}' => $customer->lastname,
'{firstname}' => $customer->firstname,
'{passwd}' => $password
);
if (Mail::Send($this->context->language->id, 'password', Mail::l('Your new password'), $mail_params, $customer->email, $customer->firstname.' '.$customer->lastname) && Mail::Send($this->context->language->id, 'password', Mail::l('Your new password'), $mail_params, 'christophe@roykin.fr', $customer->firstname.' '.$customer->lastname)) {
$this->context->smarty->assign(array('confirmation' => 1, 'customer_email' => $customer->email));
} else {
$this->errors[] = Tools::displayError('An error occurred while sending the email.');
}
} else {
$this->errors[] = Tools::displayError('An error occurred with your account, which prevents us from sending you a new password. Please report this issue using the contact form.');
}
}
} else {
$this->errors[] = Tools::displayError('We cannot regenerate your password with the data you\'ve submitted.');
}
} elseif (Tools::getValue('token') || Tools::getValue('id_customer')) {
$this->errors[] = Tools::displayError('We cannot regenerate your password with the data you\'ve submitted.');
}
}
}

View File

@ -15,11 +15,12 @@
<section>
{include file="$tpl_dir./page-heading.tpl" title=$smarty.capture.title type=''}
<p style="text-align: center;color: #fff;font-size: 16px;">{l s='Tel : 01 80 91 74 21'}</p>
<div id="auth" class="ctn">
<div class="row">
<!-- Connexion -->
<div class="offset-lg3 lg6 offset-md2 md8 sm12">
<div class="lg6 md6 sm12 xs12">
<form action="{$link->getPageLink('authentication', true)|escape:'html':'UTF-8'}" method="post" id="login_form" class="box">
<div class="inner">
<h2 class="title">{l s='Already registered?'}</h2>
@ -44,6 +45,7 @@
</div>
</form>
</div>
{hook h="DisplayHomeAddCusto"}
</div>
</div>

View File

@ -1,5 +1,5 @@
{if !isset($content_only) || !$content_only}
{if $page_name != 'category' && $page_name != 'index' && $page_name != 'search' && $page_name != 'password'}
{if $page_name != 'category' && $page_name != 'index' && $page_name != 'search' && $page_name != 'password' && $page_name != 'module-addcustomer-form'}
<footer id="footer">
<div class="ctn">
{hook h='displayReassurance'}

View File

@ -50,7 +50,7 @@
</div>
{/if}
{$page_array = ['index', 'password']}
{$page_array = ['index', 'password', 'module-addcustomer-form']}
<header id="header">
<div class="ctn">
@ -64,11 +64,13 @@
<div id="infos-conseiller" class="md6">
<span class="header-title">{l s='My advisor'}</span>
<ul>
<li>{$customer->representant}</li>
<li>
{$customer->representant}
</li>
<li>
{if empty($customer->representant_tel)}
{l s='01 48 15 01 45'}
{else}
{chunk_split($customer->representant_tel, 2, ' ')}
{/if}
</li>
</ul>
</div>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.5 KiB

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -0,0 +1,12 @@
<?php
global $_MODULE;
$_MODULE = array();
$_MODULE['<{antadisfiles}roykin>antadisfiles_8c60b56cb112d1abbff3fd78de0514f9'] = 'Fichiers client';
$_MODULE['<{antadisfiles}roykin>antadisfiles_beb81167411200bd66e2439be28f0ab2'] = 'Avec ce module, vous pouvez assignez des fichiers à vos clients';
$_MODULE['<{antadisfiles}roykin>adminantadisfilescontroller_63d5049791d9d79d86e9a108b0a999ca'] = 'Référence';
$_MODULE['<{antadisfiles}roykin>adminantadisfilescontroller_75c0912ebad8851ac872b6055a1dd7ce'] = 'Editer la référence du fichier';
$_MODULE['<{antadisfiles}roykin>list_f83dea9405cc68eacb68a3224e51f968'] = 'Vos téléchargements';
$_MODULE['<{antadisfiles}roykin>list_63d5049791d9d79d86e9a108b0a999ca'] = 'Référence';
$_MODULE['<{antadisfiles}roykin>list_0b27918290ff5323bea1e3b78a9cf04e'] = 'Fichier';
$_MODULE['<{antadisfiles}roykin>list_70e44c96a76c910aa18b40e143661d71'] = 'Aucun fichier de disponible';

View File

@ -0,0 +1,221 @@
<?php
global $_MODULE;
$_MODULE = array();
$_MODULE['<{be2bill}roykin>ajax_2e8fc401858c73d3119a868f4632cbdc'] = 'Réinitialisation terminée.';
$_MODULE['<{be2bill}roykin>ajax_bd89b5e7445bb941e0e592e33fe59ed1'] = 'Mise à jour terminée.';
$_MODULE['<{be2bill}roykin>ajax_a232a65bc00628d635cccd1c8c514415'] = 'Mise à jour non nécessaire, les tables sont déjà à jour.';
$_MODULE['<{be2bill}roykin>be2bill_99de36ac5afb7171a50f8b92f0ef3971'] = 'Be2bill paiement dynamique par internet';
$_MODULE['<{be2bill}roykin>be2bill_6e338f87b1089ca341792408f688356c'] = 'La solution de paiement des e-commerçants.';
$_MODULE['<{be2bill}roykin>be2bill_876f23178c29dc2552c0b48bf23cd9bd'] = 'Etes-vous sûr de vouloir désinstaller ?';
$_MODULE['<{be2bill}roykin>be2bill_aa840e03642d58d310e153751003b39b'] = 'Sélectionner une transaction à rembourser.';
$_MODULE['<{be2bill}roykin>be2bill_95db96acf465d09bd184573b7a5a3ecb'] = 'Sélectionner un avoir à rembourser.';
$_MODULE['<{be2bill}roykin>be2bill_26891d89aa15219ccbe386dd11ca81a5'] = 'ID avoir inconnu :';
$_MODULE['<{be2bill}roykin>be2bill_df3f27895a80076285f3d5268ccdc017'] = 'ID transaction inconnu :';
$_MODULE['<{be2bill}roykin>be2bill_41b9a3c7038457b3f9dea377f7929061'] = 'L\'url du xml est requise.';
$_MODULE['<{be2bill}roykin>be2bill_6083b108aac0e3a9d2502ec89343d3df'] = 'L\'URL du serveur principal est requise.';
$_MODULE['<{be2bill}roykin>be2bill_9ac86f108e2c382679240aa7bc89b93c'] = 'L\'URL du serveur secondaire est requise.';
$_MODULE['<{be2bill}roykin>be2bill_9709e0463acc198f5181133d4cbba661'] = 'L\'URL du serveur principal sandbox est requise.';
$_MODULE['<{be2bill}roykin>be2bill_0574e6fbc936005debc2a68e391294aa'] = 'L\'URL du serveur secondaire sandbox est requise.';
$_MODULE['<{be2bill}roykin>be2bill_868968a4dd1f7ab0afce174c5c81126a'] = 'Import terminé avec succès, merci de vérifier votre nouveau compte.';
$_MODULE['<{be2bill}roykin>be2bill_796e68f24f93ffe5381bea9bcd6a828e'] = 'Paramétrage serveur mis à jour';
$_MODULE['<{be2bill}roykin>be2bill_2e8fc401858c73d3119a868f4632cbdc'] = 'Réinitialisation terminée.';
$_MODULE['<{be2bill}roykin>be2bill_a232a65bc00628d635cccd1c8c514415'] = 'Mise à jour non nécessaire, la liste des comptes est à niveau.';
$_MODULE['<{be2bill}roykin>be2bill_bd89b5e7445bb941e0e592e33fe59ed1'] = 'Mise à jour terminée.';
$_MODULE['<{be2bill}roykin>be2bill_326df12c92fafb18ccb438dccb588146'] = 'Paramètres d\'import';
$_MODULE['<{be2bill}roykin>be2bill_cccdcfd610b05cd50f72735ba0c3be8d'] = 'Identifier à importer';
$_MODULE['<{be2bill}roykin>be2bill_a4311d6fbe2a73cbe93c943e8685930d'] = 'Cet identifier sera importé ainsi que toutes vos informations de paiement liées.';
$_MODULE['<{be2bill}roykin>be2bill_fab97a9a493b43bd1919cd1f905233c5'] = 'Lancer l\'import';
$_MODULE['<{be2bill}roykin>be2bill_5d1ad37c3dfba35d73aca9a1e26dbd6c'] = 'Paramètres des serveurs';
$_MODULE['<{be2bill}roykin>be2bill_4a79cbb43e165d8a391078641fd5eee3'] = 'Url de mise à jour du XML';
$_MODULE['<{be2bill}roykin>be2bill_e945966adb6864a6b9763436cb217069'] = 'Valeur par defaut : https://template.be2bill.com/cms/xml/v1/configuration.xml';
$_MODULE['<{be2bill}roykin>be2bill_a9d2187c694e12b7690a0a6543b4e215'] = 'Mettre à jour la liste des comptes';
$_MODULE['<{be2bill}roykin>be2bill_2640992f5de120b684ff68640ebc31c2'] = 'Version actuelle du XML';
$_MODULE['<{be2bill}roykin>be2bill_e52df4c614633dec7f5aaa9c9259be42'] = 'Utiliser le mode debug';
$_MODULE['<{be2bill}roykin>be2bill_ccd7961a15c08690da627338ded0decf'] = 'Active ou désactive le mode debug';
$_MODULE['<{be2bill}roykin>be2bill_93cba07454f06a4a960172bbd6e2a435'] = 'Oui';
$_MODULE['<{be2bill}roykin>be2bill_bafd7322c6e97d25b6299b5d6fe8920b'] = 'Non';
$_MODULE['<{be2bill}roykin>be2bill_927da63560acfbb0c3c9150299d19fa8'] = 'URL du serveur principal de production';
$_MODULE['<{be2bill}roykin>be2bill_c45c46ba755d77c603fef93055302517'] = 'Valeur par défaut : https://secure-magenta1.be2bill.com';
$_MODULE['<{be2bill}roykin>be2bill_8b32a6e4d3f53fbbd3de4082782c9b13'] = 'URL du serveur secondaire de production';
$_MODULE['<{be2bill}roykin>be2bill_e08ce65da1468dbc855dd29738579323'] = 'Valeur par défaut : https://secure-magenta2.be2bill.com';
$_MODULE['<{be2bill}roykin>be2bill_d43a46f98b3eee11b6e86c29dff22330'] = 'Utiliser le mode sandbox (test)';
$_MODULE['<{be2bill}roykin>be2bill_abc24e45d4a25498f536ef773c3b3a29'] = 'Active ou désactive le mode sandbox';
$_MODULE['<{be2bill}roykin>be2bill_ef46f792c5d70e47a1a6a673b2b83629'] = 'URL du serveur principal sandbox';
$_MODULE['<{be2bill}roykin>be2bill_54fdf00564ebd7172cc462245bee0206'] = 'Valeur par défaut : https://secure-test.be2bill.com';
$_MODULE['<{be2bill}roykin>be2bill_bcf5498c3fb32e339d4e31473b2a2e91'] = 'URL du serveur secondaire sandbox';
$_MODULE['<{be2bill}roykin>be2bill_4c2228490d376092b042573c6637a0dc'] = 'Rediriger directement vers le serveur Be2bill';
$_MODULE['<{be2bill}roykin>be2bill_6aefa346e2ae940c6ff21eee60412608'] = 'Active ou non la redirection automatique vers la page de paiement';
$_MODULE['<{be2bill}roykin>be2bill_c9cc8cce247e49bae79f15173ce97354'] = 'Enregistrer';
$_MODULE['<{be2bill}roykin>be2bill_630f6dc397fe74e52d5189e2c80f282b'] = 'Retour à la liste';
$_MODULE['<{be2bill}roykin>be2bill_0b5b31f49cd92c98e9c925e0a84025e4'] = 'Vous devez mettre à jour votre liste de comptes avant de lancer l\'import';
$_MODULE['<{be2bill}roykin>be2billnotification_e5d5d9f40763cfe6549bef705e3529a7'] = 'Le message de paiement n\'est pas valide, vérifier votre module.';
$_MODULE['<{be2bill}roykin>adminmanagebe2billconf_d3b206d196cd6be3a2764c1fb90b200f'] = 'Supprimer la selection ?';
$_MODULE['<{be2bill}roykin>adminmanagebe2billconf_e25f0ecd41211b01c83e5fec41df4fe7'] = 'Supprimer les éléments sélectionnés ?';
$_MODULE['<{be2bill}roykin>adminmanagebe2billconf_490aa6e856ccf208a054389e47ce0d06'] = 'Identifiant';
$_MODULE['<{be2bill}roykin>adminmanagebe2billconf_51bdfc4588e299668d9478a2293e7eff'] = 'Type de compte';
$_MODULE['<{be2bill}roykin>adminmanagebe2billconf_b021df6aac4654c454f46c77646e745f'] = 'Libellé';
$_MODULE['<{be2bill}roykin>adminmanagebe2billconf_386c339d37e737a436499d423a77df0c'] = 'Devise';
$_MODULE['<{be2bill}roykin>adminmanagebe2billconf_ec53a8c4f07baed5d8825072c89799be'] = 'Statut';
$_MODULE['<{be2bill}roykin>adminmanagebe2billconf_b5c2325f45a8d60418cf405dbc57114e'] = '2 Fois';
$_MODULE['<{be2bill}roykin>adminmanagebe2billconf_1c0565a0acaa1ae14127595b3fadcb44'] = '3 Fois';
$_MODULE['<{be2bill}roykin>adminmanagebe2billconf_5b69cd05bc7c1e5240c81da1109d0148'] = '4 Fois';
$_MODULE['<{be2bill}roykin>adminmanagebe2billconf_0d730df753ae6a369323fe6dc1641eb2'] = '1 Jour';
$_MODULE['<{be2bill}roykin>adminmanagebe2billconf_2b5c88bc8c875f79745514e9af2f348f'] = '2 Jours';
$_MODULE['<{be2bill}roykin>adminmanagebe2billconf_14cad5137a2254d53fde198d52e70109'] = '3 Jours';
$_MODULE['<{be2bill}roykin>adminmanagebe2billconf_6c32f983ee38ad5089298aa659cd011c'] = '4 Jours';
$_MODULE['<{be2bill}roykin>adminmanagebe2billconf_6383598717ae8ac458dc988dff77c800'] = '5 Jours';
$_MODULE['<{be2bill}roykin>adminmanagebe2billconf_366adabd6f1babc8138db3063adaf869'] = '6 Jours';
$_MODULE['<{be2bill}roykin>adminmanagebe2billconf_374616a0b786e9bffadc7f28e68d6c59'] = '7 Jours';
$_MODULE['<{be2bill}roykin>adminmanagebe2billconf_79e241fd6b320cbb41d67b028ec6f1c0'] = '8 Jours';
$_MODULE['<{be2bill}roykin>adminmanagebe2billconf_281f41b6564c9e63e16d67b1c07a46e5'] = '9 Jours';
$_MODULE['<{be2bill}roykin>adminmanagebe2billconf_38efedfd69ad005a6e0b0393682636db'] = '10 Jours';
$_MODULE['<{be2bill}roykin>adminmanagebe2billconf_8272f11f52f69f2a12558c05df3f0580'] = 'Configuration du type de compte ';
$_MODULE['<{be2bill}roykin>adminmanagebe2billconf_0689f8ebacb89fa3dc1e82f9dd65d1a7'] = 'Devise :';
$_MODULE['<{be2bill}roykin>adminmanagebe2billconf_30c6d662461554a51face49d6285d3e5'] = 'Choisissez une devise.';
$_MODULE['<{be2bill}roykin>adminmanagebe2billconf_a081d6ac849b2d744ff5a48d6f4627ec'] = 'Soyez vigilant quand vous modifiez ce champ, cela impactera toute votre configuration.';
$_MODULE['<{be2bill}roykin>adminmanagebe2billconf_1914257fae5ee312146e96e55f86fe8d'] = 'Type de compte :';
$_MODULE['<{be2bill}roykin>adminmanagebe2billconf_8851bb298e65c77406fd4f7a50d86f5d'] = 'Choisissez un type de compte.';
$_MODULE['<{be2bill}roykin>adminmanagebe2billconf_9928283dc64e6bd3353aa64c16ab32c0'] = 'Identifier :';
$_MODULE['<{be2bill}roykin>adminmanagebe2billconf_27bdb45766bcb2dade2bff8315e77f35'] = 'Mot de passe :';
$_MODULE['<{be2bill}roykin>adminmanagebe2billconf_4d3d769b812b6faa6b76e1a8abaece2d'] = 'Activé :';
$_MODULE['<{be2bill}roykin>adminmanagebe2billconf_00d23a76e43b46dae9ec7aa9dcbebb32'] = 'Oui';
$_MODULE['<{be2bill}roykin>adminmanagebe2billconf_b9f5c797ebbf55adccdd8539a65a0241'] = 'Non';
$_MODULE['<{be2bill}roykin>adminmanagebe2billconf_d7cc725bd9b304498e12fe0ec263f37d'] = 'Activé le paiement en front office.';
$_MODULE['<{be2bill}roykin>adminmanagebe2billconf_a5b2d4ab297946f559384c1a0611d646'] = 'Libellé sur la boutique :';
$_MODULE['<{be2bill}roykin>adminmanagebe2billconf_2d768abe35f11e46217159140a8daeda'] = 'Libellé pour le tunnel d\'achat.';
$_MODULE['<{be2bill}roykin>adminmanagebe2billconf_107caacc31072efdacf85287f61e7f45'] = 'Logo :';
$_MODULE['<{be2bill}roykin>adminmanagebe2billconf_bd1ecb394e0445ae5f4dd2cda499858d'] = 'Télécharger un logo depuis votre ordinateur. Si vous laissez à blanc le logo par défaut sera affiché.';
$_MODULE['<{be2bill}roykin>adminmanagebe2billconf_f81ab71da898f9432c28f3a73d95b2e0'] = 'Mode d\'intégration :';
$_MODULE['<{be2bill}roykin>adminmanagebe2billconf_f6e311a9ab87979b34e5c66826558d7d'] = 'Choisissez un mode d\'intégration.';
$_MODULE['<{be2bill}roykin>adminmanagebe2billconf_1386a276ff09bcfba39e68ddc40bb18b'] = 'Attention : Cette option requière un certificat SSL valide.';
$_MODULE['<{be2bill}roykin>adminmanagebe2billconf_d6e573b38bc6b9e67719005118f73d51'] = 'Configuration du paiement standard';
$_MODULE['<{be2bill}roykin>adminmanagebe2billconf_44f34e39ba2e8b49fc26507d6fc2458c'] = 'Active le paiement standard';
$_MODULE['<{be2bill}roykin>adminmanagebe2billconf_b16854ceee6fb9499c2ad3aac40d539e'] = 'Montant minimum de commande';
$_MODULE['<{be2bill}roykin>adminmanagebe2billconf_bf8cfcccdd4dada29ca4a35f08c1c494'] = 'Montant minimum de commande pour afficher le paiement. Laissez à 0 pour ne pas avoir de montant minimum';
$_MODULE['<{be2bill}roykin>adminmanagebe2billconf_abcac9aebb2505b3cf76c42e1bfbe8f7'] = 'Montant maximum de commande';
$_MODULE['<{be2bill}roykin>adminmanagebe2billconf_50a5178510b6ab846ede2908505c8c1e'] = 'Montant maximum de commande, laissez à 0 pour ne pas fixer de montant maximum.';
$_MODULE['<{be2bill}roykin>adminmanagebe2billconf_7ab7d0e03d06f49475bb2b7b69b2f5ed'] = 'Configuration du paiement différé';
$_MODULE['<{be2bill}roykin>adminmanagebe2billconf_a345bd7d4661514f16ed70f8eec9b2e8'] = 'Activé le paiement différé.';
$_MODULE['<{be2bill}roykin>adminmanagebe2billconf_e11441da60ee683892036b1423053e40'] = 'Jour(s) à attendre avant la capture.';
$_MODULE['<{be2bill}roykin>adminmanagebe2billconf_eca931beae6bc5a9bb914871505185da'] = 'Configuration du paiement à la livraison';
$_MODULE['<{be2bill}roykin>adminmanagebe2billconf_7877246c57bbda898c0d210fcb397a65'] = 'Activé le paiement à la livraison.';
$_MODULE['<{be2bill}roykin>adminmanagebe2billconf_6c6ea44e5ec731c894629e74d7ff2570'] = 'Statut de commande déclenchant le paiement';
$_MODULE['<{be2bill}roykin>adminmanagebe2billconf_34d1944d90212f8309c24f722d99e41b'] = 'Quand une commande passe par l\'un de ces statuts, la capture sexécute automatiquement.';
$_MODULE['<{be2bill}roykin>adminmanagebe2billconf_cf4297ae7679cdfae60baf71461c518b'] = 'Configuration du paiement en plusieurs fois';
$_MODULE['<{be2bill}roykin>adminmanagebe2billconf_de341655b80f1b2c2fdfbcd8b3aba9d1'] = 'Activé le paiement en plusieurs fois.';
$_MODULE['<{be2bill}roykin>adminmanagebe2billconf_3f62eac6ddc993b6eefa005fe646b2dd'] = 'Nombre d\'occurences.';
$_MODULE['<{be2bill}roykin>adminmanagebe2billconf_2d138c8854915dbad9a643c6c22e3273'] = 'Configuration du 3D secure';
$_MODULE['<{be2bill}roykin>adminmanagebe2billconf_37daec598473a71184796e8360afb28d'] = 'Activé le 3D secure.';
$_MODULE['<{be2bill}roykin>adminmanagebe2billconf_23a5c1b641d2787d54bfeb6cdba082b7'] = 'Configuration du paiement en 1 click';
$_MODULE['<{be2bill}roykin>adminmanagebe2billconf_30b4c3d9a7d043724533df1529c634be'] = 'Activé le paiement en 1 click.';
$_MODULE['<{be2bill}roykin>adminmanagebe2billconf_f766bd992d0074624ce4b5209364e918'] = 'Active ou non le paiement en 1 click sans saisie du cryptogramme.';
$_MODULE['<{be2bill}roykin>adminmanagebe2billconf_cc8de66e113696fd7c65c108f878a83c'] = 'Configuration du paiement en 1 click sans saisie du cryptogramme.';
$_MODULE['<{be2bill}roykin>adminmanagebe2billconf_5b4cccaa77895ec81b19013250b48b49'] = 'Configuration des alias';
$_MODULE['<{be2bill}roykin>adminmanagebe2billconf_22674475121aa1c53d12d4168a76451c'] = 'Laisser le client choisir la sauvegarde de ses données bancaires.';
$_MODULE['<{be2bill}roykin>adminmanagebe2billconf_1a09493663f0db50b1511a9694a093ac'] = 'Configuration de la vérification d\'âge';
$_MODULE['<{be2bill}roykin>adminmanagebe2billconf_8557254505119f2bdfd5694147485e9b'] = 'Active ou non la vérification d\'âge.';
$_MODULE['<{be2bill}roykin>adminmanagebe2billconf_344f1ee47c885eb15976a7ab4e1bb05d'] = 'Configuration des pays autorisés';
$_MODULE['<{be2bill}roykin>adminmanagebe2billconf_9a141f9fcc3002a2bfacfde70ee6fdb2'] = 'Pays autorisés à utiliser le mode de paiement';
$_MODULE['<{be2bill}roykin>adminmanagebe2billconf_fdbe12b385f30ec57a9ecacb8385a14d'] = 'Vous devez également autoriser ces pays dans la configuration des paiements en back office.';
$_MODULE['<{be2bill}roykin>adminmanagebe2billconf_13b032630373c74569a1d1148046ba1c'] = 'Configuration multi-boutique';
$_MODULE['<{be2bill}roykin>adminmanagebe2billconf_9d55fc80bbb875322aa67fd22fc98469'] = 'Assocation de boutique';
$_MODULE['<{be2bill}roykin>adminmanagebe2billconf_c9cc8cce247e49bae79f15173ce97354'] = 'Enregistrer';
$_MODULE['<{be2bill}roykin>adminmanagebe2billconf_dae2534a533b5bb9284175bd502cb5ff'] = 'Vous devez selectionner une devise.';
$_MODULE['<{be2bill}roykin>adminmanagebe2billconf_024cad98d58a5d790fd206fd2eeace66'] = 'Le type de compte est obligatoire.';
$_MODULE['<{be2bill}roykin>adminmanagebe2billconf_a08cf3ccd88cf81bb2026f11eb2ebf58'] = 'Montant minimum doit être un chiffre ou décimal';
$_MODULE['<{be2bill}roykin>adminmanagebe2billconf_5a90d3937d8e918439f264da4b801eaf'] = 'Montant maximum doit être un chiffre ou décimal';
$_MODULE['<{be2bill}roykin>adminmanagebe2billconf_4fce9e159bb6a537c4935fc8baed36e9'] = 'Vous devez choisir au moins un status pour le paiement à la livraison.';
$_MODULE['<{be2bill}roykin>payment_fb9337b746f6da8d914bd1a5bd009d60'] = 'Le cryptogramme de la carte est requis.';
$_MODULE['<{be2bill}roykin>payment_72ffbb5fe82ed18b0eb601d8e8d41112'] = 'Le cryptogramme de la carte est mal formaté.';
$_MODULE['<{be2bill}roykin>submit_e2b7dec8fa4b498156dfee6e4c84b156'] = 'La méthode de paiement n\'est pas disponible.';
$_MODULE['<{be2bill}roykin>form_000df07e0a27b0f4019b639848f587b0'] = 'Informations principales à renseigner dans l\'extranet de la Solution Be2bill';
$_MODULE['<{be2bill}roykin>form_452a60620a02c8fe05abbb86add561ac'] = 'Connectez-vous à votre extranet be2bill';
$_MODULE['<{be2bill}roykin>form_23dea4f53b14bd6479aadc6e8e34a9de'] = 'Cliquez sur la liste de comptes puis sur l\'icône de configuration';
$_MODULE['<{be2bill}roykin>form_7202793a812728805719df2b63b4e584'] = 'Saisissez les champs suivants :';
$_MODULE['<{be2bill}roykin>form_4a7a4e39839ab737a2337ff04ce5abe7'] = 'Adresse IP locale :';
$_MODULE['<{be2bill}roykin>form_b16384efe40e265bf174433ab0df4f44'] = 'Attention : si vous utilisez un proxy, cette IP n\'est pas l\'adresse IP publique.';
$_MODULE['<{be2bill}roykin>form_9ec282e7d71ead8ffc0ab3cd992cd1c4'] = 'URL de notification des transactions:';
$_MODULE['<{be2bill}roykin>form_79409d7067f434636b5038d0afba85be'] = 'URL de redirection après un traitement formulaire ou 3DSECURE:';
$_MODULE['<{be2bill}roykin>form_d019a7566ee8fc2519e49bab9b1510a4'] = 'Les autres champs doivent rester vide.';
$_MODULE['<{be2bill}roykin>form_9b8f6ce8ff54225ee130786f8804be6e'] = 'Vous pouvez reinitialiser vos listes de compte en cliquant sur ce lien :';
$_MODULE['<{be2bill}roykin>form_48fe8d8db890fb70909c24e9d65b90ea'] = 'Reinitialiser les comptes';
$_MODULE['<{be2bill}roykin>form_0adcf7dd4ede07d5410f9533cbddc8cd'] = 'Attention : Cette opération videra vos tables en base et les rechargera.';
$_MODULE['<{be2bill}roykin>form_4f50919d59993e7560445a094e18e822'] = 'Vous pouvez forcer la mise à jour en cliquant sur ce lien :';
$_MODULE['<{be2bill}roykin>form_38edc54ddf680b1af76f9ccfb48865ca'] = 'Mettre à jour vos moyens de paiement';
$_MODULE['<{be2bill}roykin>form_8524de963f07201e5c086830d370797f'] = 'Chargement en cours ....';
$_MODULE['<{be2bill}roykin>form_44749ab7d2f5938ec2ec26c71692522b'] = 'Aucun type compte trouvé, vous devez peut être mettre à jour votre xml dans la configuration du module.';
$_MODULE['<{be2bill}roykin>form_e9e1cb9020637f079cbd2794de84c402'] = 'Aucun type compte trouvé';
$_MODULE['<{be2bill}roykin>form_e2e0de44acf533877a436331f783dee0'] = 'Pas de mode intégration trouvé';
$_MODULE['<{be2bill}roykin>form_09a1a8c1ca63035daaa000d558a869d7'] = 'Pas de pays valable dans votre liste de pays actif sur la boutique.';
$_MODULE['<{be2bill}roykin>order_payment_c63d3d9600f66933ee10d41ac6728aa9'] = 'n\'est pas disponible.';
$_MODULE['<{be2bill}roykin>order_payment_6e8598ec83d708b73db6e22ed4d5b484'] = 'Choisissez un autre moyen de paiement.';
$_MODULE['<{be2bill}roykin>payment_execution_f1d3b424cd68795ecaa552883759aceb'] = 'Récapitulatif de la commande';
$_MODULE['<{be2bill}roykin>payment_execution_879f6b8877752685a966564d072f498f'] = 'Votre panier est vide.';
$_MODULE['<{be2bill}roykin>payment_execution_3de698b39b6630cab6090ff17ecf76a2'] = 'Be2bill';
$_MODULE['<{be2bill}roykin>payment_execution_521bc8ba97db60153a009c40d2559451'] = 'Vous avez choisi de payer avec Be2bill en un clic.';
$_MODULE['<{be2bill}roykin>payment_execution_cb2e3b67038ce71767a73253c4479f55'] = 'Vous avez choisi de payer avec Be2bill.';
$_MODULE['<{be2bill}roykin>payment_execution_c884ed19483d45970c5bf23a681e2dd2'] = 'Voici un bref récapitulatif de votre commande :';
$_MODULE['<{be2bill}roykin>payment_execution_3b3b41f131194e747489ef93e778ed0d'] = 'Le montant total de votre commande s\'élève à ';
$_MODULE['<{be2bill}roykin>payment_execution_1f87346a16cf80c372065de3c54c86d9'] = 'TTC';
$_MODULE['<{be2bill}roykin>payment_execution_c5fdaa9dd09a0a29689ed9ed619f7600'] = 'Votre numéro de carte bancaire enregistré :';
$_MODULE['<{be2bill}roykin>payment_execution_e333c0da44748af0f2dd641757f370ce'] = 'Enregistrez une nouvelle carte bancaire';
$_MODULE['<{be2bill}roykin>payment_execution_b26093f8d484d67b3ed0f073d62c27b8'] = 'Enregistrez votre carte bancaire pour un prochain achat';
$_MODULE['<{be2bill}roykin>payment_execution_05cd4cc075e498c919c733f606432e80'] = 'Saisissez les 4 chiffres au dos de votre carte bancaire :';
$_MODULE['<{be2bill}roykin>payment_execution_fead5f424f632cffaf325a3f978081a4'] = 'Saisissez les 3 chiffres au dos de votre carte bancaire :';
$_MODULE['<{be2bill}roykin>payment_execution_6817fcdb584942ea837dcc55df771e1a'] = 'Numéro d\'identification :';
$_MODULE['<{be2bill}roykin>payment_execution_0881a11f7af33bc1b43e437391129d66'] = 'Merci de confirmer votre commande en cliquant sur \"Je confirme ma commande\"';
$_MODULE['<{be2bill}roykin>payment_execution_46b9e3665f187c739c55983f757ccda0'] = 'Je confirme ma commande';
$_MODULE['<{be2bill}roykin>payment_execution_569fd05bdafa1712c4f6be5b153b8418'] = 'Autres moyens de paiement';
$_MODULE['<{be2bill}roykin>redirection_276c15a908375d890eb75be8509aaaf9'] = 'Vous allez être redirigé vers la plate-forme de paiement dans quelques secondes.';
$_MODULE['<{be2bill}roykin>redirection_4bd4456e5ef2c9abca46d87a09ea23be'] = 'Cliquez ici si vous n\'êtes pas redirigé automatiquement.';
$_MODULE['<{be2bill}roykin>admin_customers_df7d7f30a34029b6d1cd6cb31851ccdb'] = 'Be2bill Alias';
$_MODULE['<{be2bill}roykin>admin_customers_08bd40c7543007ad06e4fce31618f6ec'] = 'Compte';
$_MODULE['<{be2bill}roykin>admin_customers_effdb9ce6c5d44df31b89d7069c8e0fb'] = 'Alias';
$_MODULE['<{be2bill}roykin>admin_customers_5735196b42849ae4fe6adac3ae14c3d1'] = 'Type de carte';
$_MODULE['<{be2bill}roykin>admin_customers_a44217022190f5734b2f72ba1e4f8a79'] = 'Numéro de carte';
$_MODULE['<{be2bill}roykin>admin_customers_5a787141d53b573ec9b86e900bfe0d79'] = 'Date d\'expiration';
$_MODULE['<{be2bill}roykin>admin_customers_f92ee7ec445dfc5ccc3a73db4b8613d7'] = 'Aucun alias';
$_MODULE['<{be2bill}roykin>admin_order_ed431c9f4d10a2ead0eb3643f5e33f33'] = 'Historique des transactions';
$_MODULE['<{be2bill}roykin>admin_order_44749712dbec183e983dcd78a7736c41'] = 'Date';
$_MODULE['<{be2bill}roykin>admin_order_88427ec035734b45aae9f7d8859a5008'] = 'ID transaction';
$_MODULE['<{be2bill}roykin>admin_order_384036f8b0067ec3bb710a92f8734b3b'] = 'Type de transaction';
$_MODULE['<{be2bill}roykin>admin_order_b2f40690858b404ed10e62bdf422c704'] = 'Montant';
$_MODULE['<{be2bill}roykin>admin_order_fcc1cc6cbfec637ad3bdb4082f54e122'] = 'EXECCODE';
$_MODULE['<{be2bill}roykin>admin_order_3462e4acbaa66b4937e0989a3ecb8e04'] = 'Message du serveur';
$_MODULE['<{be2bill}roykin>admin_order_163acb6b15e31fa15ac1e17521ed9a28'] = 'Aucune transaction';
$_MODULE['<{be2bill}roykin>admin_order_cb80975111b0b8ffe0189d5349078b23'] = 'Remboursement de transaction';
$_MODULE['<{be2bill}roykin>admin_order_b3fe28480f76ad7ea0ef213ba3ffe51b'] = 'Sélectionner une transaction et un avoir à rembourser :';
$_MODULE['<{be2bill}roykin>admin_order_430a0f8c37264be8eac3535f3a5b0a2d'] = 'Sélectionner une transaction';
$_MODULE['<{be2bill}roykin>admin_order_fc3428c70d6b24532c193e814843a074'] = 'Sélectionner un avoir';
$_MODULE['<{be2bill}roykin>admin_order_c7d76074f459eaa296d3eb71efc23eba'] = 'Avoir n°';
$_MODULE['<{be2bill}roykin>admin_order_76f0ed934de85cc7131910b32ede7714'] = 'Rembourser';
$_MODULE['<{be2bill}roykin>admin_order_da3ccea2742e823d46bc6052793c2515'] = 'Aucune transaction remboursable.';
$_MODULE['<{be2bill}roykin>admin_order_78981033aa2f32f9376f2df56a975bff'] = 'Créer un remboursement partiel avant de rembourser la transaction.';
$_MODULE['<{be2bill}roykin>admin_order_25f7347236b51a5eae4ba01a7862cb55'] = 'Echéancier';
$_MODULE['<{be2bill}roykin>admin_order_ba29c8b1e3ef39b207c9fa45c06704d1'] = 'Date prévisionnelle';
$_MODULE['<{be2bill}roykin>admin_order_3f8c6ecb084eea3b83d659fab7155e86'] = 'Date de la capture';
$_MODULE['<{be2bill}roykin>admin_order_81b7215457b60bf2627ddb668f559f96'] = 'Est capturé';
$_MODULE['<{be2bill}roykin>payment_return_bd9317b7a60e68ad016948c610434536'] = 'Paiement réalisé aves succès';
$_MODULE['<{be2bill}roykin>payment_return_fbd5abb4f24e294f985ec33747bd96c6'] = 'Montant du paiement :';
$_MODULE['<{be2bill}roykin>payment_return_63c193f613dd3d9d6c16da7678efda2a'] = 'Référence de la commande :';
$_MODULE['<{be2bill}roykin>payment_return_ad73ff4385c81d28f050e40d84b83802'] = 'Merci pour votre commande, vous allez rapidement recevoir un e-mail de confirmation à cette adresse :';
$_MODULE['<{be2bill}roykin>payment_return_d796a541ad881a34c256f2c06554604b'] = 'Votre commande a été partiellement payée';
$_MODULE['<{be2bill}roykin>payment_return_6eabcefa8c520747ee841c779cb3cebc'] = 'Montant payé:';
$_MODULE['<{be2bill}roykin>payment_return_88351b40c70839a45707f8f1c917da7a'] = 'Montant de la commande:';
$_MODULE['<{be2bill}roykin>payment_return_4072a2b167fa064269970f5c0a239d08'] = 'Veuillez nous contacter afin de régulariser votre commande.';
$_MODULE['<{be2bill}roykin>payment_return_0b22741260d4e9166ce4c9c93bcf09ec'] = 'Paiement en attente du retour de la banque';
$_MODULE['<{be2bill}roykin>payment_return_ba4bd415372d6b2e2653300e862b15d9'] = 'Le retour du paiement envoyé par la banque n\'a toujours pas été reçu.';
$_MODULE['<{be2bill}roykin>payment_return_91cb9be76ded8fb309a8461885591267'] = 'Vous pouvez suivre l\'évolution de votre commande sur';
$_MODULE['<{be2bill}roykin>payment_return_9390390581f54c65d6acfc8da4e17362'] = 'Mes commandes';
$_MODULE['<{be2bill}roykin>payment_return_55fe965e8e8b0f80673dec66ea56652c'] = 'cette adresse.';
$_MODULE['<{be2bill}roykin>payment_return_b06c5ecc37b9cd61a0cab0534ed1f15d'] = 'Erreur de paiement';
$_MODULE['<{be2bill}roykin>payment_return_8de637e24570c1edb0357826a2ad5aea'] = 'Nous avons remarqué un problème avec votre commande. Si vous pensez qu\'il s\'agit d\'une erreur, vous pouvez contacter notre';
$_MODULE['<{be2bill}roykin>payment_return_64430ad2835be8ad60c59e7d44e4b0b1'] = 'support client';
$_MODULE['<{be2bill}roykin>payment_return_a7ec49d602705b570a98ddbbe036cae1'] = 'Renouveler ma commande';
$_MODULE['<{be2bill}roykin>payment_f063ea64a6637abb70794b25994f0348'] = 'Différé';
$_MODULE['<{be2bill}roykin>payment_5601ebe625adbbb9b0a51e7ff9e17c32'] = 'Vous serez débité dans';
$_MODULE['<{be2bill}roykin>payment_225e75c29d32392d311f5dc94c792384'] = 'jour(s)';
$_MODULE['<{be2bill}roykin>payment_73d4e512ba69106993297f7f1dee3c1e'] = 'à la livraison';
$_MODULE['<{be2bill}roykin>payment_5871cbb0a915e16ca9ea39d4081a4c6c'] = 'en plusieurs fois';
$_MODULE['<{be2bill}roykin>payment_317fef6e6f61832145fc8ac212bd1d1e'] = 'en 1 click';

View File

@ -42,18 +42,16 @@ $_MODULE['<{blockcart}roykin>crossselling_ef2b66b0b65479e08ff0cce29e19d006'] = '
$_MODULE['<{blockcart}roykin>crossselling_dd1f775e443ff3b9a89270713580a51b'] = 'Précédent';
$_MODULE['<{blockcart}roykin>crossselling_4351cfebe4b61d8aa5efa1d020710005'] = 'Afficher';
$_MODULE['<{blockcart}roykin>crossselling_10ac3d04253ef7e1ddc73e6091c0cd55'] = 'Suivant';
$_MODULE['<{blockcart}roykin>blockcart-footer_c46bcd6d3ff43e7181a51a089dc8d792'] = 'Vider mon panier';
$_MODULE['<{blockcart}roykin>blockcart-footer_6f16ab6ec0a6064d0c8961257a3eb1f5'] = 'Récapitulatif de votre panier';
$_MODULE['<{blockcart}roykin>blockcart-footer_c46bcd6d3ff43e7181a51a089dc8d792'] = 'Vider mon panier';
$_MODULE['<{blockcart}roykin>blockcart-footer_acb46aae1913e9040ddffbe0df2e2c6d'] = 'Nombre d\'articles';
$_MODULE['<{blockcart}roykin>blockcart-footer_cb7ef5fea931e52d22d88f4cb0623ee2'] = 'article(s)';
$_MODULE['<{blockcart}roykin>blockcart-footer_33d40894dc3f2fce1e9a0d6bca96c992'] = 'bouteille(s)';
$_MODULE['<{blockcart}roykin>blockcart-footer_96b0141273eabab320119c467cdcaf17'] = 'Montant total';
$_MODULE['<{blockcart}roykin>blockcart-footer_e8ba1e996094fe96e62784d8e768fd58'] = 'de livraison';
$_MODULE['<{blockcart}roykin>blockcart-footer_38a0287959316c9dd616fbf138727f76'] = 'Livraison offerte';
$_MODULE['<{blockcart}roykin>blockcart-footer_0c3bf3014aafb90201805e45b5e62881'] = 'Finaliser votre commande';
$_MODULE['<{blockcart}roykin>blockcart-footer_6ff063fbc860a79759a7369ac32cee22'] = 'Finaliser votre commande';
$_MODULE['<{blockcart}roykin>blockcart_dae3b417a0fc4a49e851ce55d6d49551'] = 'Votre panier';
$_MODULE['<{blockcart}roykin>blockcart_cb7ef5fea931e52d22d88f4cb0623ee2'] = 'article(s)';
$_MODULE['<{blockcart}roykin>blockcart_33d40894dc3f2fce1e9a0d6bca96c992'] = 'bouteille(s)';
$_MODULE['<{blockcart}roykin>blockcart_e8ba1e996094fe96e62784d8e768fd58'] = 'de livraison';
$_MODULE['<{blockcart}roykin>blockcart_38a0287959316c9dd616fbf138727f76'] = 'Livraison offerte';

View File

@ -6,13 +6,23 @@
<a href="{$link->getPageLink('history', true)|escape:'html':'UTF-8'}" title="{l s='My orders' mod='blockmyaccount'}">
{l s='My orders' mod='blockmyaccount'}
</a>
</li>
{if Module::isEnabled('allinone_rewards') && isset($link_rewards)}
/
<li>
<a href="{$link_rewards}" title="{l s='My rewards' mod='blockmyaccount'}">
{l s='My rewards' mod='blockmyaccount'}
</a>
{/if}
</li>
{/if}
{if Module::isEnabled('antadisfiles')}
<li>
{assign var=params value=[
'page' => 1
]}
<a href="{$link->getModuleLink('antadisfiles', 'list', $params)|escape:'html':'UTF-8'}">
{l s='Mes téléchargements'}</a>
</li>
{/if}
<li>
<a href="{$link->getPageLink('index', true, NULL, 'mylogout')|escape:'html'}" title="{l s='Logout'}">
<span>{l s='Logout' mod='blockmyaccount'}</span>