From ce0814d99f2a5a71de7860224025ab5b69e2e896 Mon Sep 17 00:00:00 2001 From: "florian.azizian" <florian.azizian@maarch.org> Date: Wed, 12 Dec 2018 17:12:15 +0100 Subject: [PATCH] FEAT #8960 improve log ixbus --- .../actions/sendToExternalSignatureBook.php | 29 ++++++--- modules/visa/batch/batch_tools.php | 5 ++ .../batch/process_mailsFromSignatoryBook.php | 5 ++ modules/visa/class/IxbusController.php | 61 ++++++++++++------- src/core/models/CurlModel.php | 16 ++++- 5 files changed, 83 insertions(+), 33 deletions(-) diff --git a/apps/maarch_entreprise/actions/sendToExternalSignatureBook.php b/apps/maarch_entreprise/actions/sendToExternalSignatureBook.php index a2a6caae2dd..e6118b13bc2 100644 --- a/apps/maarch_entreprise/actions/sendToExternalSignatureBook.php +++ b/apps/maarch_entreprise/actions/sendToExternalSignatureBook.php @@ -54,31 +54,40 @@ function get_form_txt($values, $path_manage_action, $id_action, $table, $module, $html .= '<form name="sendToExternalSB" id="sendToExternalSB" method="post" class="forms" action="#">'; $html .= '<input type="hidden" name="chosen_action" id="chosen_action" value="end_action" />'; + $htmlModal = ''; if (!empty($config)) { if ($config['id'] == 'ixbus') { include_once 'modules/visa/class/IxbusController.php'; - $html .= IxbusController::getModal($config); + $htmlModal = IxbusController::getModal($config); } elseif ($config['id'] == 'iParapheur') { include_once 'modules/visa/class/IParapheurController.php'; - $html .= IParapheurController::getModal($config); + $htmlModal = IParapheurController::getModal($config); } elseif ($config['id'] == 'fastParapheur') { include_once 'modules/visa/class/FastParapheurController.php'; - $html .= FastParapheurController::getModal($config); - } elseif ($config['id'] == 'maarchParapheur') { - include_once 'modules/visa/class/MaarchParapheurController.php'; + $htmlModal = FastParapheurController::getModal($config); + } - $html .= MaarchParapheurController::getModal($config); + if (!empty($htmlModal['error'])) { + $error = $htmlModal['error']; + } else { + $html .= $htmlModal; } + } else { + $error = _FILE . ' modules/visa/xml/remoteSignatoryBooks.xml' . ' ' . _NOT_EXISTS; } $html .='<div align="center">'; - $html .=' <input type="button" name="validate" id="validate" value="'._VALIDATE.'" class="button" ' . - 'onclick="valid_action_form(\'sendToExternalSB\', \'' . $path_manage_action . - '\', \'' . $id_action . '\', \'' . $values_str . '\', \'res_letterbox\', \'null\', \'letterbox_coll\', \'' . - $mode . '\');" /> '; + if (empty($error)) { + $html .=' <input type="button" name="validate" id="validate" value="'._VALIDATE.'" class="button" ' . + 'onclick="valid_action_form(\'sendToExternalSB\', \'' . $path_manage_action . + '\', \'' . $id_action . '\', \'' . $values_str . '\', \'res_letterbox\', \'null\', \'letterbox_coll\', \'' . + $mode . '\');" /> '; + } else { + $html .= '<br>' . $error . '<br><br>'; + } $html .='<input type="button" name="cancel" id="cancel" class="button" value="'._CANCEL.'" onclick="pile_actions.action_pop();destroyModal(\'modal_'.$id_action.'\');"/>'; $html .='</div>'; diff --git a/modules/visa/batch/batch_tools.php b/modules/visa/batch/batch_tools.php index 6971519c33b..095f7fb0241 100755 --- a/modules/visa/batch/batch_tools.php +++ b/modules/visa/batch/batch_tools.php @@ -213,6 +213,11 @@ function Bt_createAttachment($aArgs = []) $curl = curl_init(); curl_setopt_array($curl, $opts); $rawResponse = curl_exec($curl); + $error = curl_error($curl); + if (!empty($error)) { + $GLOBALS['logger']->write($error, 'ERROR'); + exit; + } return json_decode($rawResponse, true); } diff --git a/modules/visa/batch/process_mailsFromSignatoryBook.php b/modules/visa/batch/process_mailsFromSignatoryBook.php index fe96a1ff162..917ba721119 100755 --- a/modules/visa/batch/process_mailsFromSignatoryBook.php +++ b/modules/visa/batch/process_mailsFromSignatoryBook.php @@ -265,6 +265,11 @@ if ($configRemoteSignatoryBook['id'] == 'ixbus') { $retrievedMails = MaarchParapheurController::retrieveSignedMails(['config' => $configRemoteSignatoryBook, 'idsToRetrieve' => $idsToRetrieve]); } +if (!empty($retrievedMails['error'])) { + $GLOBALS['logger']->write($retrievedMails['error'], 'ERROR'); + exit; +} + // On dégele les pj et on créé une nouvelle ligne si le document a été signé foreach ($retrievedMails['isVersion'] as $resId => $value) { $GLOBALS['logger']->write('Update res_version_attachments : ' . $resId . '. ExternalId : ' . $value->external_id, 'INFO'); diff --git a/modules/visa/class/IxbusController.php b/modules/visa/class/IxbusController.php index dc5b63a03a5..dd0fd48eb9b 100755 --- a/modules/visa/class/IxbusController.php +++ b/modules/visa/class/IxbusController.php @@ -18,7 +18,15 @@ class IxbusController public static function getModal($config) { $initializeDatas = IxbusController::getInitializeDatas($config); - + if (!empty($initializeDatas['error'])) { + return ['error' => $initializeDatas['error']]; + } + if (empty($initializeDatas['natures'])) { + return ['error' => _NATURE . ' ' . _IS_EMPTY ]; + } + if (empty($initializeDatas['messagesModel'])) { + return ['error' => _VISA_WORKFLOW . ' ' . _IS_EMPTY ]; + } $html .= '<label for="nature">' . _NATURE_IXBUS . '</label><select name="nature" id="nature">'; if (!empty($initializeDatas['natures']->Classeur)) { foreach ($initializeDatas['natures']->Classeur as $value) { @@ -67,30 +75,36 @@ class IxbusController 'options' => [CURLOPT_HEADER => 1] ]); - $cookie = ''; - foreach ($data['cookies'] as $key => $value) { - $cookie = $key . '=' . $value . ';'; + if (!empty($data['cookies'])) { + $cookie = ''; + foreach ($data['cookies'] as $key => $value) { + $cookie = $key . '=' . $value . ';'; + } + } elseif (!empty($data['error'])) { + return ["error" => $data['error']]; } - return $cookie; + return ["cookie" => $cookie]; } public static function getInitializeDatas($config) { $sessionId = IxbusController::createSession($config); - $rawResponse['natures'] = IxbusController::getNature(['config' => $config, 'sessionId' => $sessionId]); - // $rawResponse['usersList'] = IxbusController::getUsersList(['config' => $config, 'sessionId' => $sessionId]); - $messagesModels = IxbusController::getMessagesModel(['config' => $config, 'sessionId' => $sessionId]); + if (!empty($sessionId['error'])) { + return ['error' => $sessionId['error']]; + } + $rawResponse['natures'] = IxbusController::getNature(['config' => $config, 'sessionId' => $sessionId['cookie']]); + // $rawResponse['usersList'] = IxbusController::getUsersList(['config' => $config, 'sessionId' => $sessionId['cookie']]); + $userInfo = IxbusController::getInfoUtilisateur(['config' => $config, 'login' => $config['data']['userId'], 'password' => $config['data']['password']]); + $messagesModels = IxbusController::getMessagesModel(['config' => $config, 'sessionId' => $sessionId['cookie'], 'userIdentifiant' => $userInfo->Identifiant]); $rawResponse['messagesModel'] = []; if (!empty($rawResponse['natures']->Classeur)) { foreach ($rawResponse['natures']->Classeur as $nature) { foreach ($messagesModels->Message as $message) { - if ($message->Identifiant == 392213) { - $messageModel = IxbusController::getMessageNature(['config' => $config, 'messageId' => $message->Identifiant, 'sessionId' => $sessionId]); - if ((string)$messageModel->IdentifiantClasseur == (string)$nature->Identifiant) { - $rawResponse['messagesModel'][(string)$messageModel->IdentifiantMessage] = (string)$message->IdentifiantSpecifique; - } + $messageModel = IxbusController::getMessageNature(['config' => $config, 'messageId' => $message->Identifiant, 'sessionId' => $sessionId['cookie']]); + if ((string)$messageModel->IdentifiantClasseur == (string)$nature->Identifiant) { + $rawResponse['messagesModel'][(string)$messageModel->IdentifiantMessage] = (string)$message->IdentifiantSpecifique; } } } @@ -142,7 +156,7 @@ class IxbusController <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <GetMessagesModel xmlns="http://www.srci.fr"> - <utilisateurID>8</utilisateurID> + <utilisateurID>'.$aArgs['userIdentifiant'].'</utilisateurID> <organisationID>'.$aArgs['config']['data']['organizationId'].'</organisationID> <serviceID>-1</serviceID> <typeMessage>Production</typeMessage> @@ -253,6 +267,9 @@ class IxbusController public static function sendDatas($aArgs) { $sessionId = IxbusController::createSession($aArgs['config']); + if (!empty($sessionId['error'])) { + return ['error' => $sessionId['error']]; + } $userInfo = IxbusController::getInfoUtilisateur(['config' => $aArgs['config'], 'login' => $aArgs['loginIxbus'], 'password' => $aArgs['passwordIxbus']]); $attachments = \Attachment\models\AttachmentModel::getOnView([ @@ -318,7 +335,7 @@ class IxbusController "Cache-Control: no-cache", "Pragma: no-cache", "Content-length: ".strlen($xmlPostString), - "Cookie:".$sessionId, + "Cookie:".$sessionId['cookie'], "SOAPAction: \"http://www.srci.fr/SendDossier\"" ], CURLOPT_RETURNTRANSFER => true, @@ -350,7 +367,7 @@ class IxbusController if ($zip->open($zipFilename, ZipArchive::CREATE) === true) { $zip->addFile($aArgs['filepath'], $aArgs['filename']); - $adrInfo = \Convert\models\AdrModel::getConvertedDocumentById(['resId' => $aArgs['res_id_master'], 'collId' => 'letterbox_coll', 'type' => 'PDF']); + $adrInfo = \Convert\controllers\ConvertPdfController::getConvertedPdfById(['resId' => $aArgs['res_id_master'], 'collId' => 'letterbox_coll']); $docserverInfo = \Docserver\models\DocserverModel::getByDocserverId(['docserverId' => $adrInfo['docserver_id']]); $arrivedMailfilePath = $docserverInfo['path_template'] . str_replace('#', '/', $adrInfo['path']) . $adrInfo['filename']; $zip->addFile($arrivedMailfilePath, 'courrier_arrivee.pdf'); @@ -368,24 +385,26 @@ class IxbusController public static function retrieveSignedMails($aArgs) { $sessionId = IxbusController::createSession($aArgs['config']); - + if (!empty($sessionId['error'])) { + return ['error' => $sessionId['error']]; + } foreach (['noVersion', 'isVersion'] as $version) { foreach ($aArgs['idsToRetrieve'][$version] as $resId => $value) { - $etatDossier = IxbusController::getEtatDossier(['config' => $aArgs['config'], 'sessionId' => $sessionId, 'dossier_id' => $value->external_id]); + $etatDossier = IxbusController::getEtatDossier(['config' => $aArgs['config'], 'sessionId' => $sessionId['cookie'], 'dossier_id' => $value->external_id]); // Refused if ((string)$etatDossier == $aArgs['config']['data']['ixbusIdEtatRefused']) { $aArgs['idsToRetrieve'][$version][$resId]->status = 'refused'; - $notes = IxbusController::getDossier(['config' => $aArgs['config'], 'sessionId' => $sessionId, 'dossier_id' => $value->external_id]); + $notes = IxbusController::getDossier(['config' => $aArgs['config'], 'sessionId' => $sessionId['cookie'], 'dossier_id' => $value->external_id]); $aArgs['idsToRetrieve'][$version][$resId]->noteContent = (string)$notes->MotifRefus; // Validated } elseif ((string)$etatDossier == $aArgs['config']['data']['ixbusIdEtatValidated']) { $aArgs['idsToRetrieve'][$version][$resId]->status = 'validated'; - $signedDocument = IxbusController::getAnnexes(['config' => $aArgs['config'], 'sessionId' => $sessionId, 'dossier_id' => $value->external_id]); + $signedDocument = IxbusController::getAnnexes(['config' => $aArgs['config'], 'sessionId' => $sessionId['cookie'], 'dossier_id' => $value->external_id]); $aArgs['idsToRetrieve'][$version][$resId]->format = 'pdf'; // format du fichier récupéré $aArgs['idsToRetrieve'][$version][$resId]->encodedFile = (string)$signedDocument->Fichier; - $notes = IxbusController::getAnnotations(['config' => $aArgs['config'], 'sessionId' => $sessionId, 'dossier_id' => $value->external_id]); + $notes = IxbusController::getAnnotations(['config' => $aArgs['config'], 'sessionId' => $sessionId['cookie'], 'dossier_id' => $value->external_id]); $aArgs['idsToRetrieve'][$version][$resId]->noteContent = (string)$notes->Annotation->Texte; } else { unset($aArgs['idsToRetrieve'][$version][$resId]); diff --git a/src/core/models/CurlModel.php b/src/core/models/CurlModel.php index b59cf9862da..b12fd25730b 100644 --- a/src/core/models/CurlModel.php +++ b/src/core/models/CurlModel.php @@ -85,8 +85,8 @@ class CurlModel 'moduleId' => 'curl', 'level' => 'DEBUG', 'tableName' => '', - 'recordId' => '', - 'eventType' => 'Exec Curl : ' . $aArgs['url'], + 'recordId' => 'Body : ' . json_encode($bodyData), + 'eventType' => 'Exec Curl : ' . $curlConfig['url'], 'eventId' => $rawResponse ]); @@ -155,6 +155,18 @@ class CurlModel 'eventId' => $rawResponse ]); + if (!empty($error)) { + LogsController::add([ + 'isTech' => true, + 'moduleId' => 'curl', + 'level' => 'ERROR', + 'tableName' => '', + 'recordId' => '', + 'eventType' => 'Error Exec Curl : ' . $error, + 'eventId' => $rawResponse + ]); + } + return ['response' => simplexml_load_string($rawResponse), 'infos' => $infos, 'cookies' => $cookies, 'raw' => $rawResponse, 'error' => $error]; } -- GitLab