From 4c02e4b27e4939711e6e5edb69e511bb675d0e5f Mon Sep 17 00:00:00 2001
From: Damien <damien.burel@maarch.org>
Date: Tue, 24 Mar 2020 11:25:14 +0100
Subject: [PATCH] FEAT #11902 TIME 1:00 Fix reconcile when already signed

---
 src/app/action/controllers/ActionMethodController.php     | 6 +++++-
 src/app/action/controllers/PreProcessActionController.php | 4 ++--
 2 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/src/app/action/controllers/ActionMethodController.php b/src/app/action/controllers/ActionMethodController.php
index ff7a9a24377..810287aa4a8 100644
--- a/src/app/action/controllers/ActionMethodController.php
+++ b/src/app/action/controllers/ActionMethodController.php
@@ -920,6 +920,11 @@ class ActionMethodController
             if (!empty($storeResult['errors'])) {
                 return ['errors' => ["[storeResourceOnDocServer] {$storeResult['errors']}"]];
             }
+
+            $alreadySigned = AdrModel::getDocuments(['select' => [1], 'where' => ['type = ?', 'res_id = ?', 'version = ?'], 'data' => ['SIGN', $args['data']['resId'], $targetResource['version']]]);
+            if (!empty($alreadySigned)) {
+                AdrModel::deleteDocumentAdr(['where' => ['res_id = ?', 'type in (?)', 'version = ?'], 'data' => [$args['data']['resId'], ['SIGN', 'TNL'], $targetResource['version']]]);
+            }
             AdrModel::createDocumentAdr([
                 'resId'         => $args['data']['resId'],
                 'type'          => 'SIGN',
@@ -929,7 +934,6 @@ class ActionMethodController
                 'version'       => $targetResource['version'],
                 'fingerprint'   => $storeResult['fingerPrint']
             ]);
-
         } else {
             $id = StoreController::storeAttachment([
                 'encodedFile'   => base64_encode(file_get_contents($pathToDocument)),
diff --git a/src/app/action/controllers/PreProcessActionController.php b/src/app/action/controllers/PreProcessActionController.php
index 396f54a7e98..dac99fedfbb 100755
--- a/src/app/action/controllers/PreProcessActionController.php
+++ b/src/app/action/controllers/PreProcessActionController.php
@@ -1488,10 +1488,10 @@ class PreProcessActionController
             }
 
             if (empty($resource['filename'])) {
-                $resourcesInformation['error'][] = ['alt_identifier' => $resource['alt_identifier'], 'res_id' => $resId, 'reason' => 'noFilename'];
+                $resourcesInformation['error'][] = ['alt_identifier' => $resource['alt_identifier'], 'res_id' => $resId, 'reason' => 'noFile'];
                 continue;
             }
-            
+
             $resourcesInformation['success'][] = ['alt_identifier' => $resource['alt_identifier'], 'res_id' => $resId];
         }
 
-- 
GitLab