diff --git a/modules/ant_alert/AdminAntAlert.php b/modules/ant_alert/AdminAntAlert.php index e409918a..36c17aa9 100644 --- a/modules/ant_alert/AdminAntAlert.php +++ b/modules/ant_alert/AdminAntAlert.php @@ -1,38 +1,332 @@ -
- '.$this->l('Configuration Alert').' -

'.$this->l('Last send : ').Configuration::get('ANT_ALTER_DATESEND').'

-

- -
- -
-
-
- -
- -
-
-
- -
-
- -
'; +class AdminAntAlert extends AdminTab { + + protected $_html; + public $module_name; + public $config_tab; + public $controller; + public $helperForm; + public $_object; + + public function __construct($config_tab = true) + { + parent::__construct(); + $this->_object = false; + $this->controller = 'AdminModules'; + $this->module_name = 'ant_alert'; + $this->config_tab = (bool)$config_tab; + if ($config_tab) { + $this->controller = 'AdminAntAlert'; + } + $this->helperForm = new HelperFormBootstrap(); + $this->helperForm->_select2 = true; + $this->helperForm->_inputSwitch = true; } + + protected function _postProcess() + { + if (Tools::isSubmit('newAlert')) { + + } elseif (Tools::isSubmit('addAlert')) { + $this->_addOrUpdateAlert(false); + } elseif (Tools::isSubmit('editAlert')) { + $this->_addOrUpdateAlert(true); + } elseif (Tools::isSubmit('loadAlert') && Tools::getValue('id')) { + $this->_object = new AntAlert((int)Tools::getValue('id')); + } elseif (Tools::isSubmit('deleteAlert') && Tools::getValue('id')) { + $deleted_alert = new AntAlert((int)Tools::getValue('id')); + $res = $deleted_alert->delete(); + if ($res) { + $this->_html .= HelperFormBootstrap::displaySuccess($this->l('Alert deleted : #') . (int)Tools::getValue('id')); + } else { + $this->_html .= HelperFormBootstrap::displayError($this->l('Alert cannot be deleted : #') . (int)Tools::getValue('id')); + } + return $res; + } + } + + protected function _addOrUpdateAlert($edit = false) + { + if ($edit) { + $alert = new AntAlert((int)Tools::getValue('id_alert')); + } else { + $alert = new AntAlert(); + $alert->date_last_send = date("Y-m-d H:i:s"); + } + + $alert->id_contact = Tools::getValue('id_contact'); + $alert->limit = Tools::getValue('limit'); + $alert->hours = Tools::getValue('hours'); + $alert->enabled = (int)Tools::getValue('enabled'); + + if ($alert->save()) { + if ($edit) { + $this->_html .= HelperFormBootstrap::displaySuccess($this->l('Alert has been updated')); + } else { + $this->_html .= HelperFormBootstrap::displaySuccess($this->l('Alert has been created')); + } + } else { + $this->_html .= HelperFormBootstrap::displayError($this->l('Error occured while updating alert')); + } + } + + + public function display() + { + parent::displayForm(); + + $this->_html = ''; + + $this->_postProcess(); + + $this->_addCss(); + $this->_html .= $this->helperForm->renderStyle(); + + $this->_displayForm(); + $this->_displayList(); + + $this->_html .='
'; + $this->_addJs(); + $this->_html .= $this->helperForm->renderScript(); + echo $this->_html; + } + + + protected function _addJs() + { + $this->helperForm->_js .= ''; + } + + protected function _addCss() + { + $this->helperForm->_css .=' + .table tr th { + background: #565485; + background: rgba(86,84,133,0.9); + color: #fff; + font-size: 12px; + } + .table tr:nth-child(even) { + background: #F1F1F1; + } + .table .input-group-btn .btn { + padding: 4px 5px; + color: #504d8b; + + } + .table .input-group-btn .btn .anticon{ + font-size: 12px; + } + .bg-grey{ + background: #EFEFEF; + border-radius:4px; + } + .bg-grey .div-title { + border-bottom: 2px solid #504D8B; + } + '; + } + + protected function _displayList() + { + global $cookie, $currentIndex; + + $id_lang = (int)$cookie->id_lang; + $contacts = Contact::getContacts($cookie->id_lang); + + $alerts = AntAlert::getAlerts(false); + $_current_index = ($this->config_tab ? $currentIndex . '&token=' . Tools::getAdminTokenLite($this->controller) : $_SERVER['REQUEST_URI']); + + $this->_html .=' +
+
+
+

'.$this->l('Liste des Alertes').'

+
+
+
+ + + + + + + + + + + + '; + foreach ($alerts as $alert) + { + $current_contact = $this->_search($contacts,'id_contact',(int)$alert['id_contact']); + $this->_html .=' + + + + + + + + '; + } + $this->_html .=' + +
'.$this->l('ID').''.$this->l('Contact').''.$this->l('Mess per hours').''.$this->l('Last sent').''.$this->l('Active').''.$this->l('Action').'
#'.$alert['id_alert'].''.$current_contact['name'].''.$alert['limit'].' / '.$alert['hours'].'h '.date('d/m/Y H:i',strtotime($alert['date_last_sent'])).''.((int)$alert['enabled']?'':'').' +
+ + +
+
+
+
+
'; + + } + + private function _displayForm() + { + global $cookie, $currentIndex; + if (Validate::isLoadedObject($this->_object)){ + $alert = $this->_object; + } + $contacts = Contact::getContacts($cookie->id_lang); + $alreadyUsedContacts = AntAlert::getAlreadyUsedContacts(); + foreach($contacts as $contact) { + $id_contacts[(int)$contact['id_contact']] = array( + 'label' => $contact['name'], + 'value' => (int) $contact['id_contact'] + ); + if($alert!==NULL && $alert->id_contact==$contact['id_contact']) { + $id_contacts[(int)$contact['id_contact']]['selected'] = true; + }elseif(in_array($contact['id_contact'], $alreadyUsedContacts)){ + $id_contacts[(int)$contact['id_contact']]['disabled'] = true; + } + } + $this->helperForm->_forms = array( + array( + 'action' => $currentIndex . '&token=' . Tools::getAdminTokenLite('AdminAntAlert'), + 'title' => ' '.$this->l('Alert'), + 'class' => 'form-horizontal', + 'class_div' => 'col-md-12', + 'sections' => array( + array( + 'class' => 'col-md-6', + 'inputs' => array( + array( + 'type' => 'select2', + 'name' => 'id_contact', + // 'label-class' => 'col-md-5', + // 'input-class' => 'col-md-6', + 'label' => $this->l('Contact'), + 'options' => $id_contacts, + ), + array( + 'type' => 'simpleText', + 'name' => 'limit', + 'label-class' => 'col-md-3', + 'input-class' => 'col-md-6', + 'label' => $this->l('Limit'), + 'default' => (isset($alert)?$alert->limit:'') + ), + array( + 'type' => 'simpleText', + 'name' => 'hours', + 'label-class' => 'col-md-3', + 'input-class' => 'col-md-6', + 'label' => $this->l('Hours'), + 'default' => (isset($alert)?$alert->hours:'') + ), + array( + 'type' => 'switch', + 'label' => $this->l('Active'), + 'label-class' => 'col-md-3', + 'input-class' => 'col-md-6', + 'class-group' => 'switch', + 'name' => 'enabled', + 'title' => ' ', + 'default' => (isset($alert)?($alert->enabled==0?0:1):1), + 'checked' => (isset($alert)?($alert->enabled==0?0:1):1), + ), + ), + 'actions' => array(), + 'actions-class' => 'text-right', + ), + array( + 'class' => 'col-md-6 bg-grey', + 'title' => ' Informations', + 'inputs' => array(), + 'info_html' => ' +

La limite des messages est par heures et par type de contact.

+
+ Par exemple :

+ +

Ici un mail d\'alert se déclenche au 51 messages envoyés dans la même heure si le message concerne les Retour/Echange.

+

Une seule alerte par type de contact possible !

+

' + ), + ), + 'actions' => array(), + 'actions-class' => 'text-right', + ) + ); + + + if (isset($alert)) { + $this->helperForm->_forms[0]['sections'][0]['title'] = "Editer une alert"; + $this->helperForm->_forms[0]['sections'][0]['inputs'][] = array( + 'type' => 'hidden', + 'name' => 'id_alert', + 'value' => $alert->id, + 'class' => 'large' + ); + $this->helperForm->_forms[0]['sections'][0]['actions'] = array( + array( + 'type' => 'submit', + 'class' => 'btn-default', + 'name' => 'newAlert', + 'value' => $this->l('Nouvelle Alert') + ), + array( + 'type' => 'submit', + 'class' => 'btn-primary', + 'name' => 'editAlert', + 'value' => $this->l('Editer l\'alert') + ), + ); + } else { + $this->helperForm->_forms[0]['sections'][0]['title'] = "Ajouter une alert"; + $this->helperForm->_forms[0]['sections'][0]['actions'] = array( + array( + 'type' => 'submit', + 'class' => 'btn-primary', + 'name' => 'addAlert', + 'value' => $this->l('Ajouter l\'alert') + ), + ); + } + + $this->helperForm->renderForm(); + } + + public function _search($array, $key, $value) + { + $results = array(); + + if (is_array($array)) { + if (isset($array[$key]) && $array[$key] == $value) { + return $array; + } + foreach ($array as $subarray) { + $results = array_merge($results, $this->_search($subarray, $key, $value)); + } + } + return $results; + } + } \ No newline at end of file diff --git a/modules/ant_alert/ant_alert.php b/modules/ant_alert/ant_alert.php index efac6bdf..6160db6b 100644 --- a/modules/ant_alert/ant_alert.php +++ b/modules/ant_alert/ant_alert.php @@ -2,7 +2,9 @@ if (!defined('_PS_VERSION_')) exit; -class Ant_Alert extends Module +include_once(_PS_MODULE_DIR_.'/ant_alert/models/AntAlert.php'); + +class Ant_Alert extends Module { public function __construct() @@ -19,9 +21,25 @@ class Ant_Alert extends Module $this->description = $this->l('Alert for message of technical error'); } - public function install() + public function install() { - + # Add tables + $query = ' + CREATE TABLE IF NOT EXISTS `'._DB_PREFIX_.'ant_alert` ( + `id_alert` INTEGER NOT NULL AUTO_INCREMENT, + `enabled` BOOL NOT NULL, + `id_contact` INTEGER NOT NULL, + `limit` INTEGER NOT NULL, + `hours` INTEGER NOT NULL, + `date_add` DATETIME NOT NULL, + `date_upd` DATETIME NOT NULL, + `date_last_sent` DATETIME NOT NULL, + PRIMARY KEY(`id_alert`,`id_contact`) + ) ENGINE=MyIsam DEFAULT CHARSET=utf8 + '; + if(!Db::getInstance()->Execute($query)) { + return false; + } $hooks = array( 'ant_alert' => array('Ant Alert', 'Called when a message of technical error is sent'), @@ -46,9 +64,9 @@ class Ant_Alert extends Module } # Set default configuration values - Configuration::updateValue('ANT_ALTER_LIMIT', 10); - Configuration::updateValue('ANT_ALTER_HOURS', 24); - Configuration::updateValue('ANT_ALTER_DATESEND', date('Y-m-d H:i:s')); + // Configuration::updateValue('ANT_ALTER_LIMIT', 10); + // Configuration::updateValue('ANT_ALTER_HOURS', 24); + // Configuration::updateValue('ANT_ALTER_DATESEND', date('Y-m-d H:i:s')); return true; } @@ -69,38 +87,43 @@ class Ant_Alert extends Module public function hookAnt_Alert($params) { global $cookie; - $date = new Datetime(Configuration::get('ANT_ALTER_DATESEND')); - $now = new Datetime; + $alert = AntAlert::getAlertByContact((int)$params['id_contact']); + if($alert && $alert->enabled == 1) { + $date = new Datetime($alert->date_last_send); + $now = new Datetime; - $dteDiff = $date->diff($now); - if ((int)$dteDiff->format("%H") >= (int)Configuration::get('ANT_ALTER_HOURS')) { // prod - $open_messages = Db::getInstance()->getRow(' - SELECT COUNT(*) as total - FROM '._DB_PREFIX_.'customer_thread ct - WHERE ct.status = "open" - GROUP BY ct.id_contact HAVING COUNT(*) > 0 AND ct.id_contact = 4' - ); - if ((int)$open_messages['total'] >= (int)Configuration::get('ANT_ALTER_LIMIT')) { - // dev - // $to = array('marion@antadis.com'); - // prod - $to = array( - 'frederic@bebeboutik.com', - 'jacques@bebeboutik.com', - 'valentin@bebeboutik.com', + $dteDiff = $date->diff($now); + if ((int)$dteDiff->format("%H") >= $alert->hours) { // prod + $open_messages = Db::getInstance()->getRow(' + SELECT COUNT(*) as total + FROM '._DB_PREFIX_.'customer_thread ct + WHERE ct.status = "open" + GROUP BY ct.id_contact HAVING COUNT(*) > 0 AND ct.id_contact ='.$alert->id_contact ); - $data = array( - '{limit}' => (int)Configuration::get('ANT_ALTER_LIMIT'), - '{hours}' => (int)Configuration::get('ANT_ALTER_HOURS'), - ); - foreach ($to as $email) { - if(Mail::Send((int)$cookie->id_lang, 'ant_alert', 'Alert error', $data, $to)) { - Configuration::updateValue('ANT_ALTER_DATESEND', date('Y-m-d H:i:s')); + if ((int)$open_messages['total'] >= (int)$alert->limit) { + // dev + $to = array('marion@antadis.com'); + // prod + // $to = array( + // 'frederic@bebeboutik.com', + // 'jacques@bebeboutik.com', + // 'valentin@bebeboutik.com', + // ); + $contact = new Contact((int)$alert->id_contact,2); + $data = array( + '{limit}' => (int)$alert->limit, + '{hours}' => (int)$alert->hours, + '{contact}' => (int)$contact->name, + ); + foreach ($to as $email) { + if(Mail::Send((int)$cookie->id_lang, 'ant_alert', 'Alert error', $data, $to)) { + $alert->last_date_sent = date('Y-m-d H:i:s'); + $alert->save(); + } } } } } - } } diff --git a/modules/ant_support_form/support.php b/modules/ant_support_form/support.php index 792c53b3..a28fdbfa 100644 --- a/modules/ant_support_form/support.php +++ b/modules/ant_support_form/support.php @@ -239,7 +239,7 @@ if (Tools::isSubmit('submitMessage')) { else $errors[] = Tools::displayError('An error occurred while sending message.'); } - + Module::hookExec('ant_alert', array('id_contact' => (int)($id_contact))); Module::hookExec('ant_alerthack', array( 'email' => $from, 'id_customer' => (isset($customer->id)?$customer->id:false), diff --git a/modules/logistics/AdminLogistics.php b/modules/logistics/AdminLogistics.php index fa90efe2..1a2e3aa9 100644 --- a/modules/logistics/AdminLogistics.php +++ b/modules/logistics/AdminLogistics.php @@ -262,6 +262,7 @@ class AdminLogistics extends AdminTab { Tools::redirectLink('http://'.$_SERVER['SERVER_NAME'].'/adm/index.php?tab=AdminLogistics&token='.Tools::getAdminTokenLite('AdminLogistics').'&id_order='.(int) Tools::getValue('id_order').'&mode='.Tools::getValue('mode', '').'#'.Tools::getValue('mode', '')); } + // Generate a new shipping number for product sent with many parcels if( (Tools::isSubmit('submitReprintShip')) && ((int) $cookie->profile == 1 || (int) $cookie->profile == 9 || (int) $cookie->profile == 7 || (int) $cookie->profile == 14) && ( @@ -274,7 +275,7 @@ class AdminLogistics extends AdminTab { $order = new Order((int) $id_order); if(Validate::isLoadedObject($order)) { $parcel_carrier == 'laposte'? $weight = 0.24: TRUE; - if($parcel_carrier == "laposte") { + if($parcel_carrier == "laposte" || $parcel_carrier == "mondialrelay") { $result = $logistics_carriers[$parcel_carrier]->registerParcel($order, $products, $weight); if($result[0] != '') { $this->_html .= $result[0]; @@ -288,7 +289,14 @@ class AdminLogistics extends AdminTab { } elseif($render === 'route_error') { $this->_html .= '

'.$this->l('Route not found').'


'; } elseif($render !== FALSE) { - $this->printLabel($render); + if($parcel_carrier == 'mondialrelay') { + $this->printLabel($render,true); + $f = fopen(dirname(__FILE__).'/label_mr.txt', 'a+'); + fwrite($f, $render); + fclose($f); + } else { + $this->printLabel($render); + } $this->_html .= '

'.$this->l('Registration complete, label sent to printer').'


'; @@ -320,16 +328,17 @@ class AdminLogistics extends AdminTab { } else { $this->html .= '

'.$this->l('An error happened during the label rendering').'


'; } - } elseif($parcel_carrier=='mondialrelay' - && ( - ($id_order_detail = Tools::getValue('id_order_detail_reprint')) - && ($weight = Tools::getValue('weight_reprint')) - ) - ){ - $result = $logistics_carriers['mondialrelay']->_getRegisteredParcel(new Order($id_order), $id_order_detail, $products, $weight); - $render = $logistics_carriers['mondialrelay']->renderLabel(new Order($id_order), $weight, $result[1]); - $this->printLabel($render,true); } + // elseif($parcel_carrier=='mondialrelay' + // && ( + // ($id_order_detail = Tools::getValue('id_order_detail_reprint')) + // && ($weight = Tools::getValue('weight_reprint')) + // ) + // ){ + // $result = $logistics_carriers['mondialrelay']->_getRegisteredParcel(new Order($id_order), $id_order_detail, $products, $weight); + // $render = $logistics_carriers['mondialrelay']->renderLabel(new Order($id_order), $weight, $result[1]); + // $this->printLabel($render,true); + // } } //$this->printLabel($logistics_carriers['laposte']->renderLabel(new Order((int) $id_order), $weight, $reprint_number)); } elseif(Tools::isSubmit('submitTestLaposte')) { diff --git a/modules/philea_magistor/script/send_commande.php b/modules/philea_magistor/script/send_commande.php index dd27872d..4b255dbb 100644 --- a/modules/philea_magistor/script/send_commande.php +++ b/modules/philea_magistor/script/send_commande.php @@ -249,7 +249,7 @@ if($magistorModule->active) { $data .= str_pad( substr(utf8_decode(cleanChar($address_invoice->firstname.' '.$address_invoice->lastname)),0,50), 50, ' ', STR_PAD_RIGHT ); if(in_array((int) $order->id_carrier, $carriers_mr) && $delivery_info - && !in_array($delivery_info['dlv_mode'], array('LD1', 'LDS', 'HOM') + && !in_array($delivery_info['dlv_mode'], array('LD1', 'LDS', 'HOM')) ) { // no company name for a delivery in relay point $data .= str_pad( '', 50, ' ', STR_PAD_RIGHT ); @@ -284,7 +284,7 @@ if($magistorModule->active) { // LIVRAISON MR (NO DOMICILE) elseif(in_array((int) $order->id_carrier, $carriers_mr) && $delivery_info - && !in_array($delivery_info['dlv_mode'], array('LD1', 'LDS', 'HOM') + && !in_array($delivery_info['dlv_mode'], array('LD1', 'LDS', 'HOM')) ) { $data .= str_pad(substr(utf8_decode(cleanChar($address_delivery->firstname.' '.$address_delivery->lastname)), 0, 50), 50, ' ', STR_PAD_RIGHT); // no company name for a delivery in relay point diff --git a/modules/stats_logistic/AdminStatsLogistic.php b/modules/stats_logistic/AdminStatsLogistic.php index caa4f0d1..d2f2bbd7 100755 --- a/modules/stats_logistic/AdminStatsLogistic.php +++ b/modules/stats_logistic/AdminStatsLogistic.php @@ -707,11 +707,18 @@ class AdminStatsLogistic extends AdminTab { } public function getPackageDetails($order_detail_ids) { - return Db::getInstance()->ExecuteS(' + $lp = Db::getInstance()->ExecuteS(' SELECT pws.`id_order_detail`, pws.`id_employee`, pws.`shipping_number` FROM `'._DB_PREFIX_.'lapostews` pws WHERE pws.`id_order_detail` IN ('.implode(',', $order_detail_ids).') '); + $mr = Db::getInstance()->ExecuteS(' + SELECT mrp.`id_order_detail`, mrp.`id_employee`, mrp.`shipping_number` + FROM `'._DB_PREFIX_.'mondialrelay_parcel` mrp + WHERE mrp.`id_order_detail` IN ('.implode(',', $order_detail_ids).') + '); + $total = array_merge($lp, $mr); + return $total; } public function getShippingDetails() { diff --git a/modules/stats_logistic/cron.php b/modules/stats_logistic/cron.php index b83308e7..a4a13da6 100755 --- a/modules/stats_logistic/cron.php +++ b/modules/stats_logistic/cron.php @@ -1,4 +1,5 @@ execute($query); +// $query = ' +// INSERT INTO `'._DB_PREFIX_.'stats_logistic` +// SELECT +// NULL AS `id`, +// `id_employee` AS `id_employee`, +// `date_add` AS `date`, +// COUNT(`id_order_detail`) AS `nb_product`, +// SUM(`quantity`) AS `quantity`, +// COUNT(DISTINCT `shipping_number`) AS `nb_package` +// FROM `'._DB_PREFIX_.'lapostews` +// WHERE DATE(`date_add`) = "'.pSQL($date).'" +// GROUP BY `id_employee` , DATE(`date_add`) +// ON DUPLICATE KEY UPDATE +// `nb_product` = VALUES(`nb_product`), +// `quantity` = VALUES(`quantity`), +// `nb_package` = VALUES(`nb_package`) +// '; +// Db::getInstance()->execute($query); +// +$parcels = array(); + +$lp = Db::getInstance()->executeS('SELECT + NULL AS `id`, + `id_employee` AS `id_employee`, + `date_add` AS `date`, + COUNT(`id_order_detail`) AS `nb_product`, + SUM(`quantity`) AS `quantity`, + COUNT(DISTINCT `shipping_number`) AS `nb_package` + FROM `'._DB_PREFIX_.'lapostews` + WHERE DATE(`date_add`) = "'.pSQL($date).'" + GROUP BY `id_employee` , DATE(`date_add`)'); + +foreach($lp as $colis){ + if(!isset($parcels[$colis['id_employee']])){ + $parcels[$colis['id_employee']] = $colis; + } +} // Mondial relay -$query = ' - INSERT INTO `'._DB_PREFIX_.'stats_logistic` - SELECT +// $query = ' +// INSERT INTO `'._DB_PREFIX_.'stats_logistic` +// SELECT +// NULL AS `id`, +// `id_employee` AS `id_employee`, +// `date_add` AS `date`, +// COUNT(`id_order_detail`) AS `nb_product`, +// SUM(`quantity`) AS `quantity`, +// COUNT(DISTINCT `shipping_number`) AS `nb_package` +// FROM `'._DB_PREFIX_.'mondialrelay_parcel` +// WHERE DATE(`date_add`) = "'.pSQL($date).'" +// GROUP BY `id_employee` , DATE(`date_add`) +// ON DUPLICATE KEY UPDATE +// `nb_product` = `nb_product` + VALUES(`nb_product`), +// `quantity` = `quantity` + VALUES(`quantity`), +// `nb_package` = `nb_package` + VALUES(`nb_package`) +// '; +// Db::getInstance()->execute($query); +// +$mr = Db::getInstance()->executeS('SELECT NULL AS `id`, - `id_employee` AS `id_employee`, + `id_employee` AS `id_employee`, `date_add` AS `date`, COUNT(`id_order_detail`) AS `nb_product`, SUM(`quantity`) AS `quantity`, COUNT(DISTINCT `shipping_number`) AS `nb_package` FROM `'._DB_PREFIX_.'mondialrelay_parcel` WHERE DATE(`date_add`) = "'.pSQL($date).'" - GROUP BY `id_employee` , DATE(`date_add`) - ON DUPLICATE KEY UPDATE - `nb_product` = VALUES(`nb_product`), - `quantity` = VALUES(`quantity`), - `nb_package` = VALUES(`nb_package`) -'; -Db::getInstance()->execute($query); + GROUP BY `id_employee` , DATE(`date_add`)'); +foreach($mr as $colis){ + if(!isset($parcels[$colis['id_employee']])){ + $parcels[$colis['id_employee']] = $colis; + } else { + $parcels[$colis['id_employee']]['nb_product'] = $parcels[$colis['id_employee']]['nb_product'] + $colis['nb_product']; + $parcels[$colis['id_employee']]['quantity'] = $parcels[$colis['id_employee']]['quantity'] + $colis['quantity']; + $parcels[$colis['id_employee']]['nb_package'] = $parcels[$colis['id_employee']]['nb_package'] + $colis['nb_package']; + } +} + +foreach ($parcels as $key => $value) { + Db::getInstance()->execute(' + INSERT INTO `'._DB_PREFIX_.'stats_logistic` + VALUES( + DEFAULT, + '.(int)$value['id_employee'].', + "'.$value['date'].'", + '.(int)$value['nb_product'].', + '.(int)$value['quantity'].', + '.(int)$value['nb_package'].' + ) + ON DUPLICATE KEY UPDATE + `nb_product` = '.(int)$value['nb_product'].', + `quantity` = '.(int)$value['quantity'].', + `nb_package` ='.(int)$value['nb_package'].' + '); +} diff --git a/override/controllers/ContactController.php b/override/controllers/ContactController.php index 2a6d26db..2810ff41 100755 --- a/override/controllers/ContactController.php +++ b/override/controllers/ContactController.php @@ -202,7 +202,7 @@ class ContactController extends ContactControllerCore { $this->errors[] = Tools::displayError('An error occurred while sending message.'); } - Module::hookExec('ant_alert', array()); + Module::hookExec('ant_alert', array('id_contact' => (int)($id_contact))); Module::hookExec('ant_alerthack', array( 'email' => $from, 'id_customer' => (isset($customer->id)?$customer->id:false),