Files
luos/workflow/engine/methods/patterns/patterns_Ajax.php

230 lines
14 KiB
PHP
Raw Normal View History

2012-10-17 11:20:15 -04:00
<?php
/**
* patterns_Ajax.php
*
* ProcessMaker Open Source Edition
* Copyright (C) 2004 - 2008 Colosa Inc.23
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
* Coral Gables, FL, 33134, USA, or email info@colosa.com.
*/
//$oJSON = new Services_JSON();
2012-10-17 11:20:15 -04:00
if (isset( $_POST['mode'] ) && $_POST['mode'] != '') {
$aData = $_POST;
} else {
$aData = $_POST['form'];
}
$oTasks = new Tasks();
$rou_id = 0;
switch ($aData['action']) {
case 'savePattern':
//if ($aData['ROU_TYPE'] != $aData['ROU_TYPE_OLD'])
//{
2012-10-17 11:20:15 -04:00
$oTasks->deleteAllRoutesOfTask( $aData['PROCESS'], $aData['TASK'] );
//}
2012-10-17 11:20:15 -04:00
require_once 'classes/model/Route.php';
$oRoute = new Route();
switch ($aData['ROU_TYPE']) {
case 'SEQUENTIAL':
case 'SEC-JOIN':
/*if ($aData['ROU_UID'] != '')
{
$aFields['ROU_UID'] = $aData['ROU_UID'];
}*/
2012-10-17 11:20:15 -04:00
$aFields['PRO_UID'] = $aData['PROCESS'];
$aFields['TAS_UID'] = $aData['TASK'];
$aFields['ROU_NEXT_TASK'] = $aData['ROU_NEXT_TASK'];
$aFields['ROU_TYPE'] = $aData['ROU_TYPE'];
//$aFields['ROU_TO_LAST_USER'] = $aData['ROU_TO_LAST_USER'];
2012-10-17 11:20:15 -04:00
$rou_id = $oRoute->create( $aFields );
break;
case 'SELECT':
$tasksAffected='';
$oTaskSavePattern = new Task();
$taskInfo=$oTaskSavePattern->load($aData['TASK']);
$titleTask=$taskInfo['TAS_TITLE'];
2012-10-17 11:20:15 -04:00
foreach ($aData['GRID_SELECT_TYPE'] as $iKey => $aRow) {
/*if ($aRow['ROU_UID'] != '')
{
$aFields['ROU_UID'] = $aRow['ROU_UID'];
2012-10-17 11:20:15 -04:00
}*/
$aFields['PRO_UID'] = $aData['PROCESS'];
$aFields['TAS_UID'] = $aData['TASK'];
$aFields['ROU_NEXT_TASK'] = $aRow['ROU_NEXT_TASK'];
$aFields['ROU_CASE'] = $iKey;
$aFields['ROU_TYPE'] = $aData['ROU_TYPE'];
$aFields['ROU_CONDITION'] = $aRow['ROU_CONDITION'];
//$aFields['ROU_TO_LAST_USER'] = $aRow['ROU_TO_LAST_USER'];
2012-10-17 11:20:15 -04:00
$rou_id = $oRoute->create( $aFields );
if ($aRow['ROU_NEXT_TASK']=='-1') {
if ($aRow['ROU_CONDITION']=='') {
$tasksAffected.='From -> '.$titleTask.' : '.$aData['TASK'].' To End Of Process Condition -> Empty; ';
}else{
$tasksAffected.='From -> '.$titleTask.' : '.$aData['TASK'].' To End Of Process Condition -> '.$aFields['ROU_CONDITION'].' ; ';
}
}else{
$oTaskSaveNextPattern = new Task();
$taskNextInfo=$oTaskSaveNextPattern->load($aRow['ROU_NEXT_TASK']);
$titleNextTask=$taskNextInfo['TAS_TITLE'];
if ($aRow['ROU_CONDITION']=='') {
$tasksAffected.='From -> '.$titleTask.' : '.$aData['TASK'].' To -> '.$titleNextTask.' : '.$aRow['ROU_NEXT_TASK'].' Condition -> Empty ; ';
}else{
$tasksAffected.='From -> '.$titleTask.' : '.$aData['TASK'].' To -> '.$titleNextTask.' : '.$aRow['ROU_NEXT_TASK'].' Condition -> '.$aFields['ROU_CONDITION'].' ; ';
}
}
2012-10-17 11:20:15 -04:00
unset( $aFields );
}
$oProcessNewPattern = new Process();
$processInfo = $oProcessNewPattern->load($aData['PROCESS']);
$titleProcess = $processInfo['PRO_TITLE'];
G::auditLog("DerivationRule",'PROCESS NAME : '.$titleProcess.' : '.$aData['PROCESS'].' Change Routing Rule From : '.$aData['ROU_TYPE'].' Details : ROU_TYPE_OLD -> '.$aData['ROU_TYPE_OLD']. ' ROU_TYPE ->'.$aData['ROU_TYPE']. ' '.$tasksAffected);
2012-10-17 11:20:15 -04:00
break;
case 'EVALUATE':
$tasksAffected='';
$oTaskSavePattern = new Task();
$taskInfo=$oTaskSavePattern->load($aData['TASK']);
$titleTask=$taskInfo['TAS_TITLE'];
2012-10-17 11:20:15 -04:00
foreach ($aData['GRID_EVALUATE_TYPE'] as $iKey => $aRow) {
/*if ($aRow['ROU_UID'] != '')
{
$aFields['ROU_UID'] = $aRow['ROU_UID'];
2012-10-17 11:20:15 -04:00
}*/
$aFields['PRO_UID'] = $aData['PROCESS'];
$aFields['TAS_UID'] = $aData['TASK'];
$aFields['ROU_NEXT_TASK'] = $aRow['ROU_NEXT_TASK'];
$aFields['ROU_CASE'] = $iKey;
$aFields['ROU_TYPE'] = $aData['ROU_TYPE'];
$aFields['ROU_CONDITION'] = $aRow['ROU_CONDITION'];
//$aFields['ROU_TO_LAST_USER'] = $aRow['ROU_TO_LAST_USER'];
2012-10-17 11:20:15 -04:00
$rou_id = $oRoute->create( $aFields );
if ($aRow['ROU_NEXT_TASK']=='-1') {
if ($aRow['ROU_CONDITION']=='') {
$tasksAffected.='From -> '.$titleTask.' : '.$aData['TASK'].' To End Of Process Condition -> Empty; ';
}else{
$tasksAffected.='From -> '.$titleTask.' : '.$aData['TASK'].' To End Of Process Condition -> '.$aFields['ROU_CONDITION'].' ; ';
}
}else{
$oTaskSaveNextPattern = new Task();
$taskNextInfo=$oTaskSaveNextPattern->load($aRow['ROU_NEXT_TASK']);
$titleNextTask=$taskNextInfo['TAS_TITLE'];
if ($aRow['ROU_CONDITION']=='') {
$tasksAffected.='From -> '.$titleTask.' : '.$aData['TASK'].' To -> '.$titleNextTask.' : '.$aRow['ROU_NEXT_TASK'].' Condition -> Empty ; ';
}else{
$tasksAffected.='From -> '.$titleTask.' : '.$aData['TASK'].' To -> '.$titleNextTask.' : '.$aRow['ROU_NEXT_TASK'].' Condition -> '.$aFields['ROU_CONDITION'].' ; ';
}
}
2012-10-17 11:20:15 -04:00
unset( $aFields );
}
$oProcessNewPattern = new Process();
$processInfo = $oProcessNewPattern->load($aData['PROCESS']);
$titleProcess = $processInfo['PRO_TITLE'];
G::auditLog("DerivationRule",'PROCESS NAME : '.$titleProcess.' : '.$aData['PROCESS'].' Change Routing Rule From : '.$aData['ROU_TYPE'].' Details : ROU_TYPE_OLD -> '.$aData['ROU_TYPE_OLD']. ' ROU_TYPE ->'.$aData['ROU_TYPE']. ' '.$tasksAffected);
2012-10-17 11:20:15 -04:00
break;
case 'PARALLEL':
$tasksAffected='';
$oTaskSavePattern = new Task();
$taskInfo=$oTaskSavePattern->load($aData['TASK']);
$titleTask=$taskInfo['TAS_TITLE'];
2012-10-17 11:20:15 -04:00
foreach ($aData['GRID_PARALLEL_TYPE'] as $iKey => $aRow) {
/*if ($aRow['ROU_UID'] != '')
{
$aFields['ROU_UID'] = $aRow['ROU_UID'];
2012-10-17 11:20:15 -04:00
}*/
$aFields['PRO_UID'] = $aData['PROCESS'];
$aFields['TAS_UID'] = $aData['TASK'];
$aFields['ROU_NEXT_TASK'] = $aRow['ROU_NEXT_TASK'];
$aFields['ROU_CASE'] = $iKey;
$aFields['ROU_TYPE'] = $aData['ROU_TYPE'];
$rou_id = $oRoute->create( $aFields );
$oTaskSaveNextPattern = new Task();
$taskNextInfo=$oTaskSaveNextPattern->load($aRow['ROU_NEXT_TASK']);
$titleNextTask=$taskNextInfo['TAS_TITLE'];
$tasksAffected.='From -> '.$titleTask.' : '.$aData['TASK'].' To -> '.$titleNextTask.' : '.$aRow['ROU_NEXT_TASK'].' ; ';
2012-10-17 11:20:15 -04:00
unset( $aFields );
}
$oProcessNewPattern = new Process();
$processInfo = $oProcessNewPattern->load($aData['PROCESS']);
$titleProcess = $processInfo['PRO_TITLE'];
G::auditLog("DerivationRule",'PROCESS NAME : '.$titleProcess.' : '.$aData['PROCESS'].' Change Routing Rule From : '.$aData['ROU_TYPE'].' Details : ROU_TYPE_OLD -> '.$aData['ROU_TYPE_OLD']. ' ROU_TYPE ->'.$aData['ROU_TYPE']. ' '.$tasksAffected);
2012-10-17 11:20:15 -04:00
break;
case 'PARALLEL-BY-EVALUATION':
$tasksAffected='';
$oTaskSavePattern = new Task();
$taskInfo=$oTaskSavePattern->load($aData['TASK']);
$titleTask=$taskInfo['TAS_TITLE'];
2012-10-17 11:20:15 -04:00
foreach ($aData['GRID_PARALLEL_EVALUATION_TYPE'] as $iKey => $aRow) {
/*if ($aRow['ROU_UID'] != '')
{
$aFields['ROU_UID'] = $aRow['ROU_UID'];
2012-10-17 11:20:15 -04:00
}*/
$aFields['PRO_UID'] = $aData['PROCESS'];
$aFields['TAS_UID'] = $aData['TASK'];
$aFields['ROU_NEXT_TASK'] = $aRow['ROU_NEXT_TASK'];
$aFields['ROU_CASE'] = $iKey;
$aFields['ROU_TYPE'] = $aData['ROU_TYPE'];
$aFields['ROU_CONDITION'] = $aRow['ROU_CONDITION'];
if (isset( $aRow['ROU_OPTIONAL'] ) && trim( $aRow['ROU_OPTIONAL'] ) != '' && ($aRow['ROU_OPTIONAL'] === 'TRUE' || $aRow['ROU_OPTIONAL'] === 'FALSE'))
$aFields['ROU_OPTIONAL'] = $aRow['ROU_OPTIONAL'];
$rou_id = $oRoute->create( $aFields );
if ($aRow['ROU_NEXT_TASK']=='-1') {
if ($aRow['ROU_CONDITION']=='') {
$tasksAffected.='From -> '.$titleTask.' : '.$aData['TASK'].' To End Of Process Condition -> Empty; ';
}else{
$tasksAffected.='From -> '.$titleTask.' : '.$aData['TASK'].' To End Of Process Condition -> '.$aFields['ROU_CONDITION'].' ; ';
}
}else{
$oTaskSaveNextPattern = new Task();
$taskNextInfo=$oTaskSaveNextPattern->load($aRow['ROU_NEXT_TASK']);
$titleNextTask=$taskNextInfo['TAS_TITLE'];
if ($aRow['ROU_CONDITION']=='') {
$tasksAffected.='From -> '.$titleTask.' : '.$aData['TASK'].' To -> '.$titleNextTask.' : '.$aRow['ROU_NEXT_TASK'].' Condition -> Empty ; ';
}else{
$tasksAffected.='From -> '.$titleTask.' : '.$aData['TASK'].' To -> '.$titleNextTask.' : '.$aRow['ROU_NEXT_TASK'].' Condition -> '.$aFields['ROU_CONDITION'].' ; ';
}
}
2012-10-17 11:20:15 -04:00
unset( $aFields );
}
$oProcessNewPattern = new Process();
$processInfo = $oProcessNewPattern->load($aData['PROCESS']);
$titleProcess = $processInfo['PRO_TITLE'];
G::auditLog("DerivationRule",'PROCESS NAME : '.$titleProcess.' : '.$aData['PROCESS'].' Change Routing Rule From : '.$aData['ROU_TYPE'].' Details : ROU_TYPE_OLD -> '.$aData['ROU_TYPE_OLD']. ' ROU_TYPE ->'.$aData['ROU_TYPE']. ' '.$tasksAffected);
2012-10-17 11:20:15 -04:00
break;
case 'DISCRIMINATOR': //Girish ->Added to save changes, while editing the route
2012-10-17 11:20:15 -04:00
foreach ($aData['GRID_DISCRIMINATOR_TYPE'] as $iKey => $aRow) {
$aFields['PRO_UID'] = $aData['PROCESS'];
$aFields['TAS_UID'] = $aData['TASK'];
$aFields['ROU_NEXT_TASK'] = $aRow['ROU_NEXT_TASK'];
$aFields['ROU_CASE'] = $iKey;
$aFields['ROU_TYPE'] = $aData['ROU_TYPE'];
$aFields['ROU_CONDITION'] = $aRow['ROU_CONDITION'];
$aFields['ROU_OPTIONAL'] = $aRow['ROU_OPTIONAL'];
$routeData = $oTasks->getRouteByType( $aData['PROCESS'], $aRow['ROU_NEXT_TASK'], $aData['ROU_TYPE'] );
foreach ($routeData as $route) {
$sFields['ROU_UID'] = $route['ROU_UID'];
$sFields['ROU_CONDITION'] = $aRow['ROU_CONDITION'];
$sFields['ROU_OPTIONAL'] = $aRow['ROU_OPTIONAL'];
$rou_id = $oRoute->update( $sFields );
}
$rou_id = $oRoute->create( $aFields );
unset( $aFields );
}
break;
}
echo $rou_id;
}
2010-12-02 23:34:41 +00:00
?>