Merged in bugfix/PMCORE-2847 (pull request #7843)

PMCORE-2847

Approved-by: Julio Cesar Laura Avendaño
Approved-by: Rodrigo Quelca
This commit is contained in:
Paula Quispe
2021-04-01 14:02:06 +00:00
committed by Julio Cesar Laura Avendaño
10 changed files with 392 additions and 196 deletions

View File

@@ -643,20 +643,23 @@ class Cases
* @param int $delIndex
* @param array $caseData
*
* @return void
* @return array
*
* @see Cases::updateCase()
*/
public function updateThreadTitle(string $appUid, int $appNumber, int $delIndex, $caseData = [])
{
$threadTitle = $this->getCaseTitle();
if (empty($threadTitle) && !empty($appNumber) && !empty($delIndex)) {
$threadTitle = '';
$threadDescription = '';
if (!empty($appNumber) && !empty($delIndex)) {
$thread = Delegation::getThreadInfo($appNumber, $delIndex);
$previous = $thread['DEL_PREVIOUS'];
$appNumber = $thread['APP_NUMBER'];
$tasUid = $thread['TAS_UID'];
if (!empty($tasUid)) {
$threadTitle = Delegation::getThreadTitle($tasUid, $appNumber, $previous, $caseData);
$response = Delegation::getThreadTitle($tasUid, $appNumber, $previous, $caseData);
$threadTitle = $response['title'];
$threadDescription = $response['description'];
}
}
// Update thread title
@@ -666,6 +669,11 @@ class Cases
$rows['DEL_TITLE'] = $threadTitle;
$delegation = new AppDelegation();
$delegation->update($rows);
return [
'title' => $threadTitle,
'description' => $threadDescription
];
}
/**
@@ -803,10 +811,12 @@ class Cases
// Update case title
if (!empty($appUid) && !empty($appFields['APP_NUMBER']) && $appFields['APP_NUMBER'] > 0 && !empty($appFields['DEL_INDEX'])) {
$this->updateThreadTitle($appUid, $appFields['APP_NUMBER'], $appFields['DEL_INDEX'], $appFields['APP_DATA']);
$threadInfo = $this->updateThreadTitle($appUid, $appFields['APP_NUMBER'], $appFields['DEL_INDEX'], $appFields['APP_DATA']);
$Fields['APP_TITLE'] = $threadInfo['title'];
$Fields['APP_DESCRIPTION'] = $threadInfo['description'];
}
//Start: Save History --By JHL
// Start: Save History --By JHL
if (isset($Fields['CURRENT_DYNAFORM'])) {
//only when that variable is set.. from Save
$FieldsBefore = $this->loadCase($appUid);
@@ -833,7 +843,7 @@ class Cases
} catch (Exception $e) {
$currentDynaform["DYN_CONTENT"] = "";
}
//There are changes
// There are changes
$Fields['APP_STATUS'] = (isset($Fields['APP_STATUS'])) ? $Fields['APP_STATUS'] : $FieldsBefore['APP_STATUS'];
$appHistory = new AppHistory();
$aFieldsHistory = $Fields;
@@ -856,28 +866,20 @@ class Cases
/*----------------------------------********---------------------------------*/
}
}
//End Save History
//We are removing the app_title and app_description because they already be updated in newRefreshCaseTitleAndDescription function
if (isset($Fields['APP_TITLE'])) {
unset($Fields['APP_TITLE']);
}
if (isset($Fields['APP_DESCRIPTION'])) {
unset($Fields['APP_DESCRIPTION']);
}
// End Save History
if (isset($Fields["APP_STATUS"]) && $Fields["APP_STATUS"] == "COMPLETED") {
if (isset($Fields['CURRENT_USER_UID'])) {
$Fields['USR_UID'] = $Fields['CURRENT_USER_UID'];
}
//Will be update the status in the list Participated
// Will be update the status in the list Participated
$listParticipatedLast = new ListParticipatedLast();
$listParticipatedLast->refreshStatus($Fields['APP_UID'], 'COMPLETED');
}
/** Update case*/
/** Update case */
$app->update($Fields);
//Update the reportTables and tables related to the case, only for applications with positive application number
// Update the reportTables and tables related to the case, only for applications with positive application number
if ($appFields['APP_NUMBER'] > 0) {
require_once 'classes/model/AdditionalTables.php';
$reportTables = new ReportTables();
@@ -896,19 +898,19 @@ class Cases
);
}
//Update the priority related to the task
// Update the priority related to the task
$delIndex = isset($Fields['DEL_INDEX']) ? trim($Fields['DEL_INDEX']) : '';
$tasUid = isset($Fields['TAS_UID']) ? trim($Fields['TAS_UID']) : '';
$appDel = new AppDelegation;
$appDel->updatePriority($delIndex, $tasUid, $appUid, $appData);
//Update Solr Index
// Update Solr Index
if ($this->appSolr != null) {
$this->appSolr->updateApplicationSearchIndex($appUid);
}
if (isset($Fields["APP_STATUS"]) && $Fields["APP_STATUS"] == "COMPLETED") {
//Delete records of the table APP_ASSIGN_SELF_SERVICE_VALUE
// Delete records of the table APP_ASSIGN_SELF_SERVICE_VALUE
$appAssignSelfServiceValue = new AppAssignSelfServiceValue();
$appAssignSelfServiceValue->remove($appUid);
}
@@ -923,7 +925,6 @@ class Cases
$inbox->update($Fields);
/*----------------------------------********---------------------------------*/
//Return
return $Fields;
} catch (Exception $e) {
throw ($e);
@@ -1648,7 +1649,8 @@ class Cases
// Get case title
$threadTitle = $this->getCaseTitle();
if (empty($threadTitle)) {
$threadTitle = Delegation::getThreadTitle($tasUid, $appNumber, $previous, $caseData);
$response = Delegation::getThreadTitle($tasUid, $appNumber, $previous, $caseData);
$threadTitle = $response['title'];
}
$user = UsersPeer::retrieveByPK($usrUid);

View File

@@ -4127,6 +4127,12 @@ msgstr "The case was paused due to:"
msgid "Reason to pause the case"
msgstr "Reason to pause the case"
# TRANSLATION
# LABEL/ID_CASE_PROPERTIES
#: LABEL/ID_CASE_PROPERTIES
msgid "Case Properties"
msgstr "Case Properties"
# TRANSLATION
# LABEL/ID_CASE_PROPERTIES_SAVE
#: LABEL/ID_CASE_PROPERTIES_SAVE
@@ -5243,6 +5249,12 @@ msgstr "Creating table, please wait..."
msgid "Creating workspace {0}"
msgstr "Creating workspace {0}"
# TRANSLATION
# LABEL/ID_CREATOR
#: LABEL/ID_CREATOR
msgid "Creator"
msgstr "Creator"
# TRANSLATION
# LABEL/ID_CREDENTIAL_ERROR
#: LABEL/ID_CREDENTIAL_ERROR
@@ -5327,10 +5339,16 @@ msgstr "Your browser is not supported. See the list of supported browsers. List
msgid "Current license"
msgstr "Current license"
# TRANSLATION
# LABEL/ID_CURRENT_TASKS
#: LABEL/ID_CURRENT_TASKS
msgid "Current Task(s) Properties"
msgstr "Current Task(s) Properties"
# TRANSLATION
# LABEL/ID_CURRENT_USER
#: LABEL/ID_CURRENT_USER
msgid "[LABEL/ID_CURRENT_USER] Current User"
msgid "Current User"
msgstr "Current User"
# TRANSLATION
@@ -5363,6 +5381,12 @@ msgstr "Current Workspace"
msgid "Custom Case List"
msgstr "Custom Case List"
# TRANSLATION
# LABEL/ID_CUSTOM_INFORMATION
#: LABEL/ID_CUSTOM_INFORMATION
msgid "Custom Information"
msgstr "Custom Information"
# TRANSLATION
# LABEL/ID_CUSTOM_TRIGGER
#: LABEL/ID_CUSTOM_TRIGGER
@@ -25298,7 +25322,7 @@ msgstr "Static Partial Join for Multiple Instance"
# TRANSLATION
# LABEL/ID_STATUS
#: LABEL/ID_STATUS
msgid "[LABEL/ID_STATUS] Status"
msgid "Status"
msgstr "Status"
# TRANSLATION
@@ -25751,6 +25775,12 @@ msgstr "Tasks"
msgid "You can't delete the task \"{0}\" because it has {1} cases."
msgstr "You can't delete the task \"{0}\" because it has {1} cases."
# TRANSLATION
# LABEL/ID_TASK_DELEGATE_DATE
#: LABEL/ID_TASK_DELEGATE_DATE
msgid "Task Delegate Date"
msgstr "Task Delegate Date"
# TRANSLATION
# LABEL/ID_TASK_DEFINED_MANUAL_ASSIGNMENT
#: LABEL/ID_TASK_DEFINED_MANUAL_ASSIGNMENT
@@ -25769,6 +25799,12 @@ msgstr "Task does not have a routing rule. Please, check the process definition.
msgid "Task Duration"
msgstr "Task Duration"
# TRANSLATION
# LABEL/ID_TASK_DUE_DATE
#: LABEL/ID_TASK_DUE_DATE
msgid "Task Due Date"
msgstr "Task Due Date"
# TRANSLATION
# LABEL/ID_TASK_ID
#: LABEL/ID_TASK_ID
@@ -25781,6 +25817,12 @@ msgstr "Task ID"
msgid "[LABEL/ID_TASK_INFORMATION] Task Information"
msgstr "Task Information"
# TRANSLATION
# LABEL/ID_TASK_INIT_DATE
#: LABEL/ID_TASK_INIT_DATE
msgid "Task Init Date"
msgstr "Task Init Date"
# TRANSLATION
# LABEL/ID_TASK_INVALID_USER_NOT_ASSIGNED_TASK
#: LABEL/ID_TASK_INVALID_USER_NOT_ASSIGNED_TASK

View File

@@ -12,7 +12,9 @@
use ProcessMaker\BusinessModel\Cases as BmCases;
use ProcessMaker\Exception\CaseNoteUploadFile;
use ProcessMaker\Model\AppNotes as Notes;
use ProcessMaker\Model\Delegation;
use ProcessMaker\Model\Documents;
use ProcessMaker\Model\User;
use ProcessMaker\Util\DateTime;
if (!isset($_SESSION['USER_LOGGED'])) {
@@ -256,90 +258,165 @@ class AppProxy extends HttpProxyController
}
/**
* get the case summary data
* Get the case summary data
*
* @param string $httpData->appUid
* @param string $httpData->delIndex
* @return array containg the case summary data
* @param object $httpData
*
* @return array contain the case summary data
*/
function getSummary ($httpData)
{
$labelsCaseProperties = array ();
$labelsCurrentTaskProperties = array ();
$labelTitleCurrentTasks = array ();
$formCaseProperties = new Form( 'cases/cases_Resume', PATH_XMLFORM, SYS_LANG );
$formCaseTitle = new Form( 'cases/cases_Resume_Current_Task_Title', PATH_XMLFORM, SYS_LANG );
$formCurrentTaskProperties = new Form( 'cases/cases_Resume_Current_Task', PATH_XMLFORM, SYS_LANG );
$case = new Cases();
foreach ($formCaseProperties->fields as $fieldName => $field) {
$labelsCaseProperties[$fieldName] = $field->label;
}
foreach ($formCaseTitle->fields as $fieldName => $field) {
$labelTitleCurrentTasks[$fieldName] = $field->label;
}
foreach ($formCurrentTaskProperties->fields as $fieldName => $field) {
$labelsCurrentTaskProperties[$fieldName] = $field->label;
}
if (isset( $_SESSION['_applicationFields'] ) && $_SESSION['_processData']) {
$applicationFields = $_SESSION['_applicationFields'];
unset( $_SESSION['_applicationFields'] );
$processData = $_SESSION['_processData'];
unset( $_SESSION['_processData'] );
} else {
if ($httpData->action == 'sent') { // Get the last valid delegation for participated list
$criteria = new Criteria();
$criteria->addSelectColumn(AppDelegationPeer::DEL_INDEX);
$criteria->add(AppDelegationPeer::APP_UID, $httpData->appUid);
$criteria->add(AppDelegationPeer::DEL_FINISH_DATE, null, Criteria::ISNULL);
$criteria->addDescendingOrderByColumn(AppDelegationPeer::DEL_INDEX);
if (AppDelegationPeer::doCount($criteria) > 0) {
$dataset = AppDelegationPeer::doSelectRS($criteria, Propel::getDbConnection('workflow_ro') );
$dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$dataset->next();
$row = $dataset->getRow();
$httpData->delIndex = $row['DEL_INDEX'];
}
$appFields = $case->loadCase($httpData->appUid, $httpData->delIndex);
// Get the process
$process = new Process();
$processInfo = $process->load($appFields['PRO_UID']);
// 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),
],
];
// Get case properties
$i = 0;
$caseProperties = [
$i++ => [
'id' => 'TITLE',
'label' => G::LoadTranslation('ID_CASE_PROPERTIES'),
'value' => '',
],
$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 Description
'id' => 'CASE_DESCRIPTION',
'label' => G::LoadTranslation('ID_CASE_DESCRIPTION') . ': ',
'value' => $appFields["DESCRIPTION"],
],
$i++ => [ // Case Status
'id' => 'CASE_STATUS',
'label' => G::LoadTranslation('ID_CASE_STATUS') . ': ',
'value' => $appFields['STATUS'],
],
$i++ => [ // Case Uid
'id' => 'APP_UID',
'label' => G::LoadTranslation('ID_CASE_UID') . ': ',
'value' => $appFields['APP_UID'],
],
$i++ => [ // Creator
'id' => 'CREATOR',
'label' => G::LoadTranslation('ID_CREATOR') . ': ',
'value' => $appFields['CREATOR'],
],
$i++ => [ // Create Date
'id' => 'CREATE_DATE',
'label' => G::LoadTranslation('ID_CREATE_DATE') . ': ',
'value' => DateTime::convertUtcToTimeZone($createDateLabel),
],
$i++ => [ // Last Update
'id' => 'UPDATE_DATE',
'label' => G::LoadTranslation('ID_LAST_DATE') . ': ',
'value' => DateTime::convertUtcToTimeZone($updateDateLabel),
],
];
// Get the pending threads
$delegation = new Delegation();
$threads = $delegation::getPendingThreads($appFields['APP_NUMBER']);
$i = 0;
$taskProperties[$i] = [
'id' => 'TITLE',
'label' => G::LoadTranslation('ID_CURRENT_TASKS'),
'value' => '',
];
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);
if (!empty($row['USR_ID'])) {
$userInfo = User::getInformation($row['USR_ID']);
$currentUser = $userInfo['usr_lastname'] .' '. $userInfo['usr_firstname'];
} else {
$currentUser = G::LoadTranslation('ID_UNASSIGNED');
}
$applicationFields = $case->loadCase( $httpData->appUid, $httpData->delIndex );
$process = new Process();
$processData = $process->load( $applicationFields['PRO_UID'] );
$threadProperties = [
$j++ => [ // Task
'id' => 'TASK_TITLE',
'label' => G::LoadTranslation('ID_TASK') . ': ',
'value' => $row['TAS_TITLE'],
],
$j++ => [ // Current User
'id' => 'CURRENT_USER',
'label' => G::LoadTranslation('ID_CURRENT_USER') . ': ',
'value' => $currentUser,
],
$j++ => [ // Task Delegate Date
'id' => 'DEL_DELEGATE_DATE',
'label' => G::LoadTranslation('ID_TASK_DELEGATE_DATE') . ': ',
'value' => DateTime::convertUtcToTimeZone($delegateDateLabel),
],
$j++ => [ // Task Init Date
'id' => 'DEL_INIT_DATE',
'label' => G::LoadTranslation('ID_TASK_INIT_DATE') . ': ',
'value' => DateTime::convertUtcToTimeZone($initDateLabel),
],
$j++ => [ // Task Due Date
'id' => 'DEL_TASK_DUE_DATE',
'label' => G::LoadTranslation('ID_TASK_DUE_DATE') . ': ',
'value' => DateTime::convertUtcToTimeZone($dueDateLabel),
],
];
$taskProperties[++$i] = $threadProperties;
}
// Prepare the result
$data = [];
$data['summary'] = $summary;
$data['caseProperties'] = $caseProperties;
$data['taskProperties'] = $taskProperties;
$data = array ();
$task = new Task();
$taskData = $task->load( $applicationFields['TAS_UID'] );
$currentUser = $applicationFields['CURRENT_USER'] != '' ? $applicationFields['CURRENT_USER'] : '[' . G::LoadTranslation( 'ID_UNASSIGNED' ) . ']';
$data[] = array ('label' => $labelsCaseProperties['PRO_TITLE'],'value' => $processData['PRO_TITLE'],'section' => $labelsCaseProperties['TITLE1']);
$data[] = array ("label" => $labelsCaseProperties["TITLE"], "value" => htmlentities($applicationFields["TITLE"], ENT_QUOTES, "UTF-8"), "section" => $labelsCaseProperties["TITLE1"]);
$data[] = array ('label' => $labelsCaseProperties['APP_NUMBER'],'value' => $applicationFields['APP_NUMBER'],'section' => $labelsCaseProperties['TITLE1']);
$data[] = array ('label' => $labelsCaseProperties['STATUS'],'value' => $applicationFields['STATUS'],'section' => $labelsCaseProperties['TITLE1']);
$data[] = array ('label' => $labelsCaseProperties['APP_UID'],'value' => $applicationFields['APP_UID'],'section' => $labelsCaseProperties['TITLE1']);
$data[] = array ('label' => $labelsCaseProperties['CREATOR'],'value' => $applicationFields['CREATOR'],'section' => $labelsCaseProperties['TITLE1']);
$data[] = array ('label' => $labelsCaseProperties['CREATE_DATE'],'value' => $applicationFields['CREATE_DATE'],'section' => $labelsCaseProperties['TITLE1']);
$data[] = array ('label' => $labelsCaseProperties['UPDATE_DATE'],'value' => $applicationFields['UPDATE_DATE'],'section' => $labelsCaseProperties['TITLE1']);
$data[] = array ("label" => $labelsCaseProperties["DESCRIPTION"], "value" => htmlentities($applicationFields["DESCRIPTION"], ENT_QUOTES, "UTF-8"), "section" => $labelsCaseProperties["TITLE1"]);
// note added by krlos pacha carlos[at]colosa[dot]com
//getting this field if it doesn't exist. Related 7994 bug
$oTask = new \Task();
$aTasks = $oTask->load($applicationFields['TAS_UID']);
$taskData['TAS_TITLE'] = (array_key_exists( 'TAS_TITLE', $taskData )) ? $taskData['TAS_TITLE'] : $aTasks["TAS_TITLE"];
$data[] = array ("label" => $labelsCurrentTaskProperties["TAS_TITLE"], "value" => htmlentities($taskData["TAS_TITLE"], ENT_QUOTES, "UTF-8"), "section" => $labelTitleCurrentTasks["TITLE2"]);
$data[] = array ('label' => $labelsCurrentTaskProperties['CURRENT_USER'],'value' => $currentUser,'section' => $labelTitleCurrentTasks['TITLE2']);
$data[] = array ('label' => $labelsCurrentTaskProperties['DEL_DELEGATE_DATE'],'value' => $applicationFields['DEL_DELEGATE_DATE'],'section' => $labelTitleCurrentTasks['TITLE2']);
$data[] = array ('label' => $labelsCurrentTaskProperties['DEL_INIT_DATE'],'value' => $applicationFields['DEL_INIT_DATE'],'section' => $labelTitleCurrentTasks['TITLE2']);
$data[] = array ('label' => $labelsCurrentTaskProperties['DEL_TASK_DUE_DATE'],'value' => $applicationFields['DEL_TASK_DUE_DATE'],'section' => $labelTitleCurrentTasks['TITLE2']);
$data[] = array ('label' => $labelsCurrentTaskProperties['DEL_FINISH_DATE'],'value' => $applicationFields['DEL_FINISH_DATE'],'section' => $labelTitleCurrentTasks['TITLE2']);
//$data[] = array('label'=>$labelsCurrentTaskProperties['DYN_UID'] , 'value' => $processData['PRO_DYNAFORMS']['PROCESS'];, 'section'=>$labelsCurrentTaskProperties['DYN_UID']);
$data = \ProcessMaker\Util\DateTime::convertUtcToTimeZone($data);
return $data;
}
}

View File

@@ -57499,6 +57499,7 @@ INSERT INTO TRANSLATION (TRN_CATEGORY,TRN_ID,TRN_LANG,TRN_VALUE,TRN_UPDATE_DATE
( 'LABEL','ID_CASE_PAUSED_SUCCESSFULLY','en','The Case {APP_NUMBER} was paused successfully and it will be unpaused on date {UNPAUSE_DATE}','2014-01-15') ,
( 'LABEL','ID_CASE_PAUSE_LABEL_NOTE','en','The case was paused due to:','2014-10-21') ,
( 'LABEL','ID_CASE_PAUSE_REASON','en','Reason to pause the case','2014-10-21') ,
( 'LABEL','ID_CASE_PROPERTIES','en','Case Properties','2021-03-20') ,
( 'LABEL','ID_CASE_PROPERTIES_SAVE','en','Case Tracker Properties Saved Successfully','2014-01-15') ,
( 'LABEL','ID_CASE_REACTIVATED_SUCCESSFULLY','en','The case {APP_NUMBER} was reactivated successfully!','2014-01-15') ,
( 'LABEL','ID_CASE_RESPONSE_NOT_AVAILABLE','en','No response available, please review the case information','2018-03-02') ,
@@ -57694,6 +57695,7 @@ INSERT INTO TRANSLATION (TRN_CATEGORY,TRN_ID,TRN_LANG,TRN_VALUE,TRN_UPDATE_DATE
( 'LABEL','ID_CREATING','en','Creating : {0}','2014-01-15') ,
( 'LABEL','ID_CREATING_TABLE','en','Creating table, please wait...','2014-01-15') ,
( 'LABEL','ID_CREATING_WORKSPACE','en','Creating workspace {0}','2014-01-15') ,
( 'LABEL','ID_CREATOR','en','Creator','2021-03-20') ,
( 'LABEL','ID_CREDENTIAL_ERROR','en','Credentials Error','2014-01-15') ,
( 'LABEL','ID_CRON_ACTIONS','en','Cron','2014-01-15') ,
( 'LABEL','ID_CRON_ACTIONS_LOG','en','Cron Actions Log','2014-01-15') ,
@@ -57708,12 +57710,14 @@ INSERT INTO TRANSLATION (TRN_CATEGORY,TRN_ID,TRN_LANG,TRN_VALUE,TRN_UPDATE_DATE
( 'LABEL','ID_CURRENT_ASSING_TYPE_WITH_CASES','en','The current activity has cases and cannot be deleted','2015-12-10') ,
( 'LABEL','ID_CURRENT_BROWSER_NOT_SUPPORTED','en','Your browser is not supported. See the list of supported browsers. List of supported browsers is a link to the wiki page: http://wiki.processmaker.com/3.0/Supported_Browsers','2014-10-22') ,
( 'LABEL','ID_CURRENT_LICENSE','en','Current license','2014-09-18') ,
( 'LABEL','ID_CURRENT_TASKS','en','Current Task(s) Properties','2021-03-20') ,
( 'LABEL','ID_CURRENT_USER','en','Current User','2014-01-15') ,
( 'LABEL','ID_CURRENT_USERS','en','Current Users','2014-01-15') ,
( 'LABEL','ID_CURRENT_VALUES','en','Current Values','2014-01-15') ,
( '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_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') ,
@@ -61211,11 +61215,14 @@ INSERT INTO TRANSLATION (TRN_CATEGORY,TRN_ID,TRN_LANG,TRN_VALUE,TRN_UPDATE_DATE
( 'LABEL','ID_TASK','en','Task','2014-01-15') ,
( 'LABEL','ID_TASKS','en','Tasks','2014-01-15') ,
( 'LABEL','ID_TASK_CANT_DELETE','en','You can''t delete the task "{0}" because it has {1} cases.','2014-01-15') ,
( 'LABEL','ID_TASK_DELEGATE_DATE','en','Task Delegate Date','2021-03-20') ,
( 'LABEL','ID_TASK_DEFINED_MANUAL_ASSIGNMENT','en','The task is defined for Manual assignment','2014-01-15') ,
( 'LABEL','ID_TASK_DOES_NOT_HAVE_ROUTING_RULE','en','Task does not have a routing rule. Please, check the process definition.','2015-01-16') ,
( 'LABEL','ID_TASK_DURATION','en','Task Duration','2014-01-15') ,
( 'LABEL','ID_TASK_DUE_DATE','en','Task Due Date','2021-03-20') ,
( 'LABEL','ID_TASK_ID','en','Task ID','2014-01-15') ,
( 'LABEL','ID_TASK_INFORMATION','en','Task Information','2014-01-15') ,
( 'LABEL','ID_TASK_INIT_DATE','en','Task Init Date','2021-03-20') ,
( 'LABEL','ID_TASK_INVALID_USER_NOT_ASSIGNED_TASK','en','Task invalid or the user is not assigned to the task','2014-01-15') ;
INSERT INTO TRANSLATION (TRN_CATEGORY,TRN_ID,TRN_LANG,TRN_VALUE,TRN_UPDATE_DATE ) VALUES

View File

@@ -1807,6 +1807,9 @@ class Delegation extends Model
'TASK.TAS_TITLE',
'TASK.TAS_ASSIGN_TYPE',
'APP_DELEGATION.USR_ID',
'APP_DELEGATION.DEL_DELEGATE_DATE',
'APP_DELEGATION.DEL_FINISH_DATE',
'APP_DELEGATION.DEL_INIT_DATE',
'APP_DELEGATION.DEL_TASK_DUE_DATE'
]);
// Join with task
@@ -1867,9 +1870,12 @@ class Delegation extends Model
$caseData = $r;
}
}
// Get task title defined
//
$task = new Task();
// Get case title defined
$taskTitle = $task->taskCaseTitle($tasUid);
// Get case description defined
$taskDescription = $task->taskCaseDescription($tasUid);
// If exist we will to replace the variables data
if (!empty($taskTitle)) {
$threadTitle = G::replaceDataField($taskTitle, $caseData, 'mysql', false);
@@ -1886,8 +1892,16 @@ class Delegation extends Model
$threadTitle = '# ' . $appNumber;
}
}
// If exist we will to replace the variables data
$threadDescription = '';
if (!empty($taskDescription)) {
$threadDescription = G::replaceDataField($taskDescription, $caseData, 'mysql', false);
}
return $threadTitle;
return [
'title' => $threadTitle,
'description' => $threadDescription
];
}
/**

View File

@@ -158,6 +158,27 @@ class Task extends Model
return $title;
}
/**
* Get the description of the task
*
* @param string $tasUid
*
* @return string
*/
public function taskCaseDescription(string $tasUid)
{
$query = Task::query()->select(['TAS_DEF_DESCRIPTION']);
$query->where('TAS_UID', $tasUid);
$query->limit(1);
$results = $query->get();
$title = '';
$results->each(function ($item) use (&$title) {
$title = $item->TAS_DEF_DESCRIPTION;
});
return $title;
}
/**
* Get task data
*