From 5373f0ae9771be41da2fe442e69b60cebd749720 Mon Sep 17 00:00:00 2001
From: Damien <damien.burel@maarch.org>
Date: Tue, 12 Feb 2019 11:42:12 +0100
Subject: [PATCH] FEAT #9156 recommendation_limit_date => opinion_limit_date

---
 .../avis/class/avis_controler_Abstract.php    | 14 +++---
 modules/avis/documents_list_with_avis.php     |  8 ++--
 modules/avis/js/functions.js                  | 34 ++++---------
 modules/avis/lang/en.php                      |  8 +---
 modules/avis/lang/fr.php                      |  8 +---
 modules/avis/lang/nl.php                      |  7 +--
 modules/avis/send_docs_to_recommendation.php  | 24 +++++-----
 modules/avis/send_to_avis.php                 | 47 ++++--------------
 modules/avis/validate_recommendation.php      | 48 ++++---------------
 modules/export_seda/export_seda_list.php      | 15 ++----
 .../visa/documents_list_with_signatory.php    |  8 ++--
 sql/develop.sql                               | 15 +++++-
 sql/structure.sql                             |  4 +-
 .../resource/controllers/ExportController.php |  2 +-
 .../resource/controllers/StoreController.php  |  2 +-
 .../app/list/export/export.component.ts       |  4 +-
 src/frontend/lang/lang-en.ts                  |  1 -
 src/frontend/lang/lang-fr.ts                  |  1 -
 src/frontend/lang/lang-nl.ts                  |  1 -
 19 files changed, 83 insertions(+), 168 deletions(-)

diff --git a/modules/avis/class/avis_controler_Abstract.php b/modules/avis/class/avis_controler_Abstract.php
index cb61ff1dcc1..36333cfd090 100755
--- a/modules/avis/class/avis_controler_Abstract.php
+++ b/modules/avis/class/avis_controler_Abstract.php
@@ -19,7 +19,7 @@ abstract class avis_controler_Abstract
         //define avis limit date
         $db = new Database();
 
-        $query = "SELECT notes.user_id,notes.note_text,recommendation_limit_date FROM notes,mlb_coll_ext WHERE identifier = ? AND note_text LIKE '[POUR AVIS]%' AND notes.identifier=mlb_coll_ext.res_id";
+        $query = "SELECT notes.user_id,notes.note_text, opinion_limit_date FROM notes,mlb_coll_ext WHERE identifier = ? AND note_text LIKE '[POUR AVIS]%' AND notes.identifier = res_letterbox.res_id";
 
         $stmt = $db->query($query, array($resId));
 
@@ -32,25 +32,25 @@ abstract class avis_controler_Abstract
     //# send avis
     //####################################
 
-    public function processAvis($resId, $recommendation_limit_date = '')
+    public function processAvis($resId, $opinionLimitDate = '')
     {
         //define avis limit date
         $db = new Database();
 
-        if ($recommendation_limit_date != '') {
-            $query = 'UPDATE mlb_coll_ext SET recommendation_limit_date = ? where res_id = ?';
-            $stmt = $db->query($query, array($recommendation_limit_date, $resId));
+        if ($opinionLimitDate != '') {
+            $query = 'UPDATE res_letterbox SET opinion_limit_date = ? where res_id = ?';
+            $db->query($query, array($opinionLimitDate, $resId));
         }
 
         $query = 'UPDATE res_letterbox SET modification_date = '.$db->current_datetime().' where res_id = ?';
-        $stmt = $db->query($query, array($resId));
+        $db->query($query, array($resId));
     }
 
     public function getList($res_id, $coll_id, $bool_modif = false, $typeList, $isAvisStep = false, $fromDetail = '')
     {
         $circuit = $this->getWorkflow($res_id, $coll_id, $typeList);
 
-        $str .= '<div class="error" id="divErrorAvis" onclick="this.hide();"></div>';
+        $str = '<div class="error" id="divErrorAvis" onclick="this.hide();"></div>';
         $str .= '<div class="info" id="divInfoAvis" onclick="this.hide();"></div>';
 
         //AVIS USER LIST
diff --git a/modules/avis/documents_list_with_avis.php b/modules/avis/documents_list_with_avis.php
index 134abf42167..f02ba612758 100755
--- a/modules/avis/documents_list_with_avis.php
+++ b/modules/avis/documents_list_with_avis.php
@@ -95,7 +95,7 @@ array_push(
     $select[$table], 'res_id', 'status', 'category_id as category_img',
     'contact_firstname', 'contact_lastname', 'contact_society', 'user_lastname',
     'user_firstname', 'priority', 'creation_date', 'modification_date', 'admission_date', 'subject',
-    'process_limit_date', 'recommendation_limit_date', 'entity_label', 'dest_user', 'category_id', 'type_label',
+    'process_limit_date', 'opinion_limit_date', 'entity_label', 'dest_user', 'category_id', 'type_label',
     'exp_user_id', 'doc_custom_n1 as count_attachment', 'alt_identifier', 'is_multicontacts', 'locker_user_id', 'locker_time', 'address_id', 'filename', 'res_id as real_dest'
 );
 
@@ -320,15 +320,15 @@ for ($i = 0; $i < $tabI; ++$i) {
                 $tab[$i][$j]['show'] = true;
                 $tab[$i][$j]['order'] = 'process_limit_date';
             }
-            if ($tab[$i][$j][$value] == 'recommendation_limit_date') {
+            if ($tab[$i][$j][$value] == 'opinion_limit_date') {
                 $tab[$i][$j]['value'] = $core_tools->format_date_db($tab[$i][$j]['value'], false);
-                $tab[$i][$j]['label'] = _RECOMMENDATION_LIMIT_DATE;
+                $tab[$i][$j]['label'] = _OPINION_LIMIT_DATE;
                 $tab[$i][$j]['size'] = '10';
                 $tab[$i][$j]['label_align'] = 'left';
                 $tab[$i][$j]['align'] = 'left';
                 $tab[$i][$j]['valign'] = 'bottom';
                 $tab[$i][$j]['show'] = false;
-                $tab[$i][$j]['order'] = 'recommendation_limit_date';
+                $tab[$i][$j]['order'] = 'opinion_limit_date';
             }
             if ($tab[$i][$j][$value] == 'category_id') {
                 $_SESSION['mlb_search_current_category_id'] = $tab[$i][$j]['value'];
diff --git a/modules/avis/js/functions.js b/modules/avis/js/functions.js
index 10a2c18c19d..47438752725 100755
--- a/modules/avis/js/functions.js
+++ b/modules/avis/js/functions.js
@@ -290,30 +290,13 @@ function initDragNDropAvis() {
 
 function checkRealDateAvis() {
 
-    var docDate;
     var processLimitDate;
     var avisLimitDate;
 
-    var nowDate = new Date();
-    var date3 = new Date();
-
     var current_date = Date.now();
 
-
-
-    /* if($('doc_date')) {
-     docDate = $('doc_date').value;
-     var date2 = new Date();
-     date2.setFullYear(docDate.substr(6,4));
-     date2.setMonth(docDate.substr(3,2));
-     date2.setDate(docDate.substr(0,2));
-     date2.setHours(0);
-     date2.setMinutes(0);
-     var d2_docDate=date2.getTime();
-     } */
-
-    if ($('process_limit_date')) {
-        processLimitDate = $('process_limit_date').value;
+    if ($j('#process_limit_date')) {
+        processLimitDate = $j('#process_limit_date').val();
         var date4 = new Date();
         date4.setFullYear(processLimitDate.substr(6, 4));
         date4.setMonth(processLimitDate.substr(3, 2) - 1);
@@ -325,8 +308,8 @@ function checkRealDateAvis() {
     }
 
 
-    if ($('recommendation_limit_date')) {
-        avisLimitDate = $('recommendation_limit_date_tr').value;
+    if ($j('#opinion_limit_date')) {
+        avisLimitDate = $j('opinion_limit_date_tr').val();
         var date5 = new Date();
         date5.setFullYear(avisLimitDate.substr(6, 4));
         date5.setMonth(avisLimitDate.substr(3, 2) - 1);
@@ -340,15 +323,14 @@ function checkRealDateAvis() {
 
     if (d4_processLimitDate != "" && avisLimitDate != "" && (d5_avisLimitDate > d4_processLimitDate && d4_processLimitDate > current_date)) {
         alert("La date limite d'avis doit être antérieure à la date limite du courrier ");
-        $('recommendation_limit_date').value = "";
-        $('recommendation_limit_date_tr').value = "";
+        $j('#opinion_limit_date').val("");
+        $j('#opinion_limit_date_tr').val("");
 
     }
 
     if (current_date > d5_avisLimitDate && avisLimitDate != "") {
         alert("La date d'avis doit être supérieure à la date du jour ");
-        $('recommendation_limit_date').value = "";
-        $('recommendation_limit_date_tr').value = "";
-
+        $j('#opinion_limit_date').val("");
+        $j('#opinion_limit_date_tr').val("");
     }
 }
diff --git a/modules/avis/lang/en.php b/modules/avis/lang/en.php
index 818598cada1..c149f754062 100755
--- a/modules/avis/lang/en.php
+++ b/modules/avis/lang/en.php
@@ -35,16 +35,12 @@ if (!defined("_RECOMMENDATION_USER")) {
     define("_RECOMMENDATION_USER", "Person for recommendation");
 }
 
-if (!defined("_RECOMMENDATION_USER")) {
-    define("_RECOMMENDATION_USER", "Users for recommendation");
-}
-
 if (!defined("_RECOMMENDATION_NOTE")) {
     define("_RECOMMENDATION_NOTE", "Recommendation pattern");
 }
 
-if (!defined("_RECOMMENDATION_LIMIT_DATE")) {
-    define("_RECOMMENDATION_LIMIT_DATE", "Recommendation deadline");
+if (!defined("_OPINION_LIMIT_DATE")) {
+    define("_OPINION_LIMIT_DATE", "Recommendation deadline");
 }
 
 if (!defined("_TO_AVIS")) {
diff --git a/modules/avis/lang/fr.php b/modules/avis/lang/fr.php
index b75d57f772a..29c767cc39d 100755
--- a/modules/avis/lang/fr.php
+++ b/modules/avis/lang/fr.php
@@ -43,16 +43,12 @@ if (!defined("_RECOMMENDATION_USER")) {
     define("_RECOMMENDATION_USER", "Personne pour avis");
 }
 
-if (!defined("_RECOMMENDATION_USER")) {
-    define("_RECOMMENDATION_USER", "Utilisateurs pour avis");
-}
-
 if (!defined("_RECOMMENDATION_NOTE")) {
     define("_RECOMMENDATION_NOTE", "Motif de l'avis");
 }
 
-if (!defined("_RECOMMENDATION_LIMIT_DATE")) {
-    define("_RECOMMENDATION_LIMIT_DATE", "Date limite de l'avis");
+if (!defined("_OPINION_LIMIT_DATE")) {
+    define("_OPINION_LIMIT_DATE", "Date limite de l'avis");
 }
 
 if (!defined("_TO_AVIS")) {
diff --git a/modules/avis/lang/nl.php b/modules/avis/lang/nl.php
index 3110e96bfae..36de332272e 100755
--- a/modules/avis/lang/nl.php
+++ b/modules/avis/lang/nl.php
@@ -37,14 +37,11 @@ if (!defined('_AVIS_USER_INFO')) {
 if (!defined('_RECOMMENDATION_USER')) {
     define('_RECOMMENDATION_USER', 'Persoon voor bericht');
 }
-if (!defined('_RECOMMENDATION_USER')) {
-    define('_RECOMMENDATION_USER', 'Gebruikers voor bericht');
-}
 if (!defined('_RECOMMENDATION_NOTE')) {
     define('_RECOMMENDATION_NOTE', 'Woord');
 }
-if (!defined('_RECOMMENDATION_LIMIT_DATE')) {
-    define('_RECOMMENDATION_LIMIT_DATE', 'Berichtendeadline');
+if (!defined('_OPINION_LIMIT_DATE')) {
+    define('_OPINION_LIMIT_DATE', 'Berichtendeadline');
 }
 if (!defined('_TO_AVIS')) {
     define('_TO_AVIS', 'VOOR BERICHT');
diff --git a/modules/avis/send_docs_to_recommendation.php b/modules/avis/send_docs_to_recommendation.php
index e3063979392..f6243f25a35 100755
--- a/modules/avis/send_docs_to_recommendation.php
+++ b/modules/avis/send_docs_to_recommendation.php
@@ -148,10 +148,10 @@ function get_form_txt($values, $path_manage_action,  $id_action, $table, $module
         }
     }
 
-    $frm_str .='<b>'._RECOMMENDATION_LIMIT_DATE.' <span class="red_asterisk"><i class="fa fa-star"></i></span> :</b> <br/>';
-    $frm_str .= '<input name="recommendation_limit_date_tr" type="text" '
-        . 'id="recommendation_limit_date_tr" value="" placeholder="JJ-MM-AAAA" onfocus="checkRealDateAvis();" onChange="checkRealDateAvis();"  onclick="clear_error(\'frm_error_'
-        . $actionId . '\');showCalender(this);"  onblur="document.getElementById(\'recommendation_limit_date\').value=document.getElementById(\'recommendation_limit_date_tr\').value;"/>';
+    $frm_str .='<b>'._OPINION_LIMIT_DATE.' <span class="red_asterisk"><i class="fa fa-star"></i></span> :</b> <br/>';
+    $frm_str .= '<input name="opinion_limit_date_tr" type="text" '
+        . 'id="opinion_limit_date_tr" value="" placeholder="JJ-MM-AAAA" onfocus="checkRealDateAvis();" onChange="checkRealDateAvis();"  onclick="clear_error(\'frm_error_'
+        . $actionId . '\');showCalender(this);"  onblur="document.getElementById(\'opinion_limit_date\').value=document.getElementById(\'opinion_limit_date_tr\').value;"/>';
     $frm_str .='<br/>';
     $frm_str .='<br/><b>'._RECOMMENDATION_NOTE.' :</b><br/>';
     $frm_str .= '<select name="templateNotes" id="templateNotes" style="width:98%;margin-bottom: 10px;background-color: White;border: 1px solid #999;color: #666;text-align: left;" '
@@ -178,7 +178,7 @@ function get_form_txt($values, $path_manage_action,  $id_action, $table, $module
     $frm_str .= '<form name="frm_redirect_dep" id="frm_redirect_dep" method="post" class="forms" action="#">';
     $frm_str .= '<input type="hidden" name="chosen_action" id="chosen_action" value="end_action" />';
     $frm_str .= '<input type="hidden" name="note_content_to_users" id="note_content_to_users" />';
-    $frm_str .= '<input type="hidden" name="recommendation_limit_date" id="recommendation_limit_date" />';
+    $frm_str .= '<input type="hidden" name="opinion_limit_date" id="opinion_limit_date" />';
             $frm_str .='<p>';
                 $frm_str .='<div style="clear:both;"></div>';
             $frm_str .= '<div id="diff_list_div_redirect" class="scroll_div" style="height:auto;"></div>';
@@ -202,9 +202,9 @@ function check_form($form_id,$values)
        return false;
        }
    }
-   $recommendation_limit_date = get_value_fields($values, 'recommendation_limit_date');
-   if ($recommendation_limit_date == null || $recommendation_limit_date == '') {
-       $_SESSION['action_error'] = _RECOMMENDATION_LIMIT_DATE. " " . _MANDATORY;
+   $opinionLimitDate = get_value_fields($values, 'opinion_limit_date');
+   if ($opinionLimitDate == null || $opinionLimitDate == '') {
+       $_SESSION['action_error'] = _OPINION_LIMIT_DATE. " " . _MANDATORY;
        return false;
    }
 
@@ -214,11 +214,11 @@ function check_form($form_id,$values)
         return false;
     }
 
-    $d = DateTime::createFromFormat('d-m-Y', $recommendation_limit_date);
+    $d = DateTime::createFromFormat('d-m-Y', $opinionLimitDate);
 
-    if ($d && $d->format('d-m-Y') === $recommendation_limit_date) {
+    if ($d && $d->format('d-m-Y') === $opinionLimitDate) {
     } else {
-        $_SESSION['action_error'] = _RECOMMENDATION_LIMIT_DATE. " " . _WRONG_FORMAT;
+        $_SESSION['action_error'] = _OPINION_LIMIT_DATE. " " . _WRONG_FORMAT;
         return false;
     }
 
@@ -355,7 +355,7 @@ function manage_form($arr_id, $history, $id_action, $label_action, $status, $col
         $note->addNote($res_id, $coll_id, $content_note);
         
     }
-    $avis->processAvis($res_id, $formValues['recommendation_limit_date']);
+    $avis->processAvis($res_id, $formValues['opinion_limit_date']);
     //Save listinstance
     $diffList->save_listinstance(
         $new_difflist, 
diff --git a/modules/avis/send_to_avis.php b/modules/avis/send_to_avis.php
index dab11754359..f9a5e8094af 100755
--- a/modules/avis/send_to_avis.php
+++ b/modules/avis/send_to_avis.php
@@ -110,10 +110,10 @@ function get_form_txt($values, $path_manage_action, $id_action, $table, $module,
     } else {
         $templates = $templatesControler->getAllTemplatesForSelect();
     }
-    $frm_str .='<b>' . _RECOMMENDATION_LIMIT_DATE . ':</b><br/>';
-    $frm_str .= '<input name="recommendation_limit_date_tr" type="text" '
-            . 'id="recommendation_limit_date_tr" value="" placeholder="JJ-MM-AAAA" onfocus="checkRealDateAvis();" onChange="checkRealDateAvis();"  onclick="clear_error(\'frm_error_'
-            . $actionId . '\');showCalender(this);"  onblur="document.getElementById(\'recommendation_limit_date\').value=document.getElementById(\'recommendation_limit_date_tr\').value;"/>';
+    $frm_str .='<b>' . _OPINION_LIMIT_DATE . ':</b><br/>';
+    $frm_str .= '<input name="opinion_limit_date_tr" type="text" '
+            . 'id="opinion_limit_date_tr" value="" placeholder="JJ-MM-AAAA" onfocus="checkRealDateAvis();" onChange="checkRealDateAvis();"  onclick="clear_error(\'frm_error_'
+            . $actionId . '\');showCalender(this);"  onblur="document.getElementById(\'opinion_limit_date\').value=document.getElementById(\'opinion_limit_date_tr\').value;"/>';
     $frm_str .='<br/>';
     $frm_str .='<br/><b>' . _RECOMMENDATION_NOTE . ':</b><br/>';
     $frm_str .= '<select name="templateNotes" id="templateNotes" style="width:98%;margin-bottom: 10px;background-color: White;border: 1px solid #999;color: #666;text-align: left;" '
@@ -144,7 +144,7 @@ function get_form_txt($values, $path_manage_action, $id_action, $table, $module,
     $frm_str .= '<form name="frm_redirect_dep" id="frm_redirect_dep" method="post" class="forms" action="#">';
     $frm_str .= '<input type="hidden" name="chosen_action" id="chosen_action" value="end_action" />';
     $frm_str .= '<input type="hidden" name="note_content_to_users" id="note_content_to_users" />';
-    $frm_str .= '<input type="hidden" name="recommendation_limit_date" id="recommendation_limit_date" />';
+    $frm_str .= '<input type="hidden" name="opinion_limit_date" id="opinion_limit_date" />';
     $frm_str .= '<input type="hidden" name="doc_date" id="doc_date" value ="' . $data['doc_date'] . '"/>';
     $frm_str .= '<input type="hidden" name="process_limit_date" id="process_limit_date" value ="' . $data['process_limit_date'] . '" />';
     $frm_str .='</form>';
@@ -160,12 +160,11 @@ function get_form_txt($values, $path_manage_action, $id_action, $table, $module,
 
 function check_form($form_id, $values)
 {
-    //var_dump($values);
-    $recommendation_limit_date = get_value_fields($values, 'recommendation_limit_date');
+    $opinionLimitDate = get_value_fields($values, 'opinion_limit_date');
     $note_content_to_users = get_value_fields($values, 'note_content_to_users');
 
-    if ($recommendation_limit_date == null || $recommendation_limit_date == '') {
-        $_SESSION['action_error'] = _RECOMMENDATION_LIMIT_DATE . " " . _MANDATORY;
+    if ($opinionLimitDate == null || $opinionLimitDate == '') {
+        $_SESSION['action_error'] = _OPINION_LIMIT_DATE . " " . _MANDATORY;
         return false;
     } else if ($note_content_to_users == null || $note_content_to_users == '') {
         $_SESSION['action_error'] = _NOTE . " " . _MANDATORY;
@@ -180,35 +179,7 @@ function check_form($form_id, $values)
         $_SESSION['action_error'] = _AVIS_WORKFLOW . " " . _MANDATORY;
         return false;
     }
-    /* if($form_id == 'frm_redirect_dep') {
-      $dep = get_value_fields($values, 'department');
-      if($dep == '') {
-      $_SESSION['action_error'] = _MUST_CHOOSE_DEP;
-      return false;
-      } else if (empty($_SESSION['redirect']['diff_list']['dest']['users'][0])
-      || ! isset($_SESSION['redirect']['diff_list']['dest']['users'][0])
-      ) {
-      $_SESSION['action_error'] = _DEST
-      . " " . _MANDATORY;
-      return false;
-      } else {
-      return true;
-      }
-      } else if($form_id == 'frm_redirect_user') {
-      $user = get_value_fields($values, 'user');
-      if($user == '')
-      {
-      $_SESSION['action_error'] = _MUST_CHOOSE_USER;
-      return false;
-      }
-      else
-      {
-      return true;
-      }
-      } else {
-      $_SESSION['action_error'] = _FORM_ERROR;
-      return false;
-      } */
+
     return true;
 }
 
diff --git a/modules/avis/validate_recommendation.php b/modules/avis/validate_recommendation.php
index 1aa8a292fd8..19e53665eca 100755
--- a/modules/avis/validate_recommendation.php
+++ b/modules/avis/validate_recommendation.php
@@ -105,10 +105,10 @@ function get_form_txt($values, $path_manage_action,  $id_action, $table, $module
         $_SESSION['redirect']['diff_list']['avis_info'] = $_SESSION['process']['diff_list']['avis_info'];
     }  
          
-    $frm_str .='<b>'._RECOMMENDATION_LIMIT_DATE.':</b><br/>';
-    $frm_str .= '<input name="recommendation_limit_date_tr" type="text" '
-        . 'id="recommendation_limit_date_tr" value="'.functions::format_date_db($avisContent->recommendation_limit_date).'" placeholder="JJ-MM-AAAA" onfocus="checkRealDateAvis();" onChange="checkRealDateAvis();"  onclick="clear_error(\'frm_error_'
-        . $actionId . '\');showCalender(this);"  onblur="document.getElementById(\'recommendation_limit_date\').value=document.getElementById(\'recommendation_limit_date_tr\').value;"/>';
+    $frm_str .='<b>'._OPINION_LIMIT_DATE.':</b><br/>';
+    $frm_str .= '<input name="opinion_limit_date_tr" type="text" '
+        . 'id="opinion_limit_date_tr" value="'.functions::format_date_db($avisContent->opinion_limit_date).'" placeholder="JJ-MM-AAAA" onfocus="checkRealDateAvis();" onChange="checkRealDateAvis();"  onclick="clear_error(\'frm_error_'
+        . $actionId . '\');showCalender(this);"  onblur="document.getElementById(\'opinion_limit_date\').value=document.getElementById(\'opinion_limit_date_tr\').value;"/>';
     $frm_str .='<br/>';
     /*$frm_str .='<br/><b>'._RECOMMENDATION_NOTE.':</b><br/>';
     $frm_str .= '<select name="templateNotes" id="templateNotes" style="width:98%;margin-bottom: 10px;background-color: White;border: 1px solid #999;color: #666;text-align: left;" '
@@ -138,7 +138,7 @@ function get_form_txt($values, $path_manage_action,  $id_action, $table, $module
         $frm_str .= '<input type="hidden" name="chosen_action" id="chosen_action" value="end_action" />';
         $frm_str .= '<input type="hidden" name="note_content_to_users" id="note_content_to_users" value="'.$avisContent->note_text.'" />';
         $frm_str .= '<input type="hidden" name="note_content_to_users_origin" id="note_content_to_users_origin" value="'.$avisContent->note_text.'" />';
-        $frm_str .= '<input type="hidden" name="recommendation_limit_date" id="recommendation_limit_date" value="'.$avisContent->recommendation_limit_date.'" />';
+        $frm_str .= '<input type="hidden" name="opinion_limit_date" id="opinion_limit_date" value="'.$avisContent->opinion_limit_date.'" />';
                 $frm_str .='<p>';
                     $frm_str .='<div style="clear:both;"></div>';
                 $frm_str .= '<div id="diff_list_div_redirect" class="scroll_div" style="height:auto;"></div>';
@@ -163,40 +163,12 @@ function check_form($form_id,$values)
             return false;
         }
     }
-    $recommendation_limit_date = get_value_fields($values, 'recommendation_limit_date');
-    if ($recommendation_limit_date == null || $recommendation_limit_date == '') {
-        $_SESSION['action_error'] = _RECOMMENDATION_LIMIT_DATE. " " . _MANDATORY;
+    $opinionLimitDate = get_value_fields($values, 'opinion_limit_date');
+    if ($opinionLimitDate == null || $opinionLimitDate == '') {
+        $_SESSION['action_error'] = _OPINION_LIMIT_DATE. " " . _MANDATORY;
         return false;
     }
-    /*if($form_id == 'frm_redirect_dep') {
-        $dep = get_value_fields($values, 'department');
-        if($dep == '') {
-            $_SESSION['action_error'] = _MUST_CHOOSE_DEP;
-            return false;
-        } else if (empty($_SESSION['redirect']['diff_list']['dest']['users'][0])
-                || ! isset($_SESSION['redirect']['diff_list']['dest']['users'][0])
-            ) {
-                $_SESSION['action_error'] = _DEST
-                    . " " . _MANDATORY;
-                return false;
-        } else {
-            return true;
-        }
-    } else if($form_id == 'frm_redirect_user') {
-        $user = get_value_fields($values, 'user');
-        if($user == '')
-        {
-            $_SESSION['action_error'] = _MUST_CHOOSE_USER;
-            return false;
-        }
-        else
-        {
-            return true;
-        }
-    } else {
-        $_SESSION['action_error'] = _FORM_ERROR;
-        return false;
-    }*/
+
     return true;
 }
 
@@ -329,7 +301,7 @@ function manage_form($arr_id, $history, $id_action, $label_action, $status, $col
         $avis->UpdateNoteAvis($res_id, $coll_id, $content_note);
         
     //}
-    $avis->processAvis($res_id, $formValues['recommendation_limit_date']);
+    $avis->processAvis($res_id, $formValues['opinion_limit_date']);
     //Save listinstance
     $diffList->save_listinstance(
         $new_difflist, 
diff --git a/modules/export_seda/export_seda_list.php b/modules/export_seda/export_seda_list.php
index 67d53352524..4c6be66e7a9 100755
--- a/modules/export_seda/export_seda_list.php
+++ b/modules/export_seda/export_seda_list.php
@@ -92,19 +92,12 @@ $_SESSION['collection_id_choice'] = $_SESSION['current_basket']['coll_id']; //Co
 $select[$table] = array();
 
 //Fields
-/*array_push(
-    $select[$table], "res_id", "status", "category_id as category_img",
-    "contact_firstname", "contact_lastname", "contact_society", "user_lastname",
-    "user_firstname", "priority", "creation_date", 'modification_date', "admission_date", "date_current_use", "subject",
-    "process_limit_date", 'recommendation_limit_date', "entity_label", "dest_user", "category_id", "type_label",
-    "exp_user_id", "count_attachment", "alt_identifier", "is_multicontacts", "locker_user_id", "locker_time", "address_id"
-);*/
 
 array_push(
     $select[$table], 'res_id', 'status', 'category_id as category_img',
     'contact_firstname', 'contact_lastname', 'contact_society', 'user_lastname',
     'user_firstname', 'priority', 'creation_date', 'modification_date', 'admission_date', 'subject',
-    'process_limit_date', 'recommendation_limit_date', 'entity_label', 'dest_user', 'category_id', 'type_label',
+    'process_limit_date', 'opinion_limit_date', 'entity_label', 'dest_user', 'category_id', 'type_label',
     'exp_user_id', 'count_attachment', 'alt_identifier', 'is_multicontacts', 'locker_user_id', 'locker_time', 'address_id'
 );
 
@@ -307,15 +300,15 @@ for ($i = 0; $i < $tabI; ++$i) {
                 $tab[$i][$j]['show'] = true;
                 $tab[$i][$j]['order'] = 'process_limit_date';
             }
-            if ($tab[$i][$j][$value] == 'recommendation_limit_date') {
+            if ($tab[$i][$j][$value] == 'opinion_limit_date') {
                 $tab[$i][$j]['value'] = $core_tools->format_date_db($tab[$i][$j]['value'], false);
-                $tab[$i][$j]['label'] = _RECOMMENDATION_LIMIT_DATE;
+                $tab[$i][$j]['label'] = _OPINION_LIMIT_DATE;
                 $tab[$i][$j]['size'] = '10';
                 $tab[$i][$j]['label_align'] = 'left';
                 $tab[$i][$j]['align'] = 'left';
                 $tab[$i][$j]['valign'] = 'bottom';
                 $tab[$i][$j]['show'] = false;
-                $tab[$i][$j]['order'] = 'recommendation_limit_date';
+                $tab[$i][$j]['order'] = 'opinion_limit_date';
             }
             if ($tab[$i][$j][$value] == 'category_id') {
                 $_SESSION['mlb_search_current_category_id'] = $tab[$i][$j]['value'];
diff --git a/modules/visa/documents_list_with_signatory.php b/modules/visa/documents_list_with_signatory.php
index b0d7774b94e..f00e0f990a0 100755
--- a/modules/visa/documents_list_with_signatory.php
+++ b/modules/visa/documents_list_with_signatory.php
@@ -93,7 +93,7 @@ $select[$table] = array();
 array_push(
     $select[$table], 'res_id', 'status', 'category_id as category_img',
     'contact_firstname', 'priority', 'creation_date', 'modification_date', 'admission_date', 'subject',
-    'process_limit_date', 'recommendation_limit_date', 'entity_label', 'dest_user', 'category_id', 'type_label', 'doc_custom_n1 as count_attachment', 'alt_identifier', 'locker_user_id', 'locker_time', 'address_id', 'res_id as signatory_user', 'filename', 'res_id as real_dest'
+    'process_limit_date', 'opinion_limit_date', 'entity_label', 'dest_user', 'category_id', 'type_label', 'doc_custom_n1 as count_attachment', 'alt_identifier', 'locker_user_id', 'locker_time', 'address_id', 'res_id as signatory_user', 'filename', 'res_id as real_dest'
 );
 
 if ($core_tools->is_module_loaded('cases') == true) {
@@ -325,15 +325,15 @@ for ($i = 0; $i < $tabI; ++$i) {
                 $tab[$i][$j]['show'] = true;
                 $tab[$i][$j]['order'] = 'process_limit_date';
             }
-            if ($tab[$i][$j][$value] == 'recommendation_limit_date') {
+            if ($tab[$i][$j][$value] == 'opinion_limit_date') {
                 $tab[$i][$j]['value'] = $core_tools->format_date_db($tab[$i][$j]['value'], false);
-                $tab[$i][$j]['label'] = _RECOMMENDATION_LIMIT_DATE;
+                $tab[$i][$j]['label'] = _OPINION_LIMIT_DATE;
                 $tab[$i][$j]['size'] = '10';
                 $tab[$i][$j]['label_align'] = 'left';
                 $tab[$i][$j]['align'] = 'left';
                 $tab[$i][$j]['valign'] = 'bottom';
                 $tab[$i][$j]['show'] = false;
-                $tab[$i][$j]['order'] = 'recommendation_limit_date';
+                $tab[$i][$j]['order'] = 'opinion_limit_date';
             }
             if ($tab[$i][$j][$value] == 'category_id') {
                 $_SESSION['mlb_search_current_category_id'] = $tab[$i][$j]['value'];
diff --git a/sql/develop.sql b/sql/develop.sql
index 8db13368c21..e3a8358587b 100755
--- a/sql/develop.sql
+++ b/sql/develop.sql
@@ -39,7 +39,7 @@ DO $$ BEGIN
         and groupbasket.group_id = usergroup_content.group_id
         and groupbasket.basket_id = user_abs.basket_id;
 
---       DROP TABLE IF EXISTS user_abs;
+      DROP TABLE IF EXISTS user_abs;
   END IF;
 END$$;
 UPDATE history SET table_name = 'redirected_baskets' WHERE table_name = 'user_abs';
@@ -118,6 +118,17 @@ ALTER TABLE groupbasket ADD UNIQUE (id);
 ALTER TABLE groupbasket DROP COLUMN IF EXISTS list_display;
 ALTER TABLE groupbasket ADD COLUMN list_display json DEFAULT '[]';
 
+DO $$ BEGIN
+  IF (SELECT count(attname) FROM pg_attribute WHERE attrelid = (SELECT oid FROM pg_class WHERE relname = 'mlb_coll_ext') AND attname = 'recommendation_limit_date') = 1 THEN
+    ALTER TABLE res_letterbox ADD COLUMN opinion_limit_date TIMESTAMP without TIME ZONE DEFAULT NULL;
+    UPDATE res_letterbox SET opinion_limit_date =
+    (
+      SELECT recommendation_limit_date FROM mlb_coll_ext
+      WHERE res_letterbox.res_id = mlb_coll_ext.res_id
+    );
+    ALTER TABLE mlb_coll_ext DROP COLUMN IF EXISTS recommendation_limit_date;
+  END IF;
+END$$;
 
 /* RE-CREATE VIEW*/
 CREATE OR REPLACE VIEW res_view_letterbox AS
@@ -159,6 +170,7 @@ CREATE OR REPLACE VIEW res_view_letterbox AS
     r.external_id,
     r.external_link,
     r.departure_date,
+    r.opinion_limit_date,
     r.department_number_id,
     r.barcode,
     r.custom_t1 AS doc_custom_t1,
@@ -254,7 +266,6 @@ CREATE OR REPLACE VIEW res_view_letterbox AS
     mlb.alt_identifier,
     mlb.admission_date,
     mlb.process_limit_date,
-    mlb.recommendation_limit_date,
     mlb.closing_date,
     mlb.alarm1_date,
     mlb.alarm2_date,
diff --git a/sql/structure.sql b/sql/structure.sql
index 5664a6b674f..c3b6f573167 100755
--- a/sql/structure.sql
+++ b/sql/structure.sql
@@ -1366,6 +1366,7 @@ CREATE TABLE res_letterbox
   external_id character varying(255) DEFAULT NULL::character varying,
   external_link character varying(255) DEFAULT NULL::character varying,
   departure_date timestamp without time zone,
+  opinion_limit_date timestamp without time zone default NULL,
   department_number_id text,
   barcode text,
   sve_start_date TIMESTAMP without time zone,
@@ -1418,7 +1419,6 @@ CREATE TABLE mlb_coll_ext (
   alt_identifier character varying(255)  default NULL,
   admission_date timestamp without time zone,
   process_limit_date timestamp without time zone default NULL,
-  recommendation_limit_date timestamp without time zone default NULL,
   closing_date timestamp without time zone default NULL,
   alarm1_date timestamp without time zone default NULL,
   alarm2_date timestamp without time zone default NULL,
@@ -1657,6 +1657,7 @@ CREATE OR REPLACE VIEW res_view_letterbox AS
     r.external_id,
     r.external_link,
     r.departure_date,
+    r.opinion_limit_date,
     r.department_number_id,
     r.barcode,
     r.external_signatory_book_id,
@@ -1753,7 +1754,6 @@ CREATE OR REPLACE VIEW res_view_letterbox AS
     mlb.alt_identifier,
     mlb.admission_date,
     mlb.process_limit_date,
-    mlb.recommendation_limit_date,
     mlb.closing_date,
     mlb.alarm1_date,
     mlb.alarm2_date,
diff --git a/src/app/resource/controllers/ExportController.php b/src/app/resource/controllers/ExportController.php
index 6b73fb659fa..b1aeaf87a01 100644
--- a/src/app/resource/controllers/ExportController.php
+++ b/src/app/resource/controllers/ExportController.php
@@ -218,7 +218,7 @@ class ExportController
                         $csvContent[] = ExportController::getSignatureDates(['resId' => $resource['res_id']]);
                     }
                 } else {
-                    $allDates = ['doc_date', 'departure_date', 'admission_date', 'process_limit_date', 'recommendation_limit_date', 'closing_date', 'sve_start_date'];
+                    $allDates = ['doc_date', 'departure_date', 'admission_date', 'process_limit_date', 'opinion_limit_date', 'closing_date', 'sve_start_date'];
                     if (in_array($value['value'], $allDates)) {
                         $csvContent[] = TextFormatModel::formatDate($resource[$value['value']]);
                     } else {
diff --git a/src/app/resource/controllers/StoreController.php b/src/app/resource/controllers/StoreController.php
index 17e436bdb1e..648002c427d 100755
--- a/src/app/resource/controllers/StoreController.php
+++ b/src/app/resource/controllers/StoreController.php
@@ -35,7 +35,7 @@ class StoreController
 
         $mlbColumns = [
             'category_id', 'exp_contact_id', 'exp_user_id', 'dest_contact_id', 'dest_user_id',
-            'nature_id', 'alt_identifier', 'admission_date', 'process_limit_date', 'recommendation_limit_date', 'closing_date', 'address_id'
+            'nature_id', 'alt_identifier', 'admission_date', 'process_limit_date', 'closing_date', 'address_id'
         ];
         try {
             foreach ($aArgs as $column => $value) {
diff --git a/src/frontend/app/list/export/export.component.ts b/src/frontend/app/list/export/export.component.ts
index 3ce9f6cf5d5..29793816033 100644
--- a/src/frontend/app/list/export/export.component.ts
+++ b/src/frontend/app/list/export/export.component.ts
@@ -114,8 +114,8 @@ export class ExportComponent implements OnInit {
             isFunction: false
         },
         {
-            value: 'recommendation_limit_date',
-            label: this.lang.recommendationLimitDate,
+            value: 'opinion_limit_date',
+            label: this.lang.opinionLimitDate,
             isFunction: false
         },
         {
diff --git a/src/frontend/lang/lang-en.ts b/src/frontend/lang/lang-en.ts
index 533a2649dad..a314805727c 100755
--- a/src/frontend/lang/lang-en.ts
+++ b/src/frontend/lang/lang-en.ts
@@ -754,7 +754,6 @@ export const LANG_EN = {
     "confidentiality"                                     : "Confidentiality",
     "nature"                                     : "Nature",
     "admissionDate"                                     : "Admission date",
-    "recommendationLimitDate"                                     : "Recommendation limit dateDate",
     "sveStartDate"                                     : "SVE start date",
     "caseLabel"                                     : "Case label",
     "copyUsersEntities"                                     : "Users / Entities in copy",
diff --git a/src/frontend/lang/lang-fr.ts b/src/frontend/lang/lang-fr.ts
index 5d6f45f6a73..efc2000d921 100755
--- a/src/frontend/lang/lang-fr.ts
+++ b/src/frontend/lang/lang-fr.ts
@@ -780,7 +780,6 @@ export const LANG_FR = {
     "confidentiality"                                     : "Confidentialité",
     "nature"                                     : "Nature",
     "admissionDate"                                     : "Date d'admission",
-    "recommendationLimitDate"                                     : "Date limite de demande d'avis",
     "sveStartDate"                                     : "Date de début SVE",
     "caseLabel"                                     : "Libellé de l'affaire du courrier",
     "copyUsersEntities"                                     : "Utilisateurs / Entités en copie",
diff --git a/src/frontend/lang/lang-nl.ts b/src/frontend/lang/lang-nl.ts
index 856f1acc004..cfae6539930 100755
--- a/src/frontend/lang/lang-nl.ts
+++ b/src/frontend/lang/lang-nl.ts
@@ -783,7 +783,6 @@ export const LANG_NL = {
     "confidentiality"                                     : "_TO_TRANSLATE",
     "nature"                                     : "_TO_TRANSLATE",
     "admissionDate"                                     : "_TO_TRANSLATE",
-    "recommendationLimitDate"                                     : "_TO_TRANSLATE",
     "sveStartDate"                                     : "_TO_TRANSLATE",
     "caseLabel"                                     : "_TO_TRANSLATE",
     "copyUsersEntities"                                     : "_TO_TRANSLATE",
-- 
GitLab