Merge branch 'develop' of bitbucket.org:colosa/processmaker into develop

This commit is contained in:
Julio Cesar Laura Avendaño
2021-04-01 19:50:24 +00:00
10 changed files with 392 additions and 196 deletions

View File

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

View File

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

View File

@@ -45,12 +45,17 @@
{{ props.row.DUE_DATE }} {{ props.row.DUE_DATE }}
</div> </div>
<div slot="actions" slot-scope="props"> <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> </div>
</v-server-table> </v-server-table>
</div> </div>
<TabsCaseDetail <TabsCaseDetail
:dataCaseSummary="dataCaseSummaryTab" :dataCaseStatus="dataCaseStatusTab"
:dataCase="dataCase" :dataCase="dataCase"
></TabsCaseDetail> ></TabsCaseDetail>
<ModalCancelCase ref="modal-cancel-case"></ModalCancelCase> <ModalCancelCase ref="modal-cancel-case"></ModalCancelCase>
@@ -126,7 +131,7 @@ export default {
ButtonFleft, ButtonFleft,
ModalNewRequest, ModalNewRequest,
ModalClaimCase, ModalClaimCase,
TaskCell, TaskCell
}, },
props: {}, props: {},
data() { data() {
@@ -135,7 +140,7 @@ export default {
dismissSecs: 5, dismissSecs: 5,
dismissCountDown: 0, dismissCountDown: 0,
message: "", message: "",
variant: "info", variant: "info"
}, },
dataCase: null, dataCase: null,
newCase: { newCase: {
@@ -151,7 +156,7 @@ export default {
"assignee", "assignee",
"status", "status",
"due_date", "due_date",
"actions", "actions"
], ],
showTable: true, showTable: true,
tableData: [], tableData: [],
@@ -162,7 +167,7 @@ export default {
assignee: this.$i18n.t("ID_CURRENT_USER"), assignee: this.$i18n.t("ID_CURRENT_USER"),
status: this.$i18n.t("ID_STATUS"), status: this.$i18n.t("ID_STATUS"),
due_date: this.$i18n.t("ID_DUE_DATE"), due_date: this.$i18n.t("ID_DUE_DATE"),
actions: this.$i18n.t("ID_ACTIONS"), actions: this.$i18n.t("ID_ACTIONS")
}, },
selectable: { selectable: {
mode: "single", // or 'multiple' mode: "single", // or 'multiple'
@@ -178,22 +183,22 @@ export default {
}, },
}, },
dataCaseSummary: null, dataCaseSummary: null,
dataCaseSummaryTab: null, dataCaseStatusTab: null,
dataIoDocuments: { dataIoDocuments: {
titleInput: this.$i18n.t("ID_REQUEST_DOCUMENTS"), titleInput: this.$i18n.t("ID_REQUEST_DOCUMENTS"),
titleOutput: this.$i18n.t("ID_OUTPUT_DOCUMENTS"), titleOutput: this.$i18n.t("ID_OUTPUT_DOCUMENTS"),
inputDocuments: [], inputDocuments: [],
outputDocuments: [], outputDocuments: []
}, },
dataAttachedDocuments: { dataAttachedDocuments: {
title: "Attached Documents", title: "Attached Documents",
items: [], items: []
}, },
attachDocuments: false, attachDocuments: false,
dataComments: { dataComments: {
title: "Comments", title: "Comments",
items: [], items: []
}, }
}; };
}, },
@@ -215,7 +220,7 @@ export default {
_.extend({}, this.dataCase, { _.extend({}, this.dataCase, {
COMMENT: comment, COMMENT: comment,
SEND_MAIL: send, SEND_MAIL: send,
FILES: files, FILES: files
}) })
) )
.then((response) => { .then((response) => {
@@ -247,13 +252,25 @@ export default {
}, },
getDataCaseSummary() { getDataCaseSummary() {
let action, let action,
option, option,
that = this; that = this;
Api.cases Api.cases
.casesummary(this.dataCase) .casesummary(this.dataCase)
.then((response) => { .then((response) => {
var data = response.data; var data = response.data.summary;
this.formatCaseSummary(response.data); 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 = { this.dataCaseSummary = {
title: this.$i18n.t("ID_SUMMARY"), title: this.$i18n.t("ID_SUMMARY"),
titleActions: this.$i18n.t("ID_ACTIONS"), titleActions: this.$i18n.t("ID_ACTIONS"),
@@ -261,37 +278,42 @@ export default {
btnType: false, btnType: false,
onClick: null, onClick: null,
label: { label: {
numberCase: data[2].label, process: data[1].label,
process: data[0].label, processDescription: data[2].label,
status: data[3].label, caseNumber: data[3].label,
caseTitle: data[1].label, caseTitle: data[4].label,
created: data[6].label, status: data[5].label,
delegationDate: response.data[11].label, create: data[6].label,
duration: this.$i18n.t("ID_DURATION"), delegationDate: this.$i18n.t("ID_TASK_DELEGATE_DATE"),
duration: this.$i18n.t("ID_DURATION")
}, },
text: { text: {
numberCase: data[2].value, process: data[1].value,
process: data[0].value, processDescription: data[2].value,
status: data[3].value, caseNumber: data[3].value,
caseTitle: data[1].value, caseTitle: data[4].value,
created: data[6].value, status: data[5].value,
delegationDate: response.data[11].value.split(" ")[0], create: data[6].value,
duration: response.data[11].value.split(" ")[1], delegationDate: data[7] ? data[7].value : "",
}, duration: data[8] ? data[8].value : ""
}
}; };
// Hack for identify the cancel case button // Hack for identify the cancel case button
Api.cases Api.cases.actions(this.dataCase).then((response) => {
.actions(this.dataCase).then((response)=>{ action = _.find(response.data, function (o) {
action = _.find(response.data, function(o) { return o.id == "ACTIONS"; }); return o.id === "ACTIONS";
if(action){
option = _.find(action.options, function(o) { return o.fn == "cancelCase"; });
if(option && !option.hide){
that.dataCaseSummary.onClick = () => {
that.$refs["modal-cancel-case"].show();
};
}
}
}); });
if (action) {
option = _.find(action.options, function (o) {
return o.fn === "cancelCase";
});
if (option && !option.hide) {
that.dataCaseSummary.onClick = () => {
that.$refs["modal-cancel-case"].show();
};
}
}
});
}) })
.catch((err) => { .catch((err) => {
throw new Error(err); throw new Error(err);
@@ -313,7 +335,7 @@ export default {
title: document[i].TITLE, title: document[i].TITLE,
extension: document[i].TITLE.split(".")[1], extension: document[i].TITLE.split(".")[1],
onClick: () => {}, onClick: () => {},
data: document[i], data: document[i]
}; };
this.dataIoDocuments.inputDocuments.push(info); this.dataIoDocuments.inputDocuments.push(info);
} }
@@ -339,7 +361,7 @@ export default {
title: document[i].TITLE, title: document[i].TITLE,
extension: document[i].TITLE.split(".")[1], extension: document[i].TITLE.split(".")[1],
onClick: () => {}, onClick: () => {},
data: document[i], data: document[i]
}; };
this.dataIoDocuments.outputDocuments.push(info); this.dataIoDocuments.outputDocuments.push(info);
} }
@@ -414,16 +436,16 @@ export default {
), ),
date: n.NOTE_DATE, date: n.NOTE_DATE,
comment: n.NOTE_CONTENT, comment: n.NOTE_CONTENT,
data: n, data: n
}); });
}); });
this.dataComments.items = notesArray; this.dataComments.items = notesArray;
}, },
formatCaseSummary(data) { formatCaseProperties(data) {
let index, let index,
sections = []; sections = [];
this.dataCaseSummaryTab = []; this.dataCaseStatusTab = [];
_.each(data, (o) => { _.each(data, (o) => {
if ( if (
(index = _.findIndex(sections, (s) => { (index = _.findIndex(sections, (s) => {
@@ -432,14 +454,14 @@ export default {
) { ) {
sections.push({ sections.push({
title: o.section, title: o.section,
items: [], items: []
}); });
index = 0; index = 0;
} }
sections[index].items.push(o); sections[index].items.push(o);
}); });
this.dataCaseSummaryTab = sections; this.dataCaseStatusTab = sections;
}, },
getCasesForVueTable() { getCasesForVueTable() {
let that = this, let that = this,
@@ -464,26 +486,30 @@ export default {
let data = []; let data = [];
_.forEach(response, (v) => { _.forEach(response, (v) => {
data.push({ data.push({
TASK: [{ TASK: [
TITLE: v.TAS_TITLE, {
CODE_COLOR: v.TAS_COLOR, TITLE: v.TAS_TITLE,
COLOR: v.TAS_COLOR_LABEL, CODE_COLOR: v.TAS_COLOR,
}], COLOR: v.TAS_COLOR_LABEL
},
],
CASE_TITLE: v.DEL_TITLE, CASE_TITLE: v.DEL_TITLE,
ASSIGNEE: v.USR_ID !== 0 ? ASSIGNEE:
utils.userNameDisplayFormat({ v.USR_ID !== 0
userName: v.USR_USERNAME, ? utils.userNameDisplayFormat({
firstName: v.USR_LASTNAME, userName: v.USR_USERNAME,
lastName: v.USR_LASTNAME, firstName: v.USR_LASTNAME,
format: window.config.FORMATS.format || null lastName: v.USR_LASTNAME,
}) : this.$i18n.t("ID_UNASSIGNED"), format: window.config.FORMATS.format || null
})
: this.$i18n.t("ID_UNASSIGNED"),
STATUS: v.DEL_THREAD_STATUS, STATUS: v.DEL_THREAD_STATUS,
DUE_DATE: v.DEL_TASK_DUE_DATE, DUE_DATE: v.DEL_TASK_DUE_DATE,
TASK_COLOR: v.TAS_COLOR_LABEL, TASK_COLOR: v.TAS_COLOR_LABEL,
APP_UID: v.APP_UID, APP_UID: v.APP_UID,
DEL_INDEX: v.DEL_INDEX, DEL_INDEX: v.DEL_INDEX,
PRO_UID:v.PRO_UID, PRO_UID: v.PRO_UID,
TAS_UID:v.TAS_UID TAS_UID: v.TAS_UID
}); });
}); });
return data; return data;
@@ -513,16 +539,16 @@ export default {
*/ */
onClick(data) { onClick(data) {
if (data.row.ASSIGNEE === "Unassigned") { if (data.row.ASSIGNEE === "Unassigned") {
this.claimCase(data.row); this.claimCase(data.row);
} else { } else {
this.$emit("onUpdateDataCase", { this.$emit("onUpdateDataCase", {
APP_UID: data.row.APP_UID, APP_UID: data.row.APP_UID,
DEL_INDEX: data.row.DEL_INDEX, DEL_INDEX: data.row.DEL_INDEX,
PRO_UID: data.row.PRO_UID, PRO_UID: data.row.PRO_UID,
TAS_UID: data.row.TAS_UID, TAS_UID: data.row.TAS_UID,
ACTION: this.dataCase.ACTION || "todo" ACTION: this.dataCase.ACTION || "todo"
}); });
this.$emit("onUpdatePage", "XCase"); this.$emit("onUpdatePage", "XCase");
} }
}, },
/** /**

View File

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

View File

@@ -643,20 +643,23 @@ class Cases
* @param int $delIndex * @param int $delIndex
* @param array $caseData * @param array $caseData
* *
* @return void * @return array
* *
* @see Cases::updateCase() * @see Cases::updateCase()
*/ */
public function updateThreadTitle(string $appUid, int $appNumber, int $delIndex, $caseData = []) public function updateThreadTitle(string $appUid, int $appNumber, int $delIndex, $caseData = [])
{ {
$threadTitle = $this->getCaseTitle(); $threadTitle = '';
if (empty($threadTitle) && !empty($appNumber) && !empty($delIndex)) { $threadDescription = '';
if (!empty($appNumber) && !empty($delIndex)) {
$thread = Delegation::getThreadInfo($appNumber, $delIndex); $thread = Delegation::getThreadInfo($appNumber, $delIndex);
$previous = $thread['DEL_PREVIOUS']; $previous = $thread['DEL_PREVIOUS'];
$appNumber = $thread['APP_NUMBER']; $appNumber = $thread['APP_NUMBER'];
$tasUid = $thread['TAS_UID']; $tasUid = $thread['TAS_UID'];
if (!empty($tasUid)) { 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 // Update thread title
@@ -666,6 +669,11 @@ class Cases
$rows['DEL_TITLE'] = $threadTitle; $rows['DEL_TITLE'] = $threadTitle;
$delegation = new AppDelegation(); $delegation = new AppDelegation();
$delegation->update($rows); $delegation->update($rows);
return [
'title' => $threadTitle,
'description' => $threadDescription
];
} }
/** /**
@@ -803,10 +811,12 @@ class Cases
// Update case title // Update case title
if (!empty($appUid) && !empty($appFields['APP_NUMBER']) && $appFields['APP_NUMBER'] > 0 && !empty($appFields['DEL_INDEX'])) { 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'])) { if (isset($Fields['CURRENT_DYNAFORM'])) {
//only when that variable is set.. from Save //only when that variable is set.. from Save
$FieldsBefore = $this->loadCase($appUid); $FieldsBefore = $this->loadCase($appUid);
@@ -833,7 +843,7 @@ class Cases
} catch (Exception $e) { } catch (Exception $e) {
$currentDynaform["DYN_CONTENT"] = ""; $currentDynaform["DYN_CONTENT"] = "";
} }
//There are changes // There are changes
$Fields['APP_STATUS'] = (isset($Fields['APP_STATUS'])) ? $Fields['APP_STATUS'] : $FieldsBefore['APP_STATUS']; $Fields['APP_STATUS'] = (isset($Fields['APP_STATUS'])) ? $Fields['APP_STATUS'] : $FieldsBefore['APP_STATUS'];
$appHistory = new AppHistory(); $appHistory = new AppHistory();
$aFieldsHistory = $Fields; $aFieldsHistory = $Fields;
@@ -856,28 +866,20 @@ class Cases
/*----------------------------------********---------------------------------*/ /*----------------------------------********---------------------------------*/
} }
} }
//End Save History // 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["APP_STATUS"]) && $Fields["APP_STATUS"] == "COMPLETED") {
if (isset($Fields['CURRENT_USER_UID'])) { if (isset($Fields['CURRENT_USER_UID'])) {
$Fields['USR_UID'] = $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 = new ListParticipatedLast();
$listParticipatedLast->refreshStatus($Fields['APP_UID'], 'COMPLETED'); $listParticipatedLast->refreshStatus($Fields['APP_UID'], 'COMPLETED');
} }
/** Update case*/ /** Update case */
$app->update($Fields); $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) { if ($appFields['APP_NUMBER'] > 0) {
require_once 'classes/model/AdditionalTables.php'; require_once 'classes/model/AdditionalTables.php';
$reportTables = new ReportTables(); $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']) : ''; $delIndex = isset($Fields['DEL_INDEX']) ? trim($Fields['DEL_INDEX']) : '';
$tasUid = isset($Fields['TAS_UID']) ? trim($Fields['TAS_UID']) : ''; $tasUid = isset($Fields['TAS_UID']) ? trim($Fields['TAS_UID']) : '';
$appDel = new AppDelegation; $appDel = new AppDelegation;
$appDel->updatePriority($delIndex, $tasUid, $appUid, $appData); $appDel->updatePriority($delIndex, $tasUid, $appUid, $appData);
//Update Solr Index // Update Solr Index
if ($this->appSolr != null) { if ($this->appSolr != null) {
$this->appSolr->updateApplicationSearchIndex($appUid); $this->appSolr->updateApplicationSearchIndex($appUid);
} }
if (isset($Fields["APP_STATUS"]) && $Fields["APP_STATUS"] == "COMPLETED") { 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 = new AppAssignSelfServiceValue();
$appAssignSelfServiceValue->remove($appUid); $appAssignSelfServiceValue->remove($appUid);
} }
@@ -923,7 +925,6 @@ class Cases
$inbox->update($Fields); $inbox->update($Fields);
/*----------------------------------********---------------------------------*/ /*----------------------------------********---------------------------------*/
//Return
return $Fields; return $Fields;
} catch (Exception $e) { } catch (Exception $e) {
throw ($e); throw ($e);
@@ -1648,7 +1649,8 @@ class Cases
// Get case title // Get case title
$threadTitle = $this->getCaseTitle(); $threadTitle = $this->getCaseTitle();
if (empty($threadTitle)) { if (empty($threadTitle)) {
$threadTitle = Delegation::getThreadTitle($tasUid, $appNumber, $previous, $caseData); $response = Delegation::getThreadTitle($tasUid, $appNumber, $previous, $caseData);
$threadTitle = $response['title'];
} }
$user = UsersPeer::retrieveByPK($usrUid); $user = UsersPeer::retrieveByPK($usrUid);

View File

@@ -4127,6 +4127,12 @@ msgstr "The case was paused due to:"
msgid "Reason to pause the case" msgid "Reason to pause the case"
msgstr "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 # TRANSLATION
# LABEL/ID_CASE_PROPERTIES_SAVE # LABEL/ID_CASE_PROPERTIES_SAVE
#: LABEL/ID_CASE_PROPERTIES_SAVE #: LABEL/ID_CASE_PROPERTIES_SAVE
@@ -5243,6 +5249,12 @@ msgstr "Creating table, please wait..."
msgid "Creating workspace {0}" msgid "Creating workspace {0}"
msgstr "Creating workspace {0}" msgstr "Creating workspace {0}"
# TRANSLATION
# LABEL/ID_CREATOR
#: LABEL/ID_CREATOR
msgid "Creator"
msgstr "Creator"
# TRANSLATION # TRANSLATION
# LABEL/ID_CREDENTIAL_ERROR # LABEL/ID_CREDENTIAL_ERROR
#: 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" msgid "Current license"
msgstr "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 # TRANSLATION
# LABEL/ID_CURRENT_USER # LABEL/ID_CURRENT_USER
#: LABEL/ID_CURRENT_USER #: LABEL/ID_CURRENT_USER
msgid "[LABEL/ID_CURRENT_USER] Current User" msgid "Current User"
msgstr "Current User" msgstr "Current User"
# TRANSLATION # TRANSLATION
@@ -5363,6 +5381,12 @@ msgstr "Current Workspace"
msgid "Custom Case List" msgid "Custom Case List"
msgstr "Custom Case List" msgstr "Custom Case List"
# TRANSLATION
# LABEL/ID_CUSTOM_INFORMATION
#: LABEL/ID_CUSTOM_INFORMATION
msgid "Custom Information"
msgstr "Custom Information"
# TRANSLATION # TRANSLATION
# LABEL/ID_CUSTOM_TRIGGER # LABEL/ID_CUSTOM_TRIGGER
#: LABEL/ID_CUSTOM_TRIGGER #: LABEL/ID_CUSTOM_TRIGGER
@@ -25298,7 +25322,7 @@ msgstr "Static Partial Join for Multiple Instance"
# TRANSLATION # TRANSLATION
# LABEL/ID_STATUS # LABEL/ID_STATUS
#: LABEL/ID_STATUS #: LABEL/ID_STATUS
msgid "[LABEL/ID_STATUS] Status" msgid "Status"
msgstr "Status" msgstr "Status"
# TRANSLATION # TRANSLATION
@@ -25751,6 +25775,12 @@ msgstr "Tasks"
msgid "You can't delete the task \"{0}\" because it has {1} cases." 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." 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 # TRANSLATION
# LABEL/ID_TASK_DEFINED_MANUAL_ASSIGNMENT # LABEL/ID_TASK_DEFINED_MANUAL_ASSIGNMENT
#: 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" msgid "Task Duration"
msgstr "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 # TRANSLATION
# LABEL/ID_TASK_ID # LABEL/ID_TASK_ID
#: LABEL/ID_TASK_ID #: LABEL/ID_TASK_ID
@@ -25781,6 +25817,12 @@ msgstr "Task ID"
msgid "[LABEL/ID_TASK_INFORMATION] Task Information" msgid "[LABEL/ID_TASK_INFORMATION] Task Information"
msgstr "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 # TRANSLATION
# LABEL/ID_TASK_INVALID_USER_NOT_ASSIGNED_TASK # LABEL/ID_TASK_INVALID_USER_NOT_ASSIGNED_TASK
#: 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\BusinessModel\Cases as BmCases;
use ProcessMaker\Exception\CaseNoteUploadFile; use ProcessMaker\Exception\CaseNoteUploadFile;
use ProcessMaker\Model\AppNotes as Notes; use ProcessMaker\Model\AppNotes as Notes;
use ProcessMaker\Model\Delegation;
use ProcessMaker\Model\Documents; use ProcessMaker\Model\Documents;
use ProcessMaker\Model\User;
use ProcessMaker\Util\DateTime; use ProcessMaker\Util\DateTime;
if (!isset($_SESSION['USER_LOGGED'])) { 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 object $httpData
* @param string $httpData->delIndex *
* @return array containg the case summary data * @return array contain the case summary data
*/ */
function getSummary ($httpData) 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(); $case = new Cases();
$appFields = $case->loadCase($httpData->appUid, $httpData->delIndex);
foreach ($formCaseProperties->fields as $fieldName => $field) { // Get the process
$labelsCaseProperties[$fieldName] = $field->label; $process = new Process();
} $processInfo = $process->load($appFields['PRO_UID']);
// Apply mask
foreach ($formCaseTitle->fields as $fieldName => $field) { $createDateLabel = applyMaskDateEnvironment($appFields['CREATE_DATE'],'', false);
$labelTitleCurrentTasks[$fieldName] = $field->label; $updateDateLabel = applyMaskDateEnvironment($appFields['UPDATE_DATE'],'', false);
} // Get summary
$i = 0;
foreach ($formCurrentTaskProperties->fields as $fieldName => $field) { $summary = [
$labelsCurrentTaskProperties[$fieldName] = $field->label; $i++ => [
} 'id' => 'TITLE',
'label' => G::LoadTranslation('ID_SUMMARY'),
if (isset( $_SESSION['_applicationFields'] ) && $_SESSION['_processData']) { 'value' => '',
$applicationFields = $_SESSION['_applicationFields']; ],
unset( $_SESSION['_applicationFields'] ); $i++ => [ // Process
$processData = $_SESSION['_processData']; 'id' => 'PRO_TITLE',
unset( $_SESSION['_processData'] ); 'label' => G::LoadTranslation('ID_PROCESS_NAME') . ': ',
} else { 'value' => $processInfo['PRO_TITLE'],
if ($httpData->action == 'sent') { // Get the last valid delegation for participated list ],
$criteria = new Criteria(); $i++ => [ // Process description
$criteria->addSelectColumn(AppDelegationPeer::DEL_INDEX); 'id' => 'PRO_DESCRIPTION',
$criteria->add(AppDelegationPeer::APP_UID, $httpData->appUid); 'label' => G::LoadTranslation('ID_PRO_DESCRIPTION') . ': ',
$criteria->add(AppDelegationPeer::DEL_FINISH_DATE, null, Criteria::ISNULL); 'value' => $processInfo['PRO_DESCRIPTION'],
$criteria->addDescendingOrderByColumn(AppDelegationPeer::DEL_INDEX); ],
if (AppDelegationPeer::doCount($criteria) > 0) { $i++ => [ // Case Number
$dataset = AppDelegationPeer::doSelectRS($criteria, Propel::getDbConnection('workflow_ro') ); 'id' => 'APP_NUMBER',
$dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); 'label' => G::LoadTranslation('ID_CASE_NUMBER') . ': ',
$dataset->next(); 'value' => $appFields['APP_NUMBER'],
$row = $dataset->getRow(); ],
$httpData->delIndex = $row['DEL_INDEX']; $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 ); $threadProperties = [
$process = new Process(); $j++ => [ // Task
$processData = $process->load( $applicationFields['PRO_UID'] ); '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; 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_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_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_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_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_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') , ( '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','en','Creating : {0}','2014-01-15') ,
( 'LABEL','ID_CREATING_TABLE','en','Creating table, please wait...','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_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_CREDENTIAL_ERROR','en','Credentials Error','2014-01-15') ,
( 'LABEL','ID_CRON_ACTIONS','en','Cron','2014-01-15') , ( 'LABEL','ID_CRON_ACTIONS','en','Cron','2014-01-15') ,
( 'LABEL','ID_CRON_ACTIONS_LOG','en','Cron Actions Log','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_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_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_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_USER','en','Current User','2014-01-15') ,
( 'LABEL','ID_CURRENT_USERS','en','Current Users','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_VALUES','en','Current Values','2014-01-15') ,
( 'LABEL','ID_CURRENT_VERSION','en','Current version','2014-09-18') , ( 'LABEL','ID_CURRENT_VERSION','en','Current version','2014-09-18') ,
( 'LABEL','ID_CURRENT_WORKSPACE','en','Current Workspace','2014-01-15') , ( '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_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','en','Custom Trigger','2014-01-15') ,
( 'LABEL','ID_CUSTOM_TRIGGER_DESCRIPTION','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') , ( '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_TASK','en','Task','2014-01-15') ,
( 'LABEL','ID_TASKS','en','Tasks','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_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_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_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_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_ID','en','Task ID','2014-01-15') ,
( 'LABEL','ID_TASK_INFORMATION','en','Task Information','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') ; ( '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 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_TITLE',
'TASK.TAS_ASSIGN_TYPE', 'TASK.TAS_ASSIGN_TYPE',
'APP_DELEGATION.USR_ID', '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' 'APP_DELEGATION.DEL_TASK_DUE_DATE'
]); ]);
// Join with task // Join with task
@@ -1867,9 +1870,12 @@ class Delegation extends Model
$caseData = $r; $caseData = $r;
} }
} }
// Get task title defined //
$task = new Task(); $task = new Task();
// Get case title defined
$taskTitle = $task->taskCaseTitle($tasUid); $taskTitle = $task->taskCaseTitle($tasUid);
// Get case description defined
$taskDescription = $task->taskCaseDescription($tasUid);
// If exist we will to replace the variables data // If exist we will to replace the variables data
if (!empty($taskTitle)) { if (!empty($taskTitle)) {
$threadTitle = G::replaceDataField($taskTitle, $caseData, 'mysql', false); $threadTitle = G::replaceDataField($taskTitle, $caseData, 'mysql', false);
@@ -1886,8 +1892,16 @@ class Delegation extends Model
$threadTitle = '# ' . $appNumber; $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; 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 * Get task data
* *