global $G_PUBLISH; $G_PUBLISH = new Publisher(); if ($aData['sType'] == 'BEFORE') { $G_PUBLISH->AddContent('propeltable', 'paged-table', 'steps/triggersBefore_List', $oProcessMap->getStepTriggersCriteria($aData['sStep'], $_SESSION['TASK'], $aData['sType']), array('STEP' => $aData['sStep'])); } else { $G_PUBLISH->AddContent('propeltable', 'paged-table', 'steps/triggersAfter_List', $oProcessMap->getStepTriggersCriteria($aData['sStep'], $_SESSION['TASK'], $aData['sType']), array('STEP' => $aData['sStep'])); } G::RenderPage('publish-twocolumns', 'raw'); break; case 'availableTriggers': $oCriteria = new Criteria('workflow'); $oCriteria->addSelectColumn('TRI_UID'); $oCriteria->add(StepTriggerPeer::TAS_UID, $_SESSION['TASK']); $oCriteria->add(StepTriggerPeer::STEP_UID, $aData['sStep']); $oCriteria->add(StepTriggerPeer::ST_TYPE, $aData['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(); } $oCriteria = new Criteria('workflow'); $oCriteria->addSelectColumn('COUNT(TRI_UID) AS CANTITY'); $oCriteria->add(TriggersPeer::TRI_UID, $aUIDs, Criteria::NOT_IN); $oCriteria->add(TriggersPeer::PRO_UID, $aData['sProcess']); $oDataset = TriggersPeer::doSelectRS($oCriteria); $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
/** * Get Step Trigger Rows for a Process form an array * * @param array $aTask * @return array $aStepTrigger */ public function getStepTriggerRows ($aTask) { try { $aInTasks = array (); foreach ($aTask as $key => $val) { $aInTasks[] = $val['TAS_UID']; } $aTrigger = array (); $oCriteria = new Criteria( 'workflow' ); $oCriteria->add( StepTriggerPeer::TAS_UID, $aInTasks, Criteria::IN ); $oDataset = StepTriggerPeer::doSelectRS( $oCriteria ); $oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC ); $oDataset->next(); $aStepTrigger = array (); while ($aRow = $oDataset->getRow()) { $aStepTrigger[] = $aRow; $oDataset->next(); } return $aStepTrigger; } catch (Exception $oError) { throw ($oError); } }
/** * Method to do selects. * * @param Criteria $criteria The Criteria object used to build the SELECT statement. * @param Connection $con * @return array Array of selected Objects * @throws PropelException Any exceptions caught during processing will be * rethrown wrapped into a PropelException. */ public static function doSelect(Criteria $criteria, $con = null) { return StepTriggerPeer::populateObjects(StepTriggerPeer::doSelectRS($criteria, $con)); }
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; } }
/** * 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; }
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; } }
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; } }
/** * 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; } }