2010-12-02 23:34:41 +00:00
< ? php
2013-03-04 09:29:59 -04:00
2010-12-02 23:34:41 +00:00
/**
* class . processMap . php
2012-10-18 15:02:44 -04:00
*
2011-02-01 12:49:40 +00:00
* @ package workflow . engine . ProcessMaker
2010-12-02 23:34:41 +00:00
*
* ProcessMaker Open Source Edition
2011-02-01 12:49:40 +00:00
* Copyright ( C ) 2004 - 2011 Colosa Inc .
2010-12-02 23:34:41 +00:00
*
* 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
2012-10-18 15:02:44 -04:00
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
2010-12-02 23:34:41 +00:00
* GNU Affero General Public License for more details .
*
* You should have received a copy of the GNU Affero General Public License
2012-10-09 13:08:42 -04:00
* along with this program . If not , see < http :// www . gnu . org / licenses />.
2010-12-02 23:34:41 +00:00
*
* For more information , contact Colosa Inc , 2566 Le Jeune Rd . ,
* Coral Gables , FL , 33134 , USA , or email info @ colosa . com .
2011-02-03 11:13:21 +00:00
*/
/**
2012-10-18 15:02:44 -04:00
*
2011-02-01 12:49:40 +00:00
* @ package workflow . engine . ProcessMaker
2010-12-02 23:34:41 +00:00
*/
2012-11-22 16:33:58 -04:00
//G::LoadThirdParty( 'pear/json', 'class.json' );
//G::LoadClass( 'groups' );
//G::LoadClass( 'tasks' );
2013-03-04 09:29:59 -04:00
G :: LoadClass ( 'xmlfield_InputPM' );
2012-11-22 16:33:58 -04:00
//G::LoadClass( 'calendar' );
//require_once 'classes/model/AppDelegation.php';
//require_once 'classes/model/CaseTracker.php';
//require_once 'classes/model/CaseTrackerObject.php';
//require_once 'classes/model/Configuration.php';
//require_once 'classes/model/Content.php';
//require_once 'classes/model/DbSource.php';
//require_once 'classes/model/Dynaform.php';
//require_once 'classes/model/Event.php';
//require_once 'classes/model/Groupwf.php';
//require_once 'classes/model/InputDocument.php';
//require_once 'classes/model/ObjectPermission.php';
//require_once 'classes/model/OutputDocument.php';
//require_once 'classes/model/Process.php';
//require_once 'classes/model/ProcessUser.php';
//require_once 'classes/model/ReportTable.php';
//require_once 'classes/model/Route.php';
//require_once 'classes/model/CaseScheduler.php';
//require_once 'classes/model/LogCasesScheduler.php';
//require_once 'classes/model/Step.php';
//require_once 'classes/model/StepSupervisor.php';
//require_once 'classes/model/StepTrigger.php';
//require_once 'classes/model/SubProcess.php';
//require_once 'classes/model/SwimlanesElements.php';
//require_once 'classes/model/Task.php';
//require_once 'classes/model/TaskUser.php';
//require_once 'classes/model/Triggers.php';
//require_once 'classes/model/Users.php';
//require_once 'classes/model/Gateway.php';
//require_once 'classes/model/om/BaseUsers.php';
2010-12-02 23:34:41 +00:00
/**
* processMap - Process Map class
2012-10-18 15:02:44 -04:00
*
2011-02-03 11:13:21 +00:00
* @ package workflow . engine . ProcessMaker
2010-12-02 23:34:41 +00:00
* @ author Julio Cesar Laura Avendano
* @ copyright 2007 COLOSA
*/
2012-10-18 15:02:44 -04:00
class processMap
{
/*
2013-03-04 09:29:59 -04:00
* Load the process map data
* @ param string $sProcessUID
* @ param boolean $bView
* @ param string $sApplicationUID
* @ param integer $iDelegation
* @ param string $sTask
* @ return string
*/
2010-12-02 23:34:41 +00:00
2013-03-04 09:29:59 -04:00
public function load ( $sProcessUID , $bView = false , $sApplicationUID = '' , $iDelegation = 0 , $sTask = '' , $bCT = false )
2012-10-18 15:02:44 -04:00
{
try {
$oProcess = new Process ();
2013-03-04 09:29:59 -04:00
$aRow = $oProcess -> load ( $sProcessUID );
2013-02-01 15:20:44 -04:00
$oPM -> title = new stdclass ();
2013-03-04 09:29:59 -04:00
$oPM -> title -> label = htmlentities ( $aRow [ 'PRO_TITLE' ], ENT_QUOTES , 'UTF-8' );
2013-02-01 15:20:44 -04:00
$oPM -> title -> position = new stdclass ();
2012-10-18 15:02:44 -04:00
$oPM -> title -> position -> x = $aRow [ 'PRO_TITLE_X' ];
$oPM -> title -> position -> y = $aRow [ 'PRO_TITLE_Y' ];
2013-03-04 09:29:59 -04:00
$oPM -> task = array ();
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> addSelectColumn ( TaskPeer :: PRO_UID );
$oCriteria -> addSelectColumn ( TaskPeer :: TAS_UID );
$oCriteria -> addSelectColumn ( ContentPeer :: CON_VALUE );
$oCriteria -> addSelectColumn ( TaskPeer :: TAS_START );
$oCriteria -> addSelectColumn ( TaskPeer :: TAS_POSX );
$oCriteria -> addSelectColumn ( TaskPeer :: TAS_POSY );
$oCriteria -> addSelectColumn ( TaskPeer :: TAS_COLOR );
$oCriteria -> addSelectColumn ( TaskPeer :: TAS_TYPE );
$aConditions = array ();
$aConditions [] = array ( 0 => TaskPeer :: TAS_UID , 1 => ContentPeer :: CON_ID );
$aConditions [] = array ( 0 => ContentPeer :: CON_CATEGORY , 1 => DBAdapter :: getStringDelimiter () . 'TAS_TITLE' . DBAdapter :: getStringDelimiter () );
$aConditions [] = array ( 0 => ContentPeer :: CON_LANG , 1 => DBAdapter :: getStringDelimiter () . SYS_LANG . DBAdapter :: getStringDelimiter () );
$oCriteria -> addJoinMC ( $aConditions , Criteria :: LEFT_JOIN );
$oCriteria -> add ( TaskPeer :: PRO_UID , $sProcessUID );
$oDataset = TaskPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
2013-01-23 16:04:42 -04:00
2012-10-18 15:02:44 -04:00
while ( $aRow1 = $oDataset -> getRow ()) {
$oTask = null ;
$oTask -> uid = $aRow1 [ 'TAS_UID' ];
$oTask -> task_type = $aRow1 [ 'TAS_TYPE' ];
if ( $aRow1 [ 'TAS_TYPE' ] == 'NORMAL' ) {
2013-03-04 09:29:59 -04:00
if (( $aRow1 [ 'CON_VALUE' ] == " " )) {
//There is no Label in Current SYS_LANG language so try to find in English - by default
2012-10-18 15:02:44 -04:00
$oTask1 = new Task ();
2013-03-04 09:29:59 -04:00
$aFields1 = $oTask1 -> load ( $oTask -> uid );
2012-10-18 15:02:44 -04:00
$aRow1 [ 'CON_VALUE' ] = $oTask1 -> getTasTitle ();
}
2013-03-04 09:29:59 -04:00
$oTask -> label = htmlentities ( $aRow1 [ 'CON_VALUE' ], ENT_QUOTES , 'UTF-8' );
2012-10-09 13:08:42 -04:00
} else {
2013-03-04 09:29:59 -04:00
$oCriteria = new Criteria ( 'workflow' );
2012-10-18 15:02:44 -04:00
$del = DBAdapter :: getStringDelimiter ();
2013-03-04 09:29:59 -04:00
$oCriteria -> add ( SubProcessPeer :: PRO_PARENT , $aRow1 [ 'PRO_UID' ]);
$oCriteria -> add ( SubProcessPeer :: TAS_PARENT , $aRow1 [ 'TAS_UID' ]);
$oCriteria -> addAsColumn ( 'TAS_TITLE' , 'C1.CON_VALUE' );
$oCriteria -> addAlias ( " C1 " , 'CONTENT' );
$tasTitleConds = array ();
$tasTitleConds [] = array ( SubProcessPeer :: TAS_PARENT , 'C1.CON_ID' );
$tasTitleConds [] = array ( 'C1.CON_CATEGORY' , $del . 'TAS_TITLE' . $del );
$tasTitleConds [] = array ( 'C1.CON_LANG' , $del . SYS_LANG . $del );
$oCriteria -> addJoinMC ( $tasTitleConds , Criteria :: LEFT_JOIN );
$oDatasetX = SubProcessPeer :: doSelectRS ( $oCriteria );
$oDatasetX -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDatasetX -> next ();
$aRowx = $oDatasetX -> getRow ();
2013-03-04 09:29:59 -04:00
if ( $oProcess -> exists ( $aRowx [ 'PRO_UID' ])) {
2012-10-18 15:02:44 -04:00
//$aRowy = $oProcess->load($aRowx['PRO_UID']);
//$oTask->label = $aRowy['PRO_TITLE'];
2013-03-04 09:29:59 -04:00
$oTask -> label = htmlentities ( $aRowx [ 'TAS_TITLE' ], ENT_QUOTES , 'UTF-8' );
2012-10-18 15:02:44 -04:00
} else {
2013-03-04 09:29:59 -04:00
$oTask -> label = htmlentities ( $aRow1 [ 'CON_VALUE' ], ENT_QUOTES , 'UTF-8' );
2012-10-18 15:02:44 -04:00
}
}
2013-03-04 09:29:59 -04:00
$oTask -> taskINI = ( strtolower ( $aRow1 [ 'TAS_START' ]) == 'true' ? true : false );
2012-10-18 15:02:44 -04:00
$oTask -> position -> x = ( int ) $aRow1 [ 'TAS_POSX' ];
$oTask -> position -> y = ( int ) $aRow1 [ 'TAS_POSY' ];
$oTask -> derivation = null ;
2013-03-04 09:29:59 -04:00
$oTask -> derivation -> to = array ();
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> add ( RoutePeer :: PRO_UID , $sProcessUID );
$oCriteria -> add ( RoutePeer :: TAS_UID , $aRow1 [ 'TAS_UID' ]);
$oDataset2 = RoutePeer :: doSelectRS ( $oCriteria );
$oDataset2 -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset2 -> next ();
while ( $aRow2 = $oDataset2 -> getRow ()) {
switch ( $aRow2 [ 'ROU_TYPE' ]) {
case 'SEQUENTIAL' :
$aRow2 [ 'ROU_TYPE' ] = 0 ;
break ;
case 'SELECT' :
$aRow2 [ 'ROU_TYPE' ] = 1 ;
break ;
case 'EVALUATE' :
$aRow2 [ 'ROU_TYPE' ] = 2 ;
break ;
case 'PARALLEL' :
$aRow2 [ 'ROU_TYPE' ] = 3 ;
break ;
case 'PARALLEL-BY-EVALUATION' :
$aRow2 [ 'ROU_TYPE' ] = 4 ;
break ;
case 'SEC-JOIN' :
$aRow2 [ 'ROU_TYPE' ] = 5 ;
break ;
case 'DISCRIMINATOR' :
$aRow2 [ 'ROU_TYPE' ] = 8 ;
break ;
}
$oTo = null ;
$oTo -> task = $aRow2 [ 'ROU_NEXT_TASK' ];
$oTo -> condition = $aRow2 [ 'ROU_CONDITION' ];
$oTo -> executant = $aRow2 [ 'ROU_TO_LAST_USER' ];
$oTo -> optional = $aRow2 [ 'ROU_OPTIONAL' ];
$oTask -> derivation -> type = $aRow2 [ 'ROU_TYPE' ];
$oTask -> derivation -> to [] = $oTo ;
$oDataset2 -> next ();
}
2013-01-23 16:04:42 -04:00
2012-10-18 15:02:44 -04:00
if ( $bCT ) {
2013-03-04 09:29:59 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> addSelectColumn ( 'COUNT(*) AS CANT' );
$oCriteria -> addSelectColumn ( 'MIN(DEL_FINISH_DATE) AS FINISH' );
$oCriteria -> add ( AppDelegationPeer :: APP_UID , $sApplicationUID );
$oCriteria -> add ( AppDelegationPeer :: TAS_UID , $aRow1 [ 'TAS_UID' ]);
$oDataset2 = AppDelegationPeer :: doSelectRS ( $oCriteria );
$oDataset2 -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset2 -> next ();
$aRow2 = $oDataset2 -> getRow ();
2013-03-04 09:29:59 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> addSelectColumn ( 'DEL_FINISH_DATE' );
$oCriteria -> add ( AppDelegationPeer :: APP_UID , $sApplicationUID );
$oCriteria -> add ( AppDelegationPeer :: TAS_UID , $aRow1 [ 'TAS_UID' ]);
$oCriteria -> add ( AppDelegationPeer :: DEL_FINISH_DATE , null );
$oDataset2 = AppDelegationPeer :: doSelectRS ( $oCriteria );
$oDataset2 -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset2 -> next ();
$aRow3 = $oDataset2 -> getRow ();
if ( $aRow3 ) {
$aRow2 [ 'FINISH' ] = '' ;
}
/*
2013-03-04 09:29:59 -04:00
if (( $aRow2 [ 'FINISH' ] == null ) && ( $aRow1 [ 'TAS_UID' ] == $sTask )) {
$oTask -> color = '#FF0000' ;
} else {
if ( $aRow2 [ 'CANT' ] != 0 ) {
if ( $aRow2 [ 'FINISH' ] == null ) {
//$oTask->color = '#FF9900';
$oTask -> color = '#FF0000' ;
} else {
$oTask -> color = '#006633' ;
}
} else {
$oTask -> color = " #939598 " ;
}
}
*/
2012-10-18 15:02:44 -04:00
if ( empty ( $aRow2 [ " FINISH " ]) && $aRow1 [ " TAS_UID " ] == $sTask ) {
$oTask -> color = " #FF0000 " ; //Red
} else {
if ( ! empty ( $aRow2 [ " FINISH " ])) {
$oTask -> color = " #006633 " ; //Green
} else {
2013-01-23 16:04:42 -04:00
if ( $oTask -> derivation -> type != 5 ) {
if ( $aRow2 [ " CANT " ] != 0 ) {
$oTask -> color = " #FF0000 " ; //Red
} else {
$oTask -> color = " #939598 " ; //Gray
}
2012-10-18 15:02:44 -04:00
} else {
2013-06-19 09:49:31 -04:00
if ( $aRow3 ) {
$oTask -> color = " #FF0000 " ; //Red
} else {
$oTask -> color = " #939598 " ; //Gray
}
2012-10-18 15:02:44 -04:00
}
}
}
} else {
if ( $bView && ( $sApplicationUID != '' ) && ( $iDelegation > 0 ) && ( $sTask != '' )) {
2013-03-04 09:29:59 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> addSelectColumn ( 'COUNT(*) AS CANT' );
$oCriteria -> addSelectColumn ( 'MIN(DEL_FINISH_DATE) AS FINISH' );
$oCriteria -> add ( AppDelegationPeer :: APP_UID , $sApplicationUID );
$oCriteria -> add ( AppDelegationPeer :: TAS_UID , $aRow1 [ 'TAS_UID' ]);
$oDataset2 = AppDelegationPeer :: doSelectRS ( $oCriteria );
$oDataset2 -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset2 -> next ();
$aRow2 = $oDataset2 -> getRow ();
2013-03-04 09:29:59 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> addSelectColumn ( 'DEL_FINISH_DATE' );
$oCriteria -> add ( AppDelegationPeer :: APP_UID , $sApplicationUID );
$oCriteria -> add ( AppDelegationPeer :: TAS_UID , $aRow1 [ 'TAS_UID' ]);
$oCriteria -> add ( AppDelegationPeer :: DEL_FINISH_DATE , null );
$oDataset2 = AppDelegationPeer :: doSelectRS ( $oCriteria );
$oDataset2 -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset2 -> next ();
$aRow3 = $oDataset2 -> getRow ();
if ( $aRow3 ) {
$aRow2 [ 'FINISH' ] = '' ;
}
/*
2013-03-04 09:29:59 -04:00
if (( $aRow2 [ 'FINISH' ] == null ) && ( $aRow1 [ 'TAS_UID' ] == $sTask )) {
$oTask -> color = '#FF0000' ;
} else {
if ( $aRow2 [ 'CANT' ] != 0 ) {
if ( $aRow2 [ 'FINISH' ] == null ) {
$oTask -> color = '#FF9900' ;
} else {
$oTask -> color = '#006633' ;
}
} else {
$oTask -> color = '#939598' ;
}
}
*/
2012-10-18 15:02:44 -04:00
if ( empty ( $aRow2 [ " FINISH " ]) && $aRow1 [ " TAS_UID " ] == $sTask ) {
$oTask -> color = " #FF0000 " ; //Red
} else {
if ( ! empty ( $aRow2 [ " FINISH " ])) {
$oTask -> color = " #006633 " ; //Green
} else {
2013-01-23 16:04:42 -04:00
if ( $oTask -> derivation -> type != 5 ) {
if ( $aRow2 [ " CANT " ] != 0 ) {
$oTask -> color = " #FF0000 " ; //Red
} else {
$oTask -> color = " #939598 " ; //Gray
}
2012-10-18 15:02:44 -04:00
} else {
$oTask -> color = " #FF9900 " ; //Yellow
}
}
}
}
2012-10-09 13:08:42 -04:00
}
2010-12-02 23:34:41 +00:00
2013-03-04 09:29:59 -04:00
$msg = array ();
G :: LoadClass ( 'derivation' );
2012-10-18 15:02:44 -04:00
$Derivation = new Derivation ();
2013-03-04 09:29:59 -04:00
$users = $Derivation -> getAllUsersFromAnyTask ( $aRow1 [ 'TAS_UID' ]);
2012-10-18 15:02:44 -04:00
$sw_error = false ;
2013-03-04 09:29:59 -04:00
if ( count ( $users ) == 0 ) {
2012-10-18 15:02:44 -04:00
$sw_error = true ;
2013-03-04 09:29:59 -04:00
$msg [] = G :: LoadTranslation ( 'ID_NO_USERS' );
2012-10-18 15:02:44 -04:00
}
2012-10-09 13:08:42 -04:00
2013-03-04 09:29:59 -04:00
G :: LoadClass ( 'ArrayPeer' );
$stepsCriteria = $this -> getStepsCriteria ( $aRow1 [ 'TAS_UID' ]);
$oDatasetSteps = ArrayBasePeer :: doSelectRS ( $stepsCriteria );
$oDatasetSteps -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDatasetSteps -> next ();
$countDynaform = 0 ;
$countOutput = 0 ;
$countInput = 0 ;
$countExternal = 0 ;
while ( $aRowSteps = $oDatasetSteps -> getRow ()) {
switch ( $aRowSteps [ 'STEP_TYPE_OBJ' ]) {
case 'DYNAFORM' :
2013-03-04 09:29:59 -04:00
$countDynaform ++ ;
2012-10-18 15:02:44 -04:00
break ;
case 'INPUT_DOCUMENT' :
2013-03-04 09:29:59 -04:00
$countInput ++ ;
2012-10-18 15:02:44 -04:00
break ;
case 'OUTPUT_DOCUMENT' :
2013-03-04 09:29:59 -04:00
$countOutput ++ ;
2012-10-18 15:02:44 -04:00
break ;
case 'EXTERNAL' :
2013-03-04 09:29:59 -04:00
$countExternal ++ ;
2012-10-18 15:02:44 -04:00
break ;
}
$oDatasetSteps -> next ();
}
$totalSteps = $countDynaform + $countInput + $countOutput + $countExternal ;
if ( $totalSteps == 0 ) {
$sw_error = true ;
2013-03-04 09:29:59 -04:00
$msg [] = G :: LoadTranslation ( 'ID_TASK_NO_STEPS' );
2012-10-18 15:02:44 -04:00
}
if ( $sw_error ) {
2013-03-04 09:29:59 -04:00
$oTask -> statusIcons [] = array ( 'label' => implode ( " , " , $msg ), 'icon' => '/images/alert.gif' , 'message' => implode ( " , " , $msg ), 'url' => '' );
2012-10-18 15:02:44 -04:00
}
2012-10-18 14:46:16 -04:00
2012-10-18 15:02:44 -04:00
$oPM -> task [] = $oTask ;
$oDataset -> next ();
}
2013-03-04 09:29:59 -04:00
$oPM -> executant [] = G :: LoadTranslation ( 'ID_RULES_AND_USER_GROUPS' );
$oPM -> executant [] = G :: LoadTranslation ( 'ID_ADD_USER_OF_TASK' );
2013-02-01 15:20:44 -04:00
$oPM -> tasExtra [ 0 ] = new stdclass ();
2013-03-04 09:29:59 -04:00
$oPM -> tasExtra [ 0 ] -> label = '-- ' . G :: LoadTranslation ( 'ID_END_OF_PROCESS' ) . ' --' ;
2012-10-18 15:02:44 -04:00
$oPM -> tasExtra [ 0 ] -> uid = 'end' ;
2013-02-01 15:20:44 -04:00
$oPM -> tasExtra [ 1 ] = new stdclass ();
2013-03-04 09:29:59 -04:00
$oPM -> tasExtra [ 1 ] -> label = '-- ' . G :: LoadTranslation ( 'ID_TAREA_COLGANTE' ) . ' --' ;
2012-10-18 15:02:44 -04:00
$oPM -> tasExtra [ 1 ] -> uid = 'leaf' ;
2013-03-04 09:29:59 -04:00
$oPM -> guide = array ();
$oPM -> text = array ();
$oPM -> statusIcons = array ();
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> addSelectColumn ( SwimlanesElementsPeer :: SWI_UID );
2012-10-18 15:02:44 -04:00
// $oCriteria->addSelectColumn ( ContentPeer::CON_VALUE );
2013-03-04 09:29:59 -04:00
$oCriteria -> addAsColumn ( " CON_VALUE " , " CASE WHEN CONTENT.CON_VALUE IS NULL THEN (SELECT DISTINCT MAX(A.CON_VALUE) FROM CONTENT A WHERE SWIMLANES_ELEMENTS.SWI_UID=A.CON_ID ) ELSE CONTENT.CON_VALUE END " );
$oCriteria -> addSelectColumn ( SwimlanesElementsPeer :: SWI_TYPE );
$oCriteria -> addSelectColumn ( SwimlanesElementsPeer :: SWI_X );
$oCriteria -> addSelectColumn ( SwimlanesElementsPeer :: SWI_Y );
$aConditions = array ();
$aConditions [] = array ( 0 => SwimlanesElementsPeer :: SWI_UID , 1 => ContentPeer :: CON_ID );
$aConditions [] = array ( 0 => ContentPeer :: CON_CATEGORY , 1 => DBAdapter :: getStringDelimiter () . 'SWI_TEXT' . DBAdapter :: getStringDelimiter () );
$aConditions [] = array ( 0 => ContentPeer :: CON_LANG , 1 => DBAdapter :: getStringDelimiter () . SYS_LANG . DBAdapter :: getStringDelimiter () );
$oCriteria -> addJoinMC ( $aConditions , Criteria :: LEFT_JOIN );
$oCriteria -> add ( SwimlanesElementsPeer :: PRO_UID , $sProcessUID );
$oDataset = SwimlanesElementsPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
while ( $aRow = $oDataset -> getRow ()) {
2013-03-04 09:29:59 -04:00
switch ( strtolower ( $aRow [ 'SWI_TYPE' ])) {
2012-10-18 15:02:44 -04:00
case 'line' :
$oGuide = null ;
$oGuide -> uid = $aRow [ 'SWI_UID' ];
$oGuide -> position = ( $aRow [ 'SWI_X' ] > 0 ? $aRow [ 'SWI_X' ] : $aRow [ 'SWI_Y' ]);
$oGuide -> direction = ( $aRow [ 'SWI_X' ] > 0 ? 'vertical' : 'horizontal' );
$oPM -> guide [] = $oGuide ;
break ;
case 'text' :
$oText = null ;
$oText -> uid = $aRow [ 'SWI_UID' ];
2013-09-20 12:05:08 -04:00
$oText -> label = $aRow [ 'CON_VALUE' ];
2012-10-18 15:02:44 -04:00
$oText -> position -> x = $aRow [ 'SWI_X' ];
$oText -> position -> y = $aRow [ 'SWI_Y' ];
$oPM -> text [] = $oText ;
break ;
}
$oDataset -> next ();
}
2013-03-04 09:29:59 -04:00
$oPM -> derivation = array ( 'Sequential' , 'Evaluate (manual)' , 'Evaluate (auto)' , 'Parallel (fork)' , 'Parallel by evaluation (fork)' , 'Parallel (sequential join)' , 'Parallel (sequential main join)' );
2012-10-18 14:46:16 -04:00
2012-10-18 15:02:44 -04:00
//Load extended task properties from plugin. By JHL Jan 18, 2011
$oPluginRegistry = & PMPluginRegistry :: getSingleton ();
$activePluginsForTaskProperties = $oPluginRegistry -> getTaskExtendedProperties ();
2013-03-04 09:29:59 -04:00
$oPM -> taskOptions = array ();
2012-10-18 15:02:44 -04:00
foreach ( $activePluginsForTaskProperties as $key => $taskPropertiesInfo ) {
$taskOption [ 'title' ] = $taskPropertiesInfo -> sName ;
$taskOption [ 'id' ] = $taskPropertiesInfo -> sNamespace . " -- " . $taskPropertiesInfo -> sName ;
$oPM -> taskOptions [] = $taskOption ;
}
2012-11-22 16:33:58 -04:00
//$oJSON = new Services_JSON();
2013-03-04 09:29:59 -04:00
return Bootstrap :: json_encode ( $oPM ); //$oJSON->encode( $oPM );
2012-10-18 15:02:44 -04:00
} catch ( Exception $oError ) {
throw ( $oError );
}
2012-10-18 14:46:16 -04:00
}
2012-10-18 15:02:44 -04:00
/*
2013-03-04 09:29:59 -04:00
* Create a Process
* @ param array $aData
* @ return boolean
*/
2012-10-09 11:24:11 -04:00
2013-03-04 09:29:59 -04:00
public function createProcess ( $aData )
2012-10-18 15:02:44 -04:00
{
try {
$oProcess = new Process ();
2013-03-04 09:29:59 -04:00
return $oProcess -> create ( $aData );
2012-10-18 15:02:44 -04:00
} catch ( Exception $oError ) {
throw ( $oError );
}
2010-12-02 23:34:41 +00:00
}
2012-10-18 15:02:44 -04:00
/*
2013-03-04 09:29:59 -04:00
* Update a Process
* @ param array $aData
* @ return boolean
*/
2012-10-09 11:24:11 -04:00
2013-03-04 09:29:59 -04:00
public function updateProcess ( $aData )
2012-10-18 15:02:44 -04:00
{
try {
$oProcess = new Process ();
2013-03-04 09:29:59 -04:00
$aFields = $oProcess -> load ( $aData [ 'PRO_UID' ]);
return $oProcess -> update ( $aData );
2012-10-18 15:02:44 -04:00
} catch ( Exception $oError ) {
throw ( $oError );
}
2010-12-02 23:34:41 +00:00
}
2012-10-18 15:02:44 -04:00
/*
2013-03-04 09:29:59 -04:00
* Edit the Process Map information
* @ param string $sProcessUID
* @ return boolean
*/
2012-02-24 19:32:24 -04:00
2013-03-04 09:29:59 -04:00
public function editProcess ( $sProcessUID )
2012-10-18 15:02:44 -04:00
{
try {
$oProcess = new Process ();
2010-12-02 23:34:41 +00:00
2013-03-04 09:29:59 -04:00
if ( ! is_null ( $oProcess )) {
G :: loadClass ( 'processes' );
2012-10-18 15:02:44 -04:00
$calendar = new Calendar ();
2013-03-04 09:29:59 -04:00
$files = Processes :: getProcessFiles ( $sProcessUID , 'mail' );
2012-02-24 19:32:24 -04:00
2013-03-04 09:29:59 -04:00
$templates = array ();
2012-10-18 15:02:44 -04:00
$templates [] = 'dummy' ;
2012-10-09 11:24:11 -04:00
2012-10-18 15:02:44 -04:00
foreach ( $files as $file ) {
2013-03-04 09:29:59 -04:00
$templates [] = array ( 'FILE' => $file [ 'filename' ], 'NAME' => $file [ 'filename' ] );
2012-10-18 15:02:44 -04:00
}
2012-05-10 10:13:07 -04:00
2013-03-04 09:29:59 -04:00
$calendarObj = $calendar -> getCalendarList ( true , true );
2010-12-02 23:34:41 +00:00
2012-10-18 15:02:44 -04:00
global $_DBArray ;
$_DBArray [ '_TEMPLATES1' ] = $templates ;
$_DBArray [ 'availableCalendars' ] = $calendarObj [ 'array' ];
$_SESSION [ '_DBArray' ] = $_DBArray ;
2012-02-24 19:32:24 -04:00
2013-03-04 09:29:59 -04:00
$aFields = $oProcess -> load ( $sProcessUID );
$aFields [ 'PRO_SUMMARY_DYNAFORM' ] = ( isset ( $aFields [ 'PRO_DYNAFORMS' ][ 'PROCESS' ]) ? $aFields [ 'PRO_DYNAFORMS' ][ 'PROCESS' ] : '' );
2012-10-18 15:02:44 -04:00
$aFields [ 'THETYPE' ] = 'UPDATE' ;
2013-03-04 09:29:59 -04:00
$calendarInfo = $calendar -> getCalendarFor ( $sProcessUID , $sProcessUID , $sProcessUID );
2012-02-24 19:32:24 -04:00
2012-10-18 15:02:44 -04:00
//If the function returns a DEFAULT calendar it means that this object doesn't have assigned any calendar
$aFields [ 'PRO_CALENDAR' ] = $calendarInfo [ 'CALENDAR_APPLIED' ] != 'DEFAULT' ? $calendarInfo [ 'CALENDAR_UID' ] : " " ;
$aFields [ 'SYS_LANG' ] = SYS_LANG ;
2010-12-02 23:34:41 +00:00
2012-10-18 15:02:44 -04:00
global $G_PUBLISH ;
$G_PUBLISH = new Publisher ();
2013-03-04 09:29:59 -04:00
$G_PUBLISH -> AddContent ( 'xmlform' , 'xmlform' , 'processes/processes_Edit' , '' , $aFields , 'processes_Save' );
G :: RenderPage ( 'publish' , 'raw' );
2012-05-10 10:13:07 -04:00
2012-10-18 15:02:44 -04:00
return true ;
} else {
2013-03-04 09:29:59 -04:00
throw ( new Exception ( 'This row doesn\'t exist!' ));
2012-10-18 15:02:44 -04:00
}
} catch ( Exception $oError ) {
throw ( $oError );
}
2010-12-02 23:34:41 +00:00
}
2012-10-18 15:02:44 -04:00
/*
2013-03-04 09:29:59 -04:00
* Delete a Process
* @ param string $sProcessUID
* @ return boolean
*/
2010-12-02 23:34:41 +00:00
2013-03-04 09:29:59 -04:00
public function deleteProcess ( $sProcessUID )
2012-10-18 15:02:44 -04:00
{
try {
2013-03-04 09:29:59 -04:00
G :: LoadClass ( 'case' );
G :: LoadClass ( 'reportTables' );
2012-10-18 15:02:44 -04:00
//Instance all classes necesaries
$oProcess = new Process ();
$oDynaform = new Dynaform ();
$oInputDocument = new InputDocument ();
$oOutputDocument = new OutputDocument ();
$oTrigger = new Triggers ();
$oRoute = new Route ();
$oGateway = new Gateway ();
$oEvent = new Event ();
$oSwimlaneElement = new SwimlanesElements ();
$oConfiguration = new Configuration ();
$oDbSource = new DbSource ();
$oReportTable = new ReportTables ();
$oCaseTracker = new CaseTracker ();
$oCaseTrackerObject = new CaseTrackerObject ();
//Delete the applications of process
2013-03-04 09:29:59 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> add ( ApplicationPeer :: PRO_UID , $sProcessUID );
$oDataset = ApplicationPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
$oCase = new Cases ();
while ( $aRow = $oDataset -> getRow ()) {
2013-03-04 09:29:59 -04:00
$oCase -> removeCase ( $aRow [ 'APP_UID' ]);
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
}
//Delete the tasks of process
2013-03-04 09:29:59 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> add ( TaskPeer :: PRO_UID , $sProcessUID );
$oDataset = TaskPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
while ( $aRow = $oDataset -> getRow ()) {
2013-03-04 09:29:59 -04:00
$this -> deleteTask ( $aRow [ 'TAS_UID' ]);
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
}
//Delete the dynaforms of process
2013-03-04 09:29:59 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> add ( DynaformPeer :: PRO_UID , $sProcessUID );
$oDataset = DynaformPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
while ( $aRow = $oDataset -> getRow ()) {
2013-03-04 09:29:59 -04:00
$oDynaform -> remove ( $aRow [ 'DYN_UID' ]);
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
}
//Delete the input documents of process
2013-03-04 09:29:59 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> add ( InputDocumentPeer :: PRO_UID , $sProcessUID );
$oDataset = InputDocumentPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
while ( $aRow = $oDataset -> getRow ()) {
2013-03-04 09:29:59 -04:00
$oInputDocument -> remove ( $aRow [ 'INP_DOC_UID' ]);
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
}
//Delete the output documents of process
2013-03-04 09:29:59 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> add ( OutputDocumentPeer :: PRO_UID , $sProcessUID );
$oDataset = OutputDocumentPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
while ( $aRow = $oDataset -> getRow ()) {
2013-03-04 09:29:59 -04:00
$oOutputDocument -> remove ( $aRow [ 'OUT_DOC_UID' ]);
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
}
2012-10-18 14:46:16 -04:00
2012-10-18 15:02:44 -04:00
//Delete the triggers of process
2013-03-04 09:29:59 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> add ( TriggersPeer :: PRO_UID , $sProcessUID );
$oDataset = TriggersPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
while ( $aRow = $oDataset -> getRow ()) {
2013-03-04 09:29:59 -04:00
$oTrigger -> remove ( $aRow [ 'TRI_UID' ]);
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
}
2012-10-18 14:46:16 -04:00
2012-10-18 15:02:44 -04:00
//Delete the routes of process
2013-03-04 09:29:59 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> add ( RoutePeer :: PRO_UID , $sProcessUID );
$oDataset = RoutePeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
while ( $aRow = $oDataset -> getRow ()) {
2013-03-04 09:29:59 -04:00
$oRoute -> remove ( $aRow [ 'ROU_UID' ]);
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
}
2012-10-18 14:46:16 -04:00
2012-10-18 15:02:44 -04:00
//Delete the gateways of process
2013-03-04 09:29:59 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> add ( GatewayPeer :: PRO_UID , $sProcessUID );
$oDataset = GatewayPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
while ( $aRow = $oDataset -> getRow ()) {
2013-03-04 09:29:59 -04:00
$oGateway -> remove ( $aRow [ 'GAT_UID' ]);
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
}
2012-10-18 14:46:16 -04:00
2012-10-18 15:02:44 -04:00
//Delete the Event of process
2013-03-04 09:29:59 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> add ( EventPeer :: PRO_UID , $sProcessUID );
$oDataset = EventPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
while ( $aRow = $oDataset -> getRow ()) {
2013-03-04 09:29:59 -04:00
$oEvent -> remove ( $aRow [ 'EVN_UID' ]);
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
}
2012-10-18 14:46:16 -04:00
2012-10-18 15:02:44 -04:00
//Delete the swimlanes elements of process
2013-03-04 09:29:59 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> add ( SwimlanesElementsPeer :: PRO_UID , $sProcessUID );
$oDataset = SwimlanesElementsPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
while ( $aRow = $oDataset -> getRow ()) {
2013-03-04 09:29:59 -04:00
$oSwimlaneElement -> remove ( $aRow [ 'SWI_UID' ]);
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
}
//Delete the configurations of process
2013-03-04 09:29:59 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> add ( ConfigurationPeer :: PRO_UID , $sProcessUID );
$oDataset = ConfigurationPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
while ( $aRow = $oDataset -> getRow ()) {
2013-03-04 09:29:59 -04:00
$oConfiguration -> remove ( $aRow [ 'CFG_UID' ], $aRow [ 'OBJ_UID' ], $aRow [ 'PRO_UID' ], $aRow [ 'USR_UID' ], $aRow [ 'APP_UID' ]);
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
}
//Delete the DB sources of process
2013-03-04 09:29:59 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> add ( DbSourcePeer :: PRO_UID , $sProcessUID );
$oDataset = DbSourcePeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
while ( $aRow = $oDataset -> getRow ()) {
/**
* note added by gustavo cruz gustavo - at - colosa - dot - com 27 - 01 - 2010
* in order to solve the bug 00043 89 , we use the validation function Exists
* inside the remove function in order to verify if the DbSource record
* exists in the Database , however there is a strange behavior within the
* propel engine , when the first record is erased somehow the " _deleted "
* attribute of the next row is set to true , so when propel tries to erase
* it , obviously it can ' t and trows an error . With the " Exist " function
* we ensure that if there is the record in the database , the _delete attribute must be false .
*
* note added by gustavo cruz gustavo - at - colosa - dot - com 28 - 01 - 2010
* I have just identified the source of the issue , when is created a $oDbSource DbSource object
* it ' s used whenever a record is erased or removed in the db , however the problem
* it ' s that the same object is used every time , and the delete method invoked
* sets the _deleted attribute to true when its called , of course as we use
* the same object , the first time works fine but trowns an error with the
* next record , cos it ' s the same object and the delete method checks if the _deleted
* attribute it ' s true or false , the attrib _deleted is setted to true the
* first time and later is never changed , the issue seems to be part of
* every remove function in the model classes , not only DbSource
* i recommend that a more general solution must be achieved to resolve
* this issue in every model class , to prevent future problems .
*/
2013-03-04 09:29:59 -04:00
$oDbSource -> remove ( $aRow [ 'DBS_UID' ], $sProcessUID );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
}
//Delete the supervisors
2013-03-04 09:29:59 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> add ( ProcessUserPeer :: PRO_UID , $sProcessUID );
ProcessUserPeer :: doDelete ( $oCriteria );
2012-10-18 15:02:44 -04:00
//Delete the object permissions
2013-03-04 09:29:59 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> add ( ObjectPermissionPeer :: PRO_UID , $sProcessUID );
ObjectPermissionPeer :: doDelete ( $oCriteria );
2012-10-18 15:02:44 -04:00
//Delete the step supervisors
2013-03-04 09:29:59 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> add ( StepSupervisorPeer :: PRO_UID , $sProcessUID );
StepSupervisorPeer :: doDelete ( $oCriteria );
2012-10-18 15:02:44 -04:00
//Delete the report tables
2013-03-04 09:29:59 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> add ( ReportTablePeer :: PRO_UID , $sProcessUID );
$oDataset = ReportTablePeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
while ( $aRow = $oDataset -> getRow ()) {
2013-03-04 09:29:59 -04:00
$oReportTable -> deleteReportTable ( $aRow [ 'REP_TAB_UID' ]);
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
}
//Delete case tracker configuration
2013-03-04 09:29:59 -04:00
$oCaseTracker -> remove ( $sProcessUID );
2012-10-18 15:02:44 -04:00
//Delete case tracker objects
2013-03-04 09:29:59 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> add ( CaseTrackerObjectPeer :: PRO_UID , $sProcessUID );
ProcessUserPeer :: doDelete ( $oCriteria );
2012-10-18 15:02:44 -04:00
//Delete the process
try {
2013-03-04 09:29:59 -04:00
$oProcess -> remove ( $sProcessUID );
} catch ( Exception $oError ) {
throw ( $oError );
2012-10-18 15:02:44 -04:00
}
return true ;
} catch ( Exception $oError ) {
throw ( $oError );
}
2012-10-18 14:46:16 -04:00
}
2012-10-18 15:02:44 -04:00
/*
2013-03-04 09:29:59 -04:00
* Save the process title position
* @ param string sProcessUID
* @ param integer $iX
* @ param integer $iY
* @ return boolean
*/
2011-04-25 09:58:04 -04:00
2013-03-04 09:29:59 -04:00
public function saveTitlePosition ( $sProcessUID = '' , $iX = 0 , $iY = 0 )
2012-10-18 15:02:44 -04:00
{
try {
$oProcess = new Process ();
2013-03-04 09:29:59 -04:00
$aFields = $oProcess -> load ( $sProcessUID );
2012-10-18 15:02:44 -04:00
$aFields [ 'PRO_UID' ] = $sProcessUID ;
$aFields [ 'PRO_TITLE_X' ] = $iX ;
$aFields [ 'PRO_TITLE_Y' ] = $iY ;
2013-03-04 09:29:59 -04:00
$oProcess -> update ( $aFields );
2012-10-18 15:02:44 -04:00
return true ;
} catch ( Exception $oError ) {
throw ( $oError );
}
}
/*
2013-03-04 09:29:59 -04:00
* Steps of Tasks
* @ param string $sProcessUID
* @ param string $sTaskUID
* @ return boolean
*/
2012-10-05 11:16:37 -04:00
2013-03-04 09:29:59 -04:00
public function steps ( $sProcessUID = '' , $sTaskUID = '' )
2012-10-18 15:02:44 -04:00
{
try {
$oProcess = new Process ();
2013-03-04 09:29:59 -04:00
$aFields = $oProcess -> load ( $sProcessUID );
2012-10-18 15:02:44 -04:00
$oTask = new Task ();
2013-03-04 09:29:59 -04:00
$aFields = $oTask -> load ( $sTaskUID );
$aFields = array ();
2012-10-18 15:02:44 -04:00
$aFields [ 'PROCESS' ] = $sProcessUID ;
$aFields [ 'TASK' ] = $sTaskUID ;
2013-03-04 09:29:59 -04:00
$aFields [ 'CONFIRM' ] = G :: LoadTranslation ( 'ID_MSG_CONFIRM_DELETE_STEP' );
2012-10-18 15:02:44 -04:00
global $G_PUBLISH ;
$G_PUBLISH = new Publisher ();
2013-03-04 09:29:59 -04:00
$G_PUBLISH -> AddContent ( 'propeltable' , 'paged-table' , 'steps/steps_List' , $this -> getStepsCriteria ( $sTaskUID ), $aFields );
G :: RenderPage ( 'publish' , 'raw' );
2012-10-18 15:02:44 -04:00
return true ;
} catch ( Exception $oError ) {
throw ( $oError );
}
}
/*
2013-03-04 09:29:59 -04:00
* Return the steps list criteria object
* @ param string $sTaskUID
* @ return array
*/
2011-01-28 12:31:29 +00:00
2013-03-04 09:29:59 -04:00
public function getStepsCriteria ( $sTaskUID = '' )
2012-10-18 15:02:44 -04:00
{
try {
//call plugin
$oPluginRegistry = & PMPluginRegistry :: getSingleton ();
$externalSteps = $oPluginRegistry -> getSteps ();
2013-03-04 09:29:59 -04:00
$aSteps = array ();
$aSteps [] = array ( 'STEP_TITLE' => 'char' , 'STEP_UID' => 'char' , 'STEP_TYPE_OBJ' => 'char' , 'STEP_MODE' => 'char' , 'STEP_CONDITION' => 'char' , 'STEP_POSITION' => 'integer' );
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> add ( StepPeer :: TAS_UID , $sTaskUID );
$oCriteria -> addAscendingOrderByColumn ( StepPeer :: STEP_POSITION );
$oDataset = StepPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
while ( $aRow = $oDataset -> getRow ()) {
$urlEdit = '' ;
$linkEditValue = '' ;
switch ( $aRow [ 'STEP_TYPE_OBJ' ]) {
case 'DYNAFORM' :
$oDynaform = new Dynaform ();
2013-03-04 09:29:59 -04:00
$aFields = $oDynaform -> load ( $aRow [ 'STEP_UID_OBJ' ]);
2012-10-18 15:02:44 -04:00
$sTitle = $aFields [ 'DYN_TITLE' ];
/**
* @@@ init2 PROCCESS FOR DIRECT EDIT LINK @ by erik @ colosa . com ON DATE 02 / 06 / 2008 18 : 48 : 13
*/
$DYN_UID = $aFields [ 'DYN_UID' ];
$urlEdit = " dynaformEdit(' " . $DYN_UID . " ', ' " . $aRow [ 'PRO_UID' ] . " '); " ;
$linkEditValue = 'Edit' ;
/**
* @@@ end2
*/
break ;
case 'INPUT_DOCUMENT' :
$oInputDocument = new InputDocument ();
2013-03-04 09:29:59 -04:00
$aFields = $oInputDocument -> getByUid ( $aRow [ 'STEP_UID_OBJ' ]);
if ( $aFields === false ) {
2012-10-18 15:02:44 -04:00
continue ;
2013-03-04 09:29:59 -04:00
}
2012-10-18 15:02:44 -04:00
$sTitle = $aFields [ 'INP_DOC_TITLE' ];
break ;
case 'OUTPUT_DOCUMENT' :
$oOutputDocument = new OutputDocument ();
2013-03-04 09:29:59 -04:00
$aFields = $oOutputDocument -> getByUid ( $aRow [ 'STEP_UID_OBJ' ]);
2012-10-18 15:02:44 -04:00
2013-03-04 09:29:59 -04:00
if ( $aFields === false ) {
2012-10-18 15:02:44 -04:00
continue ;
2013-03-04 09:29:59 -04:00
}
2012-10-18 15:02:44 -04:00
$sTitle = $aFields [ 'OUT_DOC_TITLE' ];
break ;
case 'EXTERNAL' :
$sTitle = 'unknown ' . $aRow [ 'STEP_UID' ];
foreach ( $externalSteps as $key => $val ) {
if ( $val -> sStepId == $aRow [ 'STEP_UID_OBJ' ]) {
$sTitle = $val -> sStepTitle ;
2013-03-04 09:29:59 -04:00
if ( trim ( $val -> sSetupStepPage ) != '' ) {
2012-10-18 15:02:44 -04:00
$urlEdit = " externalStepEdit(' " . $aRow [ 'STEP_UID' ] . " ', ' " . $val -> sSetupStepPage . " '); " ;
$linkEditValue = 'Edit' ;
} else {
$urlEdit = " " ;
$linkEditValue = '' ;
}
}
}
break ;
2012-10-05 13:00:58 -04:00
}
2012-11-08 14:58:47 -04:00
2013-03-04 09:29:59 -04:00
$aSteps [] = array ( 'STEP_TITLE' => $sTitle , 'STEP_UID' => $aRow [ 'STEP_UID' ], 'STEP_TYPE_OBJ' => $aRow [ 'STEP_TYPE_OBJ' ], 'STEP_MODE' => $aRow [ 'STEP_MODE' ], 'STEP_CONDITION' => $aRow [ 'STEP_CONDITION' ], 'STEP_POSITION' => $aRow [ 'STEP_POSITION' ], 'urlEdit' => $urlEdit , 'linkEditValue' => $linkEditValue , 'PRO_UID' => $aRow [ 'PRO_UID' ]
2012-10-18 15:02:44 -04:00
);
$oDataset -> next ();
2012-10-05 13:00:58 -04:00
}
2012-10-18 15:02:44 -04:00
global $_DBArray ;
2013-03-04 09:29:59 -04:00
$_DBArray = ( isset ( $_SESSION [ '_DBArray' ]) ? $_SESSION [ '_DBArray' ] : '' );
2012-10-18 15:02:44 -04:00
$_DBArray [ 'steps' ] = $aSteps ;
$_SESSION [ '_DBArray' ] = $_DBArray ;
2013-03-04 09:29:59 -04:00
G :: LoadClass ( 'ArrayPeer' );
$oCriteria = new Criteria ( 'dbarray' );
$oCriteria -> setDBArrayTable ( 'steps' );
$oCriteria -> addAscendingOrderByColumn ( 'STEP_POSITION' );
2012-10-18 15:02:44 -04:00
return $oCriteria ;
} catch ( Exception $oError ) {
throw ( $oError );
2012-10-05 13:00:58 -04:00
}
2012-10-18 15:02:44 -04:00
}
2012-10-18 14:46:16 -04:00
2012-10-18 15:02:44 -04:00
/*
2013-03-04 09:29:59 -04:00
* Return the step triggers list criteria object
* @ param string $sStepUID
* @ param string $sTaskUID
* @ param string $sType
* @ return object
*/
2010-12-02 23:34:41 +00:00
2013-03-04 09:29:59 -04:00
public function getStepTriggersCriteria ( $sStepUID = '' , $sTaskUID = '' , $sType = '' )
2012-10-18 15:02:44 -04:00
{
$sDelimiter = DBAdapter :: getStringDelimiter ();
2013-03-04 09:29:59 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> addSelectColumn ( 'C.CON_VALUE' );
$oCriteria -> addSelectColumn ( 'STEP_UID' );
$oCriteria -> addSelectColumn ( 'TRI_UID' );
2013-11-28 17:05:58 -04:00
$oCriteria -> addAsColumn ( 'TRI_LOCATE_WEBBOT_PARAM' , '(SELECT LOCATE(MD5(' . TriggersPeer :: TRI_WEBBOT . '),' . TriggersPeer :: TRI_PARAM . ') FROM ' . TriggersPeer :: TABLE_NAME . ' WHERE ' . TriggersPeer :: TRI_UID . '=' . StepTriggerPeer :: TRI_UID . ' )' );
2013-03-04 09:29:59 -04:00
$oCriteria -> addSelectColumn ( 'ST_TYPE' );
$oCriteria -> addSelectColumn ( StepTriggerPeer :: ST_POSITION );
$oCriteria -> addAsColumn ( 'TRI_TITLE' , 'C.CON_VALUE' );
$oCriteria -> addAlias ( 'C' , 'CONTENT' );
$aConditions = array ();
$aConditions [] = array ( StepTriggerPeer :: TRI_UID , 'C.CON_ID' );
$aConditions [] = array ( 'C.CON_CATEGORY' , $sDelimiter . 'TRI_TITLE' . $sDelimiter );
$aConditions [] = array ( 'C.CON_LANG' , $sDelimiter . SYS_LANG . $sDelimiter );
$oCriteria -> addJoinMC ( $aConditions , Criteria :: LEFT_JOIN );
$oCriteria -> add ( StepTriggerPeer :: STEP_UID , $sStepUID );
$oCriteria -> add ( StepTriggerPeer :: TAS_UID , $sTaskUID );
$oCriteria -> add ( StepTriggerPeer :: ST_TYPE , $sType );
$oCriteria -> addAscendingOrderByColumn ( StepTriggerPeer :: ST_POSITION );
2012-10-18 15:02:44 -04:00
return $oCriteria ;
}
/*
2013-03-04 09:29:59 -04:00
* Return the available building blocks list criteria object
* @ param string $sProcessUID
* @ param string $sTaskUID
* @ return object
*/
2010-12-02 23:34:41 +00:00
2013-03-04 09:29:59 -04:00
public function getAvailableBBCriteria ( $sProcessUID = '' , $sTaskUID = '' )
2012-10-18 15:02:44 -04:00
{
try {
$oTasks = new Tasks ();
2013-03-04 09:29:59 -04:00
$aSteps = $oTasks -> getStepsOfTask ( $sTaskUID );
$sUIDs = array ();
2012-10-18 15:02:44 -04:00
foreach ( $aSteps as $aStep ) {
$sUIDs [] = $aStep [ 'STEP_UID_OBJ' ];
}
2013-03-04 09:29:59 -04:00
$aBB = array ();
$aBB [] = array ( 'STEP_UID' => 'char' , 'STEP_TITLE' => 'char' , 'STEP_TYPE_OBJ' => 'char' , 'STEP_MODE' => 'char' );
2012-10-18 15:02:44 -04:00
$sDelimiter = DBAdapter :: getStringDelimiter ();
2013-03-04 09:29:59 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> addSelectColumn ( DynaformPeer :: DYN_UID );
$oCriteria -> addAsColumn ( 'DYN_TITLE' , 'C.CON_VALUE' );
$oCriteria -> addAlias ( 'C' , 'CONTENT' );
$aConditions = array ();
$aConditions [] = array ( DynaformPeer :: DYN_UID , 'C.CON_ID' );
$aConditions [] = array ( 'C.CON_CATEGORY' , $sDelimiter . 'DYN_TITLE' . $sDelimiter );
$aConditions [] = array ( 'C.CON_LANG' , $sDelimiter . SYS_LANG . $sDelimiter );
$oCriteria -> addJoinMC ( $aConditions , Criteria :: LEFT_JOIN );
$oCriteria -> add ( DynaformPeer :: PRO_UID , $sProcessUID );
$oCriteria -> add ( DynaformPeer :: DYN_UID , $sUIDs , Criteria :: NOT_IN );
$oCriteria -> add ( DynaformPeer :: DYN_TYPE , 'xmlform' );
$oDataset = DynaformPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
$i = 0 ;
while ( $aRow = $oDataset -> getRow ()) {
2013-03-04 09:29:59 -04:00
$i ++ ;
if (( $aRow [ 'DYN_TITLE' ] == null ) || ( $aRow [ 'DYN_TITLE' ] == " " )) {
// There is no transaltion for this Document name, try to get/regenerate the label
$aRow [ 'DYN_TITLE' ] = Content :: Load ( " DYN_TITLE " , " " , $aRow [ 'DYN_UID' ], SYS_LANG );
2012-10-18 15:02:44 -04:00
}
2013-03-04 09:29:59 -04:00
$aBB [] = array ( 'STEP_UID' => $aRow [ 'DYN_UID' ], 'STEP_TITLE' => $aRow [ 'DYN_TITLE' ], 'STEP_TYPE_OBJ' => 'DYNAFORM' , 'STEP_MODE' => '<select id="STEP_MODE_' . $aRow [ 'DYN_UID' ] . ' " >
2013-09-05 11:26:20 -04:00
< option value = " EDIT " > ' . G::LoadTranslation(' ID_EDIT ') . ' </ option >
< option value = " VIEW " > ' . G::LoadTranslation(' ID_VIEW ') . ' </ option >
2012-10-18 15:02:44 -04:00
</ select > '
);
$oDataset -> next ();
}
2013-03-04 09:29:59 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> addSelectColumn ( InputDocumentPeer :: INP_DOC_UID );
$oCriteria -> addAsColumn ( 'INP_DOC_TITLE' , 'C.CON_VALUE' );
$oCriteria -> addAlias ( 'C' , 'CONTENT' );
$aConditions = array ();
$aConditions [] = array ( InputDocumentPeer :: INP_DOC_UID , 'C.CON_ID' );
$aConditions [] = array ( 'C.CON_CATEGORY' , $sDelimiter . 'INP_DOC_TITLE' . $sDelimiter );
$aConditions [] = array ( 'C.CON_LANG' , $sDelimiter . SYS_LANG . $sDelimiter );
$oCriteria -> addJoinMC ( $aConditions , Criteria :: LEFT_JOIN );
$oCriteria -> add ( InputDocumentPeer :: PRO_UID , $sProcessUID );
$oCriteria -> add ( InputDocumentPeer :: INP_DOC_UID , $sUIDs , Criteria :: NOT_IN );
$oDataset = InputDocumentPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
while ( $aRow = $oDataset -> getRow ()) {
2013-03-04 09:29:59 -04:00
if (( $aRow [ 'INP_DOC_TITLE' ] == null ) || ( $aRow [ 'INP_DOC_TITLE' ] == " " )) {
// There is no transaltion for this Document name, try to get/regenerate the label
$aRow [ 'INP_DOC_TITLE' ] = Content :: Load ( " INP_DOC_TITLE " , " " , $aRow [ 'INP_DOC_UID' ], SYS_LANG );
2012-10-18 15:02:44 -04:00
}
2013-03-04 09:29:59 -04:00
$aBB [] = array ( 'STEP_UID' => $aRow [ 'INP_DOC_UID' ], 'STEP_TITLE' => $aRow [ 'INP_DOC_TITLE' ], 'STEP_TYPE_OBJ' => 'INPUT_DOCUMENT' , 'STEP_MODE' => '<input type="hidden" id="STEP_MODE_' . $aRow [ 'INP_DOC_UID' ] . '">' );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
}
2013-03-04 09:29:59 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> addSelectColumn ( OutputDocumentPeer :: OUT_DOC_UID );
$oCriteria -> addAsColumn ( 'OUT_DOC_TITLE' , 'C.CON_VALUE' );
$oCriteria -> addAlias ( 'C' , 'CONTENT' );
$aConditions = array ();
$aConditions [] = array ( OutputDocumentPeer :: OUT_DOC_UID , 'C.CON_ID' );
$aConditions [] = array ( 'C.CON_CATEGORY' , $sDelimiter . 'OUT_DOC_TITLE' . $sDelimiter );
$aConditions [] = array ( 'C.CON_LANG' , $sDelimiter . SYS_LANG . $sDelimiter );
$oCriteria -> addJoinMC ( $aConditions , Criteria :: LEFT_JOIN );
$oCriteria -> add ( OutputDocumentPeer :: PRO_UID , $sProcessUID );
$oCriteria -> add ( OutputDocumentPeer :: OUT_DOC_UID , $sUIDs , Criteria :: NOT_IN );
$oDataset = OutputDocumentPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
while ( $aRow = $oDataset -> getRow ()) {
2013-03-04 09:29:59 -04:00
if (( $aRow [ 'OUT_DOC_TITLE' ] == null ) || ( $aRow [ 'OUT_DOC_TITLE' ] == " " )) {
// There is no transaltion for this Document name, try to get/regenerate the label
$aRow [ 'OUT_DOC_TITLE' ] = Content :: Load ( " OUT_DOC_TITLE " , " " , $aRow [ 'OUT_DOC_UID' ], SYS_LANG );
2012-10-18 15:02:44 -04:00
}
2013-03-04 09:29:59 -04:00
$aBB [] = array ( 'STEP_UID' => $aRow [ 'OUT_DOC_UID' ], 'STEP_TITLE' => $aRow [ 'OUT_DOC_TITLE' ], 'STEP_TYPE_OBJ' => 'OUTPUT_DOCUMENT' , 'STEP_MODE' => '<input type="hidden" id="STEP_MODE_' . $aRow [ 'OUT_DOC_UID' ] . '">' );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
}
2012-10-18 14:46:16 -04:00
2012-10-18 15:02:44 -04:00
//call plugin
$oPluginRegistry = & PMPluginRegistry :: getSingleton ();
$externalSteps = $oPluginRegistry -> getSteps ();
2013-03-04 09:29:59 -04:00
if ( is_array ( $externalSteps ) && count ( $externalSteps ) > 0 ) {
2012-10-18 15:02:44 -04:00
foreach ( $externalSteps as $key => $stepVar ) {
2013-03-04 09:29:59 -04:00
$aBB [] = array ( 'STEP_UID' => $stepVar -> sStepId , 'STEP_TITLE' => $stepVar -> sStepTitle , 'STEP_TYPE_OBJ' => 'EXTERNAL' , 'STEP_MODE' => '<input type="hidden" id="STEP_MODE_' . $stepVar -> sStepId . '">' );
2012-10-18 15:02:44 -04:00
}
}
global $_DBArray ;
2013-03-04 09:29:59 -04:00
$_DBArray = ( isset ( $_SESSION [ '_DBArray' ]) ? $_SESSION [ '_DBArray' ] : '' );
2012-10-18 15:02:44 -04:00
$_DBArray [ 'availableBB' ] = $aBB ;
$_SESSION [ '_DBArray' ] = $_DBArray ;
2013-03-04 09:29:59 -04:00
G :: LoadClass ( 'ArrayPeer' );
$oCriteria = new Criteria ( 'dbarray' );
$oCriteria -> setDBArrayTable ( 'availableBB' );
$oCriteria -> addAscendingOrderByColumn ( 'STEP_TYPE_OBJ' );
$oCriteria -> addAscendingOrderByColumn ( 'STEP_TITLE' );
2012-10-18 15:02:44 -04:00
return $oCriteria ;
} catch ( Exception $oError ) {
throw ( $oError );
2012-10-18 14:46:16 -04:00
}
2012-10-18 15:02:44 -04:00
}
/*
2013-03-04 09:29:59 -04:00
* Users assigned to Tasks
* @ param string $sProcessUID
* @ param string $sTaskUID
* @ return boolean
*/
2010-12-02 23:34:41 +00:00
2013-03-04 09:29:59 -04:00
public function users ( $sProcessUID = '' , $sTaskUID = '' )
2012-10-18 15:02:44 -04:00
{
try {
$oProcess = new Process ();
2013-03-04 09:29:59 -04:00
$aFields = $oProcess -> load ( $sProcessUID );
2012-10-18 15:02:44 -04:00
$oTask = new Task ();
2013-03-04 09:29:59 -04:00
$aFields = $oTask -> load ( $sTaskUID );
2012-10-18 15:02:44 -04:00
$_SESSION [ 'iType' ] = 1 ;
$aFields [ 'TASK' ] = $sTaskUID ;
$aFields [ 'TYPE' ] = $_SESSION [ 'iType' ];
2013-03-04 09:29:59 -04:00
$aFields [ 'OF_TO_ASSIGN' ] = G :: LoadTranslation ( 'ID_DE_ASSIGN' );
$aFields [ 'CONFIRM' ] = G :: LoadTranslation ( 'ID_MSG_CONFIRM_DEASIGN_USER_GROUP_MESSAGE' );
2012-10-18 15:02:44 -04:00
$aFields [ 'UIDS' ] = " '0' " ;
$oTasks = new Tasks ();
$oGroups = new Groups ();
2013-03-04 09:29:59 -04:00
$aAux1 = $oTasks -> getGroupsOfTask ( $sTaskUID , $_SESSION [ 'iType' ]);
2012-10-18 15:02:44 -04:00
foreach ( $aAux1 as $aGroup ) {
2013-03-04 09:29:59 -04:00
$aAux2 = $oGroups -> getUsersOfGroup ( $aGroup [ 'GRP_UID' ]);
2012-10-18 15:02:44 -04:00
foreach ( $aAux2 as $aUser ) {
$aFields [ 'UIDS' ] .= " ,' " . $aUser [ 'USR_UID' ] . " ' " ;
}
}
global $G_PUBLISH ;
$G_PUBLISH = new Publisher ();
$oTask = new Task ();
2013-03-04 09:29:59 -04:00
$aTask = $oTask -> load ( $sTaskUID );
2012-10-18 14:46:16 -04:00
2012-10-18 15:02:44 -04:00
if ( $aFields [ 'TAS_TYPE' ] == 'TRUE' ) {
2013-03-04 09:29:59 -04:00
$G_PUBLISH -> AddContent ( 'propeltable' , 'paged-table' , 'users/users_ShortList' , $this -> getTaskUsersCriteria ( $sTaskUID , $_SESSION [ 'iType' ]), $aFields );
2012-10-18 15:02:44 -04:00
} else {
2013-03-04 09:29:59 -04:00
$G_PUBLISH -> AddContent ( 'propeltable' , 'paged-table' , 'users/users_ShortList2' , $this -> getTaskUsersCriteria ( $sTaskUID , $_SESSION [ 'iType' ]), $aFields );
2012-10-18 15:02:44 -04:00
}
2013-03-04 09:29:59 -04:00
G :: RenderPage ( 'publish' , 'raw' );
2012-10-18 15:02:44 -04:00
return true ;
} catch ( Exception $oError ) {
throw ( $oError );
}
2012-10-18 14:46:16 -04:00
}
2012-10-18 15:02:44 -04:00
/*
2013-03-04 09:29:59 -04:00
* Users Adhoc assigned to Tasks
* @ param string $sProcessUID
* @ param string $sTaskUID
* @ return boolean
*/
2010-12-02 23:34:41 +00:00
2013-03-04 09:29:59 -04:00
public function users_adhoc ( $sProcessUID = '' , $sTaskUID = '' )
2012-10-18 15:02:44 -04:00
{
try {
$oProcess = new Process ();
2013-03-04 09:29:59 -04:00
$aFields = $oProcess -> load ( $sProcessUID );
2012-10-18 15:02:44 -04:00
$oTask = new Task ();
2013-03-04 09:29:59 -04:00
$aFields = $oTask -> load ( $sTaskUID );
2012-10-18 15:02:44 -04:00
$_SESSION [ 'iType' ] = 2 ;
$aFields [ 'TASK' ] = $sTaskUID ;
$aFields [ 'TYPE' ] = $_SESSION [ 'iType' ];
2013-03-04 09:29:59 -04:00
$aFields [ 'OF_TO_ASSIGN' ] = G :: LoadTranslation ( 'ID_DE_ASSIGN' );
$aFields [ 'CONFIRM' ] = G :: LoadTranslation ( 'ID_MSG_CONFIRM_DEASIGN_USER_GROUP_MESSAGE' );
2012-10-18 15:02:44 -04:00
$aFields [ 'UIDS' ] = " '0' " ;
$oTasks = new Tasks ();
$oGroups = new Groups ();
2013-03-04 09:29:59 -04:00
$aAux1 = $oTasks -> getGroupsOfTask ( $sTaskUID , $_SESSION [ 'iType' ]);
2012-10-18 15:02:44 -04:00
foreach ( $aAux1 as $aGroup ) {
2013-03-04 09:29:59 -04:00
$aAux2 = $oGroups -> getUsersOfGroup ( $aGroup [ 'GRP_UID' ]);
2012-10-18 15:02:44 -04:00
foreach ( $aAux2 as $aUser ) {
$aFields [ 'UIDS' ] .= " ,' " . $aUser [ 'USR_UID' ] . " ' " ;
}
}
global $G_PUBLISH ;
$G_PUBLISH = new Publisher ();
$oTask = new Task ();
2013-03-04 09:29:59 -04:00
$aTask = $oTask -> load ( $sTaskUID );
2012-10-18 14:46:16 -04:00
2013-03-04 09:29:59 -04:00
$G_PUBLISH -> AddContent ( 'propeltable' , 'paged-table' , 'users/users_ShortListAdhoc' , $this -> getTaskUsersCriteria ( $sTaskUID , $_SESSION [ 'iType' ]), $aFields );
2012-10-18 14:46:16 -04:00
2013-03-04 09:29:59 -04:00
G :: RenderPage ( 'publish' , 'raw' );
2012-10-18 15:02:44 -04:00
return true ;
} catch ( Exception $oError ) {
throw ( $oError );
}
2012-10-18 14:46:16 -04:00
}
2012-10-18 15:02:44 -04:00
/*
2013-03-04 09:29:59 -04:00
* Return the tasks users list criteria object
* @ param string $sTaskUID
* @ param integer $iType
* @ return array
*/
2010-12-02 23:34:41 +00:00
2013-03-04 09:29:59 -04:00
public function getTaskUsersCriteria ( $sTaskUID = '' , $iType = 1 )
2012-10-18 15:02:44 -04:00
{
try {
2013-03-04 09:29:59 -04:00
$aUsers = array ();
$aUsers [] = array ( 'LABEL' => 'char' , 'TAS_UID' => 'char' , 'USR_UID' => 'char' , 'TU_TYPE' => 'integer' , 'TU_RELATION' => 'integer' );
2012-10-18 15:02:44 -04:00
$sDelimiter = DBAdapter :: getStringDelimiter ();
2013-03-04 09:29:59 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> addAsColumn ( 'GRP_TITLE' , 'C.CON_VALUE' );
$oCriteria -> addSelectColumn ( TaskUserPeer :: TAS_UID );
$oCriteria -> addSelectColumn ( TaskUserPeer :: USR_UID );
$oCriteria -> addSelectColumn ( TaskUserPeer :: TU_TYPE );
$oCriteria -> addSelectColumn ( TaskUserPeer :: TU_RELATION );
$oCriteria -> addAlias ( 'C' , 'CONTENT' );
$aConditions = array ();
$aConditions [] = array ( TaskUserPeer :: USR_UID , 'C.CON_ID' );
$aConditions [] = array ( 'C.CON_CATEGORY' , $sDelimiter . 'GRP_TITLE' . $sDelimiter );
$aConditions [] = array ( 'C.CON_LANG' , $sDelimiter . SYS_LANG . $sDelimiter );
$oCriteria -> addJoinMC ( $aConditions , Criteria :: LEFT_JOIN );
$oCriteria -> add ( TaskUserPeer :: TAS_UID , $sTaskUID );
$oCriteria -> add ( TaskUserPeer :: TU_TYPE , $iType );
$oCriteria -> add ( TaskUserPeer :: TU_RELATION , 2 );
$oDataset = TaskUserPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
$c = 0 ;
while ( $aRow = $oDataset -> getRow ()) {
2013-03-04 09:29:59 -04:00
$c ++ ;
2012-10-18 15:02:44 -04:00
$oGroup = new Groupwf ();
2013-03-04 09:29:59 -04:00
$aFields = $oGroup -> load ( $aRow [ 'USR_UID' ]);
2012-10-18 15:02:44 -04:00
if ( $aFields [ 'GRP_STATUS' ] == 'ACTIVE' ) {
2013-03-04 09:29:59 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> addSelectColumn ( 'COUNT(*) AS MEMBERS_NUMBER' );
$oCriteria -> add ( GroupUserPeer :: GRP_UID , $aRow [ 'USR_UID' ]);
$oDataset2 = GroupUserPeer :: doSelectRS ( $oCriteria );
$oDataset2 -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset2 -> next ();
$aRow2 = $oDataset2 -> getRow ();
} else {
2013-03-04 09:29:59 -04:00
$aRow2 [ 'GROUP_INACTIVE' ] = '<strong>(' . G :: LoadTranslation ( 'ID_GROUP_INACTIVE' ) . ')</strong>' ;
2012-10-18 15:02:44 -04:00
}
2013-03-04 09:29:59 -04:00
$aUsers [] = array ( 'LABEL' => ( ! isset ( $aRow2 [ 'GROUP_INACTIVE' ]) ? $aRow [ 'GRP_TITLE' ] . ' <a href="#" onclick="usersGroup(\'' . $aRow [ 'USR_UID' ] . '\', \'' . $c . '\');return false;"><font color="green"><strong>(' . $aRow2 [ 'MEMBERS_NUMBER' ] . ' ' . (( int ) $aRow2 [ 'MEMBERS_NUMBER' ] == 1 ? G :: LoadTranslation ( 'ID_USER' ) : G :: LoadTranslation ( 'ID_USERS' )) . ')</strong></font></a> <br /><div id="users' . $c . '" style="display: none"></div>' : $aRow [ 'GRP_TITLE' ] . ' ' . $aRow2 [ 'GROUP_INACTIVE' ]), 'TAS_UID' => $aRow [ 'TAS_UID' ], 'USR_UID' => $aRow [ 'USR_UID' ], 'TU_TYPE' => $aRow [ 'TU_TYPE' ], 'TU_RELATION' => $aRow [ 'TU_RELATION' ] );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
}
2013-03-04 09:29:59 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> addSelectColumn ( UsersPeer :: USR_FIRSTNAME );
$oCriteria -> addSelectColumn ( UsersPeer :: USR_LASTNAME );
$oCriteria -> addSelectColumn ( TaskUserPeer :: TAS_UID );
$oCriteria -> addSelectColumn ( TaskUserPeer :: USR_UID );
$oCriteria -> addSelectColumn ( TaskUserPeer :: TU_TYPE );
$oCriteria -> addSelectColumn ( TaskUserPeer :: TU_RELATION );
$oCriteria -> addJoin ( TaskUserPeer :: USR_UID , UsersPeer :: USR_UID , Criteria :: LEFT_JOIN );
$oCriteria -> add ( TaskUserPeer :: TAS_UID , $sTaskUID );
$oCriteria -> add ( TaskUserPeer :: TU_TYPE , $iType );
$oCriteria -> add ( TaskUserPeer :: TU_RELATION , 1 );
$oDataset = TaskUserPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
while ( $aRow = $oDataset -> getRow ()) {
2013-03-04 09:29:59 -04:00
$aUsers [] = array ( 'LABEL' => $aRow [ 'USR_FIRSTNAME' ] . ' ' . $aRow [ 'USR_LASTNAME' ], 'TAS_UID' => $aRow [ 'TAS_UID' ], 'USR_UID' => $aRow [ 'USR_UID' ], 'TU_TYPE' => $aRow [ 'TU_TYPE' ], 'TU_RELATION' => $aRow [ 'TU_RELATION' ] );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
}
global $_DBArray ;
2013-03-04 09:29:59 -04:00
$_DBArray = ( isset ( $_SESSION [ '_DBArray' ]) ? $_SESSION [ '_DBArray' ] : '' );
2012-10-18 15:02:44 -04:00
$_DBArray [ 'taskUsers' ] = $aUsers ;
$_SESSION [ '_DBArray' ] = $_DBArray ;
2013-03-04 09:29:59 -04:00
G :: LoadClass ( 'ArrayPeer' );
$oCriteria = new Criteria ( 'dbarray' );
$oCriteria -> setDBArrayTable ( 'taskUsers' );
$oCriteria -> addDescendingOrderByColumn ( TaskUserPeer :: TU_RELATION );
$oCriteria -> addAscendingOrderByColumn ( 'LABEL' );
2012-10-18 15:02:44 -04:00
return $oCriteria ;
} catch ( Exception $oError ) {
throw ( $oError );
}
}
/*
2013-03-04 09:29:59 -04:00
* Return the available users and users groups list criteria object
* @ param string $sTaskUID
* @ param integer $iType
* @ return object
*/
2012-10-09 11:24:11 -04:00
2013-03-04 09:29:59 -04:00
public function getAvailableUsersCriteria ( $sTaskUID = '' , $iType = 1 )
2012-10-18 15:02:44 -04:00
{
try {
$oTasks = new Tasks ();
2013-03-04 09:29:59 -04:00
$aAux = $oTasks -> getGroupsOfTask ( $sTaskUID , $iType );
$aUIDS1 = array ();
$aUIDS2 = array ();
2012-10-18 15:02:44 -04:00
foreach ( $aAux as $aGroup ) {
$aUIDS1 [] = $aGroup [ 'GRP_UID' ];
}
2013-03-04 09:29:59 -04:00
$aAux = $oTasks -> getUsersOfTask ( $sTaskUID , $iType );
2012-10-18 15:02:44 -04:00
foreach ( $aAux as $aUser ) {
$aUIDS2 [] = $aUser [ 'USR_UID' ];
}
2013-03-04 09:29:59 -04:00
$aUsers = array ();
$aUsers [] = array ( 'LABEL' => 'char' , 'TAS_UID' => 'char' , 'USR_UID' => 'char' , 'TU_TYPE' => 'integer' , 'TU_RELATION' => 'integer' );
2012-10-18 15:02:44 -04:00
$sDelimiter = DBAdapter :: getStringDelimiter ();
$groups = new Groupwf ();
$start = '' ;
$limit = '' ;
$filter = '' ;
2013-03-04 09:29:59 -04:00
$result = $groups -> getAllGroup ( $start , $limit , $filter );
2012-10-18 15:02:44 -04:00
$c = 0 ;
foreach ( $result [ 'rows' ] as $results ) {
2013-10-19 11:21:07 -04:00
if ( ! in_array ( $results [ 'GRP_UID' ], $aUIDS1 )) {
$c ++ ;
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> addSelectColumn ( 'COUNT(*) AS MEMBERS_NUMBER' );
$oCriteria -> add ( GroupUserPeer :: GRP_UID , $results [ 'GRP_UID' ]);
$oDataset2 = GroupUserPeer :: doSelectRS ( $oCriteria );
$oDataset2 -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
$oDataset2 -> next ();
$aRow2 = $oDataset2 -> getRow ();
$aUsers [] = array ( 'LABEL' => $results [ 'GRP_TITLE' ] . ' <a href="#" onclick="usersGroup(\'' . $results [ 'GRP_UID' ] . '\', \'' . $c . '\');return false;"><font color="green"><strong>(' . $aRow2 [ 'MEMBERS_NUMBER' ] . ' ' . (( int ) $aRow2 [ 'MEMBERS_NUMBER' ] == 1 ? G :: LoadTranslation ( 'ID_USER' ) : G :: LoadTranslation ( 'ID_USERS' )) . ')</strong></font></a> <br /><div id="users' . $c . '" style="display: none"></div>' , 'TAS_UID' => $sTaskUID , 'USR_UID' => $results [ 'GRP_UID' ], 'TU_TYPE' => $iType , 'TU_RELATION' => 2 );
}
2012-10-18 15:02:44 -04:00
}
$sDelimiter = DBAdapter :: getStringDelimiter ();
2013-03-04 09:29:59 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> addSelectColumn ( UsersPeer :: USR_UID );
$oCriteria -> addSelectColumn ( UsersPeer :: USR_FIRSTNAME );
$oCriteria -> addSelectColumn ( UsersPeer :: USR_LASTNAME );
$oCriteria -> add ( UsersPeer :: USR_STATUS , 'ACTIVE' );
$oCriteria -> add ( UsersPeer :: USR_UID , $aUIDS2 , Criteria :: NOT_IN );
$oDataset = UsersPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
while ( $aRow = $oDataset -> getRow ()) {
2013-03-04 09:29:59 -04:00
$aUsers [] = array ( 'LABEL' => $aRow [ 'USR_FIRSTNAME' ] . ' ' . $aRow [ 'USR_LASTNAME' ], 'TAS_UID' => $sTaskUID , 'USR_UID' => $aRow [ 'USR_UID' ], 'TU_TYPE' => $iType , 'TU_RELATION' => 1 );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
}
global $_DBArray ;
2013-03-04 09:29:59 -04:00
$_DBArray = ( isset ( $_SESSION [ '_DBArray' ]) ? $_SESSION [ '_DBArray' ] : '' );
2012-10-18 15:02:44 -04:00
$_DBArray [ 'availableUsers' ] = $aUsers ;
$_SESSION [ '_DBArray' ] = $_DBArray ;
2013-03-04 09:29:59 -04:00
G :: LoadClass ( 'ArrayPeer' );
$oCriteria = new Criteria ( 'dbarray' );
$oCriteria -> setDBArrayTable ( 'availableUsers' );
$oCriteria -> addDescendingOrderByColumn ( TaskUserPeer :: TU_RELATION );
$oCriteria -> addAscendingOrderByColumn ( 'LABEL' );
2012-10-18 15:02:44 -04:00
return $oCriteria ;
} catch ( Exception $oError ) {
throw ( $oError );
}
}
/*
2013-03-04 09:29:59 -04:00
* Conditions of the steps
* @ param string $sProcessUID
* @ param string $sTaskUID
* @ return boolean
*/
2010-12-02 23:34:41 +00:00
2013-03-04 09:29:59 -04:00
public function stepsConditions ( $sProcessUID = '' , $sTaskUID = '' )
2012-10-18 15:02:44 -04:00
{
try {
$oProcess = new Process ();
2013-03-04 09:29:59 -04:00
$aFields = $oProcess -> load ( $sProcessUID );
2012-10-18 15:02:44 -04:00
$oTask = new Task ();
2013-03-04 09:29:59 -04:00
$aFields = $oTask -> load ( $sTaskUID );
2012-10-18 15:02:44 -04:00
$aFields [ 'PROCESS' ] = $sProcessUID ;
$aFields [ 'TASK' ] = $sTaskUID ;
global $G_PUBLISH ;
$G_PUBLISH = new Publisher ();
2013-03-04 09:29:59 -04:00
$G_PUBLISH -> AddContent ( 'propeltable' , 'paged-table' , 'steps/conditions_List' , $this -> getStepsCriteria ( $sTaskUID ), $aFields );
G :: RenderPage ( 'publish' , 'raw' );
2012-10-18 15:02:44 -04:00
return true ;
} catch ( Exception $oError ) {
throw ( $oError );
}
}
/*
2013-03-04 09:29:59 -04:00
* Triggers of the steps
* @ param string $sProcessUID
* @ param string $sTaskUID
* @ return boolean
*/
2010-12-02 23:34:41 +00:00
2013-03-04 09:29:59 -04:00
public function stepsTriggers ( $sProcessUID = '' , $sTaskUID = '' )
2012-10-18 15:02:44 -04:00
{
try {
$oProcess = new Process ();
2013-03-04 09:29:59 -04:00
$aFields = $oProcess -> load ( $sProcessUID );
2012-10-18 15:02:44 -04:00
$oTask = new Task ();
2013-03-04 09:29:59 -04:00
$aFields = $oTask -> load ( $sTaskUID );
2012-10-18 15:02:44 -04:00
$_SESSION [ 'PROCESS' ] = $sProcessUID ;
$_SESSION [ 'TASK' ] = $sTaskUID ;
global $G_PUBLISH ;
$G_PUBLISH = new Publisher ();
2013-03-04 09:29:59 -04:00
$G_PUBLISH -> AddContent ( 'view' , 'steps/triggers_Tree' );
G :: RenderPage ( 'publish' , 'raw' );
2012-10-18 15:02:44 -04:00
return true ;
} catch ( Exception $oError ) {
throw ( $oError );
}
}
/*
2013-03-04 09:29:59 -04:00
* Add a new task
* @ param string $sProcessUID
* @ param integer $iX
* @ param integer $iY
* @ return string
*/
2010-12-02 23:34:41 +00:00
2013-03-04 09:29:59 -04:00
public function addTask ( $sProcessUID = '' , $iX = 0 , $iY = 0 , $iWidth = 165 , $iHeight = 40 )
2012-10-18 15:02:44 -04:00
{
try {
2013-03-04 09:29:59 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> addSelectColumn ( 'TAS_UID' );
$oCriteria -> add ( TaskPeer :: PRO_UID , $sProcessUID );
$oDataset = TaskPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2010-12-02 23:34:41 +00:00
2013-03-04 09:29:59 -04:00
$aTasks = array ();
2012-10-18 15:02:44 -04:00
$iTaskNumber = 0 ;
2010-12-02 23:34:41 +00:00
2012-10-18 15:02:44 -04:00
while ( $oDataset -> next ()) {
$aRow = $oDataset -> getRow ();
2010-12-02 23:34:41 +00:00
2012-10-18 15:02:44 -04:00
$aTasks [] = $aRow [ " TAS_UID " ];
$iTaskNumber = $iTaskNumber + 1 ;
}
2010-12-02 23:34:41 +00:00
2012-10-18 15:02:44 -04:00
if ( $iTaskNumber > 0 ) {
2013-03-04 09:29:59 -04:00
$criteria = new Criteria ( " workflow " );
2010-12-02 23:34:41 +00:00
2013-03-04 09:29:59 -04:00
$criteria -> addSelectColumn ( ContentPeer :: CON_LANG );
$criteria -> addSelectColumn ( ContentPeer :: CON_VALUE );
$criteria -> add ( ContentPeer :: CON_ID , $aTasks , Criteria :: IN );
$criteria -> add ( ContentPeer :: CON_CATEGORY , " TAS_TITLE " );
2010-12-02 23:34:41 +00:00
2013-03-04 09:29:59 -04:00
$rsSQLCON = ContentPeer :: doSelectRS ( $criteria );
$rsSQLCON -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-09 11:24:11 -04:00
2012-10-18 15:02:44 -04:00
$numMaxLang = 0 ;
$numMax = 0 ;
2012-10-09 11:24:11 -04:00
2012-10-18 15:02:44 -04:00
while ( $rsSQLCON -> next ()) {
$row = $rsSQLCON -> getRow ();
2012-10-09 11:24:11 -04:00
2012-10-18 15:02:44 -04:00
$conLang = $row [ " CON_LANG " ];
$conValue = $row [ " CON_VALUE " ];
2010-12-02 23:34:41 +00:00
2013-03-04 09:29:59 -04:00
if ( preg_match ( " /^ \ S+ \ s( \ d+) $ / " , $conValue , $matches )) {
$n = intval ( $matches [ 1 ]);
2010-12-02 23:34:41 +00:00
2012-10-18 15:02:44 -04:00
if ( $conLang == SYS_LANG ) {
if ( $n > $numMaxLang ) {
$numMaxLang = $n ;
}
} else {
if ( $n > $numMax ) {
$numMax = $n ;
}
}
}
}
2012-10-09 11:24:11 -04:00
2012-10-18 15:02:44 -04:00
if ( $numMaxLang > 0 ) {
$numMax = $numMaxLang ;
}
2012-10-09 11:24:11 -04:00
2012-10-18 15:02:44 -04:00
if ( $numMax > 0 && $numMax > $iTaskNumber ) {
$iTaskNumber = $numMax + 1 ;
} else {
$iTaskNumber = $iTaskNumber + 1 ;
}
} else {
$iTaskNumber = 1 ;
}
2012-10-18 14:46:16 -04:00
2012-10-18 15:02:44 -04:00
$oTask = new Task ();
2013-03-04 09:29:59 -04:00
$oNewTask -> label = G :: LoadTranslation ( 'ID_TASK' ) . ' ' . $iTaskNumber ;
$oNewTask -> uid = $oTask -> create ( array ( 'PRO_UID' => $sProcessUID , 'TAS_TITLE' => $oNewTask -> label , 'TAS_POSX' => $iX , 'TAS_POSY' => $iY , 'TAS_WIDTH' => $iWidth , 'TAS_HEIGHT' => $iHeight ));
$oNewTask -> statusIcons = array ();
$oNewTask -> statusIcons [] = array ( 'label' => '' , 'icon' => '/images/alert.gif' , 'message' => '' , 'url' => '' );
2012-11-22 16:33:58 -04:00
//$oJSON = new Services_JSON();
2013-03-04 09:29:59 -04:00
return Bootstrap :: json_encode ( $oNewTask ); //$oJSON->encode( $oNewTask );
2012-10-18 15:02:44 -04:00
} catch ( Exception $oError ) {
throw ( $oError );
}
2012-10-05 13:00:58 -04:00
}
2010-12-02 23:34:41 +00:00
2012-10-18 15:02:44 -04:00
/*
2013-03-04 09:29:59 -04:00
* Edit the task properties
* @ param string $sTaskUID
* @ return boolean
*/
2012-10-09 11:24:11 -04:00
2013-03-04 09:29:59 -04:00
public function editTaskProperties ( $sTaskUID = '' , $iForm = 1 , $iIndex = 0 )
2012-10-18 15:02:44 -04:00
{
$sw_template = false ;
try {
switch ( $iForm ) {
case 1 :
$sFilename = 'tasks/tasks_Definition.xml' ;
break ;
case 2 :
$sFilename = 'tasks/tasks_AssignmentRules.xml' ;
break ;
case 3 :
$sFilename = 'tasks/tasks_TimingControl.xml' ;
break ;
case 4 :
$sFilename = 'tasks/tasks_Owner.xml' ;
break ;
case 5 :
$sFilename = 'tasks/tasks_Permissions.xml' ;
break ;
case 6 :
$sFilename = 'tasks/tasks_Labels.xml' ;
break ;
case 7 :
$sFilename = 'tasks/tasks_Notifications.xml' ;
break ;
default :
//if the $iForm is not one of the defaults then search under Plugins for an extended property. By JHL Jan 18, 2011
$oPluginRegistry = & PMPluginRegistry :: getSingleton ();
$activePluginsForTaskProperties = $oPluginRegistry -> getTaskExtendedProperties ();
2013-03-04 09:29:59 -04:00
$oPM -> taskOptions = array ();
2012-10-18 15:02:44 -04:00
foreach ( $activePluginsForTaskProperties as $key => $taskPropertiesInfo ) {
$id = $taskPropertiesInfo -> sNamespace . " -- " . $taskPropertiesInfo -> sName ;
if ( $id == $iForm ) {
$sFilename = $taskPropertiesInfo -> sPage ;
$sw_template = true ;
}
}
//$sFilename = 'tasks/tasks_Owner.xml';
break ;
}
$oTask = new Task ();
2013-03-04 09:29:59 -04:00
$aFields = $oTask -> load ( $sTaskUID );
2012-10-18 15:02:44 -04:00
$aFields [ 'INDEX' ] = $iIndex ;
$aFields [ 'IFORM' ] = $iForm ;
$aFields [ 'LANG' ] = SYS_LANG ;
/**
* Task Notifications *
*/
if ( $iForm == 7 || $iForm == 1 ) {
2013-03-04 09:29:59 -04:00
G :: loadClass ( 'processes' );
$files = Processes :: getProcessFiles ( $aFields [ 'PRO_UID' ], 'mail' );
2012-10-18 15:02:44 -04:00
2013-03-04 09:29:59 -04:00
$templates = array ();
2012-10-18 15:02:44 -04:00
$templates [] = 'dummy' ;
foreach ( $files as $file ) {
2013-03-04 09:29:59 -04:00
$templates [] = array ( 'FILE' => $file [ 'filename' ], 'NAME' => $file [ 'filename' ] );
2012-10-18 15:02:44 -04:00
}
2012-10-09 11:24:11 -04:00
2012-10-18 15:02:44 -04:00
global $_DBArray ;
$_DBArray [ '_TEMPLATES1' ] = $templates ;
$_SESSION [ '_DBArray' ] = $_DBArray ;
if ( $iForm == 7 ) {
// Additional configuration
2013-03-04 09:29:59 -04:00
G :: loadClass ( 'configuration' );
2012-10-18 15:02:44 -04:00
$oConf = new Configurations ();
2013-03-04 09:29:59 -04:00
$oConf -> loadConfig ( $x , 'TAS_EXTRA_PROPERTIES' , $aFields [ 'TAS_UID' ], '' , '' );
2012-10-18 15:02:44 -04:00
$conf = $oConf -> aConfig ;
2013-03-04 09:29:59 -04:00
if ( isset ( $conf [ 'TAS_DEF_MESSAGE_TYPE' ]) && isset ( $conf [ 'TAS_DEF_MESSAGE_TYPE' ])) {
2012-10-18 15:02:44 -04:00
$aFields [ 'TAS_DEF_MESSAGE_TYPE' ] = $conf [ 'TAS_DEF_MESSAGE_TYPE' ];
$aFields [ 'TAS_DEF_MESSAGE_TEMPLATE' ] = $conf [ 'TAS_DEF_MESSAGE_TEMPLATE' ];
}
}
}
2012-10-09 11:24:11 -04:00
2013-03-04 09:29:59 -04:00
if ( $iForm == 3 ) {
//Load Calendar Information
2012-10-18 15:02:44 -04:00
$calendar = new Calendar ();
2013-03-04 09:29:59 -04:00
$calendarObj = $calendar -> getCalendarList ( true , true );
2012-10-09 11:24:11 -04:00
2012-10-18 15:02:44 -04:00
global $_DBArray ;
2012-10-09 11:24:11 -04:00
2012-10-18 15:02:44 -04:00
$_DBArray [ 'availableCalendars' ] = $calendarObj [ 'array' ];
2010-12-02 23:34:41 +00:00
2012-10-18 15:02:44 -04:00
$_SESSION [ '_DBArray' ] = $_DBArray ;
2010-12-02 23:34:41 +00:00
2013-03-04 09:29:59 -04:00
$calendarInfo = $calendar -> getCalendarFor ( $sTaskUID , $sTaskUID , $sTaskUID );
2012-10-09 11:24:11 -04:00
2012-10-18 15:02:44 -04:00
//If the function returns a DEFAULT calendar it means that this object doesn't have assigned any calendar
$aFields [ 'TAS_CALENDAR' ] = $calendarInfo [ 'CALENDAR_APPLIED' ] != 'DEFAULT' ? $calendarInfo [ 'CALENDAR_UID' ] : " " ;
}
2012-10-22 13:55:35 -04:00
if ( $iForm == 2 ) {
switch ( $aFields [ " TAS_ASSIGN_TYPE " ]) {
case " SELF_SERVICE " :
2013-03-04 09:29:59 -04:00
$aFields [ " TAS_ASSIGN_TYPE " ] = ( ! empty ( $aFields [ " TAS_GROUP_VARIABLE " ])) ? " SELF_SERVICE_EVALUATE " : $aFields [ " TAS_ASSIGN_TYPE " ];
2012-10-22 13:55:35 -04:00
break ;
}
}
2012-10-18 15:02:44 -04:00
global $G_PUBLISH ;
2013-03-04 09:29:59 -04:00
G :: LoadClass ( 'xmlfield_InputPM' );
2012-10-18 15:02:44 -04:00
$G_PUBLISH = new Publisher ();
if ( $sw_template ) {
2013-03-04 09:29:59 -04:00
$G_PUBLISH -> AddContent ( 'view' , $sFilename );
2012-10-18 15:02:44 -04:00
} else {
2013-03-04 09:29:59 -04:00
$G_PUBLISH -> AddContent ( 'xmlform' , 'xmlform' , $sFilename , '' , $aFields );
2012-10-18 15:02:44 -04:00
}
2012-10-18 14:46:16 -04:00
2013-03-04 09:29:59 -04:00
G :: RenderPage ( 'publish' , 'raw' );
2012-10-18 15:02:44 -04:00
return true ;
} catch ( Exception $oError ) {
throw ( $oError );
}
2012-10-05 13:00:58 -04:00
}
2010-12-02 23:34:41 +00:00
2012-10-18 15:02:44 -04:00
/*
2013-03-04 09:29:59 -04:00
* Save the tasks positions
* @ param string $sTaskUID
* @ param integer $iX
* @ param integer $iY
* @ return integer
*/
2010-12-02 23:34:41 +00:00
2013-03-04 09:29:59 -04:00
public function saveTaskPosition ( $sTaskUID = '' , $iX = 0 , $iY = 0 )
2012-10-18 15:02:44 -04:00
{
try {
$oTask = new Task ();
2013-03-04 09:29:59 -04:00
$aFields = $oTask -> load ( $sTaskUID );
2012-10-05 13:00:58 -04:00
2012-10-18 15:02:44 -04:00
$aFields [ 'TAS_UID' ] = $sTaskUID ;
$aFields [ 'TAS_POSX' ] = $iX ;
$aFields [ 'TAS_POSY' ] = $iY ;
2013-03-04 09:29:59 -04:00
return $oTask -> update ( $aFields );
2012-10-18 15:02:44 -04:00
} catch ( Exception $oError ) {
throw ( $oError );
}
2012-10-09 11:24:11 -04:00
}
2012-10-18 15:02:44 -04:00
/*
2013-03-04 09:29:59 -04:00
* Delete a task
* @ param string $sTaskUID
* @ return boolean
*/
2010-12-02 23:34:41 +00:00
2013-03-04 09:29:59 -04:00
public function deleteTask ( $sTaskUID = '' )
2012-10-18 15:02:44 -04:00
{
try {
$oTasks = new Tasks ();
2013-03-04 09:29:59 -04:00
$oTasks -> deleteTask ( $sTaskUID );
2012-10-18 15:02:44 -04:00
return true ;
} catch ( Exception $oError ) {
throw ( $oError );
}
2012-10-05 13:00:58 -04:00
}
2010-12-02 23:34:41 +00:00
2012-10-18 15:02:44 -04:00
/*
2013-03-04 09:29:59 -04:00
* Delete a gateway
* @ param string $sProcessUID
* @ param string $sGatewayUID
* @ return boolean
*/
2012-10-09 11:24:11 -04:00
2013-03-04 09:29:59 -04:00
public function deleteGateway ( $sProcessUID = '' , $sGatewayUID = '' )
2012-10-18 15:02:44 -04:00
{
try {
//First get all routes information related to $sGatewayUID
2013-03-04 09:29:59 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> addSelectColumn ( 'ROU_UID' );
$oCriteria -> add ( RoutePeer :: PRO_UID , $sProcessUID );
$oCriteria -> add ( RoutePeer :: GAT_UID , $sGatewayUID );
$oDataset = RoutePeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
while ( $aRow = $oDataset -> getRow ()) {
$aRoutes [] = $aRow [ 'ROU_UID' ];
$oDataset -> next ();
}
2012-10-18 14:46:16 -04:00
2012-10-18 15:02:44 -04:00
$oGateway = new Gateway ();
2013-03-04 09:29:59 -04:00
if ( $oGateway -> gatewayExists ( $sGatewayUID )) {
2012-10-18 15:02:44 -04:00
$oTasks = new Tasks ();
2013-03-04 09:29:59 -04:00
$res = $oGateway -> remove ( $sGatewayUID );
2012-10-18 15:02:44 -04:00
if ( $res ) {
$oRoute = new Route ();
foreach ( $aRoutes as $sRouteId ) {
2013-03-04 09:29:59 -04:00
$oRoute -> remove ( $sRouteId );
2012-10-18 15:02:44 -04:00
}
}
}
return ;
} catch ( Exception $oError ) {
throw ( $oError );
}
2012-10-18 14:46:16 -04:00
}
2012-10-18 15:02:44 -04:00
/*
2013-03-04 09:29:59 -04:00
* Add a gateway
* @ param string $sProcessUID
* @ param string $sGatewayUID
* @ return boolean
*/
2011-02-11 11:39:57 +00:00
2013-03-04 09:29:59 -04:00
public function addGateway ( $oData )
2012-10-18 15:02:44 -04:00
{
try {
$oGateway = new Gateway ();
2013-03-04 09:29:59 -04:00
$aData = array ();
2012-10-18 15:02:44 -04:00
$aData [ 'PRO_UID' ] = $oData -> pro_uid ;
$aData [ 'GAT_X' ] = $oData -> position -> x ;
$aData [ 'GAT_Y' ] = $oData -> position -> y ;
$aData [ 'GAT_TYPE' ] = $oData -> gat_type ;
$sGat_uid = $oData -> gat_uid ;
2013-03-04 09:29:59 -04:00
$oGatewayData = GatewayPeer :: retrieveByPK ( $sGat_uid );
if ( is_null ( $oGatewayData )) {
$sGat_uid = $oGateway -> create ( $aData );
2012-10-18 15:02:44 -04:00
} else {
$aData [ 'GAT_UID' ] = $sGat_uid ;
2013-03-04 09:29:59 -04:00
if ( isset ( $oData -> tas_from )) {
2012-10-18 15:02:44 -04:00
$aData [ 'TAS_UID' ] = $oData -> tas_from ;
2013-03-04 09:29:59 -04:00
}
if ( isset ( $oData -> tas_to )) {
2012-10-18 15:02:44 -04:00
$aData [ 'GAT_NEXT_TASK' ] = $oData -> tas_to ;
2013-03-04 09:29:59 -04:00
}
$oGateway -> update ( $aData );
2012-10-18 15:02:44 -04:00
}
$oEncode -> uid = $sGat_uid ;
2012-11-22 16:33:58 -04:00
//$oJSON = new Services_JSON();
2013-03-04 09:29:59 -04:00
return Bootstrap :: json_encode ( $oEncode ); //$oJSON->encode( $oEncode );
2012-10-18 15:02:44 -04:00
} catch ( Exception $oError ) {
throw ( $oError );
}
2012-10-18 14:46:16 -04:00
}
2012-10-18 15:02:44 -04:00
/*
2013-03-04 09:29:59 -04:00
* Add a new guide
* @ param string $sProcessUID
* @ param integer $iPosition
* @ param string $sDirection
* @ return string
*/
2010-12-02 23:34:41 +00:00
2013-03-04 09:29:59 -04:00
public function addGuide ( $sProcessUID = '' , $iPosition = 0 , $sDirection = 'vertical' )
2012-10-18 15:02:44 -04:00
{
try {
$oProcess = new Process ();
2013-03-04 09:29:59 -04:00
$aFields = $oProcess -> load ( $sProcessUID );
2012-10-18 15:02:44 -04:00
$oSL = new SwimlanesElements ();
switch ( $sDirection ) {
case 'vertical' :
2013-03-04 09:29:59 -04:00
$oNewGuide -> uid = $oSL -> create ( array ( 'PRO_UID' => $sProcessUID , 'SWI_TYPE' => 'LINE' , 'SWI_X' => $iPosition , 'SWI_Y' => 0 ));
2012-10-18 15:02:44 -04:00
break ;
case 'horizontal' :
2013-03-04 09:29:59 -04:00
$oNewGuide -> uid = $oSL -> create ( array ( 'PRO_UID' => $sProcessUID , 'SWI_TYPE' => 'LINE' , 'SWI_X' => 0 , 'SWI_Y' => $iPosition ));
2012-10-18 15:02:44 -04:00
break ;
}
2012-11-22 16:33:58 -04:00
//$oJSON = new Services_JSON();
2013-03-04 09:29:59 -04:00
return Bootstrap :: json_encode ( $oNewGuide ); //$oJSON->encode( $oNewGuide );
2012-10-18 15:02:44 -04:00
} catch ( Exception $oError ) {
throw ( $oError );
}
2012-10-09 11:24:11 -04:00
}
2010-12-02 23:34:41 +00:00
2012-10-18 15:02:44 -04:00
/*
2013-03-04 09:29:59 -04:00
* Save the guide position
* @ param string $sSEUID
* @ param integer $iPosition
* @ param string $sDirection
* @ return integer
*/
2012-10-09 11:24:11 -04:00
2013-03-04 09:29:59 -04:00
public function saveGuidePosition ( $sSEUID = '' , $iPosition = 0 , $sDirection = 'vertical' )
2012-10-18 15:02:44 -04:00
{
try {
$oSL = new SwimlanesElements ();
2013-03-04 09:29:59 -04:00
$aFields = $oSL -> load ( $sSEUID );
2012-10-18 15:02:44 -04:00
switch ( $sDirection ) {
case 'vertical' :
2013-03-04 09:29:59 -04:00
return $oSL -> update ( array ( 'SWI_UID' => $sSEUID , 'SWI_X' => $iPosition ));
2012-10-18 15:02:44 -04:00
break ;
case 'horizontal' :
2013-03-04 09:29:59 -04:00
return $oSL -> update ( array ( 'SWI_UID' => $sSEUID , 'SWI_Y' => $iPosition ));
2012-10-18 15:02:44 -04:00
break ;
}
} catch ( Exception $oError ) {
throw ( $oError );
}
2012-10-05 13:00:58 -04:00
}
2010-12-02 23:34:41 +00:00
2012-10-18 15:02:44 -04:00
/*
2013-03-04 09:29:59 -04:00
* Delete a guide
* @ param string $sUID
* @ return boolean
*/
2012-10-09 11:24:11 -04:00
2013-03-04 09:29:59 -04:00
public function deleteGuide ( $sSEUID = '' )
2012-10-18 15:02:44 -04:00
{
try {
$oSL = new SwimlanesElements ();
2013-03-04 09:29:59 -04:00
$aFields = $oSL -> load ( $sSEUID );
$oSL -> remove ( $sSEUID );
2012-10-18 15:02:44 -04:00
return true ;
} catch ( Exception $oError ) {
throw ( $oError );
}
2010-12-02 23:34:41 +00:00
}
2012-10-18 15:02:44 -04:00
/*
2013-03-04 09:29:59 -04:00
* Delete all guides
* @ param string $sProcessUID
* @ return boolean
*/
2012-10-09 11:24:11 -04:00
2013-03-04 09:29:59 -04:00
public function deleteGuides ( $sProcessUID = '' )
2012-10-18 15:02:44 -04:00
{
try {
$oProcess = new Process ();
2013-03-04 09:29:59 -04:00
$aFields = $oProcess -> load ( $sProcessUID );
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> add ( SwimlanesElementsPeer :: PRO_UID , $sProcessUID );
$oCriteria -> add ( SwimlanesElementsPeer :: SWI_TYPE , 'LINE' );
SwimlanesElementsPeer :: doDelete ( $oCriteria );
2012-10-18 15:02:44 -04:00
return true ;
} catch ( Exception $oError ) {
throw ( $oError );
}
}
/*
2013-03-04 09:29:59 -04:00
* Add a new text
* @ param string $sProcessUID
* @ param string $sLabel
* @ param integer $iX
* @ param integer $iY
* @ return string
*/
2010-12-02 23:34:41 +00:00
2013-03-04 09:29:59 -04:00
public function addText ( $sProcessUID = '' , $sLabel = '' , $iX = 0 , $iY = 0 , $sNext_uid = '' )
2012-10-18 15:02:44 -04:00
{
try {
$oProcess = new Process ();
2013-03-04 09:29:59 -04:00
$aFields = $oProcess -> load ( $sProcessUID );
2012-10-18 15:02:44 -04:00
$oSL = new SwimlanesElements ();
2013-03-04 09:29:59 -04:00
$oNewText -> uid = $oSL -> create ( array ( 'PRO_UID' => $sProcessUID , 'SWI_TYPE' => 'TEXT' , 'SWI_TEXT' => $sLabel , 'SWI_X' => $iX , 'SWI_Y' => $iY , 'SWI_NEXT_UID' => $sNext_uid ));
2012-11-22 16:33:58 -04:00
//$oJSON = new Services_JSON();
2013-03-04 09:29:59 -04:00
return Bootstrap :: json_encode ( $oNewText ); //$oJSON->encode( $oNewText );
2012-10-18 15:02:44 -04:00
} catch ( Exception $oError ) {
throw ( $oError );
}
2012-10-09 11:24:11 -04:00
}
2010-12-02 23:34:41 +00:00
2012-10-18 15:02:44 -04:00
/*
2013-03-04 09:29:59 -04:00
* Update a text
* @ param string $sSEUID
* @ param string $sLabel
* @ return integer
*/
2010-12-02 23:34:41 +00:00
2013-03-04 09:29:59 -04:00
public function updateText ( $sSEUID = '' , $sLabel = '' , $sNext_uid = '' )
2012-10-18 15:02:44 -04:00
{
try {
$oSL = new SwimlanesElements ();
2013-03-04 09:29:59 -04:00
$aFields = $oSL -> load ( $sSEUID );
return $oSL -> update ( array ( 'SWI_UID' => $sSEUID , 'SWI_TEXT' => $sLabel , 'SWI_NEXT_UID' => $sNext_uid ));
2012-10-18 15:02:44 -04:00
} catch ( Exception $oError ) {
throw ( $oError );
}
2012-10-05 13:00:58 -04:00
}
2012-10-18 15:02:44 -04:00
/*
2013-03-04 09:29:59 -04:00
* Save the text position
* @ param string $sSEUID
* @ param integer $iX
* @ param integer $iY
* @ return integer
*/
2012-10-09 11:24:11 -04:00
2013-03-04 09:29:59 -04:00
public function saveTextPosition ( $sSEUID = '' , $iX = 0 , $iY = 0 )
2012-10-18 15:02:44 -04:00
{
try {
$oSL = new SwimlanesElements ();
2013-03-04 09:29:59 -04:00
$aFields = $oSL -> load ( $sSEUID );
return $oSL -> update ( array ( 'SWI_UID' => $sSEUID , 'SWI_X' => $iX , 'SWI_Y' => $iY ));
2012-10-18 15:02:44 -04:00
} catch ( Exception $oError ) {
throw ( $oError );
}
2012-10-05 13:00:58 -04:00
}
2012-10-18 15:02:44 -04:00
/*
2013-03-04 09:29:59 -04:00
* Delete a text
* @ param string $sSEUID
* @ return boolean
*/
2012-10-09 11:24:11 -04:00
2013-03-04 09:29:59 -04:00
public function deleteText ( $sSEUID = '' )
2012-10-18 15:02:44 -04:00
{
try {
$oSL = new SwimlanesElements ();
2013-03-04 09:29:59 -04:00
$aFields = $oSL -> load ( $sSEUID );
$oSL -> remove ( $sSEUID );
2012-10-18 15:02:44 -04:00
return true ;
} catch ( Exception $oError ) {
throw ( $oError );
}
2012-10-05 13:00:58 -04:00
}
2012-10-18 15:02:44 -04:00
/*
2013-03-04 09:29:59 -04:00
* Save the gateways positions
* @ param string $sGatewayUID
* @ param integer $iX
* @ param integer $iY
* @ return integer
*/
2012-10-09 11:24:11 -04:00
2013-03-04 09:29:59 -04:00
public function saveGatewayPosition ( $sGatewayUID = '' , $iX = 0 , $iY = 0 )
2012-10-18 15:02:44 -04:00
{
try {
$oGateway = new Gateway ();
2013-03-04 09:29:59 -04:00
$aFields = $oGateway -> load ( $sGatewayUID );
2012-10-09 11:24:11 -04:00
2012-10-18 15:02:44 -04:00
$aFields [ 'GAT_UID' ] = $sGatewayUID ;
$aFields [ 'GAT_X' ] = $iX ;
$aFields [ 'GAT_Y' ] = $iY ;
2013-03-04 09:29:59 -04:00
return $oGateway -> update ( $aFields );
2012-10-18 15:02:44 -04:00
} catch ( Exception $oError ) {
throw ( $oError );
}
2012-10-05 13:00:58 -04:00
}
2011-08-11 11:52:17 -04:00
2012-10-18 15:02:44 -04:00
/*
2013-03-04 09:29:59 -04:00
* Presents a small list of dynaforms of the process
* @ param string $sProcessUID
* @ return boolean
*/
2011-08-25 12:58:52 -04:00
2013-03-04 09:29:59 -04:00
public function dynaformsList ( $sProcessUID = '' )
2012-10-18 15:02:44 -04:00
{
try {
$oProcess = new Process ();
2013-03-04 09:29:59 -04:00
$aFields = $oProcess -> load ( $sProcessUID );
2012-10-18 15:02:44 -04:00
global $G_PUBLISH ;
$G_PUBLISH = new Publisher ();
2013-03-04 09:29:59 -04:00
$G_PUBLISH -> AddContent ( 'propeltable' , 'paged-table' , 'dynaforms/dynaforms_ShortList' , $this -> getDynaformsCriteria ( $sProcessUID ), $aFields );
G :: RenderPage ( 'publish' , 'raw' );
2012-10-18 15:02:44 -04:00
return true ;
} catch ( Exception $oError ) {
throw ( $oError );
}
}
/*
2013-03-04 09:29:59 -04:00
* Return the dynaforms list criteria object
* @ param string $sProcessUID
* @ return object
*/
2012-10-09 11:24:11 -04:00
2013-03-04 09:29:59 -04:00
public function getDynaformsCriteria ( $sProcessUID = '' )
2012-10-18 15:02:44 -04:00
{
$sDelimiter = DBAdapter :: getStringDelimiter ();
2013-03-04 09:29:59 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> addSelectColumn ( DynaformPeer :: DYN_UID );
$oCriteria -> addSelectColumn ( DynaformPeer :: PRO_UID );
$oCriteria -> addSelectColumn ( DynaformPeer :: DYN_TYPE );
$oCriteria -> addAsColumn ( 'DYN_TITLE' , 'C1.CON_VALUE' );
$oCriteria -> addAsColumn ( 'DYN_DESCRIPTION' , 'C2.CON_VALUE' );
$oCriteria -> addAlias ( 'C1' , 'CONTENT' );
$oCriteria -> addAlias ( 'C2' , 'CONTENT' );
$aConditions = array ();
$aConditions [] = array ( DynaformPeer :: DYN_UID , 'C1.CON_ID' );
$aConditions [] = array ( 'C1.CON_CATEGORY' , $sDelimiter . 'DYN_TITLE' . $sDelimiter );
$aConditions [] = array ( 'C1.CON_LANG' , $sDelimiter . SYS_LANG . $sDelimiter );
$oCriteria -> addJoinMC ( $aConditions , Criteria :: LEFT_JOIN );
$aConditions = array ();
$aConditions [] = array ( DynaformPeer :: DYN_UID , 'C2.CON_ID' );
$aConditions [] = array ( 'C2.CON_CATEGORY' , $sDelimiter . 'DYN_DESCRIPTION' . $sDelimiter );
$aConditions [] = array ( 'C2.CON_LANG' , $sDelimiter . SYS_LANG . $sDelimiter );
$oCriteria -> addJoinMC ( $aConditions , Criteria :: LEFT_JOIN );
$oCriteria -> add ( DynaformPeer :: PRO_UID , $sProcessUID );
2012-10-18 15:02:44 -04:00
2013-03-04 09:29:59 -04:00
$oDataset = DynaformPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
2013-03-04 09:29:59 -04:00
$dynaformArray = array ();
$dynaformArray [] = array ( 'd' => 'char' );
2012-10-18 15:02:44 -04:00
while ( $aRow = $oDataset -> getRow ()) {
2013-03-04 09:29:59 -04:00
if (( $aRow [ 'DYN_TITLE' ] == null ) || ( $aRow [ 'DYN_TITLE' ] == " " )) {
// There is no transaltion for this Document name, try to get/regenerate the label
$aRow [ 'DYN_TITLE' ] = Content :: Load ( " DYN_TITLE " , " " , $aRow [ 'DYN_UID' ], SYS_LANG );
2012-10-18 15:02:44 -04:00
}
2013-03-04 09:29:59 -04:00
if (( $aRow [ 'DYN_DESCRIPTION' ] == null ) || ( $aRow [ 'DYN_DESCRIPTION' ] == " " )) {
// There is no transaltion for this Document name, try to get/regenerate the label
$aRow [ 'DYN_DESCRIPTION' ] = Content :: Load ( " DYN_DESCRIPTION " , " " , $aRow [ 'DYN_UID' ], SYS_LANG );
2012-10-18 15:02:44 -04:00
}
$dynaformArray [] = $aRow ;
$oDataset -> next ();
}
return $oCriteria ;
2012-10-18 14:46:16 -04:00
}
2012-10-18 15:02:44 -04:00
/**
* getDynaformsList
*
* @ param string $sProcessUID
* @ return array $dynaformArray
*/
2013-03-04 09:29:59 -04:00
public function getDynaformsList ( $sProcessUID = '' )
2012-10-18 15:02:44 -04:00
{
$sDelimiter = DBAdapter :: getStringDelimiter ();
2013-03-04 09:29:59 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> addSelectColumn ( DynaformPeer :: DYN_UID );
$oCriteria -> addSelectColumn ( DynaformPeer :: PRO_UID );
$oCriteria -> addSelectColumn ( DynaformPeer :: DYN_TYPE );
$oCriteria -> addAsColumn ( 'DYN_TITLE' , 'C1.CON_VALUE' );
$oCriteria -> addAsColumn ( 'DYN_DESCRIPTION' , 'C2.CON_VALUE' );
$oCriteria -> addAlias ( 'C1' , 'CONTENT' );
$oCriteria -> addAlias ( 'C2' , 'CONTENT' );
$aConditions = array ();
$aConditions [] = array ( DynaformPeer :: DYN_UID , 'C1.CON_ID' );
$aConditions [] = array ( 'C1.CON_CATEGORY' , $sDelimiter . 'DYN_TITLE' . $sDelimiter );
$aConditions [] = array ( 'C1.CON_LANG' , $sDelimiter . SYS_LANG . $sDelimiter );
$oCriteria -> addJoinMC ( $aConditions , Criteria :: LEFT_JOIN );
$aConditions = array ();
$aConditions [] = array ( DynaformPeer :: DYN_UID , 'C2.CON_ID' );
$aConditions [] = array ( 'C2.CON_CATEGORY' , $sDelimiter . 'DYN_DESCRIPTION' . $sDelimiter );
$aConditions [] = array ( 'C2.CON_LANG' , $sDelimiter . SYS_LANG . $sDelimiter );
$oCriteria -> addJoinMC ( $aConditions , Criteria :: LEFT_JOIN );
$oCriteria -> add ( DynaformPeer :: PRO_UID , $sProcessUID );
2012-10-18 14:46:16 -04:00
2013-03-04 09:29:59 -04:00
$oDataset = DynaformPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
2013-03-04 09:29:59 -04:00
$dynaformArray = array ();
2012-10-18 15:02:44 -04:00
while ( $aRow = $oDataset -> getRow ()) {
2013-03-04 09:29:59 -04:00
if (( $aRow [ 'DYN_TITLE' ] == null ) || ( $aRow [ 'DYN_TITLE' ] == " " )) {
// There is no transaltion for this Document name, try to get/regenerate the label
$aRow [ 'DYN_TITLE' ] = Content :: Load ( " DYN_TITLE " , " " , $aRow [ 'DYN_UID' ], SYS_LANG );
2012-10-18 15:02:44 -04:00
}
2013-03-04 09:29:59 -04:00
if (( $aRow [ 'DYN_DESCRIPTION' ] == null ) || ( $aRow [ 'DYN_DESCRIPTION' ] == " " )) {
// There is no transaltion for this Document name, try to get/regenerate the label
$aRow [ 'DYN_DESCRIPTION' ] = Content :: Load ( " DYN_DESCRIPTION " , " " , $aRow [ 'DYN_UID' ], SYS_LANG );
2012-10-18 15:02:44 -04:00
}
$dynaformArray [] = $aRow ;
$oDataset -> next ();
}
2012-10-18 14:46:16 -04:00
2012-10-18 15:02:44 -04:00
return $dynaformArray ;
2012-10-18 14:46:16 -04:00
}
2012-10-18 15:02:44 -04:00
/*
2013-03-04 09:29:59 -04:00
* Presents a small list of output documents of the process
* @ param string $sProcessUID
* @ return boolean
*/
2012-10-09 11:24:11 -04:00
2013-03-04 09:29:59 -04:00
public function outputdocsList ( $sProcessUID = '' )
2012-10-18 15:02:44 -04:00
{
try {
$oProcess = new Process ();
2013-03-04 09:29:59 -04:00
$aFields = $oProcess -> load ( $sProcessUID );
2012-10-18 15:02:44 -04:00
global $G_PUBLISH ;
$G_PUBLISH = new Publisher ();
2013-03-04 09:29:59 -04:00
$G_PUBLISH -> AddContent ( 'propeltable' , 'paged-table' , 'outputdocs/outputdocs_ShortList' , $this -> getOutputDocumentsCriteria ( $sProcessUID ), $aFields );
G :: RenderPage ( 'publish' , 'raw' );
2012-10-18 15:02:44 -04:00
return true ;
} catch ( Exception $oError ) {
throw ( $oError );
}
}
/*
2013-03-04 09:29:59 -04:00
* Return the output documents list criteria object
* @ param string $sProcessUID
* @ return object
*/
2012-10-09 11:24:11 -04:00
2013-03-04 09:29:59 -04:00
public function getOutputDocumentsCriteria ( $sProcessUID = '' )
2012-10-18 15:02:44 -04:00
{
$sDelimiter = DBAdapter :: getStringDelimiter ();
2013-03-04 09:29:59 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> addSelectColumn ( OutputDocumentPeer :: OUT_DOC_UID );
$oCriteria -> addSelectColumn ( OutputDocumentPeer :: OUT_DOC_TYPE );
$oCriteria -> addSelectColumn ( OutputDocumentPeer :: PRO_UID );
$oCriteria -> addAsColumn ( 'OUT_DOC_TITLE' , 'C1.CON_VALUE' );
$oCriteria -> addAsColumn ( 'OUT_DOC_DESCRIPTION' , 'C2.CON_VALUE' );
$oCriteria -> addAlias ( 'C1' , 'CONTENT' );
$oCriteria -> addAlias ( 'C2' , 'CONTENT' );
$aConditions = array ();
$aConditions [] = array ( OutputDocumentPeer :: OUT_DOC_UID , 'C1.CON_ID' );
$aConditions [] = array ( 'C1.CON_CATEGORY' , $sDelimiter . 'OUT_DOC_TITLE' . $sDelimiter );
$aConditions [] = array ( 'C1.CON_LANG' , $sDelimiter . SYS_LANG . $sDelimiter );
$oCriteria -> addJoinMC ( $aConditions , Criteria :: LEFT_JOIN );
$aConditions = array ();
$aConditions [] = array ( OutputDocumentPeer :: OUT_DOC_UID , 'C2.CON_ID' );
$aConditions [] = array ( 'C2.CON_CATEGORY' , $sDelimiter . 'OUT_DOC_DESCRIPTION' . $sDelimiter );
$aConditions [] = array ( 'C2.CON_LANG' , $sDelimiter . SYS_LANG . $sDelimiter );
$oCriteria -> addJoinMC ( $aConditions , Criteria :: LEFT_JOIN );
$oCriteria -> add ( OutputDocumentPeer :: PRO_UID , $sProcessUID );
2012-10-18 15:02:44 -04:00
2013-03-04 09:29:59 -04:00
$oDataset = OutputDocumentPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
2013-03-04 09:29:59 -04:00
$outputDocArray = array ();
$outputDocArray [] = array ( 'd' => 'char' );
2012-10-18 15:02:44 -04:00
while ( $aRow = $oDataset -> getRow ()) {
2013-03-04 09:29:59 -04:00
if (( $aRow [ 'OUT_DOC_TITLE' ] == null ) || ( $aRow [ 'OUT_DOC_TITLE' ] == " " )) {
// There is no transaltion for this Document name, try to get/regenerate the label
2012-10-18 15:02:44 -04:00
$outputDocument = new OutputDocument ();
2013-03-04 09:29:59 -04:00
$outputDocumentObj = $outputDocument -> load ( $aRow [ 'OUT_DOC_UID' ]);
2012-10-18 15:02:44 -04:00
$aRow [ 'OUT_DOC_TITLE' ] = $outputDocumentObj [ 'OUT_DOC_TITLE' ];
$aRow [ 'OUT_DOC_DESCRIPTION' ] = $outputDocumentObj [ 'OUT_DOC_DESCRIPTION' ];
}
$outputDocArray [] = $aRow ;
$oDataset -> next ();
}
global $_DBArray ;
2013-03-04 09:29:59 -04:00
$_DBArray = ( isset ( $_SESSION [ '_DBArray' ]) ? $_SESSION [ '_DBArray' ] : '' );
2012-10-18 15:02:44 -04:00
$_DBArray [ 'outputDocArray' ] = $outputDocArray ;
$_SESSION [ '_DBArray' ] = $_DBArray ;
2013-03-04 09:29:59 -04:00
G :: LoadClass ( 'ArrayPeer' );
$oCriteria = new Criteria ( 'dbarray' );
$oCriteria -> setDBArrayTable ( 'outputDocArray' );
2012-10-18 14:46:16 -04:00
2012-10-18 15:02:44 -04:00
return $oCriteria ;
}
2012-10-18 14:46:16 -04:00
2012-10-18 15:02:44 -04:00
/*
2013-03-04 09:29:59 -04:00
* Presents a small list of input documents of the process
* @ param string $sProcessUID Process UID
* @ return void
*/
2012-10-09 11:24:11 -04:00
2013-03-04 09:29:59 -04:00
public function inputdocsList ( $sProcessUID = '' )
2012-10-18 15:02:44 -04:00
{
try {
$oProcess = new Process ();
2013-03-04 09:29:59 -04:00
$aFields = $oProcess -> load ( $sProcessUID );
2012-10-18 15:02:44 -04:00
global $G_PUBLISH ;
$G_PUBLISH = new Publisher ();
2013-03-04 09:29:59 -04:00
$G_PUBLISH -> AddContent ( 'propeltable' , 'paged-table' , 'inputdocs/inputdocs_ShortList' , $this -> getInputDocumentsCriteria ( $sProcessUID ), $aFields );
G :: RenderPage ( 'publish' , 'raw' );
2012-10-18 15:02:44 -04:00
return true ;
} catch ( Exception $oError ) {
throw ( $oError );
}
}
/*
2013-03-04 09:29:59 -04:00
* Return the input documents list criteria object
* @ param string $sProcessUID
* @ return object
*/
2012-10-09 11:24:11 -04:00
2013-03-04 09:29:59 -04:00
public function getInputDocumentsCriteria ( $sProcessUID = '' )
2012-10-18 15:02:44 -04:00
{
$sDelimiter = DBAdapter :: getStringDelimiter ();
2013-03-04 09:29:59 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> addSelectColumn ( InputDocumentPeer :: INP_DOC_UID );
$oCriteria -> addSelectColumn ( InputDocumentPeer :: PRO_UID );
$oCriteria -> addAsColumn ( 'INP_DOC_TITLE' , 'C1.CON_VALUE' );
$oCriteria -> addAsColumn ( 'INP_DOC_DESCRIPTION' , 'C2.CON_VALUE' );
$oCriteria -> addAlias ( 'C1' , 'CONTENT' );
$oCriteria -> addAlias ( 'C2' , 'CONTENT' );
$aConditions = array ();
$aConditions [] = array ( InputDocumentPeer :: INP_DOC_UID , 'C1.CON_ID' );
$aConditions [] = array ( 'C1.CON_CATEGORY' , $sDelimiter . 'INP_DOC_TITLE' . $sDelimiter );
$aConditions [] = array ( 'C1.CON_LANG' , $sDelimiter . SYS_LANG . $sDelimiter );
$oCriteria -> addJoinMC ( $aConditions , Criteria :: LEFT_JOIN );
$aConditions = array ();
$aConditions [] = array ( InputDocumentPeer :: INP_DOC_UID , 'C2.CON_ID' );
$aConditions [] = array ( 'C2.CON_CATEGORY' , $sDelimiter . 'INP_DOC_DESCRIPTION' . $sDelimiter );
$aConditions [] = array ( 'C2.CON_LANG' , $sDelimiter . SYS_LANG . $sDelimiter );
$oCriteria -> addJoinMC ( $aConditions , Criteria :: LEFT_JOIN );
$oCriteria -> add ( InputDocumentPeer :: PRO_UID , $sProcessUID );
2012-10-18 15:02:44 -04:00
2013-03-04 09:29:59 -04:00
$oDataset = InputDocumentPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
$inputDocArray = " " ;
2013-03-04 09:29:59 -04:00
$inputDocArray [] = array ( 'INP_DOC_UID' => 'char' , 'PRO_UID' => 'char' , 'INP_DOC_TITLE' => 'char' , 'INP_DOC_DESCRIPTION' => 'char' );
2012-10-18 15:02:44 -04:00
while ( $aRow = $oDataset -> getRow ()) {
2013-03-04 09:29:59 -04:00
if (( $aRow [ 'INP_DOC_TITLE' ] == null ) || ( $aRow [ 'INP_DOC_TITLE' ] == " " )) {
// There is no transaltion for this Document name, try to get/regenerate the label
2012-10-18 15:02:44 -04:00
$inputDocument = new InputDocument ();
2013-03-04 09:29:59 -04:00
$inputDocumentObj = $inputDocument -> load ( $aRow [ 'INP_DOC_UID' ]);
2012-10-18 15:02:44 -04:00
$aRow [ 'INP_DOC_TITLE' ] = $inputDocumentObj [ 'INP_DOC_TITLE' ];
$aRow [ 'INP_DOC_DESCRIPTION' ] = $inputDocumentObj [ 'INP_DOC_DESCRIPTION' ];
}
$inputDocArray [] = $aRow ;
$oDataset -> next ();
}
global $_DBArray ;
2013-03-04 09:29:59 -04:00
$_DBArray = ( isset ( $_SESSION [ '_DBArray' ]) ? $_SESSION [ '_DBArray' ] : '' );
2012-10-18 14:46:16 -04:00
2012-10-18 15:02:44 -04:00
$_DBArray [ 'inputDocArrayMain' ] = $inputDocArray ;
$_SESSION [ '_DBArray' ] = $_DBArray ;
2013-03-04 09:29:59 -04:00
G :: LoadClass ( 'ArrayPeer' );
$oCriteria = new Criteria ( 'dbarray' );
$oCriteria -> setDBArrayTable ( 'inputDocArrayMain' );
2012-10-18 14:46:16 -04:00
2012-10-18 15:02:44 -04:00
return $oCriteria ;
}
2012-10-18 14:46:16 -04:00
2012-10-18 15:02:44 -04:00
/*
2013-03-04 09:29:59 -04:00
* Presents a small list of triggers of the process
* @ param string $sProcessUID
* @ return void
*/
2012-10-09 11:24:11 -04:00
2013-03-04 09:29:59 -04:00
public function triggersList ( $sProcessUID = '' )
2012-10-18 15:02:44 -04:00
{
try {
$oProcess = new Process ();
2013-03-04 09:29:59 -04:00
$aFields = $oProcess -> load ( $sProcessUID );
2013-05-02 16:16:09 -04:00
$partnerFlag = ( defined ( 'PARTNER_FLAG' )) ? PARTNER_FLAG : false ;
$aFields [ 'PARTNER_FLAG' ] = $partnerFlag ;
2012-10-18 15:02:44 -04:00
global $G_PUBLISH ;
$G_PUBLISH = new Publisher ();
2013-03-04 09:29:59 -04:00
$G_PUBLISH -> AddContent ( 'propeltable' , 'paged-table' , 'triggers/triggers_ShortList' , $this -> getTriggersCriteria ( $sProcessUID ), $aFields );
G :: RenderPage ( 'publish' , 'raw' );
2012-10-18 15:02:44 -04:00
return true ;
} catch ( Exception $oError ) {
throw ( $oError );
}
}
/*
2013-03-04 09:29:59 -04:00
* Return the triggers list criteria object
* @ param string $sProcessUID
* @ return object
*/
2012-10-09 11:24:11 -04:00
2013-03-04 09:29:59 -04:00
public function getTriggersCriteria ( $sProcessUID = '' )
2012-10-18 15:02:44 -04:00
{
$sDelimiter = DBAdapter :: getStringDelimiter ();
2013-03-04 09:29:59 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> addSelectColumn ( TriggersPeer :: TRI_UID );
$oCriteria -> addSelectColumn ( TriggersPeer :: PRO_UID );
2013-11-28 17:05:58 -04:00
$oCriteria -> addAsColumn ( 'TRI_LOCATE_WEBBOT_PARAM' , 'LOCATE(MD5(' . TriggersPeer :: TRI_WEBBOT . '),' . TriggersPeer :: TRI_PARAM . ')' );
2013-03-04 09:29:59 -04:00
$oCriteria -> addAsColumn ( 'TRI_TITLE' , 'C1.CON_VALUE' );
$oCriteria -> addAsColumn ( 'TRI_DESCRIPTION' , 'C2.CON_VALUE' );
$oCriteria -> addAlias ( 'C1' , 'CONTENT' );
$oCriteria -> addAlias ( 'C2' , 'CONTENT' );
$aConditions = array ();
$aConditions [] = array ( TriggersPeer :: TRI_UID , 'C1.CON_ID' );
$aConditions [] = array ( 'C1.CON_CATEGORY' , $sDelimiter . 'TRI_TITLE' . $sDelimiter );
$aConditions [] = array ( 'C1.CON_LANG' , $sDelimiter . SYS_LANG . $sDelimiter );
$oCriteria -> addJoinMC ( $aConditions , Criteria :: LEFT_JOIN );
$aConditions = array ();
$aConditions [] = array ( TriggersPeer :: TRI_UID , 'C2.CON_ID' );
$aConditions [] = array ( 'C2.CON_CATEGORY' , $sDelimiter . 'TRI_TITLE' . $sDelimiter );
$aConditions [] = array ( 'C2.CON_LANG' , $sDelimiter . SYS_LANG . $sDelimiter );
$oCriteria -> addJoinMC ( $aConditions , Criteria :: LEFT_JOIN );
$oCriteria -> add ( TriggersPeer :: PRO_UID , $sProcessUID );
$oCriteria -> addAscendingOrderByColumn ( 'TRI_TITLE' );
2012-10-18 15:02:44 -04:00
2013-03-04 09:29:59 -04:00
$oDataset = TriggersPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
$triggersArray = " " ;
2013-03-04 09:29:59 -04:00
$triggersArray [] = array ( 'TRI_UID' => 'char' , 'PRO_UID' => 'char' , 'TRI_TITLE' => 'char' , 'TRI_DESCRIPTION' => 'char' );
2012-10-18 15:02:44 -04:00
while ( $aRow = $oDataset -> getRow ()) {
2012-10-18 14:46:16 -04:00
2013-03-04 09:29:59 -04:00
if (( $aRow [ 'TRI_TITLE' ] == null ) || ( $aRow [ 'TRI_TITLE' ] == " " )) {
// There is no transaltion for this Trigger name, try to get/regenerate the label
2012-10-18 15:02:44 -04:00
$triggerO = new Triggers ();
2013-03-04 09:29:59 -04:00
$triggerObj = $triggerO -> load ( $aRow [ 'TRI_UID' ]);
2012-10-18 15:02:44 -04:00
$aRow [ 'TRI_TITLE' ] = $triggerObj [ 'TRI_TITLE' ];
$aRow [ 'TRI_DESCRIPTION' ] = $triggerObj [ 'TRI_DESCRIPTION' ];
}
$triggersArray [] = $aRow ;
$oDataset -> next ();
}
2012-10-18 14:46:16 -04:00
2012-10-18 15:02:44 -04:00
return $oCriteria ;
}
2012-10-18 14:46:16 -04:00
2012-10-18 15:02:44 -04:00
/*
2013-03-04 09:29:59 -04:00
* Return the triggers list in a array
* @ param string $sProcessUID
* @ return array
*/
2012-10-09 11:24:11 -04:00
2013-03-04 09:29:59 -04:00
public function getTriggers ( $sProcessUID = '' )
2012-10-18 15:02:44 -04:00
{
2013-03-04 09:29:59 -04:00
$aTriggers = Array ();
$oCriteria = $this -> getTriggersCriteria ( $sProcessUID );
2012-10-09 11:24:11 -04:00
2013-03-04 09:29:59 -04:00
$oDataset = RoutePeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-09 11:24:11 -04:00
2013-03-04 09:29:59 -04:00
while ( $oDataset -> next ()) {
array_push ( $aTriggers , $oDataset -> getRow ());
}
2012-10-09 11:24:11 -04:00
2012-10-18 15:02:44 -04:00
return $aTriggers ;
}
2012-10-09 11:24:11 -04:00
2012-10-18 15:02:44 -04:00
/*
2013-03-04 09:29:59 -04:00
* Presents a small list of Scheduled Tasks of the process
* @ param string $sProcessUID
* @ return void
*/
2012-10-09 11:24:11 -04:00
2013-03-04 09:29:59 -04:00
public function caseSchedulerList ( $sProcessUID = '' )
2012-10-18 15:02:44 -04:00
{
try {
/* $oCaseScheduler = new CaseScheduler ();
2013-03-04 09:29:59 -04:00
$aRows = $oCaseScheduler -> getAll ();
//$oCaseScheduler->caseSchedulerCron();
// g::pr($aRows); die;
$fieldNames = Array (
'SCH_UID' => 'char' ,
'SCH_NAME' => 'char' ,
'PRO_UID' => 'char' ,
'TAS_UID' => 'char' ,
'SCH_TIME_NEXT_RUN' => 'char' ,
'SCH_LAST_RUN_TIME' => 'char' ,
'SCH_STATE' => 'char' ,
'SCH_LAST_STATE' => 'char' ,
'USR_UID' => 'char' ,
'SCH_OPTION' => 'char' ,
'SCH_START_TIME' => 'char' ,
'SCH_START_DATE' => 'char' ,
'SCH_DAYS_PERFORM_TASK' => 'char' ,
'SCH_EVERY_DAYS' => 'char' ,
'SCH_WEEK_DAYS' => 'char' ,
'SCH_START_DAY' => 'char' ,
'SCH_MONTHS' => 'char' ,
'SCH_END_DATE' => 'char' ,
'SCH_REPEAT_EVERY' => 'char' ,
'SCH_REPEAT_UNTIL' => 'char' ,
'SCH_REPEAT_STOP_IF_RUNNING' => 'char' ,
'PRO_PARENT' => 'char' ,
'PRO_TIME' => 'char' ,
'PRO_TIMEUNIT' => 'char' ,
'PRO_STATUS' => 'char' ,
'PRO_TYPE_DAY' => 'char' ,
'PRO_TYPE' => 'char' ,
'PRO_ASSIGNMENT' => 'char' ,
'PRO_SHOW_MAP' => 'char' ,
'PRO_SHOW_MESSAGE' => 'char' ,
'PRO_SHOW_DELEGATE' => 'char' ,
'PRO_SHOW_DYNAFORM' => 'char' ,
'PRO_CATEGORY' => 'char' ,
'PRO_SUB_CATEGORY' => 'char' ,
'PRO_INDUSTRY' => 'char' ,
'PRO_UPDATE_DATE' => 'char' ,
'PRO_CREATE_DATE' => 'char' ,
'PRO_CREATE_USER' => 'char' ,
'PRO_HEIGHT' => 'char' ,
'PRO_WIDTH' => 'char' ,
'PRO_TITLE_X' => 'char' ,
'PRO_TITLE_Y' => 'char' ,
'PRO_DEBUG' => 'char' ,
'PRO_TITLE' => 'char' ,
'PRO_DESCRIPTION' => 'char' ,
'TAS_TYPE' => 'char' ,
'TAS_DURATION' => 'char' ,
'TAS_DELAY_TYPE' => 'char' ,
'TAS_TEMPORIZER' => 'char' ,
'TAS_TYPE_DAY' => 'char' ,
'TAS_TIMEUNIT' => 'char' ,
'TAS_ALERT' => 'char' ,
'TAS_PRIORITY_VARIABLE' => 'char' ,
'TAS_ASSIGN_TYPE' => 'char' ,
'TAS_ASSIGN_VARIABLE' => 'char' ,
'TAS_ASSIGN_LOCATION' => 'char' ,
'TAS_ASSIGN_LOCATION_ADHOC' => 'char' ,
'TAS_TRANSFER_FLY' => 'char' ,
'TAS_LAST_ASSIGNED' => 'char' ,
'TAS_USER' => 'char' ,
'TAS_CAN_UPLOAD' => 'char' ,
'TAS_VIEW_UPLOAD' => 'char' ,
'TAS_VIEW_ADDITIONAL_DOCUMENTATION' => 'char' ,
'TAS_CAN_CANCEL' => 'char' ,
'TAS_OWNER_APP' => 'char' ,
'STG_UID' => 'char' ,
'TAS_CAN_PAUSE' => 'char' ,
'TAS_CAN_SEND_MESSAGE' => 'char' ,
'TAS_CAN_DELETE_DOCS' => 'char' ,
'TAS_SELF_SERVICE' => 'char' ,
'TAS_START' => 'char' ,
'TAS_TO_LAST_USER' => 'char' ,
'TAS_SEND_LAST_EMAIL' => 'char' ,
'TAS_DERIVATION' => 'char' ,
'TAS_POSX' => 'char' ,
'TAS_POSY' => 'char' ,
'TAS_COLOR' => 'char' ,
'TAS_TITLE' => 'char' ,
'TAS_DESCRIPTION' => 'char' ,
'TAS_DEF_TITLE' => 'char' ,
'TAS_DEF_DESCRIPTION' => 'char' ,
'TAS_DEF_PROC_CODE' => 'char' ,
'TAS_DEF_MESSAGE' => 'char'
);
$aRows = array_merge ( Array ( $fieldNames ), $aRows );
// g::pr($aRows); die;
global $_DBArray ;
$_DBArray [ 'cases_scheduler' ] = $aRows ;
$_SESSION [ '_DBArray' ] = $_DBArray ;
G :: LoadClass ( 'ArrayPeer' );
$oCriteria = new Criteria ( 'dbarray' );
$oCriteria -> setDBArrayTable ( 'cases_scheduler' );
$G_PUBLISH = new Publisher ;
$G_PUBLISH -> AddContent ( 'propeltable' , 'paged-table' , '/cases/cases_Scheduler_List' , $oCriteria , array ( 'CONFIRM' => G :: LoadTranslation ( 'ID_MSG_CONFIRM_DELETE_CASE_SCHEDULER' )));
G :: RenderPage ( 'publish' );
//return true; */
2012-10-18 15:02:44 -04:00
$schedulerPath = SYS_URI . " cases/cases_Scheduler_List " ;
$html = " <iframe WIDTH=820 HEIGHT=530 FRAMEBORDER=0 src=' " . $schedulerPath . '?PRO_UID=' . $sProcessUID . " '></iframe> " ;
echo $html ;
} catch ( Exception $oError ) {
throw ( $oError );
}
2012-10-09 11:24:11 -04:00
}
2012-10-18 15:02:44 -04:00
/*
2013-03-04 09:29:59 -04:00
* Presents a small list of Scheduled Task Logs of the process
* @ param string $sProcessUID
* @ return void
*/
2012-10-09 11:24:11 -04:00
2013-03-04 09:29:59 -04:00
public function logCaseSchedulerList ( $sProcessUID = '' )
2012-10-18 15:02:44 -04:00
{
try {
$oLogCaseScheduler = new LogCasesScheduler ();
$aRows = $oLogCaseScheduler -> getAll ();
2013-03-04 09:29:59 -04:00
$fieldNames = Array ( 'PRO_UID' => 'char' , 'TAS_UID' => 'char' , 'USR_NAME' => 'char' , 'EXEC_DATE' => 'char' , 'EXEC_HOUR' => 'char' , 'RESULT' => 'char' , 'SCH_UID' => 'char' , 'WS_CREATE_CASE_STATUS' => 'char' , 'WS_ROUTE_CASE_STATUS' => 'char' );
2012-10-18 15:02:44 -04:00
2013-03-04 09:29:59 -04:00
$aRows = array_merge ( Array ( $fieldNames ), $aRows );
2012-10-18 15:02:44 -04:00
$_DBArray [ 'log_cases_scheduler' ] = $aRows ;
$_SESSION [ '_DBArray' ] = $_DBArray ;
2013-03-04 09:29:59 -04:00
$oCriteria = new Criteria ( 'dbarray' );
$oCriteria -> setDBArrayTable ( 'log_cases_scheduler' );
2012-10-18 15:02:44 -04:00
$G_PUBLISH = new Publisher ();
$G_PUBLISH -> ROWS_PER_PAGE = 10 ;
2013-03-04 09:29:59 -04:00
$G_PUBLISH -> AddContent ( 'propeltable' , 'paged-table' , 'cases/cases_Scheduler_Log' , $oCriteria );
2012-10-18 15:02:44 -04:00
$G_PUBLISH -> oPropelTable -> rowsPerPage = 10 ;
2013-03-04 09:29:59 -04:00
G :: RenderPage ( 'publish' , 'blank' );
2012-10-18 15:02:44 -04:00
} catch ( Exception $oError ) {
throw ( $oError );
}
}
/*
2013-03-04 09:29:59 -04:00
* Presents a small list of messages of the process
* @ param string $sProcessUID
* @ return void
*/
2012-10-09 13:08:42 -04:00
2013-03-04 09:29:59 -04:00
public function messagesList ( $sProcessUID = '' )
2012-10-18 15:02:44 -04:00
{
try {
$oProcess = new Process ();
2013-03-04 09:29:59 -04:00
$aFields = $oProcess -> load ( $sProcessUID );
2012-10-18 15:02:44 -04:00
global $G_PUBLISH ;
$aFields [ 'PRO_UID' ] = $sProcessUID ;
$aFields [ 'SYS_LANG' ] = SYS_LANG ;
$G_PUBLISH = new Publisher ();
//$G_PUBLISH->AddContent('pagedtable', 'paged-table', 'messages/messages_ShortList', $this->getMessagesCriteria($sProcessUID));
2013-03-04 09:29:59 -04:00
G :: RenderPage ( 'publish' , 'raw' );
2012-10-18 15:02:44 -04:00
return true ;
} catch ( Exception $oError ) {
throw ( $oError );
}
}
/*
2013-03-04 09:29:59 -04:00
* Presents a small list of report tables of the process
* @ param string $sProcessUID
* @ return void
*/
2012-10-09 11:24:11 -04:00
2013-03-04 09:29:59 -04:00
public function reportTablesList ( $sProcessUID = '' )
2012-10-18 15:02:44 -04:00
{
try {
$oProcess = new Process ();
2013-03-04 09:29:59 -04:00
$aFields = $oProcess -> load ( $sProcessUID );
2012-10-18 15:02:44 -04:00
global $G_PUBLISH ;
$G_PUBLISH = new Publisher ();
2013-03-04 09:29:59 -04:00
$G_PUBLISH -> AddContent ( 'propeltable' , 'paged-table' , 'reportTables/reportTables_ShortList' , $this -> getReportTablesCriteria ( $sProcessUID ), $aFields );
G :: RenderPage ( 'publish' , 'raw' );
2012-10-18 15:02:44 -04:00
return true ;
} catch ( Exception $oError ) {
throw ( $oError );
}
}
/*
2013-03-04 09:29:59 -04:00
* Return the report tables list criteria object
* @ param string $sProcessUID
* @ return object
*/
2012-10-09 11:24:11 -04:00
2013-03-04 09:29:59 -04:00
public function getReportTablesCriteria ( $sProcessUID = '' )
2012-10-18 15:02:44 -04:00
{
$sDelimiter = DBAdapter :: getStringDelimiter ();
2013-03-04 09:29:59 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> addSelectColumn ( ReportTablePeer :: REP_TAB_UID );
$oCriteria -> addSelectColumn ( ReportTablePeer :: PRO_UID );
$oCriteria -> addSelectColumn ( ReportTablePeer :: REP_TAB_NAME );
$oCriteria -> addSelectColumn ( ReportTablePeer :: REP_TAB_TYPE );
$oCriteria -> addSelectColumn ( ReportTablePeer :: REP_TAB_CONNECTION );
2012-10-18 15:02:44 -04:00
// $oCriteria->addAsColumn ( 'REP_TAB_TITLE', 'C.CON_VALUE' );
2013-03-04 09:29:59 -04:00
$oCriteria -> addAsColumn ( 'REP_TAB_TITLE' , " CASE WHEN C.CON_VALUE IS NULL THEN (SELECT DISTINCT MAX(A.CON_VALUE) FROM CONTENT A WHERE A.CON_ID = REPORT_TABLE.REP_TAB_UID ) ELSE C.CON_VALUE END " );
$oCriteria -> addAlias ( 'C' , 'CONTENT' );
$aConditions = array ();
$aConditions [] = array ( ReportTablePeer :: REP_TAB_UID , 'C.CON_ID' );
$aConditions [] = array ( 'C.CON_CATEGORY' , $sDelimiter . 'REP_TAB_TITLE' . $sDelimiter );
$aConditions [] = array ( 'C.CON_LANG' , $sDelimiter . SYS_LANG . $sDelimiter );
$oCriteria -> addJoinMC ( $aConditions , Criteria :: LEFT_JOIN );
$oCriteria -> add ( ReportTablePeer :: PRO_UID , $sProcessUID );
2012-10-18 15:02:44 -04:00
return $oCriteria ;
}
/*
2013-03-04 09:29:59 -04:00
* Show the current pattern
* @ param string $sProcessUID
* @ param string $sTaskUID
* @ return boolean
*/
public function currentPattern ( $sProcessUID , $sTaskUID )
2012-10-18 15:02:44 -04:00
{
try {
$oProcess = new Process ();
2013-03-04 09:29:59 -04:00
$aFields = $oProcess -> load ( $sProcessUID );
2012-10-18 15:02:44 -04:00
$oTask = new Task ();
2013-03-04 09:29:59 -04:00
$aFields = $oTask -> load ( $sTaskUID );
$aFields = array ();
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> add ( RoutePeer :: PRO_UID , $sProcessUID );
$oCriteria -> add ( RoutePeer :: TAS_UID , $sTaskUID );
$oCriteria -> addAscendingOrderByColumn ( RoutePeer :: ROU_CASE );
$oDataset = RoutePeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
$aRow = $oDataset -> getRow ();
2013-03-04 09:29:59 -04:00
$params = array ();
2012-10-18 15:02:44 -04:00
// $sql = BasePeer::createSelectSql($oCriteria, $params);
// echo $sProcessUID."-".$sTaskUID."-";
// echo $sql;
// var_dump($aRow);
// die();
2013-03-04 09:29:59 -04:00
if ( is_array ( $aRow )) {
2012-10-18 15:02:44 -04:00
$aFields [ 'ROU_TYPE' ] = $aRow [ 'ROU_TYPE' ];
$aFields [ 'ROU_TYPE_OLD' ] = $aRow [ 'ROU_TYPE' ];
switch ( $aRow [ 'ROU_TYPE' ]) {
case 'SEQUENTIAL' :
case 'SEC-JOIN' :
$aFields [ 'ROU_UID' ] = $aRow [ 'ROU_UID' ];
$aFields [ 'ROU_NEXT_TASK' ] = $aRow [ 'ROU_NEXT_TASK' ];
$aFields [ 'ROU_TO_LAST_USER' ] = $aRow [ 'ROU_TO_LAST_USER' ];
if ( $aRow [ 'ROU_TYPE' ] == 'SEQUENTIAL' ) {
$sXmlform = 'patterns_Sequential' ;
} else {
$sXmlform = 'patterns_ParallelJoin' ;
}
break ;
case 'SELECT' :
$aFields [ 'GRID_SELECT_TYPE' ][ 'ROU_UID' ][ $aRow [ 'ROU_CASE' ]] = $aRow [ 'ROU_UID' ];
$aFields [ 'GRID_SELECT_TYPE' ][ 'ROU_NEXT_TASK' ][ $aRow [ 'ROU_CASE' ]] = $aRow [ 'ROU_NEXT_TASK' ];
$aFields [ 'GRID_SELECT_TYPE' ][ 'ROU_CONDITION' ][ $aRow [ 'ROU_CASE' ]] = $aRow [ 'ROU_CONDITION' ];
$aFields [ 'GRID_SELECT_TYPE' ][ 'ROU_TO_LAST_USER' ][ $aRow [ 'ROU_CASE' ]] = $aRow [ 'ROU_TO_LAST_USER' ];
while ( $aRow = $oDataset -> getRow ()) {
$aFields [ 'GRID_SELECT_TYPE' ][ 'ROU_UID' ][ $aRow [ 'ROU_CASE' ]] = $aRow [ 'ROU_UID' ];
$aFields [ 'GRID_SELECT_TYPE' ][ 'ROU_NEXT_TASK' ][ $aRow [ 'ROU_CASE' ]] = $aRow [ 'ROU_NEXT_TASK' ];
$aFields [ 'GRID_SELECT_TYPE' ][ 'ROU_CONDITION' ][ $aRow [ 'ROU_CASE' ]] = $aRow [ 'ROU_CONDITION' ];
$aFields [ 'GRID_SELECT_TYPE' ][ 'ROU_TO_LAST_USER' ][ $aRow [ 'ROU_CASE' ]] = $aRow [ 'ROU_TO_LAST_USER' ];
$oDataset -> next ();
}
$sXmlform = 'patterns_Select' ;
break ;
case 'EVALUATE' :
2013-03-04 09:29:59 -04:00
G :: LoadClass ( 'xmlfield_InputPM' );
2012-10-18 15:02:44 -04:00
$aFields [ 'GRID_EVALUATE_TYPE' ][ 'ROU_UID' ][ $aRow [ 'ROU_CASE' ]] = $aRow [ 'ROU_UID' ];
$aFields [ 'GRID_EVALUATE_TYPE' ][ 'ROU_NEXT_TASK' ][ $aRow [ 'ROU_CASE' ]] = $aRow [ 'ROU_NEXT_TASK' ];
$aFields [ 'GRID_EVALUATE_TYPE' ][ 'ROU_CONDITION' ][ $aRow [ 'ROU_CASE' ]] = $aRow [ 'ROU_CONDITION' ];
$aFields [ 'GRID_EVALUATE_TYPE' ][ 'ROU_TO_LAST_USER' ][ $aRow [ 'ROU_CASE' ]] = $aRow [ 'ROU_TO_LAST_USER' ];
while ( $aRow = $oDataset -> getRow ()) {
$aFields [ 'GRID_EVALUATE_TYPE' ][ 'ROU_UID' ][ $aRow [ 'ROU_CASE' ]] = $aRow [ 'ROU_UID' ];
$aFields [ 'GRID_EVALUATE_TYPE' ][ 'ROU_NEXT_TASK' ][ $aRow [ 'ROU_CASE' ]] = $aRow [ 'ROU_NEXT_TASK' ];
$aFields [ 'GRID_EVALUATE_TYPE' ][ 'ROU_CONDITION' ][ $aRow [ 'ROU_CASE' ]] = $aRow [ 'ROU_CONDITION' ];
$aFields [ 'GRID_EVALUATE_TYPE' ][ 'ROU_TO_LAST_USER' ][ $aRow [ 'ROU_CASE' ]] = $aRow [ 'ROU_TO_LAST_USER' ];
$oDataset -> next ();
}
$sXmlform = 'patterns_Evaluate' ;
break ;
case 'PARALLEL' :
$aFields [ 'GRID_PARALLEL_TYPE' ][ 'ROU_UID' ][ $aRow [ 'ROU_CASE' ]] = $aRow [ 'ROU_UID' ];
$aFields [ 'GRID_PARALLEL_TYPE' ][ 'ROU_NEXT_TASK' ][ $aRow [ 'ROU_CASE' ]] = $aRow [ 'ROU_NEXT_TASK' ];
while ( $aRow = $oDataset -> getRow ()) {
$aFields [ 'GRID_PARALLEL_TYPE' ][ 'ROU_UID' ][ $aRow [ 'ROU_CASE' ]] = $aRow [ 'ROU_UID' ];
$aFields [ 'GRID_PARALLEL_TYPE' ][ 'ROU_NEXT_TASK' ][ $aRow [ 'ROU_CASE' ]] = $aRow [ 'ROU_NEXT_TASK' ];
$oDataset -> next ();
}
$sXmlform = 'patterns_Parallel' ;
break ;
case 'PARALLEL-BY-EVALUATION' :
2013-03-04 09:29:59 -04:00
G :: LoadClass ( 'xmlfield_InputPM' );
2012-10-18 15:02:44 -04:00
$aFields [ 'GRID_PARALLEL_EVALUATION_TYPE' ][ 'ROU_UID' ][ $aRow [ 'ROU_CASE' ]] = $aRow [ 'ROU_UID' ];
$aFields [ 'GRID_PARALLEL_EVALUATION_TYPE' ][ 'ROU_NEXT_TASK' ][ $aRow [ 'ROU_CASE' ]] = $aRow [ 'ROU_NEXT_TASK' ];
$aFields [ 'GRID_PARALLEL_EVALUATION_TYPE' ][ 'ROU_CONDITION' ][ $aRow [ 'ROU_CASE' ]] = $aRow [ 'ROU_CONDITION' ];
while ( $aRow = $oDataset -> getRow ()) {
$aFields [ 'GRID_PARALLEL_EVALUATION_TYPE' ][ 'ROU_UID' ][ $aRow [ 'ROU_CASE' ]] = $aRow [ 'ROU_UID' ];
$aFields [ 'GRID_PARALLEL_EVALUATION_TYPE' ][ 'ROU_NEXT_TASK' ][ $aRow [ 'ROU_CASE' ]] = $aRow [ 'ROU_NEXT_TASK' ];
$aFields [ 'GRID_PARALLEL_EVALUATION_TYPE' ][ 'ROU_CONDITION' ][ $aRow [ 'ROU_CASE' ]] = $aRow [ 'ROU_CONDITION' ];
$aFields [ 'GRID_PARALLEL_EVALUATION_TYPE' ][ 'ROU_OPTIONAL' ][ $aRow [ 'ROU_CASE' ]] = $aRow [ 'ROU_OPTIONAL' ];
$oDataset -> next ();
}
$sXmlform = 'patterns_ParallelByEvaluation' ;
break ;
case 'DISCRIMINATOR' :
2013-03-04 09:29:59 -04:00
G :: LoadClass ( 'xmlfield_InputPM' );
2012-10-18 15:02:44 -04:00
$aFields [ 'GRID_DISCRIMINATOR_TYPE' ][ 'ROU_UID' ][ $aRow [ 'ROU_CASE' ]] = $aRow [ 'ROU_UID' ];
$aFields [ 'GRID_DISCRIMINATOR_TYPE' ][ 'ROU_NEXT_TASK' ][ $aRow [ 'ROU_CASE' ]] = $aRow [ 'ROU_NEXT_TASK' ];
$aFields [ 'GRID_DISCRIMINATOR_TYPE' ][ 'ROU_CONDITION' ][ $aRow [ 'ROU_CASE' ]] = $aRow [ 'ROU_CONDITION' ];
$aFields [ 'GRID_DISCRIMINATOR_TYPE' ][ 'ROU_OPTIONAL' ][ $aRow [ 'ROU_CASE' ]] = $aRow [ 'ROU_OPTIONAL' ];
2013-03-04 09:29:59 -04:00
G :: LoadClass ( 'tasks' );
2012-10-18 15:02:44 -04:00
$oTasks = new Tasks ();
2013-03-04 09:29:59 -04:00
$routeData = $oTasks -> getRouteByType ( $sProcessUID , $aRow [ 'ROU_NEXT_TASK' ], $aRow [ 'ROU_TYPE' ]);
$aFields [ 'ROUTE_COUNT' ] = count ( $routeData );
2012-10-18 15:02:44 -04:00
$sXmlform = 'patterns_Discriminator' ;
break ;
default :
2013-03-04 09:29:59 -04:00
throw new Exception ( G :: loadTranslation ( 'ID_INVALID_ROU_TYPE_DEFINITION_ON_ROUTE_TABLE' ));
2012-10-18 15:02:44 -04:00
break ;
}
}
$aFields [ 'action' ] = 'savePattern' ;
$aFields [ 'LANG' ] = SYS_LANG ;
$aFields [ 'PROCESS' ] = $sProcessUID ;
$aFields [ 'TASK' ] = $sTaskUID ;
global $G_PUBLISH ;
$G_PUBLISH = new Publisher ();
2013-03-04 09:29:59 -04:00
$G_PUBLISH -> AddContent ( 'xmlform' , 'xmlform' , 'patterns/' . $sXmlform , '' , $aFields , '../patterns/patterns_Ajax' );
G :: RenderPage ( 'publish' , 'raw' );
2012-10-18 15:02:44 -04:00
return true ;
} catch ( Exception $oError ) {
global $G_PUBLISH ;
$G_PUBLISH = new Publisher ();
2013-03-04 09:29:59 -04:00
$aMessage = array ();
2012-10-18 15:02:44 -04:00
$aMessage [ 'MESSAGE' ] = $oError -> getMessage ();
2013-03-04 09:29:59 -04:00
$G_PUBLISH -> AddContent ( 'xmlform' , 'xmlform' , 'login/showMessage' , '' , $aMessage );
G :: RenderPage ( 'publish' , 'blank' );
2012-10-18 15:02:44 -04:00
die ();
2012-10-18 14:46:16 -04:00
}
2012-10-18 15:02:44 -04:00
}
2012-10-18 14:46:16 -04:00
2012-10-18 15:02:44 -04:00
/*
2013-03-04 09:29:59 -04:00
* Show the new pattern form
* @ param string $sProcessUID
* @ param string $sTaskUID
* @ param string $sNextTask
* @ param string $sType
* @ return boolean
*/
2012-10-09 11:24:11 -04:00
2013-03-04 09:29:59 -04:00
public function newPattern ( $sProcessUID , $sTaskUID , $sNextTask , $sType )
2012-10-18 15:02:44 -04:00
{
try {
$oProcess = new Process ();
2013-03-04 09:29:59 -04:00
$aFields = $oProcess -> load ( $sProcessUID );
2012-10-18 15:02:44 -04:00
$oTask = new Task ();
2013-03-04 09:29:59 -04:00
$aFields = $oTask -> load ( $sTaskUID );
$aFields = array ();
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> add ( RoutePeer :: PRO_UID , $sProcessUID );
$oCriteria -> add ( RoutePeer :: TAS_UID , $sTaskUID );
$oCriteria -> addAscendingOrderByColumn ( RoutePeer :: ROU_CASE );
$oDataset = RoutePeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
$aRow = $oDataset -> getRow ();
2013-03-04 09:29:59 -04:00
if ( is_array ( $aRow )) {
2012-10-18 15:02:44 -04:00
$aFields [ 'ROU_TYPE_OLD' ] = $aRow [ 'ROU_TYPE' ];
if ( $sType == $aFields [ 'ROU_TYPE_OLD' ]) {
switch ( $sType ) {
case 'SELECT' :
$aFields [ 'GRID_SELECT_TYPE' ][ 'ROU_UID' ][ $aRow [ 'ROU_CASE' ]] = $aRow [ 'ROU_UID' ];
$aFields [ 'GRID_SELECT_TYPE' ][ 'ROU_NEXT_TASK' ][ $aRow [ 'ROU_CASE' ]] = $aRow [ 'ROU_NEXT_TASK' ];
$aFields [ 'GRID_SELECT_TYPE' ][ 'ROU_CONDITION' ][ $aRow [ 'ROU_CASE' ]] = $aRow [ 'ROU_CONDITION' ];
$aFields [ 'GRID_SELECT_TYPE' ][ 'ROU_TO_LAST_USER' ][ $aRow [ 'ROU_CASE' ]] = $aRow [ 'ROU_TO_LAST_USER' ];
while ( $aRow = $oDataset -> getRow ()) {
$aFields [ 'GRID_SELECT_TYPE' ][ 'ROU_UID' ][ $aRow [ 'ROU_CASE' ]] = $aRow [ 'ROU_UID' ];
$aFields [ 'GRID_SELECT_TYPE' ][ 'ROU_NEXT_TASK' ][ $aRow [ 'ROU_CASE' ]] = $aRow [ 'ROU_NEXT_TASK' ];
$aFields [ 'GRID_SELECT_TYPE' ][ 'ROU_CONDITION' ][ $aRow [ 'ROU_CASE' ]] = $aRow [ 'ROU_CONDITION' ];
$aFields [ 'GRID_SELECT_TYPE' ][ 'ROU_TO_LAST_USER' ][ $aRow [ 'ROU_CASE' ]] = $aRow [ 'ROU_TO_LAST_USER' ];
$oDataset -> next ();
}
break ;
case 'EVALUATE' :
$aFields [ 'GRID_EVALUATE_TYPE' ][ 'ROU_UID' ][ $aRow [ 'ROU_CASE' ]] = $aRow [ 'ROU_UID' ];
$aFields [ 'GRID_EVALUATE_TYPE' ][ 'ROU_NEXT_TASK' ][ $aRow [ 'ROU_CASE' ]] = $aRow [ 'ROU_NEXT_TASK' ];
$aFields [ 'GRID_EVALUATE_TYPE' ][ 'ROU_CONDITION' ][ $aRow [ 'ROU_CASE' ]] = $aRow [ 'ROU_CONDITION' ];
$aFields [ 'GRID_EVALUATE_TYPE' ][ 'ROU_TO_LAST_USER' ][ $aRow [ 'ROU_CASE' ]] = $aRow [ 'ROU_TO_LAST_USER' ];
while ( $aRow = $oDataset -> getRow ()) {
$aFields [ 'GRID_EVALUATE_TYPE' ][ 'ROU_UID' ][ $aRow [ 'ROU_CASE' ]] = $aRow [ 'ROU_UID' ];
$aFields [ 'GRID_EVALUATE_TYPE' ][ 'ROU_NEXT_TASK' ][ $aRow [ 'ROU_CASE' ]] = $aRow [ 'ROU_NEXT_TASK' ];
$aFields [ 'GRID_EVALUATE_TYPE' ][ 'ROU_CONDITION' ][ $aRow [ 'ROU_CASE' ]] = $aRow [ 'ROU_CONDITION' ];
$aFields [ 'GRID_EVALUATE_TYPE' ][ 'ROU_TO_LAST_USER' ][ $aRow [ 'ROU_CASE' ]] = $aRow [ 'ROU_TO_LAST_USER' ];
$oDataset -> next ();
}
break ;
case 'PARALLEL' :
$aFields [ 'GRID_PARALLEL_TYPE' ][ 'ROU_UID' ][ $aRow [ 'ROU_CASE' ]] = $aRow [ 'ROU_UID' ];
$aFields [ 'GRID_PARALLEL_TYPE' ][ 'ROU_NEXT_TASK' ][ $aRow [ 'ROU_CASE' ]] = $aRow [ 'ROU_NEXT_TASK' ];
while ( $aRow = $oDataset -> getRow ()) {
$aFields [ 'GRID_PARALLEL_TYPE' ][ 'ROU_UID' ][ $aRow [ 'ROU_CASE' ]] = $aRow [ 'ROU_UID' ];
$aFields [ 'GRID_PARALLEL_TYPE' ][ 'ROU_NEXT_TASK' ][ $aRow [ 'ROU_CASE' ]] = $aRow [ 'ROU_NEXT_TASK' ];
$oDataset -> next ();
}
break ;
case 'PARALLEL-BY-EVALUATION' :
$aFields [ 'GRID_PARALLEL_EVALUATION_TYPE' ][ 'ROU_UID' ][ $aRow [ 'ROU_CASE' ]] = $aRow [ 'ROU_UID' ];
$aFields [ 'GRID_PARALLEL_EVALUATION_TYPE' ][ 'ROU_NEXT_TASK' ][ $aRow [ 'ROU_CASE' ]] = $aRow [ 'ROU_NEXT_TASK' ];
$aFields [ 'GRID_PARALLEL_EVALUATION_TYPE' ][ 'ROU_CONDITION' ][ $aRow [ 'ROU_CASE' ]] = $aRow [ 'ROU_CONDITION' ];
while ( $aRow = $oDataset -> getRow ()) {
$aFields [ 'GRID_PARALLEL_EVALUATION_TYPE' ][ 'ROU_UID' ][ $aRow [ 'ROU_CASE' ]] = $aRow [ 'ROU_UID' ];
$aFields [ 'GRID_PARALLEL_EVALUATION_TYPE' ][ 'ROU_NEXT_TASK' ][ $aRow [ 'ROU_CASE' ]] = $aRow [ 'ROU_NEXT_TASK' ];
$aFields [ 'GRID_PARALLEL_EVALUATION_TYPE' ][ 'ROU_CONDITION' ][ $aRow [ 'ROU_CASE' ]] = $aRow [ 'ROU_CONDITION' ];
$oDataset -> next ();
}
break ;
case 'DISCRIMINATOR' :
$aFields [ 'GRID_DISCRIMINATOR_TYPE' ][ 'ROU_UID' ][ $aRow [ 'ROU_CASE' ]] = $aRow [ 'ROU_UID' ];
$aFields [ 'GRID_DISCRIMINATOR_TYPE' ][ 'ROU_NEXT_TASK' ][ $aRow [ 'ROU_CASE' ]] = $aRow [ 'ROU_NEXT_TASK' ];
$aFields [ 'GRID_DISCRIMINATOR_TYPE' ][ 'ROU_CONDITION' ][ $aRow [ 'ROU_CASE' ]] = $aRow [ 'ROU_CONDITION' ];
$aFields [ 'GRID_DISCRIMINATOR_TYPE' ][ 'ROU_OPTIONAL' ][ $aRow [ 'ROU_CASE' ]] = $aRow [ 'ROU_OPTIONAL' ];
while ( $aRow = $oDataset -> getRow ()) {
$aFields [ 'GRID_DISCRIMINATOR_TYPE' ][ 'ROU_UID' ][ $aRow [ 'ROU_CASE' ]] = $aRow [ 'ROU_UID' ];
$aFields [ 'GRID_DISCRIMINATOR_TYPE' ][ 'ROU_NEXT_TASK' ][ $aRow [ 'ROU_CASE' ]] = $aRow [ 'ROU_NEXT_TASK' ];
$aFields [ 'GRID_DISCRIMINATOR_TYPE' ][ 'ROU_CONDITION' ][ $aRow [ 'ROU_CASE' ]] = $aRow [ 'ROU_CONDITION' ];
$aFields [ 'GRID_DISCRIMINATOR_TYPE' ][ 'ROU_OPTIONAL' ][ $aRow [ 'ROU_CASE' ]] = $aRow [ 'ROU_OPTIONAL' ];
$oDataset -> next ();
}
break ;
}
} else {
2012-10-09 13:08:42 -04:00
2012-10-18 15:02:44 -04:00
}
}
switch ( $sType ) {
case 'SEQUENTIAL' :
case 'SEC-JOIN' :
$aFields [ 'ROU_NEXT_TASK' ] = $sNextTask ;
break ;
case 'SELECT' :
2013-03-04 09:29:59 -04:00
$iRow = ( isset ( $aFields [ 'GRID_SELECT_TYPE' ]) ? count ( $aFields [ 'GRID_SELECT_TYPE' ][ 'ROU_UID' ]) + 1 : 0 );
2012-10-18 15:02:44 -04:00
$aFields [ 'GRID_SELECT_TYPE' ][ 'ROU_UID' ][ $iRow ] = '' ;
$aFields [ 'GRID_SELECT_TYPE' ][ 'ROU_NEXT_TASK' ][ $iRow ] = $sNextTask ;
$aFields [ 'GRID_SELECT_TYPE' ][ 'ROU_CONDITION' ][ $iRow ] = '' ;
$aFields [ 'GRID_SELECT_TYPE' ][ 'ROU_TO_LAST_USER' ][ $iRow ] = '' ;
break ;
case 'EVALUATE' :
2013-03-04 09:29:59 -04:00
$iRow = ( isset ( $aFields [ 'GRID_PARALLEL_EVALUATION_TYPE' ]) ? count ( $aFields [ 'GRID_PARALLEL_EVALUATION_TYPE' ][ 'ROU_UID' ]) + 1 : 0 );
2012-10-18 15:02:44 -04:00
$aFields [ 'GRID_EVALUATE_TYPE' ][ 'ROU_UID' ][ $iRow ] = '' ;
$aFields [ 'GRID_EVALUATE_TYPE' ][ 'ROU_NEXT_TASK' ][ $iRow ] = $sNextTask ;
$aFields [ 'GRID_EVALUATE_TYPE' ][ 'ROU_CONDITION' ][ $iRow ] = '' ;
$aFields [ 'GRID_EVALUATE_TYPE' ][ 'ROU_TO_LAST_USER' ][ $iRow ] = '' ;
break ;
case 'PARALLEL' :
2013-03-04 09:29:59 -04:00
$iRow = ( isset ( $aFields [ 'GRID_PARALLEL_TYPE' ]) ? count ( $aFields [ 'GRID_PARALLEL_TYPE' ][ 'ROU_UID' ]) + 1 : 0 );
2012-10-18 15:02:44 -04:00
$aFields [ 'GRID_PARALLEL_TYPE' ][ 'ROU_UID' ][ $iRow ] = '' ;
$aFields [ 'GRID_PARALLEL_TYPE' ][ 'ROU_NEXT_TASK' ][ $iRow ] = $sNextTask ;
$aFields [ 'GRID_PARALLEL_TYPE' ][ 'ROU_CONDITION' ][ $iRow ] = '' ;
$aFields [ 'GRID_PARALLEL_TYPE' ][ 'ROU_TO_LAST_USER' ][ $iRow ] = '' ;
break ;
case 'PARALLEL-BY-EVALUATION' :
2013-03-04 09:29:59 -04:00
$iRow = ( isset ( $aFields [ 'GRID_PARALLEL_EVALUATION_TYPE' ]) ? count ( $aFields [ 'GRID_PARALLEL_EVALUATION_TYPE' ][ 'ROU_UID' ]) + 1 : 0 );
2012-10-18 15:02:44 -04:00
$aFields [ 'GRID_PARALLEL_EVALUATION_TYPE' ][ 'ROU_UID' ][ $iRow ] = '' ;
$aFields [ 'GRID_PARALLEL_EVALUATION_TYPE' ][ 'ROU_NEXT_TASK' ][ $iRow ] = $sNextTask ;
$aFields [ 'GRID_PARALLEL_EVALUATION_TYPE' ][ 'ROU_CONDITION' ][ $iRow ] = '' ;
$aFields [ 'GRID_PARALLEL_EVALUATION_TYPE' ][ 'ROU_TO_LAST_USER' ][ $iRow ] = '' ;
break ;
case 'DISCRIMINATOR' :
2013-03-04 09:29:59 -04:00
$iRow = ( isset ( $aFields [ 'GRID_DISCRIMINATOR_TYPE' ]) ? count ( $aFields [ 'GRID_DISCRIMINATOR_TYPE' ][ 'ROU_UID' ]) + 1 : 0 );
2012-10-18 15:02:44 -04:00
$aFields [ 'GRID_DISCRIMINATOR_TYPE' ][ 'ROU_UID' ][ $iRow ] = '' ;
$aFields [ 'GRID_DISCRIMINATOR_TYPE' ][ 'ROU_NEXT_TASK' ][ $iRow ] = $sNextTask ;
$aFields [ 'GRID_DISCRIMINATOR_TYPE' ][ 'ROU_CONDITION' ][ $iRow ] = '' ;
$aFields [ 'GRID_DISCRIMINATOR_TYPE' ][ 'ROU_TO_LAST_USER' ][ $iRow ] = '' ;
break ;
}
$aFields [ 'action' ] = 'savePattern' ;
$aFields [ 'LANG' ] = SYS_LANG ;
$aFields [ 'PROCESS' ] = $sProcessUID ;
$aFields [ 'TASK' ] = $sTaskUID ;
global $G_PUBLISH ;
$G_PUBLISH = new Publisher ();
2013-03-04 09:29:59 -04:00
$G_PUBLISH -> AddContent ( 'xmlform' , 'xmlform' , 'patterns/patterns_Current' , '' , $aFields , '../patterns/patterns_Ajax' );
G :: RenderPage ( 'publish' , 'raw' );
2012-10-18 15:02:44 -04:00
return true ;
} catch ( Exception $oError ) {
throw ( $oError );
2012-10-09 13:08:42 -04:00
}
2012-10-18 15:02:44 -04:00
}
2012-10-18 14:46:16 -04:00
2012-10-18 15:02:44 -04:00
/**
* getNumberOfRoutes
*
* @ param string $sProcessUID Default value empty
* @ param string $sTaskUID Default value empty
* @ param string $sNextTask Default value empty
* @ param string $sType Default value empty
* @ return intenger ( int ) $aRow [ 'ROUTE_NUMBER' ]
*/
2013-03-04 09:29:59 -04:00
public function getNumberOfRoutes ( $sProcessUID = '' , $sTaskUID = '' , $sNextTask = '' , $sType = '' )
2012-10-18 15:02:44 -04:00
{
try {
2013-03-04 09:29:59 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> addSelectColumn ( 'COUNT(*) AS ROUTE_NUMBER' );
$oCriteria -> add ( RoutePeer :: PRO_UID , $sProcessUID );
$oCriteria -> add ( RoutePeer :: TAS_UID , $sTaskUID );
$oCriteria -> add ( RoutePeer :: ROU_NEXT_TASK , $sNextTask );
$oCriteria -> add ( RoutePeer :: ROU_TYPE , $sType );
$oDataset = RoutePeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
$aRow = $oDataset -> getRow ();
return ( int ) $aRow [ 'ROUTE_NUMBER' ];
} catch ( Exception $oError ) {
throw ( $oError );
}
}
/**
* saveNewPattern
*
* @ param string $sProcessUID Default value empty
* @ param string $sTaskUID Default value empty
* @ param string $sNextTask Default value empty
* @ param string $sType Default value empty
* @ param boolean $sDelete
* @ return array void
*/
2013-03-04 09:29:59 -04:00
public function saveNewPattern ( $sProcessUID = '' , $sTaskUID = '' , $sNextTask = '' , $sType = '' , $sDelete = '' )
2012-10-18 15:02:44 -04:00
{
try {
2013-03-04 09:29:59 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> addSelectColumn ( 'COUNT(*) AS ROUTE_NUMBER' );
$oCriteria -> addSelectColumn ( 'GAT_UID AS GATEWAY_UID' );
$oCriteria -> add ( RoutePeer :: PRO_UID , $sProcessUID );
$oCriteria -> add ( RoutePeer :: TAS_UID , $sTaskUID );
$oCriteria -> add ( RoutePeer :: ROU_TYPE , $sType );
$oDataset = RoutePeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
$aRow = $oDataset -> getRow ();
$aFields [ 'PRO_UID' ] = $sProcessUID ;
$aFields [ 'TAS_UID' ] = $sTaskUID ;
$aFields [ 'ROU_NEXT_TASK' ] = $sNextTask ;
$aFields [ 'ROU_TYPE' ] = $sType ;
$aFields [ 'ROU_CASE' ] = ( int ) $aRow [ 'ROUTE_NUMBER' ] + 1 ;
$sGatewayUID = $aRow [ 'GATEWAY_UID' ];
if ( $sDelete && $sGatewayUID != '' ) {
$oGateway = new Gateway ();
2013-03-04 09:29:59 -04:00
$oGateway -> remove ( $sGatewayUID );
2012-10-18 15:02:44 -04:00
}
//Getting Gateway UID after saving gateway
//if($sType != 'SEQUENTIAL' && $sGatewayUID == '' && $sDelete == '1')
if ( $sType != 'SEQUENTIAL' ) {
$oProcessMap = new processMap ();
2013-03-04 09:29:59 -04:00
$sGatewayUID = $oProcessMap -> saveNewGateway ( $sProcessUID , $sTaskUID , $sNextTask );
2012-10-18 15:02:44 -04:00
}
2013-03-04 09:29:59 -04:00
$aFields [ 'GAT_UID' ] = ( isset ( $sGatewayUID )) ? $sGatewayUID : '' ;
2012-10-18 15:02:44 -04:00
$oRoute = new Route ();
2013-03-04 09:29:59 -04:00
$oRoute -> create ( $aFields );
2012-10-18 15:02:44 -04:00
} catch ( Exception $oError ) {
throw ( $oError );
}
}
/**
* saveNewGateway
*
* @ param string $sProcessUID Default value empty
* @ param string $sTaskUID Default value empty
* @ param string $sNextTask Default value empty
* @ param string $sType Default value empty ( Route Type )
* @ return string $sGatewayUID
*/
2013-03-04 09:29:59 -04:00
public function saveNewGateway ( $sProcessUID = '' , $sTaskUID = '' , $sNextTask = '' , $sType = '' )
2012-10-18 15:02:44 -04:00
{
try {
$oTask = new Task ();
2013-03-04 09:29:59 -04:00
$aTaskDetails = $oTask -> load ( $sTaskUID );
2012-10-18 15:02:44 -04:00
$aFields [ 'PRO_UID' ] = $sProcessUID ;
$aFields [ 'TAS_UID' ] = $sTaskUID ;
$aFields [ 'GAT_NEXT_TASK' ] = $sNextTask ;
$aFields [ 'GAT_X' ] = $aTaskDetails [ 'TAS_POSX' ] + $aTaskDetails [ 'TAS_WIDTH' ] / 2 ;
$aFields [ 'GAT_Y' ] = $aTaskDetails [ 'TAS_POSY' ] + $aTaskDetails [ 'TAS_HEIGHT' ] + 10 ;
switch ( $sType ) {
case 'PARALLEL' :
$aFields [ 'GAT_TYPE' ] = 'bpmnGatewayParallel' ;
break ;
case 'SEC-JOIN' :
$aFields [ 'GAT_TYPE' ] = 'bpmnGatewayParallel' ;
break ;
case 'EVALUATE' :
$aFields [ 'GAT_TYPE' ] = 'bpmnGatewayExclusiveData' ;
break ;
case 'PARALLEL-BY-EVALUATION' :
$aFields [ 'GAT_TYPE' ] = 'bpmnGatewayInclusive' ;
break ;
case 'SELECT' :
$aFields [ 'GAT_TYPE' ] = 'bpmnGatewayExclusiveData' ;
break ;
case 'DISCRIMINATOR' :
$aFields [ 'GAT_TYPE' ] = 'bpmnGatewayComplex' ;
break ;
}
$oGateway = new Gateway ();
2013-03-04 09:29:59 -04:00
$sGatewayUID = $oGateway -> create ( $aFields );
2012-10-18 15:02:44 -04:00
return $sGatewayUID ;
} catch ( Exception $oError ) {
throw ( $oError );
}
}
/*
2013-03-04 09:29:59 -04:00
* Delete a derivation rule
* @ param string $sTaskUID
* @ return boolean
*/
2012-10-09 11:24:11 -04:00
2013-03-04 09:29:59 -04:00
public function deleteDerivation ( $sTaskUID = '' )
2012-10-18 15:02:44 -04:00
{
try {
$oTask = new Task ();
2013-03-04 09:29:59 -04:00
$aFields = $oTask -> load ( $sTaskUID );
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> add ( RoutePeer :: TAS_UID , $sTaskUID );
RoutePeer :: doDelete ( $oCriteria );
2012-10-18 15:02:44 -04:00
return true ;
return true ;
} catch ( Exception $oError ) {
throw ( $oError );
}
}
/**
* getConditionProcessList
*
* @ return object $oCriteria
*/
2013-03-04 09:29:59 -04:00
public function getConditionProcessList ()
2012-10-18 15:02:44 -04:00
{
2013-03-04 09:29:59 -04:00
$aProcesses = array ();
$aProcesses [] = array ( 'PRO_UID' => 'char' , 'PRO_TITLE' => 'char' , 'PRO_DESCRIPTION' => 'char' , 'PRO_STATUS' => 'char' , 'PRO_CATEGORY' => 'char' , 'PRO_CATEGORY_LABEL' => 'char' );
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> addSelectColumn ( ProcessPeer :: PRO_UID );
$oCriteria -> add ( ProcessPeer :: PRO_STATUS , 'DISABLED' , Criteria :: NOT_EQUAL );
$oDataset = ProcessPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
$oProcess = new Process ();
while ( $aRow = $oDataset -> getRow ()) {
2013-03-04 09:29:59 -04:00
$aProcess = $oProcess -> load ( $aRow [ 'PRO_UID' ]);
$aProcesses [] = array ( 'PRO_UID' => $aProcess [ 'PRO_UID' ], 'PRO_TITLE' => $aProcess [ 'PRO_TITLE' ], 'PRO_DESCRIPTION' => $aProcess [ 'PRO_DESCRIPTION' ], 'PRO_STATUS' => ( $aProcess [ 'PRO_STATUS' ] == 'ACTIVE' ? G :: LoadTranslation ( 'ID_ACTIVE' ) : G :: LoadTranslation ( 'ID_INACTIVE' )), 'PRO_CATEGORY' => $aProcess [ 'PRO_CATEGORY' ], 'PRO_CATEGORY_LABEL' => $aProcess [ 'PRO_CATEGORY_LABEL' ]);
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
}
global $_DBArray ;
2013-03-04 09:29:59 -04:00
$_DBArray = ( isset ( $_SESSION [ '_DBArray' ]) ? $_SESSION [ '_DBArray' ] : '' );
2012-10-18 15:02:44 -04:00
$_DBArray [ 'processes' ] = $aProcesses ;
$_SESSION [ '_DBArray' ] = $_DBArray ;
2013-03-04 09:29:59 -04:00
G :: LoadClass ( 'ArrayPeer' );
$oCriteria = new Criteria ( 'dbarray' );
$oCriteria -> setDBArrayTable ( 'processes' );
2012-10-18 15:02:44 -04:00
return $oCriteria ;
}
/*
2013-03-04 09:29:59 -04:00
* Show the dynaforms for the supervisors
* @ param string $sProcessUID
* @ return boolean
*/
2012-10-09 11:24:11 -04:00
2013-03-04 09:29:59 -04:00
public function supervisorDynaforms ( $sProcessUID )
2012-10-18 15:02:44 -04:00
{
try {
global $G_PUBLISH ;
$G_PUBLISH = new Publisher ();
2013-03-04 09:29:59 -04:00
$G_PUBLISH -> AddContent ( 'propeltable' , 'paged-table' , 'dynaforms/dynaforms_Supervisor' , $this -> getSupervisorDynaformsCriteria ( $sProcessUID ), array ( 'PRO_UID' => $sProcessUID ));
G :: RenderPage ( 'publish' , 'raw' );
2012-10-18 15:02:44 -04:00
return true ;
} catch ( Exception $oError ) {
throw ( $oError );
}
}
/**
* supervisorInputs
*
* @ param string $sProcessUID
* @ return boolean true
* throw Exception $oError
*/
2013-03-04 09:29:59 -04:00
public function supervisorInputs ( $sProcessUID )
2012-10-18 15:02:44 -04:00
{
try {
global $G_PUBLISH ;
$G_PUBLISH = new Publisher ();
2013-03-04 09:29:59 -04:00
$G_PUBLISH -> AddContent ( 'propeltable' , 'paged-table' , 'inputdocs/inputdocs_Supervisor' , $this -> getSupervisorInputsCriteria ( $sProcessUID ), array ( 'PRO_UID' => $sProcessUID
));
G :: RenderPage ( 'publish' , 'raw' );
2012-10-18 15:02:44 -04:00
return true ;
} catch ( Exception $oError ) {
throw ( $oError );
}
}
/**
* webEntry
*
* @ param string $sProcessUID
* @ return boolean true
* throw Exception $oError
*/
2013-03-04 09:29:59 -04:00
public function webEntry ( $sProcessUID )
2012-10-18 15:02:44 -04:00
{
try {
global $G_PUBLISH ;
global $G_FORM ;
$G_PUBLISH = new Publisher ();
2010-12-02 23:34:41 +00:00
2013-03-04 09:29:59 -04:00
if ( G :: is_https ()) {
2012-10-18 15:02:44 -04:00
$http = 'https://' ;
2013-03-04 09:29:59 -04:00
} else {
2012-10-18 15:02:44 -04:00
$http = 'http://' ;
2013-03-04 09:29:59 -04:00
}
2010-12-02 23:34:41 +00:00
2012-10-18 15:02:44 -04:00
$link = $http . $_SERVER [ 'HTTP_HOST' ] . '/sys' . SYS_SYS . '/' . SYS_LANG . '/' . SYS_SKIN . '/' . $sProcessUID . '/' ;
2010-12-02 23:34:41 +00:00
2013-03-04 09:29:59 -04:00
$row = array ();
2012-10-18 15:02:44 -04:00
$c = 0 ;
2010-12-02 23:34:41 +00:00
2012-10-18 15:02:44 -04:00
/*
2013-03-04 09:29:59 -04:00
$oTask = new Task ( );
$TaskFields = $oTask -> kgetassigType ( $sProcessUID , $tas = '' );
*/
2012-10-18 15:02:44 -04:00
$TaskFields [ 'TAS_ASSIGN_TYPE' ] = '' ;
2013-03-04 09:29:59 -04:00
$row [] = array ( 'W_TITLE' => '' , 'W_DELETE' => '' , 'TAS_ASSIGN_TYPE' => $TaskFields [ 'TAS_ASSIGN_TYPE' ] );
2012-10-18 14:46:16 -04:00
2013-03-04 09:29:59 -04:00
if ( is_dir ( PATH_DATA . " sites " . PATH_SEP . SYS_SYS . PATH_SEP . " public " . PATH_SEP . $sProcessUID )) {
$dir = opendir ( PATH_DATA . " sites " . PATH_SEP . SYS_SYS . PATH_SEP . " public " . PATH_SEP . $sProcessUID );
while ( $archivo = readdir ( $dir )) {
//print $archivo." **** <hr>";
2012-10-18 15:02:44 -04:00
if ( $archivo != '.' ) {
if ( $archivo != '..' ) {
$one = 0 ;
$two = 0 ;
$alink = $link . $archivo ;
2013-03-04 09:29:59 -04:00
$one = count ( explode ( 'wsClient.php' , $archivo ));
$two = count ( explode ( 'Post.php' , $archivo ));
2012-10-18 15:02:44 -04:00
if ( $one == 1 && $two == 1 ) {
$arlink = " <a href=' " . $alink . " ' target='blank'><font color='#9999CC'> " . $alink . " </font></a> " ;
2013-03-04 09:29:59 -04:00
$linkdelete = sprintf ( " <a href='javascript:webEntry_delete( \" %s \" , \" %s \" , \" %s \" );'><font color='red'>delete</font></a> " , $alink , $archivo , $sProcessUID );
$row [] = array ( 'W_LINK' => $arlink , 'W_FILENAME' => $archivo , 'W_PRO_UID' => $sProcessUID );
2012-10-18 15:02:44 -04:00
}
}
}
}
2012-10-18 14:46:16 -04:00
}
2012-10-18 15:02:44 -04:00
global $_DBArray ;
2013-03-04 09:29:59 -04:00
$_DBArray = ( isset ( $_SESSION [ '_DBArray' ]) ? $_SESSION [ '_DBArray' ] : '' );
2012-10-18 15:02:44 -04:00
$_DBArray [ 'reports' ] = $row ;
$_SESSION [ '_DBArray' ] = $_DBArray ;
2013-03-04 09:29:59 -04:00
G :: LoadClass ( 'ArrayPeer' );
$oCriteria = new Criteria ( 'dbarray' );
$oCriteria -> setDBArrayTable ( 'reports' );
2012-10-18 15:02:44 -04:00
//if ($TaskFields['TAS_ASSIGN_TYPE'] == 'BALANCED') {
//$G_PUBLISH->AddContent('xmlform', 'xmlform', 'dynaforms/dynaforms_WebEntry', '', array('PRO_UID' => $sProcessUID, 'LANG' => SYS_LANG));
2013-03-04 09:29:59 -04:00
$G_PUBLISH -> AddContent ( 'propeltable' , 'paged-table' , 'dynaforms/dynaforms_WebEntryList' , $oCriteria , array ( 'PRO_UID' => $sProcessUID , 'LANG' => SYS_LANG ));
2012-10-18 15:02:44 -04:00
/* } else {
2013-03-04 09:29:59 -04:00
$aMessage [ 'MESSAGE' ] = G :: loadTranslation ( 'WEBEN_ONLY_BALANCED' );
$G_PUBLISH -> AddContent ( 'xmlform' , 'xmlform' , 'login/showMessage' , '' , $aMessage );
2012-10-09 11:24:11 -04:00
2013-03-04 09:29:59 -04:00
} */
G :: RenderPage ( 'publish' , 'raw' );
2012-10-18 15:02:44 -04:00
return true ;
} catch ( Exception $oError ) {
throw ( $oError );
}
}
2012-10-09 13:08:42 -04:00
2012-10-18 15:02:44 -04:00
/**
* webEntry_new
*
* @ param string $sProcessUID
* @ return boolean true
* throw Exception $oError
*/
2013-03-04 09:29:59 -04:00
public function webEntry_new ( $sProcessUID )
2012-10-18 15:02:44 -04:00
{
try {
global $G_PUBLISH ;
$G_PUBLISH = new Publisher ();
2013-03-04 09:29:59 -04:00
$G_PUBLISH -> AddContent ( 'xmlform' , 'xmlform' , 'dynaforms/dynaforms_WebEntry' , '' , array ( 'PRO_UID' => $sProcessUID , 'LANG' => SYS_LANG ));
G :: RenderPage ( 'publish' , 'raw' );
2012-10-18 15:02:44 -04:00
return true ;
} catch ( Exception $oError ) {
throw ( $oError );
}
}
/**
* webEntryByTask
*
* @ param string $sProcessUID
* @ return boolean true
* throw Exception $oError
*/
// function webEntryByTask($sProcessUID, $sEventUID) {
// $event = new Event();
// $event->load($sEventUID);
// $task_uid = $event->getEvnTasUidTo();
// $tasks = new Tasks();
// $tasks->get
// $link = $sProcessUID.'/'.str_replace ( ' ', '_', str_replace ( '/', '_',$task_uid));
//
// return $link;
// }
/*
2013-03-04 09:29:59 -04:00
* Return the supervisors dynaforms list criteria object
* @ param string $sProcessUID
* @ return object
*/
2010-12-02 23:34:41 +00:00
2013-03-04 09:29:59 -04:00
public function getSupervisorDynaformsCriteria ( $sProcessUID = '' )
2012-10-18 15:02:44 -04:00
{
$sDelimiter = DBAdapter :: getStringDelimiter ();
2013-03-04 09:29:59 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> addSelectColumn ( StepSupervisorPeer :: STEP_UID );
$oCriteria -> addSelectColumn ( StepSupervisorPeer :: PRO_UID );
$oCriteria -> addSelectColumn ( StepSupervisorPeer :: STEP_TYPE_OBJ );
$oCriteria -> addSelectColumn ( StepSupervisorPeer :: STEP_UID_OBJ );
$oCriteria -> addSelectColumn ( StepSupervisorPeer :: STEP_POSITION );
$oCriteria -> addAsColumn ( 'DYN_TITLE' , 'C.CON_VALUE' );
$oCriteria -> addAlias ( 'C' , 'CONTENT' );
$aConditions = array ();
$aConditions [] = array ( StepSupervisorPeer :: STEP_UID_OBJ , DynaformPeer :: DYN_UID );
$aConditions [] = array ( StepSupervisorPeer :: STEP_TYPE_OBJ , $sDelimiter . 'DYNAFORM' . $sDelimiter );
$oCriteria -> addJoinMC ( $aConditions , Criteria :: LEFT_JOIN );
$aConditions = array ();
$aConditions [] = array ( DynaformPeer :: DYN_UID , 'C.CON_ID' );
$aConditions [] = array ( 'C.CON_CATEGORY' , $sDelimiter . 'DYN_TITLE' . $sDelimiter );
$aConditions [] = array ( 'C.CON_LANG' , $sDelimiter . SYS_LANG . $sDelimiter );
$oCriteria -> addJoinMC ( $aConditions , Criteria :: LEFT_JOIN );
$oCriteria -> add ( StepSupervisorPeer :: PRO_UID , $sProcessUID );
$oCriteria -> add ( StepSupervisorPeer :: STEP_TYPE_OBJ , 'DYNAFORM' );
$oCriteria -> addAscendingOrderByColumn ( StepSupervisorPeer :: STEP_POSITION );
2012-10-18 15:02:44 -04:00
return $oCriteria ;
}
/*
2013-03-04 09:29:59 -04:00
* Return the supervisors dynaforms list criteria object
* @ param string $sProcessUID
* @ return object
*/
2012-10-09 11:24:11 -04:00
2013-03-04 09:29:59 -04:00
public function getSupervisorInputsCriteria ( $sProcessUID = '' )
2012-10-18 15:02:44 -04:00
{
$sDelimiter = DBAdapter :: getStringDelimiter ();
2013-03-04 09:29:59 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> addSelectColumn ( StepSupervisorPeer :: STEP_UID );
$oCriteria -> addSelectColumn ( StepSupervisorPeer :: PRO_UID );
$oCriteria -> addSelectColumn ( StepSupervisorPeer :: STEP_TYPE_OBJ );
$oCriteria -> addSelectColumn ( StepSupervisorPeer :: STEP_UID_OBJ );
$oCriteria -> addSelectColumn ( StepSupervisorPeer :: STEP_POSITION );
$oCriteria -> addAsColumn ( 'INP_DOC_TITLE' , 'C.CON_VALUE' );
$oCriteria -> addAlias ( 'C' , 'CONTENT' );
$aConditions = array ();
$aConditions [] = array ( StepSupervisorPeer :: STEP_UID_OBJ , InputDocumentPeer :: INP_DOC_UID );
$aConditions [] = array ( StepSupervisorPeer :: STEP_TYPE_OBJ , $sDelimiter . 'INPUT_DOCUMENT' . $sDelimiter );
$oCriteria -> addJoinMC ( $aConditions , Criteria :: LEFT_JOIN );
$aConditions = array ();
$aConditions [] = array ( InputDocumentPeer :: INP_DOC_UID , 'C.CON_ID' );
$aConditions [] = array ( 'C.CON_CATEGORY' , $sDelimiter . 'INP_DOC_TITLE' . $sDelimiter );
$aConditions [] = array ( 'C.CON_LANG' , $sDelimiter . SYS_LANG . $sDelimiter );
$oCriteria -> addJoinMC ( $aConditions , Criteria :: LEFT_JOIN );
$oCriteria -> add ( StepSupervisorPeer :: PRO_UID , $sProcessUID );
$oCriteria -> add ( StepSupervisorPeer :: STEP_TYPE_OBJ , 'INPUT_DOCUMENT' );
$oCriteria -> addAscendingOrderByColumn ( StepSupervisorPeer :: STEP_POSITION );
2012-10-18 15:02:44 -04:00
return $oCriteria ;
}
/*
2013-03-04 09:29:59 -04:00
* Show the available dynaforms for the supervisors
* @ param string $sProcessUID
* @ return boolean
*/
2012-10-09 11:24:11 -04:00
2013-03-04 09:29:59 -04:00
public function availableSupervisorDynaforms ( $sProcessUID )
2012-10-18 15:02:44 -04:00
{
try {
global $G_PUBLISH ;
$G_PUBLISH = new Publisher ();
2013-03-04 09:29:59 -04:00
$G_PUBLISH -> AddContent ( 'propeltable' , 'paged-table' , 'dynaforms/dynaforms_AvailableSupervisorDynaforms' , $this -> getAvailableSupervisorDynaformsCriteria ( $sProcessUID ), array ( 'PRO_UID' => $sProcessUID ));
G :: RenderPage ( 'publish' , 'raw' );
2012-10-18 15:02:44 -04:00
return true ;
} catch ( Exception $oError ) {
throw ( $oError );
}
2010-12-02 23:34:41 +00:00
}
2012-10-18 15:02:44 -04:00
/*
2013-03-04 09:29:59 -04:00
* Show the available input documents for the supervisors
* @ param string $sProcessUID
* @ return boolean
*/
2012-10-09 11:24:11 -04:00
2013-03-04 09:29:59 -04:00
public function availableSupervisorInputs ( $sProcessUID )
2012-10-18 15:02:44 -04:00
{
try {
global $G_PUBLISH ;
$G_PUBLISH = new Publisher ();
2013-03-04 09:29:59 -04:00
$G_PUBLISH -> AddContent ( 'propeltable' , 'paged-table' , 'inputdocs/inputdocs_AvailableSupervisorInputs' , $this -> getAvailableSupervisorInputsCriteria ( $sProcessUID ), array ( 'PRO_UID' => $sProcessUID ));
G :: RenderPage ( 'publish' , 'raw' );
2012-10-18 15:02:44 -04:00
return true ;
} catch ( Exception $oError ) {
throw ( $oError );
}
2012-10-05 13:00:58 -04:00
}
2010-12-02 23:34:41 +00:00
2012-10-18 15:02:44 -04:00
/*
2013-03-04 09:29:59 -04:00
* Return the available supervisors dynaforms list criteria object
* @ param string $sProcessUID
* @ return object
*/
2012-10-09 11:24:11 -04:00
2013-03-04 09:29:59 -04:00
public function getAvailableSupervisorDynaformsCriteria ( $sProcessUID = '' )
2012-10-18 15:02:44 -04:00
{
2013-03-04 09:29:59 -04:00
$oCriteria = $this -> getSupervisorDynaformsCriteria ( $sProcessUID );
$oDataset = StepSupervisorPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
2013-03-04 09:29:59 -04:00
$aUIDS = array ();
2012-10-18 15:02:44 -04:00
while ( $aRow = $oDataset -> getRow ()) {
$aUIDS [] = $aRow [ 'STEP_UID_OBJ' ];
$oDataset -> next ();
}
$sDelimiter = DBAdapter :: getStringDelimiter ();
2013-03-04 09:29:59 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> addSelectColumn ( DynaformPeer :: DYN_UID );
$oCriteria -> addSelectColumn ( DynaformPeer :: PRO_UID );
$oCriteria -> addAsColumn ( 'DYN_TITLE' , 'C.CON_VALUE' );
$oCriteria -> addAlias ( 'C' , 'CONTENT' );
$aConditions = array ();
$aConditions [] = array ( DynaformPeer :: DYN_UID , 'C.CON_ID' );
$aConditions [] = array ( 'C.CON_CATEGORY' , $sDelimiter . 'DYN_TITLE' . $sDelimiter );
$aConditions [] = array ( 'C.CON_LANG' , $sDelimiter . SYS_LANG . $sDelimiter );
$oCriteria -> addJoinMC ( $aConditions , Criteria :: LEFT_JOIN );
$oCriteria -> add ( DynaformPeer :: PRO_UID , $sProcessUID );
$oCriteria -> add ( DynaformPeer :: DYN_TYPE , 'xmlform' );
$oCriteria -> add ( DynaformPeer :: DYN_UID , $aUIDS , Criteria :: NOT_IN );
2012-10-18 15:02:44 -04:00
return $oCriteria ;
}
/*
2013-03-04 09:29:59 -04:00
* Return the available supervisors input documents list criteria object
* @ param string $sProcessUID
* @ return object
*/
2010-12-02 23:34:41 +00:00
2013-03-04 09:29:59 -04:00
public function getAvailableSupervisorInputsCriteria ( $sProcessUID = '' )
2012-10-18 15:02:44 -04:00
{
2013-03-04 09:29:59 -04:00
$oCriteria = $this -> getSupervisorInputsCriteria ( $sProcessUID );
$oDataset = StepSupervisorPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
2013-03-04 09:29:59 -04:00
$aUIDS = array ();
2012-10-18 15:02:44 -04:00
while ( $aRow = $oDataset -> getRow ()) {
$aUIDS [] = $aRow [ 'STEP_UID_OBJ' ];
$oDataset -> next ();
2012-10-18 14:46:16 -04:00
}
2012-10-18 15:02:44 -04:00
$sDelimiter = DBAdapter :: getStringDelimiter ();
2013-03-04 09:29:59 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> addSelectColumn ( InputDocumentPeer :: INP_DOC_UID );
$oCriteria -> addSelectColumn ( InputDocumentPeer :: PRO_UID );
$oCriteria -> addAsColumn ( 'INP_DOC_TITLE' , 'C.CON_VALUE' );
$oCriteria -> addAlias ( 'C' , 'CONTENT' );
$aConditions = array ();
$aConditions [] = array ( InputDocumentPeer :: INP_DOC_UID , 'C.CON_ID' );
$aConditions [] = array ( 'C.CON_CATEGORY' , $sDelimiter . 'INP_DOC_TITLE' . $sDelimiter );
$aConditions [] = array ( 'C.CON_LANG' , $sDelimiter . SYS_LANG . $sDelimiter );
$oCriteria -> addJoinMC ( $aConditions , Criteria :: LEFT_JOIN );
$oCriteria -> add ( InputDocumentPeer :: PRO_UID , $sProcessUID );
$oCriteria -> add ( InputDocumentPeer :: INP_DOC_UID , $aUIDS , Criteria :: NOT_IN );
2012-10-18 15:02:44 -04:00
return $oCriteria ;
}
/**
* assignSupervisorStep
*
* @ param string $sProcessUID
* @ param string $sObjType
* @ param string $sObjUID
* @ return void
*/
2013-03-04 09:29:59 -04:00
public function assignSupervisorStep ( $sProcessUID , $sObjType , $sObjUID )
2012-10-18 15:02:44 -04:00
{
$oStepSupervisor = new StepSupervisor ();
2013-03-04 09:29:59 -04:00
$oStepSupervisor -> create ( array ( 'PRO_UID' => $sProcessUID , 'STEP_TYPE_OBJ' => $sObjType , 'STEP_UID_OBJ' => $sObjUID , 'STEP_POSITION' => $oStepSupervisor -> getNextPosition ( $sProcessUID , $sObjType )));
2012-10-18 15:02:44 -04:00
}
/**
* removeSupervisorStep
*
* @ param string $sStepUID
* @ param string $sProcessUID
* @ param string $sObjType
* @ param string $sObjUID
* @ param integer $iPosition
* @ return void
*/
2013-03-04 09:29:59 -04:00
public function removeSupervisorStep ( $sStepUID , $sProcessUID , $sObjType , $sObjUID , $iPosition )
2012-10-18 15:02:44 -04:00
{
$oStepSupervisor = new StepSupervisor ();
2013-03-04 09:29:59 -04:00
$oStepSupervisor -> remove ( $sStepUID );
$oStepSupervisor -> reorderPositions ( $sProcessUID , $iPosition , $sObjType );
2012-10-18 15:02:44 -04:00
}
/**
* listProcessesUser
*
* @ param string $sProcessUID
* @ return object ( Criteria ) $oCriteria
*/
2013-03-04 09:29:59 -04:00
public function listProcessesUser ( $sProcessUID )
{
2012-10-18 15:02:44 -04:00
$aResp = array (
2013-03-04 09:29:59 -04:00
array (
'LA_PU_UID' => 'char' ,
'LA_PRO_UID' => 'char' ,
'LA_USR_UID' => 'char' ,
'LA_PU_NAME' => 'char' ,
'LA_PU_TYPE_NAME' => 'char' )
2012-10-18 15:02:44 -04:00
);
// Groups
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> addSelectColumn ( ProcessUserPeer :: PU_UID );
$oCriteria -> addSelectColumn ( ProcessUserPeer :: USR_UID );
$oCriteria -> addSelectColumn ( ProcessUserPeer :: PRO_UID );
$oCriteria -> addAsColumn ( 'GRP_TITLE' , ContentPeer :: CON_VALUE );
2012-10-22 13:55:35 -04:00
2012-10-18 15:02:44 -04:00
$aConditions [] = array ( ProcessUserPeer :: USR_UID , ContentPeer :: CON_ID );
2013-03-04 09:29:59 -04:00
$aConditions [] = array ( ContentPeer :: CON_CATEGORY , DBAdapter :: getStringDelimiter () . 'GRP_TITLE' . DBAdapter :: getStringDelimiter ());
$aConditions [] = array ( ContentPeer :: CON_LANG , DBAdapter :: getStringDelimiter () . SYS_LANG . DBAdapter :: getStringDelimiter ());
2012-10-18 15:02:44 -04:00
$oCriteria -> addJoinMC ( $aConditions , Criteria :: LEFT_JOIN );
$oCriteria -> add ( ProcessUserPeer :: PU_TYPE , 'GROUP_SUPERVISOR' );
$oCriteria -> add ( ProcessUserPeer :: PRO_UID , $sProcessUID );
$oCriteria -> addAscendingOrderByColumn ( ContentPeer :: CON_VALUE );
$oDataset = ProcessUserPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
$oDataset -> next ();
while ( $aRow = $oDataset -> getRow ()) {
2013-03-04 09:29:59 -04:00
$aResp [] = array (
'LA_PU_UID' => $aRow [ 'PU_UID' ],
'LA_PRO_UID' => $aRow [ 'PRO_UID' ],
'LA_USR_UID' => $aRow [ 'USR_UID' ],
'LA_PU_NAME' => $aRow [ 'GRP_TITLE' ],
'LA_PU_TYPE_NAME' => 'Group' );
$oDataset -> next ();
2012-10-18 14:46:16 -04:00
}
2012-10-18 15:02:44 -04:00
// Users
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> addSelectColumn ( ProcessUserPeer :: PU_UID );
$oCriteria -> addSelectColumn ( ProcessUserPeer :: USR_UID );
$oCriteria -> addSelectColumn ( ProcessUserPeer :: PRO_UID );
$oCriteria -> addSelectColumn ( UsersPeer :: USR_FIRSTNAME );
$oCriteria -> addSelectColumn ( UsersPeer :: USR_LASTNAME );
$oCriteria -> addSelectColumn ( UsersPeer :: USR_EMAIL );
$oCriteria -> addJoin ( ProcessUserPeer :: USR_UID , UsersPeer :: USR_UID , Criteria :: LEFT_JOIN );
$oCriteria -> add ( ProcessUserPeer :: PU_TYPE , 'SUPERVISOR' );
$oCriteria -> add ( ProcessUserPeer :: PRO_UID , $sProcessUID );
$oCriteria -> addAscendingOrderByColumn ( UsersPeer :: USR_FIRSTNAME );
$oDataset = ProcessUserPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
$oDataset -> next ();
while ( $aRow = $oDataset -> getRow ()) {
2013-03-04 09:29:59 -04:00
$aResp [] = array (
'LA_PU_UID' => $aRow [ 'PU_UID' ],
'LA_PRO_UID' => $aRow [ 'PRO_UID' ],
'LA_USR_UID' => $aRow [ 'USR_UID' ],
'LA_PU_NAME' => $aRow [ 'USR_FIRSTNAME' ] . ' ' . $aRow [ 'USR_LASTNAME' ],
'LA_PU_TYPE_NAME' => 'User' );
$oDataset -> next ();
2012-10-18 15:02:44 -04:00
}
global $_DBArray ;
2013-03-04 09:29:59 -04:00
$_DBArray [ 'data' ] = $aResp ;
2012-10-18 15:02:44 -04:00
$_SESSION [ '_DBArray' ] = $_DBArray ;
$LiCriteria = new Criteria ( 'dbarray' );
$LiCriteria -> setDBArrayTable ( 'data' );
return $LiCriteria ;
}
/**
* listNoProcessesUser
*
* @ param string $sProcessUID
* @ return object ( Criteria ) $oCriteria
*/
2013-03-04 09:29:59 -04:00
public function listNoProcessesUser ( $sProcessUID )
2012-10-18 15:10:36 -04:00
{
2012-10-18 15:02:44 -04:00
G :: LoadSystem ( 'rbac' );
$memcache = & PMmemcached :: getSingleton ( SYS_SYS );
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> addSelectColumn ( ProcessUserPeer :: USR_UID );
$oCriteria -> addSelectColumn ( ProcessUserPeer :: PU_TYPE );
$oCriteria -> add ( ProcessUserPeer :: PRO_UID , $sProcessUID );
$oCriteria -> add ( ProcessUserPeer :: PU_TYPE , '%SUPERVISOR%' , Criteria :: LIKE );
$oDataset = ProcessUserPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
$oDataset -> next ();
$aUIDS = array ();
$aGRUS = array ();
while ( $aRow = $oDataset -> getRow ()) {
2013-03-04 09:29:59 -04:00
if ( $aRow [ 'PU_TYPE' ] == 'SUPERVISOR' ) {
$aUIDS [] = $aRow [ 'USR_UID' ];
} else {
$aGRUS [] = $aRow [ 'USR_UID' ];
}
$oDataset -> next ();
2012-10-09 13:08:42 -04:00
}
2012-10-18 15:02:44 -04:00
$aRespLi = array (
2013-03-04 09:29:59 -04:00
array (
'UID' => 'char' ,
'USER_GROUP' => 'char' ,
'TYPE_UID' => 'char' ,
'PRO_UID' => 'char' )
2012-10-18 15:02:44 -04:00
);
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> addSelectColumn ( GroupwfPeer :: GRP_UID );
$oCriteria -> addAsColumn ( 'GRP_TITLE' , ContentPeer :: CON_VALUE );
2012-10-22 13:55:35 -04:00
$aConditions [] = array ( GroupwfPeer :: GRP_UID , ContentPeer :: CON_ID );
2013-03-04 09:29:59 -04:00
$aConditions [] = array ( ContentPeer :: CON_CATEGORY , DBAdapter :: getStringDelimiter () . 'GRP_TITLE' . DBAdapter :: getStringDelimiter ());
$aConditions [] = array ( ContentPeer :: CON_LANG , DBAdapter :: getStringDelimiter () . SYS_LANG . DBAdapter :: getStringDelimiter ());
2012-10-22 13:55:35 -04:00
2012-10-18 15:02:44 -04:00
$oCriteria -> addJoinMC ( $aConditions , Criteria :: LEFT_JOIN );
$oCriteria -> add ( GroupwfPeer :: GRP_UID , $aGRUS , Criteria :: NOT_IN );
$oCriteria -> addAscendingOrderByColumn ( ContentPeer :: CON_VALUE );
$oDataset = GroupwfPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
$oDataset -> next ();
while ( $aRow = $oDataset -> getRow ()) {
2013-03-04 09:29:59 -04:00
$aRespLi [] = array ( 'UID' => $aRow [ 'GRP_UID' ],
'USER_GROUP' => $aRow [ 'GRP_TITLE' ],
'TYPE_UID' => 'Group' ,
'PRO_UID' => $sProcessUID );
$oDataset -> next ();
2012-10-18 15:02:44 -04:00
}
2013-03-04 09:29:59 -04:00
$sDelimiter = DBAdapter :: getStringDelimiter ();
2012-10-18 15:02:44 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> addSelectColumn ( UsersPeer :: USR_UID );
$oCriteria -> add ( UsersPeer :: USR_UID , $aUIDS , Criteria :: NOT_IN );
$oDataset = UsersPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
$oDataset -> next ();
$aUIDS = array ();
2013-03-04 09:29:59 -04:00
$oRBAC = RBAC :: getSingleton ();
2012-10-18 15:02:44 -04:00
while ( $aRow = $oDataset -> getRow ()) {
2013-03-04 09:29:59 -04:00
$memKey = 'rbacSession' . session_id ();
if (( $oRBAC -> aUserInfo = $memcache -> get ( $memKey )) === false ) {
$oRBAC -> loadUserRolePermission ( $oRBAC -> sSystem , $aRow [ 'USR_UID' ]);
$memcache -> set ( $memKey , $oRBAC -> aUserInfo , PMmemcached :: EIGHT_HOURS );
}
$aPermissions = $oRBAC -> aUserInfo [ $oRBAC -> sSystem ] [ 'PERMISSIONS' ];
$bInclude = false ;
foreach ( $aPermissions as $aPermission ) {
if ( $aPermission [ 'PER_CODE' ] == 'PM_SUPERVISOR' ) {
$bInclude = true ;
}
}
if ( $bInclude ) {
$aUIDS [] = $aRow [ 'USR_UID' ];
}
$oDataset -> next ();
2012-10-18 15:02:44 -04:00
}
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> addSelectColumn ( UsersPeer :: USR_UID );
$oCriteria -> addSelectColumn ( UsersPeer :: USR_FIRSTNAME );
$oCriteria -> addSelectColumn ( UsersPeer :: USR_LASTNAME );
$oCriteria -> add ( UsersPeer :: USR_UID , $aUIDS , Criteria :: IN );
$oCriteria -> addAscendingOrderByColumn ( UsersPeer :: USR_FIRSTNAME );
$oDataset = UsersPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
$oDataset -> next ();
while ( $aRow = $oDataset -> getRow ()) {
2013-03-04 09:29:59 -04:00
$aRespLi [] = array ( 'UID' => $aRow [ 'USR_UID' ],
'USER_GROUP' => $aRow [ 'USR_FIRSTNAME' ] . ' ' . $aRow [ 'USR_LASTNAME' ],
'TYPE_UID' => 'User' ,
'PRO_UID' => $sProcessUID );
$oDataset -> next ();
2012-10-18 14:46:16 -04:00
}
2012-10-18 15:02:44 -04:00
global $_DBArray ;
2013-03-04 09:29:59 -04:00
$_DBArray [ 'data' ] = $aRespLi ;
2012-10-18 15:02:44 -04:00
$_SESSION [ '_DBArray' ] = $_DBArray ;
$LsCriteria = new Criteria ( 'dbarray' );
$LsCriteria -> setDBArrayTable ( 'data' );
return $LsCriteria ;
}
/**
* assignProcessUser
*
* @ param string $sProcessUID
* @ param string $sUsrUID
* @ return void
*/
2012-10-18 15:10:36 -04:00
public function assignProcessUser ( $sProcessUID , $sUsrUID , $sTypeUID )
{
$oProcessUser = new ProcessUser ( );
$puType = 'SUPERVISOR' ;
if ( $sTypeUID == 'Group' ) {
$puType = 'GROUP_SUPERVISOR' ;
}
2013-03-04 09:29:59 -04:00
$oProcessUser -> create ( array ( 'PU_UID' => G :: generateUniqueID (), 'PRO_UID' => $sProcessUID , 'USR_UID' => $sUsrUID , 'PU_TYPE' => $puType ));
2012-10-18 15:02:44 -04:00
}
/**
* removeProcessUser
*
* @ param string $sPUUID
* @ return void
*/
2013-03-04 09:29:59 -04:00
public function removeProcessUser ( $sPUUID )
2012-10-18 15:02:44 -04:00
{
$oProcessUser = new ProcessUser ();
2013-03-04 09:29:59 -04:00
$oProcessUser -> remove ( $sPUUID );
2012-10-18 15:02:44 -04:00
}
/**
* getObjectsPermissionsCriteria
*
* @ param string $sProcessUID
* @ return object ( Criteria ) $oCriteria
*/
2013-03-04 09:29:59 -04:00
public function getObjectsPermissionsCriteria ( $sProcessUID )
2012-10-18 15:02:44 -04:00
{
2013-03-04 09:29:59 -04:00
G :: LoadClass ( 'case' );
2012-10-18 15:02:44 -04:00
Cases :: verifyTable ();
2013-03-04 09:29:59 -04:00
$aObjectsPermissions = array ();
$aObjectsPermissions [] = array ( 'OP_UID' => 'char' , 'TASK_TARGET' => 'char' , 'GROUP_USER' => 'char' , 'TASK_SOURCE' => 'char' , 'OBJECT_TYPE' => 'char' , 'OBJECT' => 'char' , 'PARTICIPATED' => 'char' , 'ACTION' => 'char' , 'OP_CASE_STATUS' => 'char' );
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> addSelectColumn ( ObjectPermissionPeer :: OP_UID );
$oCriteria -> addSelectColumn ( ObjectPermissionPeer :: TAS_UID );
$oCriteria -> addSelectColumn ( ObjectPermissionPeer :: USR_UID );
$oCriteria -> addSelectColumn ( ObjectPermissionPeer :: OP_USER_RELATION );
$oCriteria -> addSelectColumn ( ObjectPermissionPeer :: OP_TASK_SOURCE );
$oCriteria -> addSelectColumn ( ObjectPermissionPeer :: OP_PARTICIPATE );
$oCriteria -> addSelectColumn ( ObjectPermissionPeer :: OP_OBJ_TYPE );
$oCriteria -> addSelectColumn ( ObjectPermissionPeer :: OP_OBJ_UID );
$oCriteria -> addSelectColumn ( ObjectPermissionPeer :: OP_ACTION );
$oCriteria -> addSelectColumn ( ObjectPermissionPeer :: OP_CASE_STATUS );
$oCriteria -> add ( ObjectPermissionPeer :: PRO_UID , $sProcessUID );
$oDataset = ObjectPermissionPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
while ( $aRow = $oDataset -> getRow ()) {
//Obtain task target
if (( $aRow [ 'TAS_UID' ] != '' ) && ( $aRow [ 'TAS_UID' ] != '0' )) {
try {
$oTask = new Task ();
2013-03-04 09:29:59 -04:00
$aFields = $oTask -> load ( $aRow [ 'TAS_UID' ]);
2012-10-18 15:02:44 -04:00
$sTaskTarget = $aFields [ 'TAS_TITLE' ];
} catch ( Exception $oError ) {
$sTaskTarget = 'All Tasks' ;
}
} else {
2013-03-04 09:29:59 -04:00
$sTaskTarget = G :: LoadTranslation ( 'ID_ANY_TASK' );
2012-10-18 15:02:44 -04:00
}
//Obtain user or group
if ( $aRow [ 'OP_USER_RELATION' ] == 1 ) {
$oUser = new Users ();
2013-03-04 09:29:59 -04:00
$aFields = $oUser -> load ( $aRow [ 'USR_UID' ]);
2012-10-18 15:02:44 -04:00
$sUserGroup = $aFields [ 'USR_FIRSTNAME' ] . ' ' . $aFields [ 'USR_LASTNAME' ] . ' (' . $aFields [ 'USR_USERNAME' ] . ')' ;
} else {
$oGroup = new Groupwf ();
if ( $aRow [ 'USR_UID' ] != '' ) {
try {
2013-03-04 09:29:59 -04:00
$aFields = $oGroup -> load ( $aRow [ 'USR_UID' ]);
2012-10-18 15:02:44 -04:00
$sUserGroup = $aFields [ 'GRP_TITLE' ];
} catch ( Exception $oError ) {
$sUserGroup = '(GROUP DELETED)' ;
}
} else {
2013-03-04 09:29:59 -04:00
$sUserGroup = G :: LoadTranslation ( 'ID_ANY' );
2012-10-18 15:02:44 -04:00
}
}
//Obtain task source
if (( $aRow [ 'OP_TASK_SOURCE' ] != '' ) && ( $aRow [ 'OP_TASK_SOURCE' ] != '0' )) {
try {
$oTask = new Task ();
2013-03-04 09:29:59 -04:00
$aFields = $oTask -> load ( $aRow [ 'OP_TASK_SOURCE' ]);
2012-10-18 15:02:44 -04:00
$sTaskSource = $aFields [ 'TAS_TITLE' ];
} catch ( Exception $oError ) {
$sTaskSource = 'All Tasks' ;
}
} else {
2013-03-04 09:29:59 -04:00
$sTaskSource = G :: LoadTranslation ( 'ID_ANY_TASK' );
2012-10-18 15:02:44 -04:00
}
//Obtain object and type
switch ( $aRow [ 'OP_OBJ_TYPE' ]) {
case 'ALL' :
2013-03-04 09:29:59 -04:00
$sObjectType = G :: LoadTranslation ( 'ID_ALL' );
$sObject = G :: LoadTranslation ( 'ID_ALL' );
2012-10-18 15:02:44 -04:00
break ;
case 'ANY' : //For backward compatibility (some process with ANY instead of ALL
2013-03-04 09:29:59 -04:00
$sObjectType = G :: LoadTranslation ( 'ID_ALL' );
$sObject = G :: LoadTranslation ( 'ID_ALL' );
2012-10-18 15:02:44 -04:00
break ;
/* case 'ANY_DYNAFORM' :
2013-03-04 09:29:59 -04:00
$sObjectType = G :: LoadTranslation ( 'ID_ANY_DYNAFORM' );
$sObject = G :: LoadTranslation ( 'ID_ALL' );
break ;
case 'ANY_INPUT' :
$sObjectType = G :: LoadTranslation ( 'ID_ANY_INPUT' );
$sObject = G :: LoadTranslation ( 'ID_ALL' );
break ;
case 'ANY_OUTPUT' :
$sObjectType = G :: LoadTranslation ( 'ID_ANY_OUTPUT' );
$sObject = G :: LoadTranslation ( 'ID_ALL' );
break ; */
2012-10-18 15:02:44 -04:00
case 'DYNAFORM' :
2013-03-04 09:29:59 -04:00
$sObjectType = G :: LoadTranslation ( 'ID_DYNAFORM' );
2012-10-18 15:02:44 -04:00
if (( $aRow [ 'OP_OBJ_UID' ] != '' ) && ( $aRow [ 'OP_OBJ_UID' ] != '0' )) {
$oDynaform = new Dynaform ();
2013-03-04 09:29:59 -04:00
$aFields = $oDynaform -> load ( $aRow [ 'OP_OBJ_UID' ]);
2012-10-18 15:02:44 -04:00
$sObject = $aFields [ 'DYN_TITLE' ];
} else {
2013-03-04 09:29:59 -04:00
$sObject = G :: LoadTranslation ( 'ID_ALL' );
2012-10-18 15:02:44 -04:00
}
break ;
case 'INPUT' :
2013-03-04 09:29:59 -04:00
$sObjectType = G :: LoadTranslation ( 'ID_INPUT_DOCUMENT' );
2012-10-18 15:02:44 -04:00
if (( $aRow [ 'OP_OBJ_UID' ] != '' ) && ( $aRow [ 'OP_OBJ_UID' ] != '0' )) {
$oInputDocument = new InputDocument ();
2013-03-04 09:29:59 -04:00
$aFields = $oInputDocument -> load ( $aRow [ 'OP_OBJ_UID' ]);
2012-10-18 15:02:44 -04:00
$sObject = $aFields [ 'INP_DOC_TITLE' ];
} else {
2013-03-04 09:29:59 -04:00
$sObject = G :: LoadTranslation ( 'ID_ALL' );
2012-10-18 15:02:44 -04:00
}
break ;
case 'OUTPUT' :
2013-03-04 09:29:59 -04:00
$sObjectType = G :: LoadTranslation ( 'ID_OUTPUT_DOCUMENT' );
2012-10-18 15:02:44 -04:00
if (( $aRow [ 'OP_OBJ_UID' ] != '' ) && ( $aRow [ 'OP_OBJ_UID' ] != '0' )) {
$oOutputDocument = new OutputDocument ();
2013-03-04 09:29:59 -04:00
$aFields = $oOutputDocument -> load ( $aRow [ 'OP_OBJ_UID' ]);
2012-10-18 15:02:44 -04:00
$sObject = $aFields [ 'OUT_DOC_TITLE' ];
} else {
2013-03-04 09:29:59 -04:00
$sObject = G :: LoadTranslation ( 'ID_ALL' );
2012-10-18 15:02:44 -04:00
}
break ;
2013-01-04 17:08:59 -04:00
case 'CASES_NOTES' :
2013-03-04 09:29:59 -04:00
$sObjectType = G :: LoadTranslation ( 'ID_CASES_NOTES' );
2013-01-04 17:08:59 -04:00
$sObject = 'N/A' ;
break ;
2013-04-15 15:49:27 -04:00
case 'MSGS_HISTORY' :
2013-04-17 12:08:47 -04:00
$sObjectType = G :: LoadTranslation ( 'MSGS_HISTORY' );
2013-04-15 15:49:27 -04:00
$sObject = G :: LoadTranslation ( 'ID_ALL' );
break ;
2012-10-18 15:02:44 -04:00
default :
2013-03-04 09:29:59 -04:00
$sObjectType = G :: LoadTranslation ( 'ID_ALL' );
$sObject = G :: LoadTranslation ( 'ID_ALL' );
2012-10-18 15:02:44 -04:00
break ;
}
//Participated
if ( $aRow [ 'OP_PARTICIPATE' ] == 0 ) {
2013-03-04 09:29:59 -04:00
$sParticipated = G :: LoadTranslation ( 'ID_NO' );
2012-10-18 15:02:44 -04:00
} else {
2013-03-04 09:29:59 -04:00
$sParticipated = G :: LoadTranslation ( 'ID_YES' );
2012-10-18 15:02:44 -04:00
}
//Obtain action (permission)
2013-03-04 09:29:59 -04:00
$sAction = G :: LoadTranslation ( 'ID_' . $aRow [ 'OP_ACTION' ]);
2012-10-18 15:02:44 -04:00
//Add to array
2013-04-15 15:49:27 -04:00
$aObjectsPermissions [] = array ( 'OP_UID' => $aRow [ 'OP_UID' ], 'TASK_TARGET' => $sTaskTarget , 'GROUP_USER' => $sUserGroup , 'TASK_SOURCE' => $sTaskSource , 'OBJECT_TYPE' => $sObjectType , 'OBJECT' => $sObject , 'PARTICIPATED' => $sParticipated , 'ACTION' => $sAction , 'OP_CASE_STATUS' => $aRow [ 'OP_CASE_STATUS' ]);
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
2012-10-18 14:46:16 -04:00
}
2012-10-18 15:02:44 -04:00
global $_DBArray ;
2013-03-04 09:29:59 -04:00
$_DBArray = ( isset ( $_SESSION [ '_DBArray' ]) ? $_SESSION [ '_DBArray' ] : '' );
2012-10-18 15:02:44 -04:00
$_DBArray [ 'objectsPermissions' ] = $aObjectsPermissions ;
$_SESSION [ '_DBArray' ] = $_DBArray ;
2013-03-04 09:29:59 -04:00
G :: LoadClass ( 'ArrayPeer' );
$oCriteria = new Criteria ( 'dbarray' );
$oCriteria -> setDBArrayTable ( 'objectsPermissions' );
2012-10-18 15:02:44 -04:00
return $oCriteria ;
}
//new functions
2013-03-04 09:29:59 -04:00
public function getAllObjectPermissionCount ()
2012-10-18 15:02:44 -04:00
{
$c = $this -> tmpCriteria ;
$c -> clearSelectColumns ();
2013-03-04 09:29:59 -04:00
$c -> addSelectColumn ( 'COUNT(*)' );
$oDataset = ObjectPermissionPeer :: doSelectRS ( $c );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
$aRow = $oDataset -> getRow ();
2013-03-04 09:29:59 -04:00
if ( is_array ( $aRow )) {
2012-10-18 15:02:44 -04:00
return $aRow [ 0 ];
2013-03-04 09:29:59 -04:00
} else {
2012-10-18 15:02:44 -04:00
return 0 ;
2013-03-04 09:29:59 -04:00
}
2012-10-18 15:02:44 -04:00
}
2013-03-04 09:29:59 -04:00
public function getExtObjectsPermissions ( $start , $limit , $sProcessUID )
2012-10-18 15:02:44 -04:00
{
2013-03-04 09:29:59 -04:00
G :: LoadClass ( 'case' );
2012-10-18 15:02:44 -04:00
Cases :: verifyTable ();
2013-03-04 09:29:59 -04:00
$aObjectsPermissions = array ();
2012-10-18 15:02:44 -04:00
//$aObjectsPermissions [] = array('OP_UID' => 'char', 'TASK_TARGET' => 'char', 'GROUP_USER' => 'char', 'TASK_SOURCE' => 'char', 'OBJECT_TYPE' => 'char', 'OBJECT' => 'char', 'PARTICIPATED' => 'char', 'ACTION' => 'char', 'OP_CASE_STATUS' => 'char');
2013-03-04 09:29:59 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> addSelectColumn ( ObjectPermissionPeer :: OP_UID );
$oCriteria -> addSelectColumn ( ObjectPermissionPeer :: TAS_UID );
$oCriteria -> addSelectColumn ( ObjectPermissionPeer :: USR_UID );
$oCriteria -> addSelectColumn ( ObjectPermissionPeer :: OP_USER_RELATION );
$oCriteria -> addSelectColumn ( ObjectPermissionPeer :: OP_TASK_SOURCE );
$oCriteria -> addSelectColumn ( ObjectPermissionPeer :: OP_PARTICIPATE );
$oCriteria -> addSelectColumn ( ObjectPermissionPeer :: OP_OBJ_TYPE );
$oCriteria -> addSelectColumn ( ObjectPermissionPeer :: OP_OBJ_UID );
$oCriteria -> addSelectColumn ( ObjectPermissionPeer :: OP_ACTION );
$oCriteria -> addSelectColumn ( ObjectPermissionPeer :: OP_CASE_STATUS );
$oCriteria -> add ( ObjectPermissionPeer :: PRO_UID , $sProcessUID );
2012-10-18 15:02:44 -04:00
$this -> tmpCriteria = clone $oCriteria ;
2013-03-04 09:29:59 -04:00
if ( $start != '' ) {
$oCriteria -> setOffset ( $start );
}
if ( $limit != '' ) {
$oCriteria -> setLimit ( $limit );
}
2012-10-18 15:02:44 -04:00
2013-03-04 09:29:59 -04:00
$oDataset = ObjectPermissionPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
while ( $aRow = $oDataset -> getRow ()) {
//Obtain task target
if (( $aRow [ 'TAS_UID' ] != '' ) && ( $aRow [ 'TAS_UID' ] != '0' )) {
try {
$oTask = new Task ();
2013-03-04 09:29:59 -04:00
$aFields = $oTask -> load ( $aRow [ 'TAS_UID' ]);
2012-10-18 15:02:44 -04:00
$sTaskTarget = $aFields [ 'TAS_TITLE' ];
} catch ( Exception $oError ) {
$sTaskTarget = 'All Tasks' ;
}
} else {
2013-03-04 09:29:59 -04:00
$sTaskTarget = G :: LoadTranslation ( 'ID_ANY_TASK' );
2012-10-18 15:02:44 -04:00
}
//Obtain user or group
if ( $aRow [ 'OP_USER_RELATION' ] == 1 ) {
$oUser = new Users ();
2013-03-04 09:29:59 -04:00
$aFields = $oUser -> load ( $aRow [ 'USR_UID' ]);
2012-10-18 15:02:44 -04:00
$sUserGroup = $aFields [ 'USR_FIRSTNAME' ] . ' ' . $aFields [ 'USR_LASTNAME' ] . ' (' . $aFields [ 'USR_USERNAME' ] . ')' ;
} else {
$oGroup = new Groupwf ();
if ( $aRow [ 'USR_UID' ] != '' ) {
try {
2013-03-04 09:29:59 -04:00
$aFields = $oGroup -> load ( $aRow [ 'USR_UID' ]);
2012-10-18 15:02:44 -04:00
$sUserGroup = $aFields [ 'GRP_TITLE' ];
} catch ( Exception $oError ) {
$sUserGroup = '(GROUP DELETED)' ;
}
} else {
2013-03-04 09:29:59 -04:00
$sUserGroup = G :: LoadTranslation ( 'ID_ANY' );
2012-10-18 15:02:44 -04:00
}
}
//Obtain task source
if (( $aRow [ 'OP_TASK_SOURCE' ] != '' ) && ( $aRow [ 'OP_TASK_SOURCE' ] != '0' )) {
try {
$oTask = new Task ();
2013-03-04 09:29:59 -04:00
$aFields = $oTask -> load ( $aRow [ 'OP_TASK_SOURCE' ]);
2012-10-18 15:02:44 -04:00
$sTaskSource = $aFields [ 'TAS_TITLE' ];
} catch ( Exception $oError ) {
$sTaskSource = 'All Tasks' ;
}
} else {
2013-03-04 09:29:59 -04:00
$sTaskSource = G :: LoadTranslation ( 'ID_ANY_TASK' );
2012-10-18 15:02:44 -04:00
}
//Obtain object and type
switch ( $aRow [ 'OP_OBJ_TYPE' ]) {
case 'ALL' :
2013-03-04 09:29:59 -04:00
$sObjectType = G :: LoadTranslation ( 'ID_ALL' );
$sObject = G :: LoadTranslation ( 'ID_ALL' );
2012-10-18 15:02:44 -04:00
break ;
case 'DYNAFORM' :
2013-03-04 09:29:59 -04:00
$sObjectType = G :: LoadTranslation ( 'ID_DYNAFORM' );
2012-10-18 15:02:44 -04:00
if (( $aRow [ 'OP_OBJ_UID' ] != '' ) && ( $aRow [ 'OP_OBJ_UID' ] != '0' )) {
$oDynaform = new Dynaform ();
2013-03-04 09:29:59 -04:00
$aFields = $oDynaform -> load ( $aRow [ 'OP_OBJ_UID' ]);
2012-10-18 15:02:44 -04:00
$sObject = $aFields [ 'DYN_TITLE' ];
} else {
2013-03-04 09:29:59 -04:00
$sObject = G :: LoadTranslation ( 'ID_ALL' );
2012-10-18 15:02:44 -04:00
}
break ;
case 'INPUT' :
2013-03-04 09:29:59 -04:00
$sObjectType = G :: LoadTranslation ( 'ID_INPUT_DOCUMENT' );
2012-10-18 15:02:44 -04:00
if (( $aRow [ 'OP_OBJ_UID' ] != '' ) && ( $aRow [ 'OP_OBJ_UID' ] != '0' )) {
$oInputDocument = new InputDocument ();
2013-03-04 09:29:59 -04:00
$aFields = $oInputDocument -> load ( $aRow [ 'OP_OBJ_UID' ]);
2012-10-18 15:02:44 -04:00
$sObject = $aFields [ 'INP_DOC_TITLE' ];
} else {
2013-03-04 09:29:59 -04:00
$sObject = G :: LoadTranslation ( 'ID_ALL' );
2012-10-18 15:02:44 -04:00
}
break ;
case 'OUTPUT' :
2013-03-04 09:29:59 -04:00
$sObjectType = G :: LoadTranslation ( 'ID_OUTPUT_DOCUMENT' );
2012-10-18 15:02:44 -04:00
if (( $aRow [ 'OP_OBJ_UID' ] != '' ) && ( $aRow [ 'OP_OBJ_UID' ] != '0' )) {
$oOutputDocument = new OutputDocument ();
2013-03-04 09:29:59 -04:00
$aFields = $oOutputDocument -> load ( $aRow [ 'OP_OBJ_UID' ]);
2012-10-18 15:02:44 -04:00
$sObject = $aFields [ 'OUT_DOC_TITLE' ];
} else {
2013-03-04 09:29:59 -04:00
$sObject = G :: LoadTranslation ( 'ID_ALL' );
2012-10-18 15:02:44 -04:00
}
break ;
}
//Participated
if ( $aRow [ 'OP_PARTICIPATE' ] == 0 ) {
2013-03-04 09:29:59 -04:00
$sParticipated = G :: LoadTranslation ( 'ID_NO' );
2012-10-18 15:02:44 -04:00
} else {
2013-03-04 09:29:59 -04:00
$sParticipated = G :: LoadTranslation ( 'ID_YES' );
2012-10-18 15:02:44 -04:00
}
//Obtain action (permission)
2013-03-04 09:29:59 -04:00
$sAction = G :: LoadTranslation ( 'ID_' . $aRow [ 'OP_ACTION' ]);
2012-10-18 15:02:44 -04:00
//Add to array
2013-03-04 09:29:59 -04:00
$aObjectsPermissions [] = array ( 'OP_UID' => $aRow [ 'OP_UID' ], 'TASK_TARGET' => $sTaskTarget , 'GROUP_USER' => $sUserGroup , 'TASK_SOURCE' => $sTaskSource , 'OBJECT_TYPE' => $sObjectType , 'OBJECT' => $sObject , 'PARTICIPATED' => $sParticipated , 'ACTION' => $sAction , 'OP_CASE_STATUS' => $aRow [ 'OP_CASE_STATUS' ]);
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
2012-10-09 13:08:42 -04:00
}
2012-10-18 15:02:44 -04:00
return $aObjectsPermissions ;
}
/**
* objectsPermissionsList
*
* @ param string $sProcessUID
* @ return boolean true
*/
2013-03-04 09:29:59 -04:00
public function objectsPermissionsList ( $sProcessUID )
2012-10-18 15:02:44 -04:00
{
global $G_PUBLISH ;
$G_PUBLISH = new Publisher ();
2013-03-04 09:29:59 -04:00
$G_PUBLISH -> AddContent ( 'propeltable' , 'paged-table' , 'processes/processes_ObjectsPermissionsList' , $this -> getObjectsPermissionsCriteria ( $sProcessUID ), array ( 'PRO_UID' => $sProcessUID ));
G :: RenderPage ( 'publish' , 'raw' );
2012-10-18 15:02:44 -04:00
return true ;
}
/**
* newObjectPermission
*
* @ param string $sProcessUID
* @ return boolean true
*/
2013-03-04 09:29:59 -04:00
public function newObjectPermission ( $sProcessUID )
2012-10-18 15:02:44 -04:00
{
2013-03-04 09:29:59 -04:00
$usersGroups = '<select pm:dependent="0" pm:label="' . G :: LoadTranslation ( 'ID_GROUP_USERS' ) . '" name="form[GROUP_USER]" id="form[GROUP_USER]" class="module_app_input___gray">' ;
2012-10-18 15:02:44 -04:00
$start = '' ;
$limit = '' ;
$filter = '' ;
$groups = new Groupwf ();
2013-03-04 09:29:59 -04:00
$result = $groups -> getAllGroup ( $start , $limit , $filter );
if ( count ( $result [ 'rows' ]) > 0 ) {
$usersGroups .= '<optgroup label="' . G :: LoadTranslation ( 'ID_GROUPS' ) . '">' ;
2012-10-18 15:02:44 -04:00
foreach ( $result [ 'rows' ] as $results ) {
2013-03-04 09:29:59 -04:00
$usersGroups .= '<option value="2|' . $results [ 'GRP_UID' ] . '">' . htmlentities ( $results [ 'GRP_TITLE' ], ENT_QUOTES , 'UTF-8' ) . '</option>' ;
2012-10-18 15:02:44 -04:00
}
$usersGroups .= '</optgroup>' ;
2012-10-18 14:46:16 -04:00
}
2013-03-04 09:29:59 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> addSelectColumn ( UsersPeer :: USR_UID );
$oCriteria -> addSelectColumn ( UsersPeer :: USR_USERNAME );
$oCriteria -> addSelectColumn ( UsersPeer :: USR_FIRSTNAME );
$oCriteria -> addSelectColumn ( UsersPeer :: USR_LASTNAME );
$oCriteria -> addAscendingOrderByColumn ( UsersPeer :: USR_FIRSTNAME );
$oCriteria -> addAscendingOrderByColumn ( UsersPeer :: USR_LASTNAME );
$oCriteria -> add ( UsersPeer :: USR_STATUS , 'ACTIVE' );
$oDataset = UsersPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
if ( $oDataset -> getRecordCount () > 0 ) {
2013-03-04 09:29:59 -04:00
$usersGroups .= '<optgroup label="' . G :: LoadTranslation ( 'ID_USERS' ) . '">' ;
2012-10-18 15:02:44 -04:00
while ( $aRow = $oDataset -> getRow ()) {
2013-03-04 09:29:59 -04:00
$usersGroups .= '<option value="1|' . $aRow [ 'USR_UID' ] . '">' . htmlentities ( $aRow [ 'USR_FIRSTNAME' ] . ' ' . $aRow [ 'USR_LASTNAME' ] . ' (' . $aRow [ 'USR_USERNAME' ] . ')' , ENT_QUOTES , 'UTF-8' ) . '</option>' ;
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
}
$usersGroups .= '</optgroup>' ;
}
$usersGroups .= '</select>' ;
2013-03-04 09:29:59 -04:00
$aAllObjects = array ();
$aAllObjects [] = array ( 'UID' => 'char' , 'LABEL' => 'char' );
$aAllDynaforms = array ();
$aAllDynaforms [] = array ( 'UID' => 'char' , 'LABEL' => 'char' );
$aAllInputs = array ();
$aAllInputs [] = array ( 'UID' => 'char' , 'LABEL' => 'char' );
$aAllOutputs = array ();
$aAllOutputs [] = array ( 'UID' => 'char' , 'LABEL' => 'char' );
$oCriteria = $this -> getDynaformsCriteria ( $sProcessUID );
$oCriteria -> add ( DynaformPeer :: DYN_TYPE , 'XMLFORM' );
$oDataset = DynaformPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
while ( $aRow = $oDataset -> getRow ()) {
2013-03-04 09:29:59 -04:00
$aRow [ 'DYN_TITLE' ] = ( isset ( $aRow [ 'DYN_TITLE' ])) ? $aRow [ 'DYN_TITLE' ] : '' ;
$aAllObjects [] = array ( 'UID' => 'DYNAFORM|' . $aRow [ 'DYN_UID' ], 'LABEL' => $aRow [ 'DYN_TITLE' ] . ' (' . G :: LoadTranslation ( 'ID_DYNAFORM' ) . ')' );
$aAllDynaforms [] = array ( 'UID' => $aRow [ 'DYN_UID' ], 'LABEL' => $aRow [ 'DYN_TITLE' ]);
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
}
2013-03-04 09:29:59 -04:00
G :: LoadClass ( 'ArrayPeer' );
$oDataset = ArrayBasePeer :: doSelectRS ( $this -> getInputDocumentsCriteria ( $sProcessUID ));
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
while ( $aRow = $oDataset -> getRow ()) {
2013-03-04 09:29:59 -04:00
$aAllObjects [] = array ( 'UID' => 'INPUT_DOCUMENT|' . $aRow [ 'INP_DOC_UID' ], 'LABEL' => $aRow [ 'INP_DOC_TITLE' ] . ' (' . G :: LoadTranslation ( 'ID_INPUT_DOCUMENT' ) . ')' );
$aAllInputs [] = array ( 'UID' => $aRow [ 'INP_DOC_UID' ], 'LABEL' => $aRow [ 'INP_DOC_TITLE' ]);
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
}
2013-03-04 09:29:59 -04:00
G :: LoadClass ( 'ArrayPeer' );
$oDataset = ArrayBasePeer :: doSelectRS ( $this -> getOutputDocumentsCriteria ( $sProcessUID ));
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
while ( $aRow = $oDataset -> getRow ()) {
2013-03-04 09:29:59 -04:00
$aAllObjects [] = array ( 'UID' => 'OUTPUT_DOCUMENT|' . $aRow [ 'OUT_DOC_UID' ], 'LABEL' => $aRow [ 'OUT_DOC_TITLE' ] . ' (' . G :: LoadTranslation ( 'ID_OUTPUT_DOCUMENT' ) . ')' );
$aAllOutputs [] = array ( 'UID' => $aRow [ 'OUT_DOC_UID' ], 'LABEL' => $aRow [ 'OUT_DOC_TITLE' ]);
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
}
global $_DBArray ;
2013-03-04 09:29:59 -04:00
$_DBArray = ( isset ( $_SESSION [ '_DBArray' ]) ? $_SESSION [ '_DBArray' ] : '' );
2012-10-18 15:02:44 -04:00
$_DBArray [ 'allObjects' ] = $aAllObjects ;
$_DBArray [ 'allDynaforms' ] = $aAllDynaforms ;
$_DBArray [ 'allInputs' ] = $aAllInputs ;
$_DBArray [ 'allOutputs' ] = $aAllOutputs ;
$_SESSION [ '_DBArray' ] = $_DBArray ;
global $G_PUBLISH ;
$G_PUBLISH = new Publisher ();
2013-03-04 09:29:59 -04:00
$G_PUBLISH -> AddContent ( 'xmlform' , 'xmlform' , 'processes/processes_NewObjectPermission' , '' ,
2013-04-15 15:49:27 -04:00
array ( 'GROUP_USER' => $usersGroups ,
'LANG' => SYS_LANG ,
'PRO_UID' => $sProcessUID ,
'ID_DELETE' => G :: LoadTranslation ( 'ID_DELETE' ),
'ID_RESEND' => G :: LoadTranslation ( 'ID_RESEND' )
), 'processes_SaveObjectPermission' );
2013-03-04 09:29:59 -04:00
G :: RenderPage ( 'publish' , 'raw' );
2012-10-18 15:02:44 -04:00
return true ;
}
/**
* editObjectPermission
*
* @ param string $sOP_UID
* @ param string $sProcessUID
* @ return void
*/
2013-03-04 09:29:59 -04:00
public function editObjectPermission ( $sOP_UID , $sProcessUID )
2012-10-18 15:02:44 -04:00
{
2013-04-02 12:20:19 -04:00
$user = '' ;
2012-10-18 15:02:44 -04:00
$oCriteria = new Criteria ();
2013-03-04 09:29:59 -04:00
$oCriteria -> add ( ObjectPermissionPeer :: OP_UID , $sOP_UID );
$oDataset = ObjectPermissionPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
$aRows = $oDataset -> getRow ();
$oCriteria = new Criteria ();
2013-03-04 09:29:59 -04:00
$oCriteria -> add ( GroupwfPeer :: GRP_UID , $aRows [ 'USR_UID' ]);
if ( GroupwfPeer :: doCount ( $oCriteria ) == 1 ) {
2012-10-18 15:02:44 -04:00
$user = '2|' . $aRows [ 'USR_UID' ];
2013-03-04 09:29:59 -04:00
}
2012-10-18 15:02:44 -04:00
$oCriteria = new Criteria ();
2013-03-04 09:29:59 -04:00
$oCriteria -> add ( UsersPeer :: USR_UID , $aRows [ 'USR_UID' ]);
if ( UsersPeer :: doCount ( $oCriteria ) == 1 ) {
2012-10-18 15:02:44 -04:00
$user = '1|' . $aRows [ 'USR_UID' ];
2013-03-04 09:29:59 -04:00
}
2012-10-18 15:02:44 -04:00
$aFields [ 'LANG' ] = SYS_LANG ;
$aFields [ 'OP_UID' ] = $aRows [ 'OP_UID' ];
$aFields [ 'PRO_UID' ] = $aRows [ 'PRO_UID' ];
$aFields [ 'OP_CASE_STATUS' ] = $aRows [ 'OP_CASE_STATUS' ];
$aFields [ 'TAS_UID' ] = $aRows [ 'TAS_UID' ];
$aFields [ 'OP_TASK_SOURCE' ] = $aRows [ 'OP_TASK_SOURCE' ];
$aFields [ 'OP_PARTICIPATE' ] = $aRows [ 'OP_PARTICIPATE' ];
$aFields [ 'OP_OBJ_TYPE' ] = $aRows [ 'OP_OBJ_TYPE' ];
$aFields [ 'OP_ACTION' ] = $aRows [ 'OP_ACTION' ];
switch ( $aRows [ 'OP_OBJ_TYPE' ]) {
/* case 'ANY' :
2013-03-04 09:29:59 -04:00
$aFields [ 'OP_OBJ_TYPE' ] = '' ;
break ; */
2012-10-18 15:02:44 -04:00
case 'DYNAFORM' :
$aFields [ 'DYNAFORMS' ] = $aRows [ 'OP_OBJ_UID' ];
break ;
case 'INPUT' :
$aFields [ 'INPUTS' ] = $aRows [ 'OP_OBJ_UID' ];
break ;
case 'OUTPUT' :
$aFields [ 'OUTPUTS' ] = $aRows [ 'OP_OBJ_UID' ];
break ;
}
2013-03-04 09:29:59 -04:00
$usersGroups = '<select pm:dependent="0" pm:label="' . G :: LoadTranslation ( 'ID_GROUP_USERS' ) . '" name="form[GROUP_USER]" id="form[GROUP_USER]" class="module_app_input___gray">' ;
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> addSelectColumn ( GroupwfPeer :: GRP_UID );
$oCriteria -> addAsColumn ( 'GRP_TITLE' , ContentPeer :: CON_VALUE );
$aConditions = array ();
$aConditions [] = array ( GroupwfPeer :: GRP_UID , ContentPeer :: CON_ID );
$aConditions [] = array ( ContentPeer :: CON_CATEGORY , DBAdapter :: getStringDelimiter () . 'GRP_TITLE' . DBAdapter :: getStringDelimiter ());
$aConditions [] = array ( ContentPeer :: CON_LANG , DBAdapter :: getStringDelimiter () . SYS_LANG . DBAdapter :: getStringDelimiter ());
$oCriteria -> addJoinMC ( $aConditions , Criteria :: LEFT_JOIN );
$oCriteria -> add ( GroupwfPeer :: GRP_STATUS , 'ACTIVE' );
$oCriteria -> addAscendingOrderByColumn ( 'GRP_TITLE' );
$oDataset = GroupwfPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
if ( $oDataset -> getRecordCount () > 0 ) {
2013-03-04 09:29:59 -04:00
$usersGroups .= '<optgroup label="' . G :: LoadTranslation ( 'ID_GROUPS' ) . '">' ;
2012-10-18 15:02:44 -04:00
while ( $aRow = $oDataset -> getRow ()) {
2013-03-04 09:29:59 -04:00
$usersGroups .= '<option value="2|' . $aRow [ 'GRP_UID' ] . '"' . ( '2|' . $aRow [ 'GRP_UID' ] == $user ? ' selected="selected"' : '' ) . '>' . htmlentities ( $aRow [ 'GRP_TITLE' ], ENT_QUOTES , 'UTF-8' ) . '</option>' ;
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
}
$usersGroups .= '</optgroup>' ;
}
2013-03-04 09:29:59 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> addSelectColumn ( UsersPeer :: USR_UID );
$oCriteria -> addSelectColumn ( UsersPeer :: USR_USERNAME );
$oCriteria -> addSelectColumn ( UsersPeer :: USR_FIRSTNAME );
$oCriteria -> addSelectColumn ( UsersPeer :: USR_LASTNAME );
$oCriteria -> add ( UsersPeer :: USR_STATUS , 'ACTIVE' );
$oCriteria -> addAscendingOrderByColumn ( UsersPeer :: USR_FIRSTNAME );
$oCriteria -> addAscendingOrderByColumn ( UsersPeer :: USR_LASTNAME );
$oDataset = UsersPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
if ( $oDataset -> getRecordCount () > 0 ) {
2013-03-04 09:29:59 -04:00
$usersGroups .= '<optgroup label="' . G :: LoadTranslation ( 'ID_USERS' ) . '">' ;
2012-10-18 15:02:44 -04:00
while ( $aRow = $oDataset -> getRow ()) {
2013-03-04 09:29:59 -04:00
$usersGroups .= '<option value="1|' . $aRow [ 'USR_UID' ] . '"' . ( '1|' . $aRow [ 'USR_UID' ] == $user ? ' selected="selected"' : '' ) . '>' . htmlentities ( $aRow [ 'USR_FIRSTNAME' ] . ' ' . $aRow [ 'USR_LASTNAME' ] . ' (' . $aRow [ 'USR_USERNAME' ] . ')' , ENT_QUOTES , 'UTF-8' ) . '</option>' ;
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
}
$usersGroups .= '</optgroup>' ;
}
2013-03-04 09:29:59 -04:00
$aAllObjects = array ();
$aAllObjects [] = array ( 'UID' => 'char' , 'LABEL' => 'char' );
$aAllDynaforms = array ();
$aAllDynaforms [] = array ( 'UID' => 'char' , 'LABEL' => 'char' );
$aAllInputs = array ();
$aAllInputs [] = array ( 'UID' => 'char' , 'LABEL' => 'char' );
$aAllOutputs = array ();
$aAllOutputs [] = array ( 'UID' => 'char' , 'LABEL' => 'char' );
2012-10-18 15:02:44 -04:00
//dynaforms
2013-03-04 09:29:59 -04:00
$oCriteria = $this -> getDynaformsCriteria ( $aRows [ 'PRO_UID' ]);
$oCriteria -> add ( DynaformPeer :: DYN_TYPE , 'XMLFORM' );
$oDataset = DynaformPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
while ( $aRow = $oDataset -> getRow ()) {
2013-03-04 09:29:59 -04:00
$aAllObjects [] = array ( 'UID' => 'DYNAFORM|' . $aRow [ 'DYN_UID' ], 'LABEL' => $aRow [ 'DYN_TITLE' ] . ' (' . G :: LoadTranslation ( 'ID_DYNAFORM' ) . ')' );
$aAllDynaforms [] = array ( 'UID' => $aRow [ 'DYN_UID' ], 'LABEL' => $aRow [ 'DYN_TITLE' ] );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
}
//inputs
2013-03-04 09:29:59 -04:00
G :: LoadClass ( 'ArrayPeer' );
$oDataset = ArrayBasePeer :: doSelectRS ( $this -> getInputDocumentsCriteria ( $sProcessUID ));
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
while ( $aRow = $oDataset -> getRow ()) {
2013-03-04 09:29:59 -04:00
$aAllObjects [] = array ( 'UID' => 'INPUT_DOCUMENT|' . $aRow [ 'INP_DOC_UID' ], 'LABEL' => $aRow [ 'INP_DOC_TITLE' ] . ' (' . G :: LoadTranslation ( 'ID_INPUT_DOCUMENT' ) . ')'
2012-10-18 15:02:44 -04:00
);
2013-03-04 09:29:59 -04:00
$aAllInputs [] = array ( 'UID' => $aRow [ 'INP_DOC_UID' ], 'LABEL' => $aRow [ 'INP_DOC_TITLE' ]
2012-10-18 15:02:44 -04:00
);
$oDataset -> next ();
}
//outputs
2013-03-04 09:29:59 -04:00
G :: LoadClass ( 'ArrayPeer' );
$oDataset = ArrayBasePeer :: doSelectRS ( $this -> getOutputDocumentsCriteria ( $sProcessUID ));
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
while ( $aRow = $oDataset -> getRow ()) {
2013-03-04 09:29:59 -04:00
$aAllObjects [] = array ( 'UID' => 'OUTPUT_DOCUMENT|' . $aRow [ 'OUT_DOC_UID' ], 'LABEL' => $aRow [ 'OUT_DOC_TITLE' ] . ' (' . G :: LoadTranslation ( 'ID_OUTPUT_DOCUMENT' ) . ')' );
$aAllOutputs [] = array ( 'UID' => $aRow [ 'OUT_DOC_UID' ], 'LABEL' => $aRow [ 'OUT_DOC_TITLE' ] );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
}
global $_DBArray ;
2013-03-04 09:29:59 -04:00
$_DBArray = ( isset ( $_SESSION [ '_DBArray' ]) ? $_SESSION [ '_DBArray' ] : '' );
2012-10-18 15:02:44 -04:00
$_DBArray [ 'allObjects' ] = $aAllObjects ;
$_DBArray [ 'allDynaforms' ] = $aAllDynaforms ;
$_DBArray [ 'allInputs' ] = $aAllInputs ;
$_DBArray [ 'allOutputs' ] = $aAllOutputs ;
$_SESSION [ '_DBArray' ] = $_DBArray ;
$aFields [ 'GROUP_USER' ] = $usersGroups ;
2013-03-04 09:29:59 -04:00
$aFields [ 'ID_DELETE' ] = G :: LoadTranslation ( 'ID_DELETE' );
2013-04-15 15:49:27 -04:00
$aFields [ 'ID_RESEND' ] = G :: LoadTranslation ( 'ID_RESEND' );
2012-10-18 15:02:44 -04:00
global $G_PUBLISH ;
$G_PUBLISH = new Publisher ();
2013-03-04 09:29:59 -04:00
$G_PUBLISH -> AddContent ( 'xmlform' , 'xmlform' , 'processes/processes_EditObjectPermission' , '' , $aFields , 'processes_SaveEditObjectPermission' );
G :: RenderPage ( 'publish' , 'raw' );
2012-10-18 15:02:44 -04:00
}
/**
* caseTracker
*
* @ param string $sProcessUID
* @ return boolean true
*/
2013-03-04 09:29:59 -04:00
public function caseTracker ( $sProcessUID )
2012-10-18 15:02:44 -04:00
{
$oCriteria = new Criteria ();
2013-03-04 09:29:59 -04:00
$oCriteria -> add ( CaseTrackerPeer :: PRO_UID , $sProcessUID );
2012-10-18 15:02:44 -04:00
$oCaseTracker = new CaseTracker ();
2013-03-04 09:29:59 -04:00
if ( CaseTrackerPeer :: doCount ( $oCriteria ) === 0 ) {
$aCaseTracker = array ( 'PRO_UID' => $sProcessUID , 'CT_MAP_TYPE' => 'PROCESSMAP' , 'CT_DERIVATION_HISTORY' => 1 , 'CT_MESSAGE_HISTORY' => 1 );
$oCaseTracker -> create ( $aCaseTracker );
2012-10-18 15:02:44 -04:00
} else {
2013-03-04 09:29:59 -04:00
$aCaseTracker = $oCaseTracker -> load ( $sProcessUID );
2012-10-18 15:02:44 -04:00
}
global $G_PUBLISH ;
$G_PUBLISH = new Publisher ();
2013-03-04 09:29:59 -04:00
$G_PUBLISH -> AddContent ( 'xmlform' , 'xmlform' , 'tracker/tracker_Configuration' , '' , $aCaseTracker , '../tracker/tracker_Save' );
G :: RenderPage ( 'publish' , 'raw' );
2012-10-18 15:02:44 -04:00
return true ;
}
/**
* caseTrackerObjects
*
* @ param string $sProcessUID
* @ return boolean true
*/
2013-03-04 09:29:59 -04:00
public function caseTrackerObjects ( $sProcessUID )
2012-10-18 15:02:44 -04:00
{
global $G_PUBLISH ;
$G_PUBLISH = new Publisher ();
2013-03-04 09:29:59 -04:00
$G_PUBLISH -> AddContent ( 'propeltable' , 'paged-table' , 'tracker/tracker_objectsList' , $this -> getCaseTrackerObjectsCriteria ( $sProcessUID ), array ( 'PRO_UID' => $sProcessUID ));
G :: RenderPage ( 'publish' , 'raw' );
2012-10-18 15:02:44 -04:00
return true ;
}
/**
* getCaseTrackerObjectsCriteria
*
* @ param string $sProcessUID
* @ return object ( Criteria ) $oCriteria
*/
2013-03-04 09:29:59 -04:00
public function getCaseTrackerObjectsCriteria ( $sProcessUID )
2012-10-18 15:02:44 -04:00
{
2013-03-04 09:29:59 -04:00
$aObjects = array ();
$aObjects [] = array ( 'CTO_TITLE' => 'char' , 'CTO_UID' => 'char' , 'CTO_TYPE_OBJ' => 'char' , 'CTO_UID_OBJ' => 'char' , 'CTO_CONDITION' => 'char' , 'CTO_POSITION' => 'integer' );
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> add ( CaseTrackerObjectPeer :: PRO_UID , $sProcessUID );
$oCriteria -> addAscendingOrderByColumn ( CaseTrackerObjectPeer :: CTO_POSITION );
$oDataset = CaseTrackerObjectPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
while ( $aRow = $oDataset -> getRow ()) {
try {
switch ( $aRow [ 'CTO_TYPE_OBJ' ]) {
case 'DYNAFORM' :
$oDynaform = new Dynaform ();
2013-03-04 09:29:59 -04:00
$aFields = $oDynaform -> load ( $aRow [ 'CTO_UID_OBJ' ]);
2012-10-18 15:02:44 -04:00
$sTitle = $aFields [ 'DYN_TITLE' ];
break ;
case 'INPUT_DOCUMENT' :
$oInputDocument = new InputDocument ();
2013-03-04 09:29:59 -04:00
$aFields = $oInputDocument -> load ( $aRow [ 'CTO_UID_OBJ' ]);
2012-10-18 15:02:44 -04:00
$sTitle = $aFields [ 'INP_DOC_TITLE' ];
break ;
case 'OUTPUT_DOCUMENT' :
$oOutputDocument = new OutputDocument ();
2013-03-04 09:29:59 -04:00
$aFields = $oOutputDocument -> load ( $aRow [ 'CTO_UID_OBJ' ]);
2012-10-18 15:02:44 -04:00
$sTitle = $aFields [ 'OUT_DOC_TITLE' ];
break ;
}
2013-03-04 09:29:59 -04:00
$aObjects [] = array ( 'CTO_TITLE' => $sTitle , 'CTO_UID' => $aRow [ 'CTO_UID' ], 'CTO_TYPE_OBJ' => $aRow [ 'CTO_TYPE_OBJ' ], 'CTO_UID_OBJ' => $aRow [ 'CTO_UID_OBJ' ], 'CTO_CONDITION' => $aRow [ 'CTO_CONDITION' ], 'CTO_POSITION' => $aRow [ 'CTO_POSITION' ] );
} catch ( Exception $oError ) {
//Nothing
2012-10-18 15:02:44 -04:00
}
$oDataset -> next ();
}
global $_DBArray ;
2013-03-04 09:29:59 -04:00
$_DBArray = ( isset ( $_SESSION [ '_DBArray' ]) ? $_SESSION [ '_DBArray' ] : '' );
2012-10-18 15:02:44 -04:00
$_DBArray [ 'objects' ] = $aObjects ;
$_SESSION [ '_DBArray' ] = $_DBArray ;
2013-03-04 09:29:59 -04:00
G :: LoadClass ( 'ArrayPeer' );
$oCriteria = new Criteria ( 'dbarray' );
$oCriteria -> setDBArrayTable ( 'objects' );
$oCriteria -> addAscendingOrderByColumn ( 'CTO_POSITION' );
2012-10-18 15:02:44 -04:00
return $oCriteria ;
}
/**
* availableCaseTrackerObjects
*
* @ param string $sProcessUID
* @ return boolean true
*/
2013-03-04 09:29:59 -04:00
public function availableCaseTrackerObjects ( $sProcessUID )
2012-10-18 15:02:44 -04:00
{
global $G_PUBLISH ;
$G_PUBLISH = new Publisher ();
2013-03-04 09:29:59 -04:00
$G_PUBLISH -> AddContent ( 'propeltable' , 'paged-table' , 'tracker/tracker_AvailableCaseTrackerObjects' , $this -> getAvailableCaseTrackerObjectsCriteria ( $sProcessUID ), array ( 'PRO_UID' => $sProcessUID ));
G :: RenderPage ( 'publish' , 'raw' );
2012-10-18 15:02:44 -04:00
return true ;
}
/**
* getAvailableCaseTrackerObjectsCriteria
*
* @ param string $sProcessUID Default value empty
* @ return object ( Criteria ) $oCriteria
*/
2013-03-04 09:29:59 -04:00
public function getAvailableCaseTrackerObjectsCriteria ( $sProcessUID = '' )
2012-10-18 15:02:44 -04:00
{
2013-03-04 09:29:59 -04:00
$oCriteria = $this -> getCaseTrackerObjectsCriteria ( $sProcessUID );
$oDataset = CaseTrackerObjectPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
2013-03-04 09:29:59 -04:00
$aDynaformsUIDS = array ();
$aInputsUIDS = array ();
$aOutputsUIDS = array ();
2012-10-18 15:02:44 -04:00
while ( $aRow = $oDataset -> getRow ()) {
switch ( $aRow [ 'CTO_TYPE_OBJ' ]) {
case 'DYNAFORM' :
$aDynaformsUIDS [] = $aRow [ 'CTO_UID_OBJ' ];
break ;
case 'INPUT_DOCUMENT' :
$aInputsUIDS [] = $aRow [ 'CTO_UID_OBJ' ];
break ;
case 'OUTPUT_DOCUMENT' :
$aOutputsUIDS [] = $aRow [ 'CTO_UID_OBJ' ];
break ;
}
$oDataset -> next ();
}
2013-03-04 09:29:59 -04:00
$aAvailableObjects = array ();
$aAvailableObjects [] = array ( 'OBJECT_UID' => 'char' , 'OBJECT_TYPE' => 'char' , 'OBJECT_TITLE' => 'char' );
2012-10-18 15:02:44 -04:00
$sDelimiter = DBAdapter :: getStringDelimiter ();
2013-03-04 09:29:59 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> addSelectColumn ( DynaformPeer :: DYN_UID );
$oCriteria -> addAsColumn ( 'DYN_TITLE' , 'C.CON_VALUE' );
$oCriteria -> addAlias ( 'C' , 'CONTENT' );
$aConditions = array ();
$aConditions [] = array ( DynaformPeer :: DYN_UID , 'C.CON_ID' );
$aConditions [] = array ( 'C.CON_CATEGORY' , $sDelimiter . 'DYN_TITLE' . $sDelimiter );
$aConditions [] = array ( 'C.CON_LANG' , $sDelimiter . SYS_LANG . $sDelimiter );
$oCriteria -> addJoinMC ( $aConditions , Criteria :: LEFT_JOIN );
$oCriteria -> add ( DynaformPeer :: PRO_UID , $sProcessUID );
$oCriteria -> add ( DynaformPeer :: DYN_TYPE , 'xmlform' );
$oCriteria -> add ( DynaformPeer :: DYN_UID , $aDynaformsUIDS , Criteria :: NOT_IN );
$oDataset = DynaformPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
while ( $aRow = $oDataset -> getRow ()) {
2013-03-04 09:29:59 -04:00
$aAvailableObjects [] = array ( 'OBJECT_UID' => $aRow [ 'DYN_UID' ], 'OBJECT_TYPE' => 'DYNAFORM' , 'OBJECT_TITLE' => $aRow [ 'DYN_TITLE' ]);
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
}
2013-03-04 09:29:59 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> addSelectColumn ( InputDocumentPeer :: INP_DOC_UID );
$oCriteria -> addAsColumn ( 'INP_DOC_TITLE' , 'C.CON_VALUE' );
$oCriteria -> addAlias ( 'C' , 'CONTENT' );
$aConditions = array ();
$aConditions [] = array ( InputDocumentPeer :: INP_DOC_UID , 'C.CON_ID' );
$aConditions [] = array ( 'C.CON_CATEGORY' , $sDelimiter . 'INP_DOC_TITLE' . $sDelimiter );
$aConditions [] = array ( 'C.CON_LANG' , $sDelimiter . SYS_LANG . $sDelimiter );
$oCriteria -> addJoinMC ( $aConditions , Criteria :: LEFT_JOIN );
$oCriteria -> add ( InputDocumentPeer :: PRO_UID , $sProcessUID );
$oCriteria -> add ( InputDocumentPeer :: INP_DOC_UID , $aInputsUIDS , Criteria :: NOT_IN );
$oDataset = InputDocumentPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
while ( $aRow = $oDataset -> getRow ()) {
2013-03-04 09:29:59 -04:00
$aAvailableObjects [] = array ( 'OBJECT_UID' => $aRow [ 'INP_DOC_UID' ], 'OBJECT_TYPE' => 'INPUT_DOCUMENT' , 'OBJECT_TITLE' => $aRow [ 'INP_DOC_TITLE' ]
2012-10-18 15:02:44 -04:00
);
$oDataset -> next ();
}
2013-03-04 09:29:59 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> addSelectColumn ( OutputDocumentPeer :: OUT_DOC_UID );
$oCriteria -> addAsColumn ( 'OUT_DOC_TITLE' , 'C.CON_VALUE' );
$oCriteria -> addAlias ( 'C' , 'CONTENT' );
$aConditions = array ();
$aConditions [] = array ( OutputDocumentPeer :: OUT_DOC_UID , 'C.CON_ID' );
$aConditions [] = array ( 'C.CON_CATEGORY' , $sDelimiter . 'OUT_DOC_TITLE' . $sDelimiter );
$aConditions [] = array ( 'C.CON_LANG' , $sDelimiter . SYS_LANG . $sDelimiter );
$oCriteria -> addJoinMC ( $aConditions , Criteria :: LEFT_JOIN );
$oCriteria -> add ( OutputDocumentPeer :: PRO_UID , $sProcessUID );
$oCriteria -> add ( OutputDocumentPeer :: OUT_DOC_UID , $aOutputsUIDS , Criteria :: NOT_IN );
2012-10-18 15:02:44 -04:00
2013-03-04 09:29:59 -04:00
$oDataset = OutputDocumentPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
while ( $aRow = $oDataset -> getRow ()) {
2013-03-04 09:29:59 -04:00
$aAvailableObjects [] = array ( 'OBJECT_UID' => $aRow [ 'OUT_DOC_UID' ], 'OBJECT_TYPE' => 'OUTPUT_DOCUMENT' , 'OBJECT_TITLE' => $aRow [ 'OUT_DOC_TITLE' ] );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
}
global $_DBArray ;
2013-03-04 09:29:59 -04:00
$_DBArray = ( isset ( $_SESSION [ '_DBArray' ]) ? $_SESSION [ '_DBArray' ] : '' );
2012-10-18 15:02:44 -04:00
$_DBArray [ 'availableObjects' ] = $aAvailableObjects ;
$_SESSION [ '_DBArray' ] = $_DBArray ;
2013-03-04 09:29:59 -04:00
G :: LoadClass ( 'ArrayPeer' );
$oCriteria = new Criteria ( 'dbarray' );
$oCriteria -> setDBArrayTable ( 'availableObjects' );
2012-10-18 15:02:44 -04:00
return $oCriteria ;
}
/**
* assignCaseTrackerObject
*
* @ param string $sProcessUID
* @ param string $sObjType
* @ param string $sObjUID
* @ return void
*/
2013-03-04 09:29:59 -04:00
public function assignCaseTrackerObject ( $sProcessUID , $sObjType , $sObjUID )
2012-10-18 15:02:44 -04:00
{
2013-03-04 09:29:59 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> add ( CaseTrackerObjectPeer :: PRO_UID , $sProcessUID );
$iPosition = CaseTrackerObjectPeer :: doCount ( $oCriteria ) + 1 ;
2012-10-18 15:02:44 -04:00
$oCaseTrackerObject = new CaseTrackerObject ();
2013-03-04 09:29:59 -04:00
$ctoUID = $oCaseTrackerObject -> create ( array ( 'PRO_UID' => $sProcessUID , 'CTO_TYPE_OBJ' => $sObjType , 'CTO_UID_OBJ' => $sObjUID , 'CTO_POSITION' => $iPosition , 'CTO_CONDITION' => '' ));
2012-10-18 15:02:44 -04:00
return $ctoUID ;
}
/**
* removeCaseTrackerObject
*
* @ param string $sCTOUID
* @ param string $sProcessUID
* @ param integer $iPosition
* @ return void
*/
2013-03-04 09:29:59 -04:00
public function removeCaseTrackerObject ( $sCTOUID , $sProcessUID , $iPosition )
2012-10-18 15:02:44 -04:00
{
$oCaseTrackerObject = new CaseTrackerObject ();
2013-03-04 09:29:59 -04:00
$oCaseTrackerObject -> remove ( $sCTOUID );
$oCaseTrackerObject -> reorderPositions ( $sProcessUID , $iPosition );
2012-10-18 15:02:44 -04:00
}
/**
* upCaseTrackerObject
*
* @ param string $sCTOUID
* @ param string $sProcessUID
* @ param integer $iPosition
* @ return void
*/
2013-03-04 09:29:59 -04:00
public function upCaseTrackerObject ( $sCTOUID , $sProcessUID , $iPosition )
2012-10-18 15:02:44 -04:00
{
if ( $iPosition > 1 ) {
2013-03-04 09:29:59 -04:00
$oCriteria1 = new Criteria ( 'workflow' );
$oCriteria1 -> add ( CaseTrackerObjectPeer :: CTO_POSITION , $iPosition );
$oCriteria2 = new Criteria ( 'workflow' );
$oCriteria2 -> add ( CaseTrackerObjectPeer :: PRO_UID , $sProcessUID );
$oCriteria2 -> add ( CaseTrackerObjectPeer :: CTO_POSITION , ( $iPosition - 1 ));
BasePeer :: doUpdate ( $oCriteria2 , $oCriteria1 , Propel :: getConnection ( 'workflow' ));
2012-10-18 15:02:44 -04:00
2013-03-04 09:29:59 -04:00
$oCriteria1 = new Criteria ( 'workflow' );
$oCriteria1 -> add ( CaseTrackerObjectPeer :: CTO_POSITION , ( $iPosition - 1 ));
$oCriteria2 = new Criteria ( 'workflow' );
$oCriteria2 -> add ( CaseTrackerObjectPeer :: CTO_UID , $sCTOUID );
BasePeer :: doUpdate ( $oCriteria2 , $oCriteria1 , Propel :: getConnection ( 'workflow' ));
2012-10-18 15:02:44 -04:00
}
}
/**
* downCaseTrackerObject
*
* @ param string $sCTOUID
* @ param string $sProcessUID
* @ param integer $iPosition
* @ return void
*/
2013-03-04 09:29:59 -04:00
public function downCaseTrackerObject ( $sCTOUID , $sProcessUID , $iPosition )
2012-10-18 15:02:44 -04:00
{
2013-03-04 09:29:59 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> addSelectColumn ( 'COUNT(*) AS MAX_POSITION' );
$oCriteria -> add ( CaseTrackerObjectPeer :: PRO_UID , $sProcessUID );
$oDataset = CaseTrackerObjectPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
$aRow = $oDataset -> getRow ();
if ( $iPosition < ( int ) $aRow [ 'MAX_POSITION' ]) {
2013-03-04 09:29:59 -04:00
$oCriteria1 = new Criteria ( 'workflow' );
$oCriteria1 -> add ( CaseTrackerObjectPeer :: CTO_POSITION , $iPosition );
$oCriteria2 = new Criteria ( 'workflow' );
$oCriteria2 -> add ( CaseTrackerObjectPeer :: PRO_UID , $sProcessUID );
$oCriteria2 -> add ( CaseTrackerObjectPeer :: CTO_POSITION , ( $iPosition + 1 ));
BasePeer :: doUpdate ( $oCriteria2 , $oCriteria1 , Propel :: getConnection ( 'workflow' ));
$oCriteria1 = new Criteria ( 'workflow' );
$oCriteria1 -> add ( CaseTrackerObjectPeer :: CTO_POSITION , ( $iPosition + 1 ));
$oCriteria2 = new Criteria ( 'workflow' );
$oCriteria2 -> add ( CaseTrackerObjectPeer :: CTO_UID , $sCTOUID );
BasePeer :: doUpdate ( $oCriteria2 , $oCriteria1 , Propel :: getConnection ( 'workflow' ));
2012-10-18 15:02:44 -04:00
}
}
/**
* processFilesManager
*
* @ param string $sProcessUID
* @ return void
*/
2013-03-04 09:29:59 -04:00
public function processFilesManager ( $sProcessUID )
2012-10-18 15:02:44 -04:00
{
2013-03-04 09:29:59 -04:00
G :: LoadClass ( 'ArrayPeer' );
2012-10-18 15:02:44 -04:00
global $_DBArray ;
global $G_PUBLISH ;
2013-03-04 09:29:59 -04:00
$oCriteria = new Criteria ( 'dbarray' );
2012-10-18 15:02:44 -04:00
$G_PUBLISH = new Publisher ();
2013-03-04 09:29:59 -04:00
$aDirectories = array ();
$aDirectories [] = array ( 'DIRECTORY' => 'char' );
2013-10-15 15:32:44 -04:00
$aDirectories [] = array ( 'DIRECTORY' => '<a href="#" onclick="goToDirectory(\'' . $sProcessUID . '\', \'mailTemplates\', \'\');return false;" class="pagedTableHeader">' . G :: loadTranslation ( 'ID_TEMPLATES' ) . '</a>' );
$aDirectories [] = array ( 'DIRECTORY' => '<a href="#" onclick="goToDirectory(\'' . $sProcessUID . '\', \'public\', \'\');return false;" class="pagedTableHeader">' . G :: loadTranslation ( 'ID_PUBLIC' ) . '</a>' );
2012-10-18 15:02:44 -04:00
2013-03-04 09:29:59 -04:00
$_DBArray = ( isset ( $_SESSION [ '_DBArray' ]) ? $_SESSION [ '_DBArray' ] : '' );
2012-10-18 15:02:44 -04:00
$_DBArray [ 'directories' ] = $aDirectories ;
$_SESSION [ '_DBArray' ] = $_DBArray ;
2013-03-04 09:29:59 -04:00
$oCriteria -> setDBArrayTable ( 'directories' );
2012-10-18 15:02:44 -04:00
2013-03-04 09:29:59 -04:00
$G_PUBLISH -> AddContent ( 'propeltable' , 'paged-table' , 'processes/processes_DirectoriesList' , $oCriteria );
G :: RenderPage ( 'publish' , 'raw' );
2012-10-18 15:02:44 -04:00
}
/**
* exploreDirectory
*
* @ param string $sProcessUID
* @ param string $sMainDirectory
* @ param string $sCurrentDirectory
* @ return void
*/
2013-03-04 09:29:59 -04:00
public function exploreDirectory ( $sProcessUID , $sMainDirectory , $sCurrentDirectory )
2012-10-18 15:02:44 -04:00
{
switch ( $sMainDirectory ) {
case 'mailTemplates' :
$sDirectory = PATH_DATA_MAILTEMPLATES . $sProcessUID . PATH_SEP ;
break ;
case 'public' :
$sDirectory = PATH_DATA_PUBLIC . $sProcessUID . PATH_SEP ;
break ;
default :
die ();
break ;
}
2013-03-04 09:29:59 -04:00
G :: verifyPath ( $sDirectory , true );
2012-10-18 15:02:44 -04:00
$sDirectory .= $sCurrentDirectory . PATH_SEP ;
2013-03-04 09:29:59 -04:00
$aTheFiles = array ();
$aTheFiles [] = array ( 'PATH' => 'char' , 'EDIT' => 'char' , 'DOWNLOAD_TEXT' => '' , 'DOWNLOAD_JS' => '' , 'DELETE_TEXT' => 'char' , 'DELETE_JS' => 'char' );
$aDirectories = array ();
$aFiles = array ();
$oDirectory = dir ( $sDirectory );
2012-10-18 15:02:44 -04:00
while ( $sObject = $oDirectory -> read ()) {
if (( $sObject !== '.' ) && ( $sObject !== '..' )) {
$sPath = $sDirectory . $sObject ;
2013-03-04 09:29:59 -04:00
if ( is_dir ( $sPath )) {
$aDirectories [] = array ( 'PATH' => ( $sCurrentDirectory != '' ? $sCurrentDirectory . PATH_SEP : '' ) . $sObject , 'DIRECTORY' => $sObject );
2012-10-18 15:02:44 -04:00
} else {
2013-03-04 09:29:59 -04:00
$aAux = pathinfo ( $sPath );
2013-04-29 16:48:29 -04:00
$aAux [ 'extension' ] = ( isset ( $aAux [ 'extension' ]) ? $aAux [ 'extension' ] : '' );
2013-03-04 09:29:59 -04:00
$aFiles [] = array ( 'FILE' => $sObject , 'EXT' => $aAux [ 'extension' ] );
2012-10-18 15:02:44 -04:00
}
}
}
$oDirectory -> close ();
if ( $sCurrentDirectory == '' ) {
2013-10-15 15:32:44 -04:00
$aTheFiles [] = array ( 'PATH' => '<a href="#" onclick="goToHome(\'' . $sProcessUID . '\');return false;" class="pagedTableHeader">..</a>' , 'EDIT' => '' , 'DOWNLOAD_TEXT' => '' , 'DOWNLOAD_JS' => '' , 'DELETE_TEXT' => '' , 'DELETE_JS' => '' );
2012-10-18 15:02:44 -04:00
} else {
2013-03-04 09:29:59 -04:00
$aAux = explode ( PATH_SEP , $sCurrentDirectory );
array_pop ( $aAux );
2013-10-15 15:32:44 -04:00
$aTheFiles [] = array ( 'PATH' => '<a href="#" onclick="goToDirectory(\'' . $sProcessUID . '\', \'' . $sMainDirectory . '\', \'' . implode ( PATH_SEP , $aAux ) . '\');return false;" class="pagedTableHeader">..</a>' , 'EDIT' => '' , 'DOWNLOAD_TEXT' => '' , 'DOWNLOAD_JS' => '' , 'DELETE_TEXT' => '' , 'DELETE_JS' => '' );
2012-10-18 15:02:44 -04:00
}
foreach ( $aDirectories as $aDirectories ) {
2013-10-15 15:32:44 -04:00
$aTheFiles [] = array ( 'PATH' => '<a href="#" onclick="goToDirectory(\'' . $sProcessUID . '\', \'' . $sMainDirectory . '\', \'' . $aDirectories [ 'PATH' ] . '\');return false;" class="pagedTableHeader">' . $aDirectories [ 'DIRECTORY' ] . '</a>' , 'EDIT' => '' , 'DOWNLOAD_TEXT' => '' , 'DOWNLOAD_JS' => '' , 'DELETE_TEXT' => G :: LoadTranslation ( 'ID_DELETE' ), 'DELETE_JS' => 'deleteDirectory(\'' . $sProcessUID . '\', \'' . $sMainDirectory . '\', \'' . $sCurrentDirectory . '\', \'' . $aDirectories [ 'DIRECTORY' ] . '\');return false;' );
2012-10-18 15:02:44 -04:00
}
foreach ( $aFiles as $aFile ) {
2013-10-15 15:32:44 -04:00
$aTheFiles [] = array ( 'PATH' => $aFile [ 'FILE' ], 'EDIT' => ( $sMainDirectory == 'mailTemplates' ? 'Edit' : '' ), 'EDIT_JS' => " editFile(' { $sProcessUID } ', @@PATH);return false; " , 'DOWNLOAD_TEXT' => G :: LoadTranslation ( 'ID_DOWNLOAD' ), 'DOWNLOAD_JS' => 'downloadFile(\'' . $sProcessUID . '\', \'' . $sMainDirectory . '\', \'' . $sCurrentDirectory . '\', \'' . $aFile [ 'FILE' ] . '\');return false;' , 'DELETE_TEXT' => G :: LoadTranslation ( 'ID_DELETE' ), 'DELETE_JS' => 'deleteFile(\'' . $sProcessUID . '\', \'' . $sMainDirectory . '\', \'' . $sCurrentDirectory . '\', \'' . $aFile [ 'FILE' ] . '\');return false;' );
2012-10-18 15:02:44 -04:00
}
global $_DBArray ;
2013-03-04 09:29:59 -04:00
$_DBArray = ( isset ( $_SESSION [ '_DBArray' ]) ? $_SESSION [ '_DBArray' ] : '' );
2012-10-18 15:02:44 -04:00
$_DBArray [ 'objects' ] = $aTheFiles ;
$_SESSION [ '_DBArray' ] = $_DBArray ;
2013-03-04 09:29:59 -04:00
G :: LoadClass ( 'ArrayPeer' );
$oCriteria = new Criteria ( 'dbarray' );
$oCriteria -> setDBArrayTable ( 'objects' );
$oCriteria -> addAscendingOrderByColumn ( 'DOWNLOAD_TEXT' );
2012-10-18 15:02:44 -04:00
global $G_PUBLISH ;
$G_PUBLISH = new Publisher ();
2013-03-04 09:29:59 -04:00
$G_PUBLISH -> AddContent ( 'propeltable' , 'processes/files-paged-table' , 'processes/processes_FilesList' , $oCriteria , array ( 'PRO_UID' => $sProcessUID , 'MAIN_DIRECTORY' => $sMainDirectory , 'CURRENT_DIRECTORY' => $sCurrentDirectory ));
G :: RenderPage ( 'publish' , 'raw' );
2012-10-18 15:02:44 -04:00
}
/**
* deleteFile
*
* @ param string $sProcessUID
* @ param string $sMainDirectory
* @ param string $sCurrentDirectory
* @ param string $sFile
* @ return void
*/
2013-03-04 09:29:59 -04:00
public function deleteFile ( $sProcessUID , $sMainDirectory , $sCurrentDirectory , $sFile )
2012-10-18 15:02:44 -04:00
{
switch ( $sMainDirectory ) {
case 'mailTemplates' :
$sDirectory = PATH_DATA_MAILTEMPLATES . $sProcessUID . PATH_SEP . ( $sCurrentDirectory != '' ? $sCurrentDirectory . PATH_SEP : '' );
break ;
case 'public' :
$sDirectory = PATH_DATA_PUBLIC . $sProcessUID . PATH_SEP . ( $sCurrentDirectory != '' ? $sCurrentDirectory . PATH_SEP : '' );
break ;
default :
die ();
break ;
}
2013-03-04 09:29:59 -04:00
if ( file_exists ( $sDirectory . $sFile )) {
unlink ( $sDirectory . $sFile );
2012-10-18 15:02:44 -04:00
}
}
/**
* deleteDirectory
*
* @ param string $sProcessUID
* @ param string $sMainDirectory
* @ param string $sCurrentDirectory
* @ param string $sDirToDelete
* @ return void
*/
2013-03-04 09:29:59 -04:00
public function deleteDirectory ( $sProcessUID , $sMainDirectory , $sCurrentDirectory , $sDirToDelete )
2012-10-18 15:02:44 -04:00
{
switch ( $sMainDirectory ) {
case 'mailTemplates' :
$sDirectory = PATH_DATA_MAILTEMPLATES . $sProcessUID . PATH_SEP . ( $sCurrentDirectory != '' ? $sCurrentDirectory . PATH_SEP : '' );
break ;
case 'public' :
$sDirectory = PATH_DATA_PUBLIC . $sProcessUID . PATH_SEP . ( $sCurrentDirectory != '' ? $sCurrentDirectory . PATH_SEP : '' );
break ;
default :
die ();
break ;
}
2013-03-04 09:29:59 -04:00
if ( file_exists ( $sDirectory . $sDirToDelete )) {
G :: rm_dir ( $sDirectory . $sDirToDelete );
2012-10-18 15:02:44 -04:00
}
}
2013-03-04 09:29:59 -04:00
public function downloadFile ( $sProcessUID , $sMainDirectory , $sCurrentDirectory , $sFile )
2012-10-18 15:02:44 -04:00
{
switch ( $sMainDirectory ) {
case 'mailTemplates' :
$sDirectory = PATH_DATA_MAILTEMPLATES . $sProcessUID . PATH_SEP . ( $sCurrentDirectory != '' ? $sCurrentDirectory . PATH_SEP : '' );
break ;
case 'public' :
$sDirectory = PATH_DATA_PUBLIC . $sProcessUID . PATH_SEP . ( $sCurrentDirectory != '' ? $sCurrentDirectory . PATH_SEP : '' );
break ;
default :
die ();
break ;
}
2013-03-04 09:29:59 -04:00
if ( file_exists ( $sDirectory . $sFile )) {
G :: streamFile ( $sDirectory . $sFile , true );
2012-10-18 15:02:44 -04:00
}
}
/* For sub-process */
/**
* addSubProcess
*
* @ param string $sProcessUID
* @ param integer $iX
* @ param integer $iY
* @ return void
*/
2013-03-04 09:29:59 -04:00
public function addSubProcess ( $sProcessUID = '' , $iX = 0 , $iY = 0 )
2012-10-18 15:02:44 -04:00
{
try {
$oTask = new Task ();
2013-09-05 12:18:14 -04:00
$oNewTask -> label = G :: LoadTranslation ( 'ID_SUBPROCESS' );
2013-03-04 09:29:59 -04:00
$oNewTask -> uid = $oTask -> create ( array ( 'PRO_UID' => $sProcessUID , 'TAS_TITLE' => $oNewTask -> label , 'TAS_POSX' => $iX , 'TAS_POSY' => $iY , 'TAS_TYPE' => 'SUBPROCESS' ));
2012-11-22 16:33:58 -04:00
//$oJSON = new Services_JSON();
2012-10-18 15:02:44 -04:00
$oOP = new SubProcess ();
2013-03-04 09:29:59 -04:00
$aData = array ( 'SP_UID' => G :: generateUniqueID (), 'PRO_UID' => 0 , 'TAS_UID' => 0 , 'PRO_PARENT' => $sProcessUID , 'TAS_PARENT' => $oNewTask -> uid , 'SP_TYPE' => 'SIMPLE' , 'SP_SYNCHRONOUS' => 0 , 'SP_SYNCHRONOUS_TYPE' => 'ALL' , 'SP_SYNCHRONOUS_WAIT' => 0 , 'SP_VARIABLES_OUT' => '' , 'SP_VARIABLES_IN' => '' , 'SP_GRID_IN' => '' );
$oOP -> create ( $aData );
2012-10-18 15:02:44 -04:00
2013-03-04 09:29:59 -04:00
return Bootstrap :: json_encode ( $oNewTask ); //$oJSON->encode( $oNewTask );
2012-10-18 15:02:44 -04:00
} catch ( Exception $oError ) {
throw ( $oError );
}
}
/**
* deleteSubProcess
*
* @ param string $sProcessUID
* @ param string $sTaskUID
* @ return boolean true
* throw Exception $oError
*/
2013-03-04 09:29:59 -04:00
public function deleteSubProcess ( $sProcessUID = '' , $sTaskUID = '' )
2012-10-18 15:02:44 -04:00
{
try {
$oTasks = new Tasks ();
2013-03-04 09:29:59 -04:00
$oTasks -> deleteTask ( $sTaskUID );
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> addSelectColumn ( 'SP_UID' );
$oCriteria -> add ( SubProcessPeer :: PRO_PARENT , $sProcessUID );
$oCriteria -> add ( SubProcessPeer :: TAS_PARENT , $sTaskUID );
$oDataset = SubProcessPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
$aRow = $oDataset -> getRow ();
$oSubProcess = new SubProcess ();
2013-03-04 09:29:59 -04:00
$oSubProcess -> remove ( $aRow [ 'SP_UID' ]);
2012-10-18 15:02:44 -04:00
return true ;
} catch ( Exception $oError ) {
throw ( $oError );
}
}
/**
* subProcess_Properties
*
* @ param string $sProcessUID
* @ param string $sTaskUID
* @ param string $sIndex
* @ return void throw Exception $oError
* @ throw Exception $oError
*/
2013-03-04 09:29:59 -04:00
public function subProcess_Properties ( $sProcessUID = '' , $sTaskUID = '' , $sIndex = '' )
2012-10-18 15:02:44 -04:00
{
2013-03-04 09:29:59 -04:00
try {
//echo "$sProcessUID = '', $sTaskUID = '', $sIndex = ''";
$SP_VARIABLES_OUT = array ();
$SP_VARIABLES_IN = array ();
2012-10-18 15:02:44 -04:00
/* Prepare page before to show */
global $_DBArray ;
2013-03-04 09:29:59 -04:00
$_DBArray = ( isset ( $_SESSION [ '_DBArray' ]) ? $_SESSION [ '_DBArray' ] : '' );
$_DBArray [ 'NewCase' ] = $this -> subProcess_TaskIni ( $sProcessUID );
unset ( $_DBArray [ 'TheProcesses' ]);
$_DBArray [ 'TheProcesses' ][] = array ( 'pro_uid' => 'char' , 'value' => 'char' );
2012-10-18 15:02:44 -04:00
$i = 0 ;
foreach ( $_DBArray [ 'NewCase' ] as $aRow ) {
if ( $i > 0 ) {
2013-03-04 09:29:59 -04:00
$_DBArray [ 'TheProcesses' ][] = array ( 'pro_uid' => $aRow [ 'pro_uid' ] . '_' . $i , 'value' => $aRow [ 'value' ] );
2012-10-18 15:02:44 -04:00
}
2013-03-04 09:29:59 -04:00
$i ++ ;
2012-10-18 15:02:44 -04:00
}
//print'<hr>';print_r($_DBArray['NewCase']);print'<hr>';
2013-03-04 09:29:59 -04:00
$oCriteria = new Criteria ( 'workflow' );
2012-10-18 15:02:44 -04:00
$del = DBAdapter :: getStringDelimiter ();
2013-03-04 09:29:59 -04:00
$oCriteria -> add ( SubProcessPeer :: PRO_PARENT , $sProcessUID );
$oCriteria -> add ( SubProcessPeer :: PRO_PARENT , $sProcessUID );
$oCriteria -> add ( SubProcessPeer :: TAS_PARENT , $sTaskUID );
$oCriteria -> addAsColumn ( 'CON_VALUE' , 'C1.CON_VALUE' , 'CON_TITLE' );
$oCriteria -> addAlias ( " C1 " , 'CONTENT' );
$tasTitleConds = array ();
$tasTitleConds [] = array ( SubProcessPeer :: TAS_PARENT , 'C1.CON_ID' );
$tasTitleConds [] = array ( 'C1.CON_CATEGORY' , $del . 'TAS_TITLE' . $del );
$tasTitleConds [] = array ( 'C1.CON_LANG' , $del . SYS_LANG . $del );
$oCriteria -> addJoinMC ( $tasTitleConds , Criteria :: LEFT_JOIN );
$oDataset = SubProcessPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
$aRow = $oDataset -> getRow ();
$aRow [ 'TASKS' ] = $aRow [ 'TAS_UID' ];
//print "<hr>".$aRow['TASKS']."<hr>";
//$aRow['SPROCESS_NAME'] = $aRow['TAS_TITLE'];
$aRow [ 'TAS_TITLE' ] = $aRow [ 'CON_VALUE' ];
$aRow [ 'SPROCESS_NAME' ] = $aRow [ 'CON_VALUE' ];
2013-03-04 09:29:59 -04:00
$SP_VARIABLES_OUT = unserialize ( $aRow [ 'SP_VARIABLES_OUT' ]);
if ( is_array ( $SP_VARIABLES_OUT )) {
2012-10-18 15:02:44 -04:00
$i = 1 ;
foreach ( $SP_VARIABLES_OUT as $indice => $valor ) {
$aRow [ 'grid1' ][ $i ][ 'VAR_OUT1' ] = $indice ;
$aRow [ 'grid1' ][ $i ][ 'VAR_OUT2' ] = $valor ;
2013-03-04 09:29:59 -04:00
$i ++ ;
2012-10-18 15:02:44 -04:00
}
}
2013-03-04 09:29:59 -04:00
$SP_VARIABLES_IN = unserialize ( $aRow [ 'SP_VARIABLES_IN' ]);
if ( is_array ( $SP_VARIABLES_IN )) {
2012-10-18 15:02:44 -04:00
$j = 1 ;
foreach ( $SP_VARIABLES_IN as $indice => $valor ) {
$aRow [ 'grid2' ][ $j ][ 'VAR_IN1' ] = $indice ;
$aRow [ 'grid2' ][ $j ][ 'VAR_IN2' ] = $valor ;
2013-03-04 09:29:59 -04:00
$j ++ ;
2012-10-18 15:02:44 -04:00
}
}
$aRow [ 'INDEX' ] = $sIndex ;
//print '<hr>';print_r($aRow);
global $G_PUBLISH ;
$G_PUBLISH = new Publisher ();
2013-03-04 09:29:59 -04:00
$G_PUBLISH -> AddContent ( 'xmlform' , 'xmlform' , 'processes/processes_subProcess' , '' , $aRow , 'processes_subProcessSave' );
G :: RenderPage ( 'publish' , 'raw' );
2012-10-18 15:02:44 -04:00
} catch ( Exception $oError ) {
throw ( $oError );
}
}
/**
* subProcess_TaskIni
*
* @ param string $sProcessUID
* @ return array $rows
*/
2013-03-04 09:29:59 -04:00
public function subProcess_TaskIni ( $sProcessUID )
2012-10-18 15:02:44 -04:00
{
2013-03-04 09:29:59 -04:00
$tasks = array ();
$aUIDS = array ();
2012-10-18 15:02:44 -04:00
$aUIDS [] = $sProcessUID ;
$c = new Criteria ();
$c -> clearSelectColumns ();
2013-03-04 09:29:59 -04:00
$c -> addSelectColumn ( TaskPeer :: TAS_UID );
$c -> addSelectColumn ( TaskPeer :: PRO_UID );
$c -> add ( TaskPeer :: TAS_START , 'TRUE' );
$c -> add ( TaskPeer :: PRO_UID , $aUIDS , Criteria :: NOT_IN );
2012-10-18 15:02:44 -04:00
//$c->add(TaskPeer::PRO_UID, $sProcessUID, Criteria::NOT_EQUAL);
2013-03-04 09:29:59 -04:00
$rs = TaskPeer :: doSelectRS ( $c );
$rs -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$rs -> next ();
$row = $rs -> getRow ();
2013-03-04 09:29:59 -04:00
while ( is_array ( $row )) {
$tasks [] = array ( 'TAS_UID' => $row [ 'TAS_UID' ], 'PRO_UID' => $row [ 'PRO_UID' ] );
2012-10-18 15:02:44 -04:00
$rs -> next ();
$row = $rs -> getRow ();
}
2013-03-04 09:29:59 -04:00
$rows [] = array ( 'uid' => 'char' , 'value' => 'char' , 'pro_uid' => 'char' );
2012-10-18 15:02:44 -04:00
foreach ( $tasks as $key => $val ) {
2013-03-04 09:29:59 -04:00
$tasTitle = Content :: load ( 'TAS_TITLE' , '' , $val [ 'TAS_UID' ], SYS_LANG );
$proTitle = Content :: load ( 'PRO_TITLE' , '' , $val [ 'PRO_UID' ], SYS_LANG );
2012-10-18 15:02:44 -04:00
$title = " $proTitle ( $tasTitle ) " ;
2013-03-04 09:29:59 -04:00
$rows [] = array ( 'uid' => $val [ 'TAS_UID' ], 'value' => $title , 'pro_uid' => $val [ 'PRO_UID' ] );
2012-10-18 15:02:44 -04:00
}
return $rows ;
}
/**
* eventsList
*
* @ param string $sProcessUID
* @ param string $type
* @ return boolean true
* throw Exception $oError
*/
2013-03-04 09:29:59 -04:00
public function eventsList ( $sProcessUID , $type )
2012-10-18 15:02:44 -04:00
{
try {
global $G_PUBLISH ;
$G_PUBLISH = new Publisher ();
$oHeadPublisher = & headPublisher :: getSingleton ();
2013-03-04 09:29:59 -04:00
$oHeadPublisher -> addScriptFile ( '/jscore/events/events.js' );
2012-10-18 15:02:44 -04:00
switch ( $type ) {
case 'message' :
$EVN_ACTION = " SEND_MESSAGE " ;
break ;
case 'conditional' :
$EVN_ACTION = " EXECUTE_CONDITIONAL_TRIGGER " ;
break ;
case 'multiple' :
$EVN_ACTION = " EXECUTE_TRIGGER " ;
break ;
}
2013-03-04 09:29:59 -04:00
$oCriteria = $this -> getEventsCriteria ( $sProcessUID , $EVN_ACTION );
2012-10-18 15:02:44 -04:00
2013-03-04 09:29:59 -04:00
$G_PUBLISH -> AddContent ( 'propeltable' , 'paged-table' , 'events/eventsShortList' , $oCriteria , array ( 'PRO_UID' => $sProcessUID , 'EVN_TYPE' => $EVN_ACTION ));
G :: RenderPage ( 'publish' , 'raw' );
2012-10-18 15:02:44 -04:00
return true ;
} catch ( Exception $oError ) {
throw ( $oError );
}
}
/* get all the events for a specified process */
/**
* getEventsCriteria
*
* @ param string $sProcessUID
* @ param string $EVN_ACTION
* @ return object ( Criteria ) $oCriteria
*/
2013-03-04 09:29:59 -04:00
public function getEventsCriteria ( $sProcessUID , $EVN_ACTION )
2012-10-18 15:02:44 -04:00
{
try {
$sDelimiter = DBAdapter :: getStringDelimiter ();
2013-03-04 09:29:59 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> addSelectColumn ( EventPeer :: EVN_UID );
$oCriteria -> addSelectColumn ( EventPeer :: EVN_ACTION );
$oCriteria -> addSelectColumn ( EventPeer :: EVN_STATUS );
$oCriteria -> addSelectColumn ( EventPeer :: EVN_WHEN_OCCURS );
$oCriteria -> addSelectColumn ( EventPeer :: EVN_RELATED_TO );
$oCriteria -> addAsColumn ( 'EVN_DESCRIPTION' , ContentPeer :: CON_VALUE );
$aConditions = array ();
$aConditions [] = array ( EventPeer :: EVN_UID , ContentPeer :: CON_ID );
$aConditions [] = array ( ContentPeer :: CON_CATEGORY , $sDelimiter . 'EVN_DESCRIPTION' . $sDelimiter );
$aConditions [] = array ( ContentPeer :: CON_LANG , $sDelimiter . SYS_LANG . $sDelimiter );
$oCriteria -> addJoinMC ( $aConditions , Criteria :: LEFT_JOIN );
$oCriteria -> add ( EventPeer :: PRO_UID , $sProcessUID );
2012-10-18 15:02:44 -04:00
switch ( $EVN_ACTION ) {
case 'SEND_MESSAGE' :
2013-03-04 09:29:59 -04:00
$oCriteria -> add ( EventPeer :: EVN_ACTION , " SEND_MESSAGE " );
2012-10-18 15:02:44 -04:00
break ;
case 'EXECUTE_CONDITIONAL_TRIGGER' :
2013-03-04 09:29:59 -04:00
$oCriteria -> add ( EventPeer :: EVN_ACTION , " EXECUTE_CONDITIONAL_TRIGGER " );
2012-10-18 15:02:44 -04:00
break ;
case 'EXECUTE_TRIGGER' :
2013-03-04 09:29:59 -04:00
$oCriteria -> add ( EventPeer :: EVN_ACTION , " EXECUTE_TRIGGER " );
2012-10-18 15:02:44 -04:00
break ;
}
return $oCriteria ;
} catch ( Exception $oError ) {
throw ( $oError );
}
}
// processMap
/**
* ************************** All Functions for New ProcessMap *****************************************************
*/
/*
2013-03-04 09:29:59 -04:00
* Edit the Process Map information
* @ param string $sProcessUID
* @ return boolean
*/
2012-10-18 15:02:44 -04:00
2013-03-04 09:29:59 -04:00
public function editProcessNew ( $sProcessUID )
2012-10-18 15:02:44 -04:00
{
try {
$oProcess = new Process ();
2013-03-04 09:29:59 -04:00
if ( ! is_null ( $oProcess )) {
2012-10-18 15:02:44 -04:00
$calendar = new Calendar ();
2013-03-04 09:29:59 -04:00
$calendarObj = $calendar -> getCalendarList ( true , true );
2012-10-18 15:02:44 -04:00
global $_DBArray ;
$_DBArray [ 'availableCalendars' ] = $calendarObj [ 'array' ];
$_SESSION [ '_DBArray' ] = $_DBArray ;
2013-03-04 09:29:59 -04:00
$aFields = $oProcess -> load ( $sProcessUID );
2012-10-18 15:02:44 -04:00
$aFields [ 'THETYPE' ] = 'UPDATE' ;
2013-03-04 09:29:59 -04:00
$calendarInfo = $calendar -> getCalendarFor ( $sProcessUID , $sProcessUID , $sProcessUID );
2012-10-18 15:02:44 -04:00
//If the public function returns a DEFAULT calendar it means that this object doesn't have assigned any calendar
$aFields [ 'PRO_CALENDAR' ] = $calendarInfo [ 'CALENDAR_APPLIED' ] != 'DEFAULT' ? $calendarInfo [ 'CALENDAR_UID' ] : " " ;
return $aFields ;
} else {
2013-03-04 09:29:59 -04:00
throw ( new Exception ( 'This row doesn\'t exist!' ));
2012-10-18 15:02:44 -04:00
}
} catch ( Exception $oError ) {
throw ( $oError );
}
}
/*
2013-03-04 09:29:59 -04:00
* Load all categories
* @ return array
*/
2012-10-18 15:02:44 -04:00
2013-03-04 09:29:59 -04:00
public function loadProcessCategory ()
2012-10-18 15:02:44 -04:00
{
$aProcessCategory = '' ;
require_once ( " classes/model/ProcessCategory.php " );
2013-03-04 09:29:59 -04:00
$Criteria = new Criteria ( 'workflow' );
2012-10-18 15:02:44 -04:00
$Criteria -> clearSelectColumns ();
2013-03-04 09:29:59 -04:00
$Criteria -> addSelectColumn ( ProcessCategoryPeer :: CATEGORY_UID );
$Criteria -> addSelectColumn ( ProcessCategoryPeer :: CATEGORY_PARENT );
$Criteria -> addSelectColumn ( ProcessCategoryPeer :: CATEGORY_NAME );
$Criteria -> addSelectColumn ( ProcessCategoryPeer :: CATEGORY_ICON );
2012-10-18 15:02:44 -04:00
2013-03-04 09:29:59 -04:00
$Criteria -> add ( processCategoryPeer :: CATEGORY_UID , " xx " , CRITERIA :: NOT_EQUAL );
$oDataset = processCategoryPeer :: doSelectRS ( $Criteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
while ( $aRow = $oDataset -> getRow ()) {
$aProcessCategory [] = $aRow ;
$oDataset -> next ();
}
return $aProcessCategory ;
}
/*
2013-03-04 09:29:59 -04:00
* Save the tasks Width and Height
* @ param string $sTaskUID
* @ param integer $iX
* @ param integer $iY
* @ return integer
*/
public function saveTaskCordinates ( $sTaskUID = '' , $iX = 110 , $iY = 60 )
2012-10-18 15:02:44 -04:00
{
try {
$oTask = new Task ();
2013-03-04 09:29:59 -04:00
$aFields = $oTask -> load ( $sTaskUID );
2012-10-18 15:02:44 -04:00
$aFields [ 'TAS_UID' ] = $sTaskUID ;
$aFields [ 'TAS_WIDTH' ] = $iX ;
$aFields [ 'TAS_HEIGHT' ] = $iY ;
2013-03-04 09:29:59 -04:00
return $oTask -> update ( $aFields );
2012-10-18 15:02:44 -04:00
} catch ( Exception $oError ) {
throw ( $oError );
}
}
/*
2013-03-04 09:29:59 -04:00
* Save the Annotation Width and Height
* @ param string $sSwimLaneUID
* @ param integer $iX
* @ param integer $iY
* @ return integer
*/
public function saveAnnotationCordinates ( $sSwimLaneUID = '' , $iX = 110 , $iY = 60 )
2012-10-18 15:02:44 -04:00
{
try {
$oSL = new SwimlanesElements ();
2013-03-04 09:29:59 -04:00
$aFields = $oSL -> load ( $sSwimLaneUID );
2012-10-18 15:02:44 -04:00
$aFields [ 'SWI_UID' ] = $sSwimLaneUID ;
$aFields [ 'SWI_WIDTH' ] = $iX ;
$aFields [ 'SWI_HEIGHT' ] = $iY ;
2013-03-04 09:29:59 -04:00
return $oSL -> update ( $aFields );
2012-10-18 15:02:44 -04:00
} catch ( Exception $oError ) {
throw ( $oError );
}
}
/*
2013-03-04 09:29:59 -04:00
* Save the Event Position
* @ param string $sSwimLaneUID
* @ param integer $iX
* @ param integer $iY
* @ return integer
*/
public function saveEventPosition ( $sEventUID = '' , $iX = 110 , $iY = 60 )
2012-10-18 15:02:44 -04:00
{
try {
$oEvents = new Event ();
2013-03-04 09:29:59 -04:00
$aFields = $oEvents -> load ( $sEventUID );
2012-10-18 15:02:44 -04:00
$aFields [ 'EVN_UID' ] = $sEventUID ;
$aFields [ 'EVN_POSX' ] = $iX ;
$aFields [ 'EVN_POSY' ] = $iY ;
2013-03-04 09:29:59 -04:00
return $oEvents -> update ( $aFields );
2012-10-18 15:02:44 -04:00
} catch ( Exception $oError ) {
throw ( $oError );
}
}
/**
* get all the Active process
*
* SELECT PROCESS . PRO_UID AS UID , CONTENT . CON_VALUE AS VALUE FROM PROCESS , CONTENT
* WHERE ( PROCESS . PRO_UID = CONTENT . CON_ID AND PROCESS . PRO_STATUS != 'DISABLED' AND CONTENT . CON_CATEGORY = 'PRO_TITLE' AND CONTENT . CON_LANG = 'en' )
* ORDER BY CONTENT . CON_VALUE
* ]] >
*/
2013-03-04 09:29:59 -04:00
public function getAllProcesses ()
2012-10-18 15:02:44 -04:00
{
2013-03-04 09:29:59 -04:00
$aProcesses = array ();
2012-10-18 15:02:44 -04:00
//$aProcesses [] = array ('PRO_UID' => 'char', 'PRO_TITLE' => 'char');
2013-03-04 09:29:59 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> addSelectColumn ( ProcessPeer :: PRO_UID );
$oCriteria -> add ( ProcessPeer :: PRO_STATUS , 'DISABLED' , Criteria :: NOT_EQUAL );
$oDataset = ProcessPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
$oProcess = new Process ();
while ( $aRow = $oDataset -> getRow ()) {
2013-03-04 09:29:59 -04:00
$aProcess = $oProcess -> load ( $aRow [ 'PRO_UID' ]);
$aProcesses [] = array ( 'value' => $aProcess [ 'PRO_UID' ], 'name' => $aProcess [ 'PRO_TITLE' ] );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
}
2012-11-22 16:33:58 -04:00
//$oJSON = new Services_JSON();
2013-03-04 09:29:59 -04:00
return Bootstrap :: json_encode ( $aProcesses ); //$oJSON->encode( $aProcesses );
2012-10-18 15:02:44 -04:00
}
/*
2013-03-04 09:29:59 -04:00
* Return the steps list criteria object
* @ param string $sTaskUID
* @ return array
*
*/
public function getDynaformList ( $sTaskUID = '' )
2012-10-18 15:02:44 -04:00
{
try {
//call plugin
$oPluginRegistry = & PMPluginRegistry :: getSingleton ();
$externalSteps = $oPluginRegistry -> getSteps ();
2013-03-04 09:29:59 -04:00
$aSteps = array ();
2012-10-18 15:02:44 -04:00
//$aSteps [] = array ('STEP_TITLE' => 'char', 'STEP_UID' => 'char', 'STEP_TYPE_OBJ' => 'char', 'STEP_CONDITION' => 'char', 'STEP_POSITION' => 'integer' );
2013-03-04 09:29:59 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> add ( StepPeer :: TAS_UID , $sTaskUID );
$oCriteria -> addAscendingOrderByColumn ( StepPeer :: STEP_POSITION );
$oDataset = StepPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
while ( $aRow = $oDataset -> getRow ()) {
$urlEdit = '' ;
$linkEditValue = '' ;
switch ( $aRow [ 'STEP_TYPE_OBJ' ]) {
case 'DYNAFORM' :
$oDynaform = new Dynaform ();
2013-03-04 09:29:59 -04:00
$aFields = $oDynaform -> load ( $aRow [ 'STEP_UID_OBJ' ]);
2012-10-18 15:02:44 -04:00
$sTitle = $aFields [ 'DYN_TITLE' ];
$DYN_UID = $aFields [ 'DYN_UID' ];
break ;
}
2013-03-04 09:29:59 -04:00
$aSteps [] = array ( 'name' => $sTitle , 'value' => $DYN_UID );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
}
return $aSteps ;
} catch ( Exception $oError ) {
throw ( $oError );
}
}
2013-03-04 09:29:59 -04:00
public function listNewWebEntry ( $sProcessUID , $sEventUID )
2012-10-18 15:02:44 -04:00
{
try {
global $G_PUBLISH ;
global $G_FORM ;
$G_PUBLISH = new Publisher ();
require_once 'classes/model/Event.php' ;
$oEvent = new Event ();
$arlink = '' ;
2013-03-04 09:29:59 -04:00
$oEvent = EventPeer :: retrieveByPK ( $sEventUID );
if ( ! is_null ( $oEvent )) {
$oData = $oEvent -> load ( $sEventUID );
2012-10-18 15:02:44 -04:00
$dynTitle = '' ;
$dynUid = '' ;
$task_name = '' ;
$usr_uid_evn = $oEvent -> getEvnConditions ();
if ( $oData [ 'EVN_ACTION' ] != '' && $oData [ 'EVN_ACTION' ] != 'WEB_ENTRY' ) {
require_once 'classes/model/Content.php' ;
require_once 'classes/model/Task.php' ;
require_once 'classes/model/Dynaform.php' ;
$oContent = new Content ();
2013-03-04 09:29:59 -04:00
$dynTitle = $oContent -> load ( 'DYN_TITLE' , '' , $oData [ 'EVN_ACTION' ], 'en' );
2012-10-18 15:02:44 -04:00
$task_uid = $oEvent -> getEvnTasUidTo ();
$dyn = new Dynaform ();
2013-03-04 09:29:59 -04:00
$dyn -> load ( $oData [ 'EVN_ACTION' ]);
2012-10-18 15:02:44 -04:00
$dynUid = $dyn -> getDynUid ();
$task = new Task ();
2013-03-04 09:29:59 -04:00
$task -> load ( $task_uid );
2012-10-18 15:02:44 -04:00
$task_name = $task -> getTasTitle ();
2013-03-04 09:29:59 -04:00
if ( G :: is_https ()) {
2012-10-18 15:02:44 -04:00
$http = 'https://' ;
2013-03-04 09:29:59 -04:00
} else {
2012-10-18 15:02:44 -04:00
$http = 'http://' ;
2013-03-04 09:29:59 -04:00
}
2012-10-18 15:02:44 -04:00
$link = $http . $_SERVER [ 'HTTP_HOST' ] . '/sys' . SYS_SYS . '/' . SYS_LANG . '/' . SYS_SKIN . '/' . $sProcessUID . '/' ;
2013-03-04 09:29:59 -04:00
$row = array ();
2012-10-18 15:02:44 -04:00
$c = 0 ;
/*
2013-03-04 09:29:59 -04:00
$oTask = new Task ( );
$TaskFields = $oTask -> kgetassigType ( $sProcessUID , $tas = '' );
*/
2012-10-18 15:02:44 -04:00
$TaskFields [ 'TAS_ASSIGN_TYPE' ] = '' ;
//$row [] = array ('W_TITLE' => '', 'W_DELETE' => '', 'TAS_ASSIGN_TYPE' => $TaskFields ['TAS_ASSIGN_TYPE'] );
2013-03-04 09:29:59 -04:00
if ( is_dir ( PATH_DATA . " sites " . PATH_SEP . SYS_SYS . PATH_SEP . " public " . PATH_SEP . $sProcessUID )) {
$dir = opendir ( PATH_DATA . " sites " . PATH_SEP . SYS_SYS . PATH_SEP . " public " . PATH_SEP . $sProcessUID );
$dynTitle = str_replace ( ' ' , '_' , str_replace ( '/' , '_' , $dynTitle ));
2012-10-18 15:02:44 -04:00
$arlink = $link . $dynTitle . '.php' ;
//$arlink = "<a href='" . $alink . "' target='blank'><font color='#9999CC'>" . $alink . "</font></a>";
}
}
}
2013-03-04 09:29:59 -04:00
$row = array ( 'W_LINK' => $arlink , 'DYN_TITLE' => $dynTitle , 'TAS_TITLE' => $task_name , 'USR_UID' => $usr_uid_evn , 'DYN_UID' => $dynUid );
2012-10-18 15:02:44 -04:00
// $oJSON = new Services_JSON ( );
// $tmpData = $oJSON->encode( $row ) ;
// $tmpData = str_replace("\\/","/",'{success:true,data:'.$tmpData.'}'); // unescape the slashes
// $result = $tmpData;
2013-03-04 09:29:59 -04:00
$result = array ();
2012-10-18 15:02:44 -04:00
$result [ 'success' ] = true ;
$result [ 'data' ] = $row ;
return $result ;
} catch ( Exception $oError ) {
throw ( $oError );
}
}
/*
2013-03-04 09:29:59 -04:00
* Users assigned to Tasks
* @ param string $sProcessUID
* @ param string $sTaskUID
* @ return boolean
*/
public function usersExtList ( $start , $limit , $sProcessUID = '' , $sTaskUID = '' )
2012-10-18 15:02:44 -04:00
{
try {
$oProcess = new Process ();
2013-03-04 09:29:59 -04:00
$aFields = $oProcess -> load ( $sProcessUID );
2012-10-18 15:02:44 -04:00
$oTask = new Task ();
2013-03-04 09:29:59 -04:00
$aFields = $oTask -> load ( $sTaskUID );
2012-10-18 15:02:44 -04:00
$_SESSION [ 'iType' ] = 1 ;
$aFields [ 'TASK' ] = $sTaskUID ;
$aFields [ 'TYPE' ] = $_SESSION [ 'iType' ];
2013-03-04 09:29:59 -04:00
$aFields [ 'OF_TO_ASSIGN' ] = G :: LoadTranslation ( 'ID_DE_ASSIGN' );
$aFields [ 'CONFIRM' ] = G :: LoadTranslation ( 'ID_MSG_CONFIRM_DEASIGN_USER_GROUP_MESSAGE' );
2012-10-18 15:02:44 -04:00
$aFields [ 'UIDS' ] = " '0' " ;
$oTasks = new Tasks ();
$oGroups = new Groups ();
2013-03-04 09:29:59 -04:00
$aAux1 = $oTasks -> getGroupsOfTask ( $sTaskUID , $_SESSION [ 'iType' ]);
2012-10-18 15:02:44 -04:00
foreach ( $aAux1 as $aGroup ) {
2013-03-04 09:29:59 -04:00
$aAux2 = $oGroups -> getUsersOfGroup ( $aGroup [ 'GRP_UID' ]);
2012-10-18 15:02:44 -04:00
foreach ( $aAux2 as $aUser ) {
$aFields [ 'UIDS' ] .= " ,' " . $aUser [ 'USR_UID' ] . " ' " ;
}
}
global $G_PUBLISH ;
$G_PUBLISH = new Publisher ();
$oTask = new Task ();
2013-03-04 09:29:59 -04:00
$aTask = $oTask -> load ( $sTaskUID );
2012-10-18 15:02:44 -04:00
2013-03-04 09:29:59 -04:00
$this -> getExtTaskUsersCriteria ( $start , $limit , $sTaskUID , $_SESSION [ 'iType' ]);
2012-10-18 15:02:44 -04:00
return $_SESSION [ '_DBArray' ][ 'taskUsers' ];
} catch ( Exception $oError ) {
throw ( $oError );
}
}
2013-03-04 09:29:59 -04:00
public function caseNewSchedulerList ( $sSchUID )
2012-10-18 15:02:44 -04:00
{
try {
$oCaseScheduler = new CaseScheduler ();
2013-03-04 09:29:59 -04:00
$aRows = $oCaseScheduler -> load ( $sSchUID );
2012-10-18 15:02:44 -04:00
return $aRows ;
} catch ( Exception $oError ) {
throw ( $oError );
}
}
2013-03-04 09:29:59 -04:00
2012-10-18 15:02:44 -04:00
//new functions
2013-03-04 09:29:59 -04:00
public function getAllTaskUserCount ()
2012-10-18 15:02:44 -04:00
{
$c = $this -> tmpCriteria ;
$c -> clearSelectColumns ();
2013-03-04 09:29:59 -04:00
$c -> addSelectColumn ( 'COUNT(*)' );
$oDataset = TaskUserPeer :: doSelectRS ( $c );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
$aRow = $oDataset -> getRow ();
2013-03-04 09:29:59 -04:00
if ( is_array ( $aRow )) {
2012-10-18 15:02:44 -04:00
return $aRow [ 0 ];
2013-03-04 09:29:59 -04:00
} else {
2012-10-18 15:02:44 -04:00
return 0 ;
2013-03-04 09:29:59 -04:00
}
2012-10-18 15:02:44 -04:00
}
2013-03-04 09:29:59 -04:00
public function getExtTaskUsersCriteria ( $start , $limit , $sTaskUID = '' , $iType = 1 )
2012-10-18 15:02:44 -04:00
{
try {
2013-03-04 09:29:59 -04:00
$aUsers = array ();
$aUsers [] = array ( 'LABEL' => 'char' , 'TAS_UID' => 'char' , 'USR_UID' => 'char' , 'TU_TYPE' => 'integer' , 'TU_RELATION' => 'integer' );
2012-10-18 15:02:44 -04:00
$sDelimiter = DBAdapter :: getStringDelimiter ();
2013-03-04 09:29:59 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> addAsColumn ( 'GRP_TITLE' , 'C.CON_VALUE' );
$oCriteria -> addSelectColumn ( TaskUserPeer :: TAS_UID );
$oCriteria -> addSelectColumn ( TaskUserPeer :: USR_UID );
$oCriteria -> addSelectColumn ( TaskUserPeer :: TU_TYPE );
$oCriteria -> addSelectColumn ( TaskUserPeer :: TU_RELATION );
$oCriteria -> addAlias ( 'C' , 'CONTENT' );
$aConditions = array ();
$aConditions [] = array ( TaskUserPeer :: USR_UID , 'C.CON_ID' );
$aConditions [] = array ( 'C.CON_CATEGORY' , $sDelimiter . 'GRP_TITLE' . $sDelimiter );
$aConditions [] = array ( 'C.CON_LANG' , $sDelimiter . SYS_LANG . $sDelimiter );
$oCriteria -> addJoinMC ( $aConditions , Criteria :: LEFT_JOIN );
$oCriteria -> add ( TaskUserPeer :: TAS_UID , $sTaskUID );
$oCriteria -> add ( TaskUserPeer :: TU_TYPE , $iType );
$oCriteria -> add ( TaskUserPeer :: TU_RELATION , 2 );
2012-10-18 15:02:44 -04:00
$this -> tmpCriteria = clone $oCriteria ;
2013-03-04 09:29:59 -04:00
if ( $start != '' ) {
$oCriteria -> setOffset ( $start );
}
if ( $limit != '' ) {
$oCriteria -> setLimit ( $limit );
}
2012-10-18 15:02:44 -04:00
2013-03-04 09:29:59 -04:00
$oDataset = TaskUserPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
$c = 0 ;
while ( $aRow = $oDataset -> getRow ()) {
2013-03-04 09:29:59 -04:00
$c ++ ;
2012-10-18 15:02:44 -04:00
$oGroup = new Groupwf ();
2013-03-04 09:29:59 -04:00
$aFields = $oGroup -> load ( $aRow [ 'USR_UID' ]);
2012-10-18 15:02:44 -04:00
if ( $aFields [ 'GRP_STATUS' ] == 'ACTIVE' ) {
2013-03-04 09:29:59 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> addSelectColumn ( 'COUNT(*) AS MEMBERS_NUMBER' );
$oCriteria -> add ( GroupUserPeer :: GRP_UID , $aRow [ 'USR_UID' ]);
$oDataset2 = GroupUserPeer :: doSelectRS ( $oCriteria );
$oDataset2 -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset2 -> next ();
$aRow2 = $oDataset2 -> getRow ();
} else {
2013-03-04 09:29:59 -04:00
$aRow2 [ 'GROUP_INACTIVE' ] = '<strong>(' . G :: LoadTranslation ( 'ID_GROUP_INACTIVE' ) . ')</strong>' ;
2012-10-18 15:02:44 -04:00
}
//$aUsers [] = array ('LABEL' => (! isset ( $aRow2 ['GROUP_INACTIVE'] ) ? $aRow ['GRP_TITLE'] . ' <a href="#" onclick="usersGroup(\'' . $aRow ['USR_UID'] . '\', \'' . $c . '\');return false;"><font color="green"><strong>(' . $aRow2 ['MEMBERS_NUMBER'] . ' ' . (( int ) $aRow2 ['MEMBERS_NUMBER'] == 1 ? G::LoadTranslation ( 'ID_USER' ) : G::LoadTranslation ( 'ID_USERS' )) . ')</strong></font></a> <br /><div id="users' . $c . '" style="display: none"></div>' : $aRow ['GRP_TITLE'] . ' ' . $aRow2 ['GROUP_INACTIVE']), 'TAS_UID' => $aRow ['TAS_UID'], 'USR_UID' => $aRow ['USR_UID'], 'TU_TYPE' => $aRow ['TU_TYPE'], 'TU_RELATION' => $aRow ['TU_RELATION'] );
2013-03-04 09:29:59 -04:00
$aUsers [] = array ( 'LABEL' => ( ! isset ( $aRow2 [ 'GROUP_INACTIVE' ]) ? $aRow [ 'GRP_TITLE' ] . ' <font color="green"><strong>(' . $aRow2 [ 'MEMBERS_NUMBER' ] . ' ' . (( int ) $aRow2 [ 'MEMBERS_NUMBER' ] == 1 ? G :: LoadTranslation ( 'ID_USER' ) : G :: LoadTranslation ( 'ID_USERS' )) . ')</strong></font><br /><div id="users' . $c . '" style="display: none"></div>' : $aRow [ 'GRP_TITLE' ] . ' ' . $aRow2 [ 'GROUP_INACTIVE' ]), 'TAS_UID' => $aRow [ 'TAS_UID' ], 'USR_UID' => $aRow [ 'USR_UID' ], 'TU_TYPE' => $aRow [ 'TU_TYPE' ], 'TU_RELATION' => $aRow [ 'TU_RELATION' ] );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
}
2013-03-04 09:29:59 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> addSelectColumn ( UsersPeer :: USR_FIRSTNAME );
$oCriteria -> addSelectColumn ( UsersPeer :: USR_LASTNAME );
$oCriteria -> addSelectColumn ( TaskUserPeer :: TAS_UID );
$oCriteria -> addSelectColumn ( TaskUserPeer :: USR_UID );
$oCriteria -> addSelectColumn ( TaskUserPeer :: TU_TYPE );
$oCriteria -> addSelectColumn ( TaskUserPeer :: TU_RELATION );
$oCriteria -> addJoin ( TaskUserPeer :: USR_UID , UsersPeer :: USR_UID , Criteria :: LEFT_JOIN );
$oCriteria -> add ( TaskUserPeer :: TAS_UID , $sTaskUID );
$oCriteria -> add ( TaskUserPeer :: TU_TYPE , $iType );
$oCriteria -> add ( TaskUserPeer :: TU_RELATION , 1 );
$oDataset = TaskUserPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
while ( $aRow = $oDataset -> getRow ()) {
2013-03-04 09:29:59 -04:00
$aUsers [] = array ( 'LABEL' => $aRow [ 'USR_FIRSTNAME' ] . ' ' . $aRow [ 'USR_LASTNAME' ], 'TAS_UID' => $aRow [ 'TAS_UID' ], 'USR_UID' => $aRow [ 'USR_UID' ], 'TU_TYPE' => $aRow [ 'TU_TYPE' ], 'TU_RELATION' => $aRow [ 'TU_RELATION' ] );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
}
global $_DBArray ;
2013-03-04 09:29:59 -04:00
$_DBArray = ( isset ( $_SESSION [ '_DBArray' ]) ? $_SESSION [ '_DBArray' ] : '' );
2012-10-18 15:02:44 -04:00
$_DBArray [ 'taskUsers' ] = $aUsers ;
$_SESSION [ '_DBArray' ] = $_DBArray ;
2013-03-04 09:29:59 -04:00
G :: LoadClass ( 'ArrayPeer' );
$oCriteria = new Criteria ( 'dbarray' );
$oCriteria -> setDBArrayTable ( 'taskUsers' );
$oCriteria -> addDescendingOrderByColumn ( TaskUserPeer :: TU_RELATION );
$oCriteria -> addAscendingOrderByColumn ( 'LABEL' );
2012-10-18 15:02:44 -04:00
return $oCriteria ;
} catch ( Exception $oError ) {
throw ( $oError );
}
}
2013-03-04 09:29:59 -04:00
public function getAvailableExtUsersCriteria ( $sTaskUID = '' , $iType = 1 )
2012-10-18 15:02:44 -04:00
{
try {
$oTasks = new Tasks ();
2013-03-04 09:29:59 -04:00
$aAux = $oTasks -> getGroupsOfTask ( $sTaskUID , $iType );
$aUIDS1 = array ();
$aUIDS2 = array ();
2012-10-18 15:02:44 -04:00
foreach ( $aAux as $aGroup ) {
$aUIDS1 [] = $aGroup [ 'GRP_UID' ];
}
2013-03-04 09:29:59 -04:00
$aAux = $oTasks -> getUsersOfTask ( $sTaskUID , $iType );
2012-10-18 15:02:44 -04:00
foreach ( $aAux as $aUser ) {
$aUIDS2 [] = $aUser [ 'USR_UID' ];
}
2013-03-04 09:29:59 -04:00
$aUsers = array ();
2012-10-18 15:02:44 -04:00
//$aUsers [] = array ('LABEL' => 'char', 'TAS_UID' => 'char', 'USR_UID' => 'char', 'TU_TYPE' => 'integer', 'TU_RELATION' => 'integer' );
$sDelimiter = DBAdapter :: getStringDelimiter ();
2013-03-04 09:29:59 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> addSelectColumn ( GroupwfPeer :: GRP_UID );
$oCriteria -> addAsColumn ( 'GRP_TITLE' , 'C.CON_VALUE' );
$oCriteria -> addAlias ( 'C' , 'CONTENT' );
$aConditions = array ();
$aConditions [] = array ( GroupwfPeer :: GRP_UID , 'C.CON_ID' );
$aConditions [] = array ( 'C.CON_CATEGORY' , $sDelimiter . 'GRP_TITLE' . $sDelimiter );
$aConditions [] = array ( 'C.CON_LANG' , $sDelimiter . SYS_LANG . $sDelimiter );
$oCriteria -> addJoinMC ( $aConditions , Criteria :: LEFT_JOIN );
$oCriteria -> add ( GroupwfPeer :: GRP_STATUS , 'ACTIVE' );
$oCriteria -> add ( GroupwfPeer :: GRP_UID , $aUIDS1 , Criteria :: NOT_IN );
2012-10-18 15:02:44 -04:00
//$oCriteria->add(GroupwfPeer::GRP_UID, '', Criteria::NOT_EQUAL);
2013-03-04 09:29:59 -04:00
$oDataset = GroupwfPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
$c = 0 ;
while ( $aRow = $oDataset -> getRow ()) {
2013-03-04 09:29:59 -04:00
$c ++ ;
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> addSelectColumn ( 'COUNT(*) AS MEMBERS_NUMBER' );
$oCriteria -> add ( GroupUserPeer :: GRP_UID , $aRow [ 'GRP_UID' ]);
$oDataset2 = GroupUserPeer :: doSelectRS ( $oCriteria );
$oDataset2 -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset2 -> next ();
$aRow2 = $oDataset2 -> getRow ();
//$aUsers [] = array ('LABEL' => $aRow ['GRP_TITLE'] . ' <a href="#" onclick="usersGroup(\'' . $aRow ['GRP_UID'] . '\', \'' . $c . '\');return false;"><font color="green"><strong>(' . $aRow2 ['MEMBERS_NUMBER'] . ' ' . (( int ) $aRow2 ['MEMBERS_NUMBER'] == 1 ? G::LoadTranslation ( 'ID_USER' ) : G::LoadTranslation ( 'ID_USERS' )) . ')</strong></font></a> <br /><div id="users' . $c . '" style="display: none"></div>', 'TAS_UID' => $sTaskUID, 'USR_UID' => $aRow ['GRP_UID'], 'TU_TYPE' => $iType, 'TU_RELATION' => 2 );
2013-03-04 09:29:59 -04:00
$aUsers [] = array (
'LABEL' => $aRow [ 'GRP_TITLE' ] . ' <font color="green"><strong>(' . $aRow2 [ 'MEMBERS_NUMBER' ] . ' ' . (( int ) $aRow2 [ 'MEMBERS_NUMBER' ] == 1 ? G :: LoadTranslation ( 'ID_USER' ) : G :: LoadTranslation ( 'ID_USERS' )) . ')</strong></font><br /><div id="users' . $c . '" style="display: none"></div>' , 'TAS_UID' => $sTaskUID , 'USR_UID' => $aRow [ 'GRP_UID' ], 'TU_TYPE' => $iType , 'TU_RELATION' => 2
2012-10-18 15:02:44 -04:00
);
$oDataset -> next ();
}
$sDelimiter = DBAdapter :: getStringDelimiter ();
2013-03-04 09:29:59 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> addSelectColumn ( UsersPeer :: USR_UID );
$oCriteria -> addSelectColumn ( UsersPeer :: USR_FIRSTNAME );
$oCriteria -> addSelectColumn ( UsersPeer :: USR_LASTNAME );
$oCriteria -> add ( UsersPeer :: USR_STATUS , 'ACTIVE' );
$oCriteria -> add ( UsersPeer :: USR_UID , $aUIDS2 , Criteria :: NOT_IN );
$oDataset = UsersPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
while ( $aRow = $oDataset -> getRow ()) {
2013-03-04 09:29:59 -04:00
$aUsers [] = array ( 'LABEL' => $aRow [ 'USR_FIRSTNAME' ] . ' ' . $aRow [ 'USR_LASTNAME' ], 'TAS_UID' => $sTaskUID , 'USR_UID' => $aRow [ 'USR_UID' ], 'TU_TYPE' => $iType , 'TU_RELATION' => 1 );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
}
global $_DBArray ;
2013-03-04 09:29:59 -04:00
$_DBArray = ( isset ( $_SESSION [ '_DBArray' ]) ? $_SESSION [ '_DBArray' ] : '' );
2012-10-18 15:02:44 -04:00
$_DBArray [ 'availableUsers' ] = $aUsers ;
$_SESSION [ '_DBArray' ] = $_DBArray ;
//return $oCriteria;
return $_SESSION [ '_DBArray' ][ 'availableUsers' ];
} catch ( Exception $oError ) {
throw ( $oError );
}
}
/**
* Return the Additional PM tables list created by user
* @ return object
2013-03-04 09:29:59 -04:00
* */
public function getExtAdditionalTablesList ( $sTab_UID = '' )
{
$aAdditionalTables = array ();
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> addSelectColumn ( AdditionalTablesPeer :: ADD_TAB_UID );
$oCriteria -> addSelectColumn ( AdditionalTablesPeer :: ADD_TAB_NAME );
$oCriteria -> addSelectColumn ( AdditionalTablesPeer :: ADD_TAB_DESCRIPTION );
$oCriteria -> add ( AdditionalTablesPeer :: ADD_TAB_UID , '' , Criteria :: NOT_EQUAL );
$oDataset = AdditionalTablesPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
while ( $aRow = $oDataset -> getRow ()) {
2013-03-04 09:29:59 -04:00
$aAdditionalTables [] = array ( 'ADD_TAB_UID' => $aRow [ 'ADD_TAB_UID' ], 'ADD_TAB_NAME' => $aRow [ 'ADD_TAB_NAME' ], 'ADD_TAB_DESCRIPTION' => $aRow [ 'ADD_TAB_DESCRIPTION' ] );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
}
return $aAdditionalTables ;
}
/**
* Return the available building blocks list criteria object
* @ param string $sProcessUID
* @ param string $sTaskUID
* @ return object
2013-03-04 09:29:59 -04:00
*/
public function getExtAvailableBBCriteria ( $sProcessUID = '' , $sTaskUID = '' )
2012-10-18 15:02:44 -04:00
{
try {
$_SESSION [ 'TASK' ] = $sTaskUID ;
$oTasks = new Tasks ();
$_SESSION [ 'TASK' ] = $sTaskUID ;
2013-03-04 09:29:59 -04:00
$aSteps = $oTasks -> getStepsOfTask ( $sTaskUID );
$sUIDs = array ();
2012-10-18 15:02:44 -04:00
foreach ( $aSteps as $aStep ) {
$sUIDs [] = $aStep [ 'STEP_UID_OBJ' ];
}
2013-03-04 09:29:59 -04:00
$aBB = array ();
$aBB [] = array ( 'STEP_UID' => 'char' , 'STEP_TITLE' => 'char' , 'STEP_TYPE_OBJ' => 'char' , 'STEP_MODE' => 'char' , 'STEP_UID_OBJ' => 'char' );
2012-10-18 15:02:44 -04:00
$sDelimiter = DBAdapter :: getStringDelimiter ();
2013-03-04 09:29:59 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> addSelectColumn ( DynaformPeer :: DYN_UID );
$oCriteria -> addAsColumn ( 'DYN_TITLE' , 'C.CON_VALUE' );
$oCriteria -> addAlias ( 'C' , 'CONTENT' );
$aConditions = array ();
$aConditions [] = array ( DynaformPeer :: DYN_UID , 'C.CON_ID' );
$aConditions [] = array ( 'C.CON_CATEGORY' , $sDelimiter . 'DYN_TITLE' . $sDelimiter );
$aConditions [] = array ( 'C.CON_LANG' , $sDelimiter . SYS_LANG . $sDelimiter );
$oCriteria -> addJoinMC ( $aConditions , Criteria :: LEFT_JOIN );
$oCriteria -> add ( DynaformPeer :: PRO_UID , $sProcessUID );
$oCriteria -> add ( DynaformPeer :: DYN_UID , $sUIDs , Criteria :: NOT_IN );
$oCriteria -> add ( DynaformPeer :: DYN_TYPE , 'xmlform' );
$oDataset = DynaformPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
$i = 0 ;
while ( $aRow = $oDataset -> getRow ()) {
2013-03-04 09:29:59 -04:00
$i ++ ;
/* $aBB [] = array ( 'STEP_UID' => $aRow [ 'DYN_UID' ], 'STEP_TITLE' => $aRow [ 'DYN_TITLE' ], 'STEP_TYPE_OBJ' => 'DYNAFORM' , 'STEP_MODE' => '<select id="STEP_MODE_' . $aRow [ 'DYN_UID' ] . ' " >
< option value = " EDIT " > Edit </ option >
< option value = " VIEW " > View </ option >
</ select > ' ); */
$aBB [] = array ( 'STEP_UID' => $aRow [ 'DYN_UID' ], 'STEP_TITLE' => $aRow [ 'DYN_TITLE' ], 'STEP_TYPE_OBJ' => 'DYNAFORM' , 'STEP_MODE' => 'EDIT' , 'STEP_UID_OBJ' => $aRow [ 'DYN_UID' ] );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
}
2013-03-04 09:29:59 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> addSelectColumn ( InputDocumentPeer :: INP_DOC_UID );
$oCriteria -> addAsColumn ( 'INP_DOC_TITLE' , 'C.CON_VALUE' );
$oCriteria -> addAlias ( 'C' , 'CONTENT' );
$aConditions = array ();
$aConditions [] = array ( InputDocumentPeer :: INP_DOC_UID , 'C.CON_ID' );
$aConditions [] = array ( 'C.CON_CATEGORY' , $sDelimiter . 'INP_DOC_TITLE' . $sDelimiter );
$aConditions [] = array ( 'C.CON_LANG' , $sDelimiter . SYS_LANG . $sDelimiter );
$oCriteria -> addJoinMC ( $aConditions , Criteria :: LEFT_JOIN );
$oCriteria -> add ( InputDocumentPeer :: PRO_UID , $sProcessUID );
$oCriteria -> add ( InputDocumentPeer :: INP_DOC_UID , $sUIDs , Criteria :: NOT_IN );
$oDataset = InputDocumentPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
while ( $aRow = $oDataset -> getRow ()) {
2013-03-04 09:29:59 -04:00
$aBB [] = array (
'STEP_UID' => $aRow [ 'INP_DOC_UID' ],
'STEP_UID_OBJ' => $aRow [ 'INP_DOC_UID' ],
'STEP_TITLE' => $aRow [ 'INP_DOC_TITLE' ],
'STEP_TYPE_OBJ' => 'INPUT_DOCUMENT' ,
'STEP_MODE' => '<input type="hidden" id="STEP_MODE_' . $aRow [ 'INP_DOC_UID' ] . '">'
2012-10-18 15:02:44 -04:00
);
$oDataset -> next ();
}
2013-03-04 09:29:59 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> addSelectColumn ( OutputDocumentPeer :: OUT_DOC_UID );
$oCriteria -> addAsColumn ( 'OUT_DOC_TITLE' , 'C.CON_VALUE' );
$oCriteria -> addAlias ( 'C' , 'CONTENT' );
$aConditions = array ();
$aConditions [] = array ( OutputDocumentPeer :: OUT_DOC_UID , 'C.CON_ID' );
$aConditions [] = array ( 'C.CON_CATEGORY' , $sDelimiter . 'OUT_DOC_TITLE' . $sDelimiter );
$aConditions [] = array ( 'C.CON_LANG' , $sDelimiter . SYS_LANG . $sDelimiter );
$oCriteria -> addJoinMC ( $aConditions , Criteria :: LEFT_JOIN );
$oCriteria -> add ( OutputDocumentPeer :: PRO_UID , $sProcessUID );
$oCriteria -> add ( OutputDocumentPeer :: OUT_DOC_UID , $sUIDs , Criteria :: NOT_IN );
$oDataset = OutputDocumentPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
while ( $aRow = $oDataset -> getRow ()) {
2013-03-04 09:29:59 -04:00
$aBB [] = array (
'STEP_UID' => $aRow [ 'OUT_DOC_UID' ],
'STEP_UID_OBJ' => $aRow [ 'OUT_DOC_UID' ],
'STEP_TITLE' => $aRow [ 'OUT_DOC_TITLE' ],
'STEP_TYPE_OBJ' => 'OUTPUT_DOCUMENT' ,
'STEP_MODE' => '<input type="hidden" id="STEP_MODE_' . $aRow [ 'OUT_DOC_UID' ] . '">'
2012-10-18 15:02:44 -04:00
);
$oDataset -> next ();
}
//call plugin
$oPluginRegistry = & PMPluginRegistry :: getSingleton ();
$externalSteps = $oPluginRegistry -> getSteps ();
2013-03-04 09:29:59 -04:00
if ( is_array ( $externalSteps ) && count ( $externalSteps ) > 0 ) {
2012-10-18 15:02:44 -04:00
foreach ( $externalSteps as $key => $stepVar ) {
2013-03-04 09:29:59 -04:00
$aBB [] = array ( 'STEP_UID' => $stepVar -> sStepId , 'STEP_TITLE' => $stepVar -> sStepTitle , 'STEP_TYPE_OBJ' => 'EXTERNAL' , 'STEP_MODE' => '<input type="hidden" id="STEP_MODE_' . $stepVar -> sStepId . '">' );
2012-10-18 15:02:44 -04:00
}
}
global $_DBArray ;
2013-03-04 09:29:59 -04:00
$_DBArray = ( isset ( $_SESSION [ '_DBArray' ]) ? $_SESSION [ '_DBArray' ] : '' );
2012-10-18 15:02:44 -04:00
$_DBArray [ 'availableBB' ] = $aBB ;
$_SESSION [ '_DBArray' ] = $_DBArray ;
2013-03-04 09:29:59 -04:00
G :: LoadClass ( 'ArrayPeer' );
$oCriteria = new Criteria ( 'dbarray' );
$oCriteria -> setDBArrayTable ( 'availableBB' );
$oCriteria -> addAscendingOrderByColumn ( 'STEP_TYPE_OBJ' );
$oCriteria -> addAscendingOrderByColumn ( 'STEP_TITLE' );
2012-10-18 15:02:44 -04:00
//return $oCriteria;
return $_SESSION [ '_DBArray' ][ 'availableBB' ];
} catch ( Exception $oError ) {
throw ( $oError );
}
}
2013-03-04 09:29:59 -04:00
public function getAllStepCount ()
2012-10-18 15:02:44 -04:00
{
$c = $this -> tmpCriteria ;
$c -> clearSelectColumns ();
2013-03-04 09:29:59 -04:00
$c -> addSelectColumn ( 'COUNT(*)' );
$oDataset = StepPeer :: doSelectRS ( $c );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
$aRow = $oDataset -> getRow ();
2013-03-04 09:29:59 -04:00
if ( is_array ( $aRow )) {
2012-10-18 15:02:44 -04:00
return $aRow [ 0 ];
} else {
return 0 ;
}
}
/**
2013-03-04 09:29:59 -04:00
* Return the steps list criteria object
* @ param string $sTaskUID
* @ return array
*/
public function getExtStepsCriteria ( $start , $limit , $sTaskUID = '' )
2012-10-18 15:02:44 -04:00
{
try {
//call plugin
$oPluginRegistry = & PMPluginRegistry :: getSingleton ();
$externalSteps = $oPluginRegistry -> getSteps ();
2013-03-04 09:29:59 -04:00
$aSteps = array ();
$aSteps [] = array (
'STEP_TITLE' => 'char' ,
'STEP_UID' => 'char' ,
'STEP_TYPE_OBJ' => 'char' ,
'STEP_CONDITION' => 'char' ,
'STEP_POSITION' => 'integer' ,
'STEP_MODE' => 'char' ,
'STEP_UID_OBJ' => 'char'
2012-10-18 15:02:44 -04:00
);
2013-03-04 09:29:59 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> add ( StepPeer :: TAS_UID , $sTaskUID );
$oCriteria -> addAscendingOrderByColumn ( StepPeer :: STEP_POSITION );
2012-10-18 15:02:44 -04:00
$this -> tmpCriteria = clone $oCriteria ;
if ( $start != '' ) {
2013-03-04 09:29:59 -04:00
$oCriteria -> setOffset ( $start );
2012-10-18 15:02:44 -04:00
}
if ( $limit != '' ) {
2013-03-04 09:29:59 -04:00
$oCriteria -> setLimit ( $limit );
2012-10-18 15:02:44 -04:00
}
2013-03-04 09:29:59 -04:00
$oDataset = StepPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
while ( $aRow = $oDataset -> getRow ()) {
$urlEdit = '' ;
$linkEditValue = '' ;
switch ( $aRow [ 'STEP_TYPE_OBJ' ]) {
case 'DYNAFORM' :
$oDynaform = new Dynaform ();
2013-03-04 09:29:59 -04:00
$aFields = $oDynaform -> load ( $aRow [ 'STEP_UID_OBJ' ]);
2012-10-18 15:02:44 -04:00
$sTitle = $aFields [ 'DYN_TITLE' ];
/**
* @@@ init2 PROCCESS FOR DIRECT EDIT LINK @ by erik @ colosa . com ON DATE 02 / 06 / 2008 18 : 48 : 13
*/
$DYN_UID = $aFields [ 'DYN_UID' ];
$urlEdit = " dynaformEdit(' " . $DYN_UID . " ', ' " . $aRow [ 'PRO_UID' ] . " '); " ;
$linkEditValue = 'Edit' ;
/**
* @@@ end2
*/
break ;
case 'INPUT_DOCUMENT' :
$oInputDocument = new InputDocument ();
2013-03-04 09:29:59 -04:00
$aFields = $oInputDocument -> load ( $aRow [ 'STEP_UID_OBJ' ]);
2012-10-18 15:02:44 -04:00
$sTitle = $aFields [ 'INP_DOC_TITLE' ];
break ;
case 'OUTPUT_DOCUMENT' :
$oOutputDocument = new OutputDocument ();
2013-03-04 09:29:59 -04:00
$aFields = $oOutputDocument -> load ( $aRow [ 'STEP_UID_OBJ' ]);
2012-10-18 15:02:44 -04:00
$sTitle = $aFields [ 'OUT_DOC_TITLE' ];
break ;
case 'EXTERNAL' :
$sTitle = 'unknown ' . $aRow [ 'STEP_UID' ];
foreach ( $externalSteps as $key => $val ) {
if ( $val -> sStepId == $aRow [ 'STEP_UID_OBJ' ]) {
$sTitle = $val -> sStepTitle ;
2013-03-04 09:29:59 -04:00
if ( trim ( $val -> sSetupStepPage ) != '' ) {
2012-10-18 15:02:44 -04:00
$urlEdit = " externalStepEdit(' " . $aRow [ 'STEP_UID' ] . " ', ' " . $val -> sSetupStepPage . " '); " ;
$linkEditValue = 'Edit' ;
} else {
$urlEdit = " " ;
$linkEditValue = '' ;
}
}
}
break ;
}
2013-03-04 09:29:59 -04:00
$aSteps [] = array ( 'STEP_TITLE' => $sTitle , 'STEP_UID' => $aRow [ 'STEP_UID' ], 'STEP_TYPE_OBJ' => $aRow [ 'STEP_TYPE_OBJ' ], 'STEP_CONDITION' => $aRow [ 'STEP_CONDITION' ], 'STEP_POSITION' => $aRow [ 'STEP_POSITION' ], 'urlEdit' => $urlEdit , 'linkEditValue' => $linkEditValue , 'PRO_UID' => $aRow [ 'PRO_UID' ], 'STEP_MODE' => $aRow [ 'STEP_MODE' ], 'STEP_UID_OBJ' => $aRow [ 'STEP_UID_OBJ' ] );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
}
global $_DBArray ;
2013-03-04 09:29:59 -04:00
$_DBArray = ( isset ( $_SESSION [ '_DBArray' ]) ? $_SESSION [ '_DBArray' ] : '' );
2012-10-18 15:02:44 -04:00
$_DBArray [ 'steps' ] = $aSteps ;
$_SESSION [ '_DBArray' ] = $_DBArray ;
2013-03-04 09:29:59 -04:00
G :: LoadClass ( 'ArrayPeer' );
$oCriteria = new Criteria ( 'dbarray' );
$oCriteria -> setDBArrayTable ( 'steps' );
$oCriteria -> addAscendingOrderByColumn ( 'STEP_POSITION' );
2012-10-18 15:02:44 -04:00
//return $oCriteria;
return $_SESSION [ '_DBArray' ][ 'steps' ];
} catch ( Exception $oError ) {
throw ( $oError );
}
}
//new functions
2013-03-04 09:29:59 -04:00
public function getAllStepTriggerCount ()
2012-10-18 15:02:44 -04:00
{
$c = $this -> tmpCriteria ;
$c -> clearSelectColumns ();
2013-03-04 09:29:59 -04:00
$c -> addSelectColumn ( 'COUNT(*)' );
$oDataset = StepTriggerPeer :: doSelectRS ( $c );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
$aRow = $oDataset -> getRow ();
2013-03-04 09:29:59 -04:00
if ( is_array ( $aRow )) {
2012-10-18 15:02:44 -04:00
return $aRow [ 0 ];
} else {
return 0 ;
}
}
/*
2013-03-04 09:29:59 -04:00
* Return the steps trigger criteria array
* @ param string $sTaskUID
* @ return array
*/
public function getExtStepTriggersCriteria ( $start , $limit , $sStepUID = '' , $sTaskUID = '' , $sType = '' )
2012-10-18 15:02:44 -04:00
{
//$_SESSION['TASK'] = $sTaskUID;
2013-03-04 09:29:59 -04:00
$aBB = array ();
2012-10-18 15:02:44 -04:00
$sDelimiter = DBAdapter :: getStringDelimiter ();
2013-03-04 09:29:59 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> addSelectColumn ( 'C.CON_VALUE' );
$oCriteria -> addSelectColumn ( 'STEP_UID' );
$oCriteria -> addSelectColumn ( 'TRI_UID' );
$oCriteria -> addSelectColumn ( 'ST_TYPE' );
$oCriteria -> addSelectColumn ( 'ST_CONDITION' );
$oCriteria -> addSelectColumn ( StepTriggerPeer :: ST_POSITION );
$oCriteria -> addAsColumn ( 'TRI_TITLE' , 'C.CON_VALUE' );
$oCriteria -> addAlias ( 'C' , 'CONTENT' );
$aConditions = array ();
$aConditions [] = array ( StepTriggerPeer :: TRI_UID , 'C.CON_ID' );
$aConditions [] = array ( 'C.CON_CATEGORY' , $sDelimiter . 'TRI_TITLE' . $sDelimiter );
$aConditions [] = array ( 'C.CON_LANG' , $sDelimiter . SYS_LANG . $sDelimiter );
$oCriteria -> addJoinMC ( $aConditions , Criteria :: LEFT_JOIN );
$oCriteria -> add ( StepTriggerPeer :: STEP_UID , $sStepUID );
$oCriteria -> add ( StepTriggerPeer :: TAS_UID , $sTaskUID );
$oCriteria -> add ( StepTriggerPeer :: ST_TYPE , $sType );
$oCriteria -> addAscendingOrderByColumn ( StepTriggerPeer :: ST_POSITION );
2012-10-18 15:02:44 -04:00
$this -> tmpCriteria = clone $oCriteria ;
if ( $start != '' ) {
2013-03-04 09:29:59 -04:00
$oCriteria -> setOffset ( $start );
2012-10-18 15:02:44 -04:00
}
if ( $limit != '' ) {
2013-03-04 09:29:59 -04:00
$oCriteria -> setLimit ( $limit );
2012-10-18 15:02:44 -04:00
}
2013-03-04 09:29:59 -04:00
$oDataset = InputDocumentPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
while ( $aRow = $oDataset -> getRow ()) {
2013-03-04 09:29:59 -04:00
$aBB [] = array ( 'CON_VALUE' => $aRow [ 'CON_VALUE' ], 'STEP_UID' => $aRow [ 'STEP_UID' ], 'ST_TYPE' => $aRow [ 'ST_TYPE' ], 'ST_POSITION' => $aRow [ 'ST_POSITION' ], 'ST_CONDITION' => $aRow [ 'ST_CONDITION' ], 'TRI_UID' => $aRow [ 'TRI_UID' ], 'TRI_TITLE' => $aRow [ 'TRI_TITLE' ] );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
}
return $aBB ;
}
/*
2013-03-04 09:29:59 -04:00
* Return the available step triggers list object
* @ param string $sStepUID
* @ param string $sTaskUID
* @ param string $sType
* @ return object
*/
public function getExtAvailableStepTriggersCriteria ( $sProcessUID = '' , $sStepUID = '' , $sTaskUID = '' , $sType = '' )
2012-10-18 15:02:44 -04:00
{
try {
$_SESSION [ 'TASK' ] = $sTaskUID ;
2013-03-04 09:29:59 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> addSelectColumn ( 'TRI_UID' );
$oCriteria -> add ( StepTriggerPeer :: TAS_UID , $sTaskUID );
$oCriteria -> add ( StepTriggerPeer :: STEP_UID , $sStepUID );
$oCriteria -> add ( StepTriggerPeer :: ST_TYPE , $sType );
$oDataset = StepTriggerPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
$sUIDs = " '0' " ;
2013-03-04 09:29:59 -04:00
$aUIDs = array ();
2012-10-18 15:02:44 -04:00
while ( $aRow = $oDataset -> getRow ()) {
$sUIDs .= " ,' " . $aRow [ 'TRI_UID' ] . " ' " ;
$aUIDs [] = $aRow [ 'TRI_UID' ];
$oDataset -> next ();
}
$sDelimiter = DBAdapter :: getStringDelimiter ();
2013-03-04 09:29:59 -04:00
$oCriteria = new Criteria ( 'workflow' );
2012-10-18 15:02:44 -04:00
//$oCriteria->addSelectColumn ( ContentPeer::CON_ID );
2013-03-04 09:29:59 -04:00
$oCriteria -> addSelectColumn ( 'TRI_UID' );
$oCriteria -> addSelectColumn ( 'C.CON_VALUE' );
$oCriteria -> addAsColumn ( 'TRI_TITLE' , 'C.CON_VALUE' );
$oCriteria -> addAlias ( 'C' , 'CONTENT' );
$aConditions = array ();
$aConditions [] = array ( 'TRI_UID' , 'C.CON_ID' );
$aConditions [] = array ( 'C.CON_CATEGORY' , $sDelimiter . 'TRI_TITLE' . $sDelimiter );
$aConditions [] = array ( 'C.CON_LANG' , $sDelimiter . SYS_LANG . $sDelimiter );
$oCriteria -> addJoinMC ( $aConditions , Criteria :: LEFT_JOIN );
$oCriteria -> add ( TriggersPeer :: TRI_UID , $aUIDs , Criteria :: NOT_IN );
$oCriteria -> add ( TriggersPeer :: PRO_UID , $sProcessUID );
$oDataset = TriggersPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
while ( $aRow = $oDataset -> getRow ()) {
2013-03-04 09:29:59 -04:00
$aBB [] = array (
'CON_VALUE' => $aRow [ 'CON_VALUE' ],
'STEP_UID' => $sStepUID ,
'ST_TYPE' => $sType ,
'TRI_UID' => $aRow [ 'TRI_UID' ],
'TRI_TITLE' => $aRow [ 'TRI_TITLE' ]
2012-10-18 15:02:44 -04:00
);
$oDataset -> next ();
}
return $aBB ;
} catch ( Exception $e ) {
throw ( $e );
}
}
//new functions
//deprecated
2013-03-04 09:29:59 -04:00
public function getAllDynaformCount ()
2012-10-18 15:02:44 -04:00
{
$c = $this -> tmpCriteria ;
$c -> clearSelectColumns ();
2013-03-04 09:29:59 -04:00
$c -> addSelectColumn ( 'COUNT(*)' );
$oDataset = DynaformPeer :: doSelectRS ( $c );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
$aRow = $oDataset -> getRow ();
2013-03-04 09:29:59 -04:00
if ( is_array ( $aRow )) {
2012-10-18 15:02:44 -04:00
return $aRow [ 0 ];
} else {
return 0 ;
}
}
/*
2013-03-04 09:29:59 -04:00
* Return the dynaforms list array
* @ param string $sProcessUID
* @ return object
*/
public function getExtDynaformsList ( $start , $limit , $sProcessUID = '' )
2012-10-18 15:02:44 -04:00
{
//select the main fields for dynaform and the title and description from CONTENT Table
$sDelimiter = DBAdapter :: getStringDelimiter ();
2013-03-04 09:29:59 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> addSelectColumn ( DynaformPeer :: DYN_UID );
2012-10-18 15:02:44 -04:00
//$oCriteria->addSelectColumn ( DynaformPeer::PRO_UID );
2013-03-04 09:29:59 -04:00
$oCriteria -> addSelectColumn ( DynaformPeer :: DYN_TYPE );
$oCriteria -> addAsColumn ( 'DYN_TITLE' , 'C1.CON_VALUE' );
$oCriteria -> addAsColumn ( 'DYN_DESCRIPTION' , 'C2.CON_VALUE' );
$oCriteria -> addAlias ( 'C1' , 'CONTENT' );
$oCriteria -> addAlias ( 'C2' , 'CONTENT' );
$aConditions = array ();
$aConditions [] = array ( DynaformPeer :: DYN_UID , 'C1.CON_ID' );
$aConditions [] = array ( 'C1.CON_CATEGORY' , $sDelimiter . 'DYN_TITLE' . $sDelimiter );
$aConditions [] = array ( 'C1.CON_LANG' , $sDelimiter . SYS_LANG . $sDelimiter );
$oCriteria -> addJoinMC ( $aConditions , Criteria :: LEFT_JOIN );
$aConditions = array ();
$aConditions [] = array ( DynaformPeer :: DYN_UID , 'C2.CON_ID' );
$aConditions [] = array ( 'C2.CON_CATEGORY' , $sDelimiter . 'DYN_DESCRIPTION' . $sDelimiter );
$aConditions [] = array ( 'C2.CON_LANG' , $sDelimiter . SYS_LANG . $sDelimiter );
$oCriteria -> addJoinMC ( $aConditions , Criteria :: LEFT_JOIN );
$oCriteria -> add ( DynaformPeer :: PRO_UID , $sProcessUID );
2012-10-18 15:02:44 -04:00
//if we have pagination, we use it and limit the query
if ( $start != '' ) {
2013-03-04 09:29:59 -04:00
$oCriteria -> setOffset ( $start );
2012-10-18 15:02:44 -04:00
}
if ( $limit != '' ) {
2013-03-04 09:29:59 -04:00
$oCriteria -> setLimit ( $limit );
2012-10-18 15:02:44 -04:00
}
2013-03-04 09:29:59 -04:00
$oDataset = DynaformPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
2013-03-04 09:29:59 -04:00
$dynaformArray = array ();
$gridLabel = G :: LoadTranslation ( 'ID_GRID' );
$normalLabel = G :: LoadTranslation ( 'ID_NORMAL' );
2012-10-18 15:02:44 -04:00
while ( $aRow = $oDataset -> getRow ()) {
//this is a trick to copy the description and title from other language when the current language does not exist for this content row.
2013-03-04 09:29:59 -04:00
if (( $aRow [ 'DYN_TITLE' ] == null ) || ( $aRow [ 'DYN_TITLE' ] == " " )) {
// There is no transaltion for this Document name, try to get/regenerate the label
$aRow [ 'DYN_TITLE' ] = Content :: Load ( " DYN_TITLE " , " " , $aRow [ 'DYN_UID' ], SYS_LANG );
2012-10-18 15:02:44 -04:00
}
2013-03-04 09:29:59 -04:00
if (( $aRow [ 'DYN_DESCRIPTION' ] == null ) || ( $aRow [ 'DYN_DESCRIPTION' ] == " " )) {
// There is no transaltion for this Document name, try to get/regenerate the label
$aRow [ 'DYN_DESCRIPTION' ] = Content :: Load ( " DYN_DESCRIPTION " , " " , $aRow [ 'DYN_UID' ], SYS_LANG );
2012-10-18 15:02:44 -04:00
}
2013-03-04 09:29:59 -04:00
if ( $aRow [ 'DYN_TYPE' ] == 'grid' ) {
2012-10-18 15:02:44 -04:00
$aRow [ 'DYN_TYPE' ] = $gridLabel ;
2013-03-04 09:29:59 -04:00
}
if ( $aRow [ 'DYN_TYPE' ] == 'xmlform' ) {
2012-10-18 15:02:44 -04:00
$aRow [ 'DYN_TYPE' ] = $normalLabel ;
2013-03-04 09:29:59 -04:00
}
2012-10-18 15:02:44 -04:00
$aRow [ 'TAS_EDIT' ] = 0 ;
$aRow [ 'TAS_VIEW' ] = 0 ;
$dynaformArray [] = $aRow ;
$oDataset -> next ();
}
2013-03-04 09:29:59 -04:00
$result = array ();
2012-10-18 15:02:44 -04:00
//Now count how many times the dynaform was used in different tasks in VIEW mode,
2013-03-04 09:29:59 -04:00
$groupbyCriteria = new Criteria ( 'workflow' );
2012-10-18 15:02:44 -04:00
$groupbyCriteria -> clearSelectColumns ();
2013-03-04 09:29:59 -04:00
$groupbyCriteria -> addSelectColumn ( StepPeer :: STEP_UID_OBJ );
$groupbyCriteria -> addSelectColumn ( 'COUNT(TAS_UID)' );
$groupbyCriteria -> add ( StepPeer :: PRO_UID , $sProcessUID );
$groupbyCriteria -> add ( StepPeer :: STEP_TYPE_OBJ , 'DYNAFORM' );
$groupbyCriteria -> add ( StepPeer :: STEP_MODE , 'VIEW' );
$groupbyCriteria -> addGroupByColumn ( StepPeer :: STEP_UID_OBJ );
$oDataset = DynaformPeer :: doSelectRS ( $groupbyCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
while ( $aRow = $oDataset -> getRow ()) {
foreach ( $dynaformArray as $key => $val ) {
if ( $val [ 'DYN_UID' ] == $aRow [ 'STEP_UID_OBJ' ]) {
$dynaformArray [ $key ][ 'TAS_VIEW' ] = $aRow [ 'COUNT(TAS_UID)' ];
}
}
$oDataset -> next ();
}
//Now count how many times the dynaform was used in different tasks in EDIT mode,
2013-03-04 09:29:59 -04:00
$groupbyCriteria = new Criteria ( 'workflow' );
2012-10-18 15:02:44 -04:00
$groupbyCriteria -> clearSelectColumns ();
2013-03-04 09:29:59 -04:00
$groupbyCriteria -> addSelectColumn ( StepPeer :: STEP_UID_OBJ );
$groupbyCriteria -> addSelectColumn ( 'COUNT(TAS_UID)' );
$groupbyCriteria -> add ( StepPeer :: PRO_UID , $sProcessUID );
$groupbyCriteria -> add ( StepPeer :: STEP_TYPE_OBJ , 'DYNAFORM' );
$groupbyCriteria -> add ( StepPeer :: STEP_MODE , 'EDIT' );
$groupbyCriteria -> addGroupByColumn ( StepPeer :: STEP_UID_OBJ );
$oDataset = DynaformPeer :: doSelectRS ( $groupbyCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
while ( $aRow = $oDataset -> getRow ()) {
foreach ( $dynaformArray as $key => $val ) {
if ( $val [ 'DYN_UID' ] == $aRow [ 'STEP_UID_OBJ' ]) {
$dynaformArray [ $key ][ 'TAS_EDIT' ] = $aRow [ 'COUNT(TAS_UID)' ];
}
}
$oDataset -> next ();
}
//now query to get total dynaform for this process,
//$counCriteria is used to count how many dynaforms there are in this process
2013-03-04 09:29:59 -04:00
$countCriteria = new Criteria ( 'workflow' );
2012-10-18 15:02:44 -04:00
$countCriteria -> clearSelectColumns ();
2013-03-04 09:29:59 -04:00
$countCriteria -> addSelectColumn ( 'COUNT(*)' );
$countCriteria -> add ( DynaformPeer :: PRO_UID , $sProcessUID );
$oDataset = DynaformPeer :: doSelectRS ( $countCriteria );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
$aRow = $oDataset -> getRow ();
2013-03-04 09:29:59 -04:00
if ( is_array ( $aRow )) {
2012-10-18 15:02:44 -04:00
$result [ 'totalCount' ] = $aRow [ 0 ];
} else {
$result [ 'totalCount' ] = 0 ;
}
$result [ 'data' ] = $dynaformArray ;
return $result ;
}
//new functions
2013-03-04 09:29:59 -04:00
public function getAllInputDocumentCount ()
2012-10-18 15:02:44 -04:00
{
$c = $this -> tmpCriteria ;
$c -> clearSelectColumns ();
2013-03-04 09:29:59 -04:00
$c -> addSelectColumn ( 'COUNT(*)' );
$oDataset = InputDocumentPeer :: doSelectRS ( $c );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
$aRow = $oDataset -> getRow ();
2013-03-04 09:29:59 -04:00
if ( is_array ( $aRow )) {
2012-10-18 15:02:44 -04:00
return $aRow [ 0 ];
} else {
return 0 ;
}
}
/**
* Return the Input Documents list array
*
* @ param string $sProcessUID
* @ return object
*/
2013-03-04 09:29:59 -04:00
public function getExtInputDocumentsCriteria ( $start , $limit , $sProcessUID = '' )
2012-10-18 15:02:44 -04:00
{
2013-03-04 09:29:59 -04:00
$aTasks = $this -> getAllInputDocsByTask ( $sProcessUID );
2012-10-18 15:02:44 -04:00
$sDelimiter = DBAdapter :: getStringDelimiter ();
2013-03-04 09:29:59 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> addSelectColumn ( InputDocumentPeer :: INP_DOC_UID );
$oCriteria -> addSelectColumn ( InputDocumentPeer :: PRO_UID );
$oCriteria -> addSelectColumn ( InputDocumentPeer :: INP_DOC_VERSIONING );
$oCriteria -> addSelectColumn ( InputDocumentPeer :: INP_DOC_DESTINATION_PATH );
$oCriteria -> addAsColumn ( 'INP_DOC_TITLE' , 'C1.CON_VALUE' );
$oCriteria -> addAsColumn ( 'INP_DOC_DESCRIPTION' , 'C2.CON_VALUE' );
$oCriteria -> addAlias ( 'C1' , 'CONTENT' );
$oCriteria -> addAlias ( 'C2' , 'CONTENT' );
$aConditions = array ();
$aConditions [] = array ( InputDocumentPeer :: INP_DOC_UID , 'C1.CON_ID' );
$aConditions [] = array ( 'C1.CON_CATEGORY' , $sDelimiter . 'INP_DOC_TITLE' . $sDelimiter );
$aConditions [] = array ( 'C1.CON_LANG' , $sDelimiter . SYS_LANG . $sDelimiter );
$oCriteria -> addJoinMC ( $aConditions , Criteria :: LEFT_JOIN );
$aConditions = array ();
$aConditions [] = array ( InputDocumentPeer :: INP_DOC_UID , 'C2.CON_ID' );
$aConditions [] = array ( 'C2.CON_CATEGORY' , $sDelimiter . 'INP_DOC_DESCRIPTION' . $sDelimiter );
$aConditions [] = array ( 'C2.CON_LANG' , $sDelimiter . SYS_LANG . $sDelimiter );
$oCriteria -> addJoinMC ( $aConditions , Criteria :: LEFT_JOIN );
$oCriteria -> add ( InputDocumentPeer :: PRO_UID , $sProcessUID );
2012-10-18 15:02:44 -04:00
$this -> tmpCriteria = clone $oCriteria ;
if ( $start != '' ) {
2013-03-04 09:29:59 -04:00
$oCriteria -> setOffset ( $start );
2012-10-18 15:02:44 -04:00
}
if ( $limit != '' ) {
2013-03-04 09:29:59 -04:00
$oCriteria -> setLimit ( $limit );
2012-10-18 15:02:44 -04:00
}
2013-03-04 09:29:59 -04:00
$oDataset = InputDocumentPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
$inputDocArray = " " ;
2013-03-04 09:29:59 -04:00
$inputDocArray [] = array ( 'INP_DOC_UID' => 'char' , 'PRO_UID' => 'char' , 'INP_DOC_TITLE' => 'char' , 'INP_DOC_DESCRIPTION' => 'char' );
2012-10-18 15:02:44 -04:00
while ( $aRow = $oDataset -> getRow ()) {
2013-03-04 09:29:59 -04:00
if (( $aRow [ 'INP_DOC_TITLE' ] == null ) || ( $aRow [ 'INP_DOC_TITLE' ] == " " )) {
// There is no transaltion for this Document name, try to get/regenerate the label
2012-10-18 15:02:44 -04:00
$inputDocument = new InputDocument ();
2013-03-04 09:29:59 -04:00
$inputDocumentObj = $inputDocument -> load ( $aRow [ 'INP_DOC_UID' ]);
2012-10-18 15:02:44 -04:00
$aRow [ 'INP_DOC_TITLE' ] = $inputDocumentObj [ 'INP_DOC_TITLE' ];
$aRow [ 'INP_DOC_DESCRIPTION' ] = $inputDocumentObj [ 'INP_DOC_DESCRIPTION' ];
}
2013-03-04 09:29:59 -04:00
$aRow [ 'INP_DOC_TASKS' ] = isset ( $aTasks [ $aRow [ 'INP_DOC_UID' ]]) ? $aTasks [ $aRow [ 'INP_DOC_UID' ]] : 0 ;
2012-10-18 15:02:44 -04:00
$inputDocArray [] = $aRow ;
$oDataset -> next ();
}
2013-03-04 09:29:59 -04:00
/* global $_DBArray ;
$_DBArray = ( isset ( $_SESSION [ '_DBArray' ] ) ? $_SESSION [ '_DBArray' ] : '' );
$_DBArray [ 'inputDocArrayMain' ] = $inputDocArray ;
//$_SESSION ['_DBArray']['inputDocArrayMain'] = $_DBArray; */
2012-10-18 15:02:44 -04:00
return $inputDocArray ;
}
2013-03-04 09:29:59 -04:00
public function getAllOutputDocumentCount ()
2012-10-18 15:02:44 -04:00
{
$c = $this -> tmpCriteria ;
$c -> clearSelectColumns ();
2013-03-04 09:29:59 -04:00
$c -> addSelectColumn ( 'COUNT(*)' );
$oDataset = OutputDocumentPeer :: doSelectRS ( $c );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
$aRow = $oDataset -> getRow ();
2013-03-04 09:29:59 -04:00
if ( is_array ( $aRow )) {
2012-10-18 15:02:44 -04:00
return $aRow [ 0 ];
} else {
return 0 ;
}
}
/**
* Return the Output Documents list array
*
* @ param string $sProcessUID
* @ return object
*/
2013-03-04 09:29:59 -04:00
public function getExtOutputDocumentsCriteria ( $start , $limit , $sProcessUID = '' )
2012-10-18 15:02:44 -04:00
{
$sDelimiter = DBAdapter :: getStringDelimiter ();
2013-03-04 09:29:59 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> addSelectColumn ( OutputDocumentPeer :: OUT_DOC_UID );
$oCriteria -> addSelectColumn ( OutputDocumentPeer :: OUT_DOC_TYPE );
$oCriteria -> addSelectColumn ( OutputDocumentPeer :: PRO_UID );
$oCriteria -> addAsColumn ( 'OUT_DOC_TITLE' , 'C1.CON_VALUE' );
$oCriteria -> addAsColumn ( 'OUT_DOC_DESCRIPTION' , 'C2.CON_VALUE' );
$oCriteria -> addAlias ( 'C1' , 'CONTENT' );
$oCriteria -> addAlias ( 'C2' , 'CONTENT' );
$aConditions = array ();
$aConditions [] = array ( OutputDocumentPeer :: OUT_DOC_UID , 'C1.CON_ID' );
$aConditions [] = array ( 'C1.CON_CATEGORY' , $sDelimiter . 'OUT_DOC_TITLE' . $sDelimiter );
$aConditions [] = array ( 'C1.CON_LANG' , $sDelimiter . SYS_LANG . $sDelimiter );
$oCriteria -> addJoinMC ( $aConditions , Criteria :: LEFT_JOIN );
$aConditions = array ();
$aConditions [] = array ( OutputDocumentPeer :: OUT_DOC_UID , 'C2.CON_ID' );
$aConditions [] = array ( 'C2.CON_CATEGORY' , $sDelimiter . 'OUT_DOC_DESCRIPTION' . $sDelimiter );
$aConditions [] = array ( 'C2.CON_LANG' , $sDelimiter . SYS_LANG . $sDelimiter );
$oCriteria -> addJoinMC ( $aConditions , Criteria :: LEFT_JOIN );
$oCriteria -> add ( OutputDocumentPeer :: PRO_UID , $sProcessUID );
2012-10-18 15:02:44 -04:00
$this -> tmpCriteria = clone $oCriteria ;
if ( $start != '' ) {
2013-03-04 09:29:59 -04:00
$oCriteria -> setOffset ( $start );
2012-10-18 15:02:44 -04:00
}
if ( $limit != '' ) {
2013-03-04 09:29:59 -04:00
$oCriteria -> setLimit ( $limit );
2012-10-18 15:02:44 -04:00
}
2013-03-04 09:29:59 -04:00
$oDataset = OutputDocumentPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
2013-03-04 09:29:59 -04:00
$outputDocArray = array ();
$outputDocArray [] = array ( 'd' => 'char' );
2012-10-18 15:02:44 -04:00
while ( $aRow = $oDataset -> getRow ()) {
// There is no transaltion for this Document name, try to get/regenerate the label
if (( $aRow [ 'OUT_DOC_TITLE' ] == null ) || ( $aRow [ 'OUT_DOC_TITLE' ] == " " )) {
$outputDocument = new OutputDocument ();
2013-03-04 09:29:59 -04:00
$outputDocumentObj = $outputDocument -> load ( $aRow [ 'OUT_DOC_UID' ]);
2012-10-18 15:02:44 -04:00
$aRow [ 'OUT_DOC_TITLE' ] = $outputDocumentObj [ 'OUT_DOC_TITLE' ];
$aRow [ 'OUT_DOC_DESCRIPTION' ] = $outputDocumentObj [ 'OUT_DOC_DESCRIPTION' ];
}
$outputDocArray [] = $aRow ;
$oDataset -> next ();
}
global $_DBArray ;
2013-03-04 09:29:59 -04:00
$_DBArray = ( isset ( $_SESSION [ '_DBArray' ]) ? $_SESSION [ '_DBArray' ] : '' );
2012-10-18 15:02:44 -04:00
$_DBArray [ 'outputDocArray' ] = $outputDocArray ;
$_SESSION [ '_DBArray' ] = $_DBArray ;
2013-03-04 09:29:59 -04:00
G :: LoadClass ( 'ArrayPeer' );
$oCriteria = new Criteria ( 'dbarray' );
$oCriteria -> setDBArrayTable ( 'outputDocArray' );
2012-10-18 15:02:44 -04:00
return $outputDocArray ;
}
/**
* subProcess_Properties New Processmap
*
* @ param string $sProcessUID
* @ param string $sTaskUID
* @ param string $sIndex
* @ param string $sType ( 0 => 'Asynchronous' , 1 => 'Synchronous' )
* @ return void throw Exception $oError
*/
2013-03-04 09:29:59 -04:00
public function subProcessExtProperties ( $sProcessUID = '' , $sTaskUID = '' , $sIndex = '' , $sType = '' )
2012-10-18 15:02:44 -04:00
{
try {
2013-03-04 09:29:59 -04:00
$SP_VARIABLES_OUT = array ();
$SP_VARIABLES_IN = array ();
2012-10-18 15:02:44 -04:00
/* Prepare page before to show */
global $_DBArray ;
2013-03-04 09:29:59 -04:00
$_DBArray = ( isset ( $_SESSION [ '_DBArray' ]) ? $_SESSION [ '_DBArray' ] : '' );
$_DBArray [ 'NewCase' ] = $this -> subProcess_TaskIni ( $sProcessUID );
unset ( $_DBArray [ 'TheProcesses' ]);
$_DBArray [ 'TheProcesses' ][] = array ( 'pro_uid' => 'char' , 'value' => 'char' );
2012-10-18 15:02:44 -04:00
$i = 0 ;
foreach ( $_DBArray [ 'NewCase' ] as $aRow ) {
if ( $i > 0 ) {
2013-03-04 09:29:59 -04:00
$_DBArray [ 'TheProcesses' ][] = array ( 'pro_uid' => $aRow [ 'pro_uid' ] . '_' . $i , 'value' => $aRow [ 'value' ] );
2012-10-18 15:02:44 -04:00
}
2013-03-04 09:29:59 -04:00
$i ++ ;
2012-10-18 15:02:44 -04:00
}
//print'<hr>';print_r($_DBArray['NewCase']);print'<hr>';
2013-03-04 09:29:59 -04:00
$oCriteria = new Criteria ( 'workflow' );
2012-10-18 15:02:44 -04:00
$del = DBAdapter :: getStringDelimiter ();
2013-03-04 09:29:59 -04:00
$oCriteria -> add ( SubProcessPeer :: PRO_PARENT , $sProcessUID );
$oCriteria -> add ( SubProcessPeer :: TAS_PARENT , $sTaskUID );
$oCriteria -> addAsColumn ( 'CON_VALUE' , 'C1.CON_VALUE' , 'CON_TITLE' );
$oCriteria -> addAlias ( " C1 " , 'CONTENT' );
$tasTitleConds = array ();
$tasTitleConds [] = array ( SubProcessPeer :: TAS_PARENT , 'C1.CON_ID' );
$tasTitleConds [] = array ( 'C1.CON_CATEGORY' , $del . 'TAS_TITLE' . $del );
$tasTitleConds [] = array ( 'C1.CON_LANG' , $del . SYS_LANG . $del );
$oCriteria -> addJoinMC ( $tasTitleConds , Criteria :: LEFT_JOIN );
$oDataset = SubProcessPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
$aRow = $oDataset -> getRow ();
/*
2013-03-04 09:29:59 -04:00
while ( $aRow = $oDataset -> getRow ()) {
$aSubProcess [] = array ( 'CON_VALUE' => $aRow [ 'CON_VALUE' ], 'TAS_UID' => $sTaskUID , 'TASKS' => $sTaskUID , 'TAS_TITLE' => $aRow [ 'CON_VALUE' ],
'SPROCESS_NAME' => $aRow [ 'CON_VALUE' ]
);
$oDataset -> next ();
}
*/
2012-10-18 15:02:44 -04:00
$aRow [ 'TASKS' ] = $aRow [ 'TAS_UID' ];
//print "<hr>".$aRow['TASKS']."<hr>";
//$aRow['SPROCESS_NAME'] = $aRow['TAS_TITLE'];
$aRow [ 'TAS_TITLE' ] = $aRow [ 'CON_VALUE' ];
$aRow [ 'SPROCESS_NAME' ] = $aRow [ 'CON_VALUE' ];
2013-03-04 09:29:59 -04:00
$lang = defined ( 'SYS_LANG' ) ? SYS_LANG : 'en' ;
$aRow [ 'PRO_TITLE' ] = Content :: load ( 'PRO_TITLE' , '' , $aRow [ 'PRO_UID' ], $lang );
2012-10-18 15:02:44 -04:00
if ( $sType == 0 ) {
2013-03-04 09:29:59 -04:00
$SP_VARIABLES_OUT = unserialize ( $aRow [ 'SP_VARIABLES_OUT' ]);
if ( is_array ( $SP_VARIABLES_OUT )) {
2012-10-18 15:02:44 -04:00
$i = 0 ;
//$aRow1 = array();
foreach ( $SP_VARIABLES_OUT as $indice => $valor ) {
//$aRow1 [$i] = $aRow;
$aRow [ $i ][ 'VAR_OUT1' ] = $indice ;
$aRow [ $i ][ 'VAR_OUT2' ] = $valor ;
//$aRow1 [$i]['PROCESSES'] = $_DBArray ['TheProcesses'];
2013-03-04 09:29:59 -04:00
$i ++ ;
2012-10-18 15:02:44 -04:00
}
}
}
if ( $sType == 1 ) {
2013-03-04 09:29:59 -04:00
$SP_VARIABLES_IN = unserialize ( $aRow [ 'SP_VARIABLES_IN' ]);
if ( is_array ( $SP_VARIABLES_IN )) {
2012-10-18 15:02:44 -04:00
$j = 0 ;
foreach ( $SP_VARIABLES_IN as $indice => $valor ) {
$aRow1 [ $j ] = $aRow ;
$aRow1 [ $j ][ 'VAR_IN1' ] = $indice ;
$aRow1 [ $j ][ 'VAR_IN2' ] = $valor ;
//$aRow1 [$i]['PROCESSES'] = $_DBArray ['TheProcesses'];
2013-03-04 09:29:59 -04:00
$j ++ ;
2012-10-18 15:02:44 -04:00
}
}
}
$aRow [ 'INDEX' ] = $sIndex ;
//print '<hr>';print_r($aRow);
return $aRow ;
//return $aSubProcess;
} catch ( Exception $oError ) {
throw ( $oError );
}
}
2013-03-04 09:29:59 -04:00
public function getAllProcessSupervisorsCount ()
2012-10-18 15:02:44 -04:00
{
$c = $this -> tmpCriteria ;
$c -> clearSelectColumns ();
2013-03-04 09:29:59 -04:00
$c -> addSelectColumn ( 'COUNT(*)' );
$oDataset = ProcessUserPeer :: doSelectRS ( $c );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
$aRow = $oDataset -> getRow ();
2013-03-04 09:29:59 -04:00
if ( is_array ( $aRow )) {
2012-10-18 15:02:44 -04:00
return $aRow [ 0 ];
} else {
return 0 ;
}
}
/**
* listProcessesUser for Extjs
*
* @ param string $sProcessUID
* @ return array ( aProcessUser ) $aProcessUser
*/
2013-03-04 09:29:59 -04:00
public function listExtProcessesSupervisors ( $start , $limit , $sProcessUID )
{
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> addSelectColumn ( ProcessUserPeer :: PU_UID );
$oCriteria -> addSelectColumn ( ProcessUserPeer :: USR_UID );
$oCriteria -> addSelectColumn ( ProcessUserPeer :: PRO_UID );
$oCriteria -> addSelectColumn ( ProcessUserPeer :: PU_TYPE );
$oCriteria -> addSelectColumn ( UsersPeer :: USR_FIRSTNAME );
$oCriteria -> addSelectColumn ( UsersPeer :: USR_LASTNAME );
$oCriteria -> addSelectColumn ( UsersPeer :: USR_EMAIL );
$oCriteria -> addJoin ( ProcessUserPeer :: USR_UID , UsersPeer :: USR_UID , Criteria :: LEFT_JOIN );
$oCriteria -> add ( ProcessUserPeer :: PRO_UID , $sProcessUID );
2012-10-18 15:02:44 -04:00
$this -> tmpCriteria = clone $oCriteria ;
if ( $start != '' ) {
2013-03-04 09:29:59 -04:00
$oCriteria -> setOffset ( $start );
2012-10-18 15:02:44 -04:00
}
if ( $limit != '' ) {
2013-03-04 09:29:59 -04:00
$oCriteria -> setLimit ( $limit );
2012-10-18 15:02:44 -04:00
}
2013-03-04 09:29:59 -04:00
$oDataset = ProcessUserPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
$aProcessUser = '' ;
while ( $aRow = $oDataset -> getRow ()) {
2013-03-04 09:29:59 -04:00
$aProcessUser [] = array ( 'PU_UID' => $aRow [ 'PU_UID' ], 'USR_UID' => $aRow [ 'USR_UID' ], 'PU_TYPE' => $aRow [ 'PU_TYPE' ], 'USR_FIRSTNAME' => $aRow [ 'USR_FIRSTNAME' ], 'USR_LASTNAME' => $aRow [ 'USR_LASTNAME' ], 'USR_EMAIL' => $aRow [ 'USR_EMAIL' ]);
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
}
return $aProcessUser ;
}
/**
* listExtNoProcessesUser for Extjs
*
* @ param string $sProcessUID
* @ return array ( aAvailableUser ) $aAvailableUser
*/
2013-03-04 09:29:59 -04:00
public function listExtNoProcessesUser ( $sProcessUID )
2012-10-18 15:02:44 -04:00
{
2013-03-04 09:29:59 -04:00
G :: LoadSystem ( 'rbac' );
$memcache = & PMmemcached :: getSingleton ( SYS_SYS );
2012-10-18 15:02:44 -04:00
2013-03-04 09:29:59 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> addSelectColumn ( ProcessUserPeer :: USR_UID );
$oCriteria -> add ( ProcessUserPeer :: PRO_UID , $sProcessUID );
$oCriteria -> add ( ProcessUserPeer :: PU_TYPE , 'SUPERVISOR' );
$oDataset = ProcessUserPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
2013-03-04 09:29:59 -04:00
$aUIDS = array ();
2012-10-18 15:02:44 -04:00
while ( $aRow = $oDataset -> getRow ()) {
$aUIDS [] = $aRow [ 'USR_UID' ];
$oDataset -> next ();
}
$sDelimiter = DBAdapter :: getStringDelimiter ();
2013-03-04 09:29:59 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> addSelectColumn ( UsersPeer :: USR_UID );
$oCriteria -> add ( UsersPeer :: USR_UID , $aUIDS , Criteria :: NOT_IN );
$oDataset = UsersPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-09 13:08:42 -04:00
$oDataset -> next ();
2013-03-04 09:29:59 -04:00
$aUIDS = array ();
2012-10-18 15:02:44 -04:00
$oRBAC = RBAC :: getSingleton ();
while ( $aRow = $oDataset -> getRow ()) {
$memKey = 'rbacSession' . session_id ();
2013-03-04 09:29:59 -04:00
if (( $oRBAC -> aUserInfo = $memcache -> get ( $memKey )) === false ) {
$oRBAC -> loadUserRolePermission ( $oRBAC -> sSystem , $aRow [ 'USR_UID' ]);
$memcache -> set ( $memKey , $oRBAC -> aUserInfo , PMmemcached :: EIGHT_HOURS );
2012-10-18 15:02:44 -04:00
}
$aPermissions = $oRBAC -> aUserInfo [ $oRBAC -> sSystem ][ 'PERMISSIONS' ];
$bInclude = false ;
foreach ( $aPermissions as $aPermission ) {
if ( $aPermission [ 'PER_CODE' ] == 'PM_SUPERVISOR' ) {
$bInclude = true ;
}
}
if ( $bInclude ) {
$aUIDS [] = $aRow [ 'USR_UID' ];
}
$oDataset -> next ();
}
2013-03-04 09:29:59 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> addSelectColumn ( UsersPeer :: USR_UID );
$oCriteria -> addSelectColumn ( UsersPeer :: USR_FIRSTNAME );
$oCriteria -> addSelectColumn ( UsersPeer :: USR_LASTNAME );
$oCriteria -> add ( UsersPeer :: USR_UID , $aUIDS , Criteria :: IN );
2012-10-18 15:02:44 -04:00
2013-03-04 09:29:59 -04:00
$oDataset = UsersPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-09 13:08:42 -04:00
$oDataset -> next ();
2012-10-18 15:02:44 -04:00
$aAvailableUser = '' ;
while ( $aRow = $oDataset -> getRow ()) {
2013-03-04 09:29:59 -04:00
$aAvailableUser [] = array ( 'USR_UID' => $aRow [ 'USR_UID' ], 'USR_FIRSTNAME' => $aRow [ 'USR_FIRSTNAME' ], 'USR_LASTNAME' => $aRow [ 'USR_LASTNAME' ]);
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
}
return $aAvailableUser ;
}
//new functions
2013-03-04 09:29:59 -04:00
public function getAllSupervisorDynaformsCount ()
2012-10-18 15:02:44 -04:00
{
$c = $this -> tmpCriteria ;
$c -> clearSelectColumns ();
2013-03-04 09:29:59 -04:00
$c -> addSelectColumn ( 'COUNT(*)' );
$oDataset = StepSupervisorPeer :: doSelectRS ( $c );
2012-10-09 13:08:42 -04:00
$oDataset -> next ();
2012-10-18 15:02:44 -04:00
$aRow = $oDataset -> getRow ();
2013-03-04 09:29:59 -04:00
if ( is_array ( $aRow )) {
2012-10-18 15:02:44 -04:00
return $aRow [ 0 ];
2012-10-18 14:46:16 -04:00
} else {
2012-10-18 15:02:44 -04:00
return 0 ;
2012-10-18 14:46:16 -04:00
}
}
2012-10-18 15:02:44 -04:00
/**
* Return the supervisors dynaforms list array
*
* @ param string $sProcessUID
* @ return array
*/
2013-03-04 09:29:59 -04:00
public function getExtSupervisorDynaformsList ( $start , $limit , $sProcessUID = '' )
2012-10-18 15:02:44 -04:00
{
$sDelimiter = DBAdapter :: getStringDelimiter ();
2013-03-04 09:29:59 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> addSelectColumn ( StepSupervisorPeer :: STEP_UID );
$oCriteria -> addSelectColumn ( StepSupervisorPeer :: PRO_UID );
$oCriteria -> addSelectColumn ( StepSupervisorPeer :: STEP_TYPE_OBJ );
$oCriteria -> addSelectColumn ( StepSupervisorPeer :: STEP_UID_OBJ );
$oCriteria -> addSelectColumn ( StepSupervisorPeer :: STEP_POSITION );
$oCriteria -> addSelectColumn ( DynaformPeer :: DYN_UID );
$oCriteria -> addAsColumn ( 'DYN_TITLE' , 'C.CON_VALUE' );
$oCriteria -> addAlias ( 'C' , 'CONTENT' );
$aConditions = array ();
$aConditions [] = array ( StepSupervisorPeer :: STEP_UID_OBJ , DynaformPeer :: DYN_UID );
$aConditions [] = array ( StepSupervisorPeer :: STEP_TYPE_OBJ , $sDelimiter . 'DYNAFORM' . $sDelimiter );
$oCriteria -> addJoinMC ( $aConditions , Criteria :: LEFT_JOIN );
$aConditions = array ();
$aConditions [] = array ( DynaformPeer :: DYN_UID , 'C.CON_ID' );
$aConditions [] = array ( 'C.CON_CATEGORY' , $sDelimiter . 'DYN_TITLE' . $sDelimiter );
$aConditions [] = array ( 'C.CON_LANG' , $sDelimiter . SYS_LANG . $sDelimiter );
$oCriteria -> addJoinMC ( $aConditions , Criteria :: LEFT_JOIN );
$oCriteria -> add ( StepSupervisorPeer :: PRO_UID , $sProcessUID );
$oCriteria -> add ( StepSupervisorPeer :: STEP_TYPE_OBJ , 'DYNAFORM' );
$oCriteria -> addAscendingOrderByColumn ( StepSupervisorPeer :: STEP_POSITION );
2012-10-18 15:02:44 -04:00
$this -> tmpCriteria = clone $oCriteria ;
if ( $start != '' ) {
2013-03-04 09:29:59 -04:00
$oCriteria -> setOffset ( $start );
2012-10-18 14:46:16 -04:00
}
2012-10-18 15:02:44 -04:00
if ( $limit != '' ) {
2013-03-04 09:29:59 -04:00
$oCriteria -> setLimit ( $limit );
2012-10-18 15:02:44 -04:00
}
2013-03-04 09:29:59 -04:00
$oDataset = StepSupervisorPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
$aProcessDynaform = '' ;
while ( $aRow = $oDataset -> getRow ()) {
2013-03-04 09:29:59 -04:00
$aProcessDynaform [] = array ( 'DYN_TITLE' => $aRow [ 'DYN_TITLE' ], 'DYN_UID' => $aRow [ 'DYN_UID' ], 'STEP_UID' => $aRow [ 'STEP_UID' ], 'STEP_UID_OBJ' => $aRow [ 'STEP_UID_OBJ' ], 'STEP_TYPE_OBJ' => $aRow [ 'STEP_TYPE_OBJ' ], 'STEP_POSITION' => $aRow [ 'STEP_POSITION' ] );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
}
return $aProcessDynaform ;
}
/*
* Return the available supervisors dynaforms list array
* @ param string $sProcessUID
* @ return array
2013-03-04 09:29:59 -04:00
*/
2012-10-18 14:46:16 -04:00
2013-03-04 09:29:59 -04:00
public function getExtAvailableSupervisorDynaformsList ( $sProcessUID = '' )
2012-10-18 15:02:44 -04:00
{
2013-03-04 09:29:59 -04:00
$oCriteria = $this -> getSupervisorDynaformsCriteria ( $sProcessUID );
$oDataset = StepSupervisorPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
2013-03-04 09:29:59 -04:00
$aUIDS = array ();
2012-10-18 15:02:44 -04:00
while ( $aRow = $oDataset -> getRow ()) {
$aUIDS [] = $aRow [ 'STEP_UID_OBJ' ];
$oDataset -> next ();
2012-10-18 14:46:16 -04:00
}
2012-10-18 15:02:44 -04:00
$sDelimiter = DBAdapter :: getStringDelimiter ();
2013-03-04 09:29:59 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> addSelectColumn ( DynaformPeer :: DYN_UID );
$oCriteria -> addSelectColumn ( DynaformPeer :: PRO_UID );
$oCriteria -> addAsColumn ( 'DYN_TITLE' , 'C.CON_VALUE' );
$oCriteria -> addAlias ( 'C' , 'CONTENT' );
$aConditions = array ();
$aConditions [] = array ( DynaformPeer :: DYN_UID , 'C.CON_ID' );
$aConditions [] = array ( 'C.CON_CATEGORY' , $sDelimiter . 'DYN_TITLE' . $sDelimiter );
$aConditions [] = array ( 'C.CON_LANG' , $sDelimiter . SYS_LANG . $sDelimiter );
$oCriteria -> addJoinMC ( $aConditions , Criteria :: LEFT_JOIN );
$oCriteria -> add ( DynaformPeer :: PRO_UID , $sProcessUID );
$oCriteria -> add ( DynaformPeer :: DYN_TYPE , 'xmlform' );
$oCriteria -> add ( DynaformPeer :: DYN_UID , $aUIDS , Criteria :: NOT_IN );
2012-10-18 15:02:44 -04:00
2013-03-04 09:29:59 -04:00
$oDataset = DynaformPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
$aAvailableProcessDynaform = '' ;
while ( $aRow = $oDataset -> getRow ()) {
2013-03-04 09:29:59 -04:00
$aAvailableProcessDynaform [] = array ( 'DYN_TITLE' => $aRow [ 'DYN_TITLE' ], 'DYN_UID' => $aRow [ 'DYN_UID' ] );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
}
return $aAvailableProcessDynaform ;
}
2010-12-27 14:43:33 +00:00
2012-10-18 15:02:44 -04:00
//new functions
2013-03-04 09:29:59 -04:00
public function getAllSupervisorInputsCount ()
2012-10-18 15:02:44 -04:00
{
$c = $this -> tmpCriteria ;
$c -> clearSelectColumns ();
2013-03-04 09:29:59 -04:00
$c -> addSelectColumn ( 'COUNT(*)' );
$oDataset = StepSupervisorPeer :: doSelectRS ( $c );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
$aRow = $oDataset -> getRow ();
2012-10-09 13:08:42 -04:00
2013-03-04 09:29:59 -04:00
if ( is_array ( $aRow )) {
2012-10-18 15:02:44 -04:00
return $aRow [ 0 ];
} else {
return 0 ;
}
2012-10-09 13:08:42 -04:00
}
2012-10-18 15:02:44 -04:00
/*
* Return the supervisors input document list array
* @ param string $sProcessUID
* @ return array
2013-03-04 09:29:59 -04:00
*/
2012-10-09 13:08:42 -04:00
2013-03-04 09:29:59 -04:00
public function getExtSupervisorInputsList ( $start , $limit , $sProcessUID = '' )
2012-10-18 15:02:44 -04:00
{
$sDelimiter = DBAdapter :: getStringDelimiter ();
2013-03-04 09:29:59 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> addSelectColumn ( StepSupervisorPeer :: STEP_UID );
$oCriteria -> addSelectColumn ( StepSupervisorPeer :: PRO_UID );
$oCriteria -> addSelectColumn ( StepSupervisorPeer :: STEP_TYPE_OBJ );
$oCriteria -> addSelectColumn ( StepSupervisorPeer :: STEP_UID_OBJ );
$oCriteria -> addSelectColumn ( StepSupervisorPeer :: STEP_POSITION );
$oCriteria -> addSelectColumn ( InputDocumentPeer :: INP_DOC_UID );
$oCriteria -> addAsColumn ( 'INP_DOC_TITLE' , 'C.CON_VALUE' );
$oCriteria -> addAlias ( 'C' , 'CONTENT' );
$aConditions = array ();
$aConditions [] = array ( StepSupervisorPeer :: STEP_UID_OBJ , InputDocumentPeer :: INP_DOC_UID );
$aConditions [] = array ( StepSupervisorPeer :: STEP_TYPE_OBJ , $sDelimiter . 'INPUT_DOCUMENT' . $sDelimiter );
$oCriteria -> addJoinMC ( $aConditions , Criteria :: LEFT_JOIN );
$aConditions = array ();
$aConditions [] = array ( InputDocumentPeer :: INP_DOC_UID , 'C.CON_ID' );
$aConditions [] = array ( 'C.CON_CATEGORY' , $sDelimiter . 'INP_DOC_TITLE' . $sDelimiter );
$aConditions [] = array ( 'C.CON_LANG' , $sDelimiter . SYS_LANG . $sDelimiter );
$oCriteria -> addJoinMC ( $aConditions , Criteria :: LEFT_JOIN );
$oCriteria -> add ( StepSupervisorPeer :: PRO_UID , $sProcessUID );
$oCriteria -> add ( StepSupervisorPeer :: STEP_TYPE_OBJ , 'INPUT_DOCUMENT' );
$oCriteria -> addAscendingOrderByColumn ( StepSupervisorPeer :: STEP_POSITION );
2012-10-18 15:02:44 -04:00
$this -> tmpCriteria = clone $oCriteria ;
2012-10-09 13:08:42 -04:00
2012-10-18 15:02:44 -04:00
if ( $start != '' ) {
2013-03-04 09:29:59 -04:00
$oCriteria -> setOffset ( $start );
2012-10-18 15:02:44 -04:00
}
if ( $limit != '' ) {
2013-03-04 09:29:59 -04:00
$oCriteria -> setLimit ( $limit );
2012-10-18 15:02:44 -04:00
}
2013-03-04 09:29:59 -04:00
$oDataset = StepSupervisorPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
$aProcessInputDoc = '' ;
while ( $aRow = $oDataset -> getRow ()) {
2013-03-04 09:29:59 -04:00
$aProcessInputDoc [] = array ( 'INP_DOC_TITLE' => $aRow [ 'INP_DOC_TITLE' ], 'INP_DOC_UID' => $aRow [ 'INP_DOC_UID' ], 'STEP_UID' => $aRow [ 'STEP_UID' ], 'STEP_UID_OBJ' => $aRow [ 'STEP_UID_OBJ' ], 'STEP_TYPE_OBJ' => $aRow [ 'STEP_TYPE_OBJ' ], 'STEP_POSITION' => $aRow [ 'STEP_POSITION' ] );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
}
return $aProcessInputDoc ;
2012-10-09 13:08:42 -04:00
}
2012-10-18 15:02:44 -04:00
/*
* Return the available supervisors input documents list array
* @ param string $sProcessUID
* @ return array
2013-03-04 09:29:59 -04:00
*/
2012-10-09 13:08:42 -04:00
2013-03-04 09:29:59 -04:00
public function getExtAvailableSupervisorInputsList ( $sProcessUID = '' )
2012-10-18 15:02:44 -04:00
{
2013-03-04 09:29:59 -04:00
$oCriteria = $this -> getSupervisorInputsCriteria ( $sProcessUID );
$oDataset = StepSupervisorPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
2013-03-04 09:29:59 -04:00
$aUIDS = array ();
2012-10-18 15:02:44 -04:00
while ( $aRow = $oDataset -> getRow ()) {
$aUIDS [] = $aRow [ 'STEP_UID_OBJ' ];
$oDataset -> next ();
}
$sDelimiter = DBAdapter :: getStringDelimiter ();
2013-03-04 09:29:59 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> addSelectColumn ( InputDocumentPeer :: INP_DOC_UID );
$oCriteria -> addSelectColumn ( InputDocumentPeer :: PRO_UID );
$oCriteria -> addAsColumn ( 'INP_DOC_TITLE' , 'C.CON_VALUE' );
$oCriteria -> addAlias ( 'C' , 'CONTENT' );
$aConditions = array ();
$aConditions [] = array ( InputDocumentPeer :: INP_DOC_UID , 'C.CON_ID'
2012-10-18 15:02:44 -04:00
);
2013-03-04 09:29:59 -04:00
$aConditions [] = array ( 'C.CON_CATEGORY' , $sDelimiter . 'INP_DOC_TITLE' . $sDelimiter
2012-10-18 15:02:44 -04:00
);
2013-03-04 09:29:59 -04:00
$aConditions [] = array ( 'C.CON_LANG' , $sDelimiter . SYS_LANG . $sDelimiter
2012-10-18 15:02:44 -04:00
);
2013-03-04 09:29:59 -04:00
$oCriteria -> addJoinMC ( $aConditions , Criteria :: LEFT_JOIN );
$oCriteria -> add ( InputDocumentPeer :: PRO_UID , $sProcessUID );
$oCriteria -> add ( InputDocumentPeer :: INP_DOC_UID , $aUIDS , Criteria :: NOT_IN );
$oDataset = InputDocumentPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
$aAvailableProcessIODoc = '' ;
while ( $aRow = $oDataset -> getRow ()) {
2013-03-04 09:29:59 -04:00
$aAvailableProcessIODoc [] = array ( 'INP_DOC_TITLE' => $aRow [ 'INP_DOC_TITLE' ], 'INP_DOC_UID' => $aRow [ 'INP_DOC_UID' ] );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
}
return $aAvailableProcessIODoc ;
}
2012-10-09 13:08:42 -04:00
2012-10-18 15:02:44 -04:00
//new functions
2013-03-04 09:29:59 -04:00
public function getAllDbSourceCount ()
2012-10-18 15:02:44 -04:00
{
$c = $this -> tmpCriteria ;
$c -> clearSelectColumns ();
2013-03-04 09:29:59 -04:00
$c -> addSelectColumn ( 'COUNT(*)' );
$oDataset = DbSourcePeer :: doSelectRS ( $c );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
$aRow = $oDataset -> getRow ();
2012-10-09 13:08:42 -04:00
2013-03-04 09:29:59 -04:00
if ( is_array ( $aRow )) {
2012-10-18 15:02:44 -04:00
return $aRow [ 0 ];
} else {
return 0 ;
}
}
2012-10-18 14:46:16 -04:00
2012-10-18 15:02:44 -04:00
/**
* listDBSConnection
*
* @ param string $sProcessUID
* @ return array ( aDBList ) $aDBList
*/
2013-03-04 09:29:59 -04:00
public function getExtCriteriaDBSList ( $start , $limit , $sProcessUID )
2012-10-18 15:02:44 -04:00
{
try {
2013-03-04 09:29:59 -04:00
$aDBList = array ();
2012-10-18 15:02:44 -04:00
//$aDBList [] = array ('STEP_TITLE' => 'char', 'STEP_UID' => 'char', 'STEP_TYPE_OBJ' => 'char', 'STEP_CONDITION' => 'char', 'STEP_POSITION' => 'integer','STEP_MODE' => 'char','STEP_UID_OBJ' => 'char' );
$sDelimiter = DBAdapter :: getStringDelimiter ();
2013-03-04 09:29:59 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> addSelectColumn ( DbSourcePeer :: DBS_UID );
$oCriteria -> addSelectColumn ( DbSourcePeer :: PRO_UID );
$oCriteria -> addSelectColumn ( DbSourcePeer :: DBS_TYPE );
$oCriteria -> addSelectColumn ( DbSourcePeer :: DBS_SERVER );
$oCriteria -> addSelectColumn ( DbSourcePeer :: DBS_DATABASE_NAME );
$oCriteria -> addSelectColumn ( DbSourcePeer :: DBS_USERNAME );
$oCriteria -> addSelectColumn ( DbSourcePeer :: DBS_PASSWORD );
$oCriteria -> addSelectColumn ( DbSourcePeer :: DBS_PORT );
$oCriteria -> addAsColumn ( 'DBS_DESCRIPTION' , 'C.CON_VALUE' );
$oCriteria -> addAlias ( 'C' , 'CONTENT' );
$aConditions = array ();
$aConditions [] = array ( DbSourcePeer :: DBS_UID , 'C.CON_ID' );
$aConditions [] = array ( 'C.CON_CATEGORY' , $sDelimiter . 'DBS_DESCRIPTION' . $sDelimiter );
$aConditions [] = array ( 'C.CON_LANG' , $sDelimiter . SYS_LANG . $sDelimiter );
$oCriteria -> addJoinMC ( $aConditions , Criteria :: LEFT_JOIN );
$oCriteria -> add ( DbSourcePeer :: PRO_UID , $sProcessUID );
2012-10-09 13:08:42 -04:00
2012-10-18 15:02:44 -04:00
$this -> tmpCriteria = clone $oCriteria ;
if ( $start != '' ) {
2013-03-04 09:29:59 -04:00
$oCriteria -> setOffset ( $start );
2012-10-18 15:02:44 -04:00
}
if ( $limit != '' ) {
2013-03-04 09:29:59 -04:00
$oCriteria -> setLimit ( $limit );
2012-10-18 15:02:44 -04:00
}
2013-03-04 09:29:59 -04:00
$oDataset = DbSourcePeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
while ( $aRow = $oDataset -> getRow ()) {
2013-03-04 09:29:59 -04:00
$aDBList [] = array ( 'DBS_UID' => $aRow [ 'DBS_UID' ], 'DBS_TYPE' => $aRow [ 'DBS_TYPE' ], 'DBS_SERVER' => $aRow [ 'DBS_SERVER' ], 'DBS_DATABASE_NAME' => $aRow [ 'DBS_DATABASE_NAME' ], 'DBS_USERNAME' => $aRow [ 'DBS_USERNAME' ], 'DBS_PASSWORD' => $aRow [ 'DBS_PASSWORD' ], 'DBS_DESCRIPTION' => $aRow [ 'DBS_DESCRIPTION' ], 'DBS_PORT' => $aRow [ 'DBS_PORT' ] );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
}
return $aDBList ;
} catch ( Exception $e ) {
throw ( $e );
}
2012-10-09 13:08:42 -04:00
}
2012-10-18 15:02:44 -04:00
/**
* newExtObjectPermission
*
* @ param string $sProcessUID
* @ param string $sAction
* @ return array depending on action
*/
2013-03-04 09:29:59 -04:00
public function newExtObjectPermission ( $sProcessUID , $sAction )
2012-10-18 15:02:44 -04:00
{
2013-03-04 09:29:59 -04:00
$aAllTasks = array ();
$aAllTasks [] = array ( 'UID' => 'char' , 'LABEL' => 'char' );
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> addSelectColumn ( TaskPeer :: PRO_UID );
$oCriteria -> addSelectColumn ( TaskPeer :: TAS_UID );
$oCriteria -> addSelectColumn ( ContentPeer :: CON_VALUE );
$aConditions = array ();
$aConditions [] = array ( 0 => TaskPeer :: TAS_UID , 1 => ContentPeer :: CON_ID );
$aConditions [] = array ( 0 => ContentPeer :: CON_CATEGORY , 1 => DBAdapter :: getStringDelimiter () . 'TAS_TITLE' . DBAdapter :: getStringDelimiter () );
$aConditions [] = array ( 0 => ContentPeer :: CON_LANG , 1 => DBAdapter :: getStringDelimiter () . SYS_LANG . DBAdapter :: getStringDelimiter () );
$oCriteria -> addJoinMC ( $aConditions , Criteria :: LEFT_JOIN );
$oCriteria -> add ( TaskPeer :: PRO_UID , $sProcessUID );
$oDataset = TaskPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
while ( $aRow = $oDataset -> getRow ()) {
2013-03-04 09:29:59 -04:00
$aAllTasks [] = array ( 'UID' => $aRow [ 'TAS_UID' ], 'LABEL' => $aRow [ 'CON_VALUE' ]
2012-10-18 15:02:44 -04:00
);
$oDataset -> next ();
}
2013-03-04 09:29:59 -04:00
$aUsersGroups = array ();
$aUsersGroups [] = array ( 'UID' => 'char' , 'LABEL' => 'char' );
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> addSelectColumn ( GroupwfPeer :: GRP_UID );
$oCriteria -> addAsColumn ( 'GRP_TITLE' , ContentPeer :: CON_VALUE );
$aConditions = array ();
$aConditions [] = array ( GroupwfPeer :: GRP_UID , ContentPeer :: CON_ID );
$aConditions [] = array ( ContentPeer :: CON_CATEGORY , DBAdapter :: getStringDelimiter () . 'GRP_TITLE' . DBAdapter :: getStringDelimiter () );
$aConditions [] = array ( ContentPeer :: CON_LANG , DBAdapter :: getStringDelimiter () . SYS_LANG . DBAdapter :: getStringDelimiter () );
$oCriteria -> addJoinMC ( $aConditions , Criteria :: LEFT_JOIN );
$oCriteria -> add ( GroupwfPeer :: GRP_STATUS , 'ACTIVE' );
$oDataset = GroupwfPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
while ( $aRow = $oDataset -> getRow ()) {
2013-03-04 09:29:59 -04:00
$aUsersGroups [] = array ( 'UID' => '2|' . $aRow [ 'GRP_UID' ], 'LABEL' => $aRow [ 'GRP_TITLE' ] . ' (' . G :: LoadTranslation ( 'ID_GROUP' ) . ')' );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
}
2013-03-04 09:29:59 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> addSelectColumn ( UsersPeer :: USR_UID );
$oCriteria -> addSelectColumn ( UsersPeer :: USR_USERNAME );
$oCriteria -> addSelectColumn ( UsersPeer :: USR_FIRSTNAME );
$oCriteria -> addSelectColumn ( UsersPeer :: USR_LASTNAME );
$oCriteria -> add ( UsersPeer :: USR_STATUS , 'ACTIVE' );
$oDataset = UsersPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
while ( $aRow = $oDataset -> getRow ()) {
2013-03-04 09:29:59 -04:00
$aUsersGroups [] = array ( 'UID' => '1|' . $aRow [ 'USR_UID' ], 'LABEL' => $aRow [ 'USR_FIRSTNAME' ] . ' ' . $aRow [ 'USR_LASTNAME' ] . ' (' . $aRow [ 'USR_USERNAME' ] . ')'
2012-10-18 15:02:44 -04:00
);
$oDataset -> next ();
}
2013-03-04 09:29:59 -04:00
$aAllObjects = array ();
$aAllObjects [] = array ( 'UID' => 'char' , 'LABEL' => 'char' );
$aAllDynaforms = array ();
$aAllDynaforms [] = array ( 'UID' => 'char' , 'LABEL' => 'char' );
$aAllInputs = array ();
$aAllInputs [] = array ( 'UID' => 'char' , 'LABEL' => 'char' );
$aAllOutputs = array ();
$aAllOutputs [] = array ( 'UID' => 'char' , 'LABEL' => 'char' );
$oCriteria = $this -> getDynaformsCriteria ( $sProcessUID );
$oCriteria -> add ( DynaformPeer :: DYN_TYPE , 'XMLFORM' );
$oDataset = DynaformPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
while ( $aRow = $oDataset -> getRow ()) {
2013-03-04 09:29:59 -04:00
$aRow [ 'DYN_TITLE' ] = ( isset ( $aRow [ 'DYN_TITLE' ])) ? $aRow [ 'DYN_TITLE' ] : '' ;
$aAllObjects [] = array ( 'UID' => 'DYNAFORM|' . $aRow [ 'DYN_UID' ], 'LABEL' => $aRow [ 'DYN_TITLE' ] . ' (' . G :: LoadTranslation ( 'ID_DYNAFORM' ) . ')' );
$aAllDynaforms [] = array ( 'UID' => $aRow [ 'DYN_UID' ], 'LABEL' => $aRow [ 'DYN_TITLE' ] );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
}
2013-03-04 09:29:59 -04:00
G :: LoadClass ( 'ArrayPeer' );
$oDataset = ArrayBasePeer :: doSelectRS ( $this -> getInputDocumentsCriteria ( $sProcessUID ));
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
while ( $aRow = $oDataset -> getRow ()) {
2013-03-04 09:29:59 -04:00
$aAllObjects [] = array ( 'UID' => 'INPUT_DOCUMENT|' . $aRow [ 'INP_DOC_UID' ], 'LABEL' => $aRow [ 'INP_DOC_TITLE' ] . ' (' . G :: LoadTranslation ( 'ID_INPUT_DOCUMENT' ) . ')' );
$aAllInputs [] = array ( 'UID' => $aRow [ 'INP_DOC_UID' ], 'LABEL' => $aRow [ 'INP_DOC_TITLE' ] );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
}
2013-03-04 09:29:59 -04:00
G :: LoadClass ( 'ArrayPeer' );
$oDataset = ArrayBasePeer :: doSelectRS ( $this -> getOutputDocumentsCriteria ( $sProcessUID ));
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
while ( $aRow = $oDataset -> getRow ()) {
2013-03-04 09:29:59 -04:00
$aAllObjects [] = array ( 'UID' => 'OUTPUT_DOCUMENT|' . $aRow [ 'OUT_DOC_UID' ], 'LABEL' => $aRow [ 'OUT_DOC_TITLE' ] . ' (' . G :: LoadTranslation ( 'ID_OUTPUT_DOCUMENT' ) . ')' );
$aAllOutputs [] = array ( 'UID' => $aRow [ 'OUT_DOC_UID' ], 'LABEL' => $aRow [ 'OUT_DOC_TITLE' ] );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
}
global $_DBArray ;
2013-03-04 09:29:59 -04:00
$_DBArray = ( isset ( $_SESSION [ '_DBArray' ]) ? $_SESSION [ '_DBArray' ] : '' );
2012-10-18 15:02:44 -04:00
switch ( $sAction ) {
case 'tasks' :
return $aAllTasks ;
break ;
case 'users' :
return $aUsersGroups ;
break ;
case 'dynaform' :
return $aAllDynaforms ;
break ;
case 'input' :
return $aAllInputs ;
break ;
case 'output' :
return $aAllOutputs ;
break ;
}
}
2012-10-09 13:08:42 -04:00
2013-03-04 09:29:59 -04:00
public function ExtcaseTracker ( $sProcessUID )
2012-10-18 15:02:44 -04:00
{
$oCriteria = new Criteria ();
2013-03-04 09:29:59 -04:00
$oCriteria -> add ( CaseTrackerPeer :: PRO_UID , $sProcessUID );
2012-10-18 15:02:44 -04:00
$oCaseTracker = new CaseTracker ();
2013-03-04 09:29:59 -04:00
if ( CaseTrackerPeer :: doCount ( $oCriteria ) === 0 ) {
$aCaseTracker = array ( 'PRO_UID' => $sProcessUID , 'CT_MAP_TYPE' => 'PROCESSMAP' , 'CT_DERIVATION_HISTORY' => 1 , 'CT_MESSAGE_HISTORY' => 1 );
$oCaseTracker -> create ( $aCaseTracker );
2012-10-18 15:02:44 -04:00
} else {
2013-03-04 09:29:59 -04:00
$aCaseTracker = $oCaseTracker -> load ( $sProcessUID );
2012-10-18 15:02:44 -04:00
}
return $aCaseTracker ;
2013-03-04 09:29:59 -04:00
/* global $G_PUBLISH ;
$G_PUBLISH = new Publisher ( );
$G_PUBLISH -> AddContent ( 'xmlform' , 'xmlform' , 'tracker/tracker_Configuration' , '' , $aCaseTracker , '../tracker/tracker_Save' );
G :: RenderPage ( 'publish' , 'raw' );
return true ; */
2012-10-18 15:02:44 -04:00
}
2012-10-09 13:08:42 -04:00
2012-10-18 15:02:44 -04:00
//new functions
2013-03-04 09:29:59 -04:00
public function getAllCaseTrackerObjectCount ()
2012-10-18 15:02:44 -04:00
{
$c = $this -> tmpCriteria ;
$c -> clearSelectColumns ();
2013-03-04 09:29:59 -04:00
$c -> addSelectColumn ( 'COUNT(*)' );
$oDataset = CaseTrackerObjectPeer :: doSelectRS ( $c );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
$aRow = $oDataset -> getRow ();
2012-10-18 14:46:16 -04:00
2013-03-04 09:29:59 -04:00
if ( is_array ( $aRow )) {
2012-10-18 15:02:44 -04:00
return $aRow [ 0 ];
} else {
return 0 ;
}
2012-10-09 13:08:42 -04:00
}
2011-02-18 06:41:48 +00:00
2012-10-18 15:02:44 -04:00
/**
* getCaseTrackerObjectsCriteria
*
* @ param string $sProcessUID
* @ return object ( Criteria ) $oCriteria
*/
2013-03-04 09:29:59 -04:00
public function getExtCaseTrackerObjectsCriteria ( $start , $limit , $sProcessUID )
2012-10-18 15:02:44 -04:00
{
2013-03-04 09:29:59 -04:00
$aObjects = array ();
$aObjects [] = array ( 'CTO_TITLE' => 'char' , 'CTO_UID' => 'char' , 'CTO_TYPE_OBJ' => 'char' , 'CTO_UID_OBJ' => 'char' , 'CTO_CONDITION' => 'char' , 'CTO_POSITION' => 'integer' );
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> add ( CaseTrackerObjectPeer :: PRO_UID , $sProcessUID );
$oCriteria -> addAscendingOrderByColumn ( CaseTrackerObjectPeer :: CTO_POSITION );
2012-10-18 15:02:44 -04:00
$this -> tmpCriteria = clone $oCriteria ;
2012-10-18 14:46:16 -04:00
2012-10-18 15:02:44 -04:00
if ( $start != '' ) {
2013-03-04 09:29:59 -04:00
$oCriteria -> setOffset ( $start );
2012-10-18 15:02:44 -04:00
}
if ( $limit != '' ) {
2013-03-04 09:29:59 -04:00
$oCriteria -> setLimit ( $limit );
2012-10-18 15:02:44 -04:00
}
2013-03-04 09:29:59 -04:00
$oDataset = CaseTrackerObjectPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
while ( $aRow = $oDataset -> getRow ()) {
try {
switch ( $aRow [ 'CTO_TYPE_OBJ' ]) {
case 'DYNAFORM' :
$oDynaform = new Dynaform ();
2013-03-04 09:29:59 -04:00
$aFields = $oDynaform -> load ( $aRow [ 'CTO_UID_OBJ' ]);
2012-10-18 15:02:44 -04:00
$sTitle = $aFields [ 'DYN_TITLE' ];
break ;
case 'INPUT_DOCUMENT' :
$oInputDocument = new InputDocument ();
2013-03-04 09:29:59 -04:00
$aFields = $oInputDocument -> load ( $aRow [ 'CTO_UID_OBJ' ]);
2012-10-18 15:02:44 -04:00
$sTitle = $aFields [ 'INP_DOC_TITLE' ];
break ;
case 'OUTPUT_DOCUMENT' :
$oOutputDocument = new OutputDocument ();
2013-03-04 09:29:59 -04:00
$aFields = $oOutputDocument -> load ( $aRow [ 'CTO_UID_OBJ' ]);
2012-10-18 15:02:44 -04:00
$sTitle = $aFields [ 'OUT_DOC_TITLE' ];
break ;
}
2013-03-04 09:29:59 -04:00
$aObjects [] = array ( 'CTO_TITLE' => $sTitle , 'CTO_UID' => $aRow [ 'CTO_UID' ], 'CTO_TYPE_OBJ' => $aRow [ 'CTO_TYPE_OBJ' ], 'CTO_UID_OBJ' => $aRow [ 'CTO_UID_OBJ' ], 'CTO_CONDITION' => $aRow [ 'CTO_CONDITION' ], 'CTO_POSITION' => $aRow [ 'CTO_POSITION' ] );
2012-10-18 15:02:44 -04:00
} catch ( Exception $oError ) {
//Nothing
}
$oDataset -> next ();
}
// return $aObjects;
global $_DBArray ;
2013-03-04 09:29:59 -04:00
$_DBArray = ( isset ( $_SESSION [ '_DBArray' ]) ? $_SESSION [ '_DBArray' ] : '' );
2012-10-18 15:02:44 -04:00
$_DBArray [ 'objects' ] = $aObjects ;
$_SESSION [ '_DBArray' ] = $_DBArray ;
2013-03-04 09:29:59 -04:00
G :: LoadClass ( 'ArrayPeer' );
$oCriteria = new Criteria ( 'dbarray' );
$oCriteria -> setDBArrayTable ( 'objects' );
$oCriteria -> addAscendingOrderByColumn ( 'CTO_POSITION' );
2012-10-18 15:02:44 -04:00
return $aObjects ;
}
2012-10-18 14:46:16 -04:00
2012-10-18 15:02:44 -04:00
/**
* getAvailableCaseTrackerObjectsCriteria
*
* @ param string $sProcessUID Default value empty
* @ return object ( Criteria ) $oCriteria
*/
2013-03-04 09:29:59 -04:00
public function getAvailableExtCaseTrackerObjects ( $sProcessUID = '' )
2012-10-18 15:02:44 -04:00
{
2013-03-04 09:29:59 -04:00
$oCriteria = $this -> getCaseTrackerObjectsCriteria ( $sProcessUID );
$oDataset = CaseTrackerObjectPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
2013-03-04 09:29:59 -04:00
$aDynaformsUIDS = array ();
$aInputsUIDS = array ();
$aOutputsUIDS = array ();
2012-10-18 15:02:44 -04:00
while ( $aRow = $oDataset -> getRow ()) {
switch ( $aRow [ 'CTO_TYPE_OBJ' ]) {
case 'DYNAFORM' :
$aDynaformsUIDS [] = $aRow [ 'CTO_UID_OBJ' ];
break ;
case 'INPUT_DOCUMENT' :
$aInputsUIDS [] = $aRow [ 'CTO_UID_OBJ' ];
break ;
case 'OUTPUT_DOCUMENT' :
$aOutputsUIDS [] = $aRow [ 'CTO_UID_OBJ' ];
break ;
}
$oDataset -> next ();
}
2013-03-04 09:29:59 -04:00
$aAvailableObjects = array ();
$aAvailableObjects [] = array ( 'OBJECT_UID' => 'char' , 'OBJECT_TYPE' => 'char' , 'OBJECT_TITLE' => 'char' );
2012-10-18 15:02:44 -04:00
$sDelimiter = DBAdapter :: getStringDelimiter ();
2013-03-04 09:29:59 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> addSelectColumn ( DynaformPeer :: DYN_UID );
$oCriteria -> addAsColumn ( 'DYN_TITLE' , 'C.CON_VALUE' );
$oCriteria -> addAlias ( 'C' , 'CONTENT' );
$aConditions = array ();
$aConditions [] = array ( DynaformPeer :: DYN_UID , 'C.CON_ID' );
$aConditions [] = array ( 'C.CON_CATEGORY' , $sDelimiter . 'DYN_TITLE' . $sDelimiter );
$aConditions [] = array ( 'C.CON_LANG' , $sDelimiter . SYS_LANG . $sDelimiter );
$oCriteria -> addJoinMC ( $aConditions , Criteria :: LEFT_JOIN );
$oCriteria -> add ( DynaformPeer :: PRO_UID , $sProcessUID );
$oCriteria -> add ( DynaformPeer :: DYN_TYPE , 'xmlform' );
$oCriteria -> add ( DynaformPeer :: DYN_UID , $aDynaformsUIDS , Criteria :: NOT_IN );
$oDataset = DynaformPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
while ( $aRow = $oDataset -> getRow ()) {
2013-03-04 09:29:59 -04:00
$aAvailableObjects [] = array ( 'OBJECT_UID' => $aRow [ 'DYN_UID' ], 'OBJECT_TYPE' => 'DYNAFORM' , 'OBJECT_TITLE' => $aRow [ 'DYN_TITLE' ]
2012-10-18 15:02:44 -04:00
);
$oDataset -> next ();
}
2013-03-04 09:29:59 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> addSelectColumn ( InputDocumentPeer :: INP_DOC_UID );
$oCriteria -> addAsColumn ( 'INP_DOC_TITLE' , 'C.CON_VALUE' );
$oCriteria -> addAlias ( 'C' , 'CONTENT' );
$aConditions = array ();
$aConditions [] = array ( InputDocumentPeer :: INP_DOC_UID , 'C.CON_ID' );
$aConditions [] = array ( 'C.CON_CATEGORY' , $sDelimiter . 'INP_DOC_TITLE' . $sDelimiter );
$aConditions [] = array ( 'C.CON_LANG' , $sDelimiter . SYS_LANG . $sDelimiter );
$oCriteria -> addJoinMC ( $aConditions , Criteria :: LEFT_JOIN );
$oCriteria -> add ( InputDocumentPeer :: PRO_UID , $sProcessUID );
$oCriteria -> add ( InputDocumentPeer :: INP_DOC_UID , $aInputsUIDS , Criteria :: NOT_IN );
$oDataset = InputDocumentPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
while ( $aRow = $oDataset -> getRow ()) {
2013-03-04 09:29:59 -04:00
$aAvailableObjects [] = array ( 'OBJECT_UID' => $aRow [ 'INP_DOC_UID' ], 'OBJECT_TYPE' => 'INPUT_DOCUMENT' , 'OBJECT_TITLE' => $aRow [ 'INP_DOC_TITLE' ]
2012-10-18 15:02:44 -04:00
);
$oDataset -> next ();
}
2013-03-04 09:29:59 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> addSelectColumn ( OutputDocumentPeer :: OUT_DOC_UID );
$oCriteria -> addAsColumn ( 'OUT_DOC_TITLE' , 'C.CON_VALUE' );
$oCriteria -> addAlias ( 'C' , 'CONTENT' );
$aConditions = array ();
$aConditions [] = array ( OutputDocumentPeer :: OUT_DOC_UID , 'C.CON_ID' );
$aConditions [] = array ( 'C.CON_CATEGORY' , $sDelimiter . 'OUT_DOC_TITLE' . $sDelimiter );
$aConditions [] = array ( 'C.CON_LANG' , $sDelimiter . SYS_LANG . $sDelimiter );
$oCriteria -> addJoinMC ( $aConditions , Criteria :: LEFT_JOIN );
$oCriteria -> add ( OutputDocumentPeer :: PRO_UID , $sProcessUID );
$oCriteria -> add ( OutputDocumentPeer :: OUT_DOC_UID , $aOutputsUIDS , Criteria :: NOT_IN );
2012-10-18 14:46:16 -04:00
2013-03-04 09:29:59 -04:00
$oDataset = OutputDocumentPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
while ( $aRow = $oDataset -> getRow ()) {
2013-03-04 09:29:59 -04:00
$aAvailableObjects [] = array ( 'OBJECT_UID' => $aRow [ 'OUT_DOC_UID' ], 'OBJECT_TYPE' => 'OUTPUT_DOCUMENT' , 'OBJECT_TITLE' => $aRow [ 'OUT_DOC_TITLE' ] );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
2012-10-09 13:08:42 -04:00
}
2012-10-18 15:02:44 -04:00
return $aAvailableObjects ;
2013-03-04 09:29:59 -04:00
/* global $_DBArray ;
$_DBArray = ( isset ( $_SESSION [ '_DBArray' ]) ? $_SESSION [ '_DBArray' ] : '' );
$_DBArray [ 'availableObjects' ] = $aAvailableObjects ;
$_SESSION [ '_DBArray' ] = $_DBArray ;
G :: LoadClass ( 'ArrayPeer' );
$oCriteria = new Criteria ( 'dbarray' );
$oCriteria -> setDBArrayTable ( 'availableObjects' );
return $oCriteria ; */
2012-10-09 13:08:42 -04:00
}
2011-08-25 12:58:52 -04:00
2012-10-18 15:02:44 -04:00
//new functions
2013-03-04 09:29:59 -04:00
public function getAllReportTableCount ()
2012-10-18 15:02:44 -04:00
{
$c = $this -> tmpCriteria ;
$c -> clearSelectColumns ();
2013-03-04 09:29:59 -04:00
$c -> addSelectColumn ( 'COUNT(*)' );
$oDataset = ReportTablePeer :: doSelectRS ( $c );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
$aRow = $oDataset -> getRow ();
2012-10-18 14:46:16 -04:00
2013-03-04 09:29:59 -04:00
if ( is_array ( $aRow )) {
2012-10-18 15:02:44 -04:00
return $aRow [ 0 ];
2012-10-10 01:31:49 -04:00
} else {
2012-10-18 15:02:44 -04:00
return 0 ;
2012-10-18 14:46:16 -04:00
}
}
2013-03-04 09:29:59 -04:00
public function getExtReportTables ( $start , $limit , $sProcessUID = '' )
2012-10-18 15:02:44 -04:00
{
$sDelimiter = DBAdapter :: getStringDelimiter ();
2013-03-04 09:29:59 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> addSelectColumn ( ReportTablePeer :: REP_TAB_UID );
$oCriteria -> addSelectColumn ( ReportTablePeer :: PRO_UID );
2012-10-18 15:02:44 -04:00
// $oCriteria->addAsColumn ( 'REP_TAB_TITLE', 'C.CON_VALUE' );
2013-03-04 09:29:59 -04:00
$oCriteria -> addAsColumn ( 'REP_TAB_TITLE' , " CASE WHEN C.CON_VALUE IS NULL THEN (SELECT DISTINCT MAX(A.CON_VALUE) FROM CONTENT A WHERE A.CON_ID = REPORT_TABLE.REP_TAB_UID ) ELSE C.CON_VALUE END " );
$oCriteria -> addAlias ( 'C' , 'CONTENT' );
$aConditions = array ();
$aConditions [] = array ( ReportTablePeer :: REP_TAB_UID , 'C.CON_ID' );
$aConditions [] = array ( 'C.CON_CATEGORY' , $sDelimiter . 'REP_TAB_TITLE' . $sDelimiter );
$aConditions [] = array ( 'C.CON_LANG' , $sDelimiter . SYS_LANG . $sDelimiter );
$oCriteria -> addJoinMC ( $aConditions , Criteria :: LEFT_JOIN );
$oCriteria -> add ( ReportTablePeer :: PRO_UID , $sProcessUID );
2012-10-18 14:46:16 -04:00
2012-10-18 15:02:44 -04:00
$this -> tmpCriteria = clone $oCriteria ;
2012-10-18 14:46:16 -04:00
2012-10-18 15:02:44 -04:00
if ( $start != '' ) {
2013-03-04 09:29:59 -04:00
$oCriteria -> setOffset ( $start );
2012-10-18 14:46:16 -04:00
}
2012-10-18 15:02:44 -04:00
if ( $limit != '' ) {
2013-03-04 09:29:59 -04:00
$oCriteria -> setLimit ( $limit );
2012-10-18 14:46:16 -04:00
}
2013-03-04 09:29:59 -04:00
$oDataset = ReportTablePeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 14:46:16 -04:00
$oDataset -> next ();
2012-10-18 15:02:44 -04:00
while ( $aRow = $oDataset -> getRow ()) {
2013-03-04 09:29:59 -04:00
$aReportTable [] = array ( 'REP_TAB_UID' => $aRow [ 'REP_TAB_UID' ], 'REP_TAB_TITLE' => $aRow [ 'REP_TAB_TITLE' ] );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
}
return $aReportTable ;
}
2012-10-18 14:46:16 -04:00
2013-03-04 09:29:59 -04:00
public function getExtAvailableUsersList ( $sTaskUID = '' , $iType = 2 )
2012-10-18 15:02:44 -04:00
{
try {
$oTasks = new Tasks ();
2013-03-04 09:29:59 -04:00
$aAux = $oTasks -> getGroupsOfTask ( $sTaskUID , $iType );
$aUIDS1 = array ();
$aUIDS2 = array ();
2012-10-18 15:02:44 -04:00
foreach ( $aAux as $aGroup ) {
$aUIDS1 [] = $aGroup [ 'GRP_UID' ];
}
2013-03-04 09:29:59 -04:00
$aAux = $oTasks -> getUsersOfTask ( $sTaskUID , $iType );
2012-10-18 15:02:44 -04:00
foreach ( $aAux as $aUser ) {
$aUIDS2 [] = $aUser [ 'USR_UID' ];
}
2013-03-04 09:29:59 -04:00
$aUsers = array ();
$aUsers [] = array ( 'LABEL' => 'char' , 'TAS_UID' => 'char' , 'USR_UID' => 'char' , 'TU_TYPE' => 'integer' , 'TU_RELATION' => 'integer' );
2012-10-18 15:02:44 -04:00
$sDelimiter = DBAdapter :: getStringDelimiter ();
2013-03-04 09:29:59 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> addSelectColumn ( GroupwfPeer :: GRP_UID );
$oCriteria -> addAsColumn ( 'GRP_TITLE' , 'C.CON_VALUE' );
$oCriteria -> addAlias ( 'C' , 'CONTENT' );
$aConditions = array ();
$aConditions [] = array ( GroupwfPeer :: GRP_UID , 'C.CON_ID' );
$aConditions [] = array ( 'C.CON_CATEGORY' , $sDelimiter . 'GRP_TITLE' . $sDelimiter );
$aConditions [] = array ( 'C.CON_LANG' , $sDelimiter . SYS_LANG . $sDelimiter );
$oCriteria -> addJoinMC ( $aConditions , Criteria :: LEFT_JOIN );
$oCriteria -> add ( GroupwfPeer :: GRP_STATUS , 'ACTIVE' );
$oCriteria -> add ( GroupwfPeer :: GRP_UID , $aUIDS1 , Criteria :: NOT_IN );
2012-10-18 15:02:44 -04:00
//$oCriteria->add(GroupwfPeer::GRP_UID, '', Criteria::NOT_EQUAL);
2013-03-04 09:29:59 -04:00
$oDataset = GroupwfPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
$c = 0 ;
while ( $aRow = $oDataset -> getRow ()) {
2013-03-04 09:29:59 -04:00
$c ++ ;
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> addSelectColumn ( 'COUNT(*) AS MEMBERS_NUMBER' );
$oCriteria -> add ( GroupUserPeer :: GRP_UID , $aRow [ 'GRP_UID' ]);
$oDataset2 = GroupUserPeer :: doSelectRS ( $oCriteria );
$oDataset2 -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset2 -> next ();
$aRow2 = $oDataset2 -> getRow ();
2013-03-04 09:29:59 -04:00
$aUsers [] = array ( 'LABEL' => $aRow [ 'GRP_TITLE' ] . ' <a href="#" onclick="usersGroup(\'' . $aRow [ 'GRP_UID' ] . '\', \'' . $c . '\');return false;"><font color="green"><strong>(' . $aRow2 [ 'MEMBERS_NUMBER' ] . ' ' . (( int ) $aRow2 [ 'MEMBERS_NUMBER' ] == 1 ? G :: LoadTranslation ( 'ID_USER' ) : G :: LoadTranslation ( 'ID_USERS' )) . ')</strong></font></a> <br /><div id="users' . $c . '" style="display: none"></div>' , 'TAS_UID' => $sTaskUID , 'USR_UID' => $aRow [ 'GRP_UID' ], 'TU_TYPE' => $iType , 'TU_RELATION' => 2 );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
2012-10-18 14:46:16 -04:00
}
2012-10-18 15:02:44 -04:00
$sDelimiter = DBAdapter :: getStringDelimiter ();
2013-03-04 09:29:59 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> addSelectColumn ( UsersPeer :: USR_UID );
$oCriteria -> addSelectColumn ( UsersPeer :: USR_FIRSTNAME );
$oCriteria -> addSelectColumn ( UsersPeer :: USR_LASTNAME );
$oCriteria -> add ( UsersPeer :: USR_STATUS , 'ACTIVE' );
$oCriteria -> add ( UsersPeer :: USR_UID , $aUIDS2 , Criteria :: NOT_IN );
$oDataset = UsersPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
while ( $aRow = $oDataset -> getRow ()) {
2013-03-04 09:29:59 -04:00
$aUsers [] = array ( 'LABEL' => $aRow [ 'USR_FIRSTNAME' ] . ' ' . $aRow [ 'USR_LASTNAME' ], 'TAS_UID' => $sTaskUID , 'USR_UID' => $aRow [ 'USR_UID' ], 'TU_TYPE' => $iType , 'TU_RELATION' => 1 );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
2012-10-18 14:46:16 -04:00
}
2012-10-18 15:02:44 -04:00
global $_DBArray ;
2013-03-04 09:29:59 -04:00
$_DBArray = ( isset ( $_SESSION [ '_DBArray' ]) ? $_SESSION [ '_DBArray' ] : '' );
2012-10-18 15:02:44 -04:00
$_DBArray [ 'availableUsers' ] = $aUsers ;
$_SESSION [ '_DBArray' ] = $_DBArray ;
return $_SESSION [ '_DBArray' ][ 'availableUsers' ];
} catch ( Exception $oError ) {
throw ( $oError );
2012-10-18 14:46:16 -04:00
}
2012-10-18 15:02:44 -04:00
}
2012-10-18 14:46:16 -04:00
2013-03-04 09:29:59 -04:00
public function getExtTaskUsersAdHocCriteria ( $start , $limit , $sTaskUID = '' , $iType = 1 )
2012-10-18 15:02:44 -04:00
{
try {
2013-03-04 09:29:59 -04:00
$aUsers = array ();
$aUsers [] = array ( 'LABEL' => 'char' , 'TAS_UID' => 'char' , 'USR_UID' => 'char' , 'TU_TYPE' => 'integer' , 'TU_RELATION' => 'integer' );
2012-10-18 15:02:44 -04:00
$sDelimiter = DBAdapter :: getStringDelimiter ();
2013-03-04 09:29:59 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> addAsColumn ( 'GRP_TITLE' , 'C.CON_VALUE' );
$oCriteria -> addSelectColumn ( TaskUserPeer :: TAS_UID );
$oCriteria -> addSelectColumn ( TaskUserPeer :: USR_UID );
$oCriteria -> addSelectColumn ( TaskUserPeer :: TU_TYPE );
$oCriteria -> addSelectColumn ( TaskUserPeer :: TU_RELATION );
$oCriteria -> addAlias ( 'C' , 'CONTENT' );
$aConditions = array ();
$aConditions [] = array ( TaskUserPeer :: USR_UID , 'C.CON_ID' );
$aConditions [] = array ( 'C.CON_CATEGORY' , $sDelimiter . 'GRP_TITLE' . $sDelimiter );
$aConditions [] = array ( 'C.CON_LANG' , $sDelimiter . SYS_LANG . $sDelimiter );
$oCriteria -> addJoinMC ( $aConditions , Criteria :: LEFT_JOIN );
$oCriteria -> add ( TaskUserPeer :: TAS_UID , $sTaskUID );
$oCriteria -> add ( TaskUserPeer :: TU_TYPE , $iType );
$oCriteria -> add ( TaskUserPeer :: TU_RELATION , 2 );
2012-10-18 15:02:44 -04:00
$this -> tmpCriteria = clone $oCriteria ;
if ( $start != '' ) {
2013-03-04 09:29:59 -04:00
$oCriteria -> setOffset ( $start );
2012-10-18 15:02:44 -04:00
}
if ( $limit != '' ) {
2013-03-04 09:29:59 -04:00
$oCriteria -> setLimit ( $limit );
2012-10-18 15:02:44 -04:00
}
2013-03-04 09:29:59 -04:00
$oDataset = TaskUserPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
$c = 0 ;
while ( $aRow = $oDataset -> getRow ()) {
2013-03-04 09:29:59 -04:00
$c ++ ;
2012-10-18 15:02:44 -04:00
$oGroup = new Groupwf ();
2013-03-04 09:29:59 -04:00
$aFields = $oGroup -> load ( $aRow [ 'USR_UID' ]);
2012-10-18 15:02:44 -04:00
if ( $aFields [ 'GRP_STATUS' ] == 'ACTIVE' ) {
2013-03-04 09:29:59 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> addSelectColumn ( 'COUNT(*) AS MEMBERS_NUMBER' );
$oCriteria -> add ( GroupUserPeer :: GRP_UID , $aRow [ 'USR_UID' ]);
$oDataset2 = GroupUserPeer :: doSelectRS ( $oCriteria );
$oDataset2 -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset2 -> next ();
$aRow2 = $oDataset2 -> getRow ();
} else {
2013-03-04 09:29:59 -04:00
$aRow2 [ 'GROUP_INACTIVE' ] = '<strong>(' . G :: LoadTranslation ( 'ID_GROUP_INACTIVE' ) . ')</strong>' ;
2012-10-18 15:02:44 -04:00
}
2013-03-04 09:29:59 -04:00
$aUsers [] = array ( 'LABEL' => ( ! isset ( $aRow2 [ 'GROUP_INACTIVE' ]) ? $aRow [ 'GRP_TITLE' ] . ' <a href="#" onclick="usersGroup(\'' . $aRow [ 'USR_UID' ] . '\', \'' . $c . '\');return false;"><font color="green"><strong>(' . $aRow2 [ 'MEMBERS_NUMBER' ] . ' ' . (( int ) $aRow2 [ 'MEMBERS_NUMBER' ] == 1 ? G :: LoadTranslation ( 'ID_USER' ) : G :: LoadTranslation ( 'ID_USERS' )) . ')</strong></font></a> <br /><div id="users' . $c . '" style="display: none"></div>' : $aRow [ 'GRP_TITLE' ] . ' ' . $aRow2 [ 'GROUP_INACTIVE' ]), 'TAS_UID' => $aRow [ 'TAS_UID' ], 'USR_UID' => $aRow [ 'USR_UID' ], 'TU_TYPE' => $aRow [ 'TU_TYPE' ], 'TU_RELATION' => $aRow [ 'TU_RELATION' ]);
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
}
2013-03-04 09:29:59 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> addSelectColumn ( UsersPeer :: USR_FIRSTNAME );
$oCriteria -> addSelectColumn ( UsersPeer :: USR_LASTNAME );
$oCriteria -> addSelectColumn ( TaskUserPeer :: TAS_UID );
$oCriteria -> addSelectColumn ( TaskUserPeer :: USR_UID );
$oCriteria -> addSelectColumn ( TaskUserPeer :: TU_TYPE );
$oCriteria -> addSelectColumn ( TaskUserPeer :: TU_RELATION );
$oCriteria -> addJoin ( TaskUserPeer :: USR_UID , UsersPeer :: USR_UID , Criteria :: LEFT_JOIN );
$oCriteria -> add ( TaskUserPeer :: TAS_UID , $sTaskUID );
$oCriteria -> add ( TaskUserPeer :: TU_TYPE , $iType );
$oCriteria -> add ( TaskUserPeer :: TU_RELATION , 1 );
$oDataset = TaskUserPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
while ( $aRow = $oDataset -> getRow ()) {
2013-03-04 09:29:59 -04:00
$aUsers [] = array ( 'LABEL' => $aRow [ 'USR_FIRSTNAME' ] . ' ' . $aRow [ 'USR_LASTNAME' ], 'TAS_UID' => $aRow [ 'TAS_UID' ], 'USR_UID' => $aRow [ 'USR_UID' ], 'TU_TYPE' => $aRow [ 'TU_TYPE' ], 'TU_RELATION' => $aRow [ 'TU_RELATION' ] );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
}
global $_DBArray ;
2013-03-04 09:29:59 -04:00
$_DBArray = ( isset ( $_SESSION [ '_DBArray' ]) ? $_SESSION [ '_DBArray' ] : '' );
2012-10-18 15:02:44 -04:00
$_DBArray [ 'taskUsers' ] = $aUsers ;
$_SESSION [ '_DBArray' ] = $_DBArray ;
2013-03-04 09:29:59 -04:00
G :: LoadClass ( 'ArrayPeer' );
$oCriteria = new Criteria ( 'dbarray' );
$oCriteria -> setDBArrayTable ( 'taskUsers' );
$oCriteria -> addDescendingOrderByColumn ( TaskUserPeer :: TU_RELATION );
$oCriteria -> addAscendingOrderByColumn ( 'LABEL' );
2012-10-18 15:02:44 -04:00
return $oCriteria ;
} catch ( Exception $oError ) {
throw ( $oError );
}
}
2012-10-18 14:46:16 -04:00
2012-10-18 15:02:44 -04:00
/**
* editObjectPermission
*
* @ param string $sOP_UID
* @ param string $sProcessUID
* @ return void
*/
2013-03-04 09:29:59 -04:00
public function editExtObjectPermission ( $sProcessUID , $sOP_UID )
2012-10-18 15:02:44 -04:00
{
$oCriteria = new Criteria ();
2013-03-04 09:29:59 -04:00
$oCriteria -> add ( ObjectPermissionPeer :: OP_UID , $sOP_UID );
$oDataset = ObjectPermissionPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
$aRows = $oDataset -> getRow ();
2012-10-18 14:46:16 -04:00
2012-10-18 15:02:44 -04:00
$oCriteria = new Criteria ();
2013-03-04 09:29:59 -04:00
$oCriteria -> add ( GroupwfPeer :: GRP_UID , $aRows [ 'USR_UID' ]);
if ( GroupwfPeer :: doCount ( $oCriteria ) == 1 ) {
2012-10-18 15:02:44 -04:00
$user = '2|' . $aRows [ 'USR_UID' ];
}
$oCriteria = new Criteria ();
2013-03-04 09:29:59 -04:00
$oCriteria -> add ( UsersPeer :: USR_UID , $aRows [ 'USR_UID' ]);
if ( UsersPeer :: doCount ( $oCriteria ) == 1 ) {
2012-10-18 15:02:44 -04:00
$user = '1|' . $aRows [ 'USR_UID' ];
}
$aFields [ 'LANG' ] = SYS_LANG ;
$aFields [ 'OP_UID' ] = $aRows [ 'OP_UID' ];
$aFields [ 'PRO_UID' ] = $aRows [ 'PRO_UID' ];
$aFields [ 'OP_CASE_STATUS' ] = $aRows [ 'OP_CASE_STATUS' ];
$aFields [ 'TAS_UID' ] = $aRows [ 'TAS_UID' ];
$aFields [ 'OP_GROUP_USER' ] = $user ;
$aFields [ 'OP_TASK_SOURCE' ] = $aRows [ 'OP_TASK_SOURCE' ];
$aFields [ 'OP_PARTICIPATE' ] = $aRows [ 'OP_PARTICIPATE' ];
$aFields [ 'OP_OBJ_TYPE' ] = $aRows [ 'OP_OBJ_TYPE' ];
$aFields [ 'OP_ACTION' ] = $aRows [ 'OP_ACTION' ];
2013-03-04 09:29:59 -04:00
$lang = defined ( 'SYS_LANG' ) ? SYS_LANG : 'en' ;
$aFields [ 'TASK_TARGET_NAME' ] = Content :: load ( 'TAS_TITLE' , '' , $aRows [ 'TAS_UID' ], $lang );
$aFields [ 'TASK_SOURCE_NAME' ] = Content :: load ( 'TAS_TITLE' , '' , $aRows [ 'OP_TASK_SOURCE' ], $lang );
$oUser = UsersPeer :: retrieveByPK ( $aRows [ 'USR_UID' ]);
if ( ! is_null ( $oUser )) {
2012-10-18 15:02:44 -04:00
$aFields [ 'USR_FULLNAME' ] = $oUser -> getUsrFirstname () . ' ' . $oUser -> getUsrLastname ();
} else {
2013-03-04 09:29:59 -04:00
throw ( new Exception ( " The row ' " . $aRows [ 'USR_UID' ] . " ' in table USER doesn't exist! " ));
2012-10-18 15:02:44 -04:00
}
switch ( $aRows [ 'OP_OBJ_TYPE' ]) {
/* case 'ANY' :
2013-03-04 09:29:59 -04:00
$aFields [ 'OP_OBJ_TYPE' ] = '' ;
break ;
*/
2012-10-18 15:02:44 -04:00
case 'DYNAFORM' :
$aFields [ 'DYNAFORM' ] = $aRows [ 'OP_OBJ_UID' ];
2013-03-04 09:29:59 -04:00
$aFields [ 'DYNAFORM_NAME' ] = Content :: load ( 'DYN_TITLE' , '' , $aRows [ 'OP_OBJ_UID' ], $lang );
2012-10-18 15:02:44 -04:00
break ;
case 'INPUT' :
$aFields [ 'INPUT' ] = $aRows [ 'OP_OBJ_UID' ];
2013-03-04 09:29:59 -04:00
$aFields [ 'INPUT_NAME' ] = Content :: load ( 'INP_DOC_TITLE' , '' , $aRows [ 'OP_OBJ_UID' ], $lang );
2012-10-18 15:02:44 -04:00
break ;
case 'OUTPUT' :
$aFields [ 'OUTPUT' ] = $aRows [ 'OP_OBJ_UID' ];
2013-03-04 09:29:59 -04:00
$aFields [ 'OUTPUT_NAME' ] = Content :: load ( 'OUT_DOC_TITLE' , '' , $aRows [ 'OP_OBJ_UID' ], $lang );
2012-10-18 15:02:44 -04:00
break ;
}
2012-10-18 14:46:16 -04:00
2012-10-18 15:02:44 -04:00
return $aFields ;
}
2012-10-05 13:00:58 -04:00
2013-03-04 09:29:59 -04:00
public function getExtusersadhoc ( $start , $limit , $sProcessUID = '' , $sTaskUID = '' )
2012-10-09 13:08:42 -04:00
{
2012-10-18 15:02:44 -04:00
try {
$oProcess = new Process ();
2013-03-04 09:29:59 -04:00
$aFields = $oProcess -> load ( $sProcessUID );
2012-10-18 15:02:44 -04:00
$oTask = new Task ();
2013-03-04 09:29:59 -04:00
$aFields = $oTask -> load ( $sTaskUID );
2012-10-18 15:02:44 -04:00
$_SESSION [ 'iType' ] = 2 ;
$aFields [ 'TASK' ] = $sTaskUID ;
$aFields [ 'TYPE' ] = $_SESSION [ 'iType' ];
2013-03-04 09:29:59 -04:00
$aFields [ 'OF_TO_ASSIGN' ] = G :: LoadTranslation ( 'ID_DE_ASSIGN' );
$aFields [ 'CONFIRM' ] = G :: LoadTranslation ( 'ID_MSG_CONFIRM_DEASIGN_USER_GROUP_MESSAGE' );
2012-10-18 15:02:44 -04:00
$aFields [ 'UIDS' ] = " '0' " ;
$oTasks = new Tasks ();
$oGroups = new Groups ();
2013-03-04 09:29:59 -04:00
$aAux1 = $oTasks -> getGroupsOfTask ( $sTaskUID , $_SESSION [ 'iType' ]);
2012-10-18 15:02:44 -04:00
foreach ( $aAux1 as $aGroup ) {
2013-03-04 09:29:59 -04:00
$aAux2 = $oGroups -> getUsersOfGroup ( $aGroup [ 'GRP_UID' ]);
2012-10-18 15:02:44 -04:00
foreach ( $aAux2 as $aUser ) {
$aFields [ 'UIDS' ] .= " ,' " . $aUser [ 'USR_UID' ] . " ' " ;
}
}
global $G_PUBLISH ;
$G_PUBLISH = new Publisher ();
$oTask = new Task ();
2013-03-04 09:29:59 -04:00
$aTask = $oTask -> load ( $sTaskUID );
2012-10-18 15:02:44 -04:00
//$assignedUsers = getExtTaskUsersCriteria($sTaskUID, $_SESSION ['iType']);
2013-03-04 09:29:59 -04:00
$this -> getExtTaskUsersAdHocCriteria ( $start , $limit , $sTaskUID , $_SESSION [ 'iType' ]);
2012-10-18 15:02:44 -04:00
return $_SESSION [ '_DBArray' ][ 'taskUsers' ];
} catch ( Exception $oError ) {
throw ( $oError );
}
}
2012-10-09 13:08:42 -04:00
2013-03-04 09:29:59 -04:00
public function saveExtddEvents ( $oData )
2012-10-18 15:02:44 -04:00
{
$oTask = new Task ();
$oEvent = new Event ();
$sEvn_uid = '' ;
2013-03-04 09:29:59 -04:00
$aData = array ();
2012-10-18 15:02:44 -04:00
$aData [ 'PRO_UID' ] = $oData -> uid ;
$aData [ 'EVN_TYPE' ] = $oData -> evn_type ;
$aData [ 'EVN_POSX' ] = $oData -> position -> x ;
$aData [ 'EVN_POSY' ] = $oData -> position -> y ;
$aData [ 'EVN_STATUS' ] = 'ACTIVE' ;
$aData [ 'EVN_WHEN' ] = '1' ;
$aData [ 'EVN_ACTION' ] = '' ;
2013-03-04 09:29:59 -04:00
if ( preg_match ( " /Inter/ " , $aData [ 'EVN_TYPE' ])) {
2012-10-18 15:02:44 -04:00
$aData [ 'EVN_RELATED_TO' ] = 'MULTIPLE' ;
2012-10-10 01:31:49 -04:00
}
2013-03-04 09:29:59 -04:00
if ( preg_match ( " /Start/ " , $aData [ 'EVN_TYPE' ])) {
2012-10-18 15:02:44 -04:00
$aData [ 'EVN_RELATED_TO' ] = 'MULTIPLE' ;
}
$sEvn_uid = $oData -> evn_uid ;
2013-03-04 09:29:59 -04:00
$oEventData = EventPeer :: retrieveByPK ( $sEvn_uid );
if ( is_null ( $oEventData )) {
$sEvn_uid = $oEvent -> create ( $aData );
2012-10-18 15:02:44 -04:00
} else {
$aData [ 'EVN_UID' ] = $sEvn_uid ;
2013-03-04 09:29:59 -04:00
$oEvent -> update ( $aData );
2012-10-10 01:31:49 -04:00
}
2012-10-18 15:02:44 -04:00
$oEncode -> uid = $sEvn_uid ;
2012-11-22 16:33:58 -04:00
//$oJSON = new Services_JSON();
2013-03-04 09:29:59 -04:00
return Bootstrap :: json_encode ( $oEncode ); //$oJSON->encode( $oEncode );
2012-10-18 14:46:16 -04:00
}
2013-03-04 09:29:59 -04:00
public function saveExtEvents ( $oData )
2012-10-18 15:02:44 -04:00
{
$oTask = new Task ();
$oEvent = new Event ();
$sEvn_uid = '' ;
$sEvn_type = $oData -> evn_type ;
$output = 0 ;
2013-03-04 09:29:59 -04:00
$aDataEvent = array ();
$aDataTask = array ();
2012-10-18 15:02:44 -04:00
$aDataEvent [ 'EVN_UID' ] = $oData -> evn_uid ;
$aDataEvent [ 'EVN_RELATED_TO' ] = 'MULTIPLE' ;
$aDataEvent [ 'EVN_TYPE' ] = $oData -> evn_type ;
2013-03-04 09:29:59 -04:00
if ( preg_match ( " /Start/ " , $sEvn_type )) {
if ( isset ( $oData -> tas_uid ) && $oData -> tas_uid != '' ) {
2012-10-18 15:02:44 -04:00
$aDataTask [ 'TAS_UID' ] = $oData -> tas_uid ;
$aDataTask [ 'TAS_START' ] = $oData -> tas_start ;
$aDataTask [ 'EVN_TYPE' ] = $oData -> evn_type ;
$aDataTask [ 'TAS_EVN_UID' ] = $oData -> evn_uid ;
2013-03-04 09:29:59 -04:00
$oTask -> update ( $aDataTask );
2012-10-18 15:02:44 -04:00
$aDataEvent [ 'EVN_TAS_UID_TO' ] = $oData -> tas_uid ;
2013-03-04 09:29:59 -04:00
$output = $oEvent -> update ( $aDataEvent );
2012-10-18 15:02:44 -04:00
}
2013-03-04 09:29:59 -04:00
} elseif ( preg_match ( " /Inter/ " , $sEvn_type )) {
2012-10-18 15:02:44 -04:00
$aDataEvent [ 'EVN_TAS_UID_FROM' ] = $oData -> tas_from ;
$aDataEvent [ 'EVN_TAS_UID_TO' ] = $oData -> tas_to ;
2013-03-04 09:29:59 -04:00
$output = $oEvent -> update ( $aDataEvent );
2012-10-18 15:02:44 -04:00
}
return $output ;
}
2012-10-18 14:46:16 -04:00
//new functions
2013-03-04 09:29:59 -04:00
public function getAllTriggersCount ()
2012-10-18 15:02:44 -04:00
{
$c = $this -> tmpCriteria ;
$c -> clearSelectColumns ();
2013-03-04 09:29:59 -04:00
$c -> addSelectColumn ( 'COUNT(*)' );
$oDataset = TriggersPeer :: doSelectRS ( $c );
2012-10-18 14:46:16 -04:00
$oDataset -> next ();
2012-10-18 15:02:44 -04:00
$aRow = $oDataset -> getRow ();
2013-03-04 09:29:59 -04:00
if ( is_array ( $aRow )) {
2012-10-18 15:02:44 -04:00
return $aRow [ 0 ];
2012-10-18 14:46:16 -04:00
} else {
2012-10-18 15:02:44 -04:00
return 0 ;
2012-10-18 14:46:16 -04:00
}
}
2012-10-09 13:08:42 -04:00
2012-10-18 15:02:44 -04:00
/*
* Return the triggers list criteria object
* @ param string $sProcessUID
* @ return object
2013-03-04 09:29:59 -04:00
*/
public function getExtTriggersList ( $start , $limit , $sProcessUID = '' )
2012-10-18 15:02:44 -04:00
{
$sDelimiter = DBAdapter :: getStringDelimiter ();
2013-03-04 09:29:59 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> addSelectColumn ( TriggersPeer :: TRI_UID );
$oCriteria -> addSelectColumn ( TriggersPeer :: PRO_UID );
$oCriteria -> add ( TriggersPeer :: PRO_UID , $sProcessUID );
2012-10-18 15:02:44 -04:00
$this -> tmpCriteria = clone $oCriteria ;
2012-10-09 13:08:42 -04:00
2013-03-04 09:29:59 -04:00
$oCriteria -> addAsColumn ( 'TRI_TITLE' , 'C1.CON_VALUE' );
$oCriteria -> addAsColumn ( 'TRI_DESCRIPTION' , 'C2.CON_VALUE' );
$oCriteria -> addAlias ( 'C1' , 'CONTENT' );
$oCriteria -> addAlias ( 'C2' , 'CONTENT' );
$aConditions = array ();
$aConditions [] = array ( TriggersPeer :: TRI_UID , 'C1.CON_ID' );
$aConditions [] = array ( 'C1.CON_CATEGORY' , $sDelimiter . 'TRI_TITLE' . $sDelimiter );
$aConditions [] = array ( 'C1.CON_LANG' , $sDelimiter . SYS_LANG . $sDelimiter );
$oCriteria -> addJoinMC ( $aConditions , Criteria :: LEFT_JOIN );
$aConditions = array ();
$aConditions [] = array ( TriggersPeer :: TRI_UID , 'C2.CON_ID' );
$aConditions [] = array ( 'C2.CON_CATEGORY' , $sDelimiter . 'TRI_TITLE' . $sDelimiter );
$aConditions [] = array ( 'C2.CON_LANG' , $sDelimiter . SYS_LANG . $sDelimiter );
$oCriteria -> addJoinMC ( $aConditions , Criteria :: LEFT_JOIN );
$oCriteria -> add ( TriggersPeer :: PRO_UID , $sProcessUID );
$oCriteria -> addAscendingOrderByColumn ( 'TRI_TITLE' );
2012-10-09 13:08:42 -04:00
2012-10-18 15:02:44 -04:00
if ( $start != '' ) {
2013-03-04 09:29:59 -04:00
$oCriteria -> setOffset ( $start );
2012-10-18 15:02:44 -04:00
}
if ( $limit != '' ) {
2013-03-04 09:29:59 -04:00
$oCriteria -> setLimit ( $limit );
2012-10-18 15:02:44 -04:00
}
2013-03-04 09:29:59 -04:00
$oDataset = TriggersPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$oDataset -> next ();
$triggersArray = " " ;
2013-03-04 09:29:59 -04:00
$triggersArray [] = array ( 'TRI_UID' => 'char' , 'PRO_UID' => 'char' , 'TRI_TITLE' => 'char' , 'TRI_DESCRIPTION' => 'char' );
2012-10-18 15:02:44 -04:00
while ( $aRow = $oDataset -> getRow ()) {
if (( $aRow [ 'TRI_TITLE' ] == null ) || ( $aRow [ 'TRI_TITLE' ] == " " )) {
// There is no translation for this Trigger name, try to get/regenerate the label
$triggerO = new Triggers ();
2013-03-04 09:29:59 -04:00
$triggerObj = $triggerO -> load ( $aRow [ 'TRI_UID' ]);
2012-10-18 15:02:44 -04:00
$aRow [ 'TRI_TITLE' ] = $triggerObj [ 'TRI_TITLE' ];
$aRow [ 'TRI_DESCRIPTION' ] = $triggerObj [ 'TRI_DESCRIPTION' ];
}
$triggersArray [] = $aRow ;
$oDataset -> next ();
}
return $triggersArray ;
2012-10-18 14:46:16 -04:00
}
2013-03-04 09:29:59 -04:00
public function getAllInputDocsByTask ( $sPRO_UID )
2012-10-18 15:02:44 -04:00
{
2013-03-04 09:29:59 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> addSelectColumn ( StepPeer :: STEP_UID_OBJ );
$oCriteria -> addSelectColumn ( 'COUNT(*) AS CNT' );
$oCriteria -> addGroupByColumn ( StepPeer :: STEP_UID_OBJ );
$oCriteria -> add ( StepPeer :: STEP_TYPE_OBJ , 'INPUT_DOCUMENT' );
$oCriteria -> add ( StepPeer :: PRO_UID , $sPRO_UID );
$oDataset = StepPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
2013-03-04 09:29:59 -04:00
$aIDocs = array ();
2012-10-18 15:02:44 -04:00
while ( $oDataset -> next ()) {
$row = $oDataset -> getRow ();
$aIDocs [ $row [ 'STEP_UID_OBJ' ]] = $row [ 'CNT' ];
}
return $aIDocs ;
2012-10-18 14:46:16 -04:00
}
2013-03-04 09:29:59 -04:00
public function getMaximunTaskX ( $processUid )
2012-10-18 15:02:44 -04:00
{
2013-03-04 09:29:59 -04:00
$criteria = new Criteria ( 'workflow' );
$criteria -> addSelectColumn ( 'MAX(TAS_POSX) AS MAX_X' );
$criteria -> add ( TaskPeer :: PRO_UID , $processUid );
2012-10-18 14:46:16 -04:00
2013-03-04 09:29:59 -04:00
$dataset = TaskPeer :: doSelectRS ( $criteria );
$dataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-18 15:02:44 -04:00
$dataset -> next ();
2012-10-18 14:46:16 -04:00
2012-10-18 15:02:44 -04:00
$row = $dataset -> getRow ();
2012-10-09 13:08:42 -04:00
2012-10-18 15:02:44 -04:00
return ( int ) $row [ 'MAX_X' ];
}
2012-10-09 11:24:11 -04:00
}
2012-10-18 15:02:44 -04:00