diff --git a/workflow/engine/controllers/appProxy.php b/workflow/engine/controllers/appProxy.php index 9d4ea5377..a08eedbcd 100644 --- a/workflow/engine/controllers/appProxy.php +++ b/workflow/engine/controllers/appProxy.php @@ -274,45 +274,10 @@ class AppProxy extends HttpProxyController // Apply mask $createDateLabel = applyMaskDateEnvironment($appFields['CREATE_DATE'],'', false); $updateDateLabel = applyMaskDateEnvironment($appFields['UPDATE_DATE'],'', false); - // Get summary - $i = 0; - $summary = [ - $i++ => [ - 'id' => 'TITLE', - 'label' => G::LoadTranslation('ID_SUMMARY'), - 'value' => '', - ], - $i++ => [ // Process - 'id' => 'PRO_TITLE', - 'label' => G::LoadTranslation('ID_PROCESS_NAME') . ': ', - 'value' => $processInfo['PRO_TITLE'], - ], - $i++ => [ // Process description - 'id' => 'PRO_DESCRIPTION', - 'label' => G::LoadTranslation('ID_PRO_DESCRIPTION') . ': ', - 'value' => $processInfo['PRO_DESCRIPTION'], - ], - $i++ => [ // Case Number - 'id' => 'APP_NUMBER', - 'label' => G::LoadTranslation('ID_CASE_NUMBER') . ': ', - 'value' => $appFields['APP_NUMBER'], - ], - $i++ => [ // Case Title - 'id' => 'CASE_TITLE', - 'label' => G::LoadTranslation('ID_CASE_TITLE') . ': ', - 'value' => $appFields['TITLE'], - ], - $i++ => [ // Case Status - 'id' => 'CASE_STATUS', - 'label' => G::LoadTranslation('ID_CASE_STATUS') . ': ', - 'value' => $appFields['STATUS'], - ], - $i++ => [ // Create Date - 'id' => 'CREATE_DATE', - 'label' => G::LoadTranslation('ID_CREATE_DATE') . ': ', - 'value' => DateTime::convertUtcToTimeZone($createDateLabel), - ], - ]; + $delegateDateLabel = applyMaskDateEnvironment($appFields['DEL_DELEGATE_DATE'],'', false); + // Get the duration + $endDate = !empty($appFields['APP_FINISH_DATE']) ? $appFields['APP_FINISH_DATE'] : date("Y-m-d H:i:s"); + $threadDuration = getDiffBetweenDates($appFields['DEL_DELEGATE_DATE'], $endDate); // Get case properties $i = 0; $caseProperties = [ @@ -373,9 +338,13 @@ class AppProxy extends HttpProxyController ]; foreach ($threads as $row) { $j = 0; - $delegateDateLabel = applyMaskDateEnvironment($appFields['DEL_DELEGATE_DATE'],'', false); - $initDateLabel = applyMaskDateEnvironment($appFields['DEL_INIT_DATE'],'', false); - $dueDateLabel = applyMaskDateEnvironment($appFields['DEL_TASK_DUE_DATE'],'', false); + $delegateDateLabel = applyMaskDateEnvironment($row['DEL_DELEGATE_DATE'],'', false); + $initDateLabel = applyMaskDateEnvironment($row['DEL_INIT_DATE'],'', false); + $dueDateLabel = applyMaskDateEnvironment($row['DEL_TASK_DUE_DATE'],'', false); + // Get thread duration + $endDate = !empty($appFields['APP_FINISH_DATE']) ? $appFields['APP_FINISH_DATE'] : date("Y-m-d H:i:s"); + $threadDuration = getDiffBetweenDates($appFields['DEL_DELEGATE_DATE'], $endDate); + // Get user information if (!empty($row['USR_ID'])) { $userInfo = User::getInformation($row['USR_ID']); $currentUser = $userInfo['usr_lastname'] .' '. $userInfo['usr_firstname']; @@ -411,6 +380,55 @@ class AppProxy extends HttpProxyController ]; $taskProperties[++$i] = $threadProperties; } + // Get summary + $i = 0; + $summary = [ + $i++ => [ + 'id' => 'TITLE', + 'label' => G::LoadTranslation('ID_SUMMARY'), + 'value' => '', + ], + $i++ => [ // Process + 'id' => 'PRO_TITLE', + 'label' => G::LoadTranslation('ID_PROCESS_NAME') . ': ', + 'value' => $processInfo['PRO_TITLE'], + ], + $i++ => [ // Process description + 'id' => 'PRO_DESCRIPTION', + 'label' => G::LoadTranslation('ID_PRO_DESCRIPTION') . ': ', + 'value' => $processInfo['PRO_DESCRIPTION'], + ], + $i++ => [ // Case Number + 'id' => 'APP_NUMBER', + 'label' => G::LoadTranslation('ID_CASE_NUMBER') . ': ', + 'value' => $appFields['APP_NUMBER'], + ], + $i++ => [ // Case Title + 'id' => 'CASE_TITLE', + 'label' => G::LoadTranslation('ID_CASE_TITLE') . ': ', + 'value' => $appFields['TITLE'], + ], + $i++ => [ // Case Status + 'id' => 'CASE_STATUS', + 'label' => G::LoadTranslation('ID_CASE_STATUS') . ': ', + 'value' => $appFields['STATUS'], + ], + $i++ => [ // Create Date + 'id' => 'CREATE_DATE', + 'label' => G::LoadTranslation('ID_CREATE_DATE') . ': ', + 'value' => DateTime::convertUtcToTimeZone($createDateLabel), + ], + $i++ => [ // Delegate Date + 'id' => 'DEL_DELEGATE_DATE', + 'label' => G::LoadTranslation('DEL_DELEGATE_DATE') . ': ', + 'value' => DateTime::convertUtcToTimeZone($delegateDateLabel), + ], + $i++ => [ // Duration + 'id' => 'DURATION', + 'label' => G::LoadTranslation('ID_DURATION') . ': ', + 'value' => $threadDuration, + ] + ]; // Prepare the result $data = []; $data['summary'] = $summary; diff --git a/workflow/engine/data/mysql/insert.sql b/workflow/engine/data/mysql/insert.sql index 722d87eee..93452c51a 100755 --- a/workflow/engine/data/mysql/insert.sql +++ b/workflow/engine/data/mysql/insert.sql @@ -57718,7 +57718,7 @@ INSERT INTO TRANSLATION (TRN_CATEGORY,TRN_ID,TRN_LANG,TRN_VALUE,TRN_UPDATE_DATE ( 'LABEL','ID_CURRENT_VERSION','en','Current version','2014-09-18') , ( 'LABEL','ID_CURRENT_WORKSPACE','en','Current Workspace','2014-01-15') , ( 'LABEL','ID_CUSTOM_CASES_LISTS','en','Custom Case List','2017-02-21') , -( 'LABEL','ID_CUSTOM_INFORMATION','en','Custom Case List','2021-03-20') , +( 'LABEL','ID_CUSTOM_INFORMATION','en','Custom Information','2021-03-20') , ( 'LABEL','ID_CUSTOM_TRIGGER','en','Custom Trigger','2014-01-15') , ( 'LABEL','ID_CUSTOM_TRIGGER_DESCRIPTION','en','Custom Trigger','2014-01-15') , ( 'LABEL','ID_CUSTOM_SCHEDULE_SETTINGS','en','Custom schedule settings','2014-01-15') , diff --git a/workflow/engine/methods/cases/ajaxListener.php b/workflow/engine/methods/cases/ajaxListener.php index 0b037d2c4..368ce746f 100644 --- a/workflow/engine/methods/cases/ajaxListener.php +++ b/workflow/engine/methods/cases/ajaxListener.php @@ -265,24 +265,11 @@ class Ajax break; } - if ($_SESSION["TASK"] != "" && $_SESSION["TASK"] != "-1") { - $task = new Task(); - $tasksInParallel = explode('|', $_SESSION['TASK']); - $tasksInParallel = array_filter($tasksInParallel, function ($value) { - return !empty($value); - }); - $nTasksInParallel = count($tasksInParallel); - - if ($nTasksInParallel > 1) { - $taskProperties = $task->load($tasksInParallel[$nTasksInParallel - 1]); - } else { - $taskProperties = $task->load($_SESSION['TASK']); - } - - if ($taskProperties['TAS_TYPE'] == 'ADHOC') { - $options[] = ['text' => G::LoadTranslation('ID_ADHOC_ASSIGNMENT'), 'fn' => 'adhocAssignmentUsers']; - } - } + /** + * The menu ID_ADHOC_ASSIGNMENT was deprecated because it's possible to reassign a case from the options reassign + * + * @link https://wiki.processmaker.com/3.6/Cases/Actions#Reassign_2 + */ return $options; }