File size: 5,634 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
<?php
try {
    global $RBAC;

    switch ($RBAC->userCanAccess( 'PM_FACTORY' )) {
        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;
    }

    //$oJSON = new Services_JSON();
    $aData = get_object_vars( G::json_decode( $_POST['oData'] ));
    //$aData = get_object_vars( $oJSON->decode( $_POST['oData'] ) );

    if (isset($aData["TAS_TITLE"])) {
        $aData["TAS_TITLE"] = str_replace("__ADD__", "+", $aData["TAS_TITLE"]);
    }
    if (isset($aData["TAS_DESCRIPTION"])) {
        $aData["TAS_DESCRIPTION"] = str_replace("__ADD__", "+", $aData["TAS_DESCRIPTION"]);
    }

    if (isset( $_POST['function'] )) {
        $sAction = $_POST['function'];
    } else {
        $sAction = $_POST['functions'];
    }

    switch ($sAction) {
        case "saveTaskData":
            require_once ("classes/model/Task.php");
            $response = array ();

            $oTask = new Task();
            $aTaskInfo = $oTask->load($aData['TAS_UID']);

            /**
             * routine to replace @amp@ by &
             * that why the char "&" can't be passed by XmlHttpRequest directly
             * @autor erik <erik@colosa.com>
             */

            foreach ($aData as $k => $v) {
                $aData[$k] = str_replace( '@amp@', '&', $v );
            }

            if (isset( $aData['SEND_EMAIL'] )) {
                $aData['TAS_SEND_LAST_EMAIL'] = $aData['SEND_EMAIL'] == 'TRUE' ? 'TRUE' : 'FALSE';
            } else {
                //$aTaskInfo = $oTask->load($aData['TAS_UID']);
                $aData['TAS_SEND_LAST_EMAIL'] = is_null($aTaskInfo['TAS_SEND_LAST_EMAIL']) ? 'FALSE' : $aTaskInfo['TAS_SEND_LAST_EMAIL'];
            }

            //Additional configuration
            if (isset( $aData['TAS_DEF_MESSAGE_TYPE'] ) && isset( $aData['TAS_DEF_MESSAGE_TEMPLATE'] )) {

                $oConf = new Configurations();
                $oConf->aConfig = array ('TAS_DEF_MESSAGE_TYPE' => $aData['TAS_DEF_MESSAGE_TYPE'],'TAS_DEF_MESSAGE_TEMPLATE' => $aData['TAS_DEF_MESSAGE_TEMPLATE']
                );

                $oConf->saveConfig( 'TAS_EXTRA_PROPERTIES', $aData['TAS_UID'], '', '' );

                unset( $aData['TAS_DEF_MESSAGE_TYPE'] );
                unset( $aData['TAS_DEF_MESSAGE_TEMPLATE'] );
            }

            //Validating TAS_ASSIGN_VARIABLE value
            $sw = false;
            if (!isset($aData['TAS_ASSIGN_TYPE'])) {
                $sw = true;
                if (isset($aTaskInfo['TAS_ASSIGN_TYPE'])) {
                    switch($aTaskInfo['TAS_ASSIGN_TYPE']) {
                        case 'SELF_SERVICE':
                        case 'SELF_SERVICE_EVALUATE':
                            $aData['TAS_ASSIGN_TYPE'] = ($aTaskInfo['TAS_GROUP_VARIABLE'] == '') ? 'SELF_SERVICE':'SELF_SERVICE_EVALUATE';
                            $aData['TAS_GROUP_VARIABLE'] = $aTaskInfo['TAS_GROUP_VARIABLE'];
                            break;
                        default:
                            $aData['TAS_ASSIGN_TYPE'] = $aTaskInfo['TAS_ASSIGN_TYPE'];
                            break;
                    }
                } else {
                    $derivateType = $oTask->kgetassigType($_SESSION['PROCESS'],$aData['TAS_UID']);
                    if (is_null($derivateType)){
                        $aData['TAS_ASSIGN_TYPE'] = 'BALANCED';
                    } else {
                        $aData['TAS_ASSIGN_TYPE'] = $derivateType['TAS_ASSIGN_TYPE'];
                    }
                }
            }
            switch($aData['TAS_ASSIGN_TYPE']) {
                case 'SELF_SERVICE':
                case 'SELF_SERVICE_EVALUATE':
                    if ($aData['TAS_ASSIGN_TYPE'] == 'SELF_SERVICE_EVALUATE') {
                        $aData['TAS_ASSIGN_TYPE'] = 'SELF_SERVICE';
                        if(trim($aData['TAS_GROUP_VARIABLE']) == '') {
                           $aData['TAS_GROUP_VARIABLE'] = '@@SYS_GROUP_TO_BE_ASSIGNED';
                        }
                    } else {
                        $aData['TAS_GROUP_VARIABLE'] = '';
                    }
                    break;
                default:
                    if (isset($aTaskInfo['TAS_ASSIGN_TYPE']) && $sw) {
                        $aData['TAS_ASSIGN_TYPE'] = $aTaskInfo['TAS_ASSIGN_TYPE'];
                    }
                    $aData['TAS_GROUP_VARIABLE'] = '';
                    break;
            }
                       
            $result = $oTask->update( $aData );
            $oTaskNewPattern = new Task();
            $taskInfo=$oTaskNewPattern->load($aData['TAS_UID']);
            $titleTask=$taskInfo['TAS_TITLE'];
            $taskProperties='';
            foreach ($aData as $key => $value){
                if ($value!='') {
                    $taskProperties.=$key.' -> '.$value.' ';
                }
            }
            G::auditLog("SaveTaskProperties","Task Properties DETAILS : ".$taskProperties);
            $response["status"] = "OK";

            if ($result == 3) {
                $response["status"] = "CRONCL";
            }

            echo G::json_encode( $response );
            break;
    }
} catch (Exception $oException) {
    $token = strtotime("now");
    PMException::registerErrorLog($oException, $token);
    G::outRes($oException->getMessage());
    die;
}