コード例 #1
0
 /**
  * Obtém os dados da pessoa
  * @return array
  */
 public function searchPessoaInterna(\Core_Dto_Abstract $dto, $limit = NULL)
 {
     $search = mb_strtolower($dto->getQuery(), 'UTF-8');
     $queryBuilder = $this->_em->createQueryBuilder();
     $where = NULL;
     if ($dto->getProcedencia() == 'interna' && !is_null($dto->getSqPessoaOrigem())) {
         $where = $queryBuilder->andWhere('vf.sqUnidadeExercicio = :unidadeExercicio');
         if ($dto->getTipoPessoa() == \Core_Configuration::getCorpTipoPessoaFisica()) {
             $pessoaOrigem = $this->getEntityManager()->getRepository('app:VwProfissional')->find($dto->getSqPessoaOrigem());
             $queryBuilder->setParameter('unidadeExercicio', $pessoaOrigem->getSqUnidadeExercicio()->getSqUnidadeOrg());
         } else {
             if ($dto->getTipoPessoa() == \Core_Configuration::getCorpTipoPessoaUnidadeOrg()) {
                 $queryBuilder->setParameter('unidadeExercicio', $dto->getSqPessoaOrigem());
             }
         }
     }
     $field = $queryBuilder->expr()->lower($queryBuilder->expr()->trim('p.noPessoa'));
     $query = $queryBuilder->select('p.sqPessoa,p.noPessoa')->distinct()->from('app:VwProfissional', 'vf')->innerJoin('vf.sqPessoa', 'p')->andWhere($queryBuilder->expr()->like('clear_accentuation(' . $field . ')', $queryBuilder->expr()->literal($this->removeAccent('%' . $search . '%'))));
     if ($where) {
         $where;
     }
     if ($limit) {
         $query->setMaxResults($limit);
     }
     $query->orderBy('p.noPessoa');
     $res = $query->getQuery()->execute();
     $out = array();
     foreach ($res as $item) {
         $out[$item['sqPessoa']] = $item['noPessoa'];
     }
     return $out;
 }
コード例 #2
0
 /**
  * Metódo que recupera a pessoa
  * @return json
  */
 public function searchPessoaAction()
 {
     $this->_helper->layout->disableLayout();
     $params = $this->_getAllParams();
     $dtoSearch = \Core_Dto::factoryFromData($params, 'search');
     $result = $this->getService('VwPessoa')->autocomplete($dtoSearch, 30);
     #30 é o limit
     if (0 === count($result) && isset($params['save'])) {
         $msg = '';
         switch ($params['extraParam']) {
             case \Core_Configuration::getCorpTipoPessoaFisica():
                 $msg = 'MN132F';
                 break;
             case \Core_Configuration::getCorpTipoPessoaJuridica():
                 $msg = 'MN132J';
                 break;
         }
         if ($msg) {
             $result = array('__NO_CLICK__' => Core_Registry::getMessage()->_($msg));
         }
     }
     $this->_helper->json($result);
 }
コード例 #3
0
 /**
  * @return void
  */
 protected function editActionExtension()
 {
     $params = $this->_getAllParams();
     $dtoCheckEdit = Core_Dto::factoryFromData(array('sqArtefato' => $params['id'], 'sqPessoa' => \Core_Integration_Sica_User::getPersonId()), 'search');
     //verifica se o artefato pode ser editado
     //        if (!$this->getService('AreaTrabalho')->canEditArtefact($dtoCheckEdit)) {
     //            $this->getMessaging()->addErrorMessage(
     //                    sprintf(\Core_Registry::getMessage()->translate('MN154'),
     //                            $this->view->data->getNuDigital()->getNuEtiqueta()));
     //            $this->_redirect('/artefato/area-trabalho');
     //        }
     $params['sqArtefato'] = $params['id'];
     $dtoSearch = Core_Dto::factoryFromData($params, 'search');
     $this->view->redirect = $params['view'];
     $this->view->user = $this->getUser();
     $this->getCombo();
     $this->view->isLoteEletronico = false;
     $this->view->eDigital = $this->view->data->getNuDigital();
     if ($this->view->data->getSqTipoDocumento()) {
         $this->view->isSIC = $this->view->data->getSqTipoDocumento()->getSqTipoDocumento() == \Core_Configuration::getSgdoceTipoDocumentoSic();
     } else {
         $this->view->isSIC = false;
     }
     $this->view->docSIC = $this->view->data->getSqTipoDocumento();
     $dtoSgdoceFisico = \Core_Dto::factoryFromData(array('nuDigital' => $this->view->data->getNuDigital()->getNuEtiqueta(), 'sqArtefato' => $this->view->data->getSqArtefato()), 'search');
     $this->view->dataSgdocFisico = $this->getService()->getDataSgdocFisico($dtoSgdoceFisico);
     $this->view->dataSgdocFisico = current($this->view->dataSgdocFisico);
     $this->view->listProcedenciaFisico = array('I' => 'Interno', 'E' => 'Externo');
     $this->view->nuInteressados = $this->getService('PessoaInterassadaArtefato')->countInteressadosArtefatoValido($dtoSgdoceFisico);
     $dto = Core_Dto::factoryFromData(array('sqPessoaCorporativo' => \Core_Configuration::getSgdoceUnidadeCgu(), 'sqTipoPessoa' => \Core_Configuration::getCorpTipoPessoaUnidadeExt()), 'search');
     $this->view->CGU = !$this->view->isSIC ? null : $this->getService('Pessoa')->getPessoa($dto);
     // retorno de valor para a view
     $this->view->tipoNavegacao = $dtoSearch->getA();
     $this->view->dataGrauAcesso = $this->getService('GrauAcessoArtefato')->getGrauAcessoArtefato($dtoSearch);
     $criteria = array('sqArtefato' => $params['sqArtefato'], 'sqPessoaFuncao' => \Core_Configuration::getSgdocePessoaFuncaoAssinatura());
     $this->view->assinanteArtefatoExterno = $this->getService('PessoaArtefato')->findOneBy($criteria);
     $this->view->assinanteArtefatoInterno = $this->getService('PessoaAssinanteArtefato')->getAssinanteArtefato($dtoSearch);
     $this->view->dadosOrigem = self::_dadosPessoaDocumento($dtoSearch, \Core_Configuration::getSgdocePessoaFuncaoOrigem());
     $this->view->dadosDestino = self::_dadosPessoaDocumento($dtoSearch, \Core_Configuration::getSgdocePessoaFuncaoDestinatario());
     $this->view->result = $this->getService('AnexoArtefato')->listGridAnexos($dtoSearch);
     if ($this->view->dadosDestino) {
         $sqTipoPessoa = $this->view->dadosDestino[0]->getSqPessoaSgdoce()->getSqTipoPessoa()->getSqTipoPessoa();
         if ($sqTipoPessoa == \Core_Configuration::getCorpTipoPessoaFisica()) {
             $this->view->nacionalidadeDestino = $this->returnNacionalidade($this->view->dadosDestino);
         }
     }
     if ($this->view->dadosOrigem) {
         $sqTipoPessoa = $this->view->dadosOrigem[0]->getSqPessoaSgdoce()->getSqTipoPessoa()->getSqTipoPessoa();
         if ($sqTipoPessoa == \Core_Configuration::getCorpTipoPessoaFisica()) {
             $this->view->nacionalidadeOrigem = $this->returnNacionalidade($this->view->dadosOrigem);
         }
     }
     if ($this->view->data->getSqTipoArtefatoAssunto()->getSqTipoArtefatoAssunto()) {
         $this->_messageEdit = 'MN043';
         #mensagem de alteracao
     }
     if (!$this->view->isSIC) {
         $procedenciaInterno = isset($this->view->dadosOrigem[1]) ? $this->view->dadosOrigem[1] : NULL;
         //1 = interno  -- 3 = externo
         if ($procedenciaInterno == 1) {
             $disabledProcedencia = 'chekProcedenciaExterno';
         } else {
             $disabledProcedencia = 'chekProcedenciaInterno';
         }
         $this->view->disabledProcedencia = $disabledProcedencia;
     }
 }
コード例 #4
0
ファイル: Pessoa.php プロジェクト: sgdoc/sgdoce-codigo
 /**
  * Realiza consulta por cpf e nome
  * @param type $dto
  */
 public function searchCpf($dto)
 {
     $query = $this->listGrid($dto)->setMaxResults(10);
     if ($dto->getCpf()) {
         $query->andWhere($query->expr()->like('pf.nuCpf', '?1'))->setParameter(1, '%' . $dto->getCpf() . '%');
     }
     $itens = array();
     foreach ($query->getQuery()->getResult() as $item) {
         if ($item['sqTipoPessoa'] == \Core_Configuration::getCorpTipoPessoaFisica()) {
             $doc = \Zend_Filter::filterStatic($item['nuCpf'], 'MaskNumber', array('cpf'), array('Core_Filter'));
         } else {
             $doc = \Zend_Filter::filterStatic($item['nuCnpj'], 'MaskNumber', array('cnpj'), array('Core_Filter'));
         }
         $nome = $doc ? $doc . ' - ' . $item['noPessoa'] : $item['noPessoa'];
         $itens[$item['sqPessoa']] = $nome;
     }
     return $itens;
 }
コード例 #5
0
 /**
  * Recupera lista de combos
  */
 public function getCombos()
 {
     $sqTipoPessoa = array(\Core_Configuration::getCorpTipoPessoaFisica());
     $cmb['sqTipoPessoa'] = $this->getService('VwTipoPessoa')->getCombo($sqTipoPessoa);
     $this->view->cmb = $cmb;
 }
コード例 #6
0
ファイル: VwPessoa.php プロジェクト: sgdoc/sgdoce-codigo
 /**
  * Método responsável por realizar a busca dos dados para o autocomplete de pessoa
  *
  * @param array $params
  * @return array $out
  */
 public function autocomplete($dtoSearch, $limit)
 {
     $rsm = new \Doctrine\ORM\Query\ResultSetMapping($this->_em);
     $rsm->addScalarResult('sq_pessoa', 'sqPessoa', 'integer');
     $rsm->addScalarResult('no_pessoa', 'noPessoa', 'string');
     $sqTipoPessoa = $dtoSearch->getExtraParam();
     switch ($sqTipoPessoa) {
         case \Core_Configuration::getCorpTipoPessoaFisica():
             $sql = " SELECT\n                         p.sq_pessoa,\n                         coalesce(p.no_pessoa) as no_pessoa\n                     FROM corporativo.vw_pessoa p\n                     JOIN corporativo.vw_pessoa_fisica pf on pf.sq_pessoa = p.sq_pessoa\n                     WHERE (corporativo.fn_normaliza_string(p.no_pessoa) like '%' || corporativo.fn_normaliza_string(:noPessoa) || '%')\n                     ORDER BY no_pessoa asc\n                     LIMIT :limit";
             break;
         case \Core_Configuration::getCorporativoTipoPessoaUnidadeOrganizacional():
             $sql = " SELECT sq_pessoa, no_pessoa\n                     FROM\n                     (\n                         SELECT\n                             p.sq_pessoa,\n                             coalesce(uo.sg_unidade_org || ' - ', '') || coalesce(p.no_pessoa, '') as no_pessoa,\n                             corporativo.fn_normaliza_string(p.no_pessoa) AS column_aux\n                         FROM corporativo.vw_pessoa p\n                         JOIN corporativo.vw_unidade_org uo on uo.sq_pessoa = p.sq_pessoa\n                         WHERE (corporativo.fn_normaliza_string(p.no_pessoa) like '%' || corporativo.fn_normaliza_string(:noPessoa) || '%')\n\n                         UNION\n\n                         SELECT\n                             p.sq_pessoa,\n                             coalesce(uo.sg_unidade_org || ' - ', '') || coalesce(p.no_pessoa, '') as no_pessoa,\n                             corporativo.fn_normaliza_string(uo.sg_unidade_org) AS column_aux\n                         FROM corporativo.vw_pessoa p\n                         JOIN corporativo.vw_unidade_org uo on uo.sq_pessoa = p.sq_pessoa\n                         WHERE (corporativo.fn_normaliza_string(uo.sg_unidade_org) like '%' || corporativo.fn_normaliza_string(:noPessoa) || '%')\n                     ) tb_auxiliar\n                     ORDER BY column_aux asc\n                     LIMIT :limit";
             break;
         case \Core_Configuration::getCorpTipoPessoaJuridica():
             $sql = " SELECT\n                         p.sq_pessoa,\n                         coalesce(p.no_pessoa) as no_pessoa\n                     FROM corporativo.vw_pessoa p\n                     JOIN corporativo.vw_pessoa_juridica pj on pj.sq_pessoa = p.sq_pessoa\n                     WHERE (corporativo.fn_normaliza_string(p.no_pessoa) like '%' || corporativo.fn_normaliza_string(:noPessoa) || '%')\n                     ORDER BY no_pessoa asc\n                     LIMIT :limit";
             break;
         case \Core_Configuration::getCorporativoTipoPessoaUnidadeOrgExterna():
             $sql = " SELECT\n                                uoe.sq_pessoa,\n                                coalesce(uoe.sg_pai  || ' - ', '') || coalesce(uoe.no_pessoa, '') as no_pessoa\n                           FROM corporativo.vw_unidade_org_externa uoe\n                          WHERE (corporativo.fn_normaliza_string(uoe.no_pessoa) like '%' || corporativo.fn_normaliza_string(:noPessoa) || '%') OR\n                                (corporativo.fn_normaliza_string(uoe.sg_unidade_org) like '%' || corporativo.fn_normaliza_string(:noPessoa) || '%')\n\n                        UNION\n\n                         SELECT rppn.sq_pessoa,\n                                rppn.sg_rppn as no_pessoa\n                           FROM corporativo.vw_rppn rppn\n                          WHERE (corporativo.fn_normaliza_string(rppn.sg_rppn) like '%' || corporativo.fn_normaliza_string(:noPessoa) || '%')\n\n                         ORDER BY no_pessoa asc\n                     LIMIT :limit";
             break;
     }
     $result = $this->_em->createNativeQuery($sql, $rsm)->setParameter('noPessoa', str_replace(' ', '%', $dtoSearch->getQuery()), 'string')->setParameter('limit', $limit, 'integer')->getResult();
     $out = array();
     foreach ($result as $item) {
         $out[$item['sqPessoa']] = $item['noPessoa'];
     }
     return $out;
 }