From c09466e0b94fedd56d3e4ef0d289bc292bb3980c Mon Sep 17 00:00:00 2001
From: Damien Labat <labat@datakode.fr>
Date: Wed, 9 Nov 2022 11:12:00 +0100
Subject: [PATCH] feat: export change column

change export data structure after first client review
---
 app/Http/Resources/EvaluationExportResource.php   |  2 +-
 app/Http/Resources/OrganizationExportResource.php | 14 ++++++--------
 app/Models/Evaluation.php                         |  8 ++++----
 lang/fr/exports.php                               |  4 +++-
 4 files changed, 14 insertions(+), 14 deletions(-)

diff --git a/app/Http/Resources/EvaluationExportResource.php b/app/Http/Resources/EvaluationExportResource.php
index 93b313f8..c5ef48af 100644
--- a/app/Http/Resources/EvaluationExportResource.php
+++ b/app/Http/Resources/EvaluationExportResource.php
@@ -83,7 +83,7 @@ private function _getActionPlanString(Collection $mesureLevels): string
         $actionPlan = [];
         foreach ($mesureLevels as $mesureLevel) {
             if ($mesureLevel->expected_level > $mesureLevel->actual_level) {
-                $actionPlan[] = implode(' ', [
+                $actionPlan[] = implode(';', [
                     $mesureLevel->measure->short_name,
                     '[' . $mesureLevel->actual_level . ' >> ' . $mesureLevel->expected_level . ']',
                     (new Carbon($mesureLevel->end_date))->isoFormat('DD/MM/YYYY'),
diff --git a/app/Http/Resources/OrganizationExportResource.php b/app/Http/Resources/OrganizationExportResource.php
index 0ca08fc1..47bb499c 100644
--- a/app/Http/Resources/OrganizationExportResource.php
+++ b/app/Http/Resources/OrganizationExportResource.php
@@ -24,10 +24,6 @@ public function toArray($request): array
         /** @var Organization $organization */
         $organization = $this->resource;
 
-        $referentsStringArray = [(string) $organization->referent];
-        $referentsStringArray = (bool) $organization->referentCyber ? [...$referentsStringArray, $organization->referentCyber . ' (référent cyber)'] : $referentsStringArray;
-        $referentsStringArray = (bool) $organization->referentElu ? [...$referentsStringArray, $organization->referentElu . ' (référent élu)'] : $referentsStringArray;
-
         $evaluation = $organization->doneEvaluations()->limit(2)->get();
         /** @var ?Evaluation $lastEvaluation */
         $lastEvaluation = $evaluation->first();
@@ -43,9 +39,11 @@ public function toArray($request): array
             'siren' => $organization->siren, //    - siren
             'active' => $organization->active, //    - actif
             'website' => $organization->website, //    - site internet
-            'info' => $organization->info, //    - infos complementaire
-            'fullAddress' => (string) $organization->address, //    - adresses (tous les chamsp)
-            'ref' => implode(PHP_EOL, $referentsStringArray), //     - référents et responsable (tous les champs)
+            'info' => $organization->info, //    - infos complémentaires
+            'fullAddress' => (string) $organization->address, //    - adresses (tous les champs)
+            'referent' => (string) $organization->referent, //     - référents et responsable (tous les champs)
+            'referentCyber' => (string) $organization->referentCyber,
+            'referentElu' => (string) $organization->referentElu,
             'lastEvaluation.cyberMaturity' => (float) $lastEvaluation?->maturity_cyber, //     - score indice maturité cyber
             'previousEvaluation.cyberMaturity' => (float) $previousEvaluation?->maturity_cyber, //    - score indice maturité cyber n-1
         ];
@@ -87,7 +85,7 @@ public function toArray($request): array
             'maturityLevel.organization' => (string) $this->_getAnswerForQuestionName($maturityLevelAnswers, MaturityQuestionNames::ORGANIZATION)?->name,  //     - niveau d'organisation
             'maturityLevel.motivation' => (string) $this->_getAnswerForQuestionName($maturityLevelAnswers, MaturityQuestionNames::MOTIVATION)?->name,  //     - niveau de motivation
 
-            'alert' => (bool) $lastEvaluation?->isThresholdExceeded(),  //     - alerte seuil dépassé (true/false)
+            'alert' => (bool) $lastEvaluation?->isThresholdNotExceeded(),  //     - seuil non dépassé (true/false)
         ];
     }
 
diff --git a/app/Models/Evaluation.php b/app/Models/Evaluation.php
index 84cee533..f7a1b1e4 100644
--- a/app/Models/Evaluation.php
+++ b/app/Models/Evaluation.php
@@ -196,7 +196,7 @@ public function saveAutomaticAnswers()
             }
 
             $evalAnswer->maturity_question_id = $question->id;
-            $evalAnswer->maturity_answer_id = $answer->id;
+            $evalAnswer->maturity_answer_id = $answer?->id;
             $evalAnswer->evaluation_id = $this->id;
             $evalAnswer->save();
         }
@@ -210,14 +210,14 @@ public static function getThreshold(): float
     /**
      * true if OK.
      */
-    public function isThresholdExceeded(): bool
+    public function isThresholdNotExceeded(): bool
     {
         foreach ($this->measureLevels as $measureLevel) {
             if ($measureLevel->actual_level < self::getThreshold()) {
-                return false;
+                return true;
             }
         }
 
-        return true;
+        return false;
     }
 }
diff --git a/lang/fr/exports.php b/lang/fr/exports.php
index f0db22a5..53787383 100644
--- a/lang/fr/exports.php
+++ b/lang/fr/exports.php
@@ -12,7 +12,9 @@
         'website' => 'site internet',
         'info' => 'infos complémentaire',
         'fullAddress' => 'adresse',
-        'ref' => 'référents et  responsable',
+        'referent' => 'référent',
+        'referentElu' => 'référent élu',
+        'referentCyber' => 'référent cyber',
         'lastEvaluation' => [
             'cyberMaturity' => 'score indice maturité cyber',
             'reference' => 'version du référentiel',
-- 
GitLab