/** * Obtém os dados da unidade * @return array */ public function searchUnidadeOrg(\Core_Dto_Abstract $dto) { $search = mb_strtolower($dto->getQuery(), 'UTF-8'); $queryBuilder = $this->_em->createQueryBuilder(); $query = $queryBuilder->select('u.sqUnidadeOrg, u.noUnidadeOrg')->from('app:VwUnidadeOrg', 'u'); $field = $queryBuilder->expr()->lower($queryBuilder->expr()->trim('u.noUnidadeOrg')); //Consulta case-insensitive $query->andWhere($queryBuilder->expr()->like('clear_accentuation(' . $field . ')', $queryBuilder->expr()->literal($this->removeAccent('%' . $search . '%')))); if ($dto->getExtraParam()) { $query->andWhere('u.sqTipoUnidade = :sqTipoUnidade')->setParameter('sqTipoUnidade', $dto->getExtraParam()); } $res = $query->getQuery()->getArrayResult(); $out = array(); foreach ($res as $item) { $out[$item['sqUnidadeOrg']] = $item['noUnidadeOrg']; } return $out; }
/** * Obtém os dados da pessoa * @return array */ public function searchPessoa(\Core_Dto_Abstract $dto) { $search = mb_strtolower($dto->getQuery(), 'UTF-8'); $queryBuilder = $this->_em->createQueryBuilder(); $field = $queryBuilder->expr()->lower($queryBuilder->expr()->trim('p.noPessoa')); $query = $queryBuilder->select('vprof, p')->from('app:VwVinculoFuncional', 'vprof')->innerJoin('vprof.sqPessoa', 'p')->andWhere($queryBuilder->expr()->like('clear_accentuation(' . $field . ')', $queryBuilder->expr()->literal($this->removeAccent('%' . $search . '%')))); if ($dto->hasExtraParam()) { $query->andWhere('vprof.sqUnidadeLotacao = :sqUnidadeLotacao')->setParameter('sqUnidadeLotacao', $dto->getExtraParam()); } $query->orderBy('p.noPessoa'); $res = $query->getQuery()->getArrayResult(); $out = array(); foreach ($res as $item) { $out[$item['sqPessoa']['sqPessoa']] = $item['sqPessoa']['noPessoa']; } return $out; }