public static function getAll($prjUid = null, $start = null, $limit = null, $filter = '', $changeCaseTo = CASE_UPPER) { $c = new Criteria('workflow'); $c->addSelectColumn("BPMN_ACTIVITY.*"); $c->addSelectColumn("BPMN_BOUND.*"); $c->addJoin(BpmnActivityPeer::ACT_UID, BpmnBoundPeer::ELEMENT_UID, Criteria::LEFT_JOIN); if (!is_null($prjUid)) { $c->add(BpmnActivityPeer::PRJ_UID, $prjUid, Criteria::EQUAL); } $rs = BpmnActivityPeer::doSelectRS($c); $rs->setFetchmode(\ResultSet::FETCHMODE_ASSOC); $activities = array(); while ($rs->next()) { $activities[] = $changeCaseTo !== CASE_UPPER ? array_change_key_case($rs->getRow(), CASE_LOWER) : $rs->getRow(); } return $activities; }
/** * Get data of a Script-Task by unique id of Activity * * @param string $projectUid Unique id of Project * @param string $activityUid Unique id of Event * * return array Return an array with data of a Script-Task by unique id of Activity */ public function getScriptTaskByActivity($projectUid, $activityUid) { try { //Verify data $process = new \ProcessMaker\BusinessModel\Process(); $process->throwExceptionIfNotExistsProcess($projectUid, $this->arrayFieldNameForException["projectUid"]); //--- $obj = \BpmnActivityPeer::retrieveByPK($activityUid); if (is_null($obj)) { throw new \Exception(\G::LoadTranslation("ID_SCRIPT_TASK_DOES_NOT_ACTIVITY", array($this->arrayFieldNameForException["actUid"], $activityUid))); } //--- $criteria = new \Criteria("workflow"); $criteria->addSelectColumn(\BpmnActivityPeer::ACT_UID); $criteria->add(\BpmnActivityPeer::PRJ_UID, $projectUid, \Criteria::EQUAL); $criteria->add(\BpmnActivityPeer::ACT_UID, $activityUid, \Criteria::EQUAL); $rsCriteria = \BpmnActivityPeer::doSelectRS($criteria); $rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC); if (!$rsCriteria->next()) { throw new \Exception(\G::LoadTranslation("ID_SCRIPT_TASK_ACTIVITY_NOT_BELONG_TO_PROJECT", array($arrayData["ACT_UID"], $projectUid))); } //--- $criteria = $this->getScriptTaskCriteria(); $criteria->add(\ScriptTaskPeer::PRJ_UID, $projectUid, \Criteria::EQUAL); $criteria->add(\ScriptTaskPeer::ACT_UID, $activityUid, \Criteria::EQUAL); $rsCriteria = \ScriptTaskPeer::doSelectRS($criteria); $rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC); //Return return $rsCriteria->next() ? $this->getScriptTaskDataFromRecord($rsCriteria->getRow()) : array(); } catch (\Exception $e) { throw $e; } }
/** * Returns the number of rows matching criteria, joining the related BpmnProcess table * * @param Criteria $c * @param boolean $distinct Whether to select only distinct columns (You can also set DISTINCT modifier in Criteria). * @param Connection $con * @return int Number of matching rows. */ public static function doCountJoinAllExceptBpmnProcess(Criteria $criteria, $distinct = false, $con = null) { // we're going to modify criteria, so copy it first $criteria = clone $criteria; // clear out anything that might confuse the ORDER BY clause $criteria->clearSelectColumns()->clearOrderByColumns(); if ($distinct || in_array(Criteria::DISTINCT, $criteria->getSelectModifiers())) { $criteria->addSelectColumn(BpmnActivityPeer::COUNT_DISTINCT); } else { $criteria->addSelectColumn(BpmnActivityPeer::COUNT); } // just in case we're grouping: add those columns to the select statement foreach ($criteria->getGroupByColumns() as $column) { $criteria->addSelectColumn($column); } $criteria->addJoin(BpmnActivityPeer::PRJ_UID, BpmnProjectPeer::PRJ_UID); $rs = BpmnActivityPeer::doSelectRS($criteria, $con); if ($rs->next()) { return $rs->getInt(1); } else { // no rows returned; we infer that means 0 matches. return 0; } }