Example #1
0
 /**
  * {@inheritdoc}
  */
 protected function getListQueryBuilder(ListFilterInterface $filter = null)
 {
     $qb = $this->createQueryBuilder('e');
     $date = new \DateTime();
     $date->sub(new \DateInterval('P2M'));
     if ($filter instanceof SortFilterInterface) {
         $order = $filter->getOrder() == 'desc' ? 'DESC' : 'ASC';
         switch ($filter->getSort()) {
             case 'name':
                 $qb->orderBy('e.name', $order);
                 break;
             case 'gen':
                 $qb->orderBy('e.genotype', $order);
                 break;
             case 'vial':
                 $qb->addSelect('count(cntv) AS HIDDEN vialcount')->leftJoin('e.vials', 'cntv')->andWhere('cntv.setupDate > :date')->andWhere('cntv.trashed = false')->setParameter('date', $date->format('Y-m-d'))->groupBy('e.id')->orderBy('vialcount', $order);
                 break;
         }
     }
     $access = $filter instanceof StockFilter ? $filter->getAccess() : null;
     if ($access == 'mtnt') {
         $qb->distinct()->join('e.vials', 'v')->andWhere('v.setupDate > :date')->andWhere('v.trashed = false')->setParameter('date', $date->format('Y-m-d'));
     }
     return $qb;
 }
Example #2
0
 /**
  * {@inheritdoc}
  */
 protected function getListQueryBuilder(ListFilterInterface $filter = null)
 {
     $builder = $this->createQueryBuilder('e')->addSelect('o')->leftJoin('e.position', 'o');
     if ($filter instanceof SortFilterInterface) {
         $order = $filter->getOrder() == 'desc' ? 'DESC' : 'ASC';
         if ($filter->getSort() == 'setup') {
             $builder->orderBy('e.setupDate', $order);
         } elseif ($filter->getSort() == 'flip') {
             $builder->orderBy('e.flipDate', $order);
         }
         $builder->addOrderBy('e.id', $order);
     }
     return $this->applyQueryBuilderFilter($builder, $filter);
 }