예제 #1
0
 /**
  * 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;
 }
예제 #2
0
 /**
  * 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;
 }
예제 #3
0
 /**
  * Obtém os dados da pessoa para encaminhar minuta para analise ou assinatura
  * @return array $out
  */
 public function searchPessoas(\Core_Dto_Abstract $dto)
 {
     $sqArtefato = $dto->getSqArtefato();
     $inExistentAss = $this->verificaPessoaAssinatura($sqArtefato);
     $query = mb_strtolower($dto->getQuery(), 'UTF-8');
     $queryBuilder = $this->getEntityManager()->createQueryBuilder()->select('DISTINCT p.sqPessoa, p.noPessoa');
     if ($dto->getInAssinatura() && $inExistentAss) {
         $this->queryAssinatura($queryBuilder, $dto, $query);
     } else {
         $this->queryAnalise($queryBuilder, $dto, $query);
     }
     $queryBuilder->orderBy('p.noPessoa');
     $res = $queryBuilder->getQuery()->execute();
     $out = array();
     foreach ($res as $key => $data) {
         $out[$data['sqPessoa']] = $data['noPessoa'];
     }
     return $out;
 }