public function comboProfile(\Core_Dto_Mapping $dto, $inFuncionalidade = TRUE) { $queryBuilder = $this->_em->createQueryBuilder(); $queryBuilder->select('p.sqPerfil', 'p.noPerfil')->from('app:Perfil', 'p')->innerJoin('p.sqSistema', 's')->where('p.stRegistroAtivo = :stRegistroAtivo')->setParameter('stRegistroAtivo', 'TRUE'); if ($inFuncionalidade) { $queryBuilder->leftJoin('p.sqPerfilFuncionalidade', 'pf'); } if ($dto->getSqSistema() !== '') { $queryBuilder->andWhere('p.sqSistema = :sqSistema')->setParameter('sqSistema', $dto->getSqSistema()); } if ($dto->getInPerfilExterno() == '1') { $queryBuilder->andWhere($queryBuilder->expr()->eq('p.inPerfilExterno', ':perfilExterno')); $queryBuilder->setParameter('perfilExterno', 'TRUE'); } else { if ($dto->getInPerfilExterno() == '0') { $queryBuilder->andWhere($queryBuilder->expr()->eq('p.inPerfilExterno', ':perfilExterno')); $queryBuilder->setParameter('perfilExterno', 'FALSE'); } } return $queryBuilder->getQuery()->getArrayResult(); }