2012-10-22 15:45:47 -04:00
< ? php
2017-08-14 16:13:46 -04:00
use ProcessMaker\Core\System ;
2017-08-11 13:29:22 -04:00
class Processes
2012-10-22 15:45:47 -04:00
{
/**
* change Status of any Process
*
* @ param string $sProUid
* @ return boolean
* @ package workflow . engine . ProcessMaker
*/
2016-03-23 23:34:18 -04:00
public function changeStatus ( $sProUid = '' )
2012-10-22 15:45:47 -04:00
{
$oProcess = new Process ();
2016-03-23 23:34:18 -04:00
$Fields = $oProcess -> Load ( $sProUid );
2012-10-22 15:45:47 -04:00
$proFields [ 'PRO_UID' ] = $sProUid ;
if ( $Fields [ 'PRO_STATUS' ] == 'ACTIVE' ) {
$proFields [ 'PRO_STATUS' ] = 'INACTIVE' ;
} else {
$proFields [ 'PRO_STATUS' ] = 'ACTIVE' ;
}
2016-03-23 23:34:18 -04:00
$oProcess -> Update ( $proFields );
2012-10-22 15:45:47 -04:00
}
/**
* change debug mode of any Process
*
* @ param string $sProUid
* @ return boolean
* @ package workflow . engine . ProcessMaker
*/
2016-03-23 23:34:18 -04:00
public function changeDebugMode ( $sProUid = '' )
2012-10-22 15:45:47 -04:00
{
$oProcess = new Process ();
2016-03-23 23:34:18 -04:00
$Fields = $oProcess -> Load ( $sProUid );
2012-10-22 15:45:47 -04:00
$proFields [ 'PRO_UID' ] = $sProUid ;
if ( $Fields [ 'PRO_DEBUG' ] == '1' ) {
$proFields [ 'PRO_DEBUG' ] = '0' ;
} else {
$proFields [ 'PRO_DEBUG' ] = '1' ;
}
2016-03-23 23:34:18 -04:00
$oProcess -> Update ( $proFields );
2012-10-22 15:45:47 -04:00
}
/**
* changes in DB the parent GUID
*
* @ param $sProUid process uid
* @ param $sParentUid process parent uid
* @ return $sProUid
*/
2016-03-23 23:34:18 -04:00
public function changeProcessParent ( $sProUid , $sParentUid )
2012-10-22 15:45:47 -04:00
{
$oProcess = new Process ();
2016-03-23 23:34:18 -04:00
$Fields = $oProcess -> Load ( $sProUid );
2012-10-22 15:45:47 -04:00
$proFields [ 'PRO_UID' ] = $sProUid ;
$Fields [ 'PRO_PARENT' ] == $sParentUid ;
2016-03-23 23:34:18 -04:00
$oProcess -> Update ( $proFields );
2012-10-22 15:45:47 -04:00
}
/**
* verify if the process $sProUid exists
*
* @ param string $sProUid
* @ return boolean
*/
2016-03-23 23:34:18 -04:00
public function processExists ( $sProUid = '' )
2012-10-22 15:45:47 -04:00
{
$oProcess = new Process ();
2016-03-23 23:34:18 -04:00
return $oProcess -> processExists ( $sProUid );
2012-10-22 15:45:47 -04:00
}
/**
* get an unused process GUID
*
* @ return $sProUid
*/
2016-03-23 23:34:18 -04:00
public function getUnusedProcessGUID ()
2012-10-22 15:45:47 -04:00
{
do {
$sNewProUid = G :: generateUniqueID ();
2016-03-23 23:34:18 -04:00
} while ( $this -> processExists ( $sNewProUid ));
2012-10-22 15:45:47 -04:00
return $sNewProUid ;
}
/**
* verify if the task $sTasUid exists
*
* @ param string $sTasUid
* @ return boolean
*/
2016-03-23 23:34:18 -04:00
public function taskExists ( $sTasUid = '' )
2012-10-22 15:45:47 -04:00
{
$oTask = new Task ();
2016-03-23 23:34:18 -04:00
return $oTask -> taskExists ( $sTasUid );
2012-10-22 15:45:47 -04:00
}
/**
* get an unused task GUID
*
* @ return $sTasUid
*/
2016-03-23 23:34:18 -04:00
public function getUnusedTaskGUID ()
2012-10-22 15:45:47 -04:00
{
do {
$sNewTasUid = G :: generateUniqueID ();
2016-03-23 23:34:18 -04:00
} while ( $this -> taskExists ( $sNewTasUid ));
2012-10-22 15:45:47 -04:00
return $sNewTasUid ;
}
/**
* verify if the dynaform $sDynUid exists
*
* @ param string $sDynUid
* @ return boolean
*/
2016-03-23 23:34:18 -04:00
public function dynaformExists ( $sDynUid = '' )
2012-10-22 15:45:47 -04:00
{
$oDynaform = new Dynaform ();
2016-03-23 23:34:18 -04:00
return $oDynaform -> dynaformExists ( $sDynUid );
2012-10-22 15:45:47 -04:00
}
/**
* verify if the object exists
*
* @ param string $sUid
* @ return boolean
*/
2016-03-23 23:34:18 -04:00
public function inputExists ( $sUid = '' )
2012-10-22 15:45:47 -04:00
{
$oInput = new InputDocument ();
2016-03-23 23:34:18 -04:00
return $oInput -> inputExists ( $sUid );
2012-10-22 15:45:47 -04:00
}
/**
* verify if the object exists
*
* @ param string $sUid
* @ return boolean
*/
2016-03-23 23:34:18 -04:00
public function outputExists ( $sUid = '' )
2012-10-22 15:45:47 -04:00
{
$oOutput = new OutputDocument ();
2016-03-23 23:34:18 -04:00
return $oOutput -> outputExists ( $sUid );
2012-10-22 15:45:47 -04:00
}
2015-01-16 14:49:35 -04:00
/**
* verify if the object exists
*
* @ param string $sUid
* @ return boolean
*/
2016-03-23 23:34:18 -04:00
public function processVariableExists ( $sUid = '' )
2015-01-16 14:49:35 -04:00
{
$oProcessVariable = new ProcessVariables ();
2016-03-23 23:34:18 -04:00
return $oProcessVariable -> ProcessVariableExists ( $sUid );
2015-01-16 14:49:35 -04:00
}
2012-10-22 15:45:47 -04:00
/**
* verify if the object exists
*
* @ param string $sUid
* @ return boolean
*/
2016-03-23 23:34:18 -04:00
public function triggerExists ( $sUid = '' )
2012-10-22 15:45:47 -04:00
{
$oTrigger = new Triggers ();
2016-03-23 23:34:18 -04:00
return $oTrigger -> triggerExists ( $sUid );
2012-10-22 15:45:47 -04:00
}
/**
* verify if the object exists
*
* @ param string $sUid
* @ return boolean
*/
2016-03-23 23:34:18 -04:00
public function SubProcessExists ( $sUid = '' )
2012-10-22 15:45:47 -04:00
{
$oSubProcess = new SubProcess ();
2016-03-23 23:34:18 -04:00
return $oSubProcess -> subProcessExists ( $sUid );
2012-10-22 15:45:47 -04:00
}
/**
* verify if a caseTrackerObject object exists
*
* @ param string $sUid
* @ return boolean
*/
2016-03-23 23:34:18 -04:00
public function caseTrackerObjectExists ( $sUid = '' )
2012-10-22 15:45:47 -04:00
{
$oCaseTrackerObject = new CaseTrackerObject ();
2016-03-23 23:34:18 -04:00
return $oCaseTrackerObject -> caseTrackerObjectExists ( $sUid );
2012-10-22 15:45:47 -04:00
}
/**
* verify if a caseTracker Object exists
*
* @ param string $sUid
* @ return boolean
*/
2016-03-23 23:34:18 -04:00
public function caseTrackerExists ( $sUid = '' )
2012-10-22 15:45:47 -04:00
{
$oCaseTracker = new CaseTracker ();
2016-03-23 23:34:18 -04:00
return $oCaseTracker -> caseTrackerExists ( $sUid );
2012-10-22 15:45:47 -04:00
}
/**
* verify if a dbconnection exists
*
* @ param string $sUid
* @ return boolean
*/
2016-03-23 23:34:18 -04:00
public function dbConnectionExists ( $sUid = '' )
2012-10-22 15:45:47 -04:00
{
$oDBSource = new DbSource ();
2016-03-23 23:34:18 -04:00
return $oDBSource -> Exists ( $sUid );
2012-10-22 15:45:47 -04:00
}
/**
* verify if a objectPermission exists
*
* @ param string $sUid
* @ return boolean
*/
2016-03-23 23:34:18 -04:00
public function objectPermissionExists ( $sUid = '' )
2012-10-22 15:45:47 -04:00
{
$oObjectPermission = new ObjectPermission ();
2016-03-23 23:34:18 -04:00
return $oObjectPermission -> Exists ( $sUid );
2012-10-22 15:45:47 -04:00
}
/**
* verify if a route exists
*
* @ param string $sUid
* @ return boolean
*/
2016-03-23 23:34:18 -04:00
public function routeExists ( $sUid = '' )
2012-10-22 15:45:47 -04:00
{
$oRoute = new Route ();
2016-03-23 23:34:18 -04:00
return $oRoute -> routeExists ( $sUid );
2012-10-22 15:45:47 -04:00
}
/**
* verify if a stage exists
*
* @ param string $sUid
* @ return boolean
*/
2016-03-23 23:34:18 -04:00
public function stageExists ( $sUid = '' )
2012-10-22 15:45:47 -04:00
{
$oStage = new Stage ();
2016-03-23 23:34:18 -04:00
return $oStage -> Exists ( $sUid );
2012-10-22 15:45:47 -04:00
}
/**
* verify if a swimlane exists
*
* @ param string $sUid
* @ return boolean
*/
2016-03-23 23:34:18 -04:00
public function slExists ( $sUid = '' )
2012-10-22 15:45:47 -04:00
{
$oSL = new SwimlanesElements ();
2016-03-23 23:34:18 -04:00
return $oSL -> swimlanesElementsExists ( $sUid );
2012-10-22 15:45:47 -04:00
}
/**
* verify if a reportTable exists
*
* @ param string $sUid
* @ return boolean
*/
2016-03-23 23:34:18 -04:00
public function reportTableExists ( $sUid = '' )
2012-10-22 15:45:47 -04:00
{
$oReportTable = new ReportTable ();
2016-03-23 23:34:18 -04:00
return $oReportTable -> reportTableExists ( $sUid );
2012-10-22 15:45:47 -04:00
}
/**
* verify if a reportVar exists
*
* @ param string $sUid
* @ return boolean
*/
2016-03-23 23:34:18 -04:00
public function reportVarExists ( $sUid = '' )
2012-10-22 15:45:47 -04:00
{
$oReportVar = new ReportVar ();
2016-03-23 23:34:18 -04:00
return $oReportVar -> reportVarExists ( $sUid );
2012-10-22 15:45:47 -04:00
}
/**
* verify if a caseTrackerObject exists
*
* @ param string $sUid
* @ return boolean
*/
2016-03-23 23:34:18 -04:00
public function fieldsConditionsExists ( $sUid = '' )
2012-10-22 15:45:47 -04:00
{
$oFieldCondition = new FieldCondition ();
2016-03-23 23:34:18 -04:00
return $oFieldCondition -> Exists ( $sUid );
2012-10-22 15:45:47 -04:00
}
/**
* verify if an event exists
*
* @ param string $sUid
* @ return boolean
*/
2016-03-23 23:34:18 -04:00
public function eventExists ( $sUid = '' )
2012-10-22 15:45:47 -04:00
{
$oEvent = new Event ();
2016-03-23 23:34:18 -04:00
return $oEvent -> Exists ( $sUid );
2012-10-22 15:45:47 -04:00
}
/**
* verify if a caseScheduler exists
*
* @ param string $sUid
* @ return boolean
*/
2016-03-23 23:34:18 -04:00
public function caseSchedulerExists ( $sUid = '' )
2012-10-22 15:45:47 -04:00
{
$oCaseScheduler = new CaseScheduler ();
2016-03-23 23:34:18 -04:00
return $oCaseScheduler -> Exists ( $sUid );
2012-10-22 15:45:47 -04:00
}
2014-05-14 10:26:45 -04:00
/**
* Verify if exists the " Process User " in table PROCESS_USER
*
* @ param string $processUserUid Unique id of " Process User "
*
* return bool Return true if exists the " Process User " in table PROCESS_USER , false otherwise
*/
public function processUserExists ( $processUserUid )
{
try {
$processUser = new ProcessUser ();
return $processUser -> Exists ( $processUserUid );
} catch ( Exception $e ) {
throw $e ;
}
}
2012-10-22 15:45:47 -04:00
/**
* get an unused input GUID
*
* @ return $sProUid
*/
2016-03-23 23:34:18 -04:00
public function getUnusedInputGUID ()
2012-10-22 15:45:47 -04:00
{
do {
$sNewUid = G :: generateUniqueID ();
2016-03-23 23:34:18 -04:00
} while ( $this -> inputExists ( $sNewUid ));
2012-10-22 15:45:47 -04:00
return $sNewUid ;
}
/**
* get an unused output GUID
*
* @ return $sProUid
*/
2016-03-23 23:34:18 -04:00
public function getUnusedOutputGUID ()
2012-10-22 15:45:47 -04:00
{
do {
$sNewUid = G :: generateUniqueID ();
2016-03-23 23:34:18 -04:00
} while ( $this -> outputExists ( $sNewUid ));
2012-10-22 15:45:47 -04:00
return $sNewUid ;
}
/**
* get an unused trigger GUID
*
* @ return $sProUid
*/
2016-03-23 23:34:18 -04:00
public function getUnusedTriggerGUID ()
2012-10-22 15:45:47 -04:00
{
do {
$sNewUid = G :: generateUniqueID ();
2016-03-23 23:34:18 -04:00
} while ( $this -> triggerExists ( $sNewUid ));
2012-10-22 15:45:47 -04:00
return $sNewUid ;
}
/**
* get an unused trigger GUID
*
* @ return $sProUid
*/
2016-03-23 23:34:18 -04:00
public function getUnusedSubProcessGUID ()
2012-10-22 15:45:47 -04:00
{
do {
$sNewUid = G :: generateUniqueID ();
2016-03-23 23:34:18 -04:00
} while ( $this -> subProcessExists ( $sNewUid ));
2012-10-22 15:45:47 -04:00
return $sNewUid ;
}
/**
* get a Unused CaseTrackerObject GUID
*
* @ return $sNewUid a new generated Uid
*/
2016-03-23 23:34:18 -04:00
public function getUnusedCaseTrackerObjectGUID ()
2012-10-22 15:45:47 -04:00
{
do {
$sNewUid = G :: generateUniqueID ();
2016-03-23 23:34:18 -04:00
} while ( $this -> caseTrackerObjectExists ( $sNewUid ));
2012-10-22 15:45:47 -04:00
return $sNewUid ;
}
/**
* get a Unused Database Source GUID
*
* @ return $sNewUid a new generated Uid
*/
2016-03-23 23:34:18 -04:00
public function getUnusedDBSourceGUID ()
2012-10-22 15:45:47 -04:00
{
do {
$sNewUid = G :: generateUniqueID ();
2016-03-23 23:34:18 -04:00
} while ( $this -> dbConnectionExists ( $sNewUid ));
2012-10-22 15:45:47 -04:00
return $sNewUid ;
}
/**
* get a Unused Object Permission GUID
*
* @ return $sNewUid a new generated Uid
*/
2016-03-23 23:34:18 -04:00
public function getUnusedObjectPermissionGUID ()
2012-10-22 15:45:47 -04:00
{
do {
$sNewUid = G :: generateUniqueID ();
2016-03-23 23:34:18 -04:00
} while ( $this -> objectPermissionExists ( $sNewUid ));
2012-10-22 15:45:47 -04:00
return $sNewUid ;
}
/**
* get a Unused Route GUID
*
* @ return $sNewUid a new generated Uid
*/
2016-03-23 23:34:18 -04:00
public function getUnusedRouteGUID ()
2012-10-22 15:45:47 -04:00
{
do {
$sNewUid = G :: generateUniqueID ();
2016-03-23 23:34:18 -04:00
} while ( $this -> routeExists ( $sNewUid ));
2012-10-22 15:45:47 -04:00
return $sNewUid ;
}
/**
* get a Unused Stage GUID
*
* @ return $sNewUid a new generated Uid
*/
2016-03-23 23:34:18 -04:00
public function getUnusedStageGUID ()
2012-10-22 15:45:47 -04:00
{
do {
$sNewUid = G :: generateUniqueID ();
2016-03-23 23:34:18 -04:00
} while ( $this -> stageExists ( $sNewUid ));
2012-10-22 15:45:47 -04:00
return $sNewUid ;
}
/**
* get a Unused SL GUID
*
* @ return $sNewUid a new generated Uid
*/
2016-03-23 23:34:18 -04:00
public function getUnusedSLGUID ()
2012-10-22 15:45:47 -04:00
{
do {
$sNewUid = G :: generateUniqueID ();
2016-03-23 23:34:18 -04:00
} while ( $this -> slExists ( $sNewUid ));
2012-10-22 15:45:47 -04:00
return $sNewUid ;
}
/**
* get a Unused Report Table GUID
*
* @ return $sNewUid a new generated Uid
*/
2016-03-23 23:34:18 -04:00
public function getUnusedRTGUID ()
2012-10-22 15:45:47 -04:00
{
do {
$sNewUid = G :: generateUniqueID ();
2016-03-23 23:34:18 -04:00
} while ( $this -> reportTableExists ( $sNewUid ));
2012-10-22 15:45:47 -04:00
return $sNewUid ;
}
/**
* get a Unused Report Var GUID
*
* @ return $sNewUid a new generated Uid
*/
2016-03-23 23:34:18 -04:00
public function getUnusedRTVGUID ()
2012-10-22 15:45:47 -04:00
{
do {
$sNewUid = G :: generateUniqueID ();
2016-03-23 23:34:18 -04:00
} while ( $this -> reportVarExists ( $sNewUid ));
2012-10-22 15:45:47 -04:00
return $sNewUid ;
}
/**
* verify if the object exists
*
* @ param string $sUid
* @ return boolean
*/
2016-03-23 23:34:18 -04:00
public function stepExists ( $sUid = '' )
2012-10-22 15:45:47 -04:00
{
$oStep = new Step ();
2016-03-23 23:34:18 -04:00
return $oStep -> stepExists ( $sUid );
2012-10-22 15:45:47 -04:00
}
/**
* get an unused step GUID
*
* @ return $sUid
*/
2016-03-23 23:34:18 -04:00
public function getUnusedStepGUID ()
2012-10-22 15:45:47 -04:00
{
do {
$sNewUid = G :: generateUniqueID ();
2016-03-23 23:34:18 -04:00
} while ( $this -> stepExists ( $sNewUid ));
2012-10-22 15:45:47 -04:00
return $sNewUid ;
}
2012-10-19 18:07:17 +00:00
/*
2012-10-22 15:45:47 -04:00
* get an unused Dynaform GUID
* @ return $sDynUid
*/
2016-03-23 23:34:18 -04:00
public function getUnusedDynaformGUID ()
2012-10-22 15:45:47 -04:00
{
do {
$sNewUid = G :: generateUniqueID ();
2016-03-23 23:34:18 -04:00
} while ( $this -> dynaformExists ( $sNewUid ));
2012-10-22 15:45:47 -04:00
return $sNewUid ;
}
/**
* get a Unused Field Condition GUID
*
* @ return $sNewUid a new generated Uid
*/
2016-03-23 23:34:18 -04:00
public function getUnusedFieldConditionGUID ()
2012-10-22 15:45:47 -04:00
{
do {
$sNewUid = G :: generateUniqueID ();
2016-03-23 23:34:18 -04:00
} while ( $this -> fieldsConditionsExists ( $sNewUid ));
2012-10-22 15:45:47 -04:00
return $sNewUid ;
}
/**
* get a Unused Event GUID
*
* @ return $sNewUid a new generated Uid
*/
2016-03-23 23:34:18 -04:00
public function getUnusedEventGUID ()
2012-10-22 15:45:47 -04:00
{
do {
$sNewUid = G :: generateUniqueID ();
2016-03-23 23:34:18 -04:00
} while ( $this -> eventExists ( $sNewUid ));
2012-10-22 15:45:47 -04:00
return $sNewUid ;
}
/**
* get a Unused Case Scheduler GUID
*
* @ return $sNewUid a new generated Uid
*/
2016-03-23 23:34:18 -04:00
public function getUnusedCaseSchedulerGUID ()
2012-10-22 15:45:47 -04:00
{
do {
$sNewUid = G :: generateUniqueID ();
2016-03-23 23:34:18 -04:00
} while ( $this -> caseSchedulerExists ( $sNewUid ));
2012-10-22 15:45:47 -04:00
return $sNewUid ;
}
2014-05-14 10:26:45 -04:00
/**
* Get an unused " Process User " unique id
*
* return string Return a new generated unique id
*/
public function getUnusedProcessUserUid ()
{
try {
do {
$newUid = G :: generateUniqueID ();
} while ( $this -> processUserExists ( $newUid ));
return $newUid ;
} catch ( Exception $e ) {
throw $e ;
}
}
2015-01-16 14:49:35 -04:00
/**
* get an unused process variables GUID
*
* @ return $sProUid
*/
2016-03-23 23:34:18 -04:00
public function getUnusedProcessVariableGUID ()
2015-01-16 14:49:35 -04:00
{
do {
$sNewUid = G :: generateUniqueID ();
2016-03-23 23:34:18 -04:00
} while ( $this -> processVariableExists ( $sNewUid ));
2015-01-16 14:49:35 -04:00
return $sNewUid ;
}
2015-02-04 17:18:32 -04:00
/**
* Get an unused unique id for Message - Type
*
* @ return string $uid
*/
public function getUnusedMessageTypeUid ()
{
try {
$messageType = new \ProcessMaker\BusinessModel\MessageType ();
do {
$newUid = \ProcessMaker\Util\Common :: generateUID ();
} while ( $messageType -> exists ( $newUid ));
return $newUid ;
} catch ( Exception $e ) {
throw $e ;
}
}
/**
* Get an unused unique id for Message - Type - Variable
*
* @ return string $uid
*/
public function getUnusedMessageTypeVariableUid ()
{
try {
$variable = new \ProcessMaker\BusinessModel\MessageType\Variable ();
do {
$newUid = \ProcessMaker\Util\Common :: generateUID ();
} while ( $variable -> exists ( $newUid ));
return $newUid ;
} catch ( Exception $e ) {
throw $e ;
}
}
2012-10-22 15:45:47 -04:00
/**
* change the GUID for a serialized process
*
* @ param string $sProUid
* @ return boolean
*/
2016-03-23 23:34:18 -04:00
public function setProcessGUID ( & $oData , $sNewProUid )
2012-10-22 15:45:47 -04:00
{
$sProUid = $oData -> process [ 'PRO_UID' ];
$oData -> process [ 'PRO_UID' ] = $sNewProUid ;
2016-03-23 23:34:18 -04:00
if ( isset ( $oData -> tasks ) && is_array ( $oData -> tasks )) {
2012-10-22 15:45:47 -04:00
foreach ( $oData -> tasks as $key => $val ) {
$oData -> tasks [ $key ][ 'PRO_UID' ] = $sNewProUid ;
}
}
2016-03-23 23:34:18 -04:00
if ( isset ( $oData -> routes ) && is_array ( $oData -> routes )) {
2012-10-22 15:45:47 -04:00
foreach ( $oData -> routes as $key => $val ) {
$oData -> routes [ $key ][ 'PRO_UID' ] = $sNewProUid ;
}
}
2016-03-23 23:34:18 -04:00
if ( isset ( $oData -> lanes ) && is_array ( $oData -> lanes )) {
2012-10-22 15:45:47 -04:00
foreach ( $oData -> lanes as $key => $val ) {
$oData -> lanes [ $key ][ 'PRO_UID' ] = $sNewProUid ;
}
}
2016-03-23 23:34:18 -04:00
if ( isset ( $oData -> inputs ) && is_array ( $oData -> inputs )) {
2012-10-22 15:45:47 -04:00
foreach ( $oData -> inputs as $key => $val ) {
$oData -> inputs [ $key ][ 'PRO_UID' ] = $sNewProUid ;
}
}
2016-03-23 23:34:18 -04:00
if ( isset ( $oData -> outputs ) && is_array ( $oData -> outputs )) {
2012-10-22 15:45:47 -04:00
foreach ( $oData -> outputs as $key => $val ) {
$oData -> outputs [ $key ][ 'PRO_UID' ] = $sNewProUid ;
}
}
2016-03-23 23:34:18 -04:00
if ( isset ( $oData -> steps ) && is_array ( $oData -> steps )) {
2012-10-22 15:45:47 -04:00
foreach ( $oData -> steps as $key => $val ) {
$oData -> steps [ $key ][ 'PRO_UID' ] = $sNewProUid ;
}
}
2016-03-23 23:34:18 -04:00
if ( isset ( $oData -> dynaforms ) && is_array ( $oData -> dynaforms )) {
2012-10-22 15:45:47 -04:00
foreach ( $oData -> dynaforms as $key => $val ) {
$oData -> dynaforms [ $key ][ 'PRO_UID' ] = $sNewProUid ;
}
}
2016-03-23 23:34:18 -04:00
if ( isset ( $oData -> triggers ) && is_array ( $oData -> triggers )) {
2012-10-22 15:45:47 -04:00
foreach ( $oData -> triggers as $key => $val ) {
$oData -> triggers [ $key ][ 'PRO_UID' ] = $sNewProUid ;
}
}
2016-03-23 23:34:18 -04:00
if ( isset ( $oData -> reportTables ) && is_array ( $oData -> reportTables )) {
2012-10-22 15:45:47 -04:00
foreach ( $oData -> reportTables as $key => $val ) {
$oData -> reportTables [ $key ][ 'PRO_UID' ] = $sNewProUid ;
}
}
2016-03-23 23:34:18 -04:00
if ( isset ( $oData -> reportTablesVars ) && is_array ( $oData -> reportTablesVars )) {
2012-10-22 15:45:47 -04:00
foreach ( $oData -> reportTablesVars as $key => $val ) {
$oData -> reportTablesVars [ $key ][ 'PRO_UID' ] = $sNewProUid ;
}
}
2016-03-23 23:34:18 -04:00
if ( isset ( $oData -> dbconnections ) && is_array ( $oData -> dbconnections )) {
2012-10-22 15:45:47 -04:00
foreach ( $oData -> dbconnections as $key => $val ) {
$oData -> dbconnections [ $key ][ 'PRO_UID' ] = $sNewProUid ;
}
}
2016-03-23 23:34:18 -04:00
if ( isset ( $oData -> stepSupervisor ) && is_array ( $oData -> stepSupervisor )) {
2012-10-22 15:45:47 -04:00
foreach ( $oData -> stepSupervisor as $key => $val ) {
$oData -> stepSupervisor [ $key ][ 'PRO_UID' ] = $sNewProUid ;
}
}
2016-03-23 23:34:18 -04:00
if ( isset ( $oData -> objectPermissions ) && is_array ( $oData -> objectPermissions )) {
2012-10-22 15:45:47 -04:00
foreach ( $oData -> objectPermissions as $key => $val ) {
$oData -> objectPermissions [ $key ][ 'PRO_UID' ] = $sNewProUid ;
}
}
2016-03-23 23:34:18 -04:00
if ( isset ( $oData -> caseTracker ) && is_array ( $oData -> caseTracker )) {
2012-10-22 15:45:47 -04:00
foreach ( $oData -> caseTracker as $key => $val ) {
$oData -> caseTracker [ $key ][ 'PRO_UID' ] = $sNewProUid ;
}
}
2016-03-23 23:34:18 -04:00
if ( isset ( $oData -> caseTrackerObject ) && is_array ( $oData -> caseTrackerObject )) {
2012-10-22 15:45:47 -04:00
foreach ( $oData -> caseTrackerObject as $key => $val ) {
$oData -> caseTrackerObject [ $key ][ 'PRO_UID' ] = $sNewProUid ;
}
}
2016-03-23 23:34:18 -04:00
if ( isset ( $oData -> stage ) && is_array ( $oData -> stage )) {
2012-10-22 15:45:47 -04:00
foreach ( $oData -> stage as $key => $val ) {
$oData -> stage [ $key ][ 'PRO_UID' ] = $sNewProUid ;
}
}
2016-03-23 23:34:18 -04:00
if ( isset ( $oData -> subProcess ) && is_array ( $oData -> subProcess )) {
2012-10-22 15:45:47 -04:00
foreach ( $oData -> subProcess as $key => $val ) {
$oData -> subProcess [ $key ][ 'PRO_PARENT' ] = $sNewProUid ;
}
}
2016-03-23 23:34:18 -04:00
if ( isset ( $oData -> event ) && is_array ( $oData -> event )) {
2012-10-22 15:45:47 -04:00
foreach ( $oData -> event as $key => $val ) {
$oData -> event [ $key ][ 'PRO_UID' ] = $sNewProUid ;
}
}
2016-03-23 23:34:18 -04:00
if ( isset ( $oData -> caseScheduler ) && is_array ( $oData -> caseScheduler )) {
2012-10-22 15:45:47 -04:00
foreach ( $oData -> caseScheduler as $key => $val ) {
$oData -> caseScheduler [ $key ][ 'PRO_UID' ] = $sNewProUid ;
}
}
2014-05-14 10:26:45 -04:00
if ( isset ( $oData -> processUser )) {
foreach ( $oData -> processUser as $key => $value ) {
$oData -> processUser [ $key ][ " PRO_UID " ] = $sNewProUid ;
}
}
2015-01-16 11:29:57 -04:00
if ( isset ( $oData -> processVariables )) {
foreach ( $oData -> processVariables as $key => $value ) {
$oData -> processVariables [ $key ][ " PRJ_UID " ] = $sNewProUid ;
}
}
2015-02-04 17:18:32 -04:00
if ( isset ( $oData -> messageType )) {
foreach ( $oData -> messageType as $key => $value ) {
$oData -> messageType [ $key ][ " PRJ_UID " ] = $sNewProUid ;
}
}
2015-06-30 12:04:53 -04:00
2015-06-25 16:31:04 -04:00
if ( isset ( $oData -> emailEvent )) {
foreach ( $oData -> emailEvent as $key => $value ) {
$oData -> emailEvent [ $key ][ " PRJ_UID " ] = $sNewProUid ;
}
}
2015-06-30 12:04:53 -04:00
2015-06-25 16:31:04 -04:00
if ( isset ( $oData -> filesManager )) {
foreach ( $oData -> filesManager as $key => $value ) {
$oData -> filesManager [ $key ][ " PRO_UID " ] = $sNewProUid ;
}
}
2016-03-23 23:34:18 -04:00
2015-09-26 12:51:31 -04:00
if ( isset ( $oData -> abeConfiguration )) {
foreach ( $oData -> abeConfiguration as $key => $value ) {
$oData -> abeConfiguration [ $key ][ " PRO_UID " ] = $sNewProUid ;
}
}
2015-02-04 17:18:32 -04:00
2012-10-22 15:45:47 -04:00
return true ;
}
/**
* change the GUID Parent for a serialized process , only in serialized data
*
* @ param string $sProUid
* @ return boolean
*/
2016-03-23 23:34:18 -04:00
public function setProcessParent ( & $oData , $sParentUid )
2012-10-22 15:45:47 -04:00
{
$oData -> process [ 'PRO_PARENT' ] = $sParentUid ;
2016-03-23 23:34:18 -04:00
$oData -> process [ 'PRO_CREATE_DATE' ] = date ( 'Y-m-d H:i:s' );
$oData -> process [ 'PRO_UPDATE_DATE' ] = date ( 'Y-m-d H:i:s' );
2012-10-22 15:45:47 -04:00
return true ;
}
2017-06-01 16:54:48 -04:00
/**
* change and Renew all Task GUID owned by WebEntries
*
* @ param string $oData
* @ return boolean
*/
public function renewAllWebEntryEventGuid ( & $oData )
{
$map = array ();
foreach ( $oData -> webEntryEvent as $key => $val ) {
if ( isset ( $val [ " EVN_UID_OLD " ])) {
$uidNew = \ProcessMaker\BusinessModel\WebEntryEvent :: getTaskUidFromEvnUid ( $val [ " EVN_UID " ]);
$uidOld = \ProcessMaker\BusinessModel\WebEntryEvent :: getTaskUidFromEvnUid ( $val [ " EVN_UID_OLD " ]);
foreach ( $oData -> tasks as $index => $task ) {
if ( $task [ " TAS_UID " ] === $uidOld ) {
$oData -> tasks [ $index ][ " TAS_UID " ] = $uidNew ;
$oData -> tasks [ $index ][ " TAS_UID_OLD " ] = $uidOld ;
}
}
}
}
}
2012-10-22 15:45:47 -04:00
/**
* change and Renew all Task GUID , because the process needs to have a new set of tasks
*
* @ param string $oData
* @ return boolean
*/
2016-03-23 23:34:18 -04:00
public function renewAllTaskGuid ( & $oData )
2012-10-22 15:45:47 -04:00
{
2016-03-23 23:34:18 -04:00
$map = array ();
2012-10-22 15:45:47 -04:00
foreach ( $oData -> tasks as $key => $val ) {
2014-04-30 12:00:22 -04:00
if ( ! isset ( $val [ " TAS_UID_OLD " ])) {
$uidNew = $this -> getUnusedTaskGUID ();
$map [ $val [ " TAS_UID " ]] = $uidNew ;
$oData -> tasks [ $key ][ " TAS_UID " ] = $uidNew ;
} else {
$map [ $val [ " TAS_UID_OLD " ]] = $val [ " TAS_UID " ];
}
2012-10-22 15:45:47 -04:00
}
2014-04-30 12:00:22 -04:00
$oData -> uid [ " TASK " ] = $map ;
2016-03-23 23:34:18 -04:00
if ( isset ( $oData -> routes ) && is_array ( $oData -> routes )) {
2015-02-20 17:12:49 -04:00
foreach ( $oData -> routes as $key => $value ) {
$record = $value ;
if ( isset ( $map [ $record [ " TAS_UID " ]])) {
$newUid = $map [ $record [ " TAS_UID " ]];
$oData -> routes [ $key ][ " TAS_UID " ] = $newUid ;
if ( strlen ( $record [ " ROU_NEXT_TASK " ]) > 0 && $record [ " ROU_NEXT_TASK " ] > 0 ) {
$newUid = $map [ $record [ " ROU_NEXT_TASK " ]];
$oData -> routes [ $key ][ " ROU_NEXT_TASK " ] = $newUid ;
}
2012-10-22 15:45:47 -04:00
}
}
}
2016-03-23 23:34:18 -04:00
if ( isset ( $oData -> steps ) && is_array ( $oData -> steps )) {
2015-01-22 15:27:35 -04:00
foreach ( $oData -> steps as $key => $value ) {
$record = $value ;
if ( isset ( $map [ $record [ " TAS_UID " ]])) {
$newUid = $map [ $record [ " TAS_UID " ]];
$oData -> steps [ $key ][ " TAS_UID " ] = $newUid ;
}
2012-10-22 15:45:47 -04:00
}
}
2016-03-23 23:34:18 -04:00
if ( isset ( $oData -> steptriggers ) && is_array ( $oData -> steptriggers )) {
2012-10-22 15:45:47 -04:00
foreach ( $oData -> steptriggers as $key => $val ) {
$newGuid = $map [ $val [ 'TAS_UID' ]];
$oData -> steptriggers [ $key ][ 'TAS_UID' ] = $newGuid ;
}
}
2016-03-23 23:34:18 -04:00
if ( isset ( $oData -> taskusers ) && is_array ( $oData -> taskusers )) {
2012-10-22 15:45:47 -04:00
foreach ( $oData -> taskusers as $key => $val ) {
$newGuid = $map [ $val [ 'TAS_UID' ]];
$oData -> taskusers [ $key ][ 'TAS_UID' ] = $newGuid ;
}
}
2016-03-23 23:34:18 -04:00
if ( isset ( $oData -> subProcess ) && is_array ( $oData -> subProcess )) {
2012-10-22 15:45:47 -04:00
foreach ( $oData -> subProcess as $key => $val ) {
$newGuid = $map [ $val [ 'TAS_PARENT' ]];
$oData -> subProcess [ $key ][ 'TAS_PARENT' ] = $newGuid ;
2016-03-23 23:34:18 -04:00
if ( isset ( $map [ $val [ 'TAS_UID' ]])) {
2012-10-22 15:45:47 -04:00
$newGuid = $map [ $val [ 'TAS_UID' ]];
$oData -> subProcess [ $key ][ 'TAS_UID' ] = $newGuid ;
}
}
}
2016-03-23 23:34:18 -04:00
if ( isset ( $oData -> objectPermissions ) && is_array ( $oData -> objectPermissions )) {
2012-10-22 15:45:47 -04:00
foreach ( $oData -> objectPermissions as $key => $val ) {
2016-03-23 23:34:18 -04:00
if ( isset ( $map [ $val [ 'TAS_UID' ]])) {
2012-10-22 15:45:47 -04:00
$newGuid = $map [ $val [ 'TAS_UID' ]];
$oData -> objectPermissions [ $key ][ 'TAS_UID' ] = $newGuid ;
}
}
}
2012-10-19 18:07:17 +00:00
// New process bpmn
2016-03-23 23:34:18 -04:00
if ( isset ( $oData -> event ) && is_array ( $oData -> event )) {
2012-10-22 15:45:47 -04:00
foreach ( $oData -> event as $key => $val ) {
2016-03-23 23:34:18 -04:00
if ( isset ( $val [ 'EVN_TAS_UID_FROM' ]) && isset ( $map [ $val [ 'EVN_TAS_UID_FROM' ]])) {
2012-10-22 15:45:47 -04:00
$newGuid = $map [ $val [ 'EVN_TAS_UID_FROM' ]];
$oData -> event [ $key ][ 'EVN_TAS_UID_FROM' ] = $newGuid ;
}
}
}
2016-03-23 23:34:18 -04:00
if ( isset ( $oData -> caseScheduler ) && is_array ( $oData -> caseScheduler )) {
2012-10-22 15:45:47 -04:00
foreach ( $oData -> caseScheduler as $key => $val ) {
2016-03-23 23:34:18 -04:00
if ( isset ( $map [ $val [ 'TAS_UID' ]])) {
2012-10-22 15:45:47 -04:00
$newGuid = $map [ $val [ 'TAS_UID' ]];
$oData -> caseScheduler [ $key ][ 'TAS_UID' ] = $newGuid ;
}
}
}
2015-05-27 14:53:05 -04:00
2015-05-25 10:20:42 -04:00
if ( isset ( $oData -> taskExtraProperties )) {
foreach ( $oData -> taskExtraProperties as $key => $value ) {
$record = $value ;
if ( isset ( $map [ $record [ " OBJ_UID " ]])) {
$newUid = $map [ $record [ " OBJ_UID " ]];
$oData -> taskExtraProperties [ $key ][ " OBJ_UID " ] = $newUid ;
}
}
}
2012-10-22 15:45:47 -04:00
2015-01-22 15:27:35 -04:00
if ( isset ( $oData -> webEntry )) {
foreach ( $oData -> webEntry as $key => $value ) {
$record = $value ;
if ( isset ( $map [ $record [ " TAS_UID " ]])) {
$newUid = $map [ $record [ " TAS_UID " ]];
$oData -> webEntry [ $key ][ " TAS_UID " ] = $newUid ;
}
}
}
if ( isset ( $oData -> webEntryEvent )) {
foreach ( $oData -> webEntryEvent as $key => $value ) {
$record = $value ;
if ( isset ( $map [ $record [ " ACT_UID " ]])) {
$newUid = $map [ $record [ " ACT_UID " ]];
$oData -> webEntryEvent [ $key ][ " ACT_UID " ] = $newUid ;
}
}
}
2016-03-23 23:34:18 -04:00
if ( isset ( $oData -> abeConfiguration ) && is_array ( $oData -> abeConfiguration )) {
2015-09-26 12:51:31 -04:00
foreach ( $oData -> abeConfiguration as $key => $value ) {
$record = $value ;
if ( isset ( $map [ $record [ " TAS_UID " ]])) {
$newUid = $map [ $record [ " TAS_UID " ]];
$oData -> abeConfiguration [ $key ][ " TAS_UID " ] = $newUid ;
}
}
}
2012-10-22 15:45:47 -04:00
}
/**
* change and Renew all Dynaform GUID , because the process needs to have a new set of dynaforms
*
* @ param string $oData
* @ return boolean
*/
2016-03-23 23:34:18 -04:00
public function renewAllDynaformGuid ( & $oData )
2012-10-22 15:45:47 -04:00
{
2016-03-23 23:34:18 -04:00
$map = array ();
2012-10-22 15:45:47 -04:00
foreach ( $oData -> dynaforms as $key => $val ) {
$newGuid = $this -> getUnusedDynaformGUID ();
$map [ $val [ 'DYN_UID' ]] = $newGuid ;
$oData -> dynaforms [ $key ][ 'DYN_UID' ] = $newGuid ;
}
2014-04-30 12:00:22 -04:00
$oData -> uid [ " DYNAFORM " ] = $map ;
2016-03-23 23:34:18 -04:00
if ( isset ( $oData -> process [ 'PRO_DYNAFORMS' ]) && ! is_array ( $oData -> process [ 'PRO_DYNAFORMS' ])) {
$oData -> process [ 'PRO_DYNAFORMS' ] = @ unserialize ( $oData -> process [ 'PRO_DYNAFORMS' ]);
2012-10-22 15:45:47 -04:00
}
2016-03-23 23:34:18 -04:00
if ( ! isset ( $oData -> process [ 'PRO_DYNAFORMS' ][ 'PROCESS' ])) {
2012-10-22 15:45:47 -04:00
$oData -> process [ 'PRO_DYNAFORMS' ][ 'PROCESS' ] = '' ;
}
if ( $oData -> process [ 'PRO_DYNAFORMS' ][ 'PROCESS' ] != '' ) {
$oData -> process [ 'PRO_DYNAFORMS' ][ 'PROCESS' ] = $map [ $oData -> process [ 'PRO_DYNAFORMS' ][ 'PROCESS' ]];
}
foreach ( $oData -> steps as $key => $val ) {
if ( $val [ 'STEP_TYPE_OBJ' ] == 'DYNAFORM' ) {
$newGuid = $map [ $val [ 'STEP_UID_OBJ' ]];
$oData -> steps [ $key ][ 'STEP_UID_OBJ' ] = $newGuid ;
}
}
2016-03-23 23:34:18 -04:00
if ( isset ( $oData -> caseTrackerObject ) && is_array ( $oData -> caseTrackerObject )) {
2012-10-22 15:45:47 -04:00
foreach ( $oData -> caseTrackerObject as $key => $val ) {
if ( $val [ 'CTO_TYPE_OBJ' ] == 'DYNAFORM' ) {
$newGuid = $map [ $val [ 'CTO_UID_OBJ' ]];
$oData -> steps [ $key ][ 'CTO_UID_OBJ' ] = $newGuid ;
}
}
}
2016-03-23 23:34:18 -04:00
if ( isset ( $oData -> objectPermissions ) && is_array ( $oData -> objectPermissions )) {
2012-10-22 15:45:47 -04:00
foreach ( $oData -> objectPermissions as $key => $val ) {
if ( $val [ 'OP_OBJ_TYPE' ] == 'DYNAFORM' ) {
2016-03-23 23:34:18 -04:00
if ( isset ( $map [ $val [ 'OP_OBJ_UID' ]])) {
2012-10-22 15:45:47 -04:00
$newGuid = $map [ $val [ 'OP_OBJ_UID' ]];
$oData -> objectPermissions [ $key ][ 'OP_OBJ_UID' ] = $newGuid ;
}
}
}
}
2016-03-23 23:34:18 -04:00
if ( isset ( $oData -> stepSupervisor ) && is_array ( $oData -> stepSupervisor )) {
2012-10-22 15:45:47 -04:00
foreach ( $oData -> stepSupervisor as $key => $val ) {
if ( $val [ 'STEP_TYPE_OBJ' ] == 'DYNAFORM' ) {
$newGuid = $map [ $val [ 'STEP_UID_OBJ' ]];
$oData -> stepSupervisor [ $key ][ 'STEP_UID_OBJ' ] = $newGuid ;
}
}
2014-04-30 12:00:22 -04:00
if ( isset ( $oData -> dynaformFiles )) {
foreach ( $oData -> dynaformFiles as $key => $value ) {
$newGuid = $map [ $key ];
$oData -> dynaformFiles [ $key ] = $newGuid ;
}
2012-10-22 15:45:47 -04:00
}
}
2016-03-23 23:34:18 -04:00
if ( isset ( $oData -> gridFiles )) {
2012-10-22 15:45:47 -04:00
foreach ( $oData -> gridFiles as $key => $val ) {
$newGuid = $map [ $key ];
$oData -> gridFiles [ $key ] = $newGuid ;
}
}
2016-03-23 23:34:18 -04:00
if ( isset ( $oData -> fieldCondition ) && is_array ( $oData -> fieldCondition )) {
2012-10-22 15:45:47 -04:00
foreach ( $oData -> fieldCondition as $key => $val ) {
$newGuid = $map [ $val [ 'FCD_DYN_UID' ]];
$oData -> fieldCondition [ $key ][ 'FCD_DYN_UID' ] = $newGuid ;
}
}
2015-01-22 15:27:35 -04:00
if ( isset ( $oData -> webEntry )) {
foreach ( $oData -> webEntry as $key => $value ) {
$record = $value ;
if ( isset ( $map [ $record [ " DYN_UID " ]])) {
$newUid = $map [ $record [ " DYN_UID " ]];
$oData -> webEntry [ $key ][ " DYN_UID " ] = $newUid ;
}
}
}
if ( isset ( $oData -> webEntryEvent )) {
foreach ( $oData -> webEntryEvent as $key => $value ) {
$record = $value ;
if ( isset ( $map [ $record [ " DYN_UID " ]])) {
$newUid = $map [ $record [ " DYN_UID " ]];
$oData -> webEntryEvent [ $key ][ " DYN_UID " ] = $newUid ;
}
}
}
2016-03-23 23:34:18 -04:00
if ( isset ( $oData -> abeConfiguration ) && is_array ( $oData -> abeConfiguration )) {
2015-09-26 12:51:31 -04:00
foreach ( $oData -> abeConfiguration as $key => $value ) {
$record = $value ;
if ( isset ( $map [ $record [ " DYN_UID " ]])) {
$newUid = $map [ $record [ " DYN_UID " ]];
$oData -> abeConfiguration [ $key ][ " DYN_UID " ] = $newUid ;
}
}
}
2012-10-22 15:45:47 -04:00
}
/**
* get a Process with a search based in the process Uid
*
* @ param $sProUid string process Uid
* @ return $oProcess Process object
*/
2016-03-23 23:34:18 -04:00
public function getProcessRow ( $sProUid , $getAllLang = false )
2012-10-22 15:45:47 -04:00
{
$oProcess = new Process ();
2017-01-13 19:11:14 -04:00
$pProcess = $oProcess -> Load ( $sProUid , $getAllLang );
unset ( $pProcess [ 'PRO_ID' ]);
return $pProcess ;
2012-10-22 15:45:47 -04:00
}
/**
* creates a process new process if a process exists with the same uid of the
* $row [ 'PRO_UID' ] parameter then deletes it from the database and creates
* a new one based on the $row parameter
*
* @ param $row array parameter with the process data
* @ return $oProcess Process object
*/
2016-03-23 23:34:18 -04:00
public function createProcessRow ( $row )
2012-10-22 15:45:47 -04:00
{
$oProcess = new Process ();
2016-03-23 23:34:18 -04:00
if ( $oProcess -> processExists ( $row [ 'PRO_UID' ])) {
$oProcess -> remove ( $row [ 'PRO_UID' ]);
2012-10-22 15:45:47 -04:00
}
2016-03-23 23:34:18 -04:00
return $oProcess -> createRow ( $row );
2012-10-22 15:45:47 -04:00
}
/**
* Update a Process register in DB , if the process doesn ' t exist with the same
* uid of the $row [ 'PRO_UID' ] parameter the function creates a new one based
* on the $row parameter data .
*
* @ param $row array parameter with the process data
* @ return $oProcess Process object
*/
2016-03-23 23:34:18 -04:00
public function updateProcessRow ( $row )
2012-10-22 15:45:47 -04:00
{
$oProcess = new Process ();
2016-03-23 23:34:18 -04:00
if ( $oProcess -> processExists ( $row [ 'PRO_UID' ])) {
2017-03-01 09:57:37 -04:00
$processRow = $oProcess -> load ( $row [ 'PRO_UID' ]);
$row [ 'PRO_ID' ] = $processRow [ 'PRO_ID' ];
2016-03-23 23:34:18 -04:00
$oProcess -> update ( $row );
2012-10-22 15:45:47 -04:00
} else {
2016-03-23 23:34:18 -04:00
$oProcess -> create ( $row );
2012-10-22 15:45:47 -04:00
}
}
/**
* Gets the subprocess data from a process and returns it in an array .
*
* @ param $sProUid string for the process Uid
* @ return $aSubProcess array
*/
2016-03-23 23:34:18 -04:00
public function getSubProcessRow ( $sProUid )
2012-10-22 15:45:47 -04:00
{
try {
2016-03-23 23:34:18 -04:00
$aSubProcess = array ();
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> add ( SubProcessPeer :: PRO_PARENT , $sProUid );
$oDataset = SubProcessPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-22 15:45:47 -04:00
$oDataset -> next ();
while ( $aRow = $oDataset -> getRow ()) {
$aSubProcess [] = $aRow ;
$oDataset -> next ();
}
return $aSubProcess ;
} catch ( Exception $oError ) {
throw ( $oError );
}
}
/**
* Gets a case Tracker Row from a process and returns it in an array .
*
* @ param $sProUid string for the process Uid
* @ return $aCaseTracker array
*/
2016-03-23 23:34:18 -04:00
public function getCaseTrackerRow ( $sProUid )
2012-10-22 15:45:47 -04:00
{
try {
2016-03-23 23:34:18 -04:00
$aCaseTracker = array ();
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> add ( CaseTrackerPeer :: PRO_UID , $sProUid );
$oDataset = CaseTrackerPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-22 15:45:47 -04:00
$oDataset -> next ();
while ( $aRow = $oDataset -> getRow ()) {
$aCaseTracker [] = $aRow ;
$oDataset -> next ();
}
return $aCaseTracker ;
} catch ( Exception $oError ) {
throw ( $oError );
}
}
/**
* Gets a case TrackerObject Row from a process and returns it in an array .
*
* @ param $sProUid string for the process Uid
* @ return $aCaseTracker array
*/
2016-03-23 23:34:18 -04:00
public function getCaseTrackerObjectRow ( $sProUid )
2012-10-22 15:45:47 -04:00
{
try {
2016-03-23 23:34:18 -04:00
$aCaseTrackerObject = array ();
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> add ( CaseTrackerObjectPeer :: PRO_UID , $sProUid );
$oDataset = CaseTrackerObjectPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-22 15:45:47 -04:00
$oDataset -> next ();
while ( $aRow = $oDataset -> getRow ()) {
$aCaseTrackerObject [] = $aRow ;
$oDataset -> next ();
}
return $aCaseTrackerObject ;
} catch ( Exception $oError ) {
throw ( $oError );
}
}
/**
* Gets a Stage Row from a process and returns it in an array .
*
* @ param $sProUid string for the process Uid
* @ return $aStage array
*/
2016-03-23 23:34:18 -04:00
public function getStageRow ( $sProUid )
2012-10-22 15:45:47 -04:00
{
try {
2016-03-23 23:34:18 -04:00
$aStage = array ();
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> add ( StagePeer :: PRO_UID , $sProUid );
$oDataset = StagePeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-22 15:45:47 -04:00
$oDataset -> next ();
while ( $aRow = $oDataset -> getRow ()) {
$oStage = new Stage ();
2016-03-23 23:34:18 -04:00
$aStage [] = $oStage -> load ( $aRow [ 'STG_UID' ]);
2012-10-22 15:45:47 -04:00
$oDataset -> next ();
}
return $aStage ;
} catch ( Exception $oError ) {
throw ( $oError );
}
}
/**
* Gets the Field Conditions from a process and returns those in an array .
*
* @ param $sProUid string for the process Uid
* @ return $aFieldCondition array
*/
2016-03-23 23:34:18 -04:00
public function getFieldCondition ( $sProUid )
2012-10-22 15:45:47 -04:00
{
try {
2016-03-23 23:34:18 -04:00
$aFieldCondition = array ();
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> add ( DynaformPeer :: PRO_UID , $sProUid );
$oCriteria -> addJoin ( DynaformPeer :: DYN_UID , FieldConditionPeer :: FCD_DYN_UID );
$oDataset = FieldConditionPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-22 15:45:47 -04:00
$oDataset -> next ();
while ( $aRow = $oDataset -> getRow ()) {
$aFieldCondition [] = $aRow ;
$oDataset -> next ();
}
return $aFieldCondition ;
} catch ( Exception $oError ) {
throw ( $oError );
}
}
/**
* Gets the Event rows from a process and returns those in an array .
*
* @ param $sProUid string for the process Uid
* @ return $aEvent array
*/
2016-03-23 23:34:18 -04:00
public function getEventRow ( $sProUid )
2012-10-22 15:45:47 -04:00
{
try {
2016-03-23 23:34:18 -04:00
$aEvent = array ();
$oCriteria = new Criteria ( 'workflow' );
2012-10-22 15:45:47 -04:00
2016-03-23 23:34:18 -04:00
$oCriteria -> add ( EventPeer :: PRO_UID , $sProUid );
$oDataset = EventPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-22 15:45:47 -04:00
$oDataset -> next ();
while ( $aRow = $oDataset -> getRow ()) {
$oEvent = new Event ();
2016-03-23 23:34:18 -04:00
$aEvent [] = $oEvent -> load ( $aRow [ 'EVN_UID' ]);
2012-10-22 15:45:47 -04:00
$oDataset -> next ();
}
return $aEvent ;
} catch ( Exception $oError ) {
throw ( $oError );
}
}
/**
* Gets the Cases Scheduler rows from a process and returns those in an array .
*
* @ param $sProUid string for the process Uid
* @ return $aCaseScheduler array
*/
2016-03-23 23:34:18 -04:00
public function getCaseSchedulerRow ( $sProUid )
2012-10-22 15:45:47 -04:00
{
try {
2016-03-23 23:34:18 -04:00
$aCaseScheduler = array ();
$oCriteria = new Criteria ( 'workflow' );
2012-10-22 15:45:47 -04:00
2016-03-23 23:34:18 -04:00
$oCriteria -> add ( CaseSchedulerPeer :: PRO_UID , $sProUid );
$oDataset = CaseSchedulerPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-22 15:45:47 -04:00
$oDataset -> next ();
while ( $aRow = $oDataset -> getRow ()) {
$oCaseScheduler = new CaseScheduler ();
2016-03-23 23:34:18 -04:00
$aCaseScheduler [] = $oCaseScheduler -> load ( $aRow [ 'SCH_UID' ]);
2012-10-22 15:45:47 -04:00
$oDataset -> next ();
}
return $aCaseScheduler ;
} catch ( Exception $oError ) {
throw ( $oError );
}
}
/**
* Gets processCategory record , if the process had one
*
* @ param $sProUid string for the process Uid
* @ return $processCategory array
*/
2016-03-23 23:34:18 -04:00
public function getProcessCategoryRow ( $sProUid )
2012-10-22 15:45:47 -04:00
{
2016-03-23 23:34:18 -04:00
$process = ProcessPeer :: retrieveByPK ( $sProUid );
2012-10-22 15:45:47 -04:00
if ( $process -> getProCategory () == '' ) {
return null ;
}
2016-03-23 23:34:18 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> add ( ProcessCategoryPeer :: CATEGORY_UID , $process -> getProCategory ());
$oDataset = ProcessCategoryPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-22 15:45:47 -04:00
$oDataset -> next ();
return $oDataset -> getRow ();
}
/**
* Get all Swimlanes Elements for any Process
*
* @ param string $sProUid
* @ return array
*/
2016-03-23 23:34:18 -04:00
public function getAllLanes ( $sProUid )
2012-10-22 15:45:47 -04:00
{
try {
2016-03-23 23:34:18 -04:00
$aLanes = array ();
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> add ( SwimlanesElementsPeer :: PRO_UID , $sProUid );
$oDataset = SwimlanesElementsPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-22 15:45:47 -04:00
$oDataset -> next ();
while ( $aRow = $oDataset -> getRow ()) {
$oSwim = new SwimlanesElements ();
2016-03-23 23:34:18 -04:00
$aLanes [] = $oSwim -> Load ( $aRow [ 'SWI_UID' ]);
2012-10-22 15:45:47 -04:00
$oDataset -> next ();
}
return $aLanes ;
} catch ( Exception $oError ) {
throw ( $oError );
}
}
/**
* Get Task Rows from a process and returns those in an array .
*
* @ param $sProUid string for the process Uid
* @ return $oTask array
*/
2016-03-23 23:34:18 -04:00
public function getTaskRows ( $sProUid )
2012-10-22 15:45:47 -04:00
{
$oTask = new Tasks ();
2016-03-23 23:34:18 -04:00
return $oTask -> getAllTasks ( $sProUid );
2012-10-22 15:45:47 -04:00
}
/**
* Create Task Rows from a $aTasks array data and returns those in an array .
*
* @ param $aTasks array
* @ return $oTask array
*/
2016-03-23 23:34:18 -04:00
public function createTaskRows ( $aTasks )
2012-10-22 15:45:47 -04:00
{
$oTask = new Tasks ();
2016-03-23 23:34:18 -04:00
return $oTask -> createTaskRows ( $aTasks );
2012-10-22 15:45:47 -04:00
}
/**
* Update Task Rows from a $aTasks array data and returns those in an array .
*
* @ param $aTasks array
* @ return $oTask array
*/
2016-03-23 23:34:18 -04:00
public function updateTaskRows ( $aTasks )
2012-10-22 15:45:47 -04:00
{
$oTask = new Tasks ();
2016-03-23 23:34:18 -04:00
return $oTask -> updateTaskRows ( $aTasks );
2012-10-22 15:45:47 -04:00
}
2016-03-28 14:48:33 -04:00
/**
* Add New Task Rows from a $aTasks array data and returns those in an array .
*
* @ param $aTasks array
* @ return array $oTask array
*/
public function addNewTaskRows ( $aTasks )
{
$oTask = new Tasks ();
return $oTask -> addNewTaskRows ( $aTasks );
}
2012-10-22 15:45:47 -04:00
/**
* Gets all Route rows from a Process and returns those in an array .
*
* @ param $sProUid string for the process Uid
* @ return $oTask Tasks array
*/
2016-03-23 23:34:18 -04:00
public function getRouteRows ( $sProUid )
2012-10-22 15:45:47 -04:00
{
$oTask = new Tasks ();
2016-03-23 23:34:18 -04:00
return $oTask -> getAllRoutes ( $sProUid );
2012-10-22 15:45:47 -04:00
}
/**
* Create Route Rows from a $aRoutes array data and returns those in an array .
*
* @ param $aRoutes array
* @ return $oTask Tasks array
*/
2016-03-23 23:34:18 -04:00
public function createRouteRows ( $aRoutes )
2012-10-22 15:45:47 -04:00
{
$oTask = new Tasks ();
2016-03-23 23:34:18 -04:00
return $oTask -> createRouteRows ( $aRoutes );
2012-10-22 15:45:47 -04:00
}
2016-04-08 18:01:40 -04:00
/**
* This string replace duplicated routes based on the tasks origin and end
* if the route existed is removed and regenerated since probably the last
* data is an updated version and we need a different functionality than the
* createRouteRows method .
* @ param $aRoutes array
* @ return $oTask Tasks array
*/
public function replaceRouteRows ( $aRoutes )
{
foreach ( $aRoutes as $routeData ) {
$route = new \Route ();
foreach ( $route -> routeExistsFiltered ( $routeData ) as $duplicatedRoute ) {
$routeData = array_replace_recursive ( $duplicatedRoute , $routeData );
$route -> remove ( $duplicatedRoute [ 'ROU_UID' ]);
}
$route -> create ( $routeData );
}
}
2012-10-22 15:45:47 -04:00
/**
* Update Route Rows from a $aRoutes array data and returns those in an array .
*
* @ param $aRoutes array
* @ return $oTask Tasks array
*/
2016-03-23 23:34:18 -04:00
public function updateRouteRows ( $aRoutes )
2012-10-22 15:45:47 -04:00
{
$oTask = new Tasks ();
2016-03-23 23:34:18 -04:00
return $oTask -> updateRouteRows ( $aRoutes );
2012-10-22 15:45:47 -04:00
}
/**
* Get Lane Rows from a Process and returns those in an array .
*
* @ param $sProUid string for the process Uid
* @ return array
*/
2016-03-23 23:34:18 -04:00
public function getLaneRows ( $sProUid )
2012-10-22 15:45:47 -04:00
{
2016-03-23 23:34:18 -04:00
return $this -> getAllLanes ( $sProUid );
2012-10-22 15:45:47 -04:00
}
/**
* Get Gateway Rows from a process and returns those in an array .
*
* @ param $sProUid string for the process Uid
* @ return $oTask array
*/
2016-03-23 23:34:18 -04:00
public function getGatewayRows ( $sProUid )
2012-10-22 15:45:47 -04:00
{
$oTask = new Tasks ();
2016-03-23 23:34:18 -04:00
return $oTask -> getAllGateways ( $sProUid );
2012-10-22 15:45:47 -04:00
}
/**
* Create Gateway Rows from a $aGateways array data and returns those in an array .
*
* @ param $aGateways array
* @ return $oGateway array
*/
2016-03-23 23:34:18 -04:00
public function createGatewayRows ( $aGateways )
2012-10-22 15:45:47 -04:00
{
$oTask = new Tasks ();
2016-03-23 23:34:18 -04:00
return $oTask -> createGatewayRows ( $aGateways );
2012-10-22 15:45:47 -04:00
}
/**
* Create Lane Rows from a $aLanes array data and returns those in an array .
*
* @ param $aLanes array .
* @ return void
*/
2016-03-23 23:34:18 -04:00
public function createLaneRows ( $aLanes )
2012-10-22 15:45:47 -04:00
{
foreach ( $aLanes as $key => $row ) {
$oLane = new SwimlanesElements ();
2016-03-23 23:34:18 -04:00
if ( $oLane -> swimlanesElementsExists ( $row [ 'SWI_UID' ])) {
$oLane -> remove ( $row [ 'SWI_UID' ]);
2012-10-22 15:45:47 -04:00
}
2016-03-23 23:34:18 -04:00
$res = $oLane -> create ( $row );
2012-10-22 15:45:47 -04:00
}
return ;
}
/**
* Create Sub Process rows from an array , removing those subprocesses with
* the same UID .
*
* @ param $SubProcess array
* @ return void .
*/
2016-03-23 23:34:18 -04:00
public function createSubProcessRows ( $SubProcess )
2012-10-22 15:45:47 -04:00
{
foreach ( $SubProcess as $key => $row ) {
$oSubProcess = new SubProcess ();
2015-03-04 16:51:41 -04:00
//if ($oSubProcess->subProcessExists( $row['SP_UID'] )) {
// $oSubProcess->remove( $row['SP_UID'] );
//}
//Delete
$criteria = new Criteria ( " workflow " );
$criteria -> add ( SubProcessPeer :: PRO_PARENT , $row [ " PRO_PARENT " ], Criteria :: EQUAL );
$criteria -> add ( SubProcessPeer :: TAS_PARENT , $row [ " TAS_PARENT " ], Criteria :: EQUAL );
$result = SubProcessPeer :: doDelete ( $criteria );
//Create
2016-03-23 23:34:18 -04:00
$res = $oSubProcess -> create ( $row );
2012-10-22 15:45:47 -04:00
}
return ;
}
/**
* Create Case Tracker rows from an array , removing those Trackers with
* the same UID .
*
* @ param $CaseTracker array .
* @ return void
*/
2016-03-23 23:34:18 -04:00
public function createCaseTrackerRows ( $CaseTracker )
2012-10-22 15:45:47 -04:00
{
2016-03-23 23:34:18 -04:00
if ( is_array ( $CaseTracker )) {
2012-10-22 15:45:47 -04:00
foreach ( $CaseTracker as $key => $row ) {
$oCaseTracker = new CaseTracker ();
2016-03-23 23:34:18 -04:00
if ( $oCaseTracker -> caseTrackerExists ( $row [ 'PRO_UID' ])) {
$oCaseTracker -> remove ( $row [ 'PRO_UID' ]);
2012-10-22 15:45:47 -04:00
}
2016-03-23 23:34:18 -04:00
$res = $oCaseTracker -> create ( $row );
2012-10-22 15:45:47 -04:00
}
}
return ;
}
/**
* Create Case Tracker Objects rows from an array , removing those Objects
* with the same UID , and recreaiting those from the array data .
*
* @ param $CaseTrackerObject array .
* @ return void
*/
2016-03-23 23:34:18 -04:00
public function createCaseTrackerObjectRows ( $CaseTrackerObject )
2012-10-22 15:45:47 -04:00
{
foreach ( $CaseTrackerObject as $key => $row ) {
$oCaseTrackerObject = new CaseTrackerObject ();
2016-03-23 23:34:18 -04:00
if ( $oCaseTrackerObject -> caseTrackerObjectExists ( $row [ 'CTO_UID' ])) {
$oCaseTrackerObject -> remove ( $row [ 'CTO_UID' ]);
2012-10-22 15:45:47 -04:00
}
2016-03-23 23:34:18 -04:00
$res = $oCaseTrackerObject -> create ( $row );
2012-10-22 15:45:47 -04:00
}
return ;
}
/**
* Create Object Permissions rows from an array , removing those Objects
* with the same UID , and recreaiting the records from the array data .
*
* @ param $sProUid string for the process Uid .
* @ return void
*/
2016-03-23 23:34:18 -04:00
public function createObjectPermissionsRows ( $ObjectPermissions )
2012-10-22 15:45:47 -04:00
{
foreach ( $ObjectPermissions as $key => $row ) {
$oObjectPermissions = new ObjectPermission ();
2016-03-23 23:34:18 -04:00
if ( $oObjectPermissions -> Exists ( $row [ 'OP_UID' ])) {
$oObjectPermissions -> remove ( $row [ 'OP_UID' ]);
2012-10-22 15:45:47 -04:00
}
2016-03-23 23:34:18 -04:00
$res = $oObjectPermissions -> create ( $row );
2012-10-22 15:45:47 -04:00
}
return ;
}
/**
* Create Stage rows from an array , removing those Objects
* with the same UID , and recreaiting the records from the array data .
*
* @ param $Stage array .
* @ return void
*/
2016-03-23 23:34:18 -04:00
public function createStageRows ( $Stage )
2012-10-22 15:45:47 -04:00
{
foreach ( $Stage as $key => $row ) {
$oStage = new Stage ();
2016-03-23 23:34:18 -04:00
if ( $oStage -> Exists ( $row [ 'STG_UID' ])) {
$oStage -> remove ( $row [ 'STG_UID' ]);
2012-10-22 15:45:47 -04:00
}
2016-03-23 23:34:18 -04:00
$res = $oStage -> create ( $row );
2012-10-22 15:45:47 -04:00
}
return ;
}
2014-05-16 10:38:32 -04:00
/**
* Remove All Fields Conditions from an array of Field Conditions and Dynaforms ,
* from the arrays data .
*
* @ param $aDynaform array
* @ return void
*/
2016-03-23 23:34:18 -04:00
public function removeAllFieldCondition ( $aDynaform )
2014-05-16 10:38:32 -04:00
{
foreach ( $aDynaform as $key => $row ) {
$oCriteria = new Criteria ();
2016-03-23 23:34:18 -04:00
$oCriteria -> add ( FieldConditionPeer :: FCD_DYN_UID , $row [ 'DYN_UID' ]);
FieldConditionPeer :: doDelete ( $oCriteria );
2014-05-16 10:38:32 -04:00
}
}
2012-10-22 15:45:47 -04:00
/**
* Create Field Conditions from an array of Field Conditions and Dynaforms ,
* removing those Objects with the same UID , and recreaiting the records
* from the arrays data .
*
* @ param $aFieldCondition array .
* @ param $aDynaform array .
* @ return void
*/
2016-03-23 23:34:18 -04:00
public function createFieldCondition ( $aFieldCondition , $aDynaform )
2012-10-22 15:45:47 -04:00
{
2016-03-23 23:34:18 -04:00
if ( is_array ( $aFieldCondition )) {
2012-10-22 15:45:47 -04:00
foreach ( $aFieldCondition as $key => $row ) {
$oFieldCondition = new FieldCondition ();
2016-03-23 23:34:18 -04:00
if ( $oFieldCondition -> fieldConditionExists ( $row [ 'FCD_UID' ], $aDynaform )) {
$oFieldCondition -> remove ( $row [ 'FCD_UID' ]);
2012-10-22 15:45:47 -04:00
}
2016-03-23 23:34:18 -04:00
$res = $oFieldCondition -> create ( $row );
2012-10-22 15:45:47 -04:00
}
}
return ;
}
/**
* Create Event rows from an array , removing those Objects
* with the same UID , and recreaiting the records from the array data .
*
* @ param $Event array .
* @ return void
*/
2016-03-23 23:34:18 -04:00
public function createEventRows ( $Event )
2012-10-22 15:45:47 -04:00
{
foreach ( $Event as $key => $row ) {
$oEvent = new Event ();
2016-03-23 23:34:18 -04:00
if ( $oEvent -> Exists ( $row [ 'EVN_UID' ])) {
$oEvent -> remove ( $row [ 'EVN_UID' ]);
2012-10-22 15:45:47 -04:00
}
2016-03-23 23:34:18 -04:00
$res = $oEvent -> create ( $row );
2012-10-22 15:45:47 -04:00
}
return ;
}
/**
* Create Case Scheduler Rows from an array , removing those Objects
* with the same UID , and recreaiting the records from the array data .
*
* @ param $CaseScheduler array .
* @ return void
*/
2016-03-23 23:34:18 -04:00
public function createCaseSchedulerRows ( $CaseScheduler )
2012-10-22 15:45:47 -04:00
{
foreach ( $CaseScheduler as $key => $row ) {
$oCaseScheduler = new CaseScheduler ();
2016-03-23 23:34:18 -04:00
if ( $oCaseScheduler -> Exists ( $row [ 'SCH_UID' ])) {
$oCaseScheduler -> remove ( $row [ 'SCH_UID' ]);
2012-10-22 15:45:47 -04:00
}
2016-03-23 23:34:18 -04:00
$res = $oCaseScheduler -> create ( $row );
2012-10-22 15:45:47 -04:00
}
return ;
}
/**
* Create ProcessCategory record
*
* @ param $ProcessCategory array .
* @ return void
*/
2016-03-23 23:34:18 -04:00
public function createProcessCategoryRow ( $row )
2012-10-22 15:45:47 -04:00
{
2016-03-23 23:34:18 -04:00
if ( $row && is_array ( $row ) && isset ( $row [ 'CATEGORY_UID' ])) {
$record = ProcessCategoryPeer :: retrieveByPK ( $row [ 'CATEGORY_UID' ]);
2012-10-19 18:07:17 +00:00
// create only if the category doesn't exists
2016-03-23 23:34:18 -04:00
if ( ! $record ) {
2012-10-22 15:45:47 -04:00
$processCategory = new ProcessCategory ();
2016-03-23 23:34:18 -04:00
$processCategory -> fromArray ( $row , BasePeer :: TYPE_FIELDNAME );
2012-10-22 15:45:47 -04:00
$processCategory -> save ();
}
}
}
2014-05-14 10:26:45 -04:00
/**
* Create " Process User " records
*
* @ param array $arrayData Data to create
*
* return void
*/
public function createProcessUser ( array $arrayData )
{
try {
$processUser = new ProcessUser ();
foreach ( $arrayData as $value ) {
$record = $value ;
if ( $processUser -> Exists ( $record [ " PU_UID " ])) {
$result = $processUser -> remove ( $record [ " PU_UID " ]);
}
$result = $processUser -> create ( $record );
}
} catch ( Exception $e ) {
throw $e ;
}
}
2016-03-22 14:55:47 -04:00
/**
* @ param array $arrayData
*/
public function updateProcessUser ( array $arrayData )
{
2016-03-22 16:05:03 -04:00
try {
$processUser = new ProcessUser ();
foreach ( $arrayData as $value ) {
$record = $value ;
if ( $processUser -> Exists ( $record [ " PU_UID " ])) {
$result = $processUser -> update ( $record [ " PU_UID " ]);
2016-03-22 16:22:00 -04:00
} else {
$result = $processUser -> create ( $record );
2016-03-22 16:05:03 -04:00
}
}
} catch ( Exception $e ) {
throw $e ;
}
2016-03-22 14:55:47 -04:00
}
2016-03-28 14:48:33 -04:00
/**
* @ param array $arrayData
*/
public function addNewProcessUser ( array $arrayData )
{
try {
foreach ( $arrayData as $value ) {
2016-03-29 14:33:55 -04:00
$processUser = new ProcessUser ();
2016-03-28 14:48:33 -04:00
$record = $value ;
if ( ! $processUser -> Exists ( $record [ " PU_UID " ])) {
$result = $processUser -> create ( $record );
}
}
} catch ( Exception $e ) {
throw $e ;
}
}
2014-07-22 16:57:24 -04:00
/**
* Create " Process Variables " records
*
* @ param array $arrayData Data to create
*
* return void
*/
public function createProcessVariables ( array $arrayData )
{
try {
foreach ( $arrayData as $value ) {
$processVariables = new ProcessVariables ();
$record = $value ;
if ( $processVariables -> Exists ( $record [ " VAR_UID " ])) {
$result = $processVariables -> remove ( $record [ " VAR_UID " ]);
}
$result = $processVariables -> create ( $record );
}
} catch ( Exception $e ) {
throw $e ;
}
}
2016-03-22 14:55:47 -04:00
/**
* @ param $arrayData
*/
public function updateProcessVariables ( $arrayData )
{
2016-03-22 15:38:11 -04:00
try {
foreach ( $arrayData as $value ) {
$processVariables = new ProcessVariables ();
$record = $value ;
if ( $processVariables -> Exists ( $record [ " VAR_UID " ])) {
2016-03-22 15:40:20 -04:00
$processVariables -> update ( $record );
2016-03-22 15:38:11 -04:00
} else {
$processVariables -> create ( $record );
}
}
} catch ( Exception $e ) {
throw $e ;
}
2016-03-22 14:55:47 -04:00
}
2016-03-28 14:48:33 -04:00
/**
* @ param $arrayData
*/
public function addNewProcessVariables ( $arrayData )
{
try {
foreach ( $arrayData as $value ) {
$processVariables = new ProcessVariables ();
$record = $value ;
if ( ! $processVariables -> Exists ( $record [ " VAR_UID " ])) {
$processVariables -> create ( $record );
}
}
} catch ( Exception $e ) {
throw $e ;
}
}
2014-07-22 16:57:24 -04:00
2012-10-22 15:45:47 -04:00
/**
* Gets Input Documents Rows from aProcess .
*
* @ param $sProUid string .
* @ return void
*/
2016-03-23 23:34:18 -04:00
public function getInputRows ( $sProUid )
2012-10-22 15:45:47 -04:00
{
try {
2016-03-23 23:34:18 -04:00
$aInput = array ();
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> add ( InputDocumentPeer :: PRO_UID , $sProUid );
$oDataset = InputDocumentPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-22 15:45:47 -04:00
$oDataset -> next ();
while ( $aRow = $oDataset -> getRow ()) {
2014-03-27 19:11:11 -04:00
$oInput = new InputDocument ();
2016-07-01 09:58:57 -04:00
$aInput [] = $oInput -> load ( $aRow [ 'INP_DOC_UID' ]);
2012-10-22 15:45:47 -04:00
$oDataset -> next ();
}
return $aInput ;
} catch ( Exception $oError ) {
throw ( $oError );
}
}
/**
* Create Input Documents Rows from an array , removing those Objects
* with the same UID , and recreaiting the records from the array data .
*
* @ param $aInput array .
* @ return void
*/
2016-03-23 23:34:18 -04:00
public function createInputRows ( $aInput )
2012-10-22 15:45:47 -04:00
{
foreach ( $aInput as $key => $row ) {
2014-03-27 19:11:11 -04:00
$oInput = new InputDocument ();
2012-10-09 13:01:32 -04:00
//unset ($row['TAS_UID']);
2016-03-23 23:34:18 -04:00
if ( $oInput -> InputExists ( $row [ 'INP_DOC_UID' ])) {
$oInput -> remove ( $row [ 'INP_DOC_UID' ]);
2012-10-22 15:45:47 -04:00
}
2016-03-23 23:34:18 -04:00
$res = $oInput -> create ( $row );
2012-10-22 15:45:47 -04:00
}
return ;
}
2016-03-22 14:55:47 -04:00
/**
* @ param $aInput
*/
2016-03-23 23:34:18 -04:00
public function updateInputRows ( $aInput )
2016-03-22 14:55:47 -04:00
{
2016-03-22 15:38:11 -04:00
foreach ( $aInput as $key => $row ) {
$oInput = new InputDocument ();
2016-03-23 23:34:18 -04:00
if ( $oInput -> InputExists ( $row [ 'INP_DOC_UID' ])) {
2016-03-23 23:28:40 -04:00
$oInput -> update ( $row );
2016-03-22 15:38:11 -04:00
} else {
$oInput -> create ( $row );
}
}
return ;
2016-03-22 14:55:47 -04:00
}
2016-03-28 14:48:33 -04:00
/**
* @ param $aInput
*/
public function addNewInputRows ( $aInput )
{
foreach ( $aInput as $key => $row ) {
$oInput = new InputDocument ();
if ( ! $oInput -> InputExists ( $row [ 'INP_DOC_UID' ])) {
$oInput -> create ( $row );
}
}
return ;
}
2012-10-22 15:45:47 -04:00
/**
* change and Renew all Input GUID , because the process needs to have a new set of Inputs
*
* @ param string $oData
* @ return boolean
*/
2016-03-23 23:34:18 -04:00
public function renewAllInputGuid ( & $oData )
2012-10-22 15:45:47 -04:00
{
2016-03-23 23:34:18 -04:00
$map = array ();
2012-10-22 15:45:47 -04:00
foreach ( $oData -> inputs as $key => $val ) {
$newGuid = $this -> getUnusedInputGUID ();
$map [ $val [ 'INP_DOC_UID' ]] = $newGuid ;
2014-06-12 15:44:09 -04:00
$oData -> inputFiles [ $oData -> inputs [ $key ][ 'INP_DOC_UID' ]] = $newGuid ;
2012-10-22 15:45:47 -04:00
$oData -> inputs [ $key ][ 'INP_DOC_UID' ] = $newGuid ;
}
2016-11-09 10:53:04 -05:00
2016-09-02 16:16:07 -04:00
$oData -> uid [ " INPUT_DOCUMENT " ] = $map ;
2016-11-09 10:53:04 -05:00
2014-06-17 12:30:52 -04:00
if ( ! isset ( $oData -> inputFiles )) {
2016-03-23 23:34:18 -04:00
$oData -> inputFiles = array ();
2014-06-13 15:01:52 -04:00
}
2012-10-22 15:45:47 -04:00
foreach ( $oData -> steps as $key => $val ) {
2016-03-23 23:34:18 -04:00
if ( isset ( $val [ 'STEP_TYPE_OBJ' ])) {
2012-10-22 15:45:47 -04:00
if ( $val [ 'STEP_TYPE_OBJ' ] == 'INPUT_DOCUMENT' ) {
$newGuid = $map [ $val [ 'STEP_UID_OBJ' ]];
$oData -> steps [ $key ][ 'STEP_UID_OBJ' ] = $newGuid ;
}
}
}
2016-03-23 23:34:18 -04:00
if ( isset ( $oData -> caseTrackerObject ) && is_array ( $oData -> caseTrackerObject )) {
2012-10-22 15:45:47 -04:00
foreach ( $oData -> caseTrackerObject as $key => $val ) {
if ( $val [ 'CTO_TYPE_OBJ' ] == 'INPUT_DOCUMENT' ) {
$newGuid = $map [ $val [ 'CTO_UID_OBJ' ]];
$oData -> steps [ $key ][ 'CTO_UID_OBJ' ] = $newGuid ;
}
}
}
2016-03-23 23:34:18 -04:00
if ( isset ( $oData -> objectPermissions ) && is_array ( $oData -> objectPermissions )) {
2012-10-22 15:45:47 -04:00
foreach ( $oData -> objectPermissions as $key => $val ) {
if ( $val [ 'OP_OBJ_TYPE' ] == 'INPUT_DOCUMENT' ) {
2016-03-23 23:34:18 -04:00
if ( isset ( $map [ $val [ 'OP_OBJ_UID' ]])) {
2012-10-22 15:45:47 -04:00
$newGuid = $map [ $val [ 'OP_OBJ_UID' ]];
$oData -> objectPermissions [ $key ][ 'OP_OBJ_UID' ] = $newGuid ;
}
}
}
}
2016-03-23 23:34:18 -04:00
if ( isset ( $oData -> stepSupervisor ) && is_array ( $oData -> stepSupervisor )) {
2012-10-22 15:45:47 -04:00
foreach ( $oData -> stepSupervisor as $key => $val ) {
if ( $val [ 'STEP_TYPE_OBJ' ] == 'INPUT_DOCUMENT' ) {
$newGuid = $map [ $val [ 'STEP_UID_OBJ' ]];
$oData -> stepSupervisor [ $key ][ 'STEP_UID_OBJ' ] = $newGuid ;
}
}
}
}
/**
* Gets the Output Documents Rows from a Process .
*
* @ param $sProUid string .
* @ return $aOutput array
*/
2016-03-23 23:34:18 -04:00
public function getOutputRows ( $sProUid )
2012-10-22 15:45:47 -04:00
{
try {
2016-03-23 23:34:18 -04:00
$aOutput = array ();
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> add ( OutputDocumentPeer :: PRO_UID , $sProUid );
$oDataset = OutputDocumentPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-22 15:45:47 -04:00
$oDataset -> next ();
while ( $aRow = $oDataset -> getRow ()) {
2014-03-27 19:11:11 -04:00
$oOutput = new OutputDocument ();
2016-03-23 23:34:18 -04:00
$aOutput [] = $oOutput -> Load ( $aRow [ 'OUT_DOC_UID' ]);
2012-10-22 15:45:47 -04:00
$oDataset -> next ();
}
return $aOutput ;
} catch ( Exception $oError ) {
throw ( $oError );
}
}
/**
* Create Input Documents Rows from an array , removing those Objects
* with the same UID , and recreaiting the records from the array data .
*
* @ param $aOutput array .
* @ return void
*/
2016-03-23 23:34:18 -04:00
public function createOutputRows ( $aOutput )
2012-10-22 15:45:47 -04:00
{
foreach ( $aOutput as $key => $row ) {
2014-03-27 19:11:11 -04:00
$oOutput = new OutputDocument ();
2012-10-09 13:01:32 -04:00
//unset ($row['TAS_UID']);
2016-03-23 23:34:18 -04:00
if ( $oOutput -> OutputExists ( $row [ 'OUT_DOC_UID' ])) {
$oOutput -> remove ( $row [ 'OUT_DOC_UID' ]);
2012-10-22 15:45:47 -04:00
}
2016-03-23 23:34:18 -04:00
$res = $oOutput -> create ( $row );
2012-10-22 15:45:47 -04:00
}
return ;
}
2016-03-22 14:55:47 -04:00
/**
* @ param $aOutput
*/
2016-03-23 23:34:18 -04:00
public function updateOutputRows ( $aOutput )
2016-03-22 14:55:47 -04:00
{
2016-03-22 15:38:11 -04:00
foreach ( $aOutput as $key => $row ) {
$oOutput = new OutputDocument ();
2016-03-28 14:48:33 -04:00
if ( $oOutput -> OutputExists ( $row [ 'OUT_DOC_UID' ])) {
2016-03-23 23:34:18 -04:00
$oOutput -> update ( $row );
2016-03-22 15:38:11 -04:00
} else {
2016-03-23 23:34:18 -04:00
$oOutput -> create ( $row );
2016-03-22 15:38:11 -04:00
}
}
return ;
2016-03-22 14:55:47 -04:00
}
2016-03-28 14:48:33 -04:00
/**
* @ param $aOutput
*/
public function addNewOutputRows ( $aOutput )
{
foreach ( $aOutput as $key => $row ) {
$oOutput = new OutputDocument ();
if ( ! $oOutput -> OutputExists ( $row [ 'OUT_DOC_UID' ])) {
$oOutput -> create ( $row );
}
}
return ;
}
2012-10-22 15:45:47 -04:00
/**
* change and Renew all Output GUID , because the process needs to have a new set of Outputs
*
* @ param string $oData
* @ return boolean
*/
2016-03-23 23:34:18 -04:00
public function renewAllOutputGuid ( & $oData )
2012-10-22 15:45:47 -04:00
{
2016-03-23 23:34:18 -04:00
$map = array ();
2012-10-22 15:45:47 -04:00
foreach ( $oData -> outputs as $key => $val ) {
$newGuid = $this -> getUnusedOutputGUID ();
$map [ $val [ 'OUT_DOC_UID' ]] = $newGuid ;
$oData -> outputs [ $key ][ 'OUT_DOC_UID' ] = $newGuid ;
}
2014-04-30 12:00:22 -04:00
$oData -> uid [ " OUTPUT_DOCUMENT " ] = $map ;
2012-10-22 15:45:47 -04:00
foreach ( $oData -> steps as $key => $val ) {
2016-03-23 23:34:18 -04:00
if ( isset ( $val [ 'STEP_TYPE_OBJ' ])) {
2012-10-22 15:45:47 -04:00
if ( $val [ 'STEP_TYPE_OBJ' ] == 'OUTPUT_DOCUMENT' ) {
$newGuid = $map [ $val [ 'STEP_UID_OBJ' ]];
$oData -> steps [ $key ][ 'STEP_UID_OBJ' ] = $newGuid ;
}
}
}
foreach ( $oData -> caseTrackerObject as $key => $val ) {
if ( $val [ 'CTO_TYPE_OBJ' ] == 'OUTPUT_DOCUMENT' ) {
$newGuid = $map [ $val [ 'CTO_UID_OBJ' ]];
$oData -> steps [ $key ][ 'CTO_UID_OBJ' ] = $newGuid ;
}
}
foreach ( $oData -> objectPermissions as $key => $val ) {
if ( $val [ 'OP_OBJ_TYPE' ] == 'OUTPUT_DOCUMENT' ) {
$newGuid = $map [ $val [ 'OP_OBJ_UID' ]];
$oData -> objectPermissions [ $key ][ 'OP_OBJ_UID' ] = $newGuid ;
}
}
foreach ( $oData -> stepSupervisor as $key => $val ) {
if ( $val [ 'STEP_TYPE_OBJ' ] == 'OUTPUT_DOCUMENT' ) {
$newGuid = $map [ $val [ 'STEP_UID_OBJ' ]];
$oData -> stepSupervisor [ $key ][ 'STEP_UID_OBJ' ] = $newGuid ;
}
}
}
/**
* change and Renew all Trigger GUID , because the process needs to have a new set of Triggers
*
* @ param string $oData
* @ return boolean
*/
2016-03-23 23:34:18 -04:00
public function renewAllTriggerGuid ( & $oData )
2012-10-22 15:45:47 -04:00
{
2016-03-23 23:34:18 -04:00
$map = array ();
2012-10-22 15:45:47 -04:00
foreach ( $oData -> triggers as $key => $val ) {
$newGuid = $this -> getUnusedTriggerGUID ();
$map [ $val [ 'TRI_UID' ]] = $newGuid ;
$oData -> triggers [ $key ][ 'TRI_UID' ] = $newGuid ;
}
2014-04-30 12:00:22 -04:00
$oData -> uid [ " TRIGGER " ] = $map ;
2012-10-22 15:45:47 -04:00
foreach ( $oData -> steptriggers as $key => $val ) {
2016-03-23 23:34:18 -04:00
if ( isset ( $map [ $val [ 'TRI_UID' ]])) {
2012-10-22 15:45:47 -04:00
$newGuid = $map [ $val [ 'TRI_UID' ]];
$oData -> steptriggers [ $key ][ 'TRI_UID' ] = $newGuid ;
} else {
$oData -> steptriggers [ $key ][ 'TRI_UID' ] = $this -> getUnusedTriggerGUID ();
}
}
2014-04-30 12:00:22 -04:00
2014-05-08 14:35:37 -04:00
foreach ( array ( " PRO_TRI_DELETED " , " PRO_TRI_CANCELED " , " PRO_TRI_PAUSED " , " PRO_TRI_REASSIGNED " ) as $value ) {
$key = $value ;
2017-02-14 09:35:46 -04:00
if ( isset ( $oData -> process [ $key ]) && isset ( $map [ $oData -> process [ $key ]])) {
2014-05-08 14:35:37 -04:00
$oData -> process [ $key ] = $map [ $oData -> process [ $key ]];
}
2014-04-30 12:00:22 -04:00
}
2015-06-24 18:28:20 -04:00
//Script-Task
if ( isset ( $oData -> scriptTask )) {
foreach ( $oData -> scriptTask as $key => $value ) {
$record = $value ;
if ( isset ( $map [ $record [ " SCRTAS_OBJ_UID " ]])) {
$newUid = $map [ $record [ " SCRTAS_OBJ_UID " ]];
$oData -> scriptTask [ $key ][ " SCRTAS_OBJ_UID " ] = $newUid ;
}
}
}
2012-10-22 15:45:47 -04:00
}
/**
* Renew all the GUID ' s for Subprocesses
*
* @ param $oData array .
* @ return void
*/
2016-03-23 23:34:18 -04:00
public function renewAllSubProcessGuid ( & $oData )
2012-10-22 15:45:47 -04:00
{
2016-03-23 23:34:18 -04:00
$map = array ();
2012-10-22 15:45:47 -04:00
foreach ( $oData -> subProcess as $key => $val ) {
$newGuid = $this -> getUnusedSubProcessGUID ();
$map [ $val [ 'SP_UID' ]] = $newGuid ;
$oData -> subProcess [ $key ][ 'SP_UID' ] = $newGuid ;
}
2014-04-30 12:00:22 -04:00
$oData -> uid [ " SUB_PROCESS " ] = $map ;
2012-10-22 15:45:47 -04:00
}
/**
* Renew all the GUID ' s for Case Tracker Objects
*
* @ param $oData array .
* @ return void
*/
2016-03-23 23:34:18 -04:00
public function renewAllCaseTrackerObjectGuid ( & $oData )
2012-10-22 15:45:47 -04:00
{
2016-03-23 23:34:18 -04:00
$map = array ();
2012-10-22 15:45:47 -04:00
foreach ( $oData -> caseTrackerObject as $key => $val ) {
$newGuid = $this -> getUnusedCaseTrackerObjectGUID ();
$map [ $val [ 'CTO_UID' ]] = $newGuid ;
$oData -> caseTrackerObject [ $key ][ 'CTO_UID' ] = $newGuid ;
}
2014-04-30 12:00:22 -04:00
$oData -> uid [ " CASE_TRACKER_OBJECT " ] = $map ;
2012-10-22 15:45:47 -04:00
}
/**
* Renew all the GUID ' s for DB Sources
*
* @ param $oData array .
* @ return void
*/
2016-03-23 23:34:18 -04:00
public function renewAllDBSourceGuid ( & $oData )
2012-10-22 15:45:47 -04:00
{
2016-03-23 23:34:18 -04:00
$map = array ();
$aSqlConnections = array ();
2012-10-22 15:45:47 -04:00
foreach ( $oData -> dbconnections as $key => $val ) {
2012-10-09 13:01:32 -04:00
$newGuid = $val [ 'DBS_UID' ]; ///-- $this->getUnusedDBSourceGUID();
2012-10-22 15:45:47 -04:00
$map [ $val [ 'DBS_UID' ]] = $newGuid ;
$oData -> dbconnections [ $key ][ 'DBS_UID' ] = $newGuid ;
}
2014-04-30 12:00:22 -04:00
$oData -> uid [ " DB_SOURCE " ] = $map ;
2012-10-22 15:45:47 -04:00
$oData -> sqlConnections = $map ;
}
/**
* Renew all the GUID ' s for Object Permissions
*
* @ param $oData array .
* @ return void
*/
2016-03-23 23:34:18 -04:00
public function renewAllObjectPermissionGuid ( & $oData )
2012-10-22 15:45:47 -04:00
{
2016-03-23 23:34:18 -04:00
$map = array ();
2012-10-22 15:45:47 -04:00
foreach ( $oData -> objectPermissions as $key => $val ) {
$newGuid = $this -> getUnusedObjectPermissionGUID ();
$map [ $val [ 'OP_UID' ]] = $newGuid ;
$oData -> objectPermissions [ $key ][ 'OP_UID' ] = $newGuid ;
}
2014-04-30 12:00:22 -04:00
$oData -> uid [ " OBJECT_PERMISSION " ] = $map ;
2012-10-22 15:45:47 -04:00
}
/**
* Renew all the GUID ' s for Routes Objects
*
* @ param $oData array .
* @ return void
*/
2016-03-23 23:34:18 -04:00
public function renewAllRouteGuid ( & $oData )
2012-10-22 15:45:47 -04:00
{
2016-03-23 23:34:18 -04:00
$map = array ();
if ( isset ( $oData -> routes ) && is_array ( $oData -> routes )) {
2012-10-22 15:45:47 -04:00
foreach ( $oData -> routes as $key => $val ) {
$newGuid = $this -> getUnusedRouteGUID ();
$map [ $val [ 'ROU_UID' ]] = $newGuid ;
$oData -> routes [ $key ][ 'ROU_UID' ] = $newGuid ;
}
}
2014-04-30 12:00:22 -04:00
$oData -> uid [ " ROUTE " ] = $map ;
2012-10-22 15:45:47 -04:00
}
/**
* Renew all the GUID ' s for Stage Objects
*
* @ param $oData array .
* @ return void
*/
2016-03-23 23:34:18 -04:00
public function renewAllStageGuid ( & $oData )
2012-10-22 15:45:47 -04:00
{
2016-03-23 23:34:18 -04:00
$map = array ();
2012-10-22 15:45:47 -04:00
foreach ( $oData -> stage as $key => $val ) {
$newGuid = $this -> getUnusedStageGUID ();
$map [ $val [ 'STG_UID' ]] = $newGuid ;
$oData -> stage [ $key ][ 'STG_UID' ] = $newGuid ;
}
2014-04-30 12:00:22 -04:00
$oData -> uid [ " STAGE " ] = $map ;
2012-10-22 15:45:47 -04:00
foreach ( $oData -> tasks as $key => $val ) {
2016-03-23 23:34:18 -04:00
if ( isset ( $map [ $val [ 'STG_UID' ]])) {
2012-10-22 15:45:47 -04:00
$newGuid = $map [ $val [ 'STG_UID' ]];
$oData -> tasks [ $key ][ 'STG_UID' ] = $newGuid ;
}
}
}
/**
* Renew all the GUID ' s for Swimlanes Elements Objects
*
* @ param $oData array .
* @ return void
*/
2016-03-23 23:34:18 -04:00
public function renewAllSwimlanesElementsGuid ( & $oData )
2012-10-22 15:45:47 -04:00
{
2016-03-23 23:34:18 -04:00
$map = array ();
2012-10-22 15:45:47 -04:00
foreach ( $oData -> lanes as $key => $val ) {
$newGuid = $this -> getUnusedSLGUID ();
$map [ $val [ 'SWI_UID' ]] = $newGuid ;
$oData -> lanes [ $key ][ 'SWI_UID' ] = $newGuid ;
}
2014-04-30 12:00:22 -04:00
$oData -> uid [ " SWIMLANE_ELEMENT " ] = $map ;
2012-10-22 15:45:47 -04:00
}
/**
* Renew the GUID ' s for all the Report Tables Objects
*
* @ param $oData array .
* @ return void
*/
2016-03-23 23:34:18 -04:00
public function renewAllReportTableGuid ( & $oData )
2012-10-22 15:45:47 -04:00
{
2016-03-23 23:34:18 -04:00
$map = array ();
2012-10-22 15:45:47 -04:00
foreach ( $oData -> reportTables as $key => $val ) {
$newGuid = $this -> getUnusedRTGUID ();
$map [ $val [ 'REP_TAB_UID' ]] = $newGuid ;
$oData -> reportTables [ $key ][ 'REP_TAB_UID' ] = $newGuid ;
}
2014-04-30 12:00:22 -04:00
$oData -> uid [ " REPORT_TABLE " ] = $map ;
2012-10-22 15:45:47 -04:00
foreach ( $oData -> reportTablesVars as $key => $val ) {
2016-03-23 23:34:18 -04:00
if ( isset ( $map [ $val [ 'REP_TAB_UID' ]])) {
2012-10-09 13:01:32 -04:00
/* TODO : Why this can be not defined ? ? The scenario was when
2012-10-22 15:45:47 -04:00
* imported an existing process but as a new one
*/
$newGuid = $map [ $val [ 'REP_TAB_UID' ]];
$oData -> reportTablesVars [ $key ][ 'REP_TAB_UID' ] = $newGuid ;
}
}
}
/**
* Renew all the GUID ' s for All The Report Vars Objects
*
* @ param $oData array .
* @ return void
*/
2016-03-23 23:34:18 -04:00
public function renewAllReportVarGuid ( & $oData )
2012-10-22 15:45:47 -04:00
{
2016-03-23 23:34:18 -04:00
$map = array ();
2012-10-22 15:45:47 -04:00
foreach ( $oData -> reportTablesVars as $key => $val ) {
$newGuid = $this -> getUnusedRTVGUID ();
$map [ $val [ 'REP_VAR_UID' ]] = $newGuid ;
$oData -> reportTablesVars [ $key ][ 'REP_VAR_UID' ] = $newGuid ;
}
2014-04-30 12:00:22 -04:00
$oData -> uid [ " REPORT_VAR " ] = $map ;
2012-10-22 15:45:47 -04:00
}
/**
* Renew the GUID ' s for all the Field Conditions Objects
*
* @ param $oData array .
* @ return void
*/
2016-03-23 23:34:18 -04:00
public function renewAllFieldCondition ( & $oData )
2012-10-22 15:45:47 -04:00
{
2016-03-23 23:34:18 -04:00
$map = array ();
2012-10-22 15:45:47 -04:00
foreach ( $oData -> fieldCondition as $key => $val ) {
$newGuid = $this -> getUnusedFieldConditionGUID ();
$map [ $val [ 'FCD_UID' ]] = $newGuid ;
$oData -> fieldCondition [ $key ][ 'FCD_UID' ] = $newGuid ;
}
2014-04-30 12:00:22 -04:00
$oData -> uid [ " FIELD_CONDITION " ] = $map ;
2012-10-22 15:45:47 -04:00
}
/**
* Renew the GUID ' s for all the Events Objects
*
* @ param $oData array .
* @ return void
*/
2016-03-23 23:34:18 -04:00
public function renewAllEvent ( & $oData )
2012-10-22 15:45:47 -04:00
{
2016-03-23 23:34:18 -04:00
$map = array ();
2012-10-22 15:45:47 -04:00
foreach ( $oData -> event as $key => $val ) {
$newGuid = $this -> getUnusedEventGUID ();
$map [ $val [ 'EVN_UID' ]] = $newGuid ;
$oData -> event [ $key ][ 'EVN_UID' ] = $newGuid ;
}
2014-04-30 12:00:22 -04:00
$oData -> uid [ " EVENT " ] = $map ;
2012-10-22 15:45:47 -04:00
}
/**
* Renew the GUID ' s for all Case Scheduler Objects
*
* @ param $oData array .
* @ return void
*/
2016-03-23 23:34:18 -04:00
public function renewAllCaseScheduler ( & $oData )
2012-10-22 15:45:47 -04:00
{
2016-03-23 23:34:18 -04:00
$map = array ();
2012-10-22 15:45:47 -04:00
foreach ( $oData -> caseScheduler as $key => $val ) {
$newGuid = $this -> getUnusedCaseSchedulerGUID ();
$map [ $val [ 'SCH_UID' ]] = $newGuid ;
$oData -> caseScheduler [ $key ][ 'SCH_UID' ] = $newGuid ;
}
2014-04-30 12:00:22 -04:00
$oData -> uid [ " CASE_SCHEDULER " ] = $map ;
2012-10-22 15:45:47 -04:00
}
2014-05-14 10:26:45 -04:00
/**
* Renew all the unique id for " Process User "
*
* @ param $data Object with the data
*
* return void
*/
public function renewAllProcessUserUid ( & $data )
{
try {
if ( isset ( $data -> processUser )) {
$map = array ();
foreach ( $data -> processUser as $key => $value ) {
$record = $value ;
$newUid = $this -> getUnusedProcessUserUid ();
$map [ $record [ " PU_UID " ]] = $newUid ;
$data -> processUser [ $key ][ " PU_UID " ] = $newUid ;
}
$data -> uid [ " PROCESS_USER " ] = $map ;
}
} catch ( Exception $e ) {
throw $e ;
}
}
2015-01-16 14:49:35 -04:00
/**
* Renew all the unique id for " Process User "
*
* @ param $data Object with the data
*
* return void
*/
public function renewAllProcessVariableUid ( & $data )
{
try {
2015-02-03 15:44:38 -04:00
if ( isset ( $data -> processVariables )) {
$map = array ();
foreach ( $data -> processVariables as $key => $val ) {
if ( isset ( $val [ 'VAR_UID' ])) {
$newGuid = $this -> getUnusedProcessVariableGUID ();
$map [ $val [ 'VAR_UID' ]] = $newGuid ;
$data -> processVariables [ $key ][ 'VAR_UID' ] = $newGuid ;
}
2015-01-16 14:49:35 -04:00
}
2017-01-13 11:06:08 -04:00
$data -> uid [ " PROCESS_VARIABLES " ] = $map ;
2015-01-16 14:49:35 -04:00
}
} catch ( Exception $e ) {
throw $e ;
}
}
2015-02-04 17:18:32 -04:00
/**
* Renew all the unique id for Message - Type
*
* @ param object $data Object with the data
*
* return void
*/
public function renewAllMessageTypeUid ( & $data )
{
try {
$map = array ();
2015-03-05 13:47:34 -04:00
if ( isset ( $data -> messageType )) {
foreach ( $data -> messageType as $key => $value ) {
$record = $value ;
2015-02-04 17:18:32 -04:00
2015-03-05 13:47:34 -04:00
if ( isset ( $record [ " MSGT_UID " ])) {
$newUid = $this -> getUnusedMessageTypeUid ();
2015-02-04 17:18:32 -04:00
2015-03-05 13:47:34 -04:00
$map [ $record [ " MSGT_UID " ]] = $newUid ;
$data -> messageType [ $key ][ " MSGT_UID " ] = $newUid ;
}
2015-02-04 17:18:32 -04:00
}
}
$data -> uid [ " MESSAGE_TYPE " ] = $map ;
if ( isset ( $data -> messageTypeVariable )) {
foreach ( $data -> messageTypeVariable as $key => $value ) {
$record = $value ;
if ( isset ( $map [ $record [ " MSGT_UID " ]])) {
$newUid = $map [ $record [ " MSGT_UID " ]];
$data -> messageTypeVariable [ $key ][ " MSGT_UID " ] = $newUid ;
}
}
}
2015-02-20 17:12:49 -04:00
//Message-Envent-Definition
if ( isset ( $data -> messageEventDefinition )) {
foreach ( $data -> messageEventDefinition as $key => $value ) {
$record = $value ;
if ( isset ( $map [ $record [ " MSGT_UID " ]])) {
$newUid = $map [ $record [ " MSGT_UID " ]];
$data -> messageEventDefinition [ $key ][ " MSGT_UID " ] = $newUid ;
}
}
}
2015-02-04 17:18:32 -04:00
} catch ( Exception $e ) {
throw $e ;
}
}
/**
* Renew all the unique id for Message - Type - Variable
*
* @ param object $data Object with the data
*
* return void
*/
public function renewAllMessageTypeVariableUid ( & $data )
{
try {
$map = array ();
2015-03-05 13:47:34 -04:00
if ( isset ( $data -> messageTypeVariable )) {
foreach ( $data -> messageTypeVariable as $key => $value ) {
$record = $value ;
2015-02-04 17:18:32 -04:00
2015-03-05 13:47:34 -04:00
if ( isset ( $record [ " MSGTV_UID " ])) {
$newUid = $this -> getUnusedMessageTypeVariableUid ();
2015-02-04 17:18:32 -04:00
2015-03-05 13:47:34 -04:00
$map [ $record [ " MSGTV_UID " ]] = $newUid ;
$data -> messageTypeVariable [ $key ][ " MSGTV_UID " ] = $newUid ;
}
2015-02-04 17:18:32 -04:00
}
}
$data -> uid [ " MESSAGE_TYPE_VARIABLE " ] = $map ;
} catch ( Exception $e ) {
throw $e ;
}
}
2015-06-30 12:04:53 -04:00
2012-10-22 15:45:47 -04:00
/**
* Renew the GUID ' s for all the Uids for all the elements
*
* @ param $oData array .
* @ return void
*/
2016-03-23 23:34:18 -04:00
public function renewAll ( & $oData )
2012-10-22 15:45:47 -04:00
{
2014-04-30 12:00:22 -04:00
$oData -> uid = array ();
2017-01-13 11:06:08 -04:00
if ( isset ( $oData -> process [ " PRO_PARENT " ]) && isset ( $oData -> process [ " PRO_UID " ])) {
$oData -> uid [ " PROCESS " ] = array ( $oData -> process [ " PRO_PARENT " ] => $oData -> process [ " PRO_UID " ]);
}
2014-04-30 12:00:22 -04:00
2017-06-01 16:54:48 -04:00
$this -> renewAllWebEntryEventGuid ( $oData );
2016-03-23 23:34:18 -04:00
$this -> renewAllTaskGuid ( $oData );
$this -> renewAllDynaformGuid ( $oData );
$this -> renewAllInputGuid ( $oData );
$this -> renewAllOutputGuid ( $oData );
$this -> renewAllStepGuid ( $oData );
$this -> renewAllTriggerGuid ( $oData );
$this -> renewAllSubProcessGuid ( $oData );
$this -> renewAllCaseTrackerObjectGuid ( $oData );
$this -> renewAllDBSourceGuid ( $oData );
$this -> renewAllObjectPermissionGuid ( $oData );
$this -> renewAllRouteGuid ( $oData );
$this -> renewAllStageGuid ( $oData );
$this -> renewAllSwimlanesElementsGuid ( $oData );
$this -> renewAllReportTableGuid ( $oData );
$this -> renewAllReportVarGuid ( $oData );
$this -> renewAllFieldCondition ( $oData );
$this -> renewAllEvent ( $oData );
$this -> renewAllCaseScheduler ( $oData );
2014-05-14 10:26:45 -04:00
$this -> renewAllProcessUserUid ( $oData );
2015-01-16 14:49:35 -04:00
$this -> renewAllProcessVariableUid ( $oData );
2015-02-04 17:18:32 -04:00
$this -> renewAllMessageTypeUid ( $oData );
$this -> renewAllMessageTypeVariableUid ( $oData );
2012-10-22 15:45:47 -04:00
}
/**
* Get Step Rows from a Process
*
* @ param $sProUid array .
* @ return array $aStep .
*/
2016-03-23 23:34:18 -04:00
public function getStepRows ( $sProUid )
2012-10-22 15:45:47 -04:00
{
try {
2016-03-23 23:34:18 -04:00
$aStep = array ();
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> add ( StepPeer :: PRO_UID , $sProUid );
$oDataset = StepPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-22 15:45:47 -04:00
$oDataset -> next ();
while ( $aRow = $oDataset -> getRow ()) {
$oStep = new Step ();
2016-03-23 23:34:18 -04:00
$aStep [] = $oStep -> Load ( $aRow [ 'STEP_UID' ]);
2012-10-22 15:45:47 -04:00
$oDataset -> next ();
}
return $aStep ;
} catch ( Exception $oError ) {
throw ( $oError );
}
}
2016-03-29 18:18:09 -04:00
/**
* Get Step Rows from a Process
*
* @ param $sProUid array .
* @ return array $aStep .
*/
public function getStepRowsByElement ( $sProUid , $element )
{
try {
$elementSteps = array ();
$steps = $this -> getStepRows ( $sProUid );
foreach ( $steps as $step ) {
if ( $step [ 'STEP_TYPE_OBJ' ] === $element ) {
$elementSteps [] = $step ;
}
}
return $elementSteps ;
} catch ( Exception $oError ) {
throw ( $oError );
}
}
2012-10-22 15:45:47 -04:00
/**
* Create Step Rows from a Process
*
* @ param $aStep array .
* @ return void .
*/
2016-03-23 23:34:18 -04:00
public function createStepRows ( $aStep )
2012-10-22 15:45:47 -04:00
{
foreach ( $aStep as $key => $row ) {
$oStep = new Step ();
2016-03-23 23:34:18 -04:00
if ( isset ( $row [ 'STEP_UID' ])) {
if ( $oStep -> StepExists ( $row [ 'STEP_UID' ])) {
$oStep -> remove ( $row [ 'STEP_UID' ]);
2012-10-22 15:45:47 -04:00
}
2016-03-23 23:34:18 -04:00
$res = $oStep -> create ( $row );
2012-10-22 15:45:47 -04:00
}
}
return ;
}
/**
* Create Step Supervisor Rows for a Process from an array of data
*
* @ param $aStepSupervisor array .
* @ return void .
*/
2016-03-23 23:34:18 -04:00
public function createStepSupervisorRows ( $aStepSupervisor )
2012-10-22 15:45:47 -04:00
{
foreach ( $aStepSupervisor as $key => $row ) {
$oStepSupervisor = new StepSupervisor ();
2016-03-23 23:34:18 -04:00
if ( $oStepSupervisor -> Exists ( $row [ 'STEP_UID' ])) {
$oStepSupervisor -> remove ( $row [ 'STEP_UID' ]);
2012-10-22 15:45:47 -04:00
}
2016-03-23 23:34:18 -04:00
$oStepSupervisor -> create ( $row );
2012-10-22 15:45:47 -04:00
}
2016-03-22 16:05:03 -04:00
}
2012-10-22 15:45:47 -04:00
2016-03-22 14:55:47 -04:00
/**
* @ param $aStepSupervisor
2016-03-22 17:05:35 -04:00
* @ throws Exception
2016-03-22 14:55:47 -04:00
*/
2016-03-23 23:34:18 -04:00
public function updateStepSupervisorRows ( $aStepSupervisor )
2016-03-22 14:55:47 -04:00
{
2016-03-22 16:05:03 -04:00
try {
foreach ( $aStepSupervisor as $key => $row ) {
$oStepSupervisor = new StepSupervisor ();
2016-03-23 23:34:18 -04:00
if ( $oStepSupervisor -> Exists ( $row [ 'STEP_UID' ])) {
$oStepSupervisor -> update ( $row [ 'STEP_UID' ]);
2016-03-22 16:22:00 -04:00
} else {
2016-03-23 23:34:18 -04:00
$oStepSupervisor -> create ( $row );
2016-03-22 16:05:03 -04:00
}
}
} catch ( Exception $e ) {
throw $e ;
}
2016-03-22 14:55:47 -04:00
}
2012-10-22 15:45:47 -04:00
/**
* change and Renew all Step GUID , because the process needs to have a new set of Steps
*
* @ param string $oData
* @ return boolean
*/
2016-03-23 23:34:18 -04:00
public function renewAllStepGuid ( & $oData )
2012-10-22 15:45:47 -04:00
{
2016-03-23 23:34:18 -04:00
$map = array ();
2012-10-22 15:45:47 -04:00
foreach ( $oData -> steps as $key => $val ) {
2016-03-23 23:34:18 -04:00
if ( isset ( $val [ 'STEP_UID' ])) {
2012-10-22 15:45:47 -04:00
$newGuid = $this -> getUnusedStepGUID ();
$map [ $val [ 'STEP_UID' ]] = $newGuid ;
$oData -> steps [ $key ][ 'STEP_UID' ] = $newGuid ;
}
}
2014-04-30 12:00:22 -04:00
$oData -> uid [ " STEP " ] = $map ;
2012-10-22 15:45:47 -04:00
foreach ( $oData -> steptriggers as $key => $val ) {
if ( $val [ 'STEP_UID' ] > 0 ) {
2016-03-23 23:34:18 -04:00
if ( isset ( $map [ $val [ 'STEP_UID' ]])) {
2012-10-22 15:45:47 -04:00
$newGuid = $map [ $val [ 'STEP_UID' ]];
$oData -> steptriggers [ $key ][ 'STEP_UID' ] = $newGuid ;
} else {
$oData -> steptriggers [ $key ][ 'STEP_UID' ] = $this -> getUnusedStepGUID ();
}
}
}
foreach ( $oData -> stepSupervisor as $key => $val ) {
if ( $val [ 'STEP_UID' ] > 0 ) {
2016-03-23 23:34:18 -04:00
if ( isset ( $map [ $val [ 'STEP_UID' ]])) {
2012-10-22 15:45:47 -04:00
$newGuid = $map [ $val [ 'STEP_UID' ]];
$oData -> stepSupervisor [ $key ][ 'STEP_UID' ] = $newGuid ;
} else {
$oData -> stepSupervisor [ $key ][ 'STEP_UID' ] = $this -> getUnusedStepGUID ();
}
}
}
}
/**
* Get Dynaform Rows from a Process
*
* @ param string $sProUid
* @ return $aDynaform array
*/
2016-03-23 23:34:18 -04:00
public function getDynaformRows ( $sProUid )
2012-10-22 15:45:47 -04:00
{
try {
2016-03-23 23:34:18 -04:00
$aDynaform = array ();
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> add ( DynaformPeer :: PRO_UID , $sProUid );
$oDataset = DynaformPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-22 15:45:47 -04:00
$oDataset -> next ();
while ( $aRow = $oDataset -> getRow ()) {
$oDynaform = new Dynaform ();
2016-03-23 23:34:18 -04:00
$aDynaform [] = $oDynaform -> Load ( $aRow [ 'DYN_UID' ]);
2012-10-22 15:45:47 -04:00
$oDataset -> next ();
}
return $aDynaform ;
} catch ( Exception $oError ) {
throw ( $oError );
}
}
/**
* Get Object Permission Rows from a Process
*
* @ param string $sProUid
* @ return $aDynaform array
*/
2016-03-23 23:34:18 -04:00
public function getObjectPermissionRows ( $sProUid , & $oData )
2012-10-22 15:45:47 -04:00
{
2012-10-19 18:07:17 +00:00
// by erik
2012-10-22 15:45:47 -04:00
try {
2016-03-23 23:34:18 -04:00
$oPermissions = array ();
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> add ( ObjectPermissionPeer :: PRO_UID , $sProUid );
$oCriteria -> add ( ObjectPermissionPeer :: OP_USER_RELATION , 2 );
$oDataset = ObjectPermissionPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-22 15:45:47 -04:00
$oDataset -> next ();
while ( $aRow = $oDataset -> getRow ()) {
$o = new ObjectPermission ();
2016-03-23 23:34:18 -04:00
$oPermissions [] = $o -> Load ( $aRow [ 'OP_UID' ]);
2012-12-17 12:44:10 -04:00
$oGroupwf = new Groupwf ();
2016-03-23 23:34:18 -04:00
$oData -> groupwfs [] = $oGroupwf -> Load ( $aRow [ 'USR_UID' ]);
2012-10-22 15:45:47 -04:00
$oDataset -> next ();
}
2012-12-17 14:38:07 -04:00
2012-10-22 15:45:47 -04:00
return $oPermissions ;
} catch ( Exception $oError ) {
throw ( $oError );
}
}
2016-03-22 14:55:47 -04:00
/**
2016-03-22 16:05:03 -04:00
* @ param $aPermission
2016-03-22 17:05:35 -04:00
* @ throws Exception
2016-03-22 16:05:03 -04:00
*/
2016-03-23 23:34:18 -04:00
public function createObjectPermissionRows ( $aPermission )
2016-03-22 16:05:03 -04:00
{
try {
2016-03-23 23:28:40 -04:00
$oPermission = new ObjectPermission ();
2016-03-22 16:05:03 -04:00
foreach ( $aPermission as $key => $row ) {
2016-03-23 23:34:18 -04:00
if ( $oPermission -> Exists ( $row [ 'OP_UID' ])) {
$oPermission -> remove ( $row [ 'OP_UID' ]);
2016-03-22 16:05:03 -04:00
}
2016-03-23 23:34:18 -04:00
$oPermission -> create ( $row );
2016-03-22 16:05:03 -04:00
}
} catch ( Exception $e ) {
throw $e ;
}
}
/**
* @ param $aPermission
2016-03-22 17:05:35 -04:00
* @ throws Exception
2016-03-22 14:55:47 -04:00
*/
2016-03-23 23:34:18 -04:00
public function updateObjectPermissionRows ( $aPermission )
2016-03-22 14:55:47 -04:00
{
2016-03-22 16:05:03 -04:00
try {
2016-03-23 23:28:40 -04:00
$oPermission = new ObjectPermission ();
2016-03-22 16:05:03 -04:00
foreach ( $aPermission as $key => $row ) {
2016-03-23 23:34:18 -04:00
if ( $oPermission -> Exists ( $row [ 'OP_UID' ])) {
$oPermission -> update ( $row [ 'OP_UID' ]);
2016-03-22 16:22:00 -04:00
} else {
$oPermission -> create ( $row );
2016-03-22 16:05:03 -04:00
}
}
} catch ( Exception $e ) {
throw $e ;
}
2016-03-22 14:55:47 -04:00
}
2013-01-02 15:20:07 -04:00
2016-03-28 17:26:29 -04:00
/**
* @ param $aPermission
* @ throws Exception
*/
public function addNewObjectPermissionRows ( $aPermission )
{
try {
foreach ( $aPermission as $key => $row ) {
2016-03-29 14:33:55 -04:00
$oPermission = new ObjectPermission ();
2016-03-28 17:26:29 -04:00
if ( ! $oPermission -> Exists ( $row [ 'OP_UID' ])) {
$oPermission -> create ( $row );
}
}
} catch ( Exception $e ) {
throw $e ;
}
}
2012-12-17 15:26:30 -04:00
/**
* Get Object Permission Rows from a Process
*
* @ param string $sProUid
* @ return $aDynaform array
*/
2014-05-14 10:26:45 -04:00
//Deprecated
2016-03-23 23:34:18 -04:00
public function getGroupwfSupervisor ( $sProUid , & $oData )
2012-12-17 15:26:30 -04:00
{
try {
2016-03-23 23:34:18 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> add ( ProcessUserPeer :: PRO_UID , $sProUid );
$oCriteria -> add ( ProcessUserPeer :: PU_TYPE , 'GROUP_SUPERVISOR' );
$oDataset = ProcessUserPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-12-17 15:26:30 -04:00
$oDataset -> next ();
while ( $aRow = $oDataset -> getRow ()) {
$oGroupwf = new Groupwf ();
2016-03-23 23:34:18 -04:00
$oData -> groupwfs [] = $oGroupwf -> Load ( $aRow [ 'USR_UID' ]);
2012-12-17 15:26:30 -04:00
$oDataset -> next ();
}
return true ;
} catch ( Exception $oError ) {
throw ( $oError );
}
}
2012-10-22 15:45:47 -04:00
/**
* Create Dynaform Rows for a Process form an array
*
* @ param array $aDynaform
* @ return void
*/
2016-03-23 23:34:18 -04:00
public function createDynaformRows ( $aDynaform )
2012-10-22 15:45:47 -04:00
{
foreach ( $aDynaform as $key => $row ) {
$oDynaform = new Dynaform ();
2012-10-09 13:01:32 -04:00
//unset ($row['TAS_UID']);
2016-03-23 23:34:18 -04:00
if ( $oDynaform -> exists ( $row [ 'DYN_UID' ])) {
$oDynaform -> remove ( $row [ 'DYN_UID' ]);
2012-10-22 15:45:47 -04:00
}
2016-03-23 23:34:18 -04:00
$res = $oDynaform -> create ( $row );
2012-10-22 15:45:47 -04:00
}
return ;
}
2016-03-22 14:55:47 -04:00
/**
* @ param $aDynaform
*/
2016-03-23 23:34:18 -04:00
public function updateDynaformRows ( $aDynaform )
2016-03-22 14:55:47 -04:00
{
2016-03-23 23:28:40 -04:00
$oDynaform = new Dynaform ();
2016-03-22 15:38:11 -04:00
foreach ( $aDynaform as $key => $row ) {
2016-03-29 13:50:38 -04:00
if ( $oDynaform -> exists ( $row [ 'DYN_UID' ])) {
2016-03-23 23:34:18 -04:00
$res = $oDynaform -> update ( $row );
2016-03-22 15:38:11 -04:00
} else {
2016-03-23 23:34:18 -04:00
$res = $oDynaform -> create ( $row );
2016-03-22 15:38:11 -04:00
}
2016-03-22 14:55:47 -04:00
2016-03-22 15:38:11 -04:00
}
return ;
2016-03-22 14:55:47 -04:00
}
2012-10-22 15:45:47 -04:00
2016-03-29 13:50:38 -04:00
/**
* Add new Dynaforms rows if the passed ones are not existent
* @ param $aDynaform
*/
public function addNewDynaformRows ( $aDynaform )
{
foreach ( $aDynaform as $key => $row ) {
2016-03-29 14:09:04 -04:00
$oDynaform = new Dynaform ();
2016-03-29 13:50:38 -04:00
if ( ! $oDynaform -> exists ( $row [ 'DYN_UID' ])) {
$res = $oDynaform -> create ( $row );
}
}
return ;
}
2012-10-22 15:45:47 -04:00
/**
* Create Step Trigger Rows for a Process form an array
*
* @ param array $aStepTrigger
* @ return void
*/
2016-03-23 23:34:18 -04:00
public function createStepTriggerRows ( $aStepTrigger )
2012-10-22 15:45:47 -04:00
{
foreach ( $aStepTrigger as $key => $row ) {
$oStepTrigger = new StepTrigger ();
2012-10-09 13:01:32 -04:00
//unset ($row['TAS_UID']);
2016-03-23 23:34:18 -04:00
if ( $oStepTrigger -> stepTriggerExists ( $row [ 'STEP_UID' ], $row [ 'TAS_UID' ], $row [ 'TRI_UID' ], $row [ 'ST_TYPE' ])) {
$oStepTrigger -> remove ( $row [ 'STEP_UID' ], $row [ 'TAS_UID' ], $row [ 'TRI_UID' ], $row [ 'ST_TYPE' ]);
2012-10-22 15:45:47 -04:00
}
2016-03-23 23:34:18 -04:00
$res = $oStepTrigger -> createRow ( $row );
2012-10-22 15:45:47 -04:00
}
return ;
}
/**
* Get Step Trigger Rows for a Process form an array
*
* @ param array $aTask
* @ return array $aStepTrigger
*/
2016-03-23 23:34:18 -04:00
public function getStepTriggerRows ( $aTask )
2012-10-22 15:45:47 -04:00
{
try {
2016-03-23 23:34:18 -04:00
$aInTasks = array ();
2012-10-22 15:45:47 -04:00
foreach ( $aTask as $key => $val ) {
$aInTasks [] = $val [ 'TAS_UID' ];
}
2016-03-23 23:34:18 -04:00
$aTrigger = array ();
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> add ( StepTriggerPeer :: TAS_UID , $aInTasks , Criteria :: IN );
$oDataset = StepTriggerPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-22 15:45:47 -04:00
$oDataset -> next ();
2016-03-23 23:34:18 -04:00
$aStepTrigger = array ();
2012-10-22 15:45:47 -04:00
while ( $aRow = $oDataset -> getRow ()) {
$aStepTrigger [] = $aRow ;
$oDataset -> next ();
}
return $aStepTrigger ;
} catch ( Exception $oError ) {
throw ( $oError );
}
}
/**
* Get Step Trigger Rows for a Process form an array
*
* @ param array $aTask
* @ return array $aStepTrigger
*/
2016-03-23 23:34:18 -04:00
public function getTriggerRows ( $sProUid )
2012-10-22 15:45:47 -04:00
{
try {
2016-03-23 23:34:18 -04:00
$aTrigger = array ();
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> add ( TriggersPeer :: PRO_UID , $sProUid );
$oDataset = TriggersPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-22 15:45:47 -04:00
$oDataset -> next ();
while ( $aRow = $oDataset -> getRow ()) {
$oTrigger = new Triggers ();
2016-03-23 23:34:18 -04:00
$aTrigger [] = $oTrigger -> Load ( $aRow [ 'TRI_UID' ]);
2012-10-22 15:45:47 -04:00
$oDataset -> next ();
}
return $aTrigger ;
} catch ( Exception $oError ) {
throw ( $oError );
}
}
/**
* Create Step Trigger Rows for a Process form an array
*
* @ param array $aTrigger
* @ return void
*/
2016-03-23 23:34:18 -04:00
public function createTriggerRows ( $aTrigger )
2012-10-22 15:45:47 -04:00
{
foreach ( $aTrigger as $key => $row ) {
$oTrigger = new Triggers ();
2012-10-09 13:01:32 -04:00
//unset ($row['TAS_UID']);
2016-03-23 23:34:18 -04:00
if ( $oTrigger -> TriggerExists ( $row [ 'TRI_UID' ])) {
$oTrigger -> remove ( $row [ 'TRI_UID' ]);
2012-10-22 15:45:47 -04:00
}
2016-03-23 23:34:18 -04:00
$res = $oTrigger -> create ( $row );
2012-10-22 15:45:47 -04:00
}
return ;
}
2016-03-22 14:55:47 -04:00
/**
* @ param $aTrigger
2016-03-22 16:13:41 -04:00
* @ throws Exception
2016-03-22 14:55:47 -04:00
*/
2016-03-22 16:13:41 -04:00
public function updateTriggerRows ( $aTrigger )
2016-03-22 14:55:47 -04:00
{
2016-03-23 23:28:40 -04:00
$oTrigger = new Triggers ();
2016-03-22 16:13:41 -04:00
foreach ( $aTrigger as $key => $row ) {
if ( $oTrigger -> TriggerExists ( $row [ 'TRI_UID' ])) {
$oTrigger -> update ( $row );
} else {
$oTrigger -> create ( $row );
}
}
2016-03-22 14:55:47 -04:00
}
2016-03-28 14:48:33 -04:00
/**
* @ param $aTrigger
* @ throws Exception
*/
public function addNewTriggerRows ( $aTrigger )
{
foreach ( $aTrigger as $key => $row ) {
2016-03-29 14:33:55 -04:00
$oTrigger = new Triggers ();
2016-03-28 14:48:33 -04:00
if ( ! $oTrigger -> TriggerExists ( $row [ 'TRI_UID' ])) {
$oTrigger -> create ( $row );
}
}
}
2012-10-22 15:45:47 -04:00
/**
* Get Groupwf Rows for a Process form an array
*
* @ param array $aGroups
* @ return array $aGroupwf
*/
2016-03-23 23:34:18 -04:00
public function getGroupwfRows ( $aGroups )
2012-10-22 15:45:47 -04:00
{
try {
2016-03-23 23:34:18 -04:00
$aInGroups = array ();
2012-10-22 15:45:47 -04:00
foreach ( $aGroups as $key => $val ) {
$aInGroups [] = $val [ 'USR_UID' ];
}
2016-03-23 23:34:18 -04:00
$aGroupwf = array ();
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> add ( GroupwfPeer :: GRP_UID , $aInGroups , Criteria :: IN );
$oDataset = GroupwfPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-22 15:45:47 -04:00
$oDataset -> next ();
while ( $aRow = $oDataset -> getRow ()) {
$oGroupwf = new Groupwf ();
2016-03-23 23:34:18 -04:00
$aGroupwf [] = $oGroupwf -> Load ( $aRow [ 'GRP_UID' ]);
2012-10-22 15:45:47 -04:00
$oDataset -> next ();
}
2012-12-17 14:38:07 -04:00
2012-10-22 15:45:47 -04:00
return $aGroupwf ;
} catch ( Exception $oError ) {
throw ( $oError );
}
}
/**
* Get DB Connections Rows for a Process
*
* @ param array $sProUid
* @ return array $aConnections
*/
2016-03-23 23:34:18 -04:00
public function getDBConnectionsRows ( $sProUid )
2012-10-22 15:45:47 -04:00
{
try {
2016-03-23 23:34:18 -04:00
$aConnections = array ();
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> add ( DbSourcePeer :: PRO_UID , $sProUid );
$oDataset = DbSourcePeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-22 15:45:47 -04:00
$oDataset -> next ();
while ( $aRow = $oDataset -> getRow ()) {
$oConnection = new DbSource ();
2016-03-23 23:34:18 -04:00
$aConnections [] = $oConnection -> Load ( $aRow [ 'DBS_UID' ], $aRow [ 'PRO_UID' ]);
2012-10-22 15:45:47 -04:00
$oDataset -> next ();
}
return $aConnections ;
} catch ( Exception $oError ) {
throw $oError ;
}
}
/**
* Get Step Supervisor Rows for a Process form an array
*
* @ param array $sProUid
* @ return array $aStepSup
*/
2016-03-23 23:34:18 -04:00
public function getStepSupervisorRows ( $sProUid )
2012-10-22 15:45:47 -04:00
{
try {
2016-03-23 23:34:18 -04:00
$aConnections = array ();
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> add ( StepSupervisorPeer :: PRO_UID , $sProUid );
$oDataset = StepSupervisorPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-22 15:45:47 -04:00
$oDataset -> next ();
2016-03-23 23:34:18 -04:00
$aStepSup = array ();
2012-10-22 15:45:47 -04:00
while ( $aRow = $oDataset -> getRow ()) {
$aStepSup [] = $aRow ;
$oDataset -> next ();
}
return $aStepSup ;
} catch ( Exception $oError ) {
throw $oError ;
}
}
/**
* Get Report Tables Rows for a Process form an array
*
* @ param array $aTask
* @ return array $aReps
*/
2016-03-23 23:34:18 -04:00
public function getReportTablesRows ( $sProUid )
2012-10-22 15:45:47 -04:00
{
try {
2016-03-23 23:34:18 -04:00
$aReps = array ();
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> add ( ReportTablePeer :: PRO_UID , $sProUid );
$oDataset = ReportTablePeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-22 15:45:47 -04:00
$oDataset -> next ();
while ( $aRow = $oDataset -> getRow ()) {
$oRep = new ReportTable ();
2016-03-23 23:34:18 -04:00
$aReps [] = $oRep -> load ( $aRow [ 'REP_TAB_UID' ]);
2012-10-22 15:45:47 -04:00
$oDataset -> next ();
}
return $aReps ;
} catch ( Exception $oError ) {
throw $oError ;
}
}
2016-03-28 14:27:18 -04:00
/**
* @ param $sProUid
* @ return mixed
* @ throws Exception
*/
public function getReportTables ( $sProUid )
{
try {
$additionalTables = new AdditionalTables ();
$getalldditionalTables = $additionalTables -> getReportTables ( $sProUid );
return $getalldditionalTables ;
} catch ( Exception $oError ) {
throw $oError ;
}
}
/**
* @ param $sProUid
* @ return mixed
* @ throws Exception
*/
public function getReportTablesVar ( $sProUid )
{
try {
$fieldsReportTables = array ();
$additionalTables = new AdditionalTables ();
$getalldditionalTables = $additionalTables -> getReportTables ( $sProUid );
foreach ( $getalldditionalTables as $row ) {
2016-03-31 19:12:53 -04:00
$additionalTables = new AdditionalTables ();
2016-03-28 14:27:18 -04:00
$additionalTables -> setAddTabUid ( $row [ 'ADD_TAB_UID' ]);
$fieldsAdditionalTables = $additionalTables -> getFields ();
foreach ( $fieldsAdditionalTables as $rowField ) {
$rowField [ 'ADD_TAB_UID' ] = $row [ 'ADD_TAB_UID' ];
array_push ( $fieldsReportTables , $rowField );
}
}
return $fieldsReportTables ;
} catch ( Exception $oError ) {
throw $oError ;
}
}
2012-10-22 15:45:47 -04:00
/**
* Get Report Tables Vars Rows for a Process
*
* @ param string $sProUid
* @ return array $aRepVars
*/
2016-03-23 23:34:18 -04:00
public function getReportTablesVarsRows ( $sProUid )
2012-10-22 15:45:47 -04:00
{
try {
2016-03-23 23:34:18 -04:00
$aRepVars = array ();
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> add ( ReportVarPeer :: PRO_UID , $sProUid );
$oDataset = ReportVarPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-22 15:45:47 -04:00
$oDataset -> next ();
while ( $aRow = $oDataset -> getRow ()) {
$oRepVar = new ReportVar ();
2016-03-23 23:34:18 -04:00
$aRepVars [] = $oRepVar -> load ( $aRow [ 'REP_VAR_UID' ]);
2012-10-22 15:45:47 -04:00
$oDataset -> next ();
}
return $aRepVars ;
} catch ( Exception $oError ) {
throw $oError ;
}
}
/**
* Get Task User Rows for a Process
*
* @ param array $aTask
* @ return array $aStepTrigger
*/
2016-03-23 23:34:18 -04:00
public function getTaskUserRows ( $aTask )
2012-10-22 15:45:47 -04:00
{
try {
2016-03-23 23:34:18 -04:00
$aInTasks = array ();
2012-10-22 15:45:47 -04:00
foreach ( $aTask as $key => $val ) {
$aInTasks [] = $val [ 'TAS_UID' ];
}
2016-03-23 23:34:18 -04:00
$aTaskUser = array ();
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> add ( TaskUserPeer :: TAS_UID , $aInTasks , Criteria :: IN );
$oCriteria -> add ( TaskUserPeer :: TU_RELATION , 2 );
$oDataset = TaskUserPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-22 15:45:47 -04:00
$oDataset -> next ();
while ( $aRow = $oDataset -> getRow ()) {
2016-03-23 23:34:18 -04:00
$oCriteria2 = new Criteria ( 'workflow' );
2012-10-22 15:45:47 -04:00
$oCriteria2 -> clearSelectColumns ();
2016-03-23 23:34:18 -04:00
$oCriteria2 -> addSelectColumn ( 'COUNT(*)' );
$oCriteria2 -> add ( GroupwfPeer :: GRP_UID , $aRow [ 'USR_UID' ]);
$oCriteria2 -> add ( GroupwfPeer :: GRP_STATUS , 'ACTIVE' );
$oDataset2 = GroupwfPeer :: doSelectRS ( $oCriteria2 );
2012-10-09 13:01:32 -04:00
//$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
2012-10-22 15:45:47 -04:00
$oDataset2 -> next ();
$aRow2 = $oDataset2 -> getRow ();
$bActiveGroup = $aRow2 [ 0 ];
if ( $bActiveGroup == 1 ) {
$aTaskUser [] = $aRow ;
}
$oDataset -> next ();
}
return $aTaskUser ;
} catch ( Exception $oError ) {
throw ( $oError );
}
}
2014-07-22 16:57:24 -04:00
/**
* Get " Process Variables " records of a Process Variables
*
* @ param string $processUid Unique id of Process
*
* return array Return an array with all " Process Variables "
*/
2016-03-23 23:34:18 -04:00
public function getProcessVariables ( $sProUid )
2014-07-22 16:57:24 -04:00
{
try {
2016-03-23 23:34:18 -04:00
$aVars = array ();
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> add ( ProcessVariablesPeer :: PRJ_UID , $sProUid );
$oDataset = ProcessVariablesPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2014-07-22 16:57:24 -04:00
$oDataset -> next ();
while ( $aRow = $oDataset -> getRow ()) {
$aVars [] = $aRow ;
$oDataset -> next ();
}
return $aVars ;
} catch ( Exception $oError ) {
throw $oError ;
}
}
2014-05-14 10:26:45 -04:00
/**
* Get " Process User " ( Groups ) records of a Process
*
* @ param string $processUid Unique id of Process
*
* return array Return an array with all " Process User " ( Groups )
*/
public function getProcessUser ( $processUid )
{
try {
$arrayProcessUser = array ();
//Get data
$criteria = new Criteria ( " workflow " );
$criteria -> add ( ProcessUserPeer :: PRO_UID , $processUid , Criteria :: EQUAL );
$criteria -> add ( ProcessUserPeer :: PU_TYPE , " GROUP_SUPERVISOR " , Criteria :: EQUAL );
$rsCriteria = ProcessUserPeer :: doSelectRS ( $criteria );
$rsCriteria -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
while ( $rsCriteria -> next ()) {
$row = $rsCriteria -> getRow ();
//Verify group status
$criteria2 = new Criteria ( " workflow " );
$criteria2 -> add ( GroupwfPeer :: GRP_UID , $row [ " USR_UID " ], Criteria :: EQUAL );
$criteria2 -> add ( GroupwfPeer :: GRP_STATUS , " ACTIVE " , Criteria :: EQUAL );
$rsCriteria2 = GroupwfPeer :: doSelectRS ( $criteria2 );
if ( $rsCriteria2 -> next ()) {
$arrayProcessUser [] = $row ;
}
}
//Return
return $arrayProcessUser ;
} catch ( Exception $e ) {
throw $e ;
}
}
2015-01-22 15:27:35 -04:00
/**
* Get all WebEntry records of a Process
*
* @ param string $processUid Unique id of Process
*
* return array Return an array with all WebEntry records of a Process
*/
public function getWebEntries ( $processUid )
{
try {
$arrayWebEntry = array ();
$webEntry = new \ProcessMaker\BusinessModel\WebEntry ();
//Get UIDs to exclude
$arrayWebEntryUidToExclude = array ();
$criteria = new Criteria ( " workflow " );
$criteria -> setDistinct ();
$criteria -> addSelectColumn ( WebEntryEventPeer :: WEE_WE_UID );
$criteria -> add ( WebEntryEventPeer :: PRJ_UID , $processUid , Criteria :: EQUAL );
$rsCriteria = WebEntryEventPeer :: doSelectRS ( $criteria );
$rsCriteria -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
while ( $rsCriteria -> next ()) {
$row = $rsCriteria -> getRow ();
$arrayWebEntryUidToExclude [] = $row [ " WEE_WE_UID " ];
}
//Get data
$criteria = new Criteria ( " workflow " );
$criteria -> addSelectColumn ( WebEntryPeer :: WE_UID );
$criteria -> add ( WebEntryPeer :: PRO_UID , $processUid , Criteria :: EQUAL );
$criteria -> add ( WebEntryPeer :: WE_UID , $arrayWebEntryUidToExclude , Criteria :: NOT_IN );
$rsCriteria = WebEntryPeer :: doSelectRS ( $criteria );
$rsCriteria -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
while ( $rsCriteria -> next ()) {
$row = $rsCriteria -> getRow ();
$arrayWebEntry [] = $webEntry -> getWebEntry ( $row [ " WE_UID " ], true );
}
//Return
return $arrayWebEntry ;
} catch ( Exception $e ) {
throw $e ;
}
}
/**
* Get all WebEntry - Event records of a Process
*
* @ param string $processUid Unique id of Process
*
* return array Return an array with all WebEntry - Event records of a Process
*/
public function getWebEntryEvents ( $processUid )
{
try {
$arrayWebEntryEvent = array ();
$webEntryEvent = new \ProcessMaker\BusinessModel\WebEntryEvent ();
//Get data
$criteria = new Criteria ( " workflow " );
$criteria -> addSelectColumn ( WebEntryEventPeer :: WEE_UID );
$criteria -> add ( WebEntryEventPeer :: PRJ_UID , $processUid , Criteria :: EQUAL );
$rsCriteria = WebEntryEventPeer :: doSelectRS ( $criteria );
$rsCriteria -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
while ( $rsCriteria -> next ()) {
$row = $rsCriteria -> getRow ();
$arrayWebEntryEvent [] = $webEntryEvent -> getWebEntryEvent ( $row [ " WEE_UID " ], true );
}
//Return
return $arrayWebEntryEvent ;
} catch ( Exception $e ) {
throw $e ;
}
}
2015-02-04 17:18:32 -04:00
public function getMessageTypes ( $processUid )
{
try {
$arrayMessageType = array ();
$messageType = new \ProcessMaker\BusinessModel\MessageType ();
//Get data
$criteria = new Criteria ( " workflow " );
$criteria -> addSelectColumn ( MessageTypePeer :: MSGT_UID );
$criteria -> add ( MessageTypePeer :: PRJ_UID , $processUid , Criteria :: EQUAL );
$rsCriteria = MessageTypePeer :: doSelectRS ( $criteria );
$rsCriteria -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
while ( $rsCriteria -> next ()) {
$row = $rsCriteria -> getRow ();
$arrayAux = $messageType -> getMessageType ( $row [ " MSGT_UID " ], true );
unset ( $arrayAux [ " MSGT_VARIABLES " ]);
$arrayMessageType [] = $arrayAux ;
}
//Return
return $arrayMessageType ;
} catch ( Exception $e ) {
throw $e ;
}
}
public function getMessageTypeVariables ( $processUid )
{
try {
$arrayVariable = array ();
$variable = new \ProcessMaker\BusinessModel\MessageType\Variable ();
//Get data
$criteria = new Criteria ( " workflow " );
$criteria -> addSelectColumn ( MessageTypeVariablePeer :: MSGTV_UID );
$criteria -> addJoin ( MessageTypePeer :: MSGT_UID , MessageTypeVariablePeer :: MSGT_UID , Criteria :: LEFT_JOIN );
$criteria -> add ( MessageTypePeer :: PRJ_UID , $processUid , Criteria :: EQUAL );
$rsCriteria = MessageTypeVariablePeer :: doSelectRS ( $criteria );
$rsCriteria -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
while ( $rsCriteria -> next ()) {
$row = $rsCriteria -> getRow ();
$arrayVariable [] = $variable -> getMessageTypeVariable ( $row [ " MSGTV_UID " ], true );
}
//Return
return $arrayVariable ;
} catch ( Exception $e ) {
throw $e ;
}
}
2015-02-20 17:12:49 -04:00
public function getMessageEventDefinitions ( $processUid )
{
try {
$arrayMessageEventDefinition = array ();
$messageEventDefinition = new \ProcessMaker\BusinessModel\MessageEventDefinition ();
//Get data
$criteria = new Criteria ( " workflow " );
$criteria -> addSelectColumn ( MessageEventDefinitionPeer :: MSGED_UID );
$criteria -> add ( MessageEventDefinitionPeer :: PRJ_UID , $processUid , Criteria :: EQUAL );
$rsCriteria = MessageEventDefinitionPeer :: doSelectRS ( $criteria );
$rsCriteria -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
while ( $rsCriteria -> next ()) {
$row = $rsCriteria -> getRow ();
$arrayData = $messageEventDefinition -> getMessageEventDefinition ( $row [ " MSGED_UID " ], true );
$arrayData [ " MSGED_VARIABLES " ] = serialize ( $arrayData [ " MSGED_VARIABLES " ]);
$arrayMessageEventDefinition [] = $arrayData ;
}
//Return
return $arrayMessageEventDefinition ;
} catch ( Exception $e ) {
throw $e ;
}
}
2015-06-30 12:04:53 -04:00
public function getScriptTasks ( $processUid )
{
try {
$arrayScriptTask = array ();
$scriptTask = new \ProcessMaker\BusinessModel\ScriptTask ();
//Get data
$criteria = $scriptTask -> getScriptTaskCriteria ();
$criteria -> add ( \ScriptTaskPeer :: PRJ_UID , $processUid , \Criteria :: EQUAL );
$rsCriteria = \ScriptTaskPeer :: doSelectRS ( $criteria );
$rsCriteria -> setFetchmode ( \ResultSet :: FETCHMODE_ASSOC );
while ( $rsCriteria -> next ()) {
$row = $rsCriteria -> getRow ();
$arrayScriptTask [] = $row ;
}
//Return
return $arrayScriptTask ;
} catch ( Exception $e ) {
throw $e ;
}
}
public function getTimerEvents ( $processUid )
{
try {
$arrayTimerEvent = array ();
$timerEvent = new \ProcessMaker\BusinessModel\TimerEvent ();
//Get data
$criteria = $timerEvent -> getTimerEventCriteria ();
$criteria -> add ( \TimerEventPeer :: PRJ_UID , $processUid , \Criteria :: EQUAL );
$rsCriteria = \TimerEventPeer :: doSelectRS ( $criteria );
$rsCriteria -> setFetchmode ( \ResultSet :: FETCHMODE_ASSOC );
while ( $rsCriteria -> next ()) {
$row = $rsCriteria -> getRow ();
$arrayTimerEvent [] = $row ;
}
//Return
return $arrayTimerEvent ;
} catch ( Exception $e ) {
throw $e ;
}
}
2015-06-25 16:31:04 -04:00
public function getEmailEvent ( $processUid )
{
try {
$arrayEmailEvent = array ();
$emailEvent = new \ProcessMaker\BusinessModel\EmailEvent ();
$criteria = $emailEvent -> getEmailEventCriteria ();
//Get data
$criteria -> add ( EmailEventPeer :: PRJ_UID , $processUid , Criteria :: EQUAL );
$rsCriteria = EmailEventPeer :: doSelectRS ( $criteria );
$rsCriteria -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
$rsCriteria -> next ();
while ( $aRow = $rsCriteria -> getRow ()) {
$arrayEmailEvent [] = $aRow ;
$rsCriteria -> next ();
}
//Return
return $arrayEmailEvent ;
} catch ( Exception $e ) {
throw $e ;
}
}
2016-03-23 23:34:18 -04:00
2015-09-26 12:51:31 -04:00
public function getActionsByEmail ( $processUid )
{
try {
$arrayActionsByEmail = array ();
//Get data
$criteria = new \Criteria ( " workflow " );
$criteria -> add ( AbeConfigurationPeer :: PRO_UID , $processUid , Criteria :: EQUAL );
$rsCriteria = AbeConfigurationPeer :: doSelectRS ( $criteria );
$rsCriteria -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
$rsCriteria -> next ();
while ( $aRow = $rsCriteria -> getRow ()) {
$arrayActionsByEmail [] = $aRow ;
$rsCriteria -> next ();
}
//Return
return $arrayActionsByEmail ;
} catch ( Exception $e ) {
throw $e ;
}
}
2015-06-30 12:04:53 -04:00
2016-11-07 14:44:39 -05:00
public function getElementTaskRelation ( $processUid ){
try {
$arrayElementTask = array ();
//Get data
$criteria = new \Criteria ( " workflow " );
$criteria -> addSelectColumn ( \ElementTaskRelationPeer :: ETR_UID );
$criteria -> addSelectColumn ( \ElementTaskRelationPeer :: PRJ_UID );
$criteria -> addSelectColumn ( \ElementTaskRelationPeer :: ELEMENT_UID );
$criteria -> addSelectColumn ( \ElementTaskRelationPeer :: ELEMENT_TYPE );
$criteria -> addSelectColumn ( \ElementTaskRelationPeer :: TAS_UID );
$criteria -> add ( ElementTaskRelationPeer :: PRJ_UID , $processUid , Criteria :: EQUAL );
$rsCriteria = ElementTaskRelationPeer :: doSelectRS ( $criteria );
$rsCriteria -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
$rsCriteria -> next ();
while ( $aRow = $rsCriteria -> getRow ()) {
$arrayElementTask [] = $aRow ;
$rsCriteria -> next ();
}
//Return
return $arrayElementTask ;
} catch ( Exception $e ) {
throw $e ;
}
}
2016-03-21 12:34:33 -04:00
public function getFilesManager ( $processUid , $template = 'all' )
2015-06-25 16:31:04 -04:00
{
try {
$arrayFilesManager = array ();
//Get data
$criteria = new \Criteria ( " workflow " );
$criteria -> addSelectColumn ( \ProcessFilesPeer :: PRF_UID );
$criteria -> addSelectColumn ( \ProcessFilesPeer :: PRO_UID );
$criteria -> addSelectColumn ( \ProcessFilesPeer :: USR_UID );
$criteria -> addSelectColumn ( \ProcessFilesPeer :: PRF_UPDATE_USR_UID );
$criteria -> addSelectColumn ( \ProcessFilesPeer :: PRF_PATH );
$criteria -> addSelectColumn ( \ProcessFilesPeer :: PRF_TYPE );
$criteria -> addSelectColumn ( \ProcessFilesPeer :: PRF_EDITABLE );
$criteria -> addSelectColumn ( \ProcessFilesPeer :: PRF_CREATE_DATE );
2015-06-30 12:04:53 -04:00
$criteria -> addSelectColumn ( \ProcessFilesPeer :: PRF_UPDATE_DATE );
2015-06-25 16:31:04 -04:00
$criteria -> add ( ProcessFilesPeer :: PRO_UID , $processUid , Criteria :: EQUAL );
2016-03-21 12:34:33 -04:00
if ( $template !== 'all' ) {
2016-03-23 16:25:41 -04:00
if ( $template === 'template' ) {
2016-03-21 12:34:33 -04:00
$criteria -> add ( ProcessFilesPeer :: PRF_EDITABLE , true , Criteria :: EQUAL );
} else {
$criteria -> add ( ProcessFilesPeer :: PRF_EDITABLE , false , Criteria :: EQUAL );
}
}
2015-06-25 16:31:04 -04:00
$rsCriteria = ProcessFilesPeer :: doSelectRS ( $criteria );
$rsCriteria -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
$rsCriteria -> next ();
while ( $aRow = $rsCriteria -> getRow ()) {
2016-05-03 10:48:22 -04:00
$aRow [ 'PRF_PATH' ] = str_replace ( " \\ " , " / " , $aRow [ 'PRF_PATH' ]);
2015-06-25 16:31:04 -04:00
$arrayFilesManager [] = $aRow ;
$rsCriteria -> next ();
}
//Return
return $arrayFilesManager ;
} catch ( Exception $e ) {
throw $e ;
}
}
2015-02-20 17:12:49 -04:00
2012-10-22 15:45:47 -04:00
/**
* Get Task User Rows from an array of data
*
* @ param array $aTaskUser
* @ return array $aStepTrigger
*/
2016-03-23 23:34:18 -04:00
public function createTaskUserRows ( $aTaskUser )
2012-10-22 15:45:47 -04:00
{
2013-04-15 16:10:57 -04:00
if ( is_array ( $aTaskUser )) {
foreach ( $aTaskUser as $key => $row ) {
$oTaskUser = new TaskUser ();
2016-03-23 23:34:18 -04:00
if ( $oTaskUser -> TaskUserExists ( $row [ 'TAS_UID' ], $row [ 'USR_UID' ], $row [ 'TU_TYPE' ], $row [ 'TU_RELATION' ])) {
$oTaskUser -> remove ( $row [ 'TAS_UID' ], $row [ 'USR_UID' ], $row [ 'TU_TYPE' ], $row [ 'TU_RELATION' ]);
2013-04-15 16:10:57 -04:00
}
2016-03-23 23:34:18 -04:00
$res = $oTaskUser -> create ( $row );
2012-10-22 15:45:47 -04:00
}
}
return ;
}
2016-04-01 14:40:34 -04:00
/**
* Get Task User Rows from an array of data
*
* @ param array $aTaskUser
* @ return array $aStepTrigger
*/
public function removeTaskUserRows ( $tasks )
{
foreach ( $tasks as $task ) {
$oCriteria = new \Criteria ( 'workflow' );
$oCriteria -> add ( \TaskUserPeer :: TAS_UID , $task [ 'TAS_UID' ]);
\TaskUserPeer :: doDelete ( $oCriteria );
}
return ;
}
2016-03-28 17:04:52 -04:00
/**
* Get Task User Rows from an array of data
*
* @ param array $aTaskUser
* @ return array $aStepTrigger
*/
public function addNewTaskUserRows ( $aTaskUser )
{
if ( is_array ( $aTaskUser )) {
foreach ( $aTaskUser as $key => $row ) {
$oTaskUser = new TaskUser ();
if ( ! $oTaskUser -> TaskUserExists ( $row [ 'TAS_UID' ], $row [ 'USR_UID' ], $row [ 'TU_TYPE' ], $row [ 'TU_RELATION' ])) {
$res = $oTaskUser -> create ( $row );
}
}
}
return ;
}
2012-10-22 15:45:47 -04:00
/**
* Get Task User Rows from an array of data
*
* @ param array $aTaskUser
* @ return array $aStepTrigger
*/
2016-03-23 23:34:18 -04:00
public function createGroupRow ( $aGroupwf )
2012-10-22 15:45:47 -04:00
{
foreach ( $aGroupwf as $key => $row ) {
$oGroupwf = new Groupwf ();
2016-03-23 23:34:18 -04:00
if ( $oGroupwf -> GroupwfExists ( $row [ 'GRP_UID' ])) {
$oGroupwf -> remove ( $row [ 'GRP_UID' ]);
2012-10-22 15:45:47 -04:00
}
2016-03-23 23:34:18 -04:00
$res = $oGroupwf -> create ( $row );
2012-10-22 15:45:47 -04:00
}
}
2016-03-28 17:04:52 -04:00
/**
* Create User Rows from an array of data if does not exist
*
* @ param array $aGroupwf
* @ return array $res
*/
public function addNewGroupRow ( $aGroupwf )
{
foreach ( $aGroupwf as $key => $row ) {
$oGroupwf = new Groupwf ();
if ( ! $oGroupwf -> GroupwfExists ( $row [ 'GRP_UID' ])) {
$res = $oGroupwf -> create ( $row );
}
}
}
2012-10-22 15:45:47 -04:00
/**
* Create DB Connections rows from an array of data
*
* @ param array $aConnections
* @ return void
*/
2016-03-23 23:34:18 -04:00
public function createDBConnectionsRows ( $aConnections )
2012-10-22 15:45:47 -04:00
{
foreach ( $aConnections as $sKey => $aRow ) {
$oConnection = new DbSource ();
2016-03-23 23:34:18 -04:00
if ( $oConnection -> Exists ( $aRow [ 'DBS_UID' ], $aRow [ 'PRO_UID' ])) {
$oConnection -> remove ( $aRow [ 'DBS_UID' ], $aRow [ 'PRO_UID' ]);
2012-10-22 15:45:47 -04:00
}
2016-03-23 23:34:18 -04:00
$oConnection -> create ( $aRow );
2012-10-22 15:45:47 -04:00
2012-10-09 13:01:32 -04:00
// Update information in the table of contents
2012-10-22 15:45:47 -04:00
$oContent = new Content ();
$ConCategory = 'DBS_DESCRIPTION' ;
$ConParent = '' ;
$ConId = $aRow [ 'DBS_UID' ];
$ConLang = SYS_LANG ;
2016-03-23 23:34:18 -04:00
if ( $oContent -> Exists ( $ConCategory , $ConParent , $ConId , $ConLang )) {
$oContent -> removeContent ( $ConCategory , $ConParent , $ConId );
2012-10-22 15:45:47 -04:00
}
2016-03-23 23:34:18 -04:00
$oContent -> addContent ( $ConCategory , $ConParent , $ConId , $ConLang , $aRow [ 'DBS_DESCRIPTION' ]);
2012-10-22 15:45:47 -04:00
}
2012-10-09 13:01:32 -04:00
} #@!neyek
2012-10-22 15:45:47 -04:00
2016-03-22 14:55:47 -04:00
/**
* @ param $aConnections
*/
2016-03-23 23:34:18 -04:00
public function updateDBConnectionsRows ( $aConnections )
2016-03-22 14:55:47 -04:00
{
2016-03-22 16:05:03 -04:00
try {
2016-03-23 23:28:40 -04:00
$oConnection = new DbSource ();
2016-03-22 16:05:03 -04:00
foreach ( $aConnections as $sKey => $aRow ) {
2016-03-23 23:34:18 -04:00
if ( $oConnection -> Exists ( $aRow [ 'DBS_UID' ], $aRow [ 'PRO_UID' ])) {
$oConnection -> update ( $aRow );
2016-03-22 16:22:00 -04:00
} else {
2016-03-23 23:34:18 -04:00
$oConnection -> create ( $aRow );
2016-03-22 16:05:03 -04:00
}
// Update information in the table of contents
$oContent = new Content ();
$ConCategory = 'DBS_DESCRIPTION' ;
$ConParent = '' ;
$ConId = $aRow [ 'DBS_UID' ];
$ConLang = SYS_LANG ;
2016-03-23 23:34:18 -04:00
if ( $oContent -> Exists ( $ConCategory , $ConParent , $ConId , $ConLang )) {
$oContent -> removeContent ( $ConCategory , $ConParent , $ConId );
2016-03-22 16:05:03 -04:00
}
2016-03-23 23:34:18 -04:00
$oContent -> addContent ( $ConCategory , $ConParent , $ConId , $ConLang , $aRow [ 'DBS_DESCRIPTION' ]);
2016-03-22 16:05:03 -04:00
}
} catch ( Exception $e ) {
throw $e ;
}
2016-03-22 14:55:47 -04:00
}
2016-03-28 14:48:33 -04:00
/**
* Add new Connection rows if the passed ones are not existent
* @ param $aConnections
*/
public function addNewDBConnectionsRows ( $aConnections )
{
try {
foreach ( $aConnections as $sKey => $aRow ) {
2016-03-29 14:33:55 -04:00
$oConnection = new DbSource ();
2016-03-28 14:48:33 -04:00
if ( ! $oConnection -> Exists ( $aRow [ 'DBS_UID' ], $aRow [ 'PRO_UID' ])) {
$oConnection -> create ( $aRow );
}
// Update information in the table of contents
$oContent = new Content ();
$ConCategory = 'DBS_DESCRIPTION' ;
$ConParent = '' ;
$ConId = $aRow [ 'DBS_UID' ];
$ConLang = SYS_LANG ;
if ( $oContent -> Exists ( $ConCategory , $ConParent , $ConId , $ConLang )) {
$oContent -> removeContent ( $ConCategory , $ConParent , $ConId );
}
$oContent -> addContent ( $ConCategory , $ConParent , $ConId , $ConLang , $aRow [ 'DBS_DESCRIPTION' ]);
}
} catch ( Exception $e ) {
throw $e ;
}
}
2012-10-22 15:45:47 -04:00
/**
* Create Report Tables from an array of data
*
* @ param array $aReportTables
* @ param array $aReportTablesVars
* @ return void
*/
2016-03-23 23:34:18 -04:00
public function createReportTables ( $aReportTables , $aReportTablesVars )
2012-10-22 15:45:47 -04:00
{
2016-03-23 23:34:18 -04:00
$this -> createReportTablesVars ( $aReportTablesVars );
2012-10-22 15:45:47 -04:00
$oReportTables = new ReportTables ();
foreach ( $aReportTables as $sKey => $aRow ) {
$bExists = true ;
$sTable = $aRow [ 'REP_TAB_NAME' ];
$iCounter = 1 ;
while ( $bExists ) {
2016-03-23 23:34:18 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> add ( ReportTablePeer :: REP_TAB_NAME , $sTable );
$oDataset = ReportTablePeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-22 15:45:47 -04:00
$oDataset -> next ();
$bExists = ( $aRow2 = $oDataset -> getRow ());
if ( $bExists ) {
$sTable = $aRow [ 'REP_TAB_NAME' ] . '_' . $iCounter ;
2016-03-23 23:34:18 -04:00
$iCounter ++ ;
2012-10-22 15:45:47 -04:00
} else {
$aRow [ 'REP_TAB_NAME' ] = $sTable ;
}
}
2016-03-23 23:34:18 -04:00
$aFields = $oReportTables -> getTableVars ( $aRow [ 'REP_TAB_UID' ], true );
$oReportTables -> createTable ( $aRow [ 'REP_TAB_NAME' ], $aRow [ 'REP_TAB_CONNECTION' ], $aRow [ 'REP_TAB_TYPE' ], $aFields );
$oReportTables -> populateTable ( $aRow [ 'REP_TAB_NAME' ], $aRow [ 'REP_TAB_CONNECTION' ], $aRow [ 'REP_TAB_TYPE' ], $aFields , $aRow [ 'PRO_UID' ], $aRow [ 'REP_TAB_GRID' ]);
2012-10-22 15:45:47 -04:00
$aReportTables [ $sKey ][ 'REP_TAB_NAME' ] = $aRow [ 'REP_TAB_NAME' ];
$oRep = new ReportTable ();
2016-03-23 23:34:18 -04:00
if ( $oRep -> reportTableExists ( $aRow [ 'REP_TAB_UID' ])) {
$oRep -> remove ( $aRow [ 'REP_TAB_UID' ]);
2012-10-22 15:45:47 -04:00
}
2016-03-23 23:34:18 -04:00
$oRep -> create ( $aRow );
2012-10-22 15:45:47 -04:00
}
}
2016-03-23 23:28:40 -04:00
#@!neyekj
2012-10-22 15:45:47 -04:00
/**
* Update Report Tables from an array of data
*
* @ param array $aReportTables
* @ param array $aReportTablesVars
* @ return void
*/
2016-03-23 23:34:18 -04:00
public function updateReportTables ( $aReportTables , $aReportTablesVars )
2012-10-22 15:45:47 -04:00
{
2016-03-23 23:34:18 -04:00
$this -> cleanupReportTablesReferences ( $aReportTables );
$this -> createReportTables ( $aReportTables , $aReportTablesVars );
2012-10-09 13:01:32 -04:00
} #@!neyek
2012-10-22 15:45:47 -04:00
/**
* Create Report Tables Vars from an array of data
*
* @ param array $aReportTablesVars
* @ return void
*/
2016-03-23 23:34:18 -04:00
public function createReportTablesVars ( $aReportTablesVars )
2012-10-22 15:45:47 -04:00
{
foreach ( $aReportTablesVars as $sKey => $aRow ) {
$oRep = new ReportVar ();
2016-03-23 23:34:18 -04:00
if ( $oRep -> reportVarExists ( $aRow [ 'REP_VAR_UID' ])) {
$oRep -> remove ( $aRow [ 'REP_VAR_UID' ]);
2012-10-22 15:45:47 -04:00
}
2016-03-23 23:34:18 -04:00
$oRep -> create ( $aRow );
2012-10-22 15:45:47 -04:00
}
2012-10-09 13:01:32 -04:00
} #@!neyek
2012-10-22 15:45:47 -04:00
2015-01-22 15:27:35 -04:00
/**
* Create WebEntry records
*
2016-03-23 23:34:18 -04:00
* @ param string $processUid Unique id of Process
2015-01-22 15:27:35 -04:00
* @ param string $userUidCreator Unique id of creator User
2016-03-23 23:34:18 -04:00
* @ param array $arrayData Data
2015-01-22 15:27:35 -04:00
*
* return void
*/
public function createWebEntry ( $processUid , $userUidCreator , array $arrayData )
{
try {
$webEntry = new \ProcessMaker\BusinessModel\WebEntry ();
foreach ( $arrayData as $value ) {
$record = $value ;
2017-03-09 18:24:34 -04:00
//This $record["WE_TITLE"] value only exists for bpmn projects, because
//it is saving the value in the 'CONTENT' table when creating the
//web entry from the designer. A classic process uses the methods
//of bpmn to be able to perform the import of the web entry so this
//value is required, since for the classics the name of the dynaform
//is used as filename, this value is filled with this option.
if ( empty ( $record [ " WE_TITLE " ])) {
$fileName = $record [ " WE_DATA " ];
$name = pathinfo ( $fileName , PATHINFO_FILENAME );
$record [ " WE_TITLE " ] = $name ;
}
//The false parameter is sent in order to prevent the WebEntry::create
//method from performing integrity validation with tasks and users
//assigned to the task and other tables related to web entry
$arrayWebEntryData = $webEntry -> create ( $processUid , $userUidCreator , $record , false );
2015-01-22 15:27:35 -04:00
}
} catch ( Exception $e ) {
2015-06-30 12:04:53 -04:00
throw $e ;
2015-01-22 15:27:35 -04:00
}
}
/**
* Create WebEntry - Event records
*
2016-03-23 23:34:18 -04:00
* @ param string $processUid Unique id of Process
2015-01-22 15:27:35 -04:00
* @ param string $userUidCreator Unique id of creator User
2016-03-23 23:34:18 -04:00
* @ param array $arrayData Data
2015-01-22 15:27:35 -04:00
*
* return void
*/
public function createWebEntryEvent ( $processUid , $userUidCreator , array $arrayData )
{
try {
$webEntryEvent = new \ProcessMaker\BusinessModel\WebEntryEvent ();
foreach ( $arrayData as $value ) {
$record = $value ;
$arrayWebEntryEventData = $webEntryEvent -> create ( $processUid , $userUidCreator , $record );
}
} catch ( Exception $e ) {
2015-06-30 12:04:53 -04:00
throw $e ;
2015-01-22 15:27:35 -04:00
}
}
2012-10-22 15:45:47 -04:00
2015-02-04 17:18:32 -04:00
/**
* Create Message - Type records
*
* @ param array $arrayData Data
*
* return void
*/
public function createMessageType ( array $arrayData )
{
try {
$messageType = new \ProcessMaker\BusinessModel\MessageType ();
foreach ( $arrayData as $value ) {
$record = $value ;
if ( $messageType -> exists ( $record [ " MSGT_UID " ])) {
$messageType -> delete ( $record [ " MSGT_UID " ]);
}
$result = $messageType -> singleCreate ( $record );
}
} catch ( Exception $e ) {
throw $e ;
}
}
/**
* Create Message - Type - Variable records
*
* @ param array $arrayData Data
*
* return void
*/
public function createMessageTypeVariable ( array $arrayData )
{
try {
$variable = new \ProcessMaker\BusinessModel\MessageType\Variable ();
foreach ( $arrayData as $value ) {
$record = $value ;
if ( $variable -> exists ( $record [ " MSGTV_UID " ])) {
$variable -> delete ( $record [ " MSGTV_UID " ]);
}
$result = $variable -> singleCreate ( $record );
}
} catch ( Exception $e ) {
throw $e ;
}
}
2015-02-20 17:12:49 -04:00
/**
* Create Message - Event - Definition records
*
* @ param string $processUid Unique id of Process
2016-03-23 23:34:18 -04:00
* @ param array $arrayData Data
2015-02-20 17:12:49 -04:00
*
* return void
*/
public function createMessageEventDefinition ( $processUid , array $arrayData )
{
try {
$messageEventDefinition = new \ProcessMaker\BusinessModel\MessageEventDefinition ();
foreach ( $arrayData as $value ) {
$record = $value ;
$record [ " MSGED_VARIABLES " ] = unserialize ( $record [ " MSGED_VARIABLES " ]);
$arrayMessageEventDefinitionData = $messageEventDefinition -> create ( $processUid , $record , false );
}
} catch ( Exception $e ) {
throw $e ;
}
}
2015-06-30 12:04:53 -04:00
2015-06-25 16:31:04 -04:00
/**
2015-06-30 12:04:53 -04:00
* Create Script - Task records
2015-06-25 16:31:04 -04:00
*
* @ param string $processUid Unique id of Process
2016-03-23 23:34:18 -04:00
* @ param array $arrayData Data
2015-06-25 16:31:04 -04:00
*
* return void
*/
2015-06-30 12:04:53 -04:00
public function createScriptTask ( $processUid , array $arrayData )
2015-06-25 16:31:04 -04:00
{
try {
2015-06-30 12:04:53 -04:00
$scriptTask = new \ProcessMaker\BusinessModel\ScriptTask ();
2015-06-25 16:31:04 -04:00
foreach ( $arrayData as $value ) {
2015-06-30 12:04:53 -04:00
$record = $value ;
2016-08-01 12:17:04 -04:00
try {
$result = $scriptTask -> create ( $processUid , $record );
} catch ( Exception $e ) {
2016-08-18 17:23:40 -04:00
Bootstrap :: registerMonolog ( 'DataError' , 400 , $e -> getMessage (), $record , SYS_SYS , 'processmaker.log' );
2016-08-01 12:17:04 -04:00
}
2015-06-25 16:31:04 -04:00
}
} catch ( Exception $e ) {
throw $e ;
}
}
2015-06-30 12:04:53 -04:00
2015-06-25 16:31:04 -04:00
/**
2015-06-30 12:04:53 -04:00
* Create Timer - Event records
2015-06-25 16:31:04 -04:00
*
* @ param string $processUid Unique id of Process
2016-03-23 23:34:18 -04:00
* @ param array $arrayData Data
2015-06-25 16:31:04 -04:00
*
* return void
*/
2015-06-30 12:04:53 -04:00
public function createTimerEvent ( $processUid , array $arrayData )
2015-06-25 16:31:04 -04:00
{
try {
2015-06-30 12:04:53 -04:00
$timerEvent = new \ProcessMaker\BusinessModel\TimerEvent ();
2015-06-25 16:31:04 -04:00
foreach ( $arrayData as $value ) {
2015-06-30 12:04:53 -04:00
$record = $value ;
$result = $timerEvent -> singleCreate ( $processUid , $record );
2015-06-25 16:31:04 -04:00
}
} catch ( Exception $e ) {
throw $e ;
}
}
2015-02-20 17:12:49 -04:00
2015-06-24 18:28:20 -04:00
/**
2015-06-30 12:04:53 -04:00
* Create Email - Event records
2015-06-24 18:28:20 -04:00
*
* @ param string $processUid Unique id of Process
2016-03-23 23:34:18 -04:00
* @ param array $arrayData Data
2015-06-24 18:28:20 -04:00
*
* return void
*/
2015-06-30 12:04:53 -04:00
public function createEmailEvent ( $processUid , array $arrayData )
2015-06-24 18:28:20 -04:00
{
try {
2015-06-30 12:04:53 -04:00
$emailEvent = new \ProcessMaker\BusinessModel\EmailEvent ();
2015-06-24 18:28:20 -04:00
2016-07-27 16:41:48 -04:00
$emailServer = new \ProcessMaker\BusinessModel\EmailServer ();
$arrayEmailServerDefault = $emailServer -> getEmailServerDefault ();
2015-06-24 18:28:20 -04:00
foreach ( $arrayData as $value ) {
2016-07-27 16:41:48 -04:00
unset ( $value [ 'EMAIL_EVENT_FROM' ]);
2016-08-17 16:27:32 -04:00
unset ( $value [ 'EMAIL_SERVER_UID' ]);
2016-07-27 16:41:48 -04:00
if ( ! empty ( $arrayEmailServerDefault )) {
$value [ 'EMAIL_EVENT_FROM' ] = $arrayEmailServerDefault [ 'MESS_ACCOUNT' ];
2016-08-17 16:27:32 -04:00
$value [ 'EMAIL_SERVER_UID' ] = $arrayEmailServerDefault [ 'MESS_UID' ];
2016-07-27 16:41:48 -04:00
}
2015-06-30 12:04:53 -04:00
$emailEventData = $emailEvent -> save ( $processUid , $value );
}
} catch ( Exception $e ) {
throw $e ;
}
}
2016-03-23 23:34:18 -04:00
2015-09-26 12:51:31 -04:00
/**
* Create Actions by email records
*
* @ param string $processUid Unique id of Process
2016-03-23 23:34:18 -04:00
* @ param array $arrayData Data
2015-09-26 12:51:31 -04:00
*
* return void
*/
public function createActionsByEmail ( $processUid , array $arrayData )
{
try {
require_once 'classes/model/AbeConfiguration.php' ;
$abeConfigurationInstance = new AbeConfiguration ();
foreach ( $arrayData as $value ) {
$value [ 'ABE_UID' ] = " " ;
2016-11-09 10:53:04 -05:00
if ( array_key_exists ( 'ABE_CUSTOM_GRID' , $value )) {
$value [ 'ABE_CUSTOM_GRID' ] = unserialize ( $value [ 'ABE_CUSTOM_GRID' ]);
}
2015-09-26 12:51:31 -04:00
$abeConfigurationInstance -> createOrUpdate ( $value );
}
} catch ( Exception $e ) {
throw $e ;
}
}
2015-06-24 18:28:20 -04:00
2015-06-30 12:04:53 -04:00
/**
* Create Files Manager records
*
* @ param string $processUid Unique id of Process
2016-03-23 23:34:18 -04:00
* @ param array $arrayData Data
2015-06-30 12:04:53 -04:00
*
* return void
*/
public function createFilesManager ( $processUid , array $arrayData )
{
try {
$filesManager = new \ProcessMaker\BusinessModel\FilesManager ();
foreach ( $arrayData as $value ) {
2016-05-04 16:34:40 -04:00
$value [ 'PRF_PATH' ] = str_replace ( " \\ " , " / " , $value [ 'PRF_PATH' ]);
2015-06-30 12:04:53 -04:00
$filesManager -> addProcessFilesManagerInDb ( $value );
2015-06-24 18:28:20 -04:00
}
} catch ( Exception $e ) {
2015-06-30 12:04:53 -04:00
throw $e ;
2015-06-24 18:28:20 -04:00
}
}
2016-03-22 14:55:47 -04:00
/**
* @ param array $arrayData
2016-03-22 16:13:41 -04:00
* @ throws Exception
2016-03-22 14:55:47 -04:00
*/
2016-03-22 16:32:33 -04:00
public function updateFilesManager ( $processUid , array $arrayData )
2016-03-22 14:55:47 -04:00
{
2016-03-22 16:13:41 -04:00
try {
$filesManager = new \ProcessMaker\BusinessModel\FilesManager ();
2016-03-22 14:55:47 -04:00
2016-03-22 16:13:41 -04:00
foreach ( $arrayData as $value ) {
$filesManager -> updateProcessFilesManagerInDb ( $value );
}
} catch ( Exception $e ) {
throw $e ;
}
2016-03-22 14:55:47 -04:00
}
2016-03-28 14:48:33 -04:00
/**
* @ param array $arrayData
* @ throws Exception
*/
public function addNewFilesManager ( $processUid , array $arrayData )
{
try {
foreach ( $arrayData as $value ) {
2016-03-29 14:33:55 -04:00
$filesManager = new \ProcessMaker\BusinessModel\FilesManager ();
2016-03-28 14:48:33 -04:00
if ( ! $filesManager -> existsProcessFile ( $value [ 'PRF_UID' ])) {
$filesManager -> addProcessFilesManagerInDb ( $value );
}
}
} catch ( Exception $e ) {
throw $e ;
}
}
2012-10-22 15:45:47 -04:00
/**
* Cleanup Report Tables References from an array of data
*
* @ param array $aReportTables
* @ return void
*/
2016-03-23 23:34:18 -04:00
public function cleanupReportTablesReferences ( $aReportTables )
2012-10-22 15:45:47 -04:00
{
foreach ( $aReportTables as $sKey => $aRow ) {
$oReportTables = new ReportTables ();
2016-03-23 23:34:18 -04:00
$oReportTables -> deleteReportTable ( $aRow [ 'REP_TAB_UID' ]);
$oReportTables -> deleteAllReportVars ( $aRow [ 'REP_TAB_UID' ]);
$oReportTables -> dropTable ( $aRow [ 'REP_TAB_NAME' ]);
2012-10-22 15:45:47 -04:00
}
2012-10-09 13:01:32 -04:00
} #@!neyek
2012-10-22 15:45:47 -04:00
2014-05-14 10:26:45 -04:00
/**
* Merge groupwfs data
*
2016-03-23 23:34:18 -04:00
* @ param array $arrayGroupwfsData Data groupwfs
* @ param array $arrayData Data for merge
2014-05-14 10:26:45 -04:00
* @ param string $groupUidFieldNameInArrayData Field name of unique id
*
* return array Return an array with all groupwfs data
*/
public function groupwfsMerge ( array $arrayGroupwfsData , array $arrayData , $groupUidFieldNameInArrayData = " GRP_UID " )
{
try {
$arrayUid = array ();
foreach ( $arrayGroupwfsData as $value ) {
$record = $value ;
$arrayUid [] = $record [ " GRP_UID " ];
}
//Merge
$groupwf = new Groupwf ();
foreach ( $arrayData as $value ) {
$record = $value ;
if ( isset ( $record [ $groupUidFieldNameInArrayData ]) && ! in_array ( $record [ $groupUidFieldNameInArrayData ], $arrayUid )) {
$arrayGroupwfsData [] = $groupwf -> Load ( $record [ $groupUidFieldNameInArrayData ]);
}
}
//Return
return $arrayGroupwfsData ;
} catch ( Exception $e ) {
throw $e ;
}
}
/**
* Update unique ids in groupwfs data by database
*
* @ param object $data Data
*
* return object Return data
*/
public function groupwfsUpdateUidByDatabase ( $data )
{
try {
//Get Groupwf of database
$arrayGroupwf = array ();
$criteria = new Criteria ( " workflow " );
$criteria -> addSelectColumn ( GroupwfPeer :: GRP_UID );
2016-06-16 16:23:42 -04:00
$criteria -> addSelectColumn ( GroupwfPeer :: GRP_TITLE );
2014-05-14 10:26:45 -04:00
$rsCriteria = GroupwfPeer :: doSelectRS ( $criteria );
$rsCriteria -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
while ( $rsCriteria -> next ()) {
$row = $rsCriteria -> getRow ();
$arrayGroupwf [] = $row ;
}
//Check if any group name exists in database
$arrayUid = array ();
foreach ( $data -> groupwfs as $key => $value ) {
$groupwfsRecord = $value ;
foreach ( $arrayGroupwf as $key2 => $value2 ) {
$groupwfRecord = $value2 ;
2016-06-16 16:23:42 -04:00
if ( $groupwfRecord [ " GRP_TITLE " ] == $groupwfsRecord [ " GRP_TITLE " ] && $groupwfRecord [ " GRP_UID " ] != $groupwfsRecord [ " GRP_UID " ]) {
2014-05-14 10:26:45 -04:00
//Update unique id
$uidOld = $data -> groupwfs [ $key ][ " GRP_UID " ];
$data -> groupwfs [ $key ][ " GRP_UID " ] = $groupwfRecord [ " GRP_UID " ];
$arrayUid [ $uidOld ] = $groupwfRecord [ " GRP_UID " ];
break ;
}
}
}
//Update in $data
if ( count ( $arrayUid ) > 0 ) {
foreach ( $data -> taskusers as $key => $value ) {
$record = $value ;
if ( isset ( $arrayUid [ $record [ " USR_UID " ]])) {
2016-03-23 23:34:18 -04:00
$data -> taskusers [ $key ][ " USR_UID " ] = $arrayUid [ $record [ " USR_UID " ]];
2014-05-14 10:26:45 -04:00
}
}
foreach ( $data -> objectPermissions as $key => $value ) {
$record = $value ;
if ( isset ( $arrayUid [ $record [ " USR_UID " ]])) {
2016-03-23 23:34:18 -04:00
$data -> objectPermissions [ $key ][ " USR_UID " ] = $arrayUid [ $record [ " USR_UID " ]];
2014-05-14 10:26:45 -04:00
}
}
if ( isset ( $data -> processUser )) {
foreach ( $data -> processUser as $key => $value ) {
$record = $value ;
if ( isset ( $arrayUid [ $record [ " USR_UID " ]])) {
2016-03-23 23:34:18 -04:00
$data -> processUser [ $key ][ " USR_UID " ] = $arrayUid [ $record [ " USR_UID " ]];
2014-05-14 10:26:45 -04:00
}
}
}
}
//Return
return $data ;
} catch ( Exception $e ) {
throw $e ;
}
}
2012-10-22 15:45:47 -04:00
/**
* change Status of any Process
*
* @ param string $sProUid
* @ return boolean
*/
2016-03-23 23:34:18 -04:00
public function serializeProcess ( $sProUid = '' )
2014-02-28 19:11:34 -04:00
{
return serialize ( $this -> getWorkflowData ( $sProUid ));
}
public function getWorkflowData ( $sProUid = '' )
2014-04-30 12:00:22 -04:00
{
2012-10-22 15:45:47 -04:00
$oProcess = new Process ();
2014-02-28 19:11:34 -04:00
$oData = new StdClass ();
2016-03-23 23:34:18 -04:00
$oData -> process = $this -> getProcessRow ( $sProUid , false );
$oData -> tasks = $this -> getTaskRows ( $sProUid );
$oData -> routes = $this -> getRouteRows ( $sProUid );
$oData -> lanes = $this -> getLaneRows ( $sProUid );
$oData -> gateways = $this -> getGatewayRows ( $sProUid );
$oData -> inputs = $this -> getInputRows ( $sProUid );
$oData -> outputs = $this -> getOutputRows ( $sProUid );
$oData -> dynaforms = $this -> getDynaformRows ( $sProUid );
$oData -> steps = $this -> getStepRows ( $sProUid );
$oData -> triggers = $this -> getTriggerRows ( $sProUid );
$oData -> taskusers = $this -> getTaskUserRows ( $oData -> tasks );
$oData -> groupwfs = $this -> getGroupwfRows ( $oData -> taskusers );
$oData -> steptriggers = $this -> getStepTriggerRows ( $oData -> tasks );
$oData -> dbconnections = $this -> getDBConnectionsRows ( $sProUid );
$oData -> reportTables = $this -> getReportTablesRows ( $sProUid );
$oData -> reportTablesVars = $this -> getReportTablesVarsRows ( $sProUid );
$oData -> stepSupervisor = $this -> getStepSupervisorRows ( $sProUid );
$oData -> objectPermissions = $this -> getObjectPermissionRows ( $sProUid , $oData );
$oData -> subProcess = $this -> getSubProcessRow ( $sProUid );
$oData -> caseTracker = $this -> getCaseTrackerRow ( $sProUid );
$oData -> caseTrackerObject = $this -> getCaseTrackerObjectRow ( $sProUid );
$oData -> stage = $this -> getStageRow ( $sProUid );
$oData -> fieldCondition = $this -> getFieldCondition ( $sProUid );
$oData -> event = $this -> getEventRow ( $sProUid );
$oData -> caseScheduler = $this -> getCaseSchedulerRow ( $sProUid );
$oData -> processCategory = $this -> getProcessCategoryRow ( $sProUid );
$oData -> taskExtraProperties = $this -> getTaskExtraPropertiesRows ( $sProUid );
2014-05-14 10:26:45 -04:00
$oData -> processUser = $this -> getProcessUser ( $sProUid );
2014-07-22 16:57:24 -04:00
$oData -> processVariables = $this -> getProcessVariables ( $sProUid );
2016-03-23 23:34:18 -04:00
$oData -> webEntry = $this -> getWebEntries ( $sProUid );
2015-01-22 15:27:35 -04:00
$oData -> webEntryEvent = $this -> getWebEntryEvents ( $sProUid );
2015-02-04 17:18:32 -04:00
$oData -> messageType = $this -> getMessageTypes ( $sProUid );
$oData -> messageTypeVariable = $this -> getMessageTypeVariables ( $sProUid );
2015-02-20 17:12:49 -04:00
$oData -> messageEventDefinition = $this -> getMessageEventDefinitions ( $sProUid );
2015-06-24 18:28:20 -04:00
$oData -> scriptTask = $this -> getScriptTasks ( $sProUid );
2015-06-30 12:04:53 -04:00
$oData -> timerEvent = $this -> getTimerEvents ( $sProUid );
2015-06-25 16:31:04 -04:00
$oData -> emailEvent = $this -> getEmailEvent ( $sProUid );
2015-06-30 12:04:53 -04:00
$oData -> filesManager = $this -> getFilesManager ( $sProUid );
2015-09-26 12:51:31 -04:00
$oData -> abeConfiguration = $this -> getActionsByEmail ( $sProUid );
2016-11-07 14:44:39 -05:00
$oData -> elementTask = $this -> getElementTaskRelation ( $sProUid );
2014-05-14 10:26:45 -04:00
$oData -> groupwfs = $this -> groupwfsMerge ( $oData -> groupwfs , $oData -> processUser , " USR_UID " );
2014-09-23 16:40:22 -04:00
$oData -> process [ " PRO_TYPE_PROCESS " ] = " PUBLIC " ;
2012-10-22 15:45:47 -04:00
2015-01-22 15:27:35 -04:00
//Return
2014-02-28 19:11:34 -04:00
return $oData ;
2012-10-22 15:45:47 -04:00
}
/**
* Save a Serialized Process from an object
*
* @ param array $oData
* @ return $result an array
*/
2016-03-23 23:34:18 -04:00
public function saveSerializedProcess ( $oData )
2012-10-22 15:45:47 -04:00
{
2012-10-09 13:01:32 -04:00
//$oJSON = new Services_JSON();
//$data = $oJSON->decode($oData);
//$sProUid = $data->process->PRO_UID;
2016-03-23 23:34:18 -04:00
$data = unserialize ( $oData );
2012-10-22 15:45:47 -04:00
$sProUid = $data -> process [ 'PRO_UID' ];
$path = PATH_DOCUMENT . 'output' . PATH_SEP ;
2016-03-23 23:34:18 -04:00
if ( ! is_dir ( $path )) {
G :: verifyPath ( $path , true );
2012-10-22 15:45:47 -04:00
}
2016-03-23 23:34:18 -04:00
$proTitle = ( substr ( G :: inflect ( $data -> process [ 'PRO_TITLE' ]), 0 , 245 ));
$proTitle = preg_replace ( " /[^A-Za-z0-9_]/ " , " " , $proTitle );
2012-10-09 13:01:32 -04:00
//Calculating the maximum length of file name
2016-03-23 23:34:18 -04:00
$pathLength = strlen ( PATH_DATA . " sites " . PATH_SEP . SYS_SYS . PATH_SEP . " files " . PATH_SEP . " output " . PATH_SEP );
$length = strlen ( $proTitle ) + $pathLength ;
2015-05-25 09:22:48 -04:00
$limit = 200 ;
if ( strtoupper ( substr ( PHP_OS , 0 , 3 )) === 'WIN' ) {
$limit = 150 ;
}
if ( $length >= $limit ) {
$proTitle = $this -> truncateName ( $proTitle );
2012-10-22 15:45:47 -04:00
}
$index = '' ;
$lastIndex = '' ;
do {
$filename = $path . $proTitle . $index . '.pm' ;
$lastIndex = $index ;
if ( $index == '' ) {
$index = 1 ;
} else {
2016-03-23 23:34:18 -04:00
$index ++ ;
2012-10-22 15:45:47 -04:00
}
2016-03-23 23:34:18 -04:00
} while ( file_exists ( $filename ));
2012-10-22 15:45:47 -04:00
$proTitle .= $lastIndex ;
$filenameOnly = $proTitle . '.pm' ;
2016-03-23 23:34:18 -04:00
$fp = fopen ( $filename . 'tpm' , " wb " );
2012-10-22 15:45:47 -04:00
2016-03-23 23:34:18 -04:00
$fsData = sprintf ( " %09d " , strlen ( $oData ));
$bytesSaved = fwrite ( $fp , $fsData ); //writing the size of $oData
$bytesSaved += fwrite ( $fp , $oData ); //writing the $oData
2012-10-22 15:45:47 -04:00
foreach ( $data -> dynaforms as $key => $val ) {
$sFileName = PATH_DYNAFORM . $val [ 'DYN_FILENAME' ] . '.xml' ;
2016-03-23 23:34:18 -04:00
if ( file_exists ( $sFileName )) {
2012-10-22 15:45:47 -04:00
$xmlGuid = $val [ 'DYN_UID' ];
2016-03-23 23:34:18 -04:00
$fsXmlGuid = sprintf ( " %09d " , strlen ( $xmlGuid ));
$bytesSaved += fwrite ( $fp , $fsXmlGuid ); //writing the size of xml file
$bytesSaved += fwrite ( $fp , $xmlGuid ); //writing the xmlfile
2012-10-22 15:45:47 -04:00
2016-03-23 23:34:18 -04:00
$xmlContent = file_get_contents ( $sFileName );
$fsXmlContent = sprintf ( " %09d " , strlen ( $xmlContent ));
$bytesSaved += fwrite ( $fp , $fsXmlContent ); //writing the size of xml file
$bytesSaved += fwrite ( $fp , $xmlContent ); //writing the xmlfile
2012-10-22 15:45:47 -04:00
}
$sFileName2 = PATH_DYNAFORM . $val [ 'DYN_FILENAME' ] . '.html' ;
2016-03-23 23:34:18 -04:00
if ( file_exists ( $sFileName2 )) {
2012-10-22 15:45:47 -04:00
$htmlGuid = $val [ 'DYN_UID' ];
2016-03-23 23:34:18 -04:00
$fsHtmlGuid = sprintf ( " %09d " , strlen ( $htmlGuid ));
$bytesSaved += fwrite ( $fp , $fsHtmlGuid ); //writing size dynaform id
$bytesSaved += fwrite ( $fp , $htmlGuid ); //writing dynaform id
2012-10-22 15:45:47 -04:00
2016-03-23 23:34:18 -04:00
$htmlContent = file_get_contents ( $sFileName2 );
$fsHtmlContent = sprintf ( " %09d " , strlen ( $htmlContent ));
$bytesSaved += fwrite ( $fp , $fsHtmlContent ); //writing the size of xml file
$bytesSaved += fwrite ( $fp , $htmlContent ); //writing the htmlfile
2012-10-22 15:45:47 -04:00
}
}
/**
* By < erik @ colosa . com >
* here we should work for the new functionalities
* we have a many files for attach into this file
*
* here we go with the anothers files ;)
*/
2012-10-09 13:01:32 -04:00
//before to do something we write a header into pm file for to do a differentiation between document types
2012-10-22 15:45:47 -04:00
2012-10-09 13:01:32 -04:00
//create the store object
//$file_objects = new ObjectCellection();
2012-10-22 15:45:47 -04:00
2012-10-09 13:01:32 -04:00
// for mailtemplates files
2012-10-22 15:45:47 -04:00
$MAILS_ROOT_PATH = PATH_DATA . 'sites' . PATH_SEP . SYS_SYS . PATH_SEP . 'mailTemplates' . PATH_SEP . $data -> process [ 'PRO_UID' ];
$isMailTempSent = false ;
$isPublicSent = false ;
2012-10-09 13:01:32 -04:00
//if this process have any mailfile
2016-03-23 23:34:18 -04:00
if ( is_dir ( $MAILS_ROOT_PATH )) {
2012-10-22 15:45:47 -04:00
2012-10-09 13:01:32 -04:00
//get mail files list from this directory
2016-03-23 23:34:18 -04:00
$file_list = scandir ( $MAILS_ROOT_PATH );
2012-10-22 15:45:47 -04:00
foreach ( $file_list as $filename ) {
2012-10-09 13:01:32 -04:00
// verify if this filename is a valid file, because it could be . or .. on *nix systems
2012-10-22 15:45:47 -04:00
if ( $filename != '.' && $filename != '..' ) {
2016-03-23 23:34:18 -04:00
if ( @ is_readable ( $MAILS_ROOT_PATH . PATH_SEP . $filename )) {
2012-10-22 15:45:47 -04:00
$sFileName = $MAILS_ROOT_PATH . PATH_SEP . $filename ;
2016-03-23 23:34:18 -04:00
if ( file_exists ( $sFileName )) {
if ( ! $isMailTempSent ) {
$bytesSaved += fwrite ( $fp , 'MAILTEMPL' );
2012-10-22 15:45:47 -04:00
$isMailTempSent = true ;
}
2012-10-09 13:01:32 -04:00
//$htmlGuid = $val['DYN_UID'];
2016-03-23 23:34:18 -04:00
$fsFileName = sprintf ( " %09d " , strlen ( $filename ));
$bytesSaved += fwrite ( $fp , $fsFileName ); //writing the fileName size
$bytesSaved += fwrite ( $fp , $filename ); //writing the fileName size
2012-10-22 15:45:47 -04:00
2016-03-23 23:34:18 -04:00
$fileContent = file_get_contents ( $sFileName );
$fsFileContent = sprintf ( " %09d " , strlen ( $fileContent ));
$bytesSaved += fwrite ( $fp , $fsFileContent ); //writing the size of xml file
$bytesSaved += fwrite ( $fp , $fileContent ); //writing the htmlfile
2012-10-22 15:45:47 -04:00
}
}
}
}
}
2015-05-25 09:22:48 -04:00
// for public files
2012-10-22 15:45:47 -04:00
$PUBLIC_ROOT_PATH = PATH_DATA . 'sites' . PATH_SEP . SYS_SYS . PATH_SEP . 'public' . PATH_SEP . $data -> process [ 'PRO_UID' ];
2015-05-27 14:53:05 -04:00
2015-05-25 10:20:42 -04:00
//Get WebEntry file names
$arrayWebEntryFile = array ();
if ( is_dir ( $PUBLIC_ROOT_PATH )) {
if ( $dirh = opendir ( $PUBLIC_ROOT_PATH )) {
while (( $file = readdir ( $dirh )) !== false ) {
if ( preg_match ( " /^(.+)Post \ .php $ / " , $file , $arrayMatch )) {
$arrayWebEntryFile [] = $arrayMatch [ 1 ] . " .php " ;
$arrayWebEntryFile [] = $arrayMatch [ 1 ] . " Post.php " ;
}
}
closedir ( $dirh );
}
}
2012-10-22 15:45:47 -04:00
2012-10-09 13:01:32 -04:00
//if this process have any mailfile
2016-03-23 23:34:18 -04:00
if ( is_dir ( $PUBLIC_ROOT_PATH )) {
2012-10-19 18:07:17 +00:00
//get mail files list from this directory
2016-03-23 23:34:18 -04:00
$file_list = scandir ( $PUBLIC_ROOT_PATH );
2012-10-22 15:45:47 -04:00
foreach ( $file_list as $filename ) {
2012-10-19 18:07:17 +00:00
// verify if this filename is a valid file, because it could be . or .. on *nix systems
2012-10-22 15:45:47 -04:00
if ( $filename != '.' && $filename != '..' ) {
2015-05-25 10:20:42 -04:00
if ( in_array ( $filename , $arrayWebEntryFile )) {
continue ;
}
2016-03-23 23:34:18 -04:00
if ( @ is_readable ( $PUBLIC_ROOT_PATH . PATH_SEP . $filename )) {
2012-10-22 15:45:47 -04:00
$sFileName = $PUBLIC_ROOT_PATH . PATH_SEP . $filename ;
2016-03-23 23:34:18 -04:00
if ( file_exists ( $sFileName )) {
if ( ! $isPublicSent ) {
$bytesSaved += fwrite ( $fp , 'PUBLIC ' );
2012-10-22 15:45:47 -04:00
$isPublicSent = true ;
}
2012-10-19 18:07:17 +00:00
//$htmlGuid = $val['DYN_UID'];
2016-03-23 23:34:18 -04:00
$fsFileName = sprintf ( " %09d " , strlen ( $filename ));
$bytesSaved += fwrite ( $fp , $fsFileName );
2012-10-19 18:07:17 +00:00
//writing the fileName size
2016-03-23 23:34:18 -04:00
$bytesSaved += fwrite ( $fp , $filename );
2012-10-19 18:07:17 +00:00
//writing the fileName size
2016-03-23 23:34:18 -04:00
$fileContent = file_get_contents ( $sFileName );
$fsFileContent = sprintf ( " %09d " , strlen ( $fileContent ));
$bytesSaved += fwrite ( $fp , $fsFileContent );
2012-10-19 18:07:17 +00:00
//writing the size of xml file
2016-03-23 23:34:18 -04:00
$bytesSaved += fwrite ( $fp , $fileContent );
2012-10-19 18:07:17 +00:00
//writing the htmlfile
2012-10-22 15:45:47 -04:00
}
}
}
}
}
2012-10-19 18:07:17 +00:00
/*
// for public files
$PUBLIC_ROOT_PATH = PATH_DATA . 'sites' . PATH_SEP . SYS_SYS . PATH_SEP . 'public' . PATH_SEP . $data -> process [ 'PRO_UID' ];
//if this process have any mailfile
if ( is_dir ( $PUBLIC_ROOT_PATH ) ) {
2012-10-09 13:01:32 -04:00
//get mail files list from this directory
2012-10-19 18:07:17 +00:00
$files_list = scandir ( $PUBLIC_ROOT_PATH );
2012-10-09 13:01:32 -04:00
foreach ( $file_list as $filename ) {
2012-10-19 18:07:17 +00:00
// verify if this filename is a valid file, beacuse it could be . or .. on *nix systems
if ( $filename != '.' && $filename != '..' ){
if ( @ is_readable ( $PUBLIC_ROOT_PATH . PATH_SEP . $nombre_archivo )) {
$tmp = explode ( '.' , $filename );
$ext = $tmp [ 1 ];
$ext_fp = fopen ( $PUBLIC_ROOT_PATH . PATH_SEP . $nombre_archivo , 'r' );
$file_data = fread ( $ext_fp , filesize ( $PUBLIC_ROOT_PATH . PATH_SEP . $nombre_archivo ));
fclose ( $ext_fp );
$file_objects -> add ( $filename , $ext , $file_data , 'public' );
2012-10-09 13:01:32 -04:00
}
}
}
2010-12-02 23:34:41 +00:00
}
2012-10-19 18:07:17 +00:00
//So,. we write the store object into pm export file
$extended_data = serialize ( $file_objects );
2012-10-22 15:45:47 -04:00
$bytesSaved += fwrite ( $fp , $extended_data );
*/
2012-10-19 18:07:17 +00:00
/* under here, I've not modified those lines */
2016-03-23 23:34:18 -04:00
fclose ( $fp );
2012-10-09 13:01:32 -04:00
//$bytesSaved = file_put_contents ( $filename , $oData );
2016-03-23 23:34:18 -04:00
$filenameLink = 'processes_DownloadFile?p=' . $proTitle . '&r=' . rand ( 100 , 1000 );
2012-10-22 15:45:47 -04:00
$result [ 'PRO_UID' ] = $data -> process [ 'PRO_UID' ];
$result [ 'PRO_TITLE' ] = $data -> process [ 'PRO_TITLE' ];
$result [ 'PRO_DESCRIPTION' ] = $data -> process [ 'PRO_DESCRIPTION' ];
$result [ 'SIZE' ] = $bytesSaved ;
$result [ 'FILENAME' ] = $filenameOnly ;
$result [ 'FILENAME_LINK' ] = $filenameLink ;
return $result ;
}
/**
* Get the process Data form a filename
*
* @ param array $pmFilename
* @ return void
*/
2016-03-23 23:34:18 -04:00
public function getProcessData ( $pmFilename )
2012-10-22 15:45:47 -04:00
{
$oProcess = new Process ();
2016-03-23 23:34:18 -04:00
if ( ! file_exists ( $pmFilename )) {
throw ( new Exception ( 'Unable to read uploaded file, please check permissions. ' ));
2012-10-22 15:45:47 -04:00
}
2016-03-23 23:34:18 -04:00
if ( ! filesize ( $pmFilename ) >= 9 ) {
throw ( new Exception ( 'Uploaded file is corrupted, please check the file before continuing. ' ));
2012-10-22 15:45:47 -04:00
}
clearstatcache ();
2016-03-23 23:34:18 -04:00
$fp = fopen ( $pmFilename , " rb " );
$fsData = intval ( fread ( $fp , 9 )); //reading the size of $oData
2012-10-22 15:45:47 -04:00
$contents = '' ;
2016-03-23 23:34:18 -04:00
$contents = @ fread ( $fp , $fsData ); //reading string $oData
2012-10-22 15:45:47 -04:00
if ( $contents != '' ) {
2016-03-23 23:34:18 -04:00
$oData = unserialize ( $contents );
2012-10-22 15:45:47 -04:00
if ( $oData === false ) {
2016-03-23 23:34:18 -04:00
throw new Exception ( " Process file is not valid " );
2012-10-22 15:45:47 -04:00
}
foreach ( $oData -> dynaforms as $key => $value ) {
if ( $value [ 'DYN_TYPE' ] == 'grid' ) {
$oData -> gridFiles [ $value [ 'DYN_UID' ]] = $value [ 'DYN_UID' ];
}
}
2016-03-23 23:34:18 -04:00
$oData -> dynaformFiles = array ();
2012-10-22 15:45:47 -04:00
$sIdentifier = 0 ;
2016-03-23 23:34:18 -04:00
while ( ! feof ( $fp ) && is_numeric ( $sIdentifier )) {
$sIdentifier = fread ( $fp , 9 ); //reading the block identifier
if ( is_numeric ( $sIdentifier )) {
$fsXmlGuid = intval ( $sIdentifier ); //reading the size of $filename
2012-10-22 15:45:47 -04:00
if ( $fsXmlGuid > 0 ) {
2016-03-23 23:34:18 -04:00
$XmlGuid = fread ( $fp , $fsXmlGuid ); //reading string $XmlGuid
2012-10-22 15:45:47 -04:00
}
2016-03-23 23:34:18 -04:00
$fsXmlContent = intval ( fread ( $fp , 9 )); //reading the size of $XmlContent
2012-10-22 15:45:47 -04:00
if ( $fsXmlContent > 0 ) {
$oData -> dynaformFiles [ $XmlGuid ] = $XmlGuid ;
2016-03-23 23:34:18 -04:00
$XmlContent = fread ( $fp , $fsXmlContent ); //reading string $XmlContent
unset ( $XmlContent );
2012-10-22 15:45:47 -04:00
}
}
}
} else {
$oData = null ;
}
2016-03-23 23:34:18 -04:00
fclose ( $fp );
2012-10-22 15:45:47 -04:00
return $oData ;
}
2012-10-09 13:01:32 -04:00
// import process related functions
2012-10-22 15:45:47 -04:00
/**
* function checkExistingGroups
* checkExistingGroups check if any of the groups listed in the parameter
* array exist and wich are those , that is the result $sFilteredGroups array .
*
* @ author gustavo cruz gustavo - at - colosa . com
* @ param $sGroupList array of a group list
* @ return $existingGroupList array of existing groups or null
*/
2016-03-23 23:34:18 -04:00
public function checkExistingGroups ( $sGroupList )
2012-10-22 15:45:47 -04:00
{
2016-03-23 23:34:18 -04:00
$aGroupwf = array ();
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> addSelectColumn ( GroupwfPeer :: GRP_UID );
2016-06-16 16:23:42 -04:00
$oCriteria -> addSelectColumn ( GroupwfPeer :: GRP_TITLE );
$oDataset = GroupwfPeer :: doSelectRS ( $oCriteria );
2016-03-23 23:34:18 -04:00
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-22 15:45:47 -04:00
$oDataset -> next ();
while ( $aRow = $oDataset -> getRow ()) {
$aGroupwf [] = $aRow ;
$oDataset -> next ();
}
2012-10-09 13:01:32 -04:00
//check if any group name exists in the dbase
2016-03-23 23:34:18 -04:00
if ( is_array ( $sGroupList )) {
2012-10-22 15:45:47 -04:00
foreach ( $aGroupwf as $groupBase ) {
foreach ( $sGroupList as $group ) {
2016-07-21 16:18:21 -04:00
if ( $groupBase [ 'GRP_TITLE' ] == $group [ 'GRP_TITLE' ] && $groupBase [ 'GRP_UID' ] != $group [ 'GRP_UID' ]) {
2016-04-20 11:55:39 -04:00
$oPro = GroupwfPeer :: retrieveByPk ( $group [ 'GRP_UID' ] );
if ( is_object ( $oPro ) && get_class ( $oPro ) == 'Groupwf' ) {
$group [ 'GRP_UID' ] = G :: generateUniqueID ();
}
2012-10-22 15:45:47 -04:00
$existingGroupList [] = $group ;
}
}
}
}
2012-10-09 13:01:32 -04:00
//return $sGroupList;
2016-03-23 23:34:18 -04:00
if ( isset ( $existingGroupList )) {
2012-10-22 15:45:47 -04:00
return $existingGroupList ;
} else {
return null ;
}
}
/**
* function renameExistingGroups
* renameExistingGroups check if any of the groups listed in the parameter
* array exist and wich are those , then rename the file adding a number
* suffix to the title atribute of each element of the $renamedGroupList array .
*
* @ author gustavo cruz gustavo - at - colosa . com
* @ param $sGroupList array of a group list
* @ return $renamedGroupList array of existing groups
*/
2016-03-23 23:34:18 -04:00
public function renameExistingGroups ( $sGroupList )
2012-10-22 15:45:47 -04:00
{
2016-03-23 23:34:18 -04:00
$checkedGroup = $this -> checkExistingGroups ( $sGroupList );
2012-10-22 15:45:47 -04:00
foreach ( $sGroupList as $groupBase ) {
foreach ( $checkedGroup as $group ) {
if ( $groupBase [ 'GRP_TITLE' ] == $group [ 'GRP_TITLE' ]) {
2016-04-20 11:55:39 -04:00
$groupBase [ 'GRP_TITLE' ] = $groupBase [ 'GRP_TITLE' ] . ' ' . date ( 'Y-m-d H:i:s' );
$groupBase [ 'GRP_UID' ] = $group [ 'GRP_UID' ];
2012-10-22 15:45:47 -04:00
}
}
$renamedGroupList [] = $groupBase ;
}
2016-03-23 23:34:18 -04:00
if ( isset ( $renamedGroupList )) {
2012-10-22 15:45:47 -04:00
return $renamedGroupList ;
} else {
return null ;
}
}
/**
* function mergeExistingGroups
* mergeExistingGroups check if any of the groups listed in the parameter
* array exist and wich are those , then replaces the id of the elements in
* in the $mergedGroupList array .
*
* @ author gustavo cruz gustavo - at - colosa . com
* @ param $sGroupList array of a group list
* @ return $mergedGroupList array of existing groups
*/
2014-05-14 10:26:45 -04:00
//Deprecated
2016-03-23 23:34:18 -04:00
public function mergeExistingGroups ( $sGroupList )
{
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> addSelectColumn ( GroupwfPeer :: GRP_UID );
2016-06-16 16:23:42 -04:00
$oCriteria -> addSelectColumn ( GroupwfPeer :: GRP_TITLE );
$oDataset = GroupwfPeer :: doSelectRS ( $oCriteria );
2016-03-23 23:34:18 -04:00
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-22 15:45:47 -04:00
$oDataset -> next ();
while ( $aRow = $oDataset -> getRow ()) {
$aGroupwf [] = $aRow ;
$oDataset -> next ();
}
2012-10-09 13:01:32 -04:00
//check if any group name exists in the dbase
2012-10-22 15:45:47 -04:00
foreach ( $sGroupList as $group ) {
$merged = false ;
foreach ( $aGroupwf as $groupBase ) {
2016-07-21 16:18:21 -04:00
if ( $groupBase [ 'GRP_TITLE' ] == $group [ 'GRP_TITLE' ] && $groupBase [ 'GRP_UID' ] != $group [ 'GRP_UID' ]) {
$group [ 'GRP_UID' ] = $groupBase [ 'GRP_UID' ];
2012-10-22 15:45:47 -04:00
$mergedGroupList [] = $group ;
$merged = true ;
}
}
2016-03-23 23:34:18 -04:00
if ( ! $merged ) {
2012-10-22 15:45:47 -04:00
$mergedGroupList [] = $group ;
}
}
2016-03-23 23:34:18 -04:00
if ( isset ( $mergedGroupList )) {
2012-10-22 15:45:47 -04:00
return $mergedGroupList ;
} else {
return null ;
}
}
/**
* function mergeExistingUsers
* mergeExistingGroups check if any of the groups listed in the parameter
* array exist and wich are those , then replaces the id of the elements in
* in the $mergedGroupList array .
*
* @ author gustavo cruz gustavo - at - colosa . com
* @ param $sBaseGroupList array of a group list with the original group list
* @ param $sGroupList array of a group list with the merged group list
* @ param $sTaskUserList array of the task user list , it contents the link between
* the task and the group list
* @ return $mergedTaskUserList array of the merged task user list
*/
2014-05-14 10:26:45 -04:00
//Deprecated
2016-03-23 23:34:18 -04:00
public function mergeExistingUsers ( $sBaseGroupList , $sGroupList , $sTaskUserList )
2012-10-22 15:45:47 -04:00
{
foreach ( $sTaskUserList as $taskuser ) {
$merged = false ;
foreach ( $sBaseGroupList as $groupBase ) {
foreach ( $sGroupList as $group ) {
2012-10-09 13:01:32 -04:00
// check if the group has been merged
2012-10-22 15:45:47 -04:00
if ( $groupBase [ 'GRP_TITLE' ] == $group [ 'GRP_TITLE' ] && $groupBase [ 'GRP_UID' ] != $group [ 'GRP_UID' ] && $groupBase [ 'GRP_UID' ] == $taskuser [ 'USR_UID' ]) {
2012-10-09 13:01:32 -04:00
// merging the user id to match the merged group
2012-10-22 15:45:47 -04:00
$taskuser [ 'USR_UID' ] = $group [ 'GRP_UID' ];
$mergedTaskUserList [] = $taskuser ;
$merged = true ;
}
}
}
2012-10-09 13:01:32 -04:00
//if hasn't been merged set the default value
2016-03-23 23:34:18 -04:00
if ( ! $merged ) {
2012-10-22 15:45:47 -04:00
$mergedTaskUserList [] = $taskuser ;
}
}
2016-03-23 23:34:18 -04:00
if ( isset ( $mergedTaskUserList )) {
2012-10-22 15:45:47 -04:00
return $mergedTaskUserList ;
} else {
return null ;
}
}
2012-10-09 13:01:32 -04:00
// end of import process related functions
2012-10-22 15:45:47 -04:00
/**
* disable all previous process with the parent $sProUid
*
* @ param $sProUid process uid
* @ return void
*/
2016-03-23 23:34:18 -04:00
public function disablePreviousProcesses ( $sProUid )
2012-10-22 15:45:47 -04:00
{
2012-10-09 13:01:32 -04:00
//change status of process
2016-03-23 23:34:18 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> add ( ProcessPeer :: PRO_PARENT , $sProUid );
$oDataset = ProcessPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-22 15:45:47 -04:00
$oDataset -> next ();
$oProcess = new Process ();
while ( $aRow = $oDataset -> getRow ()) {
$aRow [ 'PRO_STATUS' ] = 'DISABLED' ;
$aRow [ 'PRO_UPDATE_DATE' ] = 'now' ;
2016-03-23 23:34:18 -04:00
$oProcess -> update ( $aRow );
2012-10-22 15:45:47 -04:00
$oDataset -> next ();
}
}
/**
* create the files from a .
*
*
* pm file
*
* @ param $oData process data
* @ param $pmFilename process file name
* @ return boolean true
*/
2016-03-23 23:34:18 -04:00
public function createFiles ( $oData , $pmFilename )
2012-10-22 15:45:47 -04:00
{
2016-03-23 23:34:18 -04:00
if ( ! file_exists ( $pmFilename )) {
throw ( new Exception ( 'Unable to read uploaded .pm file, please check permissions. ' ));
2012-10-22 15:45:47 -04:00
}
2016-03-23 23:34:18 -04:00
if ( ! filesize ( $pmFilename ) >= 9 ) {
throw ( new Exception ( 'Uploaded .pm file is corrupted, please check the file before continue. ' ));
2012-10-22 15:45:47 -04:00
}
2016-03-23 23:34:18 -04:00
$fp = fopen ( $pmFilename , " rb " );
$fsData = intval ( fread ( $fp , 9 )); //reading the size of $oData
$contents = fread ( $fp , $fsData ); //reading string $oData
2012-10-22 15:45:47 -04:00
2015-05-25 09:22:48 -04:00
2012-10-22 15:45:47 -04:00
$path = PATH_DYNAFORM . $oData -> process [ 'PRO_UID' ] . PATH_SEP ;
2016-03-23 23:34:18 -04:00
if ( ! is_dir ( $path )) {
G :: verifyPath ( $path , true );
2012-10-22 15:45:47 -04:00
}
$sIdentifier = 1 ;
2016-03-23 23:34:18 -04:00
while ( ! feof ( $fp ) && is_numeric ( $sIdentifier )) {
$sIdentifier = fread ( $fp , 9 ); //reading the size of $filename
if ( is_numeric ( $sIdentifier )) {
$fsXmlGuid = intval ( $sIdentifier ); //reading the size of $filename
2012-10-22 15:45:47 -04:00
if ( $fsXmlGuid > 0 ) {
2016-03-23 23:34:18 -04:00
$XmlGuid = fread ( $fp , $fsXmlGuid ); //reading string $XmlGuid
2012-10-22 15:45:47 -04:00
}
2016-03-23 23:34:18 -04:00
$fsXmlContent = intval ( fread ( $fp , 9 )); //reading the size of $XmlContent
2012-10-22 15:45:47 -04:00
if ( $fsXmlContent > 0 ) {
$newXmlGuid = $oData -> dynaformFiles [ $XmlGuid ];
2016-03-23 23:34:18 -04:00
if ( isset ( $oData -> process [ 'PRO_UID_OLD' ])) {
$XmlContent = fread ( $fp , $fsXmlContent ); //reading string $XmlContent
$XmlContent = str_replace ( $oData -> process [ 'PRO_UID_OLD' ], $oData -> process [ 'PRO_UID' ], $XmlContent );
$XmlContent = str_replace ( $XmlGuid , $newXmlGuid , $XmlContent );
2012-10-22 15:45:47 -04:00
2016-03-23 23:34:18 -04:00
if ( isset ( $oData -> inputFiles )) {
foreach ( $oData -> inputFiles as $input => $valInput ) {
2014-07-03 12:57:45 -04:00
$oldInput = $input ;
$newInput = $oData -> inputFiles [ $oldInput ];
2016-03-23 23:34:18 -04:00
$XmlContent = str_replace ( $oldInput , $newInput , $XmlContent );
2014-07-03 12:57:45 -04:00
}
2014-06-12 15:44:09 -04:00
}
2012-10-09 13:01:32 -04:00
//foreach
2016-03-23 23:34:18 -04:00
if ( isset ( $oData -> gridFiles )) {
if ( is_array ( $oData -> gridFiles )) {
2012-10-22 15:45:47 -04:00
foreach ( $oData -> gridFiles as $key => $value ) {
2016-03-23 23:34:18 -04:00
$XmlContent = str_replace ( $key , $value , $XmlContent );
2012-10-22 15:45:47 -04:00
}
}
}
2016-03-23 23:34:18 -04:00
if ( isset ( $oData -> sqlConnections )) {
2012-10-22 15:45:47 -04:00
foreach ( $oData -> sqlConnections as $key => $value ) {
2016-03-23 23:34:18 -04:00
$XmlContent = str_replace ( $key , $value , $XmlContent );
2012-10-22 15:45:47 -04:00
}
}
2012-10-09 13:01:32 -04:00
#here we verify if is adynaform or a html
2016-03-23 23:34:18 -04:00
$aAux = explode ( ' ' , $XmlContent );
$ext = ( strpos ( $aAux [ 0 ], '<?xml' ) !== false ? '.xml' : '.html' );
2012-10-22 15:45:47 -04:00
$sFileName = $path . $newXmlGuid . $ext ;
2016-03-23 23:34:18 -04:00
$bytesSaved = @ file_put_contents ( $sFileName , $XmlContent );
2012-10-09 13:01:32 -04:00
//if ( $bytesSaved != $fsXmlContent ) throw ( new Exception ('Error writing dynaform file in directory : ' . $path ) );
2012-10-22 15:45:47 -04:00
}
}
}
}
2010-12-02 23:34:41 +00:00
//now mailTemplates and public files
2012-10-22 15:45:47 -04:00
$pathPublic = PATH_DATA_SITE . 'public' . PATH_SEP . $oData -> process [ 'PRO_UID' ] . PATH_SEP ;
$pathMailTem = PATH_DATA_SITE . 'mailTemplates' . PATH_SEP . $oData -> process [ 'PRO_UID' ] . PATH_SEP ;
2016-03-23 23:34:18 -04:00
G :: mk_dir ( $pathPublic );
G :: mk_dir ( $pathMailTem );
2012-10-22 15:45:47 -04:00
if ( $sIdentifier == 'MAILTEMPL' ) {
$sIdentifier = 1 ;
2016-03-23 23:34:18 -04:00
while ( ! feof ( $fp ) && is_numeric ( $sIdentifier )) {
$sIdentifier = fread ( $fp , 9 ); //reading the size of $filename
if ( is_numeric ( $sIdentifier )) {
$fsFileName = intval ( $sIdentifier ); //reading the size of $filename
2012-10-22 15:45:47 -04:00
if ( $fsFileName > 0 ) {
2016-03-23 23:34:18 -04:00
$sFileName = fread ( $fp , $fsFileName ); //reading filename string
2012-10-22 15:45:47 -04:00
}
2016-03-23 23:34:18 -04:00
$fsContent = intval ( fread ( $fp , 9 )) or 0 ; //reading the size of $Content
2012-10-22 15:45:47 -04:00
if ( $fsContent > 0 ) {
2016-03-23 23:34:18 -04:00
$fileContent = fread ( $fp , $fsContent ); //reading string $XmlContent
2012-10-22 15:45:47 -04:00
$newFileName = $pathMailTem . $sFileName ;
2016-03-23 23:34:18 -04:00
$bytesSaved = @ file_put_contents ( $newFileName , $fileContent );
2017-02-14 09:35:46 -04:00
if ( $bytesSaved === false ){
2016-03-23 23:34:18 -04:00
throw ( new Exception ( 'Error writing MailTemplate file in directory : ' . $pathMailTem ));
2012-10-22 15:45:47 -04:00
}
2017-02-14 09:35:46 -04:00
if ( $bytesSaved != $fsContent ) {
$channel = " writingMailTemplate " ;
$context = \Bootstrap :: getDefaultContextLog ();
$context [ 'action' ] = $channel ;
if ( defined ( " SYS_CURRENT_URI " ) && defined ( " SYS_CURRENT_PARMS " )) {
$context [ 'url' ] = SYS_CURRENT_URI . '?' . SYS_CURRENT_PARMS ;
}
$context [ 'usrUid' ] = isset ( $_SESSION [ 'USER_LOGGED' ]) ? $_SESSION [ 'USER_LOGGED' ] : '' ;
$sysSys = defined ( " SYS_SYS " ) ? SYS_SYS : " Undefined " ;
$message = 'The imported template has a number of byes different than the original template, please verify if the file \'' . $newFileName . '\' is correct.' ;
$level = 400 ;
Bootstrap :: registerMonolog ( $channel , $level , $message , $context , $sysSys , 'processmaker.log' );
}
2012-10-22 15:45:47 -04:00
}
}
}
}
2016-03-23 23:34:18 -04:00
if ( trim ( $sIdentifier ) == 'PUBLIC' ) {
2015-05-25 10:20:42 -04:00
//Get WebEntry file names
$arrayWebEntryFile = array ();
$fh = fopen ( $pmFilename , " rb " );
$contents = fread ( $fh , intval ( fread ( $fh , 9 ))); //Reading string $oData
while ( ! feof ( $fh )) {
$fsFileName = intval ( fread ( $fh , 9 )); //Reading the size of $filename
if ( $fsFileName > 0 ) {
$sFileName = fread ( $fh , $fsFileName ); //Reading filename string
if ( preg_match ( " /^(.+)Post \ .php $ / " , $sFileName , $arrayMatch )) {
$arrayWebEntryFile [] = $arrayMatch [ 1 ] . " .php " ;
$arrayWebEntryFile [] = $arrayMatch [ 1 ] . " Post.php " ;
}
}
}
fclose ( $fh );
//Public files
2012-10-22 15:45:47 -04:00
$sIdentifier = 1 ;
2016-03-23 23:34:18 -04:00
while ( ! feof ( $fp ) && is_numeric ( $sIdentifier )) {
$sIdentifier = fread ( $fp , 9 ); //reading the size of $filename
if ( is_numeric ( $sIdentifier )) {
$fsFileName = intval ( $sIdentifier ); //reading the size of $filename
2012-10-22 15:45:47 -04:00
if ( $fsFileName > 0 ) {
2016-03-23 23:34:18 -04:00
$sFileName = fread ( $fp , $fsFileName ); //reading filename string
2012-10-22 15:45:47 -04:00
}
2016-03-23 23:34:18 -04:00
$fsContent = intval ( fread ( $fp , 9 )) or 0 ; //reading the size of $Content
2012-10-22 15:45:47 -04:00
if ( $fsContent > 0 ) {
2016-03-23 23:34:18 -04:00
$fileContent = fread ( $fp , $fsContent ); //reading string $XmlContent
2012-10-22 15:45:47 -04:00
$newFileName = $pathPublic . $sFileName ;
2015-05-27 14:53:05 -04:00
2015-05-25 10:20:42 -04:00
if ( in_array ( $sFileName , $arrayWebEntryFile )) {
continue ;
}
2016-03-23 23:34:18 -04:00
$bytesSaved = @ file_put_contents ( $newFileName , $fileContent );
2012-10-22 15:45:47 -04:00
if ( $bytesSaved != $fsContent ) {
2016-03-23 23:34:18 -04:00
throw ( new Exception ( 'Error writing Public file in directory : ' . $pathPublic ));
2012-10-22 15:45:47 -04:00
}
}
}
}
}
2016-03-23 23:34:18 -04:00
fclose ( $fp );
2012-10-22 15:45:47 -04:00
return true ;
2015-05-25 09:22:48 -04:00
2012-10-22 15:45:47 -04:00
}
2013-08-20 14:04:48 -04:00
/**
2014-04-30 12:00:22 -04:00
* The current method is for filter every row that exist in
* the Configuration table
2013-08-20 14:04:48 -04:00
*
* @ param array $aTaskExtraProperties
* @ return void
*/
2016-03-23 23:34:18 -04:00
public function createTaskExtraPropertiesRows ( $aTaskExtraProperties )
2013-08-20 14:04:48 -04:00
{
2013-08-21 15:52:30 -04:00
if ( count ( $aTaskExtraProperties ) > 0 ) {
foreach ( $aTaskExtraProperties as $key => $row ) {
2015-05-27 14:53:05 -04:00
$oConfig = new Configuration ();
2016-03-23 23:34:18 -04:00
if ( $oConfig -> exists ( $row [ 'CFG_UID' ], $row [ 'OBJ_UID' ], $row [ 'PRO_UID' ], $row [ 'USR_UID' ], $row [ 'APP_UID' ])) {
$oConfig -> remove ( $row [ 'CFG_UID' ], $row [ 'OBJ_UID' ], $row [ 'PRO_UID' ], $row [ 'USR_UID' ], $row [ 'APP_UID' ]);
2013-08-21 15:52:30 -04:00
$oConfig -> setDeleted ( false );
}
2016-03-23 23:34:18 -04:00
$res = $oConfig -> create ( $row );
2013-08-21 15:52:30 -04:00
$oConfig -> setNew ( true );
2014-04-30 12:00:22 -04:00
if ( method_exists ( $oConfig , " setProperties " )) {
$oConfig -> setProperties ();
}
2013-08-20 14:04:48 -04:00
}
2014-04-30 12:00:22 -04:00
}
2013-08-20 14:04:48 -04:00
return ;
}
2012-10-22 15:45:47 -04:00
/**
* this function remove all Process except the PROCESS ROW
*
* @ param string $sProUid
* @ return boolean
*/
2016-03-23 23:34:18 -04:00
public function removeProcessRows ( $sProUid )
2012-10-22 15:45:47 -04:00
{
try {
2012-10-09 13:01:32 -04:00
//Instance all classes necesaries
2012-10-22 15:45:47 -04:00
$oProcess = new Process ();
$oDynaform = new Dynaform ();
$oInputDocument = new InputDocument ();
$oOutputDocument = new OutputDocument ();
$oTrigger = new Triggers ();
$oStepTrigger = new StepTrigger ();
$oRoute = new Route ();
$oStep = new Step ();
$oSubProcess = new SubProcess ();
$oCaseTracker = new CaseTracker ();
$oCaseTrackerObject = new CaseTrackerObject ();
$oObjectPermission = new ObjectPermission ();
$oSwimlaneElement = new SwimlanesElements ();
$oConnection = new DbSource ();
$oStage = new Stage ();
$oEvent = new Event ();
$oCaseScheduler = new CaseScheduler ();
2013-08-20 14:04:48 -04:00
$oConfig = new Configuration ();
2012-10-22 15:45:47 -04:00
2012-10-09 13:01:32 -04:00
//Delete the tasks of process
2016-03-23 23:34:18 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> add ( TaskPeer :: PRO_UID , $sProUid );
$oDataset = TaskPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-22 15:45:47 -04:00
$oDataset -> next ();
$oTask = new Task ();
while ( $aRow = $oDataset -> getRow ()) {
2016-03-23 23:34:18 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> add ( StepTriggerPeer :: TAS_UID , $aRow [ 'TAS_UID' ]);
StepTriggerPeer :: doDelete ( $oCriteria );
if ( $oTask -> taskExists ( $aRow [ 'TAS_UID' ])) {
$oTask -> remove ( $aRow [ 'TAS_UID' ]);
2012-10-22 15:45:47 -04:00
}
$oDataset -> next ();
}
2012-10-09 13:01:32 -04:00
//Delete the dynaforms of process
2016-03-23 23:34:18 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> add ( DynaformPeer :: PRO_UID , $sProUid );
$oDataset = DynaformPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-22 15:45:47 -04:00
$oDataset -> next ();
while ( $aRow = $oDataset -> getRow ()) {
$sWildcard = PATH_DYNAFORM . $aRow [ 'PRO_UID' ] . PATH_SEP . $aRow [ 'DYN_UID' ] . '_tmp*' ;
2016-03-23 23:34:18 -04:00
foreach ( glob ( $sWildcard ) as $fn ) {
@ unlink ( $fn );
2012-10-22 15:45:47 -04:00
}
$sWildcard = PATH_DYNAFORM . $aRow [ 'PRO_UID' ] . PATH_SEP . $aRow [ 'DYN_UID' ] . '.*' ;
2016-03-23 23:34:18 -04:00
foreach ( glob ( $sWildcard ) as $fn ) {
@ unlink ( $fn );
2012-10-22 15:45:47 -04:00
}
2016-03-23 23:34:18 -04:00
if ( $oDynaform -> dynaformExists ( $aRow [ 'DYN_UID' ])) {
$oDynaform -> remove ( $aRow [ 'DYN_UID' ]);
2012-10-22 15:45:47 -04:00
}
$oDataset -> next ();
}
2012-10-09 13:01:32 -04:00
//Delete the input documents of process
2016-03-23 23:34:18 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> add ( InputDocumentPeer :: PRO_UID , $sProUid );
$oDataset = InputDocumentPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-22 15:45:47 -04:00
$oDataset -> next ();
while ( $aRow = $oDataset -> getRow ()) {
2016-03-23 23:34:18 -04:00
if ( $oInputDocument -> InputExists ( $aRow [ 'INP_DOC_UID' ])) {
$oInputDocument -> remove ( $aRow [ 'INP_DOC_UID' ]);
2012-10-22 15:45:47 -04:00
}
$oDataset -> next ();
}
2012-10-09 13:01:32 -04:00
//Delete the output documents of process
2016-03-23 23:34:18 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> add ( OutputDocumentPeer :: PRO_UID , $sProUid );
$oDataset = OutputDocumentPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-22 15:45:47 -04:00
$oDataset -> next ();
while ( $aRow = $oDataset -> getRow ()) {
2016-03-23 23:34:18 -04:00
if ( $oOutputDocument -> OutputExists ( $aRow [ 'OUT_DOC_UID' ])) {
$oOutputDocument -> remove ( $aRow [ 'OUT_DOC_UID' ]);
2012-10-22 15:45:47 -04:00
}
$oDataset -> next ();
}
2012-10-09 13:01:32 -04:00
//Delete the steps
2016-03-23 23:34:18 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> add ( StepPeer :: PRO_UID , $sProUid );
$oDataset = StepPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-22 15:45:47 -04:00
$oDataset -> next ();
while ( $aRow = $oDataset -> getRow ()) {
//Delete the steptrigger of process
/* $oCriteria = new Criteria ( 'workflow' );
$oCriteria -> add ( StepTriggerPeer :: STEP_UID , $aRow [ 'STEP_UID' ]);
$oDataseti = StepTriggerPeer :: doSelectRS ( $oCriteria );
$oDataseti -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
$oDataseti -> next ();
while ( $aRowi = $oDataseti -> getRow ()) {
if ( $oStepTrigger -> stepTriggerExists ( $aRowi [ 'STEP_UID' ], $aRowi [ 'TAS_UID' ], $aRowi [ 'TRI_UID' ], $aRowi [ 'ST_TYPE' ]))
$oStepTrigger -> remove ( $aRowi [ 'STEP_UID' ], $aRowi [ 'TAS_UID' ], $aRowi [ 'TRI_UID' ], $aRowi [ 'ST_TYPE' ]);
$oDataseti -> next ();
} */
2016-03-23 23:34:18 -04:00
$oStep -> remove ( $aRow [ 'STEP_UID' ]);
2012-10-22 15:45:47 -04:00
$oDataset -> next ();
}
2012-10-09 13:01:32 -04:00
//Delete the StepSupervisor
2016-03-23 23:34:18 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> add ( StepSupervisorPeer :: PRO_UID , $sProUid );
$oDataset = StepSupervisorPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-22 15:45:47 -04:00
$oDataset -> next ();
while ( $aRow = $oDataset -> getRow ()) {
2016-03-23 23:34:18 -04:00
if ( $oStep -> StepExists ( $aRow [ 'STEP_UID' ])) {
$oStep -> remove ( $aRow [ 'STEP_UID' ]);
2012-10-22 15:45:47 -04:00
}
$oDataset -> next ();
}
2012-10-09 13:01:32 -04:00
//Delete the triggers of process
2016-03-23 23:34:18 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> add ( TriggersPeer :: PRO_UID , $sProUid );
$oDataset = TriggersPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-22 15:45:47 -04:00
$oDataset -> next ();
while ( $aRow = $oDataset -> getRow ()) {
2016-03-23 23:34:18 -04:00
if ( $oTrigger -> TriggerExists ( $aRow [ 'TRI_UID' ])) {
$oTrigger -> remove ( $aRow [ 'TRI_UID' ]);
2012-10-22 15:45:47 -04:00
}
$oDataset -> next ();
}
//Delete the routes of process
2016-03-23 23:34:18 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> add ( RoutePeer :: PRO_UID , $sProUid );
$oDataset = RoutePeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-22 15:45:47 -04:00
$oDataset -> next ();
while ( $aRow = $oDataset -> getRow ()) {
2016-03-23 23:34:18 -04:00
if ( $oRoute -> routeExists ( $aRow [ 'ROU_UID' ])) {
$oRoute -> remove ( $aRow [ 'ROU_UID' ]);
2012-10-22 15:45:47 -04:00
}
$oDataset -> next ();
}
2012-10-09 13:01:32 -04:00
//Delete the swimlanes elements of process
2016-03-23 23:34:18 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> add ( SwimlanesElementsPeer :: PRO_UID , $sProUid );
$oDataset = SwimlanesElementsPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-22 15:45:47 -04:00
$oDataset -> next ();
while ( $aRow = $oDataset -> getRow ()) {
2016-03-23 23:34:18 -04:00
if ( $oSwimlaneElement -> swimlanesElementsExists ( $aRow [ 'SWI_UID' ])) {
$oSwimlaneElement -> remove ( $aRow [ 'SWI_UID' ]);
2012-10-22 15:45:47 -04:00
}
$oDataset -> next ();
}
2012-10-09 13:01:32 -04:00
//Delete the DB connections of process
2016-03-23 23:34:18 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> add ( DbSourcePeer :: PRO_UID , $sProUid );
$oDataset = DbSourcePeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-22 15:45:47 -04:00
$oDataset -> next ();
while ( $aRow = $oDataset -> getRow ()) {
2016-03-23 23:34:18 -04:00
if ( $oConnection -> Exists ( $aRow [ 'DBS_UID' ], $aRow [ 'PRO_UID' ])) {
$oConnection -> remove ( $aRow [ 'DBS_UID' ], $aRow [ 'PRO_UID' ]);
2012-10-22 15:45:47 -04:00
}
$oDataset -> next ();
}
2012-10-09 13:01:32 -04:00
//Delete the sub process of process
2016-03-23 23:34:18 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> add ( SubProcessPeer :: PRO_PARENT , $sProUid );
$oDataset = SubProcessPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-22 15:45:47 -04:00
$oDataset -> next ();
while ( $aRow = $oDataset -> getRow ()) {
2016-03-23 23:34:18 -04:00
if ( $oSubProcess -> subProcessExists ( $aRow [ 'SP_UID' ])) {
$oSubProcess -> remove ( $aRow [ 'SP_UID' ]);
2012-10-22 15:45:47 -04:00
}
$oDataset -> next ();
}
2012-10-09 13:01:32 -04:00
//Delete the caseTracker of process
2016-03-23 23:34:18 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> add ( CaseTrackerPeer :: PRO_UID , $sProUid );
$oDataset = CaseTrackerPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-22 15:45:47 -04:00
$oDataset -> next ();
while ( $aRow = $oDataset -> getRow ()) {
2016-03-23 23:34:18 -04:00
if ( $oCaseTracker -> caseTrackerExists ( $aRow [ 'PRO_UID' ])) {
$oCaseTracker -> remove ( $aRow [ 'PRO_UID' ]);
2012-10-22 15:45:47 -04:00
}
$oDataset -> next ();
}
2012-10-09 13:01:32 -04:00
//Delete the caseTrackerObject of process
2016-03-23 23:34:18 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> add ( CaseTrackerObjectPeer :: PRO_UID , $sProUid );
$oDataset = CaseTrackerObjectPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-22 15:45:47 -04:00
$oDataset -> next ();
while ( $aRow = $oDataset -> getRow ()) {
2016-03-23 23:34:18 -04:00
if ( $oCaseTrackerObject -> caseTrackerObjectExists ( $aRow [ 'CTO_UID' ])) {
$oCaseTrackerObject -> remove ( $aRow [ 'CTO_UID' ]);
2012-10-22 15:45:47 -04:00
}
$oDataset -> next ();
}
2012-10-09 13:01:32 -04:00
//Delete the ObjectPermission of process
2016-03-23 23:34:18 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> add ( ObjectPermissionPeer :: PRO_UID , $sProUid );
$oDataset = ObjectPermissionPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-22 15:45:47 -04:00
$oDataset -> next ();
while ( $aRow = $oDataset -> getRow ()) {
2016-03-23 23:34:18 -04:00
if ( $oObjectPermission -> Exists ( $aRow [ 'OP_UID' ])) {
$oObjectPermission -> remove ( $aRow [ 'OP_UID' ]);
2012-10-22 15:45:47 -04:00
}
$oDataset -> next ();
}
2012-10-09 13:01:32 -04:00
//Delete the Stage of process
2016-03-23 23:34:18 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> add ( StagePeer :: PRO_UID , $sProUid );
$oDataset = StagePeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-22 15:45:47 -04:00
$oDataset -> next ();
while ( $aRow = $oDataset -> getRow ()) {
2016-03-23 23:34:18 -04:00
if ( $oStage -> Exists ( $aRow [ 'STG_UID' ])) {
$oStage -> remove ( $aRow [ 'STG_UID' ]);
2012-10-22 15:45:47 -04:00
}
$oDataset -> next ();
}
2012-10-09 13:01:32 -04:00
//Delete the Event of process
2016-03-23 23:34:18 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> add ( EventPeer :: PRO_UID , $sProUid );
$oDataset = EventPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-22 15:45:47 -04:00
$oDataset -> next ();
while ( $aRow = $oDataset -> getRow ()) {
2016-03-23 23:34:18 -04:00
if ( $oEvent -> Exists ( $aRow [ 'EVN_UID' ])) {
$oEvent -> remove ( $aRow [ 'EVN_UID' ]);
2012-10-22 15:45:47 -04:00
}
$oDataset -> next ();
2016-03-23 23:34:18 -04:00
if ( $oEvent -> existsByTaskUidFrom ( $aRow [ 'TAS_UID' ])) {
$aRowEvent = $oEvent -> getRowByTaskUidFrom ( $aRow [ 'TAS_UID' ]);
$oEvent -> remove ( $aRowEvent [ 'EVN_UID' ]);
2012-10-22 15:45:47 -04:00
}
$oDataset -> next ();
}
2012-10-09 13:01:32 -04:00
//Delete the CaseScheduler of process
2016-03-23 23:34:18 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> add ( CaseSchedulerPeer :: PRO_UID , $sProUid );
$oDataset = CaseSchedulerPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-22 15:45:47 -04:00
$oDataset -> next ();
while ( $aRow = $oDataset -> getRow ()) {
2016-03-23 23:34:18 -04:00
if ( $oCaseScheduler -> Exists ( $aRow [ 'SCH_UID' ])) {
$oCaseScheduler -> remove ( $aRow [ 'SCH_UID' ]);
2012-10-22 15:45:47 -04:00
}
$oDataset -> next ();
}
2013-08-20 14:04:48 -04:00
//Delete the TaskExtraProperties of the process
2016-03-23 23:34:18 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> addSelectColumn ( ConfigurationPeer :: CFG_UID );
$oCriteria -> addSelectColumn ( ConfigurationPeer :: OBJ_UID );
$oCriteria -> addSelectColumn ( ConfigurationPeer :: CFG_VALUE );
$oCriteria -> addSelectColumn ( TaskPeer :: PRO_UID );
$oCriteria -> addSelectColumn ( ConfigurationPeer :: USR_UID );
$oCriteria -> addSelectColumn ( ConfigurationPeer :: APP_UID );
$oCriteria -> add ( TaskPeer :: PRO_UID , $sProUid );
$oCriteria -> add ( ConfigurationPeer :: CFG_UID , 'TAS_EXTRA_PROPERTIES' );
$oCriteria -> addJoin ( ConfigurationPeer :: OBJ_UID , TaskPeer :: TAS_UID );
$oDataset = ConfigurationPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2013-08-20 14:04:48 -04:00
$oDataset -> next ();
while ( $aRow = $oDataset -> getRow ()) {
if ( $oConfig -> exists ( $aRow [ 'CFG_UID' ], $aRow [ 'OBJ_UID' ], $aRow [ 'PRO_UID' ], $aRow [ 'USR_UID' ], $aRow [ 'APP_UID' ])) {
2016-03-23 23:34:18 -04:00
$oConfig -> remove ( $aRow [ 'CFG_UID' ], $aRow [ 'OBJ_UID' ], $aRow [ 'PRO_UID' ], $aRow [ 'USR_UID' ], $aRow [ 'APP_UID' ]);
2013-08-20 14:04:48 -04:00
}
$oDataset -> next ();
}
2012-10-22 15:45:47 -04:00
return true ;
} catch ( Exception $oError ) {
throw ( $oError );
}
}
/**
* this function creates a new Process , defined in the object $oData
*
* @ param string $sProUid
* @ return boolean
*/
2016-03-23 23:34:18 -04:00
public function createProcessFromData ( $oData , $pmFilename )
2012-10-22 15:45:47 -04:00
{
2016-03-23 23:34:18 -04:00
$this -> removeProcessRows ( $oData -> process [ 'PRO_UID' ]);
2012-10-22 15:45:47 -04:00
2012-10-09 13:01:32 -04:00
// (*) Creating process dependencies
// creating the process category
2016-03-23 23:34:18 -04:00
$this -> createProcessCategoryRow ( isset ( $oData -> processCategory ) ? $oData -> processCategory : null );
2012-10-22 15:45:47 -04:00
2012-10-09 13:01:32 -04:00
// create the process
2014-05-08 14:35:37 -04:00
$this -> createProcessRow ( $oData -> process );
2016-03-23 23:34:18 -04:00
$this -> createTaskRows ( $oData -> tasks );
2012-10-09 13:01:32 -04:00
//it was commented becuase it seems to be working fine
//$this->createEventRows(isset($oData->event) ? $oData->event : array());
2012-10-22 15:45:47 -04:00
2016-03-23 23:34:18 -04:00
$aRoutesUID = $this -> createRouteRows ( $oData -> routes );
2014-03-27 19:11:11 -04:00
$this -> createProcessPropertiesFromData ( $oData );
// $this->createLaneRows( $oData->lanes );
//
//
// if (isset( $oData->gateways )) {
// $this->createGatewayRows( $oData->gateways );
// }
// $this->createDynaformRows( $oData->dynaforms );
// $this->createInputRows( $oData->inputs );
// $this->createOutputRows( $oData->outputs );
// $this->createStepRows( $oData->steps );
// $this->createStepSupervisorRows( isset( $oData->stepSupervisor ) ? $oData->stepSupervisor : array () );
// $this->createTriggerRows( $oData->triggers );
// $this->createStepTriggerRows( $oData->steptriggers );
// $this->createTaskUserRows( $oData->taskusers );
// $this->createGroupRow( $oData->groupwfs );
// $this->createDBConnectionsRows( isset( $oData->dbconnections ) ? $oData->dbconnections : array () );
// $this->createReportTables( isset( $oData->reportTables ) ? $oData->reportTables : array (), isset( $oData->reportTablesVars ) ? $oData->reportTablesVars : array () );
// $this->createSubProcessRows( isset( $oData->subProcess ) ? $oData->subProcess : array () );
// $this->createCaseTrackerRows( isset( $oData->caseTracker ) ? $oData->caseTracker : array () );
// $this->createCaseTrackerObjectRows( isset( $oData->caseTrackerObject ) ? $oData->caseTrackerObject : array () );
// $this->createObjectPermissionsRows( isset( $oData->objectPermissions ) ? $oData->objectPermissions : array () );
// $this->createStageRows( isset( $oData->stage ) ? $oData->stage : array () );
//
// $this->createFieldCondition( isset( $oData->fieldCondition ) ? $oData->fieldCondition : array (), $oData->dynaforms );
//
// // Create before to createRouteRows for avoid duplicates
// $this->createEventRows( isset( $oData->event ) ? $oData->event : array () );
//
// $this->createCaseSchedulerRows( isset( $oData->caseScheduler ) ? $oData->caseScheduler : array () );
//
// //Create data related to Configuration table
// $this->createTaskExtraPropertiesRows( isset( $oData->taskExtraProperties ) ? $oData->taskExtraProperties : array () );
// and finally create the files, dynaforms (xml and html), emailTemplates and Public files
2016-03-23 23:34:18 -04:00
$this -> createFiles ( $oData , $pmFilename );
2014-03-27 19:11:11 -04:00
}
2016-03-23 23:34:18 -04:00
public function createProcessPropertiesFromData ( $oData )
2014-03-27 19:11:11 -04:00
{
2015-01-22 15:27:35 -04:00
$arrayProcessData = $oData -> process ;
2014-03-27 19:11:11 -04:00
// (*) Creating process dependencies
// creating the process category
2016-03-23 23:34:18 -04:00
$this -> createProcessCategoryRow ( isset ( $oData -> processCategory ) ? $oData -> processCategory : null );
2014-03-27 19:11:11 -04:00
2016-03-23 23:34:18 -04:00
$this -> createLaneRows ( $oData -> lanes );
2012-10-22 15:45:47 -04:00
2016-03-23 23:34:18 -04:00
if ( isset ( $oData -> gateways )) {
$this -> createGatewayRows ( $oData -> gateways );
2012-10-22 15:45:47 -04:00
}
2016-03-23 23:34:18 -04:00
$this -> createDynaformRows ( $oData -> dynaforms );
$this -> createInputRows ( $oData -> inputs );
$this -> createOutputRows ( $oData -> outputs );
$this -> createStepRows ( $oData -> steps );
$this -> createStepSupervisorRows ( isset ( $oData -> stepSupervisor ) ? $oData -> stepSupervisor : array ());
$this -> createTriggerRows ( $oData -> triggers );
$this -> createStepTriggerRows ( $oData -> steptriggers );
$this -> createTaskUserRows ( $oData -> taskusers );
$this -> createGroupRow ( $oData -> groupwfs );
$this -> createDBConnectionsRows ( isset ( $oData -> dbconnections ) ? $oData -> dbconnections : array ());
$this -> createReportTables ( isset ( $oData -> reportTables ) ? $oData -> reportTables : array (), isset ( $oData -> reportTablesVars ) ? $oData -> reportTablesVars : array ());
$this -> createSubProcessRows ( isset ( $oData -> subProcess ) ? $oData -> subProcess : array ());
$this -> createCaseTrackerRows ( isset ( $oData -> caseTracker ) ? $oData -> caseTracker : array ());
$this -> createCaseTrackerObjectRows ( isset ( $oData -> caseTrackerObject ) ? $oData -> caseTrackerObject : array ());
$this -> createObjectPermissionsRows ( isset ( $oData -> objectPermissions ) ? $oData -> objectPermissions : array ());
$this -> createStageRows ( isset ( $oData -> stage ) ? $oData -> stage : array ());
2012-10-22 15:45:47 -04:00
2016-03-23 23:34:18 -04:00
$this -> createFieldCondition ( isset ( $oData -> fieldCondition ) ? $oData -> fieldCondition : array (), $oData -> dynaforms );
2012-10-22 15:45:47 -04:00
2012-10-09 13:01:32 -04:00
// Create before to createRouteRows for avoid duplicates
2016-03-23 23:34:18 -04:00
$this -> createEventRows ( isset ( $oData -> event ) ? $oData -> event : array ());
2012-10-22 15:45:47 -04:00
2016-03-23 23:34:18 -04:00
$this -> createCaseSchedulerRows ( isset ( $oData -> caseScheduler ) ? $oData -> caseScheduler : array ());
2012-10-22 15:45:47 -04:00
2013-08-20 14:04:48 -04:00
//Create data related to Configuration table
2016-03-23 23:34:18 -04:00
$this -> createTaskExtraPropertiesRows ( isset ( $oData -> taskExtraProperties ) ? $oData -> taskExtraProperties : array ());
2014-05-14 10:26:45 -04:00
2016-03-23 23:34:18 -04:00
$this -> createProcessUser (( isset ( $oData -> processUser )) ? $oData -> processUser : array ());
$this -> createProcessVariables (( isset ( $oData -> processVariables )) ? $oData -> processVariables : array ());
$this -> createWebEntry ( $arrayProcessData [ " PRO_UID " ], $arrayProcessData [ " PRO_CREATE_USER " ], ( isset ( $oData -> webEntry )) ? $oData -> webEntry : array ());
$this -> createWebEntryEvent ( $arrayProcessData [ " PRO_UID " ], $arrayProcessData [ " PRO_CREATE_USER " ], ( isset ( $oData -> webEntryEvent )) ? $oData -> webEntryEvent : array ());
$this -> createMessageType (( isset ( $oData -> messageType )) ? $oData -> messageType : array ());
$this -> createMessageTypeVariable (( isset ( $oData -> messageTypeVariable )) ? $oData -> messageTypeVariable : array ());
$this -> createMessageEventDefinition ( $arrayProcessData [ " PRO_UID " ], ( isset ( $oData -> messageEventDefinition )) ? $oData -> messageEventDefinition : array ());
$this -> createScriptTask ( $arrayProcessData [ " PRO_UID " ], ( isset ( $oData -> scriptTask )) ? $oData -> scriptTask : array ());
$this -> createTimerEvent ( $arrayProcessData [ " PRO_UID " ], ( isset ( $oData -> timerEvent )) ? $oData -> timerEvent : array ());
$this -> createEmailEvent ( $arrayProcessData [ " PRO_UID " ], ( isset ( $oData -> emailEvent )) ? $oData -> emailEvent : array ());
$this -> createActionsByEmail ( $arrayProcessData [ " PRO_UID " ], ( isset ( $oData -> abeConfiguration )) ? $oData -> abeConfiguration : array ());
$this -> createFilesManager ( $arrayProcessData [ " PRO_UID " ], ( isset ( $oData -> filesManager )) ? $oData -> filesManager : array ());
2012-10-22 15:45:47 -04:00
}
2017-03-01 09:57:37 -04:00
/**
2017-03-01 15:03:18 -04:00
*
2017-03-01 09:57:37 -04:00
* @ param type $oData
*/
public function loadIdsFromData ( $oData )
{
2017-03-02 14:11:47 -04:00
if ( is_array ( $oData )) {
2017-03-06 17:17:48 -04:00
$oData [ 'process' ] = $this -> loadIdsFor (
2017-03-02 14:11:47 -04:00
Process :: class ,
ProcessPeer :: PRO_UID ,
ProcessPeer :: PRO_ID ,
$oData [ 'process' ]
);
2017-03-06 17:17:48 -04:00
$oData [ 'tasks' ] = $this -> loadIdsFor (
2017-03-02 14:11:47 -04:00
Task :: class ,
TaskPeer :: TAS_UID ,
TaskPeer :: TAS_ID ,
$oData [ 'tasks' ]
);
} else {
2017-03-06 17:17:48 -04:00
$oData -> process = $this -> loadIdsFor (
2017-03-02 14:11:47 -04:00
Process :: class ,
ProcessPeer :: PRO_UID ,
ProcessPeer :: PRO_ID ,
$oData -> process
);
2017-03-06 17:17:48 -04:00
$oData -> tasks = $this -> loadIdsFor (
2017-03-02 14:11:47 -04:00
Task :: class ,
TaskPeer :: TAS_UID ,
TaskPeer :: TAS_ID ,
$oData -> tasks
);
}
2017-03-01 15:03:18 -04:00
/**
* @ todo The following code matches the Models and the correspondent Property
* in the imported data object , so it could be used to change the UID
* fields by ID on the other tables .
* $this -> loadIdsFor ( ProcessCategory :: class , ProcessCategoryPeer :: CATEGORY_UID , ? , $oData -> processCategory );
* $this -> loadIdsFor ( SwimlanesElements :: class , ? , ? , $oData -> lanes );
* $this -> loadIdsFor ( Gateway :: class , GatewayPeer :: GAT_UID , ? , $oData -> gateways );
* $this -> loadIdsFor ( Dynaform :: class , $oData -> dynaforms );
* $this -> loadIdsFor ( InputDocument :: class , $oData -> inputs );
* $this -> loadIdsFor ( OutputDocument :: class , $oData -> outputs );
* $this -> loadIdsFor ( Step :: class , $oData -> steps );
* $this -> loadIdsFor ( StepSupervisor :: class , $oData -> stepSupervisor );
* $this -> loadIdsFor ( Triggers :: class , $oData -> triggers );
* $this -> loadIdsFor ( StepTrigger :: class , $oData -> steptriggers );
* $this -> loadIdsFor ( TaskUser :: class , ? , ? , $oData -> taskusers );
* $this -> loadIdsFor ( Groupwf :: class , $oData -> groupwfs );
* $this -> loadIdsFor ( DbSource :: class , $oData -> dbconnections );
* $this -> loadIdsFor ( ReportTables :: class , $oData -> reportTablesVars );
* $this -> loadIdsFor ( SubProcess :: class , $oData -> subProcess );
* $this -> loadIdsFor ( CaseTracker :: class , $oData -> caseTracker );
* $this -> loadIdsFor ( CaseTrackerObject :: class , $oData -> caseTrackerObject );
* $this -> loadIdsFor ( ObjectPermission :: class , $oData -> objectPermissions );
* $this -> loadIdsFor ( Stage :: class , $oData -> stage );
* $this -> loadIdsFor ( FieldCondition :: class , $oData -> fieldCondition );
* $this -> loadIdsFor ( Event :: class , $oData -> event );
* $this -> loadIdsFor ( CaseScheduler :: class , $oData -> caseScheduler );
* $this -> loadIdsFor ( Configuration :: class , $oData -> taskExtraProperties );
* $this -> loadIdsFor ( ProcessUser :: class , $oData -> processUser );
* $this -> loadIdsFor ( ProcessVariables :: class , $oData -> processVariables );
* $this -> loadIdsFor ( \ProcessMaker\BusinessModel\WebEntry :: class , $arrayProcessData [ " PRO_UID " ], $arrayProcessData [ " PRO_CREATE_USER " ], $oData -> webEntry );
* $this -> loadIdsFor ( \ProcessMaker\BusinessModel\WebEntryEvent :: class , $arrayProcessData [ " PRO_UID " ], $arrayProcessData [ " PRO_CREATE_USER " ], $oData -> webEntryEvent );
* $this -> loadIdsFor ( \ProcessMaker\BusinessModel\MessageType :: class , $oData -> messageType );
* $this -> loadIdsFor ( \ProcessMaker\BusinessModel\MessageType\Variable :: class , $oData -> messageTypeVariable );
* $this -> loadIdsFor ( \ProcessMaker\BusinessModel\MessageEventDefinition :: class , $arrayProcessData [ " PRO_UID " ], $oData -> messageEventDefinition );
* $this -> loadIdsFor ( \ProcessMaker\BusinessModel\ScriptTask :: class , $arrayProcessData [ " PRO_UID " ], $oData -> scriptTask );
* $this -> loadIdsFor ( \ProcessMaker\BusinessModel\TimerEvent :: class , $arrayProcessData [ " PRO_UID " ], $oData -> timerEvent );
* $this -> loadIdsFor ( \ProcessMaker\BusinessModel\EmailEvent :: class , $arrayProcessData [ " PRO_UID " ], $oData -> emailEvent );
* $this -> loadIdsFor ( AbeConfiguration :: class , $arrayProcessData [ " PRO_UID " ], $oData -> abeConfiguration );
* $this -> loadIdsFor ( \ProcessMaker\BusinessModel\FilesManager :: class , $arrayProcessData [ " PRO_UID " ], $oData -> filesManager );
*/
2017-03-01 09:57:37 -04:00
return $oData ;
}
2017-03-31 12:01:34 -04:00
/**
* @ param $modelClass
* @ param $uidTableField
* @ param $idTableField
* @ param $data
* @ return array
* @ throws Exception
*/
2017-03-02 14:18:55 -04:00
private function loadIdsFor ( $modelClass , $uidTableField , $idTableField ,
& $data )
2017-03-01 15:03:18 -04:00
{
if ( empty ( $data )) {
2017-03-01 09:57:37 -04:00
return $data ;
}
2017-03-01 15:03:18 -04:00
if ( ! is_array ( $data )) {
2017-03-31 12:01:34 -04:00
throw new Exception ( " Invalid input data form $modelClass ( $key ) " . G :: json_encode ( $data ));
2017-03-01 09:57:37 -04:00
}
2017-03-02 14:18:55 -04:00
$uidTableFieldArray = explode ( '.' , $uidTableField );
$idTableFieldArray = explode ( '.' , $idTableField );
if ( count ( $uidTableFieldArray ) !== 2 ) {
throw new Exception ( 'Invalid argument $uidTableField, expected a "TABLE.COLUMN" string' );
}
if ( count ( $idTableFieldArray ) !== 2 ) {
throw new Exception ( 'Invalid argument $idTableField, expected a "TABLE.COLUMN" string' );
}
$uidField = $uidTableFieldArray [ 1 ];
$idField = $idTableFieldArray [ 1 ];
2017-03-01 15:03:18 -04:00
if ( isset ( $data [ $uidField ])) {
//$data is an single row
2017-03-31 12:01:34 -04:00
$modelPeer = $modelClass . 'Peer' ;
$oRow = $modelPeer :: retrieveByPK ( $data [ $uidField ]);
if ( ! is_null ( $oRow )) {
$data [ $idField ] = $oRow -> getByName ( $idTableField , BasePeer :: TYPE_COLNAME );
}
2017-03-01 09:57:37 -04:00
} else {
//$data is an array of row
2017-03-06 17:17:48 -04:00
foreach ( $data as $i => $dataRow ) {
2017-03-31 12:01:34 -04:00
$modelPeer = $modelClass . 'Peer' ;
$oRow = $modelPeer :: retrieveByPK ( $dataRow [ $uidField ]);
if ( ! is_null ( $oRow )) {
$data [ $i ][ $idField ] = $oRow -> getByName ( $idTableField , BasePeer :: TYPE_COLNAME );
}
2017-03-01 09:57:37 -04:00
}
}
return $data ;
}
2012-10-22 15:45:47 -04:00
/**
* this function creates a new Process , defined in the object $oData
*
* @ param string $sProUid
* @ return boolean
*/
2016-03-23 23:34:18 -04:00
public function updateProcessFromData ( $oData , $pmFilename )
{
2017-03-02 14:11:47 -04:00
$oData = $this -> loadIdsFromData ( $oData );
2016-03-23 23:34:18 -04:00
$this -> updateProcessRow ( $oData -> process );
$this -> removeProcessRows ( $oData -> process [ 'PRO_UID' ]);
$this -> removeAllFieldCondition ( $oData -> dynaforms );
$this -> createTaskRows ( $oData -> tasks );
$this -> createRouteRows ( $oData -> routes );
$this -> createLaneRows ( $oData -> lanes );
$this -> createDynaformRows ( $oData -> dynaforms );
$this -> createInputRows ( $oData -> inputs );
$this -> createOutputRows ( $oData -> outputs );
$this -> createStepRows ( $oData -> steps );
$this -> createStepSupervisorRows ( $oData -> stepSupervisor );
$this -> createTriggerRows ( $oData -> triggers );
$this -> createStepTriggerRows ( $oData -> steptriggers );
$this -> createTaskUserRows ( $oData -> taskusers );
$this -> createGroupRow ( $oData -> groupwfs );
$this -> createDBConnectionsRows ( $oData -> dbconnections );
$this -> updateReportTables ( $oData -> reportTables , $oData -> reportTablesVars );
$this -> createFiles ( $oData , $pmFilename );
$this -> createSubProcessRows ( $oData -> subProcess );
$this -> createCaseTrackerRows ( $oData -> caseTracker );
$this -> createCaseTrackerObjectRows ( $oData -> caseTrackerObject );
$this -> createObjectPermissionsRows ( $oData -> objectPermissions );
$this -> createStageRows ( $oData -> stage );
$this -> createFieldCondition ( $oData -> fieldCondition , $oData -> dynaforms );
$this -> createEventRows ( $oData -> event );
$this -> createCaseSchedulerRows ( $oData -> caseScheduler );
$this -> createProcessCategoryRow ( isset ( $oData -> processCategory ) ? $oData -> processCategory : null );
$this -> createTaskExtraPropertiesRows ( isset ( $oData -> taskExtraProperties ) ? $oData -> taskExtraProperties : array ());
2012-10-22 15:45:47 -04:00
}
/**
* get the starting task for a user but from a Tasks object
*
* @ param $sProUid process uid
* @ param $sUserUid user uid
* @ return an array of tasks
*/
2016-03-23 23:34:18 -04:00
public function getStartingTaskForUser ( $sProUid , $sUsrUid )
2012-10-22 15:45:47 -04:00
{
$oTask = new Tasks ();
2016-03-23 23:34:18 -04:00
return $oTask -> getStartingTaskForUser ( $sProUid , $sUsrUid );
2012-10-22 15:45:47 -04:00
}
/**
* ***********************************************
* functions to enable open ProcessMaker Library
* ***********************************************
*/
/**
* Open a WebService connection
*
* @ param $user username for pm
* @ param $pass password for the user
* @ return 1 integer .
*/
2016-03-23 23:34:18 -04:00
public function ws_open ( $user , $pass )
2012-10-22 15:45:47 -04:00
{
global $sessionId ;
global $client ;
$endpoint = PML_WSDL_URL ;
$sessionId = '' ;
2016-03-23 23:34:18 -04:00
$proxy = array ();
2017-08-14 16:13:46 -04:00
$sysConf = System :: getSystemConfiguration ();
2012-10-22 15:45:47 -04:00
if ( $sysConf [ 'proxy_host' ] != '' ) {
$proxy [ 'proxy_host' ] = $sysConf [ 'proxy_host' ];
if ( $sysConf [ 'proxy_port' ] != '' ) {
$proxy [ 'proxy_port' ] = $sysConf [ 'proxy_port' ];
}
if ( $sysConf [ 'proxy_user' ] != '' ) {
$proxy [ 'proxy_login' ] = $sysConf [ 'proxy_user' ];
}
if ( $sysConf [ 'proxy_pass' ] != '' ) {
$proxy [ 'proxy_password' ] = $sysConf [ 'proxy_pass' ];
}
}
2016-03-23 23:34:18 -04:00
$client = new SoapClient ( $endpoint , $proxy );
$params = array ( 'userid' => $user , 'password' => $pass
2012-10-22 15:45:47 -04:00
);
2016-03-23 23:34:18 -04:00
$result = $client -> __SoapCall ( 'login' , array ( $params
));
2012-10-22 15:45:47 -04:00
if ( $result -> status_code == 0 ) {
$sessionId = $result -> message ;
return 1 ;
}
2016-03-23 23:34:18 -04:00
throw ( new Exception ( $result -> message ));
2012-10-22 15:45:47 -04:00
return 1 ;
}
/**
* Open a WebService public connection
*
* @ param $user username for pm
* @ param $pass password for the user
* @ return 1 integer .
*/
2016-03-23 23:34:18 -04:00
public function ws_open_public ()
2012-10-22 15:45:47 -04:00
{
global $sessionId ;
global $client ;
$endpoint = PML_WSDL_URL ;
$sessionId = '' ;
2016-03-23 23:34:18 -04:00
ini_set ( " soap.wsdl_cache_enabled " , " 0 " ); // enabling WSDL cache
2012-10-22 15:45:47 -04:00
try {
2016-03-23 23:34:18 -04:00
$proxy = array ();
2017-08-14 16:13:46 -04:00
$sysConf = System :: getSystemConfiguration ();
2012-10-22 15:45:47 -04:00
if ( $sysConf [ 'proxy_host' ] != '' ) {
$proxy [ 'proxy_host' ] = $sysConf [ 'proxy_host' ];
if ( $sysConf [ 'proxy_port' ] != '' ) {
$proxy [ 'proxy_port' ] = $sysConf [ 'proxy_port' ];
}
if ( $sysConf [ 'proxy_user' ] != '' ) {
$proxy [ 'proxy_login' ] = $sysConf [ 'proxy_user' ];
}
if ( $sysConf [ 'proxy_pass' ] != '' ) {
$proxy [ 'proxy_password' ] = $sysConf [ 'proxy_pass' ];
}
}
2016-03-23 23:34:18 -04:00
$client = @ new SoapClient ( $endpoint , $proxy );
2012-10-22 15:45:47 -04:00
} catch ( Exception $e ) {
2016-03-23 23:34:18 -04:00
throw ( new Exception ( $e -> getMessage ()));
2012-10-22 15:45:47 -04:00
}
return 1 ;
}
/**
* Consume the processList WebService
*
* @ return $result process list .
*/
2016-03-23 23:34:18 -04:00
public function ws_processList ()
2012-10-22 15:45:47 -04:00
{
global $sessionId ;
global $client ;
$endpoint = PML_WSDL_URL ;
2016-03-23 23:34:18 -04:00
$proxy = array ();
2017-08-14 16:13:46 -04:00
$sysConf = System :: getSystemConfiguration ();
2012-10-22 15:45:47 -04:00
if ( $sysConf [ 'proxy_host' ] != '' ) {
$proxy [ 'proxy_host' ] = $sysConf [ 'proxy_host' ];
if ( $sysConf [ 'proxy_port' ] != '' ) {
$proxy [ 'proxy_port' ] = $sysConf [ 'proxy_port' ];
}
if ( $sysConf [ 'proxy_user' ] != '' ) {
$proxy [ 'proxy_login' ] = $sysConf [ 'proxy_user' ];
}
if ( $sysConf [ 'proxy_pass' ] != '' ) {
$proxy [ 'proxy_password' ] = $sysConf [ 'proxy_pass' ];
}
}
2016-03-23 23:34:18 -04:00
$client = new SoapClient ( $endpoint , $proxy );
2012-10-22 15:45:47 -04:00
$sessionId = '' ;
2016-03-23 23:34:18 -04:00
$params = array ( 'sessionId' => $sessionId
2012-10-22 15:45:47 -04:00
);
2016-03-23 23:34:18 -04:00
$result = $client -> __SoapCall ( 'processList' , array ( $params
));
2012-10-22 15:45:47 -04:00
if ( $result -> status_code == 0 ) {
return $result ;
}
2016-03-23 23:34:18 -04:00
throw ( new Exception ( $result -> message ));
2012-10-22 15:45:47 -04:00
}
/**
* download a File
*
* @ param $file file to download
* @ param $local_path path of the file
* @ param $newfilename
* @ return $errorMsg process list .
*/
2016-03-23 23:34:18 -04:00
public function downloadFile ( $file , $local_path , $newfilename )
2012-10-22 15:45:47 -04:00
{
$err_msg = '' ;
2016-03-23 23:34:18 -04:00
$out = fopen ( $local_path . $newfilename , 'wb' );
2012-10-22 15:45:47 -04:00
if ( $out == false ) {
2016-03-23 23:34:18 -04:00
throw ( new Exception ( " File $newfilename not opened " ));
2012-10-22 15:45:47 -04:00
}
2016-03-23 23:34:18 -04:00
if ( ! function_exists ( 'curl_init' )) {
G :: SendTemporalMessage ( 'ID_CURLFUN_ISUNDEFINED' , " warning " , 'LABEL' , '' , '100%' , '' );
G :: header ( 'location: ../processes/processes_Library' );
2012-10-22 15:45:47 -04:00
die ();
}
$ch = curl_init ();
2016-03-23 23:34:18 -04:00
curl_setopt ( $ch , CURLOPT_FILE , $out );
curl_setopt ( $ch , CURLOPT_HEADER , 0 );
curl_setopt ( $ch , CURLOPT_URL , $file );
2012-10-22 15:45:47 -04:00
2016-03-23 23:34:18 -04:00
curl_exec ( $ch );
$errorMsg = curl_error ( $ch );
fclose ( $out );
2012-10-22 15:45:47 -04:00
2016-03-23 23:34:18 -04:00
curl_close ( $ch );
2012-10-22 15:45:47 -04:00
return $errorMsg ;
2012-10-09 13:01:32 -04:00
} //end function
2012-10-22 15:45:47 -04:00
/**
* get the process Data from a process
*
* @ param $proId process Uid
* @ return $result
*/
2016-03-23 23:34:18 -04:00
public function ws_processGetData ( $proId )
2012-10-22 15:45:47 -04:00
{
global $sessionId ;
global $client ;
$endpoint = PML_WSDL_URL ;
2016-03-23 23:34:18 -04:00
$proxy = array ();
2017-08-14 16:13:46 -04:00
$sysConf = System :: getSystemConfiguration ();
2012-10-22 15:45:47 -04:00
if ( $sysConf [ 'proxy_host' ] != '' ) {
$proxy [ 'proxy_host' ] = $sysConf [ 'proxy_host' ];
if ( $sysConf [ 'proxy_port' ] != '' ) {
$proxy [ 'proxy_port' ] = $sysConf [ 'proxy_port' ];
}
if ( $sysConf [ 'proxy_user' ] != '' ) {
$proxy [ 'proxy_login' ] = $sysConf [ 'proxy_user' ];
}
if ( $sysConf [ 'proxy_pass' ] != '' ) {
$proxy [ 'proxy_password' ] = $sysConf [ 'proxy_pass' ];
}
}
2016-03-23 23:34:18 -04:00
$client = new SoapClient ( $endpoint , $proxy );
2012-10-22 15:45:47 -04:00
$sessionId = '' ;
2016-03-23 23:34:18 -04:00
$params = array ( 'sessionId' => $sessionId , 'processId' => $proId
2012-10-22 15:45:47 -04:00
);
2016-03-23 23:34:18 -04:00
$result = $client -> __SoapCall ( 'processGetData' , array ( $params
));
2012-10-22 15:45:47 -04:00
if ( $result -> status_code == 0 ) {
return $result ;
}
2016-03-23 23:34:18 -04:00
throw ( new Exception ( $result -> message ));
2012-10-22 15:45:47 -04:00
}
/**
* parse an array of Items
*
* @ param $proId process Uid
* @ return $result
*/
2016-03-23 23:34:18 -04:00
public function parseItemArray ( $array )
2012-10-22 15:45:47 -04:00
{
2016-03-23 23:34:18 -04:00
if ( ! isset ( $array -> item ) && ! is_array ( $array )) {
2012-10-22 15:45:47 -04:00
return null ;
}
2016-03-23 23:34:18 -04:00
$result = array ();
if ( isset ( $array -> item )) {
2012-10-22 15:45:47 -04:00
foreach ( $array -> item as $key => $value ) {
$result [ $value -> key ] = $value -> value ;
}
} else {
foreach ( $array as $key => $value ) {
$result [ $value -> key ] = $value -> value ;
}
}
return $result ;
}
2016-03-23 23:34:18 -04:00
public function getProcessFiles ( $proUid , $type )
2012-10-22 15:45:47 -04:00
{
2016-03-23 23:34:18 -04:00
$filesList = array ();
2012-10-22 15:45:47 -04:00
switch ( $type ) {
case " mail " :
case " email " :
$basePath = PATH_DATA_MAILTEMPLATES ;
break ;
case " public " :
$basePath = PATH_DATA_PUBLIC ;
break ;
default :
2016-03-23 23:34:18 -04:00
throw new Exception ( " Unknow Process Files Type \" $type\ " . " );
2012-10-22 15:45:47 -04:00
break ;
}
$dir = $basePath . $proUid . PATH_SEP ;
2016-03-23 23:34:18 -04:00
G :: verifyPath ( $dir , true ); //Create if it does not exist
2012-10-22 15:45:47 -04:00
2012-09-10 16:04:31 -04:00
//Creating the default template (if not exists)
2016-03-23 23:34:18 -04:00
if ( ! file_exists ( $dir . " alert_message.html " )) {
@ copy ( PATH_TPL . " mails " . PATH_SEP . " alert_message.html " , $dir . " alert_message.html " );
2012-10-22 15:45:47 -04:00
}
2016-03-23 23:34:18 -04:00
if (( ! file_exists ( $dir . " unassignedMessage.html " )) && file_exists ( $dir . G :: LoadTranslation ( 'ID_UNASSIGNED_MESSAGE' ))) {
2013-07-25 12:42:56 -04:00
if ( defined ( 'PARTNER_FLAG' )) {
2016-03-23 23:34:18 -04:00
@ copy ( PATH_TPL . " mails " . PATH_SEP . " unassignedMessagePartner.html " , $dir . G :: LoadTranslation ( 'ID_UNASSIGNED_MESSAGE' ));
2013-07-25 12:42:56 -04:00
} else {
2016-03-23 23:34:18 -04:00
@ copy ( PATH_TPL . " mails " . PATH_SEP . " unassignedMessage.html " , $dir . G :: LoadTranslation ( 'ID_UNASSIGNED_MESSAGE' ));
2013-07-25 12:42:56 -04:00
}
2012-10-22 15:45:47 -04:00
}
2016-03-23 23:34:18 -04:00
$files = glob ( $dir . " *.* " );
2012-10-22 15:45:47 -04:00
foreach ( $files as $file ) {
2016-03-23 23:34:18 -04:00
$fileName = basename ( $file );
2012-10-22 15:45:47 -04:00
2013-07-25 12:42:56 -04:00
if ( $fileName != " alert_message.html " && $fileName != G :: LoadTranslation ( 'ID_UNASSIGNED_MESSAGE' )) {
2016-03-23 23:34:18 -04:00
$filesList [] = array ( " filepath " => $file , " filename " => $fileName );
2012-10-22 15:45:47 -04:00
}
}
return $filesList ;
}
2013-08-20 14:04:48 -04:00
/**
2016-03-23 23:34:18 -04:00
* get rows related to Task extra properties of the process seleceted
*
* @ param $proId process Uid
* @ return $result
*/
2014-05-14 10:26:45 -04:00
public function getTaskExtraPropertiesRows ( $proId )
2013-08-20 14:04:48 -04:00
{
try {
2014-04-30 12:00:22 -04:00
2013-08-20 14:04:48 -04:00
$oCriteria = new Criteria ( 'workflow' );
2016-03-23 23:34:18 -04:00
$oCriteria -> addSelectColumn ( ConfigurationPeer :: CFG_UID );
$oCriteria -> addSelectColumn ( ConfigurationPeer :: OBJ_UID );
$oCriteria -> addSelectColumn ( ConfigurationPeer :: CFG_VALUE );
$oCriteria -> addSelectColumn ( ConfigurationPeer :: PRO_UID );
$oCriteria -> addSelectColumn ( ConfigurationPeer :: USR_UID );
$oCriteria -> addSelectColumn ( ConfigurationPeer :: APP_UID );
$oCriteria -> add ( TaskPeer :: PRO_UID , $proId );
$oCriteria -> add ( ConfigurationPeer :: CFG_UID , 'TAS_EXTRA_PROPERTIES' );
$oCriteria -> addJoin ( ConfigurationPeer :: OBJ_UID , TaskPeer :: TAS_UID );
$oDataset = ConfigurationPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2013-08-20 14:04:48 -04:00
$oDataset -> next ();
2014-04-30 12:00:22 -04:00
2013-08-20 14:04:48 -04:00
$aConfRows = array ();
while ( $aRow = $oDataset -> getRow ()) {
$aConfRows [] = $aRow ;
$oDataset -> next ();
}
return $aConfRows ;
} catch ( Exception $oError ) {
throw ( $oError );
}
}
2014-11-19 16:47:22 -04:00
/**
* Get disabled code
*
2016-07-18 17:54:28 -04:00
* @ param string $processUid Unique id of Process
* @ param string $workspaceName Workspace name
2014-11-19 16:47:22 -04:00
*
2016-07-18 17:54:28 -04:00
* @ return array Returns an array with disabled code found , array empty otherwise
2014-11-19 16:47:22 -04:00
*/
2016-07-18 17:54:28 -04:00
public function getDisabledCode ( $processUid = null , $workspaceName = null )
2014-11-19 16:47:22 -04:00
{
try {
$arrayDisabledCode = array ();
2014-12-23 17:22:42 -04:00
/*----------------------------------********---------------------------------*/
2015-06-01 14:15:53 -04:00
if ( ! PMLicensedFeatures :: getSingleton () -> verifyfeature ( " B0oWlBLY3hHdWY0YUNpZEtFQm5CeTJhQlIwN3IxMEkwaG4= " )) {
//Return
return $arrayDisabledCode ;
}
//Set variables
2016-07-18 17:54:28 -04:00
$cs = new CodeScanner (( ! is_null ( $workspaceName )) ? $workspaceName : SYS_SYS );
2015-06-01 14:15:53 -04:00
2014-11-19 16:47:22 -04:00
$delimiter = DBAdapter :: getStringDelimiter ();
//Processes
$criteria = new Criteria ( " workflow " );
$criteria -> addSelectColumn ( ProcessPeer :: PRO_UID );
2016-06-20 16:50:57 -04:00
$criteria -> addSelectColumn ( ProcessPeer :: PRO_TITLE );
2014-11-19 16:47:22 -04:00
2016-07-18 17:54:28 -04:00
if ( ! is_null ( $processUid )) {
2014-11-19 16:47:22 -04:00
$criteria -> add ( ProcessPeer :: PRO_UID , $processUid , Criteria :: EQUAL );
}
$rsCriteria = ProcessPeer :: doSelectRS ( $criteria );
$rsCriteria -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
while ( $rsCriteria -> next ()) {
$row = $rsCriteria -> getRow ();
2016-03-23 23:34:18 -04:00
$processUid = $row [ " PRO_UID " ];
2014-11-19 16:47:22 -04:00
$processTitle = $row [ " PRO_TITLE " ];
//Triggers
$criteriaTrigger = new Criteria ( " workflow " );
$criteriaTrigger -> addSelectColumn ( TriggersPeer :: TRI_UID );
2016-12-01 09:32:35 -05:00
$criteriaTrigger -> addSelectColumn ( TriggersPeer :: TRI_TITLE );
2014-11-19 16:47:22 -04:00
$criteriaTrigger -> addSelectColumn ( TriggersPeer :: TRI_WEBBOT );
$criteriaTrigger -> add ( TriggersPeer :: PRO_UID , $processUid , Criteria :: EQUAL );
$rsCriteriaTrigger = TriggersPeer :: doSelectRS ( $criteriaTrigger );
$rsCriteriaTrigger -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
while ( $rsCriteriaTrigger -> next ()) {
$row = $rsCriteriaTrigger -> getRow ();
2016-03-23 23:34:18 -04:00
$triggerUid = $row [ " TRI_UID " ];
$triggerTitle = $row [ " TRI_TITLE " ];
2014-11-19 16:47:22 -04:00
$triggerWebbot = $row [ " TRI_WEBBOT " ];
//Check disabled code
$arrayFoundDisabledCode = $cs -> checkDisabledCode ( " SOURCE " , $triggerWebbot );
2015-06-01 14:15:53 -04:00
if ( ! empty ( $arrayFoundDisabledCode )) {
2014-11-19 16:47:22 -04:00
if ( ! isset ( $arrayDisabledCode [ $processUid ])) {
$arrayDisabledCode [ $processUid ] = array (
2016-03-23 23:34:18 -04:00
" processUid " => $processUid ,
2014-11-19 16:47:22 -04:00
" processTitle " => $processTitle ,
2016-03-23 23:34:18 -04:00
" triggers " => array ()
2014-11-19 16:47:22 -04:00
);
}
$arrayDisabledCode [ $processUid ][ " triggers " ][] = array (
2016-03-23 23:34:18 -04:00
" triggerUid " => $triggerUid ,
2014-11-19 16:47:22 -04:00
" triggerTitle " => $triggerTitle ,
" disabledCode " => $arrayFoundDisabledCode [ " source " ],
);
}
}
}
2015-06-01 14:15:53 -04:00
/*----------------------------------********---------------------------------*/
2014-11-19 16:47:22 -04:00
//Return
return $arrayDisabledCode ;
} catch ( Exception $e ) {
throw $e ;
}
}
2015-05-27 14:53:05 -04:00
2015-05-25 09:22:48 -04:00
public function truncateName ( $proTitle )
{
2016-03-23 23:34:18 -04:00
$proTitle = str_replace ( " . " , " _ " , $proTitle );
2015-05-25 09:22:48 -04:00
$limit = 200 ;
if ( strtoupper ( substr ( PHP_OS , 0 , 3 )) === 'WIN' ) {
$limit = 150 ;
}
$excess = strlen ( $proTitle ) - $limit ;
2016-03-23 23:34:18 -04:00
$proTitle = substr ( $proTitle , 0 , strlen ( $proTitle ) - $excess );
2015-05-25 09:22:48 -04:00
return $proTitle ;
}
2012-10-22 15:45:47 -04:00
}