<?php
namespace Aqarmap\Bundle\AnnouncementBundle\Repository;
use Doctrine\ORM\EntityRepository;
use Doctrine\ORM\NonUniqueResultException;
class AnnouncementRepository extends EntityRepository
{
/**
* @return int|mixed|string|null
*
* @throws NonUniqueResultException
*/
public function getActiveAnnouncement(array $criteria = [])
{
$criteria = array_merge([
'topBar' => null,
'appearOnMobile' => null,
], $criteria);
$date = new \DateTime();
$date = $date->format('Y-m-d H:i:s');
$QueryBuilder = $this->createQueryBuilder('a');
if ($criteria['topBar']) {
$QueryBuilder
->andWhere($QueryBuilder->expr()->in('a.topBar', ':topBar'))
->setParameter('topBar', $criteria['topBar'])
;
}
if ($criteria['appearOnMobile']) {
$QueryBuilder
->andWhere($QueryBuilder->expr()->in('a.appearOnMobile', ':appearOnMobile'))
->setParameter('appearOnMobile', $criteria['appearOnMobile'])
;
}
$QueryBuilder
->andWhere($QueryBuilder->expr()->gte('a.endAt', ':endAt'))
->setParameter('endAt', $date);
return $QueryBuilder->getQuery()->getOneOrNullResult();
}
}