public static function doUpdateAllModerations($selectCriteria, $values, $con = null) { if ($con === null) { $con = Propel::getConnection(self::DATABASE_NAME); } return BasePeer::doUpdate($selectCriteria, $values, $con); }
public function delete(PropelPDO $con = null) { if ($con === null) { $con = Propel::getConnection(sfGuardGroupPeer::DATABASE_NAME, Propel::CONNECTION_WRITE); } if ($this->isDefaultGroup()) { throw new sfException('Cannot remove default group (ID ' . $this->id . ')!'); return false; } /* * get default group * */ $default_group = sfGuardGroupPeer::getDefaultGroup(); //get default group /* * check if servers has this group * If servers found remove reference to group to be deleted */ $con->beginTransaction(); try { //select from... $c1 = new Criteria(); $c1->add(EtvaServerPeer::SF_GUARD_GROUP_ID, $this->getId()); //update set $c2 = new Criteria(); $c2->add(EtvaServerPeer::SF_GUARD_GROUP_ID, $default_group->getId()); BasePeer::doUpdate($c1, $c2, $con); parent::delete($con); $con->commit(); } catch (PropelException $e) { $con->rollBack(); throw $e; } }
protected function execute($arguments = array(), $options = array()) { $context = sfContext::createInstance(sfProjectConfiguration::getApplicationConfiguration('app', 'dev', true)); parent::execute($arguments, $options); // initialize the database connection $databaseManager = new sfDatabaseManager($this->configuration); $con = $databaseManager->getDatabase($options['connection'])->getConnection(); // add your code here $this->log('[INFO] Checking VirtAgents state...' . "\n"); $offset = sfConfig::get('app_node_keepalive_update') + sfConfig::get('app_node_keepalive_update_offset'); $total_nodes = EtvaNodePeer::doCount(new Criteria()); if ($total_nodes > 0) { $con->beginTransaction(); $affected = 0; try { $offset_date = date("c", time() - $offset); /* * get nodes that have last_keepalive field outdated */ $c1 = new Criteria(); $c1->add(EtvaNodePeer::LAST_KEEPALIVE, $offset_date, Criteria::LESS_THAN); $c1->add(EtvaNodePeer::STATE, EtvaNode::NODE_ACTIVE); // only active //update statement $c2 = new Criteria(); $c2->add(EtvaNodePeer::STATE, EtvaNode::NODE_INACTIVE); $affected += BasePeer::doUpdate($c1, $c2, $con); // update maintenance and running to maintenance $c1 = new Criteria(); $c1->add(EtvaNodePeer::LAST_KEEPALIVE, $offset_date, Criteria::LESS_THAN); $c1->add(EtvaNodePeer::STATE, EtvaNode::NODE_MAINTENANCE_UP); //update statement $c2 = new Criteria(); $c2->add(EtvaNodePeer::STATE, EtvaNode::NODE_MAINTENANCE); $affected += BasePeer::doUpdate($c1, $c2, $con); // update fail and running to fail $c1 = new Criteria(); $c1->add(EtvaNodePeer::LAST_KEEPALIVE, $offset_date, Criteria::LESS_THAN); $c1->add(EtvaNodePeer::STATE, EtvaNode::NODE_FAIL_UP); // only active //update statement $c2 = new Criteria(); $c2->add(EtvaNodePeer::STATE, EtvaNode::NODE_FAIL); $affected += BasePeer::doUpdate($c1, $c2, $con); $con->commit(); $message = sprintf('%d Node(s) NOT received update in time offset of %d seconds', $affected, $offset); if ($affected > 0) { $context->getEventDispatcher()->notify(new sfEvent(sfConfig::get('config_acronym'), 'event.log', array('message' => $message, 'priority' => EtvaEventLogger::ERR))); } $this->log('[INFO]' . $message); } catch (PropelException $e) { $con->rollBack(); throw $e; } } $logger = new sfFileLogger($context->getEventDispatcher(), array('file' => sfConfig::get("sf_log_dir") . '/cron_status.log')); // log the message! $logger->log("[INFO] The check virtAgents task ran!", 6); }
public function testDoUpdate() { try { $c1 = new Criteria(); $c1->setPrimaryTableName(BookPeer::TABLE_NAME); $c1->add(BookPeer::ID, 12, ' BAD SQL'); $c2 = new Criteria(); $c2->add(BookPeer::TITLE, 'Foo'); BasePeer::doUpdate($c1, $c2, Propel::getConnection()); } catch (PropelException $e) { $this->assertContains('[UPDATE `book` SET `TITLE`=:p1 WHERE book.ID BAD SQL:p2]', $e->getMessage(), 'SQL query is written in the exception message'); } }
/** * @param int $entryId */ protected function entryDeleted($entryId) { $c = new Criteria(); $c->add(CuePointPeer::ENTRY_ID, $entryId); CuePointPeer::setUseCriteriaFilter(false); $cuePoints = CuePointPeer::doSelect($c); $update = new Criteria(); $update->add(CuePointPeer::STATUS, CuePointStatus::DELETED); $con = Propel::getConnection(myDbHelper::DB_HELPER_CONN_MASTER); BasePeer::doUpdate($c, $update, $con); foreach ($cuePoints as $cuePoint) { kEventsManager::raiseEvent(new kObjectDeletedEvent($cuePoint)); } }
/** * @param int $entryId */ protected function entryDeleted($entryId) { $c = new Criteria(); $c->add(AnnotationPeer::ENTRY_ID, $entryId); $c->add(AnnotationPeer::STATUS, AnnotationStatus::ANNOTATION_STATUS_DELETED, Criteria::NOT_EQUAL); AnnotationPeer::setUseCriteriaFilter(false); $annotations = AnnotationPeer::doSelect($c); foreach ($annotations as $annotation) { kEventsManager::raiseEvent(new kObjectDeletedEvent($annotation)); } $update = new Criteria(); $update->add(AnnotationPeer::STATUS, AnnotationStatus::ANNOTATION_STATUS_DELETED); $con = Propel::getConnection(AnnotationPeer::DATABASE_NAME, Propel::CONNECTION_READ); BasePeer::doUpdate($c, $update, $con); }
/** * @param int $objectType * @param string $objectId */ protected function deleteMetadataObjects($objectType, $objectId) { $c = new Criteria(); $c->add(MetadataPeer::OBJECT_TYPE, $objectType); $c->add(MetadataPeer::OBJECT_ID, $objectId); $c->add(MetadataPeer::STATUS, Metadata::STATUS_DELETED, Criteria::NOT_EQUAL); $peer = null; MetadataPeer::setUseCriteriaFilter(false); $metadatas = MetadataPeer::doSelect($c); foreach ($metadatas as $metadata) { kEventsManager::raiseEvent(new kObjectDeletedEvent($metadata)); } $update = new Criteria(); $update->add(MetadataPeer::STATUS, Metadata::STATUS_DELETED); $con = Propel::getConnection(MetadataPeer::DATABASE_NAME, Propel::CONNECTION_READ); BasePeer::doUpdate($c, $update, $con); }
public static function setJobStateIds($jobs, $stateId) { $c1 = new Criteria(); $c2 = new Criteria(); $c1->add(JobPeer::ID, $jobs, Criteria::IN); $c2->add(JobPeer::STATUS_ID, $stateId); BasePeer::doUpdate($c1, $c2, Propel::getConnection()); $state = StatusPeer::retrieveByPK($stateId); foreach ($jobs as $id) { $logEntry = new Log(); $logEntry->setWhen(time()); $logEntry->setPropelClass("Job"); $logEntry->setSfGuardUserProfileId(sfContext::getInstance()->getUser()->getUserId()); $logEntry->setMessage("Changed job state to " . $state->getState()); $logEntry->setLogMessageTypeId(sfConfig::get("app_log_type_change_status")); $logEntry->setPropelId($id); $logEntry->save(); } }
private static function lockObjects(kExclusiveLockKey $lockKey, array $objects, $max_execution_time) { $exclusive_objects = array(); // make sure the objects where not taken - $con = Propel::getConnection(); $not_exclusive_count = 0; foreach ($objects as $object) { $lock_version = $object->getLockVersion(); $criteria_for_exclusive_update = new Criteria(); $criteria_for_exclusive_update->add(BatchJobPeer::ID, $object->getId()); $criteria_for_exclusive_update->add(BatchJobPeer::LOCK_VERSION, $lock_version); $update = new Criteria(); // increment the lock_version - this will make sure it's exclusive $update->add(BatchJobPeer::LOCK_VERSION, $lock_version + 1); // increment the execution_attempts $update->add(BatchJobPeer::EXECUTION_ATTEMPTS, $object->getExecutionAttempts() + 1); $update->add(BatchJobPeer::SCHEDULER_ID, $lockKey->getSchedulerId()); $update->add(BatchJobPeer::WORKER_ID, $lockKey->getWorkerId()); $update->add(BatchJobPeer::BATCH_INDEX, $lockKey->getBatchIndex()); $update->add(BatchJobPeer::LAST_SCHEDULER_ID, $lockKey->getSchedulerId()); $update->add(BatchJobPeer::LAST_WORKER_ID, $lockKey->getWorkerId()); $processor_expiration = time() + $max_execution_time; $update->add(BatchJobPeer::PROCESSOR_EXPIRATION, $processor_expiration); $affectedRows = BasePeer::doUpdate($criteria_for_exclusive_update, $update, $con); KalturaLog::log("Lock update affected rows [{$affectedRows}] on job id [" . $object->getId() . "] lock version [{$lock_version}]"); if ($affectedRows == 1) { // fix the object to reflect what is in the DB $object->setLockVersion($lock_version + 1); $object->setExecutionAttempts($object->getExecutionAttempts() + 1); $object->setSchedulerId($lockKey->getSchedulerId()); $object->setWorkerId($lockKey->getWorkerId()); $object->setBatchIndex($lockKey->getBatchIndex()); $object->setProcessorExpiration($processor_expiration); KalturaLog::log("Job id [" . $object->getId() . "] locked and returned"); $exclusive_objects[] = $object; } else { $not_exclusive_count++; KalturaLog::log("Object not exclusive: [" . get_class($object) . "] id [" . $object->getId() . "]"); } } return $exclusive_objects; }
public function executeImpl($partner_id, $subp_id, $puser_id, $partner_prefix, $puser_kuser) { $job_type = $this->getPM("job_type"); $processor_name = $this->getPM("processor_name"); $processor_timeout = $this->getPM("processor_timeout"); $over_quota_partners = $this->getPM("over_quota_partners"); $defered_partners = $this->getPM("defered_partners"); $con = Propel::getConnection(); // fetch one pending row of a given job_type // where the over_quota_partner requests are dropped // and defered_partners request are of less priority $query = "SELECT " . BatchJobPeer::ID . " FROM " . BatchJobPeer::TABLE_NAME . " WHERE " . BatchJobPeer::STATUS . "=" . BatchJob::BATCHJOB_STATUS_PENDING . " AND " . BatchJobPeer::JOB_TYPE . "=" . $job_type . " " . (count($over_quota_partners) ? " AND " . BatchJobPeer::PARTNER_ID . " NOT IN ({$over_quota_partners}) " : "") . " ORDER BY " . (count($defered_partners) ? BatchJobPeer::PARTNER_ID . " IN ({$defered_partners}), " : "") . BatchJobPeer::CREATED_AT . " LIMIT 1"; $statement = $con->prepareStatement($query); $resultset = $statement->executeQuery(); $batch_job = null; while ($resultset->next()) { $batch_job = BatchJobPeer::retrieveByPK($resultset->getInt('ID')); } $batch_job = BatchJobPeer::doSelectOne($c); if ($batch_job) { // force update to work on the currently selected row and ensure it is still in pending status $c->add(BatchJobPeer::ID, $batch_job->getId()); $c->add(BatchJobPeer::STATUS, BatchJob::BATCHJOB_STATUS_PENDING); $update = new Criteria(); $update->add(BatchJobPeer::STATUS, BatchJob::BATCHJOB_STATUS_QUEUED); $update->add(BatchJobPeer::PROCESSOR_NAME, $processor_name); $update->add(BatchJobPeer::PROCESSOR_EXPIRATION, time() + $processor_timeout); $affectedRows = BasePeer::doUpdate($c, $update, $con); if ($affectedRows != 1) { $batch_job = null; } } if (!$batch_job) { //xx$this->addError ( APIErrors::INVALID_ENTRY_ID, $this->getObjectPrefix() , $entry_id ); } else { $wrapper = objectWrapperBase::getWrapperClass($batch_job, objectWrapperBase::DETAIL_LEVEL_REGULAR); // TODO - remove this code when cache works properly when saving objects (in their save method) $wrapper->removeFromCache("batch_job", $batch_job->getId()); $this->addMsg("batchjob", $wrapper); } }
function lockJob($object) { global $jobStatus; $con = Propel::getConnection(); $lock_version = $object->getVersion(); $criteria_for_exclusive_update = new Criteria(); $criteria_for_exclusive_update->add(BatchJobLockPeer::ID, $object->getId()); $criteria_for_exclusive_update->add(BatchJobLockPeer::VERSION, $lock_version); $criteria_for_exclusive_update->add(BatchJobLockPeer::STATUS, $jobStatus); $update = new Criteria(); // increment the lock_version - this will make sure it's exclusive $update->add(BatchJobLockPeer::VERSION, $lock_version + 1); $update->add(BatchJobLockPeer::STATUS, TEMP_JOB_STATUS); $affectedRows = BasePeer::doUpdate($criteria_for_exclusive_update, $update, $con); if ($affectedRows != 1) { return false; } // update $object with what is in the database $object->setVersion($lock_version + 1); $object->setStatus(TEMP_JOB_STATUS); return true; }
public function setDefaultGroup() { $con = Propel::getConnection(sfGuardGroupPeer::DATABASE_NAME); $criteria = new Criteria(); $criteria->add(self::NAME, 'Admin'); $group = self::doSelectOne($criteria); $new = false; if (!$group) { $group = new sfGuardGroup(); $new = true; } $group->setName('Admin'); $group->setDescription('Admin Group'); if ($new) { $group->save(); } $selectCriteria = $group->buildPkeyCriteria(); // update values are also stored in Criteria object $group->setId(self::DEFAULT_GROUP_ID); $updateValues = $group->buildCriteria(); BasePeer::doUpdate($selectCriteria, $updateValues, $con); return $group; }
public function saveVNCkeymap(PropelPDO $con = null) { if ($con === null) { $con = Propel::getConnection(EtvaSettingPeer::DATABASE_NAME, Propel::CONNECTION_WRITE); } $con->beginTransaction(); $isInsert = $this->isNew(); try { parent::save($con); //select statement $c1 = new Criteria(); $c1->add(EtvaServerPeer::VNC_KEYMAP_DEFAULT, 1, Criteria::EQUAL); //update statement $c2 = new Criteria(); $c2->add(EtvaServerPeer::VNC_KEYMAP, $this->getValue()); BasePeer::doUpdate($c1, $c2, $con); $con->commit(); return true; } catch (PropelException $e) { $con->rollBack(); throw $e; } }
/** * Method to soft delete all rows from the a_traitements table. * * @param PropelPDO $con the connection to use * @return int The number of affected rows (if supported by underlying database driver). * @throws PropelException Any exceptions caught during processing will be * rethrown wrapped into a PropelException. */ public static function doSoftDeleteAll(PropelPDO $con = null) { if ($con === null) { $con = Propel::getConnection(AbsenceEleveTraitementPeer::DATABASE_NAME, Propel::CONNECTION_WRITE); } $selectCriteria = new Criteria(); $selectCriteria->add(AbsenceEleveTraitementPeer::DELETED_AT, null, Criteria::ISNULL); $selectCriteria->setDbName(AbsenceEleveTraitementPeer::DATABASE_NAME); $modifyCriteria = new Criteria(); $modifyCriteria->add(AbsenceEleveTraitementPeer::DELETED_AT, time()); return BasePeer::doUpdate($selectCriteria, $modifyCriteria, $con); }
public static function doUpdate($values, $con = null) { foreach (sfMixer::getCallables('BasenahoWikiPagePeer:doUpdate:pre') as $callable) { $ret = call_user_func($callable, 'BasenahoWikiPagePeer', $values, $con); if (false !== $ret) { return $ret; } } if ($con === null) { $con = Propel::getConnection(self::DATABASE_NAME); } $selectCriteria = new Criteria(self::DATABASE_NAME); if ($values instanceof Criteria) { $criteria = clone $values; $comparison = $criteria->getComparison(nahoWikiPagePeer::ID); $selectCriteria->add(nahoWikiPagePeer::ID, $criteria->remove(nahoWikiPagePeer::ID), $comparison); } else { $criteria = $values->buildCriteria(); $selectCriteria = $values->buildPkeyCriteria(); } $criteria->setDbName(self::DATABASE_NAME); $ret = BasePeer::doUpdate($selectCriteria, $criteria, $con); foreach (sfMixer::getCallables('BasenahoWikiPagePeer:doUpdate:post') as $callable) { call_user_func($callable, 'BasenahoWikiPagePeer', $values, $con, $ret); } return $ret; }
/** * Method perform an UPDATE on the database, given a PcBlogComment or Criteria object. * * @param mixed $values Criteria or PcBlogComment object containing data that is used to create the UPDATE statement. * @param PropelPDO $con The connection to use (specify PropelPDO connection object to exert more control over transactions). * @return int The number of affected rows (if supported by underlying database driver). * @throws PropelException Any exceptions caught during processing will be * rethrown wrapped into a PropelException. */ public static function doUpdate($values, PropelPDO $con = null) { // symfony_behaviors behavior foreach (sfMixer::getCallables('BasePcBlogCommentPeer:doUpdate:pre') as $sf_hook) { if (false !== ($sf_hook_retval = call_user_func($sf_hook, 'BasePcBlogCommentPeer', $values, $con))) { return $sf_hook_retval; } } if ($con === null) { $con = Propel::getConnection(PcBlogCommentPeer::DATABASE_NAME, Propel::CONNECTION_WRITE); } $selectCriteria = new Criteria(self::DATABASE_NAME); if ($values instanceof Criteria) { $criteria = clone $values; // rename for clarity $comparison = $criteria->getComparison(PcBlogCommentPeer::ID); $selectCriteria->add(PcBlogCommentPeer::ID, $criteria->remove(PcBlogCommentPeer::ID), $comparison); } else { // $values is PcBlogComment object $criteria = $values->buildCriteria(); // gets full criteria $selectCriteria = $values->buildPkeyCriteria(); // gets criteria w/ primary key(s) } // set the correct dbName $criteria->setDbName(self::DATABASE_NAME); $ret = BasePeer::doUpdate($selectCriteria, $criteria, $con); // symfony_behaviors behavior foreach (sfMixer::getCallables('BasePcBlogCommentPeer:doUpdate:post') as $sf_hook) { call_user_func($sf_hook, 'BasePcBlogCommentPeer', $values, $con, $ret); } return $ret; }
/** * Performs an UPDATE on the database, given a Proveedor or Criteria object. * * @param mixed $values Criteria or Proveedor object containing data that is used to create the UPDATE statement. * @param PropelPDO $con The connection to use (specify PropelPDO connection object to exert more control over transactions). * @return int The number of affected rows (if supported by underlying database driver). * @throws PropelException Any exceptions caught during processing will be * rethrown wrapped into a PropelException. */ public static function doUpdate($values, PropelPDO $con = null) { if ($con === null) { $con = Propel::getConnection(ProveedorPeer::DATABASE_NAME, Propel::CONNECTION_WRITE); } $selectCriteria = new Criteria(self::DATABASE_NAME); if ($values instanceof Criteria) { $criteria = clone $values; // rename for clarity $comparison = $criteria->getComparison(ProveedorPeer::IDPROVEEDOR); $value = $criteria->remove(ProveedorPeer::IDPROVEEDOR); if ($value) { $selectCriteria->add(ProveedorPeer::IDPROVEEDOR, $value, $comparison); } else { $selectCriteria->setPrimaryTableName(ProveedorPeer::TABLE_NAME); } } else { // $values is Proveedor object $criteria = $values->buildCriteria(); // gets full criteria $selectCriteria = $values->buildPkeyCriteria(); // gets criteria w/ primary key(s) } // set the correct dbName $criteria->setDbName(self::DATABASE_NAME); return BasePeer::doUpdate($selectCriteria, $criteria, $con); }
/** * Update the row in the database. * * @param PropelPDO $con * * @see doSave() */ protected function doUpdate(PropelPDO $con) { $selectCriteria = $this->buildPkeyCriteria(); $valuesCriteria = $this->buildCriteria(); BasePeer::doUpdate($selectCriteria, $valuesCriteria, $con); }
protected function update($connection = null) { if (!isset($connection)) { $connection = QubitTransactionFilter::getConnection(QubitOaiHarvest::DATABASE_NAME); } $offset = 0; foreach ($this->tables as $table) { $criteria = new Criteria(); $selectCriteria = new Criteria(); foreach ($table->getColumns() as $column) { if (!array_key_exists($column->getPhpName(), $this->values)) { if ('updatedAt' == $column->getPhpName()) { $this->values['updatedAt'] = new DateTime(); } } if (array_key_exists($column->getPhpName(), $this->values)) { if ('serialNumber' == $column->getPhpName()) { $selectCriteria->add($column->getFullyQualifiedName(), $this->values[$column->getPhpName()]++); } $criteria->add($column->getFullyQualifiedName(), $this->param($column)); } if ($column->isPrimaryKey()) { $selectCriteria->add($column->getFullyQualifiedName(), $this->keys[$column->getPhpName()]); } $offset++; } if (0 < $criteria->size()) { BasePeer::doUpdate($selectCriteria, $criteria, $connection); } } return $this; }
/** * Create List Completed Table * * @param type $data * @return type * */ public function create($data) { $criteria = new Criteria(); $criteria->addSelectColumn(ListCompletedPeer::APP_UID); $criteria->add( ListCompletedPeer::APP_UID, $data['APP_UID'], Criteria::EQUAL ); $dataset = ListCompletedPeer::doSelectRS($criteria); $dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); if ($dataset->next()) { return 1; } $criteria = new Criteria(); $criteria->addSelectColumn(ContentPeer::CON_VALUE); $criteria->add( ContentPeer::CON_ID, $data['APP_UID'], Criteria::EQUAL ); $criteria->add( ContentPeer::CON_CATEGORY, 'APP_TITLE', Criteria::EQUAL ); $criteria->add( ContentPeer::CON_LANG, SYS_LANG, Criteria::EQUAL ); $dataset = ContentPeer::doSelectRS($criteria); $dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $dataset->next(); $aRow = $dataset->getRow(); $data['APP_TITLE'] = $aRow['CON_VALUE']; $criteria = new Criteria(); $criteria->addSelectColumn(ContentPeer::CON_VALUE); $criteria->add( ContentPeer::CON_ID, $data['PRO_UID'], Criteria::EQUAL ); $criteria->add( ContentPeer::CON_CATEGORY, 'PRO_TITLE', Criteria::EQUAL ); $criteria->add( ContentPeer::CON_LANG, SYS_LANG, Criteria::EQUAL ); $dataset = ContentPeer::doSelectRS($criteria); $dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $dataset->next(); $aRow = $dataset->getRow(); $data['APP_PRO_TITLE'] = $aRow['CON_VALUE']; $criteria = new Criteria(); $criteria->addSelectColumn(ContentPeer::CON_VALUE); $criteria->add( ContentPeer::CON_ID, $data['TAS_UID'], Criteria::EQUAL ); $criteria->add( ContentPeer::CON_CATEGORY, 'TAS_TITLE', Criteria::EQUAL ); $criteria->add( ContentPeer::CON_LANG, SYS_LANG, Criteria::EQUAL ); $dataset = ContentPeer::doSelectRS($criteria); $dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $dataset->next(); $aRow = $dataset->getRow(); $data['APP_TAS_TITLE'] = $aRow['CON_VALUE']; $criteria = new Criteria(); $criteria->addSelectColumn(UsersPeer::USR_USERNAME); $criteria->addSelectColumn(UsersPeer::USR_FIRSTNAME); $criteria->addSelectColumn(UsersPeer::USR_LASTNAME); $criteria->add( UsersPeer::USR_UID, $data['USR_UID'], Criteria::EQUAL ); $dataset = UsersPeer::doSelectRS($criteria); $dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $dataset->next(); $aRow = $dataset->getRow(); $data['DEL_CURRENT_USR_USERNAME'] = $aRow['USR_USERNAME']; $data['DEL_CURRENT_USR_FIRSTNAME'] = $aRow['USR_FIRSTNAME']; $data['DEL_CURRENT_USR_LASTNAME'] = $aRow['USR_LASTNAME']; $data['DEL_PREVIOUS'] = isset($data['DEL_PREVIOUS']) ? $data['DEL_PREVIOUS'] : ""; if ($data['DEL_PREVIOUS'] != 0) { $criteria = new Criteria(); $criteria->addSelectColumn(AppDelegationPeer::USR_UID); $criteria->add( AppDelegationPeer::DEL_INDEX, $data['DEL_PREVIOUS'], Criteria::EQUAL ); $dataset = UsersPeer::doSelectRS($criteria); $dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $dataset->next(); $aRow = $dataset->getRow(); $data['DEL_PREVIOUS_USR_UID'] = $aRow['USR_UID']; } //Update - WHERE $criteriaWhere = new Criteria("workflow"); $criteriaWhere->add(ListParticipatedLastPeer::APP_UID, $data["APP_UID"], Criteria::EQUAL); //Update - SET $criteriaSet = new Criteria("workflow"); $criteriaSet->add(ListParticipatedLastPeer::APP_STATUS, 'COMPLETED'); BasePeer::doUpdate($criteriaWhere, $criteriaSet, Propel::getConnection("workflow")); $users = new Users(); $users->refreshTotal($data['USR_UID'], 'add', 'completed'); if ($data['DEL_PREVIOUS'] != 0) { $criteria = new Criteria(); $criteria->addSelectColumn(TaskPeer::TAS_TYPE); $criteria->add( TaskPeer::TAS_UID, $data['TAS_UID'], Criteria::EQUAL ); $dataset = TaskPeer::doSelectRS($criteria); $dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $dataset->next(); $aRow = $dataset->getRow(); if ($aRow['TAS_TYPE'] != 'SUBPROCESS') { $users->refreshTotal($data['USR_UID'], 'remove', 'inbox'); } } else { $criteria = new Criteria(); $criteria->addSelectColumn(SubApplicationPeer::APP_UID); $criteria->add( SubApplicationPeer::APP_UID, $data['APP_UID'], Criteria::EQUAL ); $dataset = SubApplicationPeer::doSelectRS($criteria); $dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); if ($dataset->next()) { $users->refreshTotal($data['USR_UID'], 'remove', 'inbox'); } else { $users->refreshTotal($data['USR_UID'], 'remove', 'draft'); } } $con = Propel::getConnection( ListCompletedPeer::DATABASE_NAME ); try { $this->fromArray( $data, BasePeer::TYPE_FIELDNAME ); if ($this->validate()) { $result = $this->save(); } else { $e = new Exception( "Failed Validation in class " . get_class( $this ) . "." ); $e->aValidationFailures = $this->getValidationFailures(); throw ($e); } $con->commit(); return $result; } catch(Exception $e) { $con->rollback(); throw ($e); } }
public static function doUpdate($values, $con = null) { if ($con === null) { $con = Propel::getConnection(self::DATABASE_NAME); } $selectCriteria = new Criteria(self::DATABASE_NAME); if ($values instanceof Criteria) { $criteria = clone $values; $comparison = $criteria->getComparison(VOpacPeer::CATALOG_ID); $selectCriteria->add(VOpacPeer::CATALOG_ID, $criteria->remove(VOpacPeer::CATALOG_ID), $comparison); $comparison = $criteria->getComparison(VOpacPeer::DEPARTMENT_ID); $selectCriteria->add(VOpacPeer::DEPARTMENT_ID, $criteria->remove(VOpacPeer::DEPARTMENT_ID), $comparison); $comparison = $criteria->getComparison(VOpacPeer::CAT_CATEGORY_ID); $selectCriteria->add(VOpacPeer::CAT_CATEGORY_ID, $criteria->remove(VOpacPeer::CAT_CATEGORY_ID), $comparison); $comparison = $criteria->getComparison(VOpacPeer::COL_STATUS_ID); $selectCriteria->add(VOpacPeer::COL_STATUS_ID, $criteria->remove(VOpacPeer::COL_STATUS_ID), $comparison); $comparison = $criteria->getComparison(VOpacPeer::COL_LOCATION_ID); $selectCriteria->add(VOpacPeer::COL_LOCATION_ID, $criteria->remove(VOpacPeer::COL_LOCATION_ID), $comparison); } else { $criteria = $values->buildCriteria(); $selectCriteria = $values->buildPkeyCriteria(); } $criteria->setDbName(self::DATABASE_NAME); return BasePeer::doUpdate($selectCriteria, $criteria, $con); }
/** * Method perform an UPDATE on the database, given a ExamCommentDig or Criteria object. * * @param mixed $values Criteria or ExamCommentDig object containing data that is used to create the UPDATE statement. * @param PropelPDO $con The connection to use (specify PropelPDO connection object to exert more control over transactions). * @return int The number of affected rows (if supported by underlying database driver). * @throws PropelException Any exceptions caught during processing will be * rethrown wrapped into a PropelException. */ public static function doUpdate($values, PropelPDO $con = null) { foreach (sfMixer::getCallables('BaseExamCommentDigPeer:doUpdate:pre') as $callable) { $ret = call_user_func($callable, 'BaseExamCommentDigPeer', $values, $con); if (false !== $ret) { return $ret; } } if ($con === null) { $con = Propel::getConnection(ExamCommentDigPeer::DATABASE_NAME, Propel::CONNECTION_WRITE); } $selectCriteria = new Criteria(self::DATABASE_NAME); if ($values instanceof Criteria) { $criteria = clone $values; // rename for clarity $comparison = $criteria->getComparison(ExamCommentDigPeer::IP); $selectCriteria->add(ExamCommentDigPeer::IP, $criteria->remove(ExamCommentDigPeer::IP), $comparison); $comparison = $criteria->getComparison(ExamCommentDigPeer::COMMENT_ID); $selectCriteria->add(ExamCommentDigPeer::COMMENT_ID, $criteria->remove(ExamCommentDigPeer::COMMENT_ID), $comparison); } else { // $values is ExamCommentDig object $criteria = $values->buildCriteria(); // gets full criteria $selectCriteria = $values->buildPkeyCriteria(); // gets criteria w/ primary key(s) } // set the correct dbName $criteria->setDbName(self::DATABASE_NAME); $ret = BasePeer::doUpdate($selectCriteria, $criteria, $con); foreach (sfMixer::getCallables('BaseExamCommentDigPeer:doUpdate:post') as $callable) { call_user_func($callable, 'BaseExamCommentDigPeer', $values, $con, $ret); } return $ret; }
public static function postProcessCuePoints($liveEntry, $cuePointsIds = null) { $select = new Criteria(); if ($cuePointsIds) { $select->add(CuePointPeer::ID, $cuePointsIds, Criteria::IN); } else { /* @var $liveEntry LiveEntry */ $select->add(CuePointPeer::ENTRY_ID, $liveEntry->getId()); $select->add(CuePointPeer::STATUS, CuePointStatus::READY); $cuePoints = CuePointPeer::doSelect($select); $cuePointsIds = array(); foreach ($cuePoints as $cuePoint) { /* @var $cuePoint CuePoint */ $cuePointsIds[] = $cuePoint->getId(); } } $update = new Criteria(); $update->add(CuePointPeer::STATUS, CuePointStatus::HANDLED); $con = Propel::getConnection(MetadataPeer::DATABASE_NAME); BasePeer::doUpdate($select, $update, $con); $cuePoints = CuePointPeer::retrieveByPKs($cuePointsIds); foreach ($cuePoints as $cuePoint) { /* @var $cuePoint CuePoint */ $cuePoint->indexToSearchIndex(); } }
/** * This is a method for emulating ON DELETE SET NULL DBs that don't support this * feature (like MySQL or SQLite). * * This method is not very speedy because it must perform a query first to get * the implicated records and then perform the deletes by calling those Peer classes. * * This method should be used within a transaction if possible. * * @param Criteria $criteria * @param PropelPDO $con * @return void */ protected static function doOnDeleteSetNull(Criteria $criteria, PropelPDO $con) { // first find the objects that are implicated by the $criteria $objects = UsuarisPeer::doSelect($criteria, $con); foreach ($objects as $obj) { // set fkey col in related Log rows to NULL $selectCriteria = new Criteria(UsuarisPeer::DATABASE_NAME); $updateValues = new Criteria(UsuarisPeer::DATABASE_NAME); $selectCriteria->add(LogPeer::USUARIID, $obj->getUsuariid()); $updateValues->add(LogPeer::USUARIID, null); BasePeer::doUpdate($selectCriteria, $updateValues, $con); // use BasePeer because generated Peer doUpdate() methods only update using pkey // set fkey col in related Personal rows to NULL $selectCriteria = new Criteria(UsuarisPeer::DATABASE_NAME); $updateValues = new Criteria(UsuarisPeer::DATABASE_NAME); $selectCriteria->add(PersonalPeer::USUARIUPDATEID, $obj->getUsuariid()); $updateValues->add(PersonalPeer::USUARIUPDATEID, null); BasePeer::doUpdate($selectCriteria, $updateValues, $con); // use BasePeer because generated Peer doUpdate() methods only update using pkey } }
/** * Method perform an UPDATE on the database, given a MetadataProfile or Criteria object. * * @param mixed $values Criteria or MetadataProfile object containing data that is used to create the UPDATE statement. * @param PropelPDO $con The connection to use (specify PropelPDO connection object to exert more control over transactions). * @return int The number of affected rows (if supported by underlying database driver). * @throws PropelException Any exceptions caught during processing will be * rethrown wrapped into a PropelException. */ public static function doUpdate($values, PropelPDO $con = null) { if ($con === null) { $con = Propel::getConnection(MetadataProfilePeer::DATABASE_NAME, Propel::CONNECTION_WRITE); } $selectCriteria = new Criteria(self::DATABASE_NAME); if ($values instanceof Criteria) { $criteria = clone $values; // rename for clarity $comparison = $criteria->getComparison(MetadataProfilePeer::ID); $selectCriteria->add(MetadataProfilePeer::ID, $criteria->remove(MetadataProfilePeer::ID), $comparison); } else { // $values is MetadataProfile object $criteria = $values->buildCriteria(); // gets full criteria $selectCriteria = $values->buildPkeyCriteria(); // gets criteria w/ primary key(s) } // set the correct dbName $criteria->setDbName(self::DATABASE_NAME); return BasePeer::doUpdate($selectCriteria, $criteria, $con); }
/** * Update List Inbox Table * * @param type $data * @return type * @throws type */ public function update($data, $isSelfService = false) { if ($isSelfService) { $users = new Users(); $users->refreshTotal($data['USR_UID'], 'add', 'inbox'); $listParticipatedLast = new ListParticipatedLast(); $listParticipatedLast->remove($data['APP_UID'], $data['USR_UID'], $data['DEL_INDEX']); //Update - WHERE $criteriaWhere = new Criteria("workflow"); $criteriaWhere->add(ListParticipatedLastPeer::APP_UID, $data["APP_UID"], Criteria::EQUAL); $criteriaWhere->add(ListParticipatedLastPeer::USR_UID, 'SELF_SERVICES', Criteria::EQUAL); $criteriaWhere->add(ListParticipatedLastPeer::DEL_INDEX, $data["DEL_INDEX"], Criteria::EQUAL); //Update - SET $criteriaSet = new Criteria("workflow"); $criteriaSet->add(ListParticipatedLastPeer::USR_UID, $data['USR_UID']); BasePeer::doUpdate($criteriaWhere, $criteriaSet, Propel::getConnection("workflow")); $listParticipatedLast = new ListParticipatedLast(); $listParticipatedLast->refresh($data); $users = new Users(); $users->refreshTotal($data['USR_UID'], 'add', 'participated'); } $con = Propel::getConnection( ListInboxPeer::DATABASE_NAME ); try { $con->begin(); $this->setNew( false ); $this->fromArray( $data, BasePeer::TYPE_FIELDNAME ); if ($this->validate()) { $result = $this->save(); $con->commit(); // update participated history $listParticipatedHistory = new ListParticipatedHistory(); $listParticipatedHistory->update($data); return $result; } else { $con->rollback(); throw (new Exception( "Failed Validation in class " . get_class( $this ) . "." )); } } catch (Exception $e) { $con->rollback(); throw ($e); } }
/** * Method perform an UPDATE on the database, given a BpmnProject or Criteria object. * * @param mixed $values Criteria or BpmnProject object containing data create the UPDATE statement. * @param Connection $con The connection to use (specify Connection exert more control over transactions). * @return int The number of affected rows (if supported by underlying database driver). * @throws PropelException Any exceptions caught during processing will be * rethrown wrapped into a PropelException. */ public static function doUpdate($values, $con = null) { if ($con === null) { $con = Propel::getConnection(self::DATABASE_NAME); } $selectCriteria = new Criteria(self::DATABASE_NAME); if ($values instanceof Criteria) { $criteria = clone $values; // rename for clarity $comparison = $criteria->getComparison(BpmnProjectPeer::PRJ_UID); $selectCriteria->add(BpmnProjectPeer::PRJ_UID, $criteria->remove(BpmnProjectPeer::PRJ_UID), $comparison); } else { $criteria = $values->buildCriteria(); // gets full criteria $selectCriteria = $values->buildPkeyCriteria(); // gets criteria w/ primary key(s) } // set the correct dbName $criteria->setDbName(self::DATABASE_NAME); return BasePeer::doUpdate($selectCriteria, $criteria, $con); }
$response = $oPmLicenseManager->installLicense($dir . $aInfoLoadFile["name"]); /////// //This command also find the following file "AddonsStore.php" $licenseManager =& pmLicenseManager::getSingleton(); preg_match("/^license_(.*).dat\$/", $licenseManager->file, $matches); $realId = urlencode($matches[1]); $workspace = isset($licenseManager->workspace) ? $licenseManager->workspace : 'pmLicenseSrv'; $addonLocation = "http://{$licenseManager->server}/sys" . $workspace . "/en/green/services/addonsStore?action=getInfo&licId={$realId}"; /////// $cnn = Propel::getConnection("workflow"); $oCriteriaSelect = new Criteria("workflow"); $oCriteriaSelect->add(AddonsStorePeer::STORE_ID, $licenseManager->id); $oCriteriaUpdate = new Criteria("workflow"); $oCriteriaUpdate->add(AddonsStorePeer::STORE_ID, $licenseManager->id); $oCriteriaUpdate->add(AddonsStorePeer::STORE_LOCATION, $addonLocation); BasePeer::doUpdate($oCriteriaSelect, $oCriteriaUpdate, $cnn); /////// //$licenseManager = &pmLicenseManager::getSingleton(); //plugin.singleton //are all the plugins that are enabled in the SYS_SYS $pluginRegistry =& PMPluginRegistry::getSingleton(); $arrayAddon = array(); //ee //all plugins enterprise installed in /processmaker/workflow/engine/plugins (no matter if they are enabled/disabled) if (file_exists(PATH_DATA_SITE . "ee")) { $arrayAddon = unserialize(trim(file_get_contents(PATH_DATA_SITE . "ee"))); } foreach ($arrayAddon as $addon) { $sFileName = substr($addon["sFilename"], 0, strpos($addon["sFilename"], "-")); if (file_exists(PATH_PLUGINS . $sFileName . ".php")) { $addonDetails = $pluginRegistry->getPluginDetails($sFileName . ".php"); $enabled = 0; if ($addonDetails) {
public static function doUpdate($values, $con = null) { if ($con === null) { $con = Propel::getConnection(self::DATABASE_NAME); } $selectCriteria = new Criteria(self::DATABASE_NAME); if ($values instanceof Criteria) { $criteria = clone $values; $comparison = $criteria->getComparison(LorfieldsPeer::ID); $selectCriteria->add(LorfieldsPeer::ID, $criteria->remove(LorfieldsPeer::ID), $comparison); } else { $criteria = $values->buildCriteria(); $selectCriteria = $values->buildPkeyCriteria(); } $criteria->setDbName(self::DATABASE_NAME); return BasePeer::doUpdate($selectCriteria, $criteria, $con); }
/** * Issue an UPDATE query based the current ModelCriteria and a list of changes. * This method is called by ModelCriteria::update() inside a transaction. * * @param array $values Associative array of keys and values to replace * @param PropelPDO $con a connection object * @param boolean $forceIndividualSaves If false (default), the resulting call is a BasePeer::doUpdate(), ortherwise it is a series of save() calls on all the found objects * * @return Integer Number of updated rows */ public function doUpdate($values, $con, $forceIndividualSaves = false) { if ($forceIndividualSaves) { // Update rows one by one $objects = $this->setFormatter(ModelCriteria::FORMAT_OBJECT)->find($con); foreach ($objects as $object) { foreach ($values as $key => $value) { $object->setByName($key, $value); } } $objects->save($con); $affectedRows = count($objects); } else { // update rows in a single query $set = new Criteria($this->getDbName()); foreach ($values as $columnName => $value) { $realColumnName = $this->getTableMap()->getColumnByPhpName($columnName)->getFullyQualifiedName(); $set->add($realColumnName, $value); } $affectedRows = BasePeer::doUpdate($this, $set, $con); call_user_func(array($this->modelPeerName, 'clearInstancePool')); call_user_func(array($this->modelPeerName, 'clearRelatedInstancePool')); } return $affectedRows; }