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

@@ -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'];
}
$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 = [];
$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;
}
}