Exemplo n.º 1
0
 /**
  * Procura modelo de documentos de acordo com os parâmetros
  * @param  array $params Parâmetros da requisição
  * @return mixed Query Builder
  */
 public function listGrid(\Core_Dto_Search $dto)
 {
     $queryBuilder = $this->_em->createQueryBuilder()->select('DISTINCT
                                   md.sqModeloDocumento,
                                   pmd.sqPadraoModeloDocumento,
                                   pmd.noPadraoModeloDocumento,
                                   td.noTipoDocumento,
                                   a.txAssunto,
                                   md.inAtivo')->from('app:ModeloDocumento', 'md')->innerJoin('md.sqModeloDocumentoCampo', 'mdc')->innerJoin('md.sqTipoDocumento', 'td')->leftJoin('md.sqAssunto', 'a')->innerJoin('mdc.sqPadraoModeloDocumentoCam', 'pmdc')->innerJoin('pmdc.sqPadraoModeloDocumento', 'pmd')->andWhere('md.inAtivo = TRUE')->orderBy('pmd.noPadraoModeloDocumento, td.noTipoDocumento, a.txAssunto', 'ASC');
     if ($dto->hasSqPadraoModeloDocumento() && $dto->getSqPadraoModeloDocumento()) {
         $queryBuilder->andWhere('pmdc.sqPadraoModeloDocumento = :PadraoModeloDoc')->setParameter('PadraoModeloDoc', $dto->getSqPadraoModeloDocumento(), 'integer');
     }
     if ($dto->hasSqAssunto() && $dto->getSqAssunto()) {
         $queryBuilder->andWhere('md.sqAssunto = :assunto')->setParameter('assunto', $dto->getSqAssunto(), 'integer');
     }
     if ($dto->hasSqTipoDocumento() && $dto->getSqTipoDocumento()) {
         $queryBuilder->andWhere('md.sqTipoDocumento = :tipoDoc')->setParameter('tipoDoc', $dto->getSqTipoDocumento(), 'integer');
     }
     return $queryBuilder;
 }