File size: 5,998 Bytes
07c3cdd
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
<?php

use ProcessMaker\BusinessModel\Task as BusinessModelTask;

/* Permissions */
switch ($RBAC->userCanAccess( 'PM_CASES' )) {
    case - 2:
        G::SendTemporalMessage( 'ID_USER_HAVENT_RIGHTS_SYSTEM', 'error', 'labels' );
        G::header( 'location: ../login/login' );
        die();
        break;
    case - 1:
        G::SendTemporalMessage( 'ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels' );
        G::header( 'location: ../login/login' );
        die();
        break;
}

/* GET , POST & $_SESSION Vars */

/* 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();
//Check the authorization
$objCase = new \ProcessMaker\BusinessModel\Cases();
$aUserCanAccess = $objCase->userAuthorization(
    $_SESSION['USER_LOGGED'],
    $_SESSION['PROCESS'],
    $_GET['APP_UID'],
    array('PM_ALLCASES'),
    array('SUMMARY_FORM' => 'VIEW')
);

if (isset($_SESSION['ACTION']) && ($_SESSION['ACTION'] == 'jump')) {
    $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 {
    $Fields = $oCase->loadCase( $_SESSION['APPLICATION'], $_SESSION['INDEX']);
}

if (!$aUserCanAccess['participated'] && !$aUserCanAccess['supervisor'] && !$aUserCanAccess['rolesPermissions']['PM_ALLCASES'] && !$aUserCanAccess['objectPermissions']['SUMMARY_FORM']) {
    $aMessage['MESSAGE'] = G::LoadTranslation( 'ID_NO_PERMISSION_NO_PARTICIPATED' );
    $G_PUBLISH = new Publisher();
    $G_PUBLISH->AddContent( 'xmlform', 'xmlform', 'login/showMessage', '', $aMessage );
    G::RenderPage( 'publishBlank', 'blank' );
    die();
}
if (isset( $aRow['APP_TYPE'] )) {
    switch ($aRow['APP_TYPE']) {
        case 'PAUSE':
            $Fields['STATUS'] = ucfirst( strtolower( G::LoadTranslation( 'ID_PAUSED' ) ) );
            break;
        case 'CANCEL':
            $Fields['STATUS'] = ucfirst( strtolower( G::LoadTranslation( 'ID_CANCELLED' ) ) );
            break;
    }
}

$actions = 'false';
if (isset($_GET['action']) && $_GET['action'] == 'paused') {
    $actions = 'true';
}

    /* Render page */
$oHeadPublisher = & headPublisher::getSingleton();

$oHeadPublisher->addScriptCode( "
  if (typeof parent != 'undefined') {
    if (parent.showCaseNavigatorPanel) {
      parent.showCaseNavigatorPanel('{$Fields['APP_STATUS']}');
    }
  }" );

$oHeadPublisher->addScriptCode( '
  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);
  ' );

require_once 'classes/model/Process.php';

$objProc = new Process();
$aProc = $objProc->load( $Fields['PRO_UID'] );
$Fields['PRO_TITLE'] = $aProc['PRO_TITLE'];

$objTask = new Task();
if(!isset($Fields['TAS_UID']) || $Fields['TAS_UID'] == '') {
    $Fields['TAS_UID'] = $Fields['APP_DATA']['TASK'];
}

$tasksInParallel = explode('|', $Fields['TAS_UID']);
$tasksInParallel = array_filter($tasksInParallel, function($value) {
    return !empty($value);
});
$nTasksInParallel = count($tasksInParallel);

if ($nTasksInParallel > 1) {
    $aTask = $objTask->load($tasksInParallel[$nTasksInParallel - 1]);
} else {
    $aTask = $objTask->load($Fields['TAS_UID']);
}

$Fields['TAS_TITLE'] = $aTask['TAS_TITLE'];

$objUser = new Users();
$oHeadPublisher = & headPublisher::getSingleton();
$oHeadPublisher->addScriptFile( '/jscore/cases/core/cases_Step.js' );
$G_PUBLISH = new Publisher();
$G_PUBLISH->AddContent( 'xmlform', 'xmlform', 'cases/cases_Resume.xml', '', $Fields, '' );
if ($Fields['APP_STATUS'] != 'COMPLETED') {
    $G_PUBLISH->AddContent( 'xmlform', 'xmlform', 'cases/cases_Resume_Current_Task_Title.xml', '', $Fields, '' );
    $objDel = new AppDelegation();
    $parallel = $objDel->LoadParallel($Fields['APP_UID']);
    $FieldsPar = $Fields;
    foreach ($parallel as $row) {
        $FieldsPar['TAS_UID'] = $row['TAS_UID'];
        $task = $objTask->load($row['TAS_UID']);
        $FieldsPar['TAS_TITLE'] = $task['TAS_TITLE'];
        $FieldsPar['USR_UID'] = $row['USR_UID'];
        if (isset($row['USR_UID']) && !empty($row['USR_UID'])) {
            $user = $objUser->loadDetails($row['USR_UID']);
            $FieldsPar['CURRENT_USER'] = $user['USR_FULLNAME'];
        } else {
            $dummyTaskTypes = BusinessModelTask::getDummyTypes();
            if (!in_array($task["TAS_TYPE"], $dummyTaskTypes)) {
                $FieldsPar['CURRENT_USER'] = G::LoadTranslation('ID_TITLE_UNASSIGNED');
            } else {
                $FieldsPar['CURRENT_USER'] = '';
            }
        }
        $FieldsPar['DEL_DELEGATE_DATE'] = $row['DEL_DELEGATE_DATE'];
        $FieldsPar['DEL_INIT_DATE']     = $row['DEL_INIT_DATE'];
        $FieldsPar['DEL_TASK_DUE_DATE'] = $row['DEL_TASK_DUE_DATE'];
        $FieldsPar['DEL_FINISH_DATE']   = $row['DEL_FINISH_DATE'];
        $G_PUBLISH->AddContent( 'xmlform', 'xmlform', 'cases/cases_Resume_Current_Task.xml', '', $FieldsPar);
    }
}

G::RenderPage('publish', 'blank');