diff --git a/apps/maarch_entreprise/lang/fr.php b/apps/maarch_entreprise/lang/fr.php index 4cf764b3929c8b5ecf47b48a0e7b8c3ed42e2aec..2985621883f92e98188254bd5ff6468ae4828d54 100755 --- a/apps/maarch_entreprise/lang/fr.php +++ b/apps/maarch_entreprise/lang/fr.php @@ -4644,11 +4644,11 @@ if (!defined('_REJECTION_WORKFLOW_PREVIOUS')) { if (!defined('_REJECTION_WORKFLOW_PREVIOUS_DESC')) { define('_REJECTION_WORKFLOW_PREVIOUS_DESC', "Réinitialise la date de visa du précédent viseur présent dans le circuit de visa du document ('process_date' de la table listinstance)."); } -if (!defined('_INTERRUPT_WORKFLOW_ENTITY')) { - define('_INTERRUPT_WORKFLOW_ENTITY', 'Interrompre le circuit de visa - retour à l\'entité initiatrice'); +if (!defined('_REDIRECT_WORKFLOW_ENTITY')) { + define('_REDIRECT_WORKFLOW_ENTITY', 'Rediriger à l\'entité initiatrice'); } -if (!defined('_INTERRUPT_WORKFLOW_ENTITY_DESC')) { - define('_INTERRUPT_WORKFLOW_ENTITY_DESC', "Met à jour la date du visa de l'actuel viseur / signataire et de tous les viseurs suivant présents dans le circuit de visa du document ('process_date' de la table listinstance). Insère également un message d'interruption sur le viseur actuel ('process_comment' de la table listinstance) puis renvoie le document vers l'entité initiatrice de ce document."); +if (!defined('_REDIRECT_WORKFLOW_ENTITY_DESC')) { + define('_REDIRECT_WORKFLOW_ENTITY_DESC', "Renvoie le document vers l'entité initiatrice du document sans modifier le circuit de visa actuel."); } if (!defined('_VISA_MAIL')) { define('_VISA_MAIL', 'Viser le courrier'); diff --git a/core/xml/actions_pages.xml b/core/xml/actions_pages.xml index b636dfca2c81b68f2d3f604c04efa675f39d8d95..345d3f5c8e9771ff5d48b4410816c133dda91fa5 100755 --- a/core/xml/actions_pages.xml +++ b/core/xml/actions_pages.xml @@ -334,10 +334,10 @@ An action page is described in a ACTIONPAGE tag : </COLLECTIONS> </ACTIONPAGE> <ACTIONPAGE> - <ID>interrupt_visa_entity</ID> - <LABEL>_INTERRUPT_WORKFLOW_ENTITY</LABEL> - <NAME>interrupt_visa_entity</NAME> - <DESC>_INTERRUPT_WORKFLOW_ENTITY_DESC</DESC> + <ID>redirect_visa_entity</ID> + <LABEL>_REDIRECT_WORKFLOW_ENTITY</LABEL> + <NAME>redirect_visa_entity</NAME> + <DESC>_REDIRECT_WORKFLOW_ENTITY_DESC</DESC> <ORIGIN>module</ORIGIN> <MODULE>visa</MODULE> <FLAG_CREATE>false</FLAG_CREATE> diff --git a/modules/visa/interrupt_visa_entity.php b/modules/visa/interrupt_visa_entity.php deleted file mode 100644 index 1dd801630a90d8cd777c2bd01eea478d7f1e1a6b..0000000000000000000000000000000000000000 --- a/modules/visa/interrupt_visa_entity.php +++ /dev/null @@ -1,52 +0,0 @@ -<?php - -require_once 'modules/visa/class/class_modules_tools.php'; -$visa = new visa(); - -if ($visa->currentUserSignRequired($_SESSION['doc_id']) == 'true') { - $label_action .=" ("._NO_USER_SIGNED_DOC.")"; -} - -$confirm = true; -$etapes = ['empty_error']; - -function manage_empty_error($arr_id, $history, $id_action, $label_action, $status) -{ - $db = new Database(); - $_SESSION['action_error'] = ''; - $coll_id = $_SESSION['current_basket']['coll_id']; - $res_id = $arr_id[0]; - $circuit_visa = new visa(); - $sequence = $circuit_visa->getCurrentStep($res_id, $coll_id, 'VISA_CIRCUIT'); - $stepDetails = $circuit_visa->getStepDetails($res_id, $coll_id, 'VISA_CIRCUIT', $sequence); - - // Person who ends the workflow - if ($stepDetails['listinstance_id']) { - $db->query( - 'UPDATE listinstance SET process_date = CURRENT_TIMESTAMP, process_comment = ? WHERE listinstance_id = ? AND item_id = ? AND res_id = ? AND difflist_type = ?', - ["A terminé le circuit avec l'action {$label_action}", $stepDetails['listinstance_id'], $stepDetails['item_id'], $res_id, 'VISA_CIRCUIT'] - ); - } else { - $db->query( - 'UPDATE listinstance SET process_date = CURRENT_TIMESTAMP, process_comment = ? WHERE res_id = ? AND difflist_type = ? AND item_mode = ?', - ["A terminé le circuit avec l'action {$label_action}", $res_id, 'VISA_CIRCUIT', 'sign'] - ); - } - - // People remaining in the workflow - $db->query( - 'UPDATE listinstance SET process_date = CURRENT_TIMESTAMP, process_comment = ? WHERE res_id = ? AND difflist_type = ? AND process_date IS NULL', - ['Circuit Interrompu', $res_id, 'VISA_CIRCUIT'] - ); - - $stmt = $db->query('SELECT initiator FROM res_letterbox WHERE res_id = ?', [$res_id]); - $resInitiator = $stmt->fetch(); - $stmt = $db->query("SELECT item_id, item_type FROM listmodels WHERE object_id = ? and item_mode = 'dest'", [$resInitiator['initiator']]); - $resListModel = $stmt->fetch(); - if (!empty($resListModel)) { - $db->query("UPDATE listinstance SET item_id = ?, item_type = ? WHERE res_id = ? AND item_mode = 'dest'", [$resListModel['item_id'], $resListModel['item_type'], $res_id]); - $db->query("UPDATE res_letterbox SET dest_user = ?, destination = ? WHERE res_id = ?", [$resListModel['item_id'], $resInitiator['initiator'], $res_id]); - } - - return array('result' => $res_id . '#', 'history_msg' => ''); -} diff --git a/modules/visa/redirect_visa_entity.php b/modules/visa/redirect_visa_entity.php new file mode 100644 index 0000000000000000000000000000000000000000..9bc28db3f199d86712d56ffd8819d85bf9d74313 --- /dev/null +++ b/modules/visa/redirect_visa_entity.php @@ -0,0 +1,22 @@ +<?php + +$confirm = true; +$etapes = ['empty_error']; + +function manage_empty_error($arr_id, $history, $id_action, $label_action, $status) +{ + $db = new Database(); + $_SESSION['action_error'] = ''; + $res_id = $arr_id[0]; + + $stmt = $db->query('SELECT initiator FROM res_letterbox WHERE res_id = ?', [$res_id]); + $resInitiator = $stmt->fetch(); + $stmt = $db->query("SELECT item_id, item_type FROM listmodels WHERE object_id = ? and item_mode = 'dest'", [$resInitiator['initiator']]); + $resListModel = $stmt->fetch(); + if (!empty($resListModel)) { + $db->query("UPDATE listinstance SET item_id = ?, item_type = ? WHERE res_id = ? AND item_mode = 'dest'", [$resListModel['item_id'], $resListModel['item_type'], $res_id]); + $db->query("UPDATE res_letterbox SET dest_user = ?, destination = ?, status = ? WHERE res_id = ?", [$resListModel['item_id'], $resInitiator['initiator'], $status, $res_id]); + } + + return array('result' => $res_id . '#', 'history_msg' => ''); +} diff --git a/src/core/lang/lang-en.php b/src/core/lang/lang-en.php index a71b127e1aadbd7ba2508d33ec9e65373e5f63d1..ce0364cbda5f25ae2ee9f8258bc2d762a902e149 100644 --- a/src/core/lang/lang-en.php +++ b/src/core/lang/lang-en.php @@ -327,8 +327,8 @@ define('_REJECTION_WORKFLOW_PREVIOUS', 'Visa rejection - back to the previous au define('_REJECTION_WORKFLOW_PREVIOUS_DESC', 'Reset visa date of previous supervisor in visa circuit of document (\'process_date\' of listinstance table).'); define('_REJECTION_WORKFLOW_REDACTOR', 'Visa rejection - back to the author'); define('_REJECTION_WORKFLOW_REDACTOR_DESC', 'Reset visa date of all supervisor in visa circuit of document (\'process_date\' of listinstance table).'); -define('_INTERRUPT_WORKFLOW_ENTITY', 'Break the visa flow - back to the initiator entity'); -define('_INTERRUPT_WORKFLOW_ENTITY_DESC', 'Update visa date of current supervisor / signatory and all next supervisors in visa circuit of document (\'process_date\' of listinstance table). Insert an interrupt message on the actual visor (\'process_comment\' of listinstance table) then back the document to the initiator entity.'); +define('_REDIRECT_WORKFLOW_ENTITY', 'Back to the initiator entity'); +define('_REDIRECT_WORKFLOW_ENTITY_DESC', 'Back the document to the initiator entity without modofy the visa circuit.'); define('_INTERRUPT_WORKFLOW', 'Break the visa flow'); define('_INTERRUPT_WORKFLOW_DESC', 'Update visa date of current supervisor / signatory and all next supervisors in visa circuit of document (\'process_date\' of listinstance table). Insert an interrupt message on the actual visor (\'process_comment\' of listinstance table).'); define('_PROCEED_WORKFLOW', 'continue the visa flow'); diff --git a/src/core/lang/lang-fr.php b/src/core/lang/lang-fr.php index b25c7a109d1383fd76b80208a0d1db3786cf24f4..8d2bd07d16ba7e8e589ff24b765738df12aa8c27 100644 --- a/src/core/lang/lang-fr.php +++ b/src/core/lang/lang-fr.php @@ -327,8 +327,8 @@ define('_REJECTION_WORKFLOW_PREVIOUS', 'Refuser le visa - retour au précédent define('_REJECTION_WORKFLOW_PREVIOUS_DESC', 'Réinitialise la date de visa du précédent viseur présent dans le circuit de visa du document (\'process_date\' de la table listinstance).'); define('_REJECTION_WORKFLOW_REDACTOR', 'Refuser le visa - retour rédacteur'); define('_REJECTION_WORKFLOW_REDACTOR_DESC', 'Réinitialise la date de visa de tous les viseurs présents dans le circuit de visa du document (\'process_date\' de la table listinstance).'); -define('_INTERRUPT_WORKFLOW_ENTITY', 'Interrompre le circuit de visa - retour à l\'entité initiatrice'); -define('_INTERRUPT_WORKFLOW_ENTITY_DESC', "Met à jour la date du visa de l'actuel viseur / signataire et de tous les viseurs suivant présents dans le circuit de visa du document ('process_date' de la table listinstance). Insère également un message d'interruption sur le viseur actuel ('process_comment' de la table listinstance) puis renvoie le document vers l'entité initiatrice de ce document."); +define('_REDIRECT_WORKFLOW_ENTITY', 'Rediriger à l\'entité initiatrice'); +define('_REDIRECT_WORKFLOW_ENTITY_DESC', "Renvoie le document vers l'entité initiatrice du document sans modifier le circuit de visa actuel."); define('_INTERRUPT_WORKFLOW', 'Interrompre le circuit de visa'); define('_INTERRUPT_WORKFLOW_DESC', 'Met à jour la date du visa de l\'actuel viseur / signataire et de tous les viseurs suivant présents dans le circuit de visa du document (\'process_date\' de la table listinstance). Insère également un message d\'interruption sur le viseur actuel (\'process_comment\' de la table listinstance).'); define('_PROCEED_WORKFLOW', 'Poursuivre le circuit de visa');