/** * @param int $batch_size * @param string $email_alert_to * @param string $details_url */ public function makeDigest($batch_size = 15, $email_alert_to, $details_url) { $email_repository = $this->email_repository; $repository = $this->repository; $factory = $this->factory; $this->tx_manager->transaction(function () use($batch_size, $email_alert_to, $details_url, $repository, $email_repository, $factory) { $last_email = $email_repository->getLastOne(); $query = new QueryObject(); $query->addAndCondition(QueryCriteria::equal('isPosted', 0)); $query->addAndCondition(QueryCriteria::equal('isRejected', 0)); if ($last_email) { $query->addAndCondition(QueryCriteria::greater('ID', $last_email->getLastEventRegistrationRequest()->getIdentifier())); } $query->addOrder(QueryOrder::asc('PostDate')); list($list, $size) = $repository->getAll($query, 0, $batch_size); if ($list && count($list) > 0) { $last_one = end($list); reset($list); $email = EmailFactory::getInstance()->buildEmail(EVENT_REGISTRATION_REQUEST_EMAIL_FROM, $email_alert_to, "New Event Registration Requests"); $email->setTemplate('EventAlertEmail'); $email->populateTemplate(array('RegistrationRequests' => new ArrayList($list), 'Details' => $details_url)); $email->send(); $email_repository->add($factory->buildEventAlertEmail($last_one)); } }); }
/** * @param int $offset * @param int $limit * @return array */ public function getAllPosted($offset = 0, $limit = 10) { $query = new QueryObject(); $query->addAndCondition(QueryCriteria::equal('Active', 1)); $query->addAndCondition(QueryCriteria::greater('ExpirationDate', date('Y-m-d'))); $query->addOrder(QueryOrder::desc('JobPostedDate')); return $this->getAll($query, $offset, $limit); }
public function getNewsToActivate() { $today = gmdate("Y-m-d H:i:s"); $query = new QueryObject(new News()); $query->addAndCondition(QueryCriteria::lower('DateEmbargo', $today)); $query->addAndCondition(QueryCriteria::greater('DateExpire', $today)); $query->addAndCondition(QueryCriteria::equal('Approved', 0)); list($activate_articles, $count) = $this->getAll($query, 0, 1000); return $activate_articles; }