Files
luos/workflow/engine/methods/tasks/tasks_Ajax.php

145 lines
5.5 KiB
PHP
Raw Normal View History

2010-12-02 23:34:41 +00:00
<?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'] )) {
G::LoadClass( 'configuration' );
$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) {
2016-07-27 16:37:21 -04:00
$token = strtotime("now");
PMException::registerErrorLog($oException, $token);
2016-11-25 10:09:35 -05:00
G::outRes($oException->getMessage());
2016-07-27 16:37:21 -04:00
die;
2010-12-02 23:34:41 +00:00
}