diff --git a/bin/signatureBook/process_mailsFromSignatoryBook.php b/bin/signatureBook/process_mailsFromSignatoryBook.php index 386dbf2a3b6052ab4a5ff19da0be52a6739fcff4..cec48b8b32149c7d35aea21eeb96dc9380aa889e 100755 --- a/bin/signatureBook/process_mailsFromSignatoryBook.php +++ b/bin/signatureBook/process_mailsFromSignatoryBook.php @@ -311,6 +311,10 @@ foreach ($retrievedMails['noVersion'] as $resId => $value) { } Bt_validatedMail(['status' => $status, 'resId' => $value['res_id_master']]); + if (empty($validateVisaWorkflow[$value['res_id_master']]['WorkflowCompleted']) || $validateVisaWorkflow[$value['res_id_master']]['WorkflowCompleted'] == false) { + $validateVisaWorkflow[$value['res_id_master']]['WorkflowCompleted'] = true; + } + $historyInfo = 'La signature de la pièce jointe ' . $historyIdentifier . ' a été validée dans le parapheur externe' . $additionalHistoryInfo; } elseif ($value['status'] == 'refused') { if (!empty($value['encodedFile'])) { @@ -346,7 +350,8 @@ foreach ($retrievedMails['noVersion'] as $resId => $value) { 'where' => ['res_id = ?'], 'data' => [$value['res_id_master']] ]); - + + $validateVisaWorkflow[$value['res_id_master']]['WorkflowCompleted'] = false; $historyInfo = 'La signature de la pièce jointe ' . $historyIdentifier . ' a été refusée dans le parapheur externe' . $additionalHistoryInfo; } if (in_array($value['status'], ['validated', 'refused'])) { @@ -432,6 +437,11 @@ foreach ($retrievedMails['resLetterbox'] as $resId => $value) { if ($value['status'] == 'validatedNote') { $status = $validatedStatusAnnot; } + + if (empty($validateVisaWorkflow[$value['res_id']]['WorkflowCompleted']) || $validateVisaWorkflow[$value['res_id_master']]['WorkflowCompleted'] == false) { + $validateVisaWorkflow[$value['res_id']]['WorkflowCompleted'] = true; + } + $history = 'Le document ' . $historyIdentifier . ' a été validé dans le parapheur externe' . $additionalHistoryInfo; } elseif (in_array($value['status'], ['refusedNote', 'refused'])) { Bt_writeLog(['level' => 'INFO', 'message' => 'Document refused']); @@ -439,6 +449,7 @@ foreach ($retrievedMails['resLetterbox'] as $resId => $value) { if ($value['status'] == 'refusedNote') { $status = $refusedStatusAnnot; } + $validateVisaWorkflow[$value['res_id']]['WorkflowCompleted'] = false; $history = 'Le document ' . $historyIdentifier . ' a été refusé dans le parapheur externe' . $additionalHistoryInfo; } Bt_history([ @@ -459,6 +470,14 @@ foreach ($retrievedMails['resLetterbox'] as $resId => $value) { } } +// valide circuit visa +// only, if all documents of letterbox are signed +foreach ($validateVisaWorkflow as $key => $value) { + if (!empty($value['WorkflowCompleted']) && $value['WorkflowCompleted']) { + \ExternalSignatoryBook\controllers\FastParapheurController::processVisaWorkflow(['res_id' => $key, 'processSignatory' => true]); + } +} + Bt_writeLog(['level' => 'INFO', 'message' => 'End of process']); Bt_writeLog(['level' => 'INFO', 'message' => $nbMailsRetrieved.' document(s) retrieved']);