From 088c3cad07be0c96028d7f5e7f6f8cac6fa5d2e4 Mon Sep 17 00:00:00 2001
From: "florian.azizian" <florian.azizian@maarch.org>
Date: Sat, 21 Mar 2020 18:45:00 +0100
Subject: [PATCH] FIX #13604 TIME 0:05 Improve control if no file in
 /rest/res/list

---
 .../resource/controllers/ResController.php    | 29 ++++++++++---------
 1 file changed, 15 insertions(+), 14 deletions(-)

diff --git a/src/app/resource/controllers/ResController.php b/src/app/resource/controllers/ResController.php
index 2c2e271de1a..57cb3f72f2e 100755
--- a/src/app/resource/controllers/ResController.php
+++ b/src/app/resource/controllers/ResController.php
@@ -1164,24 +1164,25 @@ class ResController extends ResourceControlController
         if (!empty($resources) && $data['withFile'] === true) {
             foreach ($resources as $key => $res) {
                 $document = ResModel::getById(['resId' => $res['res_id'], 'select' => ['path', 'filename', 'docserver_id']]);
-                $docserver = DocserverModel::getByDocserverId(['docserverId' => $document['docserver_id'], 'select' => ['path_template', 'docserver_type_id']]);
-                if (empty($docserver['path_template']) || !file_exists($docserver['path_template'])) {
-                    continue;
-                }
-                $pathToDocument = $docserver['path_template'] . str_replace('#', DIRECTORY_SEPARATOR, $document['path']) . $document['filename'];
-                if (!file_exists($pathToDocument)) {
-                    continue;
+                if (!empty($document['docserver_id'])) {
+                    $docserver = DocserverModel::getByDocserverId(['docserverId' => $document['docserver_id'], 'select' => ['path_template', 'docserver_type_id']]);
+                    if (empty($docserver['path_template']) || !file_exists($docserver['path_template'])) {
+                        $resources[$key]['fileBase64Content'] = null;
+                    }
+                    $pathToDocument = $docserver['path_template'] . str_replace('#', DIRECTORY_SEPARATOR, $document['path']) . $document['filename'];
+                    if (!file_exists($pathToDocument)) {
+                        $resources[$key]['fileBase64Content'] = null;
+                    }
+                    $file = file_get_contents($pathToDocument);
+                    $base64Content = base64_encode($file);
+                    $resources[$key]['fileBase64Content'] = $base64Content;
+                } else {
+                    $resources[$key]['fileBase64Content'] = null;
                 }
-                $file = file_get_contents($pathToDocument);
-                $base64Content = base64_encode($file);
-                $resources[$key]['fileBase64Content'] = $base64Content;
             }
         }
         if (!empty($resources) && $sve_start_date) {
-            $aResId = [];
-            foreach ($resources as $res) {
-                $aResId[] = $res['res_id'];
-            }
+            $aResId = array_column($resources, 'res_id');
             $aSveStartDate = AcknowledgementReceiptModel::getByResIds([
                 'select'  => ['res_id', 'min(send_date) as send_date'],
                 'resIds'  => $aResId,
-- 
GitLab