diff --git a/controllers/discussions.php b/controllers/discussions.php index d1be75c..127b0da 100755 --- a/controllers/discussions.php +++ b/controllers/discussions.php @@ -85,6 +85,7 @@ 'date' => htmlspecialchars($sended['at']), 'text' => htmlspecialchars($sended['content']), 'type' => 'sended', + 'delivered' => ($sended['delivered'] ? true : false), ); } diff --git a/controllers/internalConsole.php b/controllers/internalConsole.php index cd14c54..a0afaf1 100755 --- a/controllers/internalConsole.php +++ b/controllers/internalConsole.php @@ -239,12 +239,33 @@ //On gère les SMS STOP if (trim($text) == 'STOP') { - echo 'STOP SMS detected ' . $number; + echo 'STOP SMS detected ' . $number . "\n"; $this->wlog('STOP SMS detected ' . $number); $db->insertIntoTable('sms_stop', ['number' => $number]); continue; } + //On gère les accusés de reception + if (trim($text) == 'Delivered') + { + echo 'Delivered SMS for ' . $number . "\n"; + $this->wlog('Delivered SMS for ' . $number); + + //On récupère les SMS par encore validé, uniquement sur les dernières 24h + $now = new DateTime(); + $interval = new DateInterval('P1D'); + $sinceDate = $now->sub($interval)->format('Y-m-d H:i:s'); + + if (!$sendeds = $db->getFromTableWhere('sendeds', ['target' => $number, 'delivered' => false, '>at' => $sinceDate], 'at', false, 1)) + { + continue; + } + + $db->updateTableWhere('sendeds', ['delivered' => true], ['id' => $sendeds[0]['id']]); + echo "Sended SMS id " . $sendeds[0]['id'] . " to delivered status\n"; + continue; + } + if (!$number) { $this->wlog('Invalid phone number in file "' . $dir); diff --git a/createDatabase.sql b/createDatabase.sql index aeecfe6..2586787 100755 --- a/createDatabase.sql +++ b/createDatabase.sql @@ -27,6 +27,7 @@ CREATE TABLE IF NOT EXISTS sendeds at DATETIME NOT NULL, target VARCHAR(12) NOT NULL, content VARCHAR(1000) NOT NULL, + delivered BOOLEAN NOT NULL DEFAULT FALSE, PRIMARY KEY (id) ); diff --git a/templates/discussions/show.php b/templates/discussions/show.php index 5222b1d..4ec68ba 100755 --- a/templates/discussions/show.php +++ b/templates/discussions/show.php @@ -86,7 +86,7 @@ '
' + '
' + '
' + message.text + '
' + - '
' + message.date + '
' + + '
' + message.date + (message.delivered ? ' ' : '' ) + '
' + '
' + '
'; break; diff --git a/templates/sendeds/showAll.php b/templates/sendeds/showAll.php index 63fa145..dffd754 100755 --- a/templates/sendeds/showAll.php +++ b/templates/sendeds/showAll.php @@ -42,6 +42,7 @@ Numéro Message Date + Delivré @@ -54,6 +55,7 @@ +