diff --git a/core/xml/actions_pages.xml b/core/xml/actions_pages.xml index aed4b983921a58e1fff4e12b8eb777206fe8a53e..1e9f810b31583b84810528adff9e3169cde5aa31 100755 --- a/core/xml/actions_pages.xml +++ b/core/xml/actions_pages.xml @@ -372,7 +372,7 @@ An action page is described in a ACTIONPAGE tag : <LABEL>_PROCEED_WORKFLOW_AVIS_SIMPLE</LABEL> <NAME>avis_simple</NAME> <DESC>_PROCEED_WORKFLOW_AVIS_SIMPLE_DESC</DESC> - <component>v1Action</component> + <component>giveOpinionParallelAction</component> <ORIGIN>module</ORIGIN> <MODULE>avis</MODULE> <FLAG_CREATE>false</FLAG_CREATE> diff --git a/migration/20.03/2003.sql b/migration/20.03/2003.sql index 8079284dbe0f017006f090cbde004e5b3347f251..da84b5eb9c5e04425dc837483f598bf727df56f3 100644 --- a/migration/20.03/2003.sql +++ b/migration/20.03/2003.sql @@ -95,6 +95,7 @@ UPDATE actions SET component = 'continueVisaCircuitAction' WHERE action_page = ' UPDATE actions SET component = 'closeMailWithAttachmentsOrNotesAction' WHERE action_page = 'close_mail_with_attachment'; UPDATE actions SET component = 'sendToOpinionCircuitAction' WHERE action_page = 'send_to_avis'; UPDATE actions SET component = 'continueOpinionCircuitAction' WHERE action_page = 'avis_workflow'; +UPDATE actions SET component = 'giveOpinionParallelAction' WHERE action_page = 'avis_workflow_simple'; DELETE FROM actions_groupbaskets WHERE id_action IN (SELECT id FROM actions WHERE action_page = 'put_in_copy'); DELETE FROM actions_categories WHERE action_id IN (SELECT id FROM actions WHERE action_page = 'put_in_copy'); diff --git a/sql/data_fr.sql b/sql/data_fr.sql index eb937b16ada4b7ad8c9ae8eef386a1af6472d804..45df09ee0385755c397d0cc3140c8937e7699fa2 100755 --- a/sql/data_fr.sql +++ b/sql/data_fr.sql @@ -985,7 +985,7 @@ INSERT INTO actions (id, keyword, label_action, id_status, is_system, action_pag INSERT INTO actions (id, keyword, label_action, id_status, is_system, action_page, history, component) VALUES (23, 'indexing', 'Attribuer au(x) service(s)', 'NEW', 'N', 'confirm_status', 'Y', 'confirmAction'); INSERT INTO actions (id, keyword, label_action, id_status, is_system, action_page, history, component) VALUES (24, 'indexing', 'Remettre en validation', 'VAL', 'N', 'confirm_status', 'Y', 'confirmAction'); INSERT INTO actions (id, keyword, label_action, id_status, is_system, action_page, history, component) VALUES (36, '', 'Envoyer pour avis', 'EAVIS', 'N', 'send_docs_to_recommendation', 'Y', 'v1Action'); -INSERT INTO actions (id, keyword, label_action, id_status, is_system, action_page, history, component) VALUES (37, '', 'Donner un avis', '_NOSTATUS_', 'N', 'avis_workflow_simple', 'Y', 'continueOpinionCircuitAction'); +INSERT INTO actions (id, keyword, label_action, id_status, is_system, action_page, history, component) VALUES (37, '', 'Donner un avis', '_NOSTATUS_', 'N', 'avis_workflow_simple', 'Y', 'giveOpinionParallelAction'); -- INSERT INTO actions (id, keyword, label_action, id_status, is_system, action_page, history, component) VALUES (100, '', 'Voir le document', '', 'N', 'view', 'N', 'viewDoc'); --INSERT INTO actions (id, keyword, label_action, id_status, is_system, action_page, history, component) VALUES (101, '', 'Envoyer pour visa', 'VIS', 'N', 'confirm_status', 'Y', 'confirmAction'); INSERT INTO actions (id, keyword, label_action, id_status, is_system, action_page, history, component) VALUES (114, '', 'Marquer comme lu', '', 'N', 'mark_as_read', 'N', 'resMarkAsReadAction'); diff --git a/src/app/action/controllers/ActionMethodController.php b/src/app/action/controllers/ActionMethodController.php index 85452e274471bbfbdba0d5e9ef96d3fb70449e90..22abef260f56f3fe17e9adda3940639b6499dc76 100644 --- a/src/app/action/controllers/ActionMethodController.php +++ b/src/app/action/controllers/ActionMethodController.php @@ -61,6 +61,7 @@ class ActionMethodController 'interruptVisaAction' => 'interruptVisa', 'sendToOpinionCircuitAction' => 'sendToOpinionCircuit', 'continueOpinionCircuitAction' => 'continueOpinionCircuit', + 'giveOpinionParallelAction' => 'giveOpinionParallel', 'noConfirmAction' => null ]; @@ -600,4 +601,32 @@ class ActionMethodController } return ['history' => $message]; } + + public static function giveOpinionParallel(array $args) + { + ValidatorModel::notEmpty($args, ['resId']); + ValidatorModel::intVal($args, ['resId']); + + $currentStep = ListInstanceModel::get([ + 'select' => ['listinstance_id', 'item_id'], + 'where' => ['res_id = ?', 'difflist_type = ?', 'item_id = ?', 'item_mode in (?)'], + 'data' => [$args['resId'], 'entity_id', $GLOBALS['userId'], ['avis', 'avis_copy', 'avis_info']], + 'limit' => 1 + ]); + + if (empty($currentStep)) { + return ['errors' => ['No workflow available']]; + } + $currentStep = $currentStep[0]; + + ListInstanceModel::update([ + 'set' => [ + 'process_date' => 'CURRENT_TIMESTAMP' + ], + 'where' => ['listinstance_id = ?'], + 'data' => [$currentStep['listinstance_id']] + ]); + + return true; + } }