From f69b722fe2c12efcca58dd2c5c85e6492bb370fa Mon Sep 17 00:00:00 2001
From: Guillaume Heurtier <guillaume.heurtier@maarch.org>
Date: Wed, 28 Oct 2020 18:15:07 +0100
Subject: [PATCH] FEAT #12018 TIME 1:15 export delegate + change format in
 summary sheet

---
 .../resource/controllers/ExportController.php | 24 +++++++++++++++----
 .../controllers/SummarySheetController.php    | 16 +++++++++----
 2 files changed, 30 insertions(+), 10 deletions(-)

diff --git a/src/app/resource/controllers/ExportController.php b/src/app/resource/controllers/ExportController.php
index e64960eb0fc..a68a07f1b21 100755
--- a/src/app/resource/controllers/ExportController.php
+++ b/src/app/resource/controllers/ExportController.php
@@ -795,7 +795,7 @@ class ExportController
         $roles = array_column($roles, 'label', 'id');
 
         $listInstances = ListInstanceModel::get([
-            'select'    => ['item_id', 'item_mode'],
+            'select'    => ['item_id', 'item_mode', 'delegate'],
             'where'     => ['res_id in (?)', 'item_type = ?', 'difflist_type = ?'],
             'data'      => [$args['resId'], 'user_id', $args['listType']],
             'order_by'  => ['sequence']
@@ -803,18 +803,32 @@ class ExportController
 
         foreach ($listInstances as $listInstance) {
             if (!empty($listInstance['item_id'])) {
-                $user = UserModel::getById(['id' => $listInstance['item_id'], 'select' => ['firstname', 'lastname']]);
+                $user = UserModel::getLabelledUserById(['id' => $listInstance['item_id']]);
+
+                $delegate = null;
+                if (!empty($listInstance['delegate'])) {
+                    $delegate = UserModel::getLabelledUserById(['id' => $listInstance['delegate']]);
+                }
 
                 if ($args['listType'] == 'VISA_CIRCUIT') {
                     if ($listInstance['item_mode'] == 'cc') {
                         $listInstance['item_mode'] = 'copy';
                     }
                     $roleLabel = $roles[$listInstance['item_mode']];
-    
-                    $list[] = "{$user['firstname']} {$user['lastname']} ({$roleLabel})";
+
+                    if (!empty($delegate)) {
+                        $label = "{$delegate} ({$roleLabel}, " . _INSTEAD_OF . " {$user})";
+                    } else {
+                        $label = "{$user} ({$roleLabel})";
+                    }
                 } else {
-                    $list[] = "{$user['firstname']} {$user['lastname']}";
+                    if (!empty($delegate)) {
+                        $label = "{$delegate} (" . _INSTEAD_OF . " {$user})";
+                    } else {
+                        $label = "{$user}";
+                    }
                 }
+                $list[] = $label;
             } else {
                 $list[] = _USER_DELETED;
             }
diff --git a/src/app/resource/controllers/SummarySheetController.php b/src/app/resource/controllers/SummarySheetController.php
index dab6e88e329..b1fa0f6a35b 100755
--- a/src/app/resource/controllers/SummarySheetController.php
+++ b/src/app/resource/controllers/SummarySheetController.php
@@ -586,16 +586,18 @@ class SummarySheetController
                         break;
                     } elseif ($listInstance['res_id'] == $resource['res_id']) {
                         $mode = $listInstance['requested_signature'] ? 'Signataire' : 'Viseur';
-                        $userLabel = UserModel::getLabelledUserById(['id' => $listInstance['item_id']]) . " ({$mode}) ";
+                        $userLabel = UserModel::getLabelledUserById(['id' => $listInstance['item_id']]);
 
                         $delegate = !empty($listInstance['delegate']) ? UserModel::getLabelledUserById(['id' => $listInstance['delegate']]) : '';
                         if (!empty($delegate)) {
-                            $userLabel = $delegate . ' ' . _INSTEAD_OF . ' ' . $userLabel;
+                            $mode .= ', ' . _INSTEAD_OF . ' ' . $userLabel;
+                            $userLabel = $delegate . " ({$mode}) ";
+                        } else {
+                            $userLabel .= " ({$mode}) ";
                         }
 
                         $users[] = [
                             'user'  => $userLabel,
-                            'mode'  => $listInstance['requested_signature'] ? 'Signataire' : 'Viseur',
                             'date'  => TextFormatModel::formatDate($listInstance['process_date']),
                         ];
                         unset($args['data']['listInstancesVisa'][$listKey]);
@@ -630,11 +632,15 @@ class SummarySheetController
                         $user = UserModel::getLabelledUserById(['id' => $listInstance['item_id']]);
                         $entity = UserModel::getPrimaryEntityById(['id' => $listInstance['item_id'], 'select' => ['entities.entity_label']]);
 
-                        $userLabel = $user . " (" . $entity['entity_label'] . ")";
+                        $entityLabel = $entity['entity_label'];
+                        $userLabel = $user;
                         $delegate = !empty($listInstance['delegate']) ? UserModel::getLabelledUserById(['id' => $listInstance['delegate']]) : '';
 
                         if (!empty($delegate)) {
-                            $userLabel = $delegate . ' ' .  _INSTEAD_OF . ' ' . $userLabel;
+                            $entityLabel .= ', ' .  _INSTEAD_OF . ' ' . $userLabel;
+                            $userLabel = $delegate . " (" . $entityLabel . ")";
+                        } else {
+                            $userLabel .= " (" . $entityLabel . ")";
                         }
 
                         $users[] = [
-- 
GitLab