/** * Implementation for 'GET' method for Rest API * * @param mixed $appDelayUid 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($appDelayUid = 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(AppDelayPeer::APP_DELAY_UID); $criteria->addSelectColumn(AppDelayPeer::PRO_UID); $criteria->addSelectColumn(AppDelayPeer::APP_UID); $criteria->addSelectColumn(AppDelayPeer::APP_THREAD_INDEX); $criteria->addSelectColumn(AppDelayPeer::APP_DEL_INDEX); $criteria->addSelectColumn(AppDelayPeer::APP_TYPE); $criteria->addSelectColumn(AppDelayPeer::APP_STATUS); $criteria->addSelectColumn(AppDelayPeer::APP_NEXT_TASK); $criteria->addSelectColumn(AppDelayPeer::APP_DELEGATION_USER); $criteria->addSelectColumn(AppDelayPeer::APP_ENABLE_ACTION_USER); $criteria->addSelectColumn(AppDelayPeer::APP_ENABLE_ACTION_DATE); $criteria->addSelectColumn(AppDelayPeer::APP_DISABLE_ACTION_USER); $criteria->addSelectColumn(AppDelayPeer::APP_DISABLE_ACTION_DATE); $criteria->addSelectColumn(AppDelayPeer::APP_AUTOMATIC_DISABLED_DATE); $dataset = AppEventPeer::doSelectRS($criteria); $dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); while ($dataset->next()) { $result[] = $dataset->getRow(); } } else { $record = AppDelayPeer::retrieveByPK($appDelayUid); 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 AppDelay ({$paramValues})"); } } } catch (RestException $e) { throw new RestException($e->getCode(), $e->getMessage()); } catch (Exception $e) { throw new RestException(412, $e->getMessage()); } return $result; }
/** * execute Trigger, executes a ProcessMaker trigger. * Note that triggers which are tied to case derivation * will executing automatically. * * @param string $userId * @param string $caseId * @param string $delIndex * @return $result will return an object */ public function executeTrigger ($userId, $caseId, $triggerIndex, $delIndex) { $g = new G(); try { $g->sessionVarSave(); $_SESSION["APPLICATION"] = $caseId; $_SESSION["INDEX"] = $delIndex; $_SESSION["USER_LOGGED"] = $userId; $oAppDel = new AppDelegation(); $appdel = $oAppDel->Load( $caseId, $delIndex ); if ($userId != $appdel['USR_UID']) { $result = new wsResponse( 17, G::loadTranslation( 'ID_CASE_ASSIGNED_ANOTHER_USER' ) ); $g->sessionVarRestore(); return $result; } if ($appdel['DEL_FINISH_DATE'] != null) { $result = new wsResponse( 18, G::loadTranslation( 'ID_CASE_DELEGATION_ALREADY_CLOSED' ) ); $g->sessionVarRestore(); return $result; } $oCriteria = new Criteria( 'workflow' ); $oCriteria->addSelectColumn( AppDelayPeer::APP_UID ); $oCriteria->addSelectColumn( AppDelayPeer::APP_DEL_INDEX ); $oCriteria->addSelectColumn( AppDelayPeer::APP_DISABLE_ACTION_USER ); $oCriteria->addSelectColumn( AppDelayPeer::APP_DISABLE_ACTION_DATE ); $oCriteria->add( AppDelayPeer::APP_TYPE, '' ); $oCriteria->add( $oCriteria->getNewCriterion( AppDelayPeer::APP_TYPE, 'PAUSE' )->addOr( $oCriteria->getNewCriterion( AppDelayPeer::APP_TYPE, 'CANCEL' ) ) ); $oCriteria->addAscendingOrderByColumn( AppDelayPeer::APP_ENABLE_ACTION_DATE ); $oDataset = AppDelayPeer::doSelectRS( $oCriteria ); $oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC ); $oDataset->next(); $aRow = $oDataset->getRow(); if (is_array( $aRow )) { if ($aRow['APP_DISABLE_ACTION_USER'] != 0 && $aRow['APP_DISABLE_ACTION_DATE'] != '') { $result = new wsResponse( 19, G::loadTranslation( 'ID_CASE_IN_STATUS' ) . " " . $aRow['APP_TYPE'] ); $g->sessionVarRestore(); return $result; } } //Load data $oCase = new Cases(); $appFields = $oCase->loadCase( $caseId ); $appFields["APP_DATA"]["APPLICATION"] = $caseId; if (! isset( $_SESSION["PROCESS"] )) { $_SESSION["PROCESS"] = $appFields["PRO_UID"]; } //executeTrigger $aTriggers = array (); $c = new Criteria(); $c->add( TriggersPeer::TRI_UID, $triggerIndex ); $rs = TriggersPeer::doSelectRS( $c ); $rs->setFetchmode( ResultSet::FETCHMODE_ASSOC ); $rs->next(); $row = $rs->getRow(); if (is_array( $row ) && $row['TRI_TYPE'] == 'SCRIPT') { $aTriggers[] = $row; $oPMScript = new PMScript(); $oPMScript->setFields( $appFields['APP_DATA'] ); $oPMScript->setScript( $row['TRI_WEBBOT'] ); $oPMScript->execute(); if (isset($oPMScript->aFields["__ERROR__"]) && trim($oPMScript->aFields["__ERROR__"]) != "" && $oPMScript->aFields["__ERROR__"] != "none") { throw new Exception($oPMScript->aFields["__ERROR__"]); } //Save data - Start $appFields['APP_DATA'] = $oPMScript->aFields; unset($appFields['APP_STATUS']); unset($appFields['APP_PROC_STATUS']); unset($appFields['APP_PROC_CODE']); unset($appFields['APP_PIN']); //$appFields = $oCase->loadCase($caseId); $oCase->updateCase( $caseId, $appFields ); //Save data - End } else { $data['TRIGGER_INDEX'] = $triggerIndex; $result = new wsResponse( 100, G::loadTranslation( 'ID_INVALID_TRIGGER', SYS_LANG, $data ) ); $g->sessionVarRestore(); return $result; } $result = new wsResponse( 0, G::loadTranslation( 'ID_EXECUTED' ) . ": " . trim( $row['TRI_WEBBOT'] ) ); //$result = new wsResponse(0, 'executed: ' . print_r($oPMScript, 1)); $g->sessionVarRestore(); return $result; } catch (Exception $e) { $result = new wsResponse( 100, $e->getMessage() ); $g->sessionVarRestore(); return $result; } }
$criteria = new Criteria('workflow'); $criteria->addSelectColumn(AppDelegationPeer::APP_UID); $criteria->addSelectColumn(AppDelegationPeer::DEL_INDEX); $criteria->addSelectColumn(AppDelegationPeer::TAS_UID); $criteria->add(AppDelegationPeer::TAS_UID, $oData->task_uid); $criteria->add(AppDelegationPeer::DEL_THREAD_STATUS, 'OPEN'); $casesNumRec = AppDelegationPeer::doCount($criteria); if ($casesNumRec == 0) { require_once 'classes/model/AppDelay.php'; $criteria = new Criteria('workflow'); $criteria->addSelectColumn(AppDelayPeer::APP_UID); $criteria->addSelectColumn(AppDelayPeer::APP_DEL_INDEX); $criteria->add(AppDelayPeer::PRO_UID, $oData->pro_uid); $criteria->add(AppDelayPeer::APP_TYPE, 'PAUSE'); $criteria->add(AppDelayPeer::APP_DISABLE_ACTION_DATE, null, Criteria::ISNULL); $dataset = AppDelayPeer::doSelectRS($criteria); if ($dataset->getRecordCount() > 0) { $dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $dataset->next(); while ($row = $dataset->getRow()) { $criteria = new Criteria('workflow'); $criteria->addSelectColumn(AppDelegationPeer::TAS_UID); $criteria->add(AppDelegationPeer::APP_UID, $row['APP_UID']); $criteria->add(AppDelegationPeer::DEL_INDEX, $row['APP_DEL_INDEX']); $criteria->add(AppDelegationPeer::TAS_UID, $oData->task_uid); $casesNumRec += AppDelegationPeer::doCount($criteria); $dataset->next(); } } } $response = new stdclass();
public function isPaused($appUid, $delIndex) { $oCriteria = new Criteria('workflow'); $oCriteria->add(AppDelayPeer::APP_UID, $appUid); $oCriteria->add(AppDelayPeer::APP_DEL_INDEX, $delIndex); $oCriteria->add(AppDelayPeer::APP_TYPE, 'PAUSE'); $oCriteria->add($oCriteria->getNewCriterion(AppDelayPeer::APP_DISABLE_ACTION_USER, 0, Criteria::EQUAL)->addOr($oCriteria->getNewCriterion(AppDelayPeer::APP_DISABLE_ACTION_USER, null, Criteria::ISNULL))); $oDataset = AppDelayPeer::doSelectRS($oCriteria); $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $oDataset->next(); $aRow = $oDataset->getRow(); if ($aRow) { return true; } else { return false; } }
public function reactivateCase($sApplicationUID, $iIndex, $user_logged) { $oApplication = new Application(); $aFields = $oApplication->load( (isset($_POST['sApplicationUID']) ? $_POST['sApplicationUID'] : $_SESSION['APPLICATION']) ); $aFields['APP_STATUS'] = 'TO_DO'; $oApplication->update($aFields); $this->ReactivateCurrentDelegation($sApplicationUID, $iIndex); $c = new Criteria('workflow'); $c->clearSelectColumns(); $c->addSelectColumn(AppDelayPeer::APP_DELAY_UID); $c->add(AppDelayPeer::APP_UID, $sApplicationUID); $c->add(AppDelayPeer::PRO_UID, $aFields['PRO_UID']); $c->add(AppDelayPeer::APP_DEL_INDEX, $iIndex); $c->add(AppDelayPeer::APP_TYPE, 'CANCEL'); $c->add(AppDelayPeer::APP_DISABLE_ACTION_USER, 0); $c->add(AppDelayPeer::APP_DISABLE_ACTION_DATE, null, Criteria::ISNULL); $oDataset = AppDelayPeer::doSelectRS($c); $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $oDataset->next(); $aRow = $oDataset->getRow(); //var_dump($aRow); $aFields = array(); $aFields['APP_DELAY_UID'] = $aRow['APP_DELAY_UID']; $aFields['APP_DISABLE_ACTION_USER'] = $user_logged; $aFields['APP_DISABLE_ACTION_DATE'] = date('Y-m-d H:i:s'); $delay = new AppDelay(); $delay->update($aFields); //$this->ReactivateCurrentDelegation($sApplicationUID); $con = Propel::getConnection('workflow'); $sql = "UPDATE APP_THREAD SET APP_THREAD_STATUS = 'OPEN' WHERE APP_UID = '$sApplicationUID' " . " AND DEL_INDEX ='$iIndex' "; $stmt = $con->createStatement(); $rs = $stmt->executeQuery($sql, ResultSet::FETCHMODE_ASSOC); //update searchindex if ($this->appSolr != null) { $this->appSolr->updateApplicationSearchIndex($sApplicationUID); } }
/** * Migrate all cases to New list * * return all LIST TABLES with data */ public function migrateList ($workSpace) { if ($this->listFirstExecution('check')) { return 1; } $this->initPropel(true); $appCache = new AppCacheView(); $users = new Users(); G::LoadClass("case"); $case = new Cases(); //Select data CANCELLED $canCriteria = $appCache->getSelAllColumns(); $canCriteria->add(AppCacheViewPeer::APP_STATUS, "CANCELLED", CRITERIA::EQUAL); $canCriteria->add(AppCacheViewPeer::DEL_LAST_INDEX, "1", CRITERIA::EQUAL); $rsCriteria = AppCacheViewPeer::doSelectRS($canCriteria); $rsCriteria->setFetchmode(ResultSet::FETCHMODE_ASSOC); //Insert data LIST_CANCELED while ($rsCriteria->next()) { $row = $rsCriteria->getRow(); $listCanceled = new ListCanceled(); $listCanceled->remove($row["APP_UID"]); $listCanceled->setDeleted(false); $listCanceled->create($row); } CLI::logging("> Completed table LIST_CANCELED\n"); //Select data COMPLETED $comCriteria = $appCache->getSelAllColumns(); $comCriteria->add(AppCacheViewPeer::APP_STATUS, "COMPLETED", CRITERIA::EQUAL); $comCriteria->add(AppCacheViewPeer::DEL_LAST_INDEX, "1", CRITERIA::EQUAL); $rsCriteria = AppCacheViewPeer::doSelectRS($comCriteria); $rsCriteria->setFetchmode(ResultSet::FETCHMODE_ASSOC); //Insert new data LIST_COMPLETED while ($rsCriteria->next()) { $row = $rsCriteria->getRow(); $listCompleted = new ListCompleted(); $listCompleted->remove($row["APP_UID"]); $listCompleted->setDeleted(false); $listCompleted->create($row); } CLI::logging("> Completed table LIST_COMPLETED\n"); //Select data TO_DO OR DRAFT $inbCriteria = $appCache->getSelAllColumns(); $rsCriteria = AppCacheViewPeer::doSelectRS($inbCriteria); $rsCriteria->setFetchmode(ResultSet::FETCHMODE_ASSOC); $criteriaUser = new Criteria(); $criteriaUser->addSelectColumn( UsersPeer::USR_UID ); $criteriaUser->addSelectColumn( UsersPeer::USR_FIRSTNAME ); $criteriaUser->addSelectColumn( UsersPeer::USR_LASTNAME ); $criteriaUser->addSelectColumn( UsersPeer::USR_USERNAME ); //Insert new data LIST_INBOX while ($rsCriteria->next()) { $row = $rsCriteria->getRow(); $isSelfService = ($row['USR_UID'] == '') ? true : false; if($row["DEL_THREAD_STATUS"] == 'OPEN'){ //Update information about the previous_user $row["DEL_PREVIOUS_USR_UID"] = $row["PREVIOUS_USR_UID"]; $criteriaUser->add( UsersPeer::USR_UID, $row["PREVIOUS_USR_UID"] ); $datasetU = UsersPeer::doSelectRS($criteriaUser); $datasetU->setFetchmode(ResultSet::FETCHMODE_ASSOC); $datasetU->next(); $arrayUsers = $datasetU->getRow(); $row["DEL_PREVIOUS_USR_USERNAME"] = $arrayUsers["USR_USERNAME"]; $row["DEL_PREVIOUS_USR_FIRSTNAME"]= $arrayUsers["USR_FIRSTNAME"]; $row["DEL_PREVIOUS_USR_LASTNAME"] = $arrayUsers["USR_LASTNAME"]; //Update the due date $row["DEL_DUE_DATE"] = $row["DEL_TASK_DUE_DATE"]; $listInbox = new ListInbox(); $listInbox->remove($row["APP_UID"],$row["DEL_INDEX"]); $listInbox->setDeleted(false); $listInbox->create($row, $isSelfService); } else { // create participated List when the thread is CLOSED $listParticipatedHistory = new ListParticipatedHistory(); $listParticipatedHistory->remove($row['APP_UID'], $row['DEL_INDEX']); $listParticipatedHistory = new ListParticipatedHistory(); $listParticipatedHistory->create($row); $oCriteria = new Criteria('workflow'); $oCriteria->add(ListParticipatedLastPeer::APP_UID, $row['APP_UID']); $oCriteria->add(ListParticipatedLastPeer::USR_UID, $row['USR_UID']); ListParticipatedLastPeer::doDelete($oCriteria); $listParticipatedLast = new ListParticipatedLast(); $listParticipatedLast->create($row); $listParticipatedLast = new ListParticipatedLast(); $listParticipatedLast->refresh($row); } } CLI::logging("> Completed table LIST_INBOX\n"); //With this List is populated the LIST_PARTICIPATED_HISTORY and LIST_PARTICIPATED_LAST CLI::logging("> Completed table LIST_PARTICIPATED_HISTORY\n"); CLI::logging("> Completed table LIST_PARTICIPATED_LAST\n"); //Select data TO_DO OR DRAFT CASES CREATED BY AN USER $myiCriteria = $appCache->getSelAllColumns(); $myiCriteria->add(AppCacheViewPeer::DEL_INDEX, "1", CRITERIA::EQUAL); $rsCriteria = AppCacheViewPeer::doSelectRS($myiCriteria); $rsCriteria->setFetchmode(ResultSet::FETCHMODE_ASSOC); //Insert new data LIST_MY_INBOX while ($rsCriteria->next()) { $row = $rsCriteria->getRow(); $listMyInbox = new ListMyInbox(); $listMyInbox ->remove($row["APP_UID"],$row["USR_UID"]); $listMyInbox->setDeleted(false); $listMyInbox->create($row); } CLI::logging("> Completed table LIST_MY_INBOX\n"); //Select data PAUSED $delaycriteria = new Criteria("workflow"); $delaycriteria->addSelectColumn(AppDelayPeer::APP_UID); $delaycriteria->addSelectColumn(AppDelayPeer::PRO_UID); $delaycriteria->addSelectColumn(AppDelayPeer::APP_DEL_INDEX); $delaycriteria->addSelectColumn(AppCacheViewPeer::APP_NUMBER); $delaycriteria->addSelectColumn(AppCacheViewPeer::USR_UID); $delaycriteria->addSelectColumn(AppCacheViewPeer::APP_STATUS); $delaycriteria->addSelectColumn(AppCacheViewPeer::TAS_UID); $delaycriteria->addJoin( AppCacheViewPeer::APP_UID, AppDelayPeer::APP_UID . ' AND ' . AppCacheViewPeer::DEL_INDEX . ' = ' . AppDelayPeer::APP_DEL_INDEX, Criteria::INNER_JOIN ); $delaycriteria->add(AppDelayPeer::APP_DISABLE_ACTION_USER, "0", CRITERIA::EQUAL); $delaycriteria->add(AppDelayPeer::APP_TYPE, "PAUSE", CRITERIA::EQUAL); $rsCriteria = AppDelayPeer::doSelectRS($delaycriteria); $rsCriteria->setFetchmode(ResultSet::FETCHMODE_ASSOC); //Insert new data LIST_PAUSED while ($rsCriteria->next()) { $row = $rsCriteria->getRow(); $data = $row; $data["DEL_INDEX"] = $row["APP_DEL_INDEX"]; $listPaused = new ListPaused(); $listPaused ->remove($row["APP_UID"],$row["APP_DEL_INDEX"],$data); $listPaused->setDeleted(false); $listPaused->create($data); } CLI::logging("> Completed table LIST_PAUSED\n"); //Select and Insert LIST_UNASSIGNED $unaCriteria = $appCache->getSelAllColumns(); $unaCriteria->add(AppCacheViewPeer::USR_UID, "", CRITERIA::EQUAL); $rsCriteria = AppCacheViewPeer::doSelectRS($unaCriteria); $rsCriteria->setFetchmode(ResultSet::FETCHMODE_ASSOC); $del = new ListUnassignedPeer(); $del->doDeleteAll(); $del = new ListUnassignedGroupPeer(); $del->doDeleteAll(); while ($rsCriteria->next()) { $row = $rsCriteria->getRow(); $listUnassigned = new ListUnassigned(); $unaUid = $listUnassigned->generateData($row["APP_UID"],$row["PREVIOUS_USR_UID"]); } CLI::logging("> Completed table LIST_UNASSIGNED\n"); CLI::logging("> Completed table LIST_UNASSIGNED_GROUP\n"); // ADD LISTS COUNTS $aTypes = array( 'to_do', 'draft', 'cancelled', 'sent', 'paused', 'completed', 'selfservice' ); $users = new Users(); $criteria = new Criteria(); $criteria->addSelectColumn(UsersPeer::USR_UID); $dataset = UsersPeer::doSelectRS($criteria); $dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); while($dataset->next()) { $aRow = $dataset->getRow(); $oAppCache = new AppCacheView(); $aCount = $oAppCache->getAllCounters( $aTypes, $aRow['USR_UID'] ); $newData = array( 'USR_UID' => $aRow['USR_UID'], 'USR_TOTAL_INBOX' => $aCount['to_do'], 'USR_TOTAL_DRAFT' => $aCount['draft'], 'USR_TOTAL_CANCELLED' => $aCount['cancelled'], 'USR_TOTAL_PARTICIPATED' => $aCount['sent'], 'USR_TOTAL_PAUSED' => $aCount['paused'], 'USR_TOTAL_COMPLETED' => $aCount['completed'], 'USR_TOTAL_UNASSIGNED' => $aCount['selfservice'] ); $users->update($newData); } $this->listFirstExecution('insert'); return true; }
/** * Retrieve multiple objects by pkey. * * @param array $pks List of primary keys * @param Connection $con the connection to use * @throws PropelException Any exceptions caught during processing will be * rethrown wrapped into a PropelException. */ public static function retrieveByPKs($pks, $con = null) { if ($con === null) { $con = Propel::getConnection(self::DATABASE_NAME); } $objs = null; if (empty($pks)) { $objs = array(); } else { $criteria = new Criteria(); $criteria->add(AppDelayPeer::APP_DELAY_UID, $pks, Criteria::IN); $objs = AppDelayPeer::doSelect($criteria, $con); } return $objs; }
$Fields['CANT_DELEGATIONS'] = count($delegations); $Fields['DELEGATIONS'] = $delegations; require_once 'classes/model/AppDelay.php'; $oCriteria = new Criteria('workflow'); $oCriteria->addSelectColumn(AppDelayPeer::APP_THREAD_INDEX); $oCriteria->addSelectColumn(AppDelayPeer::APP_DEL_INDEX); $oCriteria->addSelectColumn(AppDelayPeer::APP_TYPE); $oCriteria->addSelectColumn(AppDelayPeer::APP_STATUS); $oCriteria->addSelectColumn(AppDelayPeer::APP_ENABLE_ACTION_USER); $oCriteria->addSelectColumn(AppDelayPeer::APP_ENABLE_ACTION_DATE); $oCriteria->addSelectColumn(AppDelayPeer::APP_DISABLE_ACTION_USER); $oCriteria->addSelectColumn(AppDelayPeer::APP_DISABLE_ACTION_DATE); $oCriteria->add(AppDelayPeer::APP_UID, $appUid); $oCriteria->addAscendingOrderByColumn(AppDelayPeer::APP_TYPE); $oCriteria->addAscendingOrderByColumn(AppDelayPeer::APP_ENABLE_ACTION_DATE); $oDataset = AppDelayPeer::doSelectRS($oCriteria); $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $oDataset->next(); $aDelays = array(); while ($aRow = $oDataset->getRow()) { $aDelays[] = $aRow; $oDataset->next(); } $Fields['DELAYS'] = $aDelays; $Fields['CANT_DELAYS'] = count($aDelays); require_once 'classes/model/SubApplication.php'; $oCriteria = new Criteria('workflow'); $oCriteria->addSelectColumn(SubApplicationPeer::APP_UID); $oCriteria->addSelectColumn(SubApplicationPeer::APP_PARENT); $oCriteria->addSelectColumn(SubApplicationPeer::DEL_INDEX_PARENT); $oCriteria->addSelectColumn(SubApplicationPeer::DEL_THREAD_PARENT);
/** * Get status info Case * * @param string $applicationUid Unique id of Case * @param int $del_index {@min 1} * @param string $userUid Unique id of User * * return array Return an array with status info Case, array empty otherwise */ public function getStatusInfo($applicationUid, $delIndex = 0, $userUid = "") { try { //Verify data $this->throwExceptionIfNotExistsCase($applicationUid, $delIndex, $this->getFieldNameByFormatFieldName("APP_UID")); //Get data //Status is PAUSED $delimiter = \DBAdapter::getStringDelimiter(); $criteria = new \Criteria("workflow"); $criteria->addSelectColumn($delimiter . "PAUSED" . $delimiter . " AS APP_STATUS"); $criteria->addSelectColumn(\AppDelayPeer::APP_DEL_INDEX . " AS DEL_INDEX"); $criteria->add(\AppDelayPeer::APP_UID, $applicationUid, \Criteria::EQUAL); $criteria->add(\AppDelayPeer::APP_TYPE, "PAUSE", \Criteria::EQUAL); $criteria->add( $criteria->getNewCriterion(\AppDelayPeer::APP_DISABLE_ACTION_USER, null, \Criteria::ISNULL)->addOr( $criteria->getNewCriterion(\AppDelayPeer::APP_DISABLE_ACTION_USER, 0, \Criteria::EQUAL)) ); if ($delIndex != 0) { $criteria->add(\AppDelayPeer::APP_DEL_INDEX, $delIndex, \Criteria::EQUAL); } if ($userUid != "") { $criteria->add(\AppDelayPeer::APP_DELEGATION_USER, $userUid, \Criteria::EQUAL); } $rsCriteria = \AppDelayPeer::doSelectRS($criteria); $rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC); if ($rsCriteria->next()) { $row = $rsCriteria->getRow(); //Return return array("APP_STATUS" => $row["APP_STATUS"], "DEL_INDEX" => $row["DEL_INDEX"]); } //Status is TO_DO, DRAFT $criteria = new \Criteria("workflow"); $criteria->addSelectColumn(\ApplicationPeer::APP_STATUS); $criteria->addSelectColumn(\AppDelegationPeer::DEL_INDEX); $arrayCondition = array(); $arrayCondition[] = array(\ApplicationPeer::APP_UID, \AppDelegationPeer::APP_UID, \Criteria::EQUAL); $arrayCondition[] = array(\ApplicationPeer::APP_UID, \AppThreadPeer::APP_UID, \Criteria::EQUAL); $arrayCondition[] = array(\ApplicationPeer::APP_UID, $delimiter . $applicationUid . $delimiter, \Criteria::EQUAL); $criteria->addJoinMC($arrayCondition, \Criteria::LEFT_JOIN); $criteria->add( $criteria->getNewCriterion(\ApplicationPeer::APP_STATUS, "TO_DO", \Criteria::EQUAL)->addAnd( $criteria->getNewCriterion(\AppDelegationPeer::DEL_FINISH_DATE, null, \Criteria::ISNULL))->addAnd( $criteria->getNewCriterion(\AppDelegationPeer::DEL_THREAD_STATUS, "OPEN"))->addAnd( $criteria->getNewCriterion(\AppThreadPeer::APP_THREAD_STATUS, "OPEN")) )->addOr( $criteria->getNewCriterion(\ApplicationPeer::APP_STATUS, "DRAFT", \Criteria::EQUAL)->addAnd( $criteria->getNewCriterion(\AppDelegationPeer::DEL_THREAD_STATUS, "OPEN"))->addAnd( $criteria->getNewCriterion(\AppThreadPeer::APP_THREAD_STATUS, "OPEN")) ); if ($delIndex != 0) { $criteria->add(\AppDelegationPeer::DEL_INDEX, $delIndex, \Criteria::EQUAL); } if ($userUid != "") { $criteria->add(\AppDelegationPeer::USR_UID, $userUid, \Criteria::EQUAL); } $rsCriteria = \ApplicationPeer::doSelectRS($criteria); $rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC); if ($rsCriteria->next()) { $row = $rsCriteria->getRow(); //Return return array("APP_STATUS" => $row["APP_STATUS"], "DEL_INDEX" => $row["DEL_INDEX"]); } //Status is CANCELLED, COMPLETED $criteria = new \Criteria("workflow"); $criteria->addSelectColumn(\ApplicationPeer::APP_STATUS); $criteria->addSelectColumn(\AppDelegationPeer::DEL_INDEX); $arrayCondition = array(); $arrayCondition[] = array(\ApplicationPeer::APP_UID, \AppDelegationPeer::APP_UID, \Criteria::EQUAL); $arrayCondition[] = array(\ApplicationPeer::APP_UID, $delimiter . $applicationUid . $delimiter, \Criteria::EQUAL); $criteria->addJoinMC($arrayCondition, \Criteria::LEFT_JOIN); $criteria->add(\ApplicationPeer::APP_STATUS, array("CANCELLED", "COMPLETED"), \Criteria::IN); $criteria->add(\AppDelegationPeer::DEL_LAST_INDEX, 1, \Criteria::EQUAL); if ($delIndex != 0) { $criteria->add(\AppDelegationPeer::DEL_INDEX, $delIndex, \Criteria::EQUAL); } if ($userUid != "") { $criteria->add(\AppDelegationPeer::USR_UID, $userUid, \Criteria::EQUAL); } $rsCriteria = \ApplicationPeer::doSelectRS($criteria); $rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC); if ($rsCriteria->next()) { $row = $rsCriteria->getRow(); //Return return array("APP_STATUS" => $row["APP_STATUS"], "DEL_INDEX" => $row["DEL_INDEX"]); } //Return return array(); } catch (\Exception $e) { throw $e; } }
/** * 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 = AppDelayPeer::getFieldNames($keyType); if (array_key_exists($keys[0], $arr)) { $this->setAppDelayUid($arr[$keys[0]]); } if (array_key_exists($keys[1], $arr)) { $this->setProUid($arr[$keys[1]]); } if (array_key_exists($keys[2], $arr)) { $this->setAppUid($arr[$keys[2]]); } if (array_key_exists($keys[3], $arr)) { $this->setAppThreadIndex($arr[$keys[3]]); } if (array_key_exists($keys[4], $arr)) { $this->setAppDelIndex($arr[$keys[4]]); } if (array_key_exists($keys[5], $arr)) { $this->setAppType($arr[$keys[5]]); } if (array_key_exists($keys[6], $arr)) { $this->setAppStatus($arr[$keys[6]]); } if (array_key_exists($keys[7], $arr)) { $this->setAppNextTask($arr[$keys[7]]); } if (array_key_exists($keys[8], $arr)) { $this->setAppDelegationUser($arr[$keys[8]]); } if (array_key_exists($keys[9], $arr)) { $this->setAppEnableActionUser($arr[$keys[9]]); } if (array_key_exists($keys[10], $arr)) { $this->setAppEnableActionDate($arr[$keys[10]]); } if (array_key_exists($keys[11], $arr)) { $this->setAppDisableActionUser($arr[$keys[11]]); } if (array_key_exists($keys[12], $arr)) { $this->setAppDisableActionDate($arr[$keys[12]]); } if (array_key_exists($keys[13], $arr)) { $this->setAppAutomaticDisabledDate($arr[$keys[13]]); } }