/** * * @param Doctrine\ORM\QueryBuilder $builder * @param VIB\CoreBundle\Filter\ListFilterInterface $filter * @return Doctrine\ORM\QueryBuilder */ protected function applyQueryBuilderFilter($builder, ListFilterInterface $filter = null) { $filterName = $filter instanceof VialFilter ? $filter->getFilter() : null; switch ($filterName) { case 'all': return $builder; case 'forgot': return $this->applyForgotFilter($builder); case 'dead': return $this->applyDeadFilter($builder); case 'trashed': return $this->applyTrashedFilter($builder); case 'due': return $this->applyDueFilter($builder); case 'overdue': return $this->applyOverDueFilter($builder); default: return $this->applyLivingFilter($builder); } }
/** * {@inheritdoc} */ protected function getCountQueryBuilder(ListFilterInterface $filter = null) { $qb = $this->createQueryBuilder('e')->select('count(DISTINCT e.id)'); $access = $filter instanceof StockFilter ? $filter->getAccess() : null; if ($access == 'mtnt') { $date = new \DateTime(); $date->sub(new \DateInterval('P2M')); return $qb->join('e.vials', 'v')->andWhere('v.setupDate > :date')->andWhere('v.trashed = false')->setParameter('date', $date->format('Y-m-d')); } return $qb; }