public function DateSortedJobs() { $query = new QueryObject(new JobPage()); $request = Controller::curr()->getRequest(); if ($request->requestVar('foundation')) { $query->addAndCondition(QueryCriteria::equal('FoundationJob', 1)); } $now = new DateTime(); $query->addAndCondition(QueryCriteria::equal('Active', 1)); $post_date = $now->sub(new DateInterval('P6M')); $query->addAndCondition(QueryCriteria::greaterOrEqual('JobPostedDate', $post_date->format('Y-m-d'))); $query->addAndCondition(QueryCriteria::greaterOrEqual('ExpirationDate', $now->format('Y-m-d'))); $query->addOrder(QueryOrder::desc('JobPostedDate')); $query->addOrder(QueryOrder::desc('ID')); list($jobs, $size) = $this->repository->getAll($query, 0, 1000); return new ArrayList($jobs); }
public function getDateSortedJobs($foundation = 0) { $query = new QueryObject(new JobPage()); if ($foundation) { $query->addAndCondition(QueryCriteria::equal('FoundationJob', 1)); } $now = new DateTime(); $six_months_ago = new DateTime(); $query->addAndCondition(QueryCriteria::equal('Active', 1)); $post_date = $six_months_ago->sub(new DateInterval('P6M')); $query->addAndCondition(QueryCriteria::greaterOrEqual('JobPostedDate', $post_date->format('Y-m-d'))); $query->addAndCondition(QueryCriteria::greaterOrEqual('ExpirationDate', $now->format('Y-m-d'))); $query->addOrder(QueryOrder::desc('JobPostedDate')); $query->addOrder(QueryOrder::desc('ID')); list($jobs, $size) = $this->getAll($query, 0, 1000); return new ArrayList($jobs); }
public function getJobsByKeywordTypeAndSortedBy($keywords, $type_id, $sort_by) { $query = new QueryObject(new Job()); $now = new DateTime(); $six_months_ago = new DateTime(); $post_date = $six_months_ago->sub(new DateInterval('P6M')); $query->addAndCondition(QueryCriteria::equal('IsActive', 1)); $query->addAndCondition(QueryCriteria::greaterOrEqual('PostedDate', $post_date->format('Y-m-d H:i:s'))); $query->addAndCondition(QueryCriteria::greaterOrEqual('ExpirationDate', $now->format('Y-m-d H:i:s'))); if (!empty($keywords)) { $query->addAndCondition(QueryCompoundCriteria::compoundOr([QueryCriteria::like('Title', trim($keywords)), QueryCriteria::like('Description', trim($keywords))])); } if (intval($type_id) > 0) { $query->addAndCondition(QueryCriteria::equal('TypeID', $type_id)); } if (!empty($sort_by)) { switch (strtolower($sort_by)) { case 'coa': $query = $query->addOrder(QueryOrder::desc('IsCOANeeded')); break; case 'foundation': $query = $query->addOrder(QueryOrder::desc('IsFoundationJob')); break; case 'company': $query = $query->addOrder(QueryOrder::asc('CompanyName')); break; case 'posted': $query = $query->addOrder(QueryOrder::desc('PostedDate')); $query = $query->addOrder(QueryOrder::desc('ID')); break; case 'location': $query = $query->addOrder(QueryOrder::asc('LocationType')); break; } } list($jobs, $size) = $this->getAll($query, 0, PHP_INT_MAX); return new ArrayList($jobs); }
/** * @param mixed|null $day * @param int|null $location * @return SummitEvent[] * @throws Exception */ public function getSchedule($day = null, $location = null) { $query = new QueryObject(); $query->addAndCondition(QueryCriteria::equal('Published', 1)); if (!is_null($day)) { if (!$day instanceof DateTime) { $day = new DateTime($day); } $start = $day->setTime(0, 0, 0)->format("Y-m-d H:i:s"); $end = $day->add(new DateInterval('PT23H59M59S'))->format("Y-m-d H:i:s"); $query->addAndCondition(QueryCriteria::greaterOrEqual('StartDate', $this->convertDateFromTimeZone2UTC($start))); $query->addAndCondition(QueryCriteria::lowerOrEqual('EndDate', $this->convertDateFromTimeZone2UTC($end))); } if (!is_null($location)) { $query->addAndCondition(QueryCriteria::equal('LocationID', intval($location))); } $query->addOrder(QueryOrder::asc('StartDate'))->addOrder(QueryOrder::asc('EndDate'))->addOrder(QueryOrder::asc('Title')); return new ArrayList(AssociationFactory::getInstance()->getOne2ManyAssociation($this, 'Events', $query)->toArray()); }
public function purgeActionRequests($batch_size, $older_than_x_hours = 48) { $merge_request_repository = $this->merge_request_repository; $delete_request_repository = $this->delete_request_repository; return $this->tx_manager->transaction(function () use($merge_request_repository, $delete_request_repository, $batch_size, $older_than_x_hours) { $query1 = new QueryObject(); $query1->addAndCondition(QueryCriteria::greaterOrEqual("ADDDATE(Created, INTERVAL {$older_than_x_hours} HOUR)", 'NOW()', false)); list($list1, $size) = $merge_request_repository->getAll($query1, 0, $batch_size); foreach ($list1 as $res) { $merge_request_repository->delete($res); } $query2 = new QueryObject(); $query2->addAndCondition(QueryCriteria::greaterOrEqual("ADDDATE(Created, INTERVAL {$older_than_x_hours} HOUR)", 'NOW()', false)); list($list2, $size) = $delete_request_repository->getAll($query2, 0, $batch_size); foreach ($list2 as $res) { $delete_request_repository->delete($res); } }); }
/** * @param mixed|null $day * @return SummitEvent[] * @throws Exception */ public function getSchedule($day = null) { $query = new QueryObject(); $query->addAndCondition(QueryCriteria::equal('Published', 1)); if (!is_null($day)) { if (!$day instanceof DateTime) { $day = new DateTime($day); } $day->setTime(0, 0, 0); $query->addAndCondition(QueryCriteria::greaterOrEqual('StartDate', $day->format('Y-m-d H:i:s'))); $query->addAndCondition(QueryCriteria::lowerOrEqual('EndDate', $day->add(new DateInterval('PT23H59M59S'))->format('Y-m-d H:i:s'))); } $query->addOrder(QueryOrder::asc('StartDate')); return AssociationFactory::getInstance()->getOne2ManyAssociation($this, 'Events', $query)->toArray(); }
public function getArticlesToSort($article_id, $new_rank, $old_rank, $is_new, $is_remove, $type) { $slider = $featured = $approved = 0; if ($type == 'slider') { $slider = 1; $approved = 1; } elseif ($type == 'featured') { $featured = 1; $approved = 1; } elseif ($type == 'recent') { $approved = 1; } $query = new QueryObject(new News()); $query->addAndCondition(QueryCriteria::notEqual('ID', $article_id)); $query->addAndCondition(QueryCriteria::equal('Slider', $slider)); $query->addAndCondition(QueryCriteria::equal('Featured', $featured)); $query->addAndCondition(QueryCriteria::equal('Approved', $approved)); if ($is_new) { $query->addAndCondition(QueryCriteria::greaterOrEqual('Rank', $new_rank)); $rank_delta = 1; } elseif ($is_remove) { $query->addAndCondition(QueryCriteria::greaterOrEqual('Rank', $old_rank)); $rank_delta = -1; } else { if ($old_rank < $new_rank) { $query->addAndCondition(QueryCriteria::greaterOrEqual('Rank', $old_rank)); $query->addAndCondition(QueryCriteria::lowerOrEqual('Rank', $new_rank)); $rank_delta = -1; } else { $query->addAndCondition(QueryCriteria::greaterOrEqual('Rank', $new_rank)); $query->addAndCondition(QueryCriteria::lowerOrEqual('Rank', $old_rank)); $rank_delta = 1; } } list($other_articles, $count) = $this->getAll($query); $return_array = array($other_articles, $rank_delta); return $return_array; }
/** * @return ISurveyTemplate */ public function getCurrentSurveyTemplate() { $query = new QueryObject(); $now = new \DateTime('now', new DateTimeZone('UTC')); $query->addAndCondition(QueryCriteria::lowerOrEqual('StartDate', $now->format('Y-m-d H:i:s'))); $query->addAndCondition(QueryCriteria::greaterOrEqual('EndDate', $now->format('Y-m-d H:i:s'))); $query->addAndCondition(QueryCriteria::equal('Enabled', 1)); return $this->template_repository->getBy($query); }