Ejemplo n.º 1
0
 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;
 }
Ejemplo n.º 2
0
 /**
  * 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;
     }
 }