From f46cf6a602d5aa412edbe821002e9c9eb988b7ea Mon Sep 17 00:00:00 2001
From: Nestor <npegane@hotmail.com>
Date: Thu, 19 Oct 2017 16:39:26 +0200
Subject: [PATCH] FEAT #6129 Visa user option added in advanced search

FEAT #6129 Visa user option added in advanced search
---
 .../indexing_searching/search_adv.php           | 13 +++++++++++++
 .../indexing_searching/search_adv_result.php    | 17 +++++++++++++++++
 apps/maarch_entreprise/js/functions.js          |  2 +-
 apps/maarch_entreprise/lang/en.php              |  1 +
 apps/maarch_entreprise/lang/fr.php              |  1 +
 .../xml/IVS/validation_rules.xml                |  2 ++
 6 files changed, 35 insertions(+), 1 deletion(-)

diff --git a/apps/maarch_entreprise/indexing_searching/search_adv.php b/apps/maarch_entreprise/indexing_searching/search_adv.php
index f586bfb30a6..2fbcc39c521 100755
--- a/apps/maarch_entreprise/indexing_searching/search_adv.php
+++ b/apps/maarch_entreprise/indexing_searching/search_adv.php
@@ -740,6 +740,19 @@ if(isset($_REQUEST['nodetails']))
                     </td>
                     <td><em><?php echo "";?></em></td>
                 </tr>
+                <tr>
+                    <td width="70%"><label for="visa_user" class="bold"><?php echo _VISA_USER_SEARCH;?>:</label>
+                        <input type="text" name="visa_user" id="visa_user" onkeyup="erase_contact_external_id('visa_user', 'user_visa');"/>
+                        <input type="hidden" name="meta[]" value="visa_user#visa_user#input_text" />
+                        <div id="visaUserListByName" class="autocomplete"></div>
+                        <script type="text/javascript">
+                            initList_hidden_input('visa_user', 'visaUserListByName', '<?php 
+                                echo $_SESSION['config']['businessappurl'];?>index.php?display=true&dir=indexing_searching&page=users_list_by_name_search', 'what', '2', 'user_visa');
+                        </script>
+                        <input id="user_visa" name="user_visa" type="hidden" />
+                    </td>
+                    <td><em><?php echo "";?></em></td>
+                </tr>
             </table>
             </div>
         </td>
diff --git a/apps/maarch_entreprise/indexing_searching/search_adv_result.php b/apps/maarch_entreprise/indexing_searching/search_adv_result.php
index a5bf7bdfebf..060faa28089 100755
--- a/apps/maarch_entreprise/indexing_searching/search_adv_result.php
+++ b/apps/maarch_entreprise/indexing_searching/search_adv_result.php
@@ -820,6 +820,23 @@ if (count($_REQUEST['meta']) > 0) {
                     $where_request .= " (exp_user_id in (select user_id from users where firstname ilike :contactIdInternal or lastname ilike :contactIdInternal )) and ";
                     $arrayPDO = array_merge($arrayPDO, array(":contactIdInternal" => "%".$contactid_internal."%"));
             }
+            //VISA USER
+            elseif ($tab_id_fields[$j] == 'visa_user' && !empty($_REQUEST['user_visa']))
+            {
+                $json_txt .= " 'visa_user' : ['".addslashes(trim($_REQUEST['visa_user']))."'], 'user_visa' : ['".addslashes(trim($_REQUEST['user_visa']))."']";
+                    $userVisa = $_REQUEST['user_visa'];
+                    $where_request .= " (res_id in (select res_id from listinstance where difflist_type = 'VISA_CIRCUIT' and process_date is not null and signatory = false and item_id in (select user_id from users where user_id = :user_visa))) and  ";
+                    $arrayPDO = array_merge($arrayPDO, array(":user_visa" => $userVisa));
+            }
+            //signatory = false et difflist_type = ‘VISA_CIRCUIT' et process_date != null
+            elseif ($tab_id_fields[$j] == 'visa_user' && empty($_REQUEST['user_visa']) && !empty($_REQUEST['visa_user']))
+            {
+                $json_txt .= " 'visa_user' : ['".addslashes(trim($_REQUEST['visa_user']))."'], 'user_visa' : ['".addslashes(trim($_REQUEST['visa_user']))."']";
+                    $visaUser = pg_escape_string($_REQUEST['visa_user']);
+                    //$where_request .= " ((user_firstname = '".$contactid_internal."' or user_lastname = '".$contactid_internal."') or ";
+                    $where_request .= " (res_id in (select res_id from listinstance where difflist_type = 'VISA_CIRCUIT' and process_date is not null and signatory = false and item_id in (select user_id from users where firstname ilike :visa_user or lastname ilike :visa_user))) and ";
+                    $arrayPDO = array_merge($arrayPDO, array(":visa_user" => "%".$visaUser."%"));
+            }
             // Nom du signataire
             elseif ($tab_id_fields[$j] == 'signatory_name' && !empty($_REQUEST['signatory_name_id']))
             {
diff --git a/apps/maarch_entreprise/js/functions.js b/apps/maarch_entreprise/js/functions.js
index d78f1ce1f68..211efeacaca 100755
--- a/apps/maarch_entreprise/js/functions.js
+++ b/apps/maarch_entreprise/js/functions.js
@@ -230,7 +230,7 @@ var initList = function (idField, idList, theUrlToListScript, paramNameSrv, minC
                 paramName: paramNameSrv,
                 minChars: minCharsSrv,
                 afterUpdateElement: function (text, li){
-                    $j('#'+new_value).value = li.id; 
+                    $j('#'+new_value).val(li.id); 
                 }
             });
     };
diff --git a/apps/maarch_entreprise/lang/en.php b/apps/maarch_entreprise/lang/en.php
index bc0b3d42437..8c9353e0436 100755
--- a/apps/maarch_entreprise/lang/en.php
+++ b/apps/maarch_entreprise/lang/en.php
@@ -808,6 +808,7 @@ if (!defined("_ADD_COPIES")) define("_ADD_COPIES","Add persons on copy");
 //Circuits de visa
 if (!defined("_TO_SIGN")) define("_TO_SIGN","For signature");
 if (!defined("_VISA_USER"))    define("_VISA_USER", "For visa");
+if (!defined("_VISA_USER_SEARCH"))    define("_VISA_USER_SEARCH", "Visa user");
 
 //Circuits d'avis
 if (!defined("_TO_VIEW")) define("_TO_VIEW","For recommendation");
diff --git a/apps/maarch_entreprise/lang/fr.php b/apps/maarch_entreprise/lang/fr.php
index 12b3d933136..81df8a7a562 100755
--- a/apps/maarch_entreprise/lang/fr.php
+++ b/apps/maarch_entreprise/lang/fr.php
@@ -817,6 +817,7 @@ if (!defined("_ADD_COPIES")) define("_ADD_COPIES","Ajouter des personnes en copi
 //Circuits de visa
 if (!defined("_TO_SIGN")) define("_TO_SIGN","Pour signature");
 if (!defined("_VISA_USER"))    define("_VISA_USER", "Pour visa");
+if (!defined("_VISA_USER_SEARCH"))    define("_VISA_USER_SEARCH", "Viseur");
 //Circuits d'avis
 if (!defined("_TO_VIEW")) define("_TO_VIEW","Pour avis");
 if (!defined("_TO_SHARED_VIEW")) define("_TO_SHARED_VIEW","Pour avis partagé");
diff --git a/apps/maarch_entreprise/xml/IVS/validation_rules.xml b/apps/maarch_entreprise/xml/IVS/validation_rules.xml
index a65534200f2..b1273bd22f9 100755
--- a/apps/maarch_entreprise/xml/IVS/validation_rules.xml
+++ b/apps/maarch_entreprise/xml/IVS/validation_rules.xml
@@ -410,6 +410,8 @@
       <parameter name="contactid_external" type="identifier" />
       <parameter name="contact_type" type="identifier" />
       <parameter name="contactid_internal" type="keyword_id" />
+      <parameter name="visa_user" type="string" />
+      <parameter name="user_visa" type="string" />
       <parameter name="descriptioncase" type="string" />
       <parameter name="dir" type="identifier" />
       <parameter name="fulltext" type="string" />
-- 
GitLab