From 5fe05357ee8ee2768aba4a6430737b2152e63a1e Mon Sep 17 00:00:00 2001
From: Laurent Giovannoni <laurent.giovannoni@maarch.org>
Date: Thu, 13 Dec 2018 15:31:58 +0100
Subject: [PATCH] FIX pb with doc attached to a deleted address

---
 apps/maarch_entreprise/documents_list_copies.php         | 8 ++++++--
 .../documents_list_with_attachments.php                  | 8 ++++++--
 .../indexing_searching/documents_list_mlb_search_adv.php | 9 +++++++--
 modules/avis/documents_list_with_avis.php                | 8 ++++++--
 modules/visa/documents_list_with_signatory.php           | 8 ++++++--
 src/app/resource/models/ResourceContactModel.php         | 7 +++++--
 6 files changed, 36 insertions(+), 12 deletions(-)

diff --git a/apps/maarch_entreprise/documents_list_copies.php b/apps/maarch_entreprise/documents_list_copies.php
index e1876a6a3aa..3c5509406a5 100755
--- a/apps/maarch_entreprise/documents_list_copies.php
+++ b/apps/maarch_entreprise/documents_list_copies.php
@@ -562,8 +562,12 @@ if (!empty($tab)) {
                         $arrayPDO = array($return_stmt->item_id);
                         $stmt2 = $db->query($query, $arrayPDO);
                         $return_stmt = $stmt2->fetch(PDO::FETCH_ASSOC);
-                        $formattedContact = \SrcCore\controllers\AutoCompleteController::getFormattedContact(['contact' => $return_stmt]);
-                        $tab[$i][$j]['value'] = $formattedContact['contact']['contact'];
+                        if ($return_stmt == false) {
+                            $tab[$i][$j]['value'] = '';
+                        } else {
+                            $formattedContact = \SrcCore\controllers\AutoCompleteController::getFormattedContact(['contact' => $return_stmt]);
+                            $tab[$i][$j]['value'] = $formattedContact['contact']['contact'];
+                        }
                     } elseif ($return_stmt->type == 'entity') {
                         $query = 'SELECT short_label FROM entities WHERE id = ?';
                         $arrayPDO = array($return_stmt->item_id);
diff --git a/apps/maarch_entreprise/documents_list_with_attachments.php b/apps/maarch_entreprise/documents_list_with_attachments.php
index fd4f5ccf131..ddeadb96e01 100755
--- a/apps/maarch_entreprise/documents_list_with_attachments.php
+++ b/apps/maarch_entreprise/documents_list_with_attachments.php
@@ -554,8 +554,12 @@ for ($i = 0; $i < $tabI; ++$i) {
                     $arrayPDO = array($return_stmt->item_id);
                     $stmt2 = $db->query($query, $arrayPDO);
                     $return_stmt = $stmt2->fetch(PDO::FETCH_ASSOC);
-                    $formattedContact = \SrcCore\controllers\AutoCompleteController::getFormattedContact(['contact' => $return_stmt]);
-                    $tab[$i][$j]['value'] = $formattedContact['contact']['contact'];
+                    if ($return_stmt == false) {
+                        $tab[$i][$j]['value'] = '';
+                    } else {
+                        $formattedContact = \SrcCore\controllers\AutoCompleteController::getFormattedContact(['contact' => $return_stmt]);
+                        $tab[$i][$j]['value'] = $formattedContact['contact']['contact'];
+                    }
                 } else if ($return_stmt->type == 'entity') {
                     $query = 'SELECT short_label FROM entities WHERE id = ?';
                     $arrayPDO = array($return_stmt->item_id);
diff --git a/apps/maarch_entreprise/indexing_searching/documents_list_mlb_search_adv.php b/apps/maarch_entreprise/indexing_searching/documents_list_mlb_search_adv.php
index 7f23683f8f7..0f9e3ef821d 100755
--- a/apps/maarch_entreprise/indexing_searching/documents_list_mlb_search_adv.php
+++ b/apps/maarch_entreprise/indexing_searching/documents_list_mlb_search_adv.php
@@ -795,8 +795,13 @@ if ($mode == 'normal') {
                         $arrayPDO = array($return_stmt->item_id);
                         $stmt2 = $db->query($query, $arrayPDO);
                         $return_stmt = $stmt2->fetch(PDO::FETCH_ASSOC);
-                        $formattedContact = \SrcCore\controllers\AutoCompleteController::getFormattedContact(['contact' => $return_stmt]);
-                        $tab[$i][$j]['value'] = $formattedContact['contact']['contact'];
+                        if ($return_stmt == false) {
+                            $tab[$i][$j]['value'] = '';
+                        } else {
+                            $formattedContact = \SrcCore\controllers\AutoCompleteController::getFormattedContact(['contact' => $return_stmt]);
+                            $tab[$i][$j]['value'] = $formattedContact['contact']['contact'];
+                        }
+                        
                     } else if ($return_stmt->type == 'entity') {
                         $query = 'SELECT short_label FROM entities WHERE id = ?';
                         $arrayPDO = array($return_stmt->item_id);
diff --git a/modules/avis/documents_list_with_avis.php b/modules/avis/documents_list_with_avis.php
index 2e195d41d7e..bc33bd98913 100755
--- a/modules/avis/documents_list_with_avis.php
+++ b/modules/avis/documents_list_with_avis.php
@@ -555,8 +555,12 @@ for ($i = 0; $i < $tabI; ++$i) {
                     $arrayPDO = array($return_stmt->item_id);
                     $stmt2 = $db->query($query, $arrayPDO);
                     $return_stmt = $stmt2->fetch(PDO::FETCH_ASSOC);
-                    $formattedContact = \SrcCore\controllers\AutoCompleteController::getFormattedContact(['contact' => $return_stmt]);
-                    $tab[$i][$j]['value'] = $formattedContact['contact']['contact'];
+                    if ($return_stmt == false) {
+                        $tab[$i][$j]['value'] = '';
+                    } else {
+                        $formattedContact = \SrcCore\controllers\AutoCompleteController::getFormattedContact(['contact' => $return_stmt]);
+                        $tab[$i][$j]['value'] = $formattedContact['contact']['contact'];
+                    }
                 } else if ($return_stmt->type == 'entity') {
                     $query = 'SELECT short_label FROM entities WHERE id = ?';
                     $arrayPDO = array($return_stmt->item_id);
diff --git a/modules/visa/documents_list_with_signatory.php b/modules/visa/documents_list_with_signatory.php
index cd086437703..6d824fff2df 100755
--- a/modules/visa/documents_list_with_signatory.php
+++ b/modules/visa/documents_list_with_signatory.php
@@ -525,8 +525,12 @@ for ($i = 0; $i < $tabI; ++$i) {
                     $arrayPDO = array($return_stmt->item_id);
                     $stmt2 = $db->query($query, $arrayPDO);
                     $return_stmt = $stmt2->fetch(PDO::FETCH_ASSOC);
-                    $formattedContact = \SrcCore\controllers\AutoCompleteController::getFormattedContact(['contact' => $return_stmt]);
-                    $tab[$i][$j]['value'] = $formattedContact['contact']['contact'];
+                    if ($return_stmt == false) {
+                        $tab[$i][$j]['value'] = '';
+                    } else {
+                        $formattedContact = \SrcCore\controllers\AutoCompleteController::getFormattedContact(['contact' => $return_stmt]);
+                        $tab[$i][$j]['value'] = $formattedContact['contact']['contact'];
+                    }
                 } else if ($return_stmt->type == 'entity') {
                     $query = 'SELECT short_label FROM entities WHERE id = ?';
                     $arrayPDO = array($return_stmt->item_id);
diff --git a/src/app/resource/models/ResourceContactModel.php b/src/app/resource/models/ResourceContactModel.php
index 6ab193a04a3..7a372248420 100644
--- a/src/app/resource/models/ResourceContactModel.php
+++ b/src/app/resource/models/ResourceContactModel.php
@@ -62,8 +62,11 @@ class ResourceContactModel
                     'where' => ['ca_id = ?'],
                     'data' => [$aContact['item_id']]
                 ]);
-                $contact = AutoCompleteController::getFormattedContact(['contact' => $contact[0]]);
-                $aContacts[$key]['format'] = $contact['contact']['otherInfo'];
+                if (isset($contact[0])) {
+                    $contact = AutoCompleteController::getFormattedContact(['contact' => $contact[0]]);
+                    $aContacts[$key]['format'] = $contact['contact']['otherInfo'];
+                }
+                
             } elseif ($aContact['type'] == 'entity') {
                 $entity = EntityModel::getById(['id' => $aContact['item_id'], 'select' => ['entity_label']]);
                 $aContacts[$key]['format'] = $entity['entity_label'];
-- 
GitLab