refactorizacion del endpoitn route-case y adicion de un nuevo endpoint

This commit is contained in:
Ronald Quenta
2015-06-24 14:36:06 -04:00
parent e0d18f6342
commit ce0274df93
3 changed files with 75 additions and 38 deletions

View File

@@ -2155,10 +2155,11 @@ class wsBase
* @param string $userId
* @param string $caseId
* @param string $delIndex
* @param array $tasks
* @param bool $bExecuteTriggersBeforeAssignment
* @return $result will return an object
*/
public function derivateCase ($userId, $caseId, $delIndex, $bExecuteTriggersBeforeAssignment = false)
public function derivateCase ($userId, $caseId, $delIndex, $bExecuteTriggersBeforeAssignment = false, $tasks = array())
{
$g = new G();
@@ -2350,48 +2351,51 @@ class wsBase
}
$oDerivation = new Derivation();
$derive = $oDerivation->prepareInformation( $aData );
if (isset( $derive[1] )) {
if ($derive[1]['ROU_TYPE'] == 'SELECT') {
$result = new wsResponse( 21, G::loadTranslation( 'ID_CAN_NOT_ROUTE_CASE_USING_WEBSERVICES' ) );
return $result;
}
if (count($tasks) > 0) {
$nextDelegations = $tasks;
} else {
$result = new wsResponse( 22, G::loadTranslation( 'ID_TASK_DOES_NOT_HAVE_ROUTING_RULE' ) );
$derive = $oDerivation->prepareInformation($aData);
return $result;
}
if (isset($derive[1])) {
if ($derive[1]['ROU_TYPE'] == 'SELECT') {
$result = new wsResponse(21, G::loadTranslation('ID_CAN_NOT_ROUTE_CASE_USING_WEBSERVICES'));
foreach ($derive as $key => $val) {
if ($val['NEXT_TASK']['TAS_ASSIGN_TYPE'] == 'MANUAL') {
$result = new wsResponse( 15, G::loadTranslation( 'ID_TASK_DEFINED_MANUAL_ASSIGNMENT' ) );
return $result;
}
} else {
$result = new wsResponse(22, G::loadTranslation('ID_TASK_DOES_NOT_HAVE_ROUTING_RULE'));
return $result;
}
//Routed to the next task, if end process then not exist user
$nodeNext = array ();
$usrasgdUid = null;
$usrasgdUserName = null;
foreach ($derive as $key => $val) {
if ($val['NEXT_TASK']['TAS_ASSIGN_TYPE'] == 'MANUAL') {
$result = new wsResponse(15, G::loadTranslation('ID_TASK_DEFINED_MANUAL_ASSIGNMENT'));
if (isset( $val['NEXT_TASK']['USER_ASSIGNED'] )) {
$usrasgdUid = $val['NEXT_TASK']['USER_ASSIGNED']['USR_UID'];
$usrasgdUserName = '(' . $val['NEXT_TASK']['USER_ASSIGNED']['USR_USERNAME'] . ')';
return $result;
}
//Routed to the next task, if end process then not exist user
$nodeNext = array();
$usrasgdUid = null;
$usrasgdUserName = null;
if (isset($val['NEXT_TASK']['USER_ASSIGNED'])) {
$usrasgdUid = $val['NEXT_TASK']['USER_ASSIGNED']['USR_UID'];
$usrasgdUserName = '(' . $val['NEXT_TASK']['USER_ASSIGNED']['USR_USERNAME'] . ')';
}
$nodeNext['TAS_UID'] = $val['NEXT_TASK']['TAS_UID'];
$nodeNext['USR_UID'] = $usrasgdUid;
$nodeNext['TAS_ASSIGN_TYPE'] = $val['NEXT_TASK']['TAS_ASSIGN_TYPE'];
$nodeNext['TAS_DEF_PROC_CODE'] = $val['NEXT_TASK']['TAS_DEF_PROC_CODE'];
$nodeNext['DEL_PRIORITY'] = $appdel['DEL_PRIORITY'];
$nodeNext['TAS_PARENT'] = $val['NEXT_TASK']['TAS_PARENT'];
$nextDelegations[] = $nodeNext;
$varResponse = $varResponse . (($varResponse != '') ? ',' : '') . $val['NEXT_TASK']['TAS_TITLE'] . $usrasgdUserName;
}
$nodeNext['TAS_UID'] = $val['NEXT_TASK']['TAS_UID'];
$nodeNext['USR_UID'] = $usrasgdUid;
$nodeNext['TAS_ASSIGN_TYPE'] = $val['NEXT_TASK']['TAS_ASSIGN_TYPE'];
$nodeNext['TAS_DEF_PROC_CODE'] = $val['NEXT_TASK']['TAS_DEF_PROC_CODE'];
$nodeNext['DEL_PRIORITY'] = $appdel['DEL_PRIORITY'];
$nodeNext['TAS_PARENT'] = $val['NEXT_TASK']['TAS_PARENT'];
$nextDelegations[] = $nodeNext;
$varResponse = $varResponse . (($varResponse != '') ? ',' : '') . $val['NEXT_TASK']['TAS_TITLE'] . $usrasgdUserName;
}
$appFields['DEL_INDEX'] = $delIndex;
if (isset( $derive['TAS_UID'] )) {