diff --git a/workflow/engine/classes/Cases.php b/workflow/engine/classes/Cases.php index 1dd15d01a..a6a3b6766 100644 --- a/workflow/engine/classes/Cases.php +++ b/workflow/engine/classes/Cases.php @@ -818,7 +818,6 @@ class Cases * * @param string $appUid * @param array $Fields - * @param bool $forceLoadData * * @return Fields * @throws Exception @@ -870,7 +869,7 @@ class Cases * @see \ProcessMaker\BusinessModel\Cases\Variable::delete() * @see \ProcessMaker\BusinessModel\Cases\Variable::update() */ - public function updateCase($appUid, $Fields = [], $forceLoadData = false) + public function updateCase($appUid, $Fields = []) { try { $application = new Application; @@ -895,15 +894,10 @@ class Cases } //Get the appTitle and appDescription - $fieldsCase = []; - if ($forceLoadData) { - $lastFieldsCase = $this->loadCase($appUid)['APP_DATA']; - $fieldsCase = array_merge($appData, $lastFieldsCase); - } $newTitleOrDescription = $this->newRefreshCaseTitleAndDescription( $appUid, $appFields, - empty($fieldsCase) ? $appData : $fieldsCase + $appData ); //Start: Save History --By JHL @@ -3510,6 +3504,7 @@ class Cases $foundDisabledCode = ""; /*----------------------------------********---------------------------------*/ + $varInAfterRouting = false; $fieldsTrigger = []; foreach ($triggersList as $trigger) { /*----------------------------------********---------------------------------*/ @@ -3537,6 +3532,7 @@ class Cases $executedOn = $oPMScript->getExecutionOriginForAStep($stepType, $stepUidObj, $triggerType); $oPMScript->setExecutedOn($executedOn); $oPMScript->execute(); + //Return all the appData + variables changed in the execution $appDataAfterTrigger = $oPMScript->aFields; /** @@ -3556,12 +3552,9 @@ class Cases $fieldsCase = array_merge($fieldsCase, $lastFieldsCase); } - //Update the case with the fields changed in the trigger - if (!empty($fieldsTrigger)) { - $appFieldsTrigger = []; - $appFieldsTrigger['APP_DATA'] = $fieldsTrigger; - //Update the case - $this->updateCase($appUid, $appFieldsTrigger, true); + //Save the fields changed in the trigger + if (!$varInAfterRouting && !empty($fieldsTrigger)) { + $varInAfterRouting = true; } //Merge the appData with variables changed @@ -3578,6 +3571,17 @@ class Cases } } + /** + * Get the caseTitle from the nextTask and update the caseTitle + */ + if ($varInAfterRouting) { + $this->newRefreshCaseTitleAndDescription( + $appUid, + ['DEL_INDEX' => 0], + $fieldsCase + ); + } + /*----------------------------------********---------------------------------*/ if (!empty($foundDisabledCode)) { G::SendTemporalMessage( diff --git a/workflow/engine/menus/caseOptions.php b/workflow/engine/menus/caseOptions.php index 1c3016f2c..cef29279c 100644 --- a/workflow/engine/menus/caseOptions.php +++ b/workflow/engine/menus/caseOptions.php @@ -1,26 +1,12 @@ . - * - * For more information, contact Colosa Inc, 2566 Le Jeune Rd., - * Coral Gables, FL, 33134, USA, or email info@colosa.com. + * @see Ajax::getCaseMenu() + * @see cases/cases_CatchSelfService.php + * @see cases/Cases_Resume.php * + * @link https://wiki.processmaker.com/3.2/Cases/Running_Cases */ global $G_TMP_MENU; global $sStatus; @@ -73,16 +59,17 @@ switch ($_SESSION['actionCaseOptions']) { unset($_SESSION['actionCaseOptions']); if ((($sStatus === 'DRAFT') || ($sStatus === 'TO_DO')) && !$statusSendAndUnassigned) { - if (isset($_SESSION['bNoShowSteps'])) { - unset($_SESSION['bNoShowSteps']); - } else { - if ($viewSteps === true) { - $G_TMP_MENU->AddIdOption('STEPS', G::LoadTranslation('ID_STEPS'), 'javascript:showSteps();', 'absolute'); - } - $G_TMP_MENU->AddIdOption('INFO', G::LoadTranslation('ID_INFORMATION'), 'javascript:showInformation();', 'absolute'); + //Menu: Steps + if ($viewSteps === true) { + $G_TMP_MENU->AddIdOption('STEPS', G::LoadTranslation('ID_STEPS'), 'javascript:showSteps();', 'absolute'); } + //Menu: Information + $G_TMP_MENU->AddIdOption('INFO', G::LoadTranslation('ID_INFORMATION'), 'javascript:showInformation();', 'absolute'); + //Menu: Actions $G_TMP_MENU->AddIdOption('ACTIONS', G::LoadTranslation('ID_ACTIONS'), 'javascript:showActions();', 'absolute'); } else { + //Menu: Information $G_TMP_MENU->AddIdOption('INFO', G::LoadTranslation('ID_INFORMATION'), 'javascript:showInformation();', 'absolute'); } +//Menu: Cases Notes $G_TMP_MENU->AddIdOption('NOTES', G::LoadTranslation('ID_NOTES'), 'javascript:showNotes();', 'absolute');