public function createAppThread($sAppUid, $iDelIndex, $iParent) { if (!isset($sAppUid) || strlen($sAppUid) == 0) { throw new Exception('Column "APP_UID" cannot be null.'); } if (!isset($iDelIndex) || strlen($iDelIndex) == 0) { throw new Exception('Column "DEL_INDEX" cannot be null.'); } if (!isset($iParent) || strlen($iDelIndex) == 0) { throw new Exception('Column "APP_THREAD_INDEX" cannot be null.'); } $c = new Criteria(); $c->clearSelectColumns(); $c->addSelectColumn('MAX(' . AppThreadPeer::APP_THREAD_INDEX . ') '); $c->add(AppThreadPeer::APP_UID, $sAppUid); $rs = AppThreadPeer::doSelectRS($c); $rs->next(); $row = $rs->getRow(); $iAppThreadIndex = $row[0] + 1; $this->setAppUid($sAppUid); $this->setAppThreadIndex($iAppThreadIndex); $this->setAppThreadParent($iParent); $this->setAppThreadStatus('OPEN'); $this->setDelIndex($iDelIndex); if ($this->validate()) { try { $res = $this->save(); } catch (PropelException $e) { throw $e; } } else { // Something went wrong. We can now get the validationFailures and handle them. $msg = ''; $validationFailuresArray = $this->getValidationFailures(); foreach ($validationFailuresArray as $objValidationFailure) { $msg .= $objValidationFailure->getMessage(); } throw new Exception('Failed Data validation. ' . $msg); } return $iAppThreadIndex; }
public function cancelCase($sApplicationUID, $iIndex, $user_logged) { $this->getExecuteTriggerProcess($sApplicationUID, 'CANCELED'); $oApplication = new Application(); $aFields = $oApplication->load($sApplicationUID); $appStatusCurrent = $aFields['APP_STATUS']; $oCriteria = new Criteria('workflow'); $oCriteria->add(AppDelegationPeer::APP_UID, $sApplicationUID); $oCriteria->add(AppDelegationPeer::DEL_FINISH_DATE, null, Criteria::ISNULL); if (AppDelegationPeer::doCount($oCriteria) == 1) { $aFields['APP_STATUS'] = 'CANCELLED'; $oApplication->update($aFields); G::LoadClass('reportTables'); require_once 'classes/model/AdditionalTables.php'; $oReportTables = new ReportTables(); $addtionalTables = new additionalTables(); $oReportTables->updateTables($aFields['PRO_UID'], $aFields['APP_UID'], $aFields['APP_NUMBER'], $aFields['APP_DATA']); $addtionalTables->updateReportTables($aFields['PRO_UID'], $aFields['APP_UID'], $aFields['APP_NUMBER'], $aFields['APP_DATA'], $aFields['APP_STATUS']); } $this->CloseCurrentDelegation($sApplicationUID, $iIndex); $oAppDel = new AppDelegation(); $oAppDel->Load($sApplicationUID, $iIndex); $aAppDel = $oAppDel->toArray(BasePeer::TYPE_FIELDNAME); $this->closeAppThread($sApplicationUID, $aAppDel['DEL_THREAD']); $delay = new AppDelay(); $array['PRO_UID'] = $aFields['PRO_UID']; $array['APP_UID'] = $sApplicationUID; $c = new Criteria('workflow'); $c->clearSelectColumns(); $c->addSelectColumn(AppThreadPeer::APP_THREAD_INDEX); $c->add(AppThreadPeer::APP_UID, $sApplicationUID); $c->add(AppThreadPeer::DEL_INDEX, $iIndex); $oDataset = AppThreadPeer::doSelectRS($c); $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $oDataset->next(); $aRow = $oDataset->getRow(); $array['APP_THREAD_INDEX'] = $aRow['APP_THREAD_INDEX']; $array['APP_DEL_INDEX'] = $iIndex; $array['APP_TYPE'] = 'CANCEL'; $c = new Criteria('workflow'); $c->clearSelectColumns(); $c->addSelectColumn(ApplicationPeer::APP_STATUS); $c->add(ApplicationPeer::APP_UID, $sApplicationUID); $oDataset = ApplicationPeer::doSelectRS($c); $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $oDataset->next(); $aRow1 = $oDataset->getRow(); $array['APP_STATUS'] = $aRow1['APP_STATUS']; $array['APP_DELEGATION_USER'] = $user_logged; $array['APP_ENABLE_ACTION_USER'] = $user_logged; $array['APP_ENABLE_ACTION_DATE'] = date('Y-m-d H:i:s'); $delay->create($array); //Before cancel a case verify if is a child case $oCriteria2 = new Criteria('workflow'); $oCriteria2->add(SubApplicationPeer::APP_UID, $sApplicationUID); $oCriteria2->add(SubApplicationPeer::SA_STATUS, 'ACTIVE'); if (SubApplicationPeer::doCount($oCriteria2) > 0) { G::LoadClass('derivation'); $oDerivation = new Derivation(); $oDerivation->verifyIsCaseChild($sApplicationUID, $iIndex); } //update searchindex if ($this->appSolr != null) { $this->appSolr->updateApplicationSearchIndex($sApplicationUID); } /*----------------------------------********---------------------------------*/ }
/** * 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 AppThreadPeer::populateObjects(AppThreadPeer::doSelectRS($criteria, $con)); }