From 8d28adbf63a9a4fe07e8bbd7cb8daaf5fb2961bf Mon Sep 17 00:00:00 2001
From: Guillaume Heurtier <guillaume.heurtier@maarch.org>
Date: Tue, 24 Nov 2020 14:58:34 +0100
Subject: [PATCH] FEAT #11915 TIME 4:00 added workflow history in summary sheet

---
 .../controllers/SummarySheetController.php    | 33 ++++++++++++++++---
 .../summarySheet/summary-sheet.component.ts   |  8 +++++
 2 files changed, 37 insertions(+), 4 deletions(-)

diff --git a/src/app/resource/controllers/SummarySheetController.php b/src/app/resource/controllers/SummarySheetController.php
index 9956fce3f5b..4bee8e3ccfe 100755
--- a/src/app/resource/controllers/SummarySheetController.php
+++ b/src/app/resource/controllers/SummarySheetController.php
@@ -21,6 +21,7 @@ use Endroid\QrCode\QrCode;
 use Entity\models\EntityModel;
 use Entity\models\ListInstanceModel;
 use ExternalSignatoryBook\controllers\MaarchParapheurController;
+use History\models\HistoryModel;
 use IndexingModel\models\IndexingModelFieldModel;
 use Note\models\NoteEntityModel;
 use Note\models\NoteModel;
@@ -783,6 +784,10 @@ class SummarySheetController
                     }
                 }
 
+                if (empty($config['data'])) {
+                    continue;
+                }
+
                 $mainDocument = ResModel::getById([
                     'resId' => $resource['res_id'],
                     'select' => ["external_id->>'signatureBookId' as external_id", 'alt_identifier', 'subject']
@@ -802,10 +807,6 @@ class SummarySheetController
                     'data'   => [$resource['res_id']]
                 ]);
 
-                if (empty($attachments)) {
-                    continue;
-                }
-
                 foreach ($attachments as $attachment) {
                     $documents[] = [
                         'id'    => $attachment['external_id'],
@@ -848,7 +849,31 @@ class SummarySheetController
                         }
                     }
                 }
+            } elseif ($unit['unit'] == 'workflowHistory') {
+                $historyList = HistoryModel::get([
+                    'select'  => ['record_id', 'event_date', 'user_id', 'info', 'remote_ip', 'count(1) OVER()'],
+                    'where'   => ['table_name in (?)', 'event_type like ?', 'record_id = ?'],
+                    'data'    => [['res_letterbox', 'res_view_letterbox'], 'ACTION#%', $resource['res_id']],
+                    'orderBy' => ['event_date']
+                ]);
+
+                if (!empty($historyList)) {
+                    $pdf->SetY($pdf->GetY() + 40);
+                    if (($pdf->GetY() + 37 + count($historyList) * 20) > $bottomHeight) {
+                        $pdf->AddPage();
+                    }
+                    $pdf->SetFont('', 'B', 10);
+                    $pdf->Cell(0, 15, $unit['label'], 0, 2, 'L', false);
+                    $pdf->SetY($pdf->GetY() + 2);
 
+                    $pdf->SetFont('', '', 10);
+                    foreach ($historyList as $keyHistory => $history) {
+                        $date = new \DateTime($history['event_date']);
+                        $date = $date->format('d/m/Y H:i:s');
+                        $label = $date . " - " . UserModel::getLabelledUserById(['id' => $history['user_id']]) . "\n" . $history['info'];
+                        $pdf->MultiCell(0, 40, $label, 1, 'L', false);
+                    }
+                }
             }
         }
     }
diff --git a/src/frontend/app/list/summarySheet/summary-sheet.component.ts b/src/frontend/app/list/summarySheet/summary-sheet.component.ts
index be19f6dc1c3..ef79599c333 100644
--- a/src/frontend/app/list/summarySheet/summary-sheet.component.ts
+++ b/src/frontend/app/list/summarySheet/summary-sheet.component.ts
@@ -127,6 +127,14 @@ export class SummarySheetComponent implements OnInit {
             css: 'col-md-4 text-center',
             desc: [],
             enabled: true
+        },
+        {
+            id: 'workflowHistory',
+            unit: 'workflowHistory',
+            label: this.translate.instant('lang.history'),
+            css: 'col-md-4 text-center',
+            desc: [],
+            enabled: true
         }
     ];
 
-- 
GitLab