diff --git a/apps/maarch_entreprise/actions/sendToExternalSignatureBook.php b/apps/maarch_entreprise/actions/sendToExternalSignatureBook.php index cdb58e0592e375ce1a073526a6fa2248659ebeb4..4395a56d89ca5538007c81faadec6552a2cfdfde 100644 --- a/apps/maarch_entreprise/actions/sendToExternalSignatureBook.php +++ b/apps/maarch_entreprise/actions/sendToExternalSignatureBook.php @@ -37,7 +37,8 @@ function get_form_txt($values, $path_manage_action, $id_action, $table, $module, $labelAction = functions::show_string($resAction->label_action); } - $html = '<h2 class="title">' . $labelAction . '</h2>'; + $html = '<div id="frm_error_'.$id_action.'" class="error"></div>'; + $html .= '<h2 class="title">' . $labelAction . '</h2>'; $html .= '<form name="sendToExternalSB" id="sendToExternalSB" method="post" class="forms" action="#">'; $html .= '<input type="hidden" name="chosen_action" id="chosen_action" value="end_action" />'; @@ -72,6 +73,27 @@ function get_form_txt($values, $path_manage_action, $id_action, $table, $module, function check_form($form_id, $values) { + $_SESSION['action_error'] = ''; + $config = getXml(); + + if (!empty($config)) { + if ($config['id'] == 'ixbus') { + include_once 'modules/visa/class/IxbusController.php'; + + $loginIxbus = get_value_fields($values, 'loginIxbus'); + $passwordIxbus = get_value_fields($values, 'passwordIxbus'); + + $userInfo = IxbusController::getInfoUtilisateur(['config' => $config, 'login' => $loginIxbus, 'password' => $passwordIxbus]); + + if (!empty($userInfo->Identifiant)) { + return true; + } else { + $_SESSION['action_error'] = _WRONG_ID_PASSWORD_IXBUS; + return false; + } + } + } + return true; } @@ -96,7 +118,8 @@ function manage_form($arr_id, $history, $id_action, $label_action, $status, $col $passwordIxbus = get_value_fields($values_form, 'passwordIxbus'); $nature = get_value_fields($values_form, 'nature'); $messageModel = get_value_fields($values_form, 'messageModel'); - $attachmentToFreeze = IxbusController::sendDatas(['config' => $config, 'resIdMaster' => $res_id, 'loginIxbus' => $loginIxbus, 'passwordIxbus' => $passwordIxbus, 'classeurName' => $nature, 'messageModel' => $messageModel]); + $manSignature = get_value_fields($values_form, 'mansignature'); + $attachmentToFreeze = IxbusController::sendDatas(['config' => $config, 'resIdMaster' => $res_id, 'loginIxbus' => $loginIxbus, 'passwordIxbus' => $passwordIxbus, 'classeurName' => $nature, 'messageModel' => $messageModel, 'manSignature' => var_export($manSignature, true)]); } elseif ($config['id'] == 'iParapheur') { include_once 'modules/visa/class/IParapheurController.php'; $attachmentToFreeze = IParapheurController::sendDatas(['config' => $config, 'resIdMaster' => $res_id]); diff --git a/modules/visa/class/IxbusController.php b/modules/visa/class/IxbusController.php index e30cb538c0b1588b86c9dfa677f8a144a937c575..4c11462013694d441ea74f2be28fef1418250758 100755 --- a/modules/visa/class/IxbusController.php +++ b/modules/visa/class/IxbusController.php @@ -31,8 +31,6 @@ class IxbusController } $html .= '</select><br /><br />'; - // $initializeDatas['messagesModel'] = ['12' => 'modele courrier', '34' => 'DRH']; - $html .= '<label for="messageModel">' . _WORKFLOW_MODEL_IXBUS . '</label><select name="messageModel" id="messageModel">'; foreach ($initializeDatas['messagesModel'] as $key => $value) { $html .= '<option value="'; @@ -44,6 +42,7 @@ class IxbusController $html .= '</select><br /><br />'; $html .= '<label for="loginIxbus">'._ID_IXBUS.'</label><input name="loginIxbus" id="loginIxbus"/><br /><br />'; $html .= '<label for="passwordIxbus">'._PASSWORD_IXBUS.'</label><input type="password" name="passwordIxbus" id="passwordIxbus"/><br /><br />'; + $html .= _ESIGN . '<input type="radio" name="mansignature" id="esignature" value="false" checked="checked" />' . _HANDWRITTEN_SIGN .'<input type="radio" name="mansignature" id="signature" value="true" checked="checked" /><br /><br />'; return $html; } @@ -282,6 +281,14 @@ class IxbusController $encodedZipFile = IxbusController::createZip(['filepath' => $filePath, 'filename' => $adrInfo['filename'], 'res_id_master' => $aArgs['resIdMaster']]); + $mainResource = \Resource\models\ResModel::getExtById(['resId' => $aArgs['resIdMaster'], 'select' => ['process_limit_date']]); + if (empty($mainResource['process_limit_date'])) { + $processLimitDate = $mainResource['process_limit_date'] = date('Y-m-d', strtotime(date("Y-m-d"). ' + 7 days')); + } else { + $processLimitDateTmp = explode(" ", $mainResource['process_limit_date']); + $processLimitDate = $processLimitDateTmp[0]; + } + $xmlPostString = '<?xml version="1.0" encoding="utf-8"?> <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> @@ -291,12 +298,12 @@ class IxbusController <NomDossier>'. $value['title'] .'</NomDossier> <NomModele>'. $aArgs['messageModel'] .'</NomModele> <NomNature>'. $aArgs['classeurName'] .'</NomNature> - <DateLimite>2019-12-17</DateLimite> + <DateLimite>'.$processLimitDate.'</DateLimite> <LoginResponsable>'. $userInfo->NomUtilisateur .'</LoginResponsable> <Confidentiel>false</Confidentiel> <DocumentModifiable>true</DocumentModifiable> <AnnexesSignables>false</AnnexesSignables> - <SignatureManuscrite>false</SignatureManuscrite> + <SignatureManuscrite>'.$aArgs['manSignature'].'</SignatureManuscrite> </SendDossier> </soap:Body> </soap:Envelope>'; @@ -365,12 +372,12 @@ class IxbusController $etatDossier = IxbusController::getEtatDossier(['config' => $aArgs['config'], 'sessionId' => $sessionId, 'dossier_id' => $value->external_id]); // Refused - if ((string)$etatDossier == $aArgs['config']['data']['ixbusIdRefused']) { + if ((string)$etatDossier == $aArgs['config']['data']['ixbusIdEtatRefused']) { $aArgs['idsToRetrieve'][$version][$resId]->status = 'refused'; $notes = IxbusController::getAnnotations(['config' => $aArgs['config'], 'sessionId' => $sessionId, 'dossier_id' => $value->external_id]); $aArgs['idsToRetrieve'][$version][$resId]->noteContent = (string)$notes->Annotation; // Validated - } elseif ((string)$etatDossier == $aArgs['config']['data']['ixbusIdValidated']) { + } 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]); $aArgs['idsToRetrieve'][$version][$resId]->format = 'pdf'; // format du fichier récupéré diff --git a/modules/visa/lang/en.php b/modules/visa/lang/en.php index 20e19407b2a446936e4736e5b86532476843c36f..1b224a4b1ad15d866e367cf3a634dd529977338e 100755 --- a/modules/visa/lang/en.php +++ b/modules/visa/lang/en.php @@ -291,3 +291,15 @@ if (!defined('_ID_IXBUS')) { if (!defined('_PASSWORD_IXBUS')) { define('_PASSWORD_IXBUS', "Password IxBus"); } + +if (!defined('_WRONG_ID_PASSWORD_IXBUS')) { + define('_WRONG_ID_PASSWORD_IXBUS', "Invalid IxBus ID or password"); +} + +if (!defined('_HANDWRITTEN_SIGN')) { + define('_HANDWRITTEN_SIGN', "Handwritten signature"); +} + +if (!defined('_ESIGN')) { + define('_ESIGN', "Electronique signature"); +} diff --git a/modules/visa/lang/fr.php b/modules/visa/lang/fr.php index 5717b0a806026d6a36042f47ee1e5e315bdd53f8..dcd9bb033a74cb16f865b294eaf57865a1d11881 100755 --- a/modules/visa/lang/fr.php +++ b/modules/visa/lang/fr.php @@ -441,3 +441,15 @@ if (!defined('_ID_IXBUS')) { if (!defined('_PASSWORD_IXBUS')) { define('_PASSWORD_IXBUS', "Mot de passe IxBus"); } + +if (!defined('_WRONG_ID_PASSWORD_IXBUS')) { + define('_WRONG_ID_PASSWORD_IXBUS', "Identifiant ou Mot de passe IxBus incorrect"); +} + +if (!defined('_HANDWRITTEN_SIGN')) { + define('_HANDWRITTEN_SIGN', "Signature manuscrite"); +} + +if (!defined('_ESIGN')) { + define('_ESIGN', "Signature électronique"); +} diff --git a/modules/visa/xml/remoteSignatoryBooks.xml b/modules/visa/xml/remoteSignatoryBooks.xml index 1338c3825cd1b42c309ba2dfe6b54f0065a74f30..81836715a33263b7404b0f37ec96d11e6d0f3ec1 100755 --- a/modules/visa/xml/remoteSignatoryBooks.xml +++ b/modules/visa/xml/remoteSignatoryBooks.xml @@ -7,8 +7,8 @@ <password></password> <url></url> <organizationId>9</organizationId> - <ixbusIdRefused>14</ixbusIdRefused> - <ixbusIdValidated>2</ixbusIdValidated> + <ixbusIdEtatRefused>14</ixbusIdEtatRefused> + <ixbusIdEtatValidated>2</ixbusIdEtatValidated> </signatoryBook> <signatoryBook> <id>iParapheur</id>