Files
luos/workflow/engine/methods/cases/cases_Resume.php

164 lines
6.0 KiB
PHP
Raw Normal View History

<?php
2018-05-28 09:42:12 -04:00
use ProcessMaker\BusinessModel\Task as BusinessModelTask;
2019-01-03 18:06:05 -04:00
use ProcessMaker\Util\DateTime;
2018-05-28 09:42:12 -04:00
/* Permissions */
2017-12-04 13:25:35 +00:00
switch ($RBAC->userCanAccess('PM_CASES')) {
case - 2:
2017-12-04 13:25:35 +00:00
G::SendTemporalMessage('ID_USER_HAVENT_RIGHTS_SYSTEM', 'error', 'labels');
G::header('location: ../login/login');
die();
break;
case - 1:
2017-12-04 13:25:35 +00:00
G::SendTemporalMessage('ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels');
G::header('location: ../login/login');
die();
break;
}
/* GET , POST & $_SESSION Vars */
2010-12-02 23:34:41 +00:00
/* Menues */
$_SESSION['bNoShowSteps'] = true;
$G_MAIN_MENU = 'processmaker';
$G_SUB_MENU = 'caseOptions';
$G_ID_MENU_SELECTED = 'CASES';
$G_ID_SUB_MENU_SELECTED = '_';
/* Prepare page before to show */
$oCase = new Cases();
2017-02-02 13:57:00 -04:00
//Check the authorization
$objCase = new \ProcessMaker\BusinessModel\Cases();
$aUserCanAccess = $objCase->userAuthorization(
$_SESSION['USER_LOGGED'],
$_SESSION['PROCESS'],
2017-02-02 13:57:00 -04:00
$_GET['APP_UID'],
array('PM_ALLCASES'),
array('SUMMARY_FORM' => 'VIEW')
2017-02-02 13:57:00 -04:00
);
if (isset($_SESSION['ACTION']) && ($_SESSION['ACTION'] == 'jump')) {
2017-12-04 13:25:35 +00:00
$Fields = $oCase->loadCase($_SESSION['APPLICATION'], $_SESSION['INDEX'], $_SESSION['ACTION']);
$process = new Process();
$processData = $process->load($Fields['PRO_UID']);
if (isset($processData['PRO_DYNAFORMS']['PROCESS']) && $processData['PRO_DYNAFORMS']['PROCESS'] != '' &&
$aUserCanAccess['objectPermissions']['SUMMARY_FORM']
) {
$_REQUEST['APP_UID'] = $Fields['APP_UID'];
$_REQUEST['DEL_INDEX'] = $Fields['DEL_INDEX'];
$_REQUEST['DYN_UID'] = $processData['PRO_DYNAFORMS']['PROCESS'];
require_once(PATH_METHODS . 'cases' . PATH_SEP . 'summary.php');
exit();
}
} else {
2017-12-04 13:25:35 +00:00
$Fields = $oCase->loadCase($_SESSION['APPLICATION'], $_SESSION['INDEX']);
}
2017-02-02 13:57:00 -04:00
if (!$aUserCanAccess['participated'] && !$aUserCanAccess['supervisor'] && !$aUserCanAccess['rolesPermissions']['PM_ALLCASES'] && !$aUserCanAccess['objectPermissions']['SUMMARY_FORM']) {
2017-12-04 13:25:35 +00:00
$aMessage['MESSAGE'] = G::LoadTranslation('ID_NO_PERMISSION_NO_PARTICIPATED');
$G_PUBLISH = new Publisher();
2017-12-04 13:25:35 +00:00
$G_PUBLISH->AddContent('xmlform', 'xmlform', 'login/showMessage', '', $aMessage);
G::RenderPage('publishBlank', 'blank');
die();
}
2017-12-04 13:25:35 +00:00
if (isset($aRow['APP_TYPE'])) {
switch ($aRow['APP_TYPE']) {
case 'PAUSE':
2017-12-04 13:25:35 +00:00
$Fields['STATUS'] = ucfirst(strtolower(G::LoadTranslation('ID_PAUSED')));
break;
case 'CANCEL':
2017-12-04 13:25:35 +00:00
$Fields['STATUS'] = ucfirst(strtolower(G::LoadTranslation('ID_CANCELLED')));
break;
}
}
$actions = 'false';
2017-01-20 11:48:16 -04:00
if (isset($_GET['action']) && $_GET['action'] == 'paused') {
$actions = 'true';
}
/* Render page */
2017-12-04 13:25:35 +00:00
$oHeadPublisher = headPublisher::getSingleton();
2017-12-04 13:25:35 +00:00
$oHeadPublisher->addScriptCode("
if (typeof parent != 'undefined') {
if (parent.showCaseNavigatorPanel) {
parent.showCaseNavigatorPanel('{$Fields['APP_STATUS']}');
}
2017-12-04 13:25:35 +00:00
}");
2017-12-04 13:25:35 +00:00
$oHeadPublisher->addScriptCode('
2010-12-02 23:34:41 +00:00
var Cse = {};
Cse.panels = {};
var leimnud = new maborak();
leimnud.make();
leimnud.Package.Load("rpc,drag,drop,panel,app,validator,fx,dom,abbr",{Instance:leimnud,Type:"module"});
leimnud.Package.Load("cases",{Type:"file",Absolute:true,Path:"/jscore/cases/core/cases.js"});
leimnud.Package.Load("cases_Step",{Type:"file",Absolute:true,Path:"/jscore/cases/core/cases_Step.js"});
leimnud.Package.Load("processmap",{Type:"file",Absolute:true,Path:"/jscore/processmap/core/processmap.js"});
leimnud.exec(leimnud.fix.memoryLeak);
2017-12-04 13:25:35 +00:00
');
require_once 'classes/model/Process.php';
$objProc = new Process();
2017-12-04 13:25:35 +00:00
$aProc = $objProc->load($Fields['PRO_UID']);
$Fields['PRO_TITLE'] = $aProc['PRO_TITLE'];
$objTask = new Task();
2017-12-04 13:25:35 +00:00
if (!isset($Fields['TAS_UID']) || $Fields['TAS_UID'] == '') {
$Fields['TAS_UID'] = $Fields['APP_DATA']['TASK'];
}
$tasksInParallel = explode('|', $Fields['TAS_UID']);
2017-12-04 13:25:35 +00:00
$tasksInParallel = array_filter($tasksInParallel, function ($value) {
2016-07-28 17:45:52 -04:00
return !empty($value);
});
$nTasksInParallel = count($tasksInParallel);
2016-07-28 17:45:52 -04:00
if ($nTasksInParallel > 1) {
$aTask = $objTask->load($tasksInParallel[$nTasksInParallel - 1]);
} else {
$aTask = $objTask->load($Fields['TAS_UID']);
}
2015-02-27 16:27:11 -04:00
$Fields['TAS_TITLE'] = $aTask['TAS_TITLE'];
2019-01-03 18:06:05 -04:00
$Fields = DateTime::convertUtcToTimeZone($Fields);
2015-02-27 16:27:11 -04:00
$objUser = new Users();
2017-12-04 13:25:35 +00:00
$oHeadPublisher = headPublisher::getSingleton();
$oHeadPublisher->addScriptFile('/jscore/cases/core/cases_Step.js');
$G_PUBLISH = new Publisher();
2017-12-04 13:25:35 +00:00
$G_PUBLISH->AddContent('xmlform', 'xmlform', 'cases/cases_Resume.xml', '', $Fields, '');
2017-02-07 12:25:21 -04:00
if ($Fields['APP_STATUS'] != 'COMPLETED') {
2017-12-04 13:25:35 +00:00
$G_PUBLISH->AddContent('xmlform', 'xmlform', 'cases/cases_Resume_Current_Task_Title.xml', '', $Fields, '');
2017-02-02 13:57:00 -04:00
$objDel = new AppDelegation();
$parallel = $objDel->LoadParallel($Fields['APP_UID']);
$FieldsPar = $Fields;
2017-02-07 12:25:21 -04:00
foreach ($parallel as $row) {
2017-02-02 13:57:00 -04:00
$FieldsPar['TAS_UID'] = $row['TAS_UID'];
2018-05-28 09:42:12 -04:00
$task = $objTask->load($row['TAS_UID']);
$FieldsPar['TAS_TITLE'] = $task['TAS_TITLE'];
2017-02-02 13:57:00 -04:00
$FieldsPar['USR_UID'] = $row['USR_UID'];
2017-02-07 12:25:21 -04:00
if (isset($row['USR_UID']) && !empty($row['USR_UID'])) {
2018-05-28 09:42:12 -04:00
$user = $objUser->loadDetails($row['USR_UID']);
$FieldsPar['CURRENT_USER'] = $user['USR_FULLNAME'];
2018-01-05 14:31:46 -04:00
} else {
2018-05-28 09:42:12 -04:00
$dummyTaskTypes = BusinessModelTask::getDummyTypes();
if (!in_array($task["TAS_TYPE"], $dummyTaskTypes)) {
$FieldsPar['CURRENT_USER'] = G::LoadTranslation('ID_TITLE_UNASSIGNED');
} else {
$FieldsPar['CURRENT_USER'] = '';
}
2017-02-02 13:57:00 -04:00
}
2019-01-03 18:06:05 -04:00
$FieldsPar['DEL_DELEGATE_DATE'] = DateTime::convertUtcToTimeZone($row['DEL_DELEGATE_DATE']);
$FieldsPar['DEL_INIT_DATE'] = DateTime::convertUtcToTimeZone($row['DEL_INIT_DATE']);
$FieldsPar['DEL_TASK_DUE_DATE'] = DateTime::convertUtcToTimeZone($row['DEL_TASK_DUE_DATE']);
$FieldsPar['DEL_FINISH_DATE'] = DateTime::convertUtcToTimeZone($row['DEL_FINISH_DATE']);
2017-12-04 13:25:35 +00:00
$G_PUBLISH->AddContent('xmlform', 'xmlform', 'cases/cases_Resume_Current_Task.xml', '', $FieldsPar);
2015-02-27 16:27:11 -04:00
}
}
G::RenderPage('publish', 'blank');