diff --git a/modules/visa/batch/process_mailsFromSignatoryBook.php b/modules/visa/batch/process_mailsFromSignatoryBook.php index d20f00d2697298e8f2e48b294dbb4142c7ceed8d..627cc013a0f09810d8516d8d6ade337a68e5d46e 100755 --- a/modules/visa/batch/process_mailsFromSignatoryBook.php +++ b/modules/visa/batch/process_mailsFromSignatoryBook.php @@ -130,6 +130,7 @@ $GLOBALS['userWS'] = (string)$config->userWS; $GLOBALS['passwordWS'] = (string)$config->passwordWS; $GLOBALS['batchDirectory'] = $GLOBALS['MaarchDirectory'] . 'modules' . DIRECTORY_SEPARATOR . 'visa' . DIRECTORY_SEPARATOR . 'batch'; $validatedStatus = (string)$config->validatedStatus; +$validatedStatusOnlyVisa = (string)$config->validatedStatusOnlyVisa; $refusedStatus = (string)$config->refusedStatus; $validatedStatusAnnot = (string)$config->validatedStatusAnnot; $refusedStatusAnnot = (string)$config->refusedStatusAnnot; @@ -203,7 +204,6 @@ try { echo "\nNo class detected ! \nThe batch cannot be launched !\n\n"; exit(102); } - } catch (IncludeFileError $e) { $GLOBALS['logger']->write( 'Problem with the php include path:' .$e .' '. get_include_path(), @@ -301,7 +301,12 @@ foreach ($retrievedMails['isVersion'] as $resId => $value) { $GLOBALS['logger']->write('Document validated', 'INFO'); $GLOBALS['db']->query("UPDATE res_version_attachments set status = 'OBS' WHERE res_id = ?", [$resId]); - Bt_processVisaWorkflow(['res_id_master' => $value->res_id_master, 'validatedStatus' => $validatedStatus]); + if (!empty($value->onlyVisa) && $value->onlyVisa) { + $status = $validatedStatusOnlyVisa; + } else { + $status = $validatedStatus; + } + Bt_processVisaWorkflow(['res_id_master' => $value->res_id_master, 'validatedStatus' => $status]); $historyInfo = 'La signature de la pièce jointe '.$resId.' (res_version_attachments) a été validée dans le parapheur externe'; Bt_history([ @@ -378,7 +383,12 @@ foreach ($retrievedMails['noVersion'] as $resId => $value) { $GLOBALS['logger']->write('Document validated', 'INFO'); $GLOBALS['db']->query("UPDATE res_attachments SET status = 'OBS' WHERE res_id = ?", [$resId]); - Bt_processVisaWorkflow(['res_id_master' => $value->res_id_master, 'validatedStatus' => $validatedStatus]); + if (!empty($value->onlyVisa) && $value->onlyVisa) { + $status = $validatedStatusOnlyVisa; + } else { + $status = $validatedStatus; + } + Bt_processVisaWorkflow(['res_id_master' => $value->res_id_master, 'validatedStatus' => $status]); $historyInfo = 'La signature de la pièce jointe '.$resId.' (res_attachments) a été validée dans le parapheur externe'; Bt_history([ diff --git a/src/app/action/controllers/ExternalSignatoryBookTrait.php b/src/app/action/controllers/ExternalSignatoryBookTrait.php index ecf2023c79f2092dc5c9f933a9d684b2cadb7b61..31cd7bd2881685f5d032c88c8b83baad11e7442f 100644 --- a/src/app/action/controllers/ExternalSignatoryBookTrait.php +++ b/src/app/action/controllers/ExternalSignatoryBookTrait.php @@ -87,12 +87,17 @@ trait ExternalSignatoryBookTrait return ['errors' => ['No attachment for this mail : ' . $noAttachmentsResource['alt_identifier']]]; } - $attachmentToFreeze = XParaphController::sendDatas([ + $sendedInfo = XParaphController::sendDatas([ 'config' => $config, 'resIdMaster' => $args['resId'], 'info' => $args['data']['info'], 'steps' => $args['data']['steps'], ]); + if (!empty($sendedInfo['error'])) { + return ['errors' => [$sendedInfo['error']]]; + } else { + $attachmentToFreeze = $sendedInfo['sended']; + } } } diff --git a/src/app/external/externalSignatoryBook/controllers/XParaphController.php b/src/app/external/externalSignatoryBook/controllers/XParaphController.php index 5c2c90b11a83b67963615de726b8f225b3012403..44962b5b94fd2b58a45bea9cb6367d9db9d2033f 100755 --- a/src/app/external/externalSignatoryBook/controllers/XParaphController.php +++ b/src/app/external/externalSignatoryBook/controllers/XParaphController.php @@ -101,7 +101,7 @@ class XParaphController $isError = $response['response']->children('http://schemas.xmlsoap.org/soap/envelope/')->Body; if (!empty($isError->Fault[0])) { $error = $response['response']->children('http://schemas.xmlsoap.org/soap/envelope/')->Body->Fault[0]->children()->detail; - return ['error' => $error]; + return ['error' => (string)$error]; } else { $depotId = $response['response']->children('SOAP-ENV', true)->Body->children('ns1', true)->XPRF_DeposerResponse->children()->return->children()->depotid; $attachmentToFreeze[$collId][$resId] = (string)$depotId; @@ -213,7 +213,7 @@ class XParaphController if ($state['id'] == 'refused') { $aArgs['idsToRetrieve'][$version][$resId]->status = 'refused'; $aArgs['idsToRetrieve'][$version][$resId]->noteContent = $state['note']; - } elseif ($state['id'] == 'validateSignature' || $state['id'] == 'validateNoSignature') { + } elseif ($state['id'] == 'validateSignature' || $state['id'] == 'validateOnlyVisa') { $processedFile = XParaphController::getFile(['config' => $aArgs['config'], 'depotId' => $value->external_id]); if (!empty($processedFile['errors'])) { unset($aArgs['idsToRetrieve'][$version][$resId]); @@ -240,6 +240,9 @@ class XParaphController $aArgs['idsToRetrieve'][$version][$resId]->encodedFile = $encodedFile; $aArgs['idsToRetrieve'][$version][$resId]->noteContent = $state['note']; + if ($state['id'] == 'validateOnlyVisa') { + $aArgs['idsToRetrieve'][$version][$resId]->onlyVisa = true; + } } else { unset($aArgs['idsToRetrieve'][$version][$resId]); } @@ -254,21 +257,25 @@ class XParaphController { // remove first step. Always deposit unset($aArgs['avancement'][0]); - $state['id'] = 'validateNoSignature'; + $state['id'] = 'validateOnlyVisa'; $signature = false; - foreach ($aArgs['avancement'] as $step) { - if ($step['etat'] == 'ACTIVE') { - $state['id'] = 'ACTIVE'; - break; - } elseif ($step['etat'] == 'KO') { - $state['id'] = 'refused'; - $state['note'] = $step['note']; - break; - } - if ($step['typeEtape'] == 'SIGN') { - $signature = true; + if (!empty($aArgs['avancement'])) { + foreach ($aArgs['avancement'] as $step) { + if ($step['etat'] == 'ACTIVE') { + $state['id'] = 'ACTIVE'; + break; + } elseif ($step['etat'] == 'KO') { + $state['id'] = 'refused'; + $state['note'] = $step['note']; + break; + } + if ($step['typeEtape'] == 'SIGN') { + $signature = true; + } } + } else { + $state['id'] = 'ACTIVE'; } if ($signature) { @@ -424,5 +431,4 @@ class XParaphController return $response->withStatus(204); } - }