/** * Implementation for 'GET' method for Rest API * * @param mixed $stepUid, $tasUid, $triUid, $stType Primary key * * @return array $result Returns array within multiple records or a single record depending if * a single selection was requested passing id(s) as param */ protected function get($stepUid = null, $tasUid = null, $triUid = null, $stType = null) { $result = array(); try { $noArguments = true; $argumentList = func_get_args(); foreach ($argumentList as $arg) { if (!is_null($arg)) { $noArguments = false; } } if ($noArguments) { $criteria = new Criteria('workflow'); $criteria->addSelectColumn(StepTriggerPeer::STEP_UID); $criteria->addSelectColumn(StepTriggerPeer::TAS_UID); $criteria->addSelectColumn(StepTriggerPeer::TRI_UID); $criteria->addSelectColumn(StepTriggerPeer::ST_TYPE); $criteria->addSelectColumn(StepTriggerPeer::ST_CONDITION); $criteria->addSelectColumn(StepTriggerPeer::ST_POSITION); $dataset = AppEventPeer::doSelectRS($criteria); $dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); while ($dataset->next()) { $result[] = $dataset->getRow(); } } else { $record = StepTriggerPeer::retrieveByPK($stepUid, $tasUid, $triUid, $stType); if ($record) { $result = $record->toArray(BasePeer::TYPE_FIELDNAME); } else { $paramValues = ""; foreach ($argumentList as $arg) { $paramValues .= strlen($paramValues) ? ', ' : ''; if (!is_null($arg)) { $paramValues .= "{$arg}"; } else { $paramValues .= "NULL"; } } throw new RestException(417, "table StepTrigger ({$paramValues})"); } } } catch (RestException $e) { throw new RestException($e->getCode(), $e->getMessage()); } catch (Exception $e) { throw new RestException(412, $e->getMessage()); } return $result; }
/** * this function remove all Process except the PROCESS ROW * * @param string $sProUid * @return boolean */ public function removeProcessRows ($sProUid) { try { //Instance all classes necesaries $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(); $oConfig = new Configuration(); //Delete the tasks of process $oCriteria = new Criteria( 'workflow' ); $oCriteria->add( TaskPeer::PRO_UID, $sProUid ); $oDataset = TaskPeer::doSelectRS( $oCriteria ); $oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC ); $oDataset->next(); $oTask = new Task(); while ($aRow = $oDataset->getRow()) { $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'] ); } $oDataset->next(); } //Delete the dynaforms of process $oCriteria = new Criteria( 'workflow' ); $oCriteria->add( DynaformPeer::PRO_UID, $sProUid ); $oDataset = DynaformPeer::doSelectRS( $oCriteria ); $oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC ); $oDataset->next(); while ($aRow = $oDataset->getRow()) { $sWildcard = PATH_DYNAFORM . $aRow['PRO_UID'] . PATH_SEP . $aRow['DYN_UID'] . '_tmp*'; foreach (glob( $sWildcard ) as $fn) { @unlink( $fn ); } $sWildcard = PATH_DYNAFORM . $aRow['PRO_UID'] . PATH_SEP . $aRow['DYN_UID'] . '.*'; foreach (glob( $sWildcard ) as $fn) { @unlink( $fn ); } if ($oDynaform->dynaformExists( $aRow['DYN_UID'] )) { $oDynaform->remove( $aRow['DYN_UID'] ); } $oDataset->next(); } //Delete the input documents of process $oCriteria = new Criteria( 'workflow' ); $oCriteria->add( InputDocumentPeer::PRO_UID, $sProUid ); $oDataset = InputDocumentPeer::doSelectRS( $oCriteria ); $oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC ); $oDataset->next(); while ($aRow = $oDataset->getRow()) { if ($oInputDocument->InputExists( $aRow['INP_DOC_UID'] )) { $oInputDocument->remove( $aRow['INP_DOC_UID'] ); } $oDataset->next(); } //Delete the output documents of process $oCriteria = new Criteria( 'workflow' ); $oCriteria->add( OutputDocumentPeer::PRO_UID, $sProUid ); $oDataset = OutputDocumentPeer::doSelectRS( $oCriteria ); $oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC ); $oDataset->next(); while ($aRow = $oDataset->getRow()) { if ($oOutputDocument->OutputExists( $aRow['OUT_DOC_UID'] )) { $oOutputDocument->remove( $aRow['OUT_DOC_UID'] ); } $oDataset->next(); } //Delete the steps $oCriteria = new Criteria( 'workflow' ); $oCriteria->add( StepPeer::PRO_UID, $sProUid ); $oDataset = StepPeer::doSelectRS( $oCriteria ); $oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC ); $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(); }*/ $oStep->remove( $aRow['STEP_UID'] ); $oDataset->next(); } //Delete the StepSupervisor $oCriteria = new Criteria( 'workflow' ); $oCriteria->add( StepSupervisorPeer::PRO_UID, $sProUid ); $oDataset = StepSupervisorPeer::doSelectRS( $oCriteria ); $oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC ); $oDataset->next(); while ($aRow = $oDataset->getRow()) { if ($oStep->StepExists( $aRow['STEP_UID'] )) { $oStep->remove( $aRow['STEP_UID'] ); } $oDataset->next(); } //Delete the triggers of process $oCriteria = new Criteria( 'workflow' ); $oCriteria->add( TriggersPeer::PRO_UID, $sProUid ); $oDataset = TriggersPeer::doSelectRS( $oCriteria ); $oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC ); $oDataset->next(); while ($aRow = $oDataset->getRow()) { if ($oTrigger->TriggerExists( $aRow['TRI_UID'] )) { $oTrigger->remove( $aRow['TRI_UID'] ); } $oDataset->next(); } //Delete the routes of process $oCriteria = new Criteria( 'workflow' ); $oCriteria->add( RoutePeer::PRO_UID, $sProUid ); $oDataset = RoutePeer::doSelectRS( $oCriteria ); $oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC ); $oDataset->next(); while ($aRow = $oDataset->getRow()) { if ($oRoute->routeExists( $aRow['ROU_UID'] )) { $oRoute->remove( $aRow['ROU_UID'] ); } $oDataset->next(); } //Delete the swimlanes elements of process $oCriteria = new Criteria( 'workflow' ); $oCriteria->add( SwimlanesElementsPeer::PRO_UID, $sProUid ); $oDataset = SwimlanesElementsPeer::doSelectRS( $oCriteria ); $oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC ); $oDataset->next(); while ($aRow = $oDataset->getRow()) { if ($oSwimlaneElement->swimlanesElementsExists( $aRow['SWI_UID'] )) { $oSwimlaneElement->remove( $aRow['SWI_UID'] ); } $oDataset->next(); } //Delete the DB connections of process $oCriteria = new Criteria( 'workflow' ); $oCriteria->add( DbSourcePeer::PRO_UID, $sProUid ); $oDataset = DbSourcePeer::doSelectRS( $oCriteria ); $oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC ); $oDataset->next(); while ($aRow = $oDataset->getRow()) { if ($oConnection->Exists( $aRow['DBS_UID'], $aRow['PRO_UID'] )) { $oConnection->remove( $aRow['DBS_UID'], $aRow['PRO_UID'] ); } $oDataset->next(); } //Delete the sub process of process $oCriteria = new Criteria( 'workflow' ); $oCriteria->add( SubProcessPeer::PRO_PARENT, $sProUid ); $oDataset = SubProcessPeer::doSelectRS( $oCriteria ); $oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC ); $oDataset->next(); while ($aRow = $oDataset->getRow()) { if ($oSubProcess->subProcessExists( $aRow['SP_UID'] )) { $oSubProcess->remove( $aRow['SP_UID'] ); } $oDataset->next(); } //Delete the caseTracker of process $oCriteria = new Criteria( 'workflow' ); $oCriteria->add( CaseTrackerPeer::PRO_UID, $sProUid ); $oDataset = CaseTrackerPeer::doSelectRS( $oCriteria ); $oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC ); $oDataset->next(); while ($aRow = $oDataset->getRow()) { if ($oCaseTracker->caseTrackerExists( $aRow['PRO_UID'] )) { $oCaseTracker->remove( $aRow['PRO_UID'] ); } $oDataset->next(); } //Delete the caseTrackerObject of process $oCriteria = new Criteria( 'workflow' ); $oCriteria->add( CaseTrackerObjectPeer::PRO_UID, $sProUid ); $oDataset = CaseTrackerObjectPeer::doSelectRS( $oCriteria ); $oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC ); $oDataset->next(); while ($aRow = $oDataset->getRow()) { if ($oCaseTrackerObject->caseTrackerObjectExists( $aRow['CTO_UID'] )) { $oCaseTrackerObject->remove( $aRow['CTO_UID'] ); } $oDataset->next(); } //Delete the ObjectPermission of process $oCriteria = new Criteria( 'workflow' ); $oCriteria->add( ObjectPermissionPeer::PRO_UID, $sProUid ); $oDataset = ObjectPermissionPeer::doSelectRS( $oCriteria ); $oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC ); $oDataset->next(); while ($aRow = $oDataset->getRow()) { if ($oObjectPermission->Exists( $aRow['OP_UID'] )) { $oObjectPermission->remove( $aRow['OP_UID'] ); } $oDataset->next(); } //Delete the Stage of process $oCriteria = new Criteria( 'workflow' ); $oCriteria->add( StagePeer::PRO_UID, $sProUid ); $oDataset = StagePeer::doSelectRS( $oCriteria ); $oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC ); $oDataset->next(); while ($aRow = $oDataset->getRow()) { if ($oStage->Exists( $aRow['STG_UID'] )) { $oStage->remove( $aRow['STG_UID'] ); } $oDataset->next(); } //Delete the Event of process $oCriteria = new Criteria( 'workflow' ); $oCriteria->add( EventPeer::PRO_UID, $sProUid ); $oDataset = EventPeer::doSelectRS( $oCriteria ); $oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC ); $oDataset->next(); while ($aRow = $oDataset->getRow()) { if ($oEvent->Exists( $aRow['EVN_UID'] )) { $oEvent->remove( $aRow['EVN_UID'] ); } $oDataset->next(); if ($oEvent->existsByTaskUidFrom( $aRow['TAS_UID'] )) { $aRowEvent = $oEvent->getRowByTaskUidFrom( $aRow['TAS_UID'] ); $oEvent->remove( $aRowEvent['EVN_UID'] ); } $oDataset->next(); } //Delete the CaseScheduler of process $oCriteria = new Criteria( 'workflow' ); $oCriteria->add( CaseSchedulerPeer::PRO_UID, $sProUid ); $oDataset = CaseSchedulerPeer::doSelectRS( $oCriteria ); $oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC ); $oDataset->next(); while ($aRow = $oDataset->getRow()) { if ($oCaseScheduler->Exists( $aRow['SCH_UID'] )) { $oCaseScheduler->remove( $aRow['SCH_UID'] ); } $oDataset->next(); } //Delete the TaskExtraProperties of the process $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 ); $oDataset->next(); while ($aRow = $oDataset->getRow()) { if ($oConfig->exists($aRow['CFG_UID'], $aRow['OBJ_UID'], $aRow['PRO_UID'], $aRow['USR_UID'], $aRow['APP_UID'])) { $oConfig->remove( $aRow['CFG_UID'], $aRow['OBJ_UID'], $aRow['PRO_UID'], $aRow['USR_UID'], $aRow['APP_UID'] ); } $oDataset->next(); } return true; } catch (Exception $oError) { throw ($oError); } }
$aData['iPosition'] = (int) $aData['iPosition']; $oStepTrigger = new StepTrigger(); $oStepTrigger->up($aData['sStep'], $_SESSION['TASK'], $aData['sTrigger'], $aData['sType'], $aData['iPosition']); break; case 'downTrigger': $aData['iPosition'] = (int) $aData['iPosition']; $oStepTrigger = new StepTrigger(); $oStepTrigger->down($aData['sStep'], $_SESSION['TASK'], $aData['sTrigger'], $aData['sType'], $aData['iPosition']); break; case 'ofToAssignTrigger': $oStepTrigger = new StepTrigger(); $oStepTrigger->reOrder($aData['sStep'], $_SESSION['TASK'], $aData['sType'], $aData['iPosition']); $oStepTrigger->remove($aData['sStep'], $_SESSION['TASK'], $aData['sTrigger'], $aData['sType']); break; case 'counterTriggers': G::LoadClass('processMap'); $oProcessMap = new ProcessMap(); $oCriteria1 = $oProcessMap->getStepTriggersCriteria($aData['sStep'], $_SESSION['TASK'], $aData['sType']); if ($aData['sType'] == 'BEFORE') { $oCriteria2 = $oProcessMap->getStepTriggersCriteria($aData['sStep'], $_SESSION['TASK'], 'AFTER'); } else { $oCriteria2 = $oProcessMap->getStepTriggersCriteria($aData['sStep'], $_SESSION['TASK'], 'BEFORE'); } $iCantity = StepTriggerPeer::doCount($oCriteria1); $iTotal = $iCantity + StepTriggerPeer::doCount($oCriteria2); echo $iTotal . '|' . $iCantity; break; } } catch (Exception $oException) { die($oException->getMessage()); }
public function getExtAvailableStepTriggersCriteria($sProcessUID = '', $sStepUID = '', $sTaskUID = '', $sType = '') { try { $_SESSION['TASK'] = $sTaskUID; $oCriteria = new Criteria('workflow'); $oCriteria->addSelectColumn('TRI_UID'); $oCriteria->add(StepTriggerPeer::TAS_UID, $sTaskUID); $oCriteria->add(StepTriggerPeer::STEP_UID, $sStepUID); $oCriteria->add(StepTriggerPeer::ST_TYPE, $sType); $oDataset = StepTriggerPeer::doSelectRS($oCriteria); $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $oDataset->next(); $sUIDs = "'0'"; $aUIDs = array(); while ($aRow = $oDataset->getRow()) { $sUIDs .= ",'" . $aRow['TRI_UID'] . "'"; $aUIDs[] = $aRow['TRI_UID']; $oDataset->next(); } $sDelimiter = DBAdapter::getStringDelimiter(); $oCriteria = new Criteria('workflow'); //$oCriteria->addSelectColumn ( ContentPeer::CON_ID ); $oCriteria->addSelectColumn('TRI_UID'); $oCriteria->addSelectColumn('C.CON_VALUE'); $oCriteria->addAsColumn('TRI_TITLE', 'C.CON_VALUE'); $oCriteria->addAlias('C', 'CONTENT'); $aConditions = array(); $aConditions[] = array('TRI_UID', 'C.CON_ID'); $aConditions[] = array('C.CON_CATEGORY', $sDelimiter . 'TRI_TITLE' . $sDelimiter); $aConditions[] = array('C.CON_LANG', $sDelimiter . SYS_LANG . $sDelimiter); $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN); $oCriteria->add(TriggersPeer::TRI_UID, $aUIDs, Criteria::NOT_IN); $oCriteria->add(TriggersPeer::PRO_UID, $sProcessUID); $oDataset = TriggersPeer::doSelectRS($oCriteria); $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $oDataset->next(); while ($aRow = $oDataset->getRow()) { $aBB[] = array('CON_VALUE' => $aRow['CON_VALUE'], 'STEP_UID' => $sStepUID, 'ST_TYPE' => $sType, 'TRI_UID' => $aRow['TRI_UID'], 'TRI_TITLE' => $aRow['TRI_TITLE']); $oDataset->next(); } return $aBB; } catch (Exception $e) { throw $e; } }
$oStepTrigger = new StepTrigger(); $oStepTrigger->reOrder($aData['sStep'], $_SESSION['TASK'], $aData['sType'], $aData['iPosition']); $oStepTrigger->remove($aData['sStep'], $_SESSION['TASK'], $aData['sTrigger'], $aData['sType']); break; case 'counterTriggers': G::LoadClass("processMap"); $processMap = new ProcessMap(); $criteria1 = $processMap->getStepTriggersCriteria($aData["sStep"], $_SESSION["TASK"], $aData["sType"]); $cantity = StepTriggerPeer::doCount($criteria1); if ($aData["sStep"][0] != "-") { if ($aData["sType"] == "BEFORE") { $criteria2 = $processMap->getStepTriggersCriteria($aData["sStep"], $_SESSION["TASK"], "AFTER"); } else { $criteria2 = $processMap->getStepTriggersCriteria($aData["sStep"], $_SESSION["TASK"], "BEFORE"); } $total = $cantity + StepTriggerPeer::doCount($criteria2); } else { $criteria = $processMap->getStepTriggersCriteria(-1, $_SESSION["TASK"], "BEFORE"); $cantity1 = StepTriggerPeer::doCount($criteria); $criteria = $processMap->getStepTriggersCriteria(-2, $_SESSION["TASK"], "BEFORE"); $cantity2 = StepTriggerPeer::doCount($criteria); $criteria = $processMap->getStepTriggersCriteria(-2, $_SESSION["TASK"], "AFTER"); $cantity3 = StepTriggerPeer::doCount($criteria); $total = $cantity1 + $cantity2 + $cantity3; } echo $total . "|" . $cantity; break; } } catch (Exception $oException) { die($oException->getMessage()); }
/** * Retrieve object using using composite pkey values. * @param string $step_uid * @param string $tas_uid * @param string $tri_uid * @param string $st_type * @param Connection $con * @return StepTrigger */ public static function retrieveByPK($step_uid, $tas_uid, $tri_uid, $st_type, $con = null) { if ($con === null) { $con = Propel::getConnection(self::DATABASE_NAME); } $criteria = new Criteria(); $criteria->add(StepTriggerPeer::STEP_UID, $step_uid); $criteria->add(StepTriggerPeer::TAS_UID, $tas_uid); $criteria->add(StepTriggerPeer::TRI_UID, $tri_uid); $criteria->add(StepTriggerPeer::ST_TYPE, $st_type); $v = StepTriggerPeer::doSelect($criteria, $con); return !empty($v) ? $v[0] : null; }
/** * Delete a task * @param string $sTaskUID * @return void */ function deleteTask($sTaskUID = '') { try { //Instance classes $oTask = new Task(); $oTasks = new Tasks(); $oTaskUser = new TaskUser(); $oStep = new Step(); $oStepTrigger = new StepTrigger(); //Get task information $aFields = $oTask->load($sTaskUID); //Delete routes $oTasks->deleteAllRoutesOfTask($aFields['PRO_UID'], $sTaskUID, true); //Delete gateways $oTasks->deleteAllGatewayOfTask($aFields['PRO_UID'], $sTaskUID, true); //Delete the users assigned to task $oCriteria = new Criteria('workflow'); $oCriteria->add(TaskUserPeer::TAS_UID, $sTaskUID); $oDataset1 = TaskUserPeer::doSelectRS($oCriteria); $oDataset1->setFetchmode(ResultSet::FETCHMODE_ASSOC); $oDataset1->next(); while ($aRow1 = $oDataset1->getRow()) { $oTaskUser->remove($aRow1['TAS_UID'], $aRow1['USR_UID'], $aRow1['TU_TYPE'], $aRow1['TU_RELATION']); $oDataset1->next(); } //Delete the steps of task $oCriteria = new Criteria('workflow'); $oCriteria->add(StepPeer::TAS_UID, $sTaskUID); $oDataset1 = StepPeer::doSelectRS($oCriteria); $oDataset1->setFetchmode(ResultSet::FETCHMODE_ASSOC); $oDataset1->next(); while ($aRow1 = $oDataset1->getRow()) { //Delete the triggers assigned to step /*$oCriteria = new Criteria('workflow'); $oCriteria->add(StepTriggerPeer::STEP_UID, $aRow1['STEP_UID']); $oDataset2 = StepTriggerPeer::doSelectRS($oCriteria); $oDataset2->setFetchmode(ResultSet::FETCHMODE_ASSOC); $oDataset2->next(); while ($aRow2 = $oDataset2->getRow()) { $oStepTrigger->remove($aRow2['STEP_UID'], $aRow2['TAS_UID'], $aRow2['TRI_UID'], $aRow2['ST_TYPE']); $oDataset2->next(); }*/ $oStep->remove($aRow1['STEP_UID']); $oDataset1->next(); } //Delete step triggers $oCriteria = new Criteria('workflow'); $oCriteria->add(StepTriggerPeer::TAS_UID, $sTaskUID); StepTriggerPeer::doDelete($oCriteria); //Delete permissions $oCriteria = new Criteria('workflow'); $oCriteria->add(ObjectPermissionPeer::TAS_UID, $sTaskUID); ObjectPermissionPeer::doDelete($oCriteria); $oCriteria = new Criteria('workflow'); $oCriteria->add(ObjectPermissionPeer::OP_TASK_SOURCE, $sTaskUID); ObjectPermissionPeer::doDelete($oCriteria); //Delete task $oTask->remove($sTaskUID); //Delete cases schedulers added by krlos $oCriteria = new Criteria('workflow'); $oCriteria->add(CaseSchedulerPeer::TAS_UID, $sTaskUID); CaseSchedulerPeer::doDelete($oCriteria); } catch (Exception $oError) { throw $oError; } }
/** * Delete Steps and triggers of a Task * * @param string $stepUid Unique id of Step * @param string $taskUid Unique id of Step * * return void */ public function deleteAll($taskUid) { try { $step = new \Step(); $stepTrigger = new \ProcessMaker\BusinessModel\Step\Trigger(); $criteriaTrigger = new \Criteria("workflow"); $criteriaTrigger->addSelectColumn(\StepTriggerPeer::STEP_UID); $criteriaTrigger->addSelectColumn(\StepTriggerPeer::ST_TYPE); $criteriaTrigger->addSelectColumn(\StepTriggerPeer::TRI_UID); $criteriaTrigger->add(\StepTriggerPeer::TAS_UID, $taskUid, \Criteria::EQUAL); $rsCriteriaTrigger = \StepTriggerPeer::doSelectRS($criteriaTrigger); $rsCriteriaTrigger->setFetchmode(\ResultSet::FETCHMODE_ASSOC); $rsCriteriaTrigger->next(); while ($aRowTrigger = $rsCriteriaTrigger->getRow()) { $stepTrigger->delete($aRowTrigger['STEP_UID'], $aRowTrigger['ST_TYPE'], $taskUid, $aRowTrigger['TRI_UID']); $rsCriteriaTrigger->next(); } $criteria = new \Criteria("workflow"); $criteria->addSelectColumn(\StepPeer::STEP_UID); $criteria->add(\StepPeer::TAS_UID, $taskUid, \Criteria::EQUAL); $rsCriteria = \StepPeer::doSelectRS($criteria); $rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC); $rsCriteria->next(); while ($aRow = $rsCriteria->getRow()) { $step->remove($aRow['STEP_UID']); $rsCriteria->next(); } } catch (\Exception $e) { throw $e; } }
public function verifyDependecies($TRI_UID) { require_once "classes/model/Event.php"; require_once "classes/model/StepTrigger.php"; $oResult = new stdClass(); $oResult->dependencies = array(); $oCriteria = new Criteria(); $oCriteria->addSelectColumn(EventPeer::EVN_UID); $oCriteria->addSelectColumn(EventPeer::TRI_UID); $oCriteria->add(EventPeer::EVN_ACTION, '', Criteria::NOT_EQUAL); $oCriteria->add(EventPeer::TRI_UID, $TRI_UID); $oDataset = EventPeer::doSelectRS($oCriteria); $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $aRows = array(); while ($oDataset->next()) { array_push($aRows, $oDataset->getRow()); } $oResult->dependencies['Events'] = array(); if (count($aRows) == 0) { $oResult->code = 0; } else { $oResult->code = 1; foreach ($aRows as $row) { $oTrigger = TriggersPeer::retrieveByPK($row['TRI_UID']); array_push($oResult->dependencies['Events'], array('UID' => $oTrigger->getTriUid(), 'DESCRIPTION' => $oTrigger->getTriTitle())); } } //for tasks dependencies $oCriteria = new Criteria(); $oCriteria->addSelectColumn(StepTriggerPeer::TAS_UID); $oCriteria->addSelectColumn(StepTriggerPeer::TRI_UID); $oCriteria->add(StepTriggerPeer::TRI_UID, $TRI_UID); $oDataset = StepTriggerPeer::doSelectRS($oCriteria); $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $aRows = array(); while ($oDataset->next()) { array_push($aRows, $oDataset->getRow()); } $oResult->dependencies['Tasks'] = array(); if ($oResult->code == 0 && count($aRows) == 0) { $oResult->code = 0; } elseif (count($aRows) > 0) { $oResult->code = 1; foreach ($aRows as $row) { $oTask = TaskPeer::retrieveByPK($row['TAS_UID']); array_push($oResult->dependencies['Tasks'], array('UID' => $oTask->getTasUid(), 'DESCRIPTION' => $oTask->getTasTitle())); } } //Tasks, assignment rules dependencies $criteria = new Criteria(); $criteria->addSelectColumn(TaskPeer::TAS_UID); $criteria->add(TaskPeer::TAS_SELFSERVICE_TIMEOUT, 1); $criteria->add(TaskPeer::TAS_SELFSERVICE_TRIGGER_UID, $TRI_UID); $rsCriteria = TaskPeer::doSelectRS($criteria); $rsCriteria->setFetchmode(ResultSet::FETCHMODE_ASSOC); $arrayRow = array(); while ($rsCriteria->next()) { array_push($arrayRow, $rsCriteria->getRow()); } $oResult->dependencies["Assignment rules"] = array(); if ($oResult->code == 0 && count($arrayRow) == 0) { $oResult->code = 0; } else { if (count($arrayRow) > 0) { foreach ($arrayRow as $row) { $task = TaskPeer::retrieveByPK($row["TAS_UID"]); array_push($oResult->dependencies["Assignment rules"], array("UID" => $task->getTasUid(), "DESCRIPTION" => $task->getTasTitle())); } $oResult->code = 1; } } return $oResult; }
/** * Populates the object using an array. * * This is particularly useful when populating an object from one of the * request arrays (e.g. $_POST). This method goes through the column * names, checking to see whether a matching key exists in populated * array. If so the setByName() method is called for that column. * * You can specify the key type of the array by additionally passing one * of the class type constants TYPE_PHPNAME, TYPE_COLNAME, TYPE_FIELDNAME, * TYPE_NUM. The default key type is the column's phpname (e.g. 'authorId') * * @param array $arr An array to populate the object from. * @param string $keyType The type of keys the array uses. * @return void */ public function fromArray($arr, $keyType = BasePeer::TYPE_PHPNAME) { $keys = StepTriggerPeer::getFieldNames($keyType); if (array_key_exists($keys[0], $arr)) { $this->setStepUid($arr[$keys[0]]); } if (array_key_exists($keys[1], $arr)) { $this->setTasUid($arr[$keys[1]]); } if (array_key_exists($keys[2], $arr)) { $this->setTriUid($arr[$keys[2]]); } if (array_key_exists($keys[3], $arr)) { $this->setStType($arr[$keys[3]]); } if (array_key_exists($keys[4], $arr)) { $this->setStCondition($arr[$keys[4]]); } if (array_key_exists($keys[5], $arr)) { $this->setStPosition($arr[$keys[5]]); } }
public function down($sStepUID = '', $sTaskUID = '', $sTriggerUID = '', $sType = '', $iPosition = 0) { try { $oCriteria = new Criteria('workflow'); $oCriteria->addSelectColumn('COUNT(*) AS MAX_POSITION'); $oCriteria->add(StepTriggerPeer::STEP_UID, $sStepUID); $oCriteria->add(StepTriggerPeer::TAS_UID, $sTaskUID); $oCriteria->add(StepTriggerPeer::ST_TYPE, $sType); $oDataset = StepTriggerPeer::doSelectRS($oCriteria); $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $oDataset->next(); $aRow = $oDataset->getRow(); if ($iPosition < (int) $aRow['MAX_POSITION']) { $oCriteria1 = new Criteria('workflow'); $oCriteria1->add(StepTriggerPeer::ST_POSITION, $iPosition); $oCriteria2 = new Criteria('workflow'); $oCriteria2->add(StepTriggerPeer::STEP_UID, $sStepUID); $oCriteria2->add(StepTriggerPeer::TAS_UID, $sTaskUID); $oCriteria2->add(StepTriggerPeer::ST_TYPE, $sType); $oCriteria2->add(StepTriggerPeer::ST_POSITION, $iPosition + 1); BasePeer::doUpdate($oCriteria2, $oCriteria1, Propel::getConnection('workflow')); $oCriteria1 = new Criteria('workflow'); $oCriteria1->add(StepTriggerPeer::ST_POSITION, $iPosition + 1); $oCriteria2 = new Criteria('workflow'); $oCriteria2->add(StepTriggerPeer::STEP_UID, $sStepUID); $oCriteria2->add(StepTriggerPeer::TAS_UID, $sTaskUID); $oCriteria2->add(StepTriggerPeer::TRI_UID, $sTriggerUID); $oCriteria2->add(StepTriggerPeer::ST_TYPE, $sType); BasePeer::doUpdate($oCriteria2, $oCriteria1, Propel::getConnection('workflow')); } } catch (Exception $oException) { throw $oException; } }
$oAux1 =& $oNode->addChild('before_node', '<span onclick="tree.expand(this.parentNode);showTriggers(\'' . $aRow['STEP_UID'] . '\', \'BEFORE\');" style="cursor: pointer;">' . G::LoadTranslation('ID_BEFORE') . ' - ' . G::LoadTranslation('ID_TRIGGERS') . ' (<span id="TRIG_' . $aRow['STEP_UID'] . '_BEFORE">' . $iCantidad1 . '</span>) </span>', array('nodeType' => 'parent')); $oAux1->plus = "<span style='cursor:pointer;display:block;width:15;height:10px;' onclick='tree.expand(this.parentNode);showTriggers(\"" . $aRow['STEP_UID'] . "\", \"BEFORE\");'></span>"; $oAux1->contracted = true; $oAux2 =& $oAux1->addChild($aRow['STEP_UID'] . '_before_node', '<span id="triggersSpan_' . $aRow['STEP_UID'] . '_BEFORE"></span>', array('nodeType' => 'parentBlue')); $oAux1 =& $oNode->addChild('after_node', '<span onclick="tree.expand(this.parentNode);showTriggers(\'' . $aRow['STEP_UID'] . '\', \'AFTER\');" style="cursor: pointer;">' . G::LoadTranslation('ID_AFTER') . ' - ' . G::LoadTranslation('ID_TRIGGERS') . ' (<span id="TRIG_' . $aRow['STEP_UID'] . '_AFTER">' . $iCantidad2 . '</span>) </span>', array('nodeType' => 'parent')); $oAux1->plus = "<span style='cursor:pointer;display:block;width:15;height:10px;' onclick='tree.expand(this.parentNode);showTriggers(\"" . $aRow['STEP_UID'] . "\", \"AFTER\");'></span>"; $oAux1->contracted = true; $oAux2 =& $oAux1->addChild($aRow['STEP_UID'] . '_after_node', '<span id="triggersSpan_' . $aRow['STEP_UID'] . '_AFTER"></span>', array('nodeType' => 'parentBlue')); $oDataset->next(); } $oCriteria = $oProcessMap->getStepTriggersCriteria(-1, $_SESSION['TASK'], 'BEFORE'); $iCantidad1 = StepTriggerPeer::doCount($oCriteria); $oCriteria = $oProcessMap->getStepTriggersCriteria(-2, $_SESSION['TASK'], 'BEFORE'); $iCantidad2 = StepTriggerPeer::doCount($oCriteria); $oCriteria = $oProcessMap->getStepTriggersCriteria(-2, $_SESSION['TASK'], 'AFTER'); $iCantidad3 = StepTriggerPeer::doCount($oCriteria); $oNode =& $oTree->addChild('-1', ' <span onclick="tree.expand(this.parentNode);" style="cursor: pointer;">[<b> ' . G::LoadTranslation('ID_ASSIGN_TASK') . ' </b>] ' . ' - ' . G::LoadTranslation('ID_TRIGGERS') . ' (<span id="TRIG_' . $aRow['STEP_UID'] . '">' . ($iCantidad1 + $iCantidad2 + $iCantidad3) . '</span>)' . '</span>', array('nodeType' => 'parent')); $oNode->contracted = true; $oAux1 =& $oNode->addChild('before_node', '<span onclick="tree.expand(this.parentNode);showTriggers(\'-1\', \'BEFORE\');" style="cursor: pointer;">' . G::LoadTranslation('ID_BEFORE_ASSIGNMENT') . ' - ' . G::LoadTranslation('ID_TRIGGERS') . ' (<span id="TRIG_-1_BEFORE">' . $iCantidad1 . '</span>) </span>', array('nodeType' => 'parent')); $oAux1->plus = "<span style='cursor:pointer;display:block;width:15;height:10px;' onclick='tree.expand(this.parentNode);showTriggers(\"-1\", \"BEFORE\");'></span>"; $oAux1->contracted = true; $oAux2 =& $oAux1->addChild('-1_before_node', '<span id="triggersSpan_-1_BEFORE"></span>', array('nodeType' => 'parentBlue')); $oAux1 =& $oNode->addChild('before_node', '<span onclick="tree.expand(this.parentNode);showTriggers(\'-2\', \'BEFORE\');" style="cursor: pointer;">' . G::LoadTranslation('ID_BEFORE_DERIVATION') . ' - ' . G::LoadTranslation('ID_TRIGGERS') . ' (<span id="TRIG_-2_BEFORE">' . $iCantidad2 . '</span>) </span>', array('nodeType' => 'parent')); $oAux1->plus = "<span style='cursor:pointer;display:block;width:15;height:10px;' onclick='tree.expand(this.parentNode);showTriggers(\"-2\", \"BEFORE\");'></span>"; $oAux1->contracted = true; $oAux2 =& $oAux1->addChild('-2_before_node', '<span id="triggersSpan_-2_BEFORE"></span>', array('nodeType' => 'parentBlue')); $oAux1 =& $oNode->addChild('after_node', '<span onclick="tree.expand(this.parentNode);showTriggers(\'-2\', \'AFTER\');" style="cursor: pointer;">' . G::LoadTranslation('ID_AFTER_DERIVATION') . ' - ' . G::LoadTranslation('ID_TRIGGERS') . ' (<span id="TRIG_-2_AFTER">' . $iCantidad3 . '</span>) </span>', array('nodeType' => 'parent')); $oAux1->plus = "<span style='cursor:pointer;display:block;width:15;height:10px;' onclick='tree.expand(this.parentNode);showTriggers(\"-2\", \"AFTER\");'></span>"; $oAux1->contracted = true; $oAux2 =& $oAux1->addChild('-2_after_node', '<span id="triggersSpan_-2_AFTER"></span>', array('nodeType' => 'parentBlue')); echo $oTree->render();
function remove($sStepUID) { require_once 'classes/model/StepTrigger.php'; $oStepTriggers = new StepTrigger(); $oCriteria = new Criteria('workflow'); $oCriteria->add(StepTriggerPeer::STEP_UID, $sStepUID); $oDataset = StepTriggerPeer::doSelectRS($oCriteria); $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); while ($oDataset->next()) { $aRow = $oDataset->getRow(); $oStepTriggers->remove($aRow['STEP_UID'], $aRow['TAS_UID'], $aRow['TRI_UID'], $aRow['ST_TYPE']); } /*$con = Propel::getConnection(StepPeer::DATABASE_NAME); try { $con->begin(); //$this->fromArray($fields,BasePeer::TYPE_FIELDNAME); $this->setStepUid($sStepUID); $result=$this->delete(); $con->commit(); return $result; } catch(Exception $e) { $con->rollback(); throw($e); }*/ $oConnection = Propel::getConnection(StepPeer::DATABASE_NAME); try { $oStep = StepPeer::retrieveByPK($sStepUID); if (!is_null($oStep)) { $oConnection->begin(); $iResult = $oStep->delete(); $oConnection->commit(); return $iResult; } else { throw new Exception('This row doesn\'t exist!'); } } catch (Exception $oError) { $oConnection->rollback(); throw $oError; } }
$stepsChildren[0] = array('text' => 'Before - Triggers (' . $beforeTriggersCount . ')', 'children' => $beforeTriggerChildren); $stepsChildren[1] = array('text' => 'After - Triggers (' . $afterTriggersCount . ')', 'children' => $afterTriggerChildren); //Tree level 1 nodes (Main steps) $steps[] = array('text' => $rows[$i]['STEP_TITLE'] . ' - Triggers (' . $iTotal . ')', 'children' => $stepsChildren); } //Creating tree for Assign Task Step $beforeAssignmentChildren[] = array('text' => 'Assign / Show Triggers', 'id' => '-1|BEFORE', 'leaf' => true); $beforeDerivationChildren[] = array('text' => 'Assign / Show Triggers', 'id' => '-2|BEFORE', 'leaf' => true); $afterDerivationChildren[] = array('text' => 'Assign / Show Triggers', 'id' => '-2|AFTER', 'leaf' => true); //Getting counts for Before Assignment,Before Derivation and After Derivation triggers for a step $beforeAssignmentTriggers = $oProcessMap->getStepTriggersCriteria('-1', $_GET['tid'], 'BEFORE'); $beforeAssignmentTriggersCount = StepTriggerPeer::doCount($beforeAssignmentTriggers); $beforeDerivationTriggers = $oProcessMap->getStepTriggersCriteria('-2', $_GET['tid'], 'BEFORE'); $beforeDerivationTriggersCount = StepTriggerPeer::doCount($beforeDerivationTriggers); $afterDerivationTriggers = $oProcessMap->getStepTriggersCriteria('-2', $_GET['tid'], 'AFTER'); $afterDerivationTriggersCount = StepTriggerPeer::doCount($afterDerivationTriggers); $iTotal = $beforeAssignmentTriggersCount + $beforeDerivationTriggersCount + $afterDerivationTriggersCount; $assignTaskChildren[] = array('text' => 'Before Assignment - Triggers (' . $beforeAssignmentTriggersCount . ')', 'children' => $beforeAssignmentChildren); $assignTaskChildren[] = array('text' => 'Before Derivation - Triggers (' . $beforeDerivationTriggersCount . ')', 'children' => $beforeDerivationChildren); $assignTaskChildren[] = array('text' => 'After Derivation - Triggers (' . $afterDerivationTriggersCount . ')', 'children' => $afterDerivationChildren); //Adding last value in an array for "Assign Task" $steps[] = array('text' => '[ Assign Task ] - Triggers (' . $iTotal . ')', 'children' => $assignTaskChildren); /* $nodes = "[{ text: 'Step 1 - Triggers (0)', cls: 'blank', iconCls: 'blank', children: [{ text: 'Before - Triggers (0)', cls: 'blank', iconCls: 'blank', children: [{
/** * Get data of a Trigger * * @param string $stepUid Unique id of Step * @param string $type Type (BEFORE, AFTER, BEFORE_ASSIGNMENT, BEFORE_ROUTING, AFTER_ROUTING) * @param string $taskUid Unique id of Task * @param string $triggerUid Unique id of Trigger * * return array Return an array with data of a Trigger */ public function getTrigger($stepUid, $type, $taskUid, $triggerUid) { try { $typeIni = $type; $flagStepAssignTask = 0; if ($stepUid == "") { $flagStepAssignTask = 1; switch ($type) { case "BEFORE_ASSIGNMENT": $stepUid = "-1"; $type = "BEFORE"; break; case "BEFORE_ROUTING": $stepUid = "-2"; $type = "BEFORE"; break; case "AFTER_ROUTING": $stepUid = "-2"; $type = "AFTER"; break; } } //Verify data if (!$this->existsRecord($stepUid, $type, $taskUid, $triggerUid)) { throw new \Exception(\G::LoadTranslation("ID_RECORD_DOES_NOT_EXIST_IN_TABLE", array($stepUid . ", " . $type . ", " . $taskUid . ", " . $triggerUid, "STEP_TRIGGER"))); } //Get data $trigger = new \ProcessMaker\BusinessModel\Trigger(); $criteria = $trigger->getTriggerCriteria(); $criteria->addSelectColumn(\StepTriggerPeer::ST_TYPE); $criteria->addSelectColumn(\StepTriggerPeer::ST_CONDITION); $criteria->addSelectColumn(\StepTriggerPeer::ST_POSITION); $criteria->addJoin(\StepTriggerPeer::TRI_UID, \TriggersPeer::TRI_UID, \Criteria::LEFT_JOIN); $criteria->add(\TriggersPeer::TRI_UID, $triggerUid, \Criteria::EQUAL); $criteria->add(\StepTriggerPeer::STEP_UID, $stepUid, \Criteria::EQUAL); $criteria->add(\StepTriggerPeer::TAS_UID, $taskUid, \Criteria::EQUAL); $criteria->add(\StepTriggerPeer::ST_TYPE, $type, \Criteria::EQUAL); $rsCriteria = \StepTriggerPeer::doSelectRS($criteria); $rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC); $rsCriteria->next(); $row = $rsCriteria->getRow(); if ($flagStepAssignTask == 1) { $row["ST_TYPE"] = $typeIni; } return $this->getTriggerDataFromRecord($row); } catch (\Exception $e) { throw $e; } }