From 8c95e80f477e17d4c1f60bf1a0c5a434d60f43e7 Mon Sep 17 00:00:00 2001
From: Guillaume Heurtier <guillaume.heurtier@maarch.org>
Date: Mon, 14 Sep 2020 12:24:27 +0200
Subject: [PATCH] FEAT #14458 TIME 0:40 fix import contact when custom fields
 column is null

---
 src/app/contact/controllers/ContactController.php | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/app/contact/controllers/ContactController.php b/src/app/contact/controllers/ContactController.php
index 9e58e823af6..875a028ed3d 100755
--- a/src/app/contact/controllers/ContactController.php
+++ b/src/app/contact/controllers/ContactController.php
@@ -1302,7 +1302,7 @@ class ContactController
                         }
                     }
                 }
-                $contactToCreate['custom_fields'] = json_encode($contactToCreate['custom_fields']);
+                $contactToCreate['custom_fields'] = !empty($contactToCreate['custom_fields']) ? json_encode($contactToCreate['custom_fields']) : '{}';
 
                 ContactModel::create($contactToCreate);
             } else {
@@ -1325,8 +1325,9 @@ class ContactController
 
 
                 $oldContact = ContactModel::getById(['id' => $contact['id'], 'select' => ['custom_fields']]);
+                $oldContact['custom_fields'] = json_decode($oldContact['custom_fields'], true);
                 if (!empty($oldContact['custom_fields'])) {
-                    $set['custom_fields'] = $set['custom_fields'] + json_decode($oldContact['custom_fields'], true);
+                    $set['custom_fields'] = $set['custom_fields'] + $oldContact['custom_fields'];
                 }
                 if (!empty($customsToRemove)) {
                     foreach ($customsToRemove as $item) {
-- 
GitLab