/** * 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; }
/** * 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); }
/** * @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; } }
/** * 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; }
/** * Recupera lista de combos */ public function getCombos() { $sqTipoPessoa = array(\Core_Configuration::getCorpTipoPessoaFisica()); $cmb['sqTipoPessoa'] = $this->getService('VwTipoPessoa')->getCombo($sqTipoPessoa); $this->view->cmb = $cmb; }
/** * 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; }