From 303b85e5badeeed7a820f3755a887f35f39b95d3 Mon Sep 17 00:00:00 2001
From: "florian.azizian" <florian.azizian@maarch.org>
Date: Thu, 29 Mar 2018 17:40:36 +0100
Subject: [PATCH] FIX M2M suivi de demande

---
 .../Controllers/ReadMessageExchangeController.php | 15 ++++++++-------
 modules/sendmail/lang/en.php                      |  4 ++--
 modules/sendmail/lang/fr.php                      |  4 ++--
 modules/sendmail/mail_form.php                    |  6 +++---
 modules/sendmail/messageExchangeList.php          |  2 +-
 5 files changed, 16 insertions(+), 15 deletions(-)

diff --git a/modules/sendmail/Controllers/ReadMessageExchangeController.php b/modules/sendmail/Controllers/ReadMessageExchangeController.php
index f1e635598fa..9b1c3f70bb0 100644
--- a/modules/sendmail/Controllers/ReadMessageExchangeController.php
+++ b/modules/sendmail/Controllers/ReadMessageExchangeController.php
@@ -32,11 +32,10 @@ class ReadMessageExchangeController
         $unitIdentifierData         = $RequestSeda->getUnitIdentifierByMessageId($aArgs['id']);
         $aDataForm['reference']     = $messageExchangeData->reference;
         $messageReview              = $RequestSeda->getMessagesByReferenceByDate($aDataForm['reference'].'_Notification');
-        if (!empty($messageReview)) {
-            foreach ($messageReview as $value) {
-                $oMessageReview = json_decode($value['data']);
-                $aDataForm['messageReview'][] = $oMessageReview->Comment[0]->value;
-            }
+
+        while ($res = $messageReview->fetchObject()) {
+            $oMessageReview = json_decode($res->data);
+            $aDataForm['messageReview'][] = $oMessageReview->Comment[0]->value;
         }
         
         $request                    = new request();
@@ -45,10 +44,12 @@ class ReadMessageExchangeController
         $aDataForm['operationDate'] = $request->dateformat($messageExchangeData->operation_date);
         $aDataForm['type']          = $messageExchangeData->type;
 
-        if (!empty($aDataForm['operationDate'])) {
+        if (!empty($aDataForm['receptionDate'])) {
             $reference = $aDataForm['reference'].'_Reply';
-        } elseif ($aDataForm['type'] == 'ArchiveTransferReplySent') {
+            $aDataForm['type'] = 'ArchiveTransfer';
+        } elseif ($aDataForm['type'] == 'ArchiveTransferReply') {
             $reference = $aDataForm['reference'];
+            $aDataForm['type'] = 'ArchiveTransferReplySent';
         }
 
         if (!empty($reference)) {
diff --git a/modules/sendmail/lang/en.php b/modules/sendmail/lang/en.php
index 984523d6298..37836ab0dac 100755
--- a/modules/sendmail/lang/en.php
+++ b/modules/sendmail/lang/en.php
@@ -178,8 +178,8 @@ if (!defined("_REPLY_RESPONSE_SENT"))
     define("_REPLY_RESPONSE_SENT", "Reply sent on");
 if (!defined("_M2M_ARCHIVETRANSFER"))
     define("_M2M_ARCHIVETRANSFER", "Archive transfer");
-if (!defined("_M2M_ARCHIVETRANSFERREPLYSENT"))
-    define("_M2M_ARCHIVETRANSFERREPLYSENT", "Archive transfer reply");
+if (!defined("_M2M_ARCHIVETRANSFERREPLY"))
+    define("_M2M_ARCHIVETRANSFERREPLY", "Archive transfer reply");
 if (!defined("_M2M_ACTION_DONE"))
     define("_M2M_ACTION_DONE", "done by");
 if (!defined("_M2M_ENTITY_DESTINATION"))
diff --git a/modules/sendmail/lang/fr.php b/modules/sendmail/lang/fr.php
index bef1e3b4edd..5a9785dad17 100755
--- a/modules/sendmail/lang/fr.php
+++ b/modules/sendmail/lang/fr.php
@@ -179,8 +179,8 @@ if (!defined("_REPLY_RESPONSE_SENT"))
     define("_REPLY_RESPONSE_SENT", "Accusé de prise en charge envoyé le");
 if (!defined("_M2M_ARCHIVETRANSFER"))
     define("_M2M_ARCHIVETRANSFER", "Pli numérique");
-if (!defined("_M2M_ARCHIVETRANSFERREPLYSENT"))
-    define("_M2M_ARCHIVETRANSFERREPLYSENT", "Réponse envoyée");
+if (!defined("_M2M_ARCHIVETRANSFERREPLY"))
+    define("_M2M_ARCHIVETRANSFERREPLY", "Réponse envoyée");
 if (!defined("_M2M_ACTION_DONE"))
     define("_M2M_ACTION_DONE", "actionné par");
 if (!defined("_M2M_ENTITY_DESTINATION"))
diff --git a/modules/sendmail/mail_form.php b/modules/sendmail/mail_form.php
index d0f4442f087..76d06c6ca2a 100755
--- a/modules/sendmail/mail_form.php
+++ b/modules/sendmail/mail_form.php
@@ -1334,8 +1334,6 @@ if ($mode == 'add') {
             if (!empty($emailArray['receptionDate'])) {
                 $content .='<br><hr style="margin-top:2px;" />';
                 $content .= '<b>'._RECEPTION_DATE.' : </b>' . $emailArray['receptionDate'].'<br><br>';
-            }
-            if (!empty($emailArray['operationDate'])) {
                 $content .= '<div onclick="new Effect.toggle(\'operationCommentsDiv\', \'blind\', {delay:0.2});" onmouseover="this.style.cursor=\'pointer\';">
                                 <span id="divStatus_operationComments" style="color:#1C99C5;"><i class="fa fa-plus-square-o"></i></span>&nbsp;'._MORE_INFORMATIONS.'
                             </div>';
@@ -1343,6 +1341,8 @@ if ($mode == 'add') {
                 foreach ($emailArray['operationComments'] as $value) {
                     $content .= $value->value.'<br>';
                 }
+            }
+            if (!empty($emailArray['operationDate'])) {
                 $content .= '</div><br>';
                 $content .= '<b>'._OPERATION_DATE.' : </b>' . $emailArray['operationDate'].'<br><br>';
             }
@@ -1366,7 +1366,7 @@ if ($mode == 'add') {
             $content .= '<b>'._REPLY_RESPONSE_SENT.' : </b>' . $emailArray['creationDate'].'<br><br>';
 
             foreach ($emailArray['operationComments'] as $value) {
-                $content .= $value.'<br>';
+                $content .= $value->value.'<br>';
             }
 
             //Buttons
diff --git a/modules/sendmail/messageExchangeList.php b/modules/sendmail/messageExchangeList.php
index e30817d97cf..8e9f6545695 100644
--- a/modules/sendmail/messageExchangeList.php
+++ b/modules/sendmail/messageExchangeList.php
@@ -12,7 +12,7 @@ $select["message_exchange"] = [];
     $where_tab = array();
     //
     $where_tab[] = " res_id_master = ? ";
-    $where_tab[] = " type in ('ArchiveTransfer', 'ArchiveTransferReplySent') ";
+    $where_tab[] = " (type = 'ArchiveTransfer' or reference like '%_ReplySent')";
 
     //Build where
     $where = implode(' and ', $where_tab);
-- 
GitLab