From 05088eba622a328a1b2d60f4a87226dd57f7d459 Mon Sep 17 00:00:00 2001
From: "florian.azizian" <florian.azizian@maarch.org>
Date: Wed, 25 Apr 2018 14:21:01 +0100
Subject: [PATCH] FEAT #6631 display correct visa workflow in basket list

---
 core/class/PrintControler.php     |  6 +--
 modules/entities/css/module.css   |  9 +++-
 modules/entities/loadDiffList.php | 68 ++++++++++++++++++++++++-------
 3 files changed, 64 insertions(+), 19 deletions(-)

diff --git a/core/class/PrintControler.php b/core/class/PrintControler.php
index 5ad6add73a0..0c54fb2e143 100755
--- a/core/class/PrintControler.php
+++ b/core/class/PrintControler.php
@@ -490,10 +490,10 @@ class PrintControler extends PrintFunctions
                     $pdf->SetFont('Arial','',11);
                     foreach ($this->array_print[$cpt]['retrieve_VisaWorkflow'] as $key => $value) {
                         $signatory = '';
-                        if($value['signatory']){
+                        if($value['signatory'] || ($value['requested_signature'] && empty($value['process_date']))){
                             $signatory = ' ('._SIGNATORY.')';
-                        } else if ($value['requested_signature'] && empty($value['process_date'])) {
-                            $signatory = ' ('._REQUESTED_SIGNATURE.')';
+                        } else {
+                            $signatory = ' ('._VISA_USER_SEARCH_MIN.')';
                         }
                         $pdf->Cell(140,5,utf8_decode($key+1 . '. ' .$value['firstname']. ' ' . $value['lastname'] . $signatory),1,0, 'L', false);
                         $pdf->Cell(42,5,functions::format_date_db($value['process_date'], true, '', true),1,1, 'C', false);
diff --git a/modules/entities/css/module.css b/modules/entities/css/module.css
index a4b4ef4920a..012471d9413 100755
--- a/modules/entities/css/module.css
+++ b/modules/entities/css/module.css
@@ -84,4 +84,11 @@ span.change {
 	/*color:white;*/
 	background-color: #BAD1E2;
 	border-radius: 5px;
-}
\ No newline at end of file
+}
+
+.visaWorkFlowBasket {
+	width:50%; 
+	text-align:center !important;
+	background-color:transparent !important;
+	font-size: 14px;
+}
diff --git a/modules/entities/loadDiffList.php b/modules/entities/loadDiffList.php
index 5adb6069738..3933047d449 100755
--- a/modules/entities/loadDiffList.php
+++ b/modules/entities/loadDiffList.php
@@ -1,34 +1,72 @@
 <?php
 
+/**
+* Copyright Maarch since 2008 under licence GPLv3.
+* See LICENCE.txt file at the root folder for more details.
+* This file is part of Maarch software.
+*
+*/
+
 require_once('core/class/class_core_tools.php');
 $Core_Tools = new core_tools;
 $Core_Tools->load_lang();
 
 $status = 0;
 
-if(isset($_REQUEST['typeList'])){
+if (isset($_REQUEST['typeList'])) {
     $typeList = $_REQUEST['typeList'];
-}else{
+} else {
     $typeList = 'entity_id';
 }
 
-if(isset($_REQUEST['showStatus'])){
+if (isset($_REQUEST['showStatus'])) {
     $showStatus = true;
-}else{
+} else {
     $showStatus = false;
 }
-require_once('modules/entities/class/class_manage_listdiff.php');
-$diffListObj = new diffusion_list();
-$difflist = $diffListObj->get_listinstance($_REQUEST['res_id'], false, $_SESSION['collection_id_choice'],$typeList);
 
-# Include display of list
-$roles = $diffListObj->list_difflist_roles();
+//VISA WORKFLOW
+if ($typeList=='VISA_CIRCUIT') {
+    $visaWorkflow = \SrcCore\models\DatabaseModel::select([
+        'select'   => ['u.firstname', 'u.lastname', 'l.process_date', 'l.process_comment', 'l.signatory', 'l.requested_signature'],
+        'table'    => ['listinstance l, users u'],
+        'where'    => ['l.res_id = ?', 'l.difflist_type = ?', 'u.user_id = l.item_id'],
+        'data'     => [$_REQUEST['res_id'], 'VISA_CIRCUIT'],
+        'order_by' => ['l.listinstance_id asc']
+        ]);
 
-ob_start();
-require_once 'modules/entities/difflist_display.php';
-$return .= str_replace(array("\r", "\n", "\t"), array("", "", ""), ob_get_contents());
-ob_end_clean();
+    if (!empty($visaWorkflow)) {
+        $return = '<table style="width:100%;margin-top: 5px;">';
+        $return .= '<tr><td class="sstit visaWorkFlowBasket">'._ADMIN_USERS.'</td>';
+        $return .= '<td class="sstit visaWorkFlowBasket">'._PROCESS_DATE.'</td></tr>';
+        foreach ($visaWorkflow as $key => $value) {
+            $signatory = '';
+            if ($value['signatory'] || ($value['requested_signature'] && empty($value['process_date']))) {
+                $signatory = ' ('._SIGNATORY.')';
+            } else {
+                $signatory = ' ('._VISA_USER_SEARCH_MIN.')';
+            }
+            $nb = $key+1;
+            $return .= '<tr><td style="width:50%;padding: 8px 0px 7px 10px;">'. $nb . '. ' .$value['firstname']. ' ' . $value['lastname'] . $signatory.'</td>';
+            $return .= '<td style="width:50%; text-align:center;">'.functions::format_date_db($value['process_date'], true, '', true) . '</td></tr>';
+        }
+        $return .= '</table>';
+    } else {
+        $return .= '<div style="font-style:italic;text-align:center;color:#ea0000;margin:10px;">'._DIFF_LIST.' '._IS_EMPTY.'</div>';
+    }
+} else {
+    require_once('modules/entities/class/class_manage_listdiff.php');
+    $diffListObj = new diffusion_list();
+    $difflist = $diffListObj->get_listinstance($_REQUEST['res_id'], false, $_SESSION['collection_id_choice'], $typeList);
+        
+    # Include display of list
+    $roles = $diffListObj->list_difflist_roles();
 
-echo "{status : " . $status . ", toShow : '" . addslashes($return) . "'}";
-exit ();
+    ob_start();
+    require_once 'modules/entities/difflist_display.php';
+    $return .= str_replace(array("\r", "\n", "\t"), array("", "", ""), ob_get_contents());
+    ob_end_clean();
+}
 
+echo "{status : " . $status . ", toShow : '" . addslashes($return) . "'}";
+exit();
-- 
GitLab