From 771da74eb88bfbabf4477acc8233d30f86df049f Mon Sep 17 00:00:00 2001
From: Damien <damien.burel@maarch.org>
Date: Fri, 20 Dec 2019 10:55:58 +0100
Subject: [PATCH] FEAT #12224 TIME 0:15 Refactoring export + date custom field
 contact

---
 src/app/contact/controllers/ContactController.php | 12 ++++++++++++
 src/app/resource/controllers/ExportController.php |  4 ++--
 2 files changed, 14 insertions(+), 2 deletions(-)

diff --git a/src/app/contact/controllers/ContactController.php b/src/app/contact/controllers/ContactController.php
index c17f74966f5..a2493c578de 100755
--- a/src/app/contact/controllers/ContactController.php
+++ b/src/app/contact/controllers/ContactController.php
@@ -17,6 +17,7 @@ use Contact\models\ContactCustomFieldListModel;
 use Contact\models\ContactFillingModel;
 use Contact\models\ContactModel;
 use Contact\models\ContactParameterModel;
+use CustomField\models\CustomFieldModel;
 use Entity\models\EntityModel;
 use Group\controllers\PrivilegeController;
 use History\controllers\HistoryController;
@@ -135,6 +136,17 @@ class ContactController
             $externalId = '{}';
         }
 
+        if (!empty($body['customFields'])) {
+            foreach ($body['customFields'] as $key => $value) {
+                $customField = ContactCustomFieldListModel::getById(['id' => $key, 'select' => ['type']]);
+                if ($customField['type'] == 'date') {
+                    $date = new \DateTime($value);
+                    $value = $date->format('Y-m-d');
+                    $body['customFields'][$key] = $value;
+                }
+            }
+        }
+
         $id = ContactModel::create([
             'civility'              => $body['civility'] ?? null,
             'firstname'             => $body['firstname'] ?? null,
diff --git a/src/app/resource/controllers/ExportController.php b/src/app/resource/controllers/ExportController.php
index f74c28947a9..63a5d53b4c5 100644
--- a/src/app/resource/controllers/ExportController.php
+++ b/src/app/resource/controllers/ExportController.php
@@ -646,11 +646,11 @@ class ExportController
             return null;
         }
         $customFieldId = $customField[1];
-        $customField = ResModel::get(['select' => ["custom_fields->>'{$customFieldId}' as csfield"], 'where' => ['res_id = ?'], 'data' => [$args['resId']]]);
+        $customField = ResModel::get(['select' => ["custom_fields->'{$customFieldId}' as csfield"], 'where' => ['res_id = ?'], 'data' => [$args['resId']]]);
         if (empty($customField[0]['csfield'])) {
             return null;
         }
-        $customValues = json_decode($customField[0]['csfield']);
+        $customValues = json_decode($customField[0]['csfield'], true);
 
         if (!isset($customValues)) {
             return null;
-- 
GitLab