From 11e2533c2444b3f18f4a0bfbf976e6d6b9625b66 Mon Sep 17 00:00:00 2001
From: Damien <damien.burel@maarch.org>
Date: Fri, 25 Sep 2020 10:15:21 +0200
Subject: [PATCH] FEAT #14002 TIME 0:30 Improve import registered mails

---
 .../controllers/AlfrescoController.php        | 10 +++-
 .../controllers/RegisteredMailController.php  | 50 +++++++++----------
 2 files changed, 34 insertions(+), 26 deletions(-)

diff --git a/src/app/external/alfresco/controllers/AlfrescoController.php b/src/app/external/alfresco/controllers/AlfrescoController.php
index 7f8f1546ee9..a9e3351829f 100644
--- a/src/app/external/alfresco/controllers/AlfrescoController.php
+++ b/src/app/external/alfresco/controllers/AlfrescoController.php
@@ -548,7 +548,10 @@ class AlfrescoController
         }
         $entityInformations['alfresco']['password'] = PasswordModel::decrypt(['cryptedPassword' => $entityInformations['alfresco']['password']]);
 
-        $document = ResModel::getById(['select' => ['filename', 'subject', 'alt_identifier', 'external_id'], 'resId' => $args['resId']]);
+        $document = ResModel::getById([
+            'select'    => ['filename', 'subject', 'alt_identifier', 'external_id', 'type_id', 'priority'],
+            'resId'     => $args['resId']
+        ]);
         if (empty($document)) {
             return ['errors' => 'Document does not exist'];
         } elseif (empty($document['filename'])) {
@@ -605,6 +608,11 @@ class AlfrescoController
         $body = [
             'properties' => [
                 'cm:description'    => $document['alt_identifier'],
+                'cm:author'         => $entityInformations['alfresco']['login'],
+                'cm:owner'          => $entityInformations['alfresco']['login'],
+                'cm:creator'        => $entityInformations['alfresco']['login'],
+//                'maarch:type'       => $document['type_id'],
+//                'maarch:chrono'     => $document['alt_identifier']
             ],
         ];
         $curlResponse = CurlModel::execSimple([
diff --git a/src/app/registeredMail/controllers/RegisteredMailController.php b/src/app/registeredMail/controllers/RegisteredMailController.php
index b04bdc68069..c292d694ebb 100644
--- a/src/app/registeredMail/controllers/RegisteredMailController.php
+++ b/src/app/registeredMail/controllers/RegisteredMailController.php
@@ -264,20 +264,20 @@ class RegisteredMailController
             } elseif (!Validator::date()->notEmpty()->validate($registeredMail['departureDate'])) {
                 $errors[] = ['error' => "Argument departureDate is empty or not a date for registered mail {$key}", 'index' => $key, 'lang' => ''];
                 continue;
-            } elseif (!Validator::stringType()->notEmpty()->validate($registeredMail['type']) || !in_array($registeredMail['type'], ['2D', '2C', 'RW'])) {
-                $errors[] = ['error' => "Argument type is empty or not valid for registered mail {$key}", 'index' => $key, 'lang' => ''];
+            } elseif (!Validator::stringType()->notEmpty()->validate($registeredMail['registeredMail_type']) || !in_array($registeredMail['registeredMail_type'], ['2D', '2C', 'RW'])) {
+                $errors[] = ['error' => "Argument registeredMail_type is empty or not valid for registered mail {$key}", 'index' => $key, 'lang' => ''];
                 continue;
-            } elseif (!Validator::stringType()->notEmpty()->validate($registeredMail['warranty']) || !in_array($registeredMail['warranty'], ['R1', 'R2', 'R3'])) {
-                $errors[] = ['error' => "Argument warranty is empty or not valid for registered mail {$key}", 'index' => $key, 'lang' => ''];
+            } elseif (!Validator::stringType()->notEmpty()->validate($registeredMail['registeredMail_warranty']) || !in_array($registeredMail['registeredMail_warranty'], ['R1', 'R2', 'R3'])) {
+                $errors[] = ['error' => "Argument registeredMail_warranty is empty or not valid for registered mail {$key}", 'index' => $key, 'lang' => ''];
                 continue;
-            } elseif ($registeredMail['type'] == 'RW' && $registeredMail['warranty'] == 'R3') {
-                $errors[] = ['error' => "Argument warranty is not allowed for type RW for registered mail {$key}", 'index' => $key, 'lang' => ''];
+            } elseif ($registeredMail['registeredMail_type'] == 'RW' && $registeredMail['registeredMail_warranty'] == 'R3') {
+                $errors[] = ['error' => "Argument registeredMail_warranty is not allowed for type RW for registered mail {$key}", 'index' => $key, 'lang' => ''];
                 continue;
-            } elseif (!Validator::intVal()->notEmpty()->validate($registeredMail['issuingSiteId'])) {
-                $errors[] = ['error' => "Argument issuingSiteId is empty or not an integer for registered mail {$key}", 'index' => $key, 'lang' => ''];
+            } elseif (!Validator::intVal()->notEmpty()->validate($registeredMail['registeredMail_issuingSite'])) {
+                $errors[] = ['error' => "Argument registeredMail_issuingSite is empty or not an integer for registered mail {$key}", 'index' => $key, 'lang' => ''];
                 continue;
             } elseif ((empty($registeredMail['company']) && (empty($registeredMail['lastname']) || empty($registeredMail['firstname']))) || empty($registeredMail['addressStreet']) || empty($registeredMail['addressPostcode']) || empty($registeredMail['addressTown'])) {
-                $errors[] = ['error' => "Argument company and firstname/lastname, or addressStreet, addressPostcode, addressTown or addressCountry is empty for registered mail {$key}", 'index' => $key, 'lang' => ''];
+                $errors[] = ['error' => "Argument company and firstname/lastname, or addressStreet, addressPostcode, addressTown is empty for registered mail {$key}", 'index' => $key, 'lang' => ''];
                 continue;
             }
 
@@ -296,18 +296,18 @@ class RegisteredMailController
             }
 
             $issuingSite = IssuingSiteModel::getById([
-                'id'        => $registeredMail['issuingSiteId'],
+                'id'        => $registeredMail['registeredMail_issuingSite'],
                 'select'    => ['label', 'address_number', 'address_street', 'address_additional1', 'address_additional2', 'address_postcode', 'address_town', 'address_country']
             ]);
             if (empty($issuingSite)) {
-                $errors[] = ['error' => "Argument issuingSiteId does not exist for registered mail {$key}", 'index' => $key, 'lang' => ''];
+                $errors[] = ['error' => "Argument issuingSite does not exist for registered mail {$key}", 'index' => $key, 'lang' => ''];
                 continue;
             }
 
             $range = RegisteredNumberRangeModel::get([
                 'select'    => ['id', 'range_end', 'current_number'],
                 'where'     => ['type = ?', 'status = ?'],
-                'data'      => [$registeredMail['type'], 'OK']
+                'data'      => [$registeredMail['registeredMail_type'], 'OK']
             ]);
             if (empty($range)) {
                 $errors[] = ['error' => "No range found for registered mail {$key}", 'index' => $key, 'lang' => ''];
@@ -320,7 +320,7 @@ class RegisteredMailController
             }
 
             $resId = DatabaseModel::getNextSequenceValue(['sequenceId' => 'res_id_mlb_seq']);
-            $registeredMailNumber = RegisteredMailController::getRegisteredMailNumber(['type' => $registeredMail['type'], 'rawNumber' => $range[0]['current_number']]);
+            $registeredMailNumber = RegisteredMailController::getRegisteredMailNumber(['type' => $registeredMail['registeredMail_type'], 'rawNumber' => $range[0]['current_number']]);
             $data = StoreController::prepareResourceStorage([
                 'resId'         => $resId,
                 'modelId'       => $registeredMail['modelId'],
@@ -346,28 +346,28 @@ class RegisteredMailController
 
             $date      = new \DateTime($registeredMail['departureDate']);
             $date      = $date->format('d/m/Y');
-            $reference = "{$date} - {$registeredMail['reference']}";
+            $reference = "{$date} - {$registeredMail['registeredMail_reference']}";
 
             $recipient = [
                 'company'               => $registeredMail['company'],
                 'civility'              => $registeredMail['civility'],
                 'firstname'             => $registeredMail['firstname'],
                 'lastname'              => $registeredMail['lastname'],
-                'address_number'        => $registeredMail['addressNumber'],
-                'address_street'        => $registeredMail['addressStreet'],
-                'address_additional1'   => $registeredMail['addressAdditional1'],
-                'address_additional2'   => $registeredMail['addressAdditional2'],
-                'address_postcode'      => $registeredMail['addressPostcode'],
-                'address_town'          => $registeredMail['addressTown'],
-                'address_country'       => 'FRANCE'
+                'addressNumber'         => $registeredMail['addressNumber'],
+                'addressStreet'         => $registeredMail['addressStreet'],
+                'addressAdditional1'    => $registeredMail['addressAdditional1'],
+                'addressAdditional2'    => $registeredMail['addressAdditional2'],
+                'addressPostcode'       => $registeredMail['addressPostcode'],
+                'addressTown'           => $registeredMail['addressTown'],
+                'addressCountry'        => 'FRANCE'
             ];
 
             RegisteredMailModel::create([
                 'res_id'        => $resId,
-                'type'          => $registeredMail['type'],
-                'issuing_site'  => $registeredMail['issuingSiteId'],
-                'warranty'      => $registeredMail['warranty'],
-                'letter'        => empty($registeredMail['letter']) ? 'false' : 'true',
+                'type'          => $registeredMail['registeredMail_type'],
+                'issuing_site'  => $registeredMail['registeredMail_issuingSite'],
+                'warranty'      => $registeredMail['registeredMail_warranty'],
+                'letter'        => empty($registeredMail['registeredMail_letter']) ? 'false' : 'true',
                 'recipient'     => json_encode($recipient),
                 'number'        => $range[0]['current_number'],
                 'reference'     => $reference,
-- 
GitLab