PMCORE-2847

PMCORE-2907
This commit is contained in:
Paula Quispe
2021-03-19 15:15:16 -04:00
parent 290e2a17f5
commit 1977c923fe
10 changed files with 378 additions and 181 deletions

View File

@@ -13,7 +13,7 @@
:key="item.title"
class="v-attached-block"
>
<span> {{ item.label }} </span>:<span class="font-weight-bold">
<span> {{ item.label }} </span><span class="font-weight-bold">
{{ item.value }}</span
>
</div>
@@ -26,7 +26,7 @@
<script>
export default {
name: "CaseSummary",
name: "CaseStatus",
props: {
data: Array,
},

View File

@@ -3,13 +3,6 @@
<div class="card-body">
<h6 class="card-subtitle mb-2 text-muted">{{ data.title }}</h6>
<div class="card-text v-case-summary-card-body">
<div>
<span> {{ data.label.numberCase }} </span>:<span
class="font-weight-bold"
>
{{ data.text.numberCase }}</span
>
</div>
<div>
<span> {{ data.label.process }} </span>:<span
class="font-weight-bold"
@@ -18,8 +11,15 @@
>
</div>
<div>
<span> {{ data.label.status }} </span>:<span class="font-weight-bold">
{{ data.text.status }}</span
<span> {{ data.label.processDescription }} </span>:<span
class="font-weight-bold"
>
{{ data.text.processDescription }}</span
>
</div>
<div>
<span> {{ data.label.caseNumber }} </span>:<span class="font-weight-bold">
{{ data.text.caseNumber }}</span
>
</div>
<div>
@@ -30,10 +30,17 @@
>
</div>
<div>
<span> {{ data.label.created }} </span>:<span
<span> {{ data.label.status }} </span>:<span
class="font-weight-bold"
>
{{ data.text.created }}</span
{{ data.text.status }}</span
>
</div>
<div>
<span> {{ data.label.create }} </span>:<span
class="font-weight-bold"
>
{{ data.text.create }}</span
>
</div>
<div>

View File

@@ -45,12 +45,17 @@
{{ props.row.DUE_DATE }}
</div>
<div slot="actions" slot-scope="props">
<b-button v-if="props.row.STATUS === 'OPEN'" @click="onClick(props)" variant="outline-primary">{{$t("ID_CONTINUE")}}</b-button>
<b-button
v-if="props.row.STATUS === 'OPEN'"
@click="onClick(props)"
variant="outline-primary"
>{{ $t("ID_CONTINUE") }}</b-button
>
</div>
</v-server-table>
</div>
<TabsCaseDetail
:dataCaseSummary="dataCaseSummaryTab"
:dataCaseStatus="dataCaseStatusTab"
:dataCase="dataCase"
></TabsCaseDetail>
<ModalCancelCase ref="modal-cancel-case"></ModalCancelCase>
@@ -178,7 +183,7 @@ export default {
},
},
dataCaseSummary: null,
dataCaseSummaryTab: null,
dataCaseStatusTab: null,
dataIoDocuments: {
titleInput: this.$i18n.t("ID_REQUEST_DOCUMENTS"),
titleOutput: this.$i18n.t("ID_OUTPUT_DOCUMENTS"),
@@ -252,8 +257,20 @@ export default {
Api.cases
.casesummary(this.dataCase)
.then((response) => {
var data = response.data;
this.formatCaseSummary(response.data);
var data = response.data.summary;
this.dataCaseStatusTab = [];
this.dataCaseStatusTab.push({
title: null,
items: response.data.caseProperties,
});
_.each(response.data.taskProperties, (o) => {
this.dataCaseStatusTab.push({
title: null,
items: _.isArray(o) ? o : [o],
});
});
this.dataCaseSummary = {
title: this.$i18n.t("ID_SUMMARY"),
titleActions: this.$i18n.t("ID_ACTIONS"),
@@ -261,30 +278,35 @@ export default {
btnType: false,
onClick: null,
label: {
numberCase: data[2].label,
process: data[0].label,
status: data[3].label,
caseTitle: data[1].label,
created: data[6].label,
delegationDate: response.data[11].label,
process: data[1].label,
processDescription: data[2].label,
caseNumber: data[3].label,
caseTitle: data[4].label,
status: data[5].label,
create: data[6].label,
delegationDate: this.$i18n.t("ID_TASK_DELEGATE_DATE"),
duration: this.$i18n.t("ID_DURATION"),
},
text: {
numberCase: data[2].value,
process: data[0].value,
status: data[3].value,
caseTitle: data[1].value,
created: data[6].value,
delegationDate: response.data[11].value.split(" ")[0],
duration: response.data[11].value.split(" ")[1],
process: data[1].value,
processDescription: data[2].value,
caseNumber: data[3].value,
caseTitle: data[4].value,
status: data[5].value,
create: data[6].value,
delegationDate: data[7] ? data[7].value : "",
duration: data[8] ? data[8].value : "",
},
};
// Hack for identify the cancel case button
Api.cases
.actions(this.dataCase).then((response)=>{
action = _.find(response.data, function(o) { return o.id == "ACTIONS"; });
Api.cases.actions(this.dataCase).then((response) => {
action = _.find(response.data, function (o) {
return o.id == "ACTIONS";
});
if (action) {
option = _.find(action.options, function(o) { return o.fn == "cancelCase"; });
option = _.find(action.options, function (o) {
return o.fn == "cancelCase";
});
if (option && !option.hide) {
that.dataCaseSummary.onClick = () => {
that.$refs["modal-cancel-case"].show();
@@ -420,10 +442,10 @@ export default {
this.dataComments.items = notesArray;
},
formatCaseSummary(data) {
formatCaseProperties(data) {
let index,
sections = [];
this.dataCaseSummaryTab = [];
this.dataCaseStatusTab = [];
_.each(data, (o) => {
if (
(index = _.findIndex(sections, (s) => {
@@ -439,7 +461,7 @@ export default {
sections[index].items.push(o);
});
this.dataCaseSummaryTab = sections;
this.dataCaseStatusTab = sections;
},
getCasesForVueTable() {
let that = this,
@@ -464,26 +486,30 @@ export default {
let data = [];
_.forEach(response, (v) => {
data.push({
TASK: [{
TASK: [
{
TITLE: v.TAS_TITLE,
CODE_COLOR: v.TAS_COLOR,
COLOR: v.TAS_COLOR_LABEL,
}],
},
],
CASE_TITLE: v.DEL_TITLE,
ASSIGNEE: v.USR_ID !== 0 ?
utils.userNameDisplayFormat({
ASSIGNEE:
v.USR_ID !== 0
? utils.userNameDisplayFormat({
userName: v.USR_USERNAME,
firstName: v.USR_LASTNAME,
lastName: v.USR_LASTNAME,
format: window.config.FORMATS.format || null
}) : this.$i18n.t("ID_UNASSIGNED"),
format: window.config.FORMATS.format || null,
})
: this.$i18n.t("ID_UNASSIGNED"),
STATUS: v.DEL_THREAD_STATUS,
DUE_DATE: v.DEL_TASK_DUE_DATE,
TASK_COLOR: v.TAS_COLOR_LABEL,
APP_UID: v.APP_UID,
DEL_INDEX: v.DEL_INDEX,
PRO_UID: v.PRO_UID,
TAS_UID:v.TAS_UID
TAS_UID: v.TAS_UID,
});
});
return data;
@@ -520,7 +546,7 @@ export default {
DEL_INDEX: data.row.DEL_INDEX,
PRO_UID: data.row.PRO_UID,
TAS_UID: data.row.TAS_UID,
ACTION: this.dataCase.ACTION || "todo"
ACTION: this.dataCase.ACTION || "todo",
});
this.$emit("onUpdatePage", "XCase");
}

View File

@@ -1,11 +1,11 @@
<template>
<div>
<tabs @changed="changed">
<tab :name="$t('ID_SUMMARY')">
<PmCaseSummary :data="dataCaseSummary"> </PmCaseSummary>
<tab :name="$t('ID_STATUS')">
<CaseStatus :data="dataCaseStatus"> </CaseStatus>
</tab>
<tab :name="$t('ID_MORE_INFORMATION')">
<MoreInformation :data="dataCase" v-if="currentTab == $t('ID_MORE_INFORMATION')">
<tab :name="$t('ID_CUSTOM_INFORMATION')">
<MoreInformation :data="dataCase" v-if="currentTab == $t('ID_CUSTOM_INFORMATION')">
</MoreInformation>
</tab>
<tab :name="$t('ID_PROCESS_MAP')">
@@ -25,7 +25,7 @@
<script>
import Tabs from "./../components/tabs/Tabs.vue";
import Tab from "./../components/tabs/Tab.vue";
import PmCaseSummary from "./../components/home/caseDetail/PmCaseSummary.vue";
import CaseStatus from "./../components/home/caseDetail/CaseStatus.vue";
import ProcessMap from "./../components/home/caseDetail/ProcessMap.vue";
import CaseHistory from "./../components/home/caseDetail/CaseHistory.vue";
import ChangeLog from "./../components/home/caseDetail/ChangeLog.vue";
@@ -38,14 +38,14 @@ export default {
Tabs,
Tab,
ProcessMap,
PmCaseSummary,
CaseStatus,
CaseHistory,
ChangeLog,
MoreInformation
},
props: {
dataCase: Object,
dataCaseSummary: Array,
dataCaseStatus: Array,
},
data() {
return {

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,7 +811,9 @@ 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
@@ -857,14 +867,6 @@ 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']);
}
if (isset($Fields["APP_STATUS"]) && $Fields["APP_STATUS"] == "COMPLETED") {
if (isset($Fields['CURRENT_USER_UID'])) {
$Fields['USR_UID'] = $Fields['CURRENT_USER_UID'];
@@ -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

@@ -4121,6 +4121,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
@@ -5237,6 +5243,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
@@ -5321,10 +5333,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
@@ -5357,6 +5375,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
@@ -25292,7 +25316,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
@@ -25745,6 +25769,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
@@ -25763,6 +25793,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
@@ -25775,6 +25811,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,166 @@ 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'];
}
}
$applicationFields = $case->loadCase( $httpData->appUid, $httpData->delIndex );
$appFields = $case->loadCase($httpData->appUid, $httpData->delIndex);
// Get the process
$process = new Process();
$processData = $process->load( $applicationFields['PRO_UID'] );
$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 = [];
$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');
}
$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

@@ -57498,6 +57498,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') ,
@@ -57693,6 +57694,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') ,
@@ -57707,12 +57709,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') ,
@@ -61210,11 +61214,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

@@ -142,6 +142,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
*