// MERGE with 1.4 r7770
This commit is contained in:
1 parent
60b07cacb9
commit
c17e7c236d
968 files changed
+26082
-3937
No files matched your search
@@ -273,13 +273,18 @@ class Followup extends Module
|
||||
/* Each cart which wasn't transformed into an order */
|
||||
private function cancelledCart($count = false)
|
||||
{
|
||||
$emails = Db::getInstance()->ExecuteS('
|
||||
$emailLogs = $this->getLogsEmail(1);
|
||||
$sql = '
|
||||
SELECT c.id_cart, c.id_lang, cu.id_customer, cu.firstname, cu.lastname, cu.email
|
||||
FROM '._DB_PREFIX_.'cart c
|
||||
LEFT JOIN '._DB_PREFIX_.'orders o ON (o.id_cart = c.id_cart)
|
||||
LEFT JOIN '._DB_PREFIX_.'customer cu ON (cu.id_customer = c.id_customer)
|
||||
WHERE DATE_SUB(CURDATE(),INTERVAL 7 DAY) <= c.date_add AND cu.id_customer IS NOT NULL AND o.id_order IS NULL AND c.id_cart NOT IN
|
||||
('.join(',', $this->getLogsEmail(1)).')');
|
||||
WHERE DATE_SUB(CURDATE(),INTERVAL 7 DAY) <= c.date_add AND cu.id_customer IS NOT NULL AND o.id_order IS NULL';
|
||||
|
||||
if(!empty($emailLogs))
|
||||
$sql .= ' AND c.id_cart NOT IN ('.join(',', $emailLogs).')';
|
||||
|
||||
$emails = Db::getInstance()->ExecuteS($sql);
|
||||
|
||||
if ($count OR !sizeof($emails))
|
||||
return sizeof($emails);
|
||||
@@ -339,13 +344,18 @@ class Followup extends Module
|
||||
/* For all validated orders, a discount if re-ordering before x days */
|
||||
private function reOrder($count = false)
|
||||
{
|
||||
$emails = Db::getInstance()->ExecuteS('
|
||||
$emailLogs = $this->getLogsEmail(2);
|
||||
$sql = '
|
||||
SELECT o.id_order, c.id_cart, c.id_lang, cu.id_customer, cu.firstname, cu.lastname, cu.email
|
||||
FROM '._DB_PREFIX_.'orders o
|
||||
LEFT JOIN '._DB_PREFIX_.'customer cu ON (cu.id_customer = o.id_customer)
|
||||
LEFT JOIN '._DB_PREFIX_.'cart c ON (c.id_cart = o.id_cart)
|
||||
WHERE o.valid = 1 AND c.date_add >= DATE_SUB(CURDATE(),INTERVAL 7 DAY) AND o.id_cart NOT IN
|
||||
('.join(',', $this->getLogsEmail(2)).')');
|
||||
WHERE o.valid = 1 AND c.date_add >= DATE_SUB(CURDATE(),INTERVAL 7 DAY) AND o.id_cart';
|
||||
|
||||
if(!empty($emailLogs))
|
||||
$sql .= ' NOT IN ('.join(',', $emailLogs).')';
|
||||
|
||||
$emails = Db::getInstance()->ExecuteS($sql);
|
||||
|
||||
if ($count OR !sizeof($emails))
|
||||
return sizeof($emails);
|
||||
@@ -366,15 +376,23 @@ class Followup extends Module
|
||||
/* For all customers with more than x euros in 90 days */
|
||||
private function bestCustomer($count = false)
|
||||
{
|
||||
$emails = Db::getInstance()->ExecuteS('
|
||||
$emailLogs = $this->getLogsEmail(2);
|
||||
|
||||
$sql = '
|
||||
SELECT SUM(o.total_paid) total, c.id_cart, c.id_lang, cu.id_customer, cu.firstname, cu.lastname, cu.email
|
||||
FROM '._DB_PREFIX_.'orders o
|
||||
LEFT JOIN '._DB_PREFIX_.'customer cu ON (cu.id_customer = o.id_customer)
|
||||
LEFT JOIN '._DB_PREFIX_.'cart c ON (c.id_cart = o.id_cart)
|
||||
WHERE o.valid = 1 AND DATE_SUB(CURDATE(),INTERVAL 90 DAY) <= o.date_add AND cu.id_customer NOT IN
|
||||
('.join(',', $this->getLogsEmail(3)).')
|
||||
WHERE o.valid = 1 AND DATE_SUB(CURDATE(),INTERVAL 90 DAY) <= o.date_add AND cu.id_customer';
|
||||
|
||||
if(!empty($emailLogs))
|
||||
$sql .= ' NOT IN ('.join(',', $emailLogs).')';
|
||||
|
||||
$sql .= '
|
||||
GROUP BY o.id_customer
|
||||
HAVING total >= '.(float)(Configuration::get('PS_FOLLOW_UP_THRESHOLD_3')));
|
||||
HAVING total >= '.(float)(Configuration::get('PS_FOLLOW_UP_THRESHOLD_3'));
|
||||
|
||||
$emails = Db::getInstance()->ExecuteS($sql);
|
||||
|
||||
if ($count OR !sizeof($emails))
|
||||
return sizeof($emails);
|
||||
@@ -403,18 +421,22 @@ class Followup extends Module
|
||||
*/
|
||||
private function badCustomer($count = false)
|
||||
{
|
||||
$emails = Db::getInstance()->ExecuteS('
|
||||
$emailLogs = $this->getLogsEmail(4);
|
||||
$sql = '
|
||||
SELECT c.id_lang, c.id_cart, cu.id_customer, cu.firstname, cu.lastname, cu.email, (SELECT COUNT(o.id_order) FROM '._DB_PREFIX_.'orders o WHERE o.id_customer = cu.id_customer and o.valid = 1) nb_orders
|
||||
FROM '._DB_PREFIX_.'customer cu
|
||||
LEFT JOIN '._DB_PREFIX_.'orders o ON (o.id_customer = cu.id_customer)
|
||||
LEFT JOIN '._DB_PREFIX_.'cart c ON (c.id_cart = o.id_cart)
|
||||
WHERE cu.id_customer NOT IN
|
||||
(SELECT o.id_customer FROM '._DB_PREFIX_.'orders o WHERE DATE_SUB(CURDATE(),INTERVAL '.(int)(Configuration::get('PS_FOLLOW_UP_DAYS_THRESHOLD_4')).' DAY) <= o.date_add)
|
||||
AND cu.id_customer NOT IN
|
||||
('.join(',',$this->getLogsEmail(4)).')
|
||||
GROUP BY cu.id_customer
|
||||
HAVING nb_orders >= 1');
|
||||
(SELECT o.id_customer FROM '._DB_PREFIX_.'orders o WHERE DATE_SUB(CURDATE(),INTERVAL '.(int)(Configuration::get('PS_FOLLOW_UP_DAYS_THRESHOLD_4')).' DAY) <= o.date_add)';
|
||||
|
||||
if(!empty($emailLogs))
|
||||
$sql .= 'AND cu.id_customer NOT IN ('.join(',', $emailLogs).')';
|
||||
|
||||
$sql .= 'GROUP BY cu.id_customer HAVING nb_orders >= 1';
|
||||
|
||||
$emails = Db::getInstance()->ExecuteS($sql);
|
||||
|
||||
if ($count OR !sizeof($emails))
|
||||
return sizeof($emails);
|
||||
|
||||
|
||||
Reference in new issue
Block a user