public function listGrid(\Core_Dto_Abstract $dto) { $_qb = $this->_em->createQueryBuilder(); $query = $_qb->select(' d.sqDocumento, d.txValor, td.sqTipoDocumento, td.noTipoDocumento, atd.sqAtributoTipoDocumento, p.sqPessoa, ps.sqPessoaSgdoce, acd.sqAnexoComprovanteDocumento, acd.deCaminhoImagem ')->from($this->_entityName, 'd')->innerJoin('d.sqAtributoTipoDocumento', 'atd')->innerJoin('atd.sqAtributoDocumento', 'ad')->innerJoin('atd.sqTipoDocumento', 'td')->innerJoin('d.sqPessoa', 'p')->leftJoin('p.sqPessoaCorporativo', 'ps', 'WITH', $_qb->expr()->andX()->add($_qb->expr()->eq('ps.sqPessoaCorporativo', 'p.sqPessoa')))->leftJoin('ps.sqAnexoComprovanteDocumento', 'acd', 'WITH', $_qb->expr()->andX()->add($_qb->expr()->eq('acd.sqTipoDocumento', 'td.sqTipoDocumento'))->add($_qb->expr()->eq('acd.sqPessoaSgdoce', ':sqPessoaSgdoce')))->where('p.sqPessoa = :sqPessoa')->andWhere($_qb->expr()->in('ad.sqAtributoDocumento', ':sqAtributoDocumento'))->setParameter('sqPessoa', $dto->getSqPessoaFisica() ?: null)->setParameter('sqPessoaSgdoce', $dto->getSqPessoaSgdoce() ?: null)->setParameter('sqAtributoDocumento', array(\Core_Configuration::getCorpAtributoDocumentoNumero())); return $query; }