fix AntAlert checking limits

This commit is contained in:
Marion Muszynski 2017-09-18 11:14:40 +02:00
parent 9c2cce3d0b
commit 7d297ca19b
3 changed files with 32 additions and 18 deletions

View File

@ -55,6 +55,7 @@ class AdminAntAlert extends AdminTab {
} else {
$alert = new AntAlert();
$alert->date_last_sent = date("Y-m-d H:i:s");
$alert->date_last_check = date("Y-m-d H:i:s");
}
$alert->id_contact = (int)Tools::getValue('id_contact');

View File

@ -99,12 +99,18 @@ class Ant_Alert extends Module
SELECT COUNT(*) as total, MIN(ct.`date_add`) as `min_date`
FROM '._DB_PREFIX_.'customer_thread ct
WHERE ct.status = "open"
AND ct.date_add > "'.pSQL($alert->date_last_sent).'"
AND ct.date_add >= "'.pSQL($alert->date_last_check).'"
GROUP BY ct.id_contact HAVING COUNT(*) > 0 AND ct.id_contact ='.(int)$alert->id_contact
);
$date_min = new Datetime($open_messages['min_date']);
$minDiff = $date_min->diff($now);
if ((int)$open_messages['total'] >= (int)$alert->limit && (int)$minDiff->format("%H") >= (int)$alert->hours) {
$hourLimitMin = (int)$alert->hours;
$hourLimitMax = (int)$alert->hours+1;
if (
(int)$open_messages['total'] >= (int)$alert->limit
&& (int)$minDiff->format("%H") >= $hourLimitMin
&& (int)$minDiff->format("%H") <= $hourLimitMax
) {
// dev
//$to = array('marion@antadis.com');
// prod
@ -122,9 +128,13 @@ class Ant_Alert extends Module
foreach ($to as $email) {
if(Mail::Send(2, 'ant_alert', 'Alert error', $data, $email)) {
$alert->date_last_sent = date('Y-m-d H:i:s');
$alert->date_last_check = date('Y-m-d H:i:s');
$alert->save();
}
}
} elseif((int)$open_messages['total'] >= (int)$alert->limit && (int)$minDiff->format("%H") > $hourLimitMax) {
$alert->date_last_check = date('Y-m-d H:i:s');
$alert->save();
}
}
}

View File

@ -11,6 +11,7 @@ class AntAlert extends ObjectModel
public $date_add;
public $date_upd;
public $date_last_sent;
public $date_last_check;
protected $fieldsRequired = array('id_contact','limit','hours');
protected $fieldsValidate = array(
@ -22,6 +23,7 @@ class AntAlert extends ObjectModel
'date_add' => 'isDate',
'date_upd' => 'isDate',
'date_last_sent' => 'isDate',
'date_last_check' => 'isDate',
);
protected $table = 'ant_alert';
@ -40,6 +42,7 @@ class AntAlert extends ObjectModel
$fields['date_add'] = pSQL($this->date_add);
$fields['date_upd'] = pSQL($this->date_upd);
$fields['date_last_sent'] = pSQL($this->date_last_sent);
$fields['date_last_check'] = pSQL($this->date_last_check);
return $fields;
}