public function buscaPessoaPorDocumento(\Core_Dto_Search $dtoSearch) { //fazer uma pesquisa no sgdoce também; $dadosSgdoce = $this->getServiceLocator()->getService('Pessoa')->findPessoaDestinatarioArtefato($dtoSearch); $objCorporativo = $this->_getRepository()->buscaPessoaPorDocumento($dtoSearch); if (!count($objCorporativo)) { return array(); } $endereco = $this->_getRepository('app:VwEndereco')->findEndereco($objCorporativo->getSqPessoa()); $criteria = array('sqPessoa' => $objCorporativo->getSqPessoa(), 'sqAtributoTipoDocumento' => \Core_Configuration::getSgdoceSqAtributoTipoDocNumeroPassaporte()); $documento = $this->_getRepository('app:VwDocumento')->findBy($criteria); if (!$documento) { $documento = $this->_newEntity('app:VwDocumento'); } if (!$endereco) { $endereco = $this->_newEntity('app:VwEndereco'); } $cep = \Zend_Filter::filterStatic($endereco->getSqCep(), 'MaskNumber', array('cep'), array('Core_Filter')); $corporativo = array('sqPessoa' => $objCorporativo->getSqPessoa(), 'noPessoa' => $objCorporativo->getNoPessoa(), 'nuCpfCnpjPassaporte' => $this->getServiceLocator()->getService('Pessoa')->getTipoPessoa($dtoSearch, $objCorporativo), 'txEndereco' => $endereco->getTxEndereco(), 'coCep' => $cep, 'sqEstadoDestinatarioId' => $endereco->getSqMunicipio()->getSqEstado()->getSqEstado(), 'sqEstadoDestinatario' => $endereco->getSqMunicipio()->getSqEstado()->getNoEstado(), 'sqMunicipioDestinatarioHidden' => $endereco->getSqMunicipio()->getSqMunicipio(), 'sqMunicipioDestinatario' => $endereco->getSqMunicipio()->getNoMunicipio()); foreach ($dadosSgdoce as $key => $result) { if ($result['coCep'] == $endereco->getSqCep() && $result['sqEstado'] == $endereco->getSqMunicipio()->getSqEstado()->getSqEstado() && $result['sqMunicipio'] == $endereco->getSqMunicipio()->getSqMunicipio() && $result['txEndereco'] == $endereco->getTxEndereco()) { unset($corporativo); $corporativo = array(); } } $base['nuPassaporte'] = $documento->getTxValor(); $base['sqPessoa'] = $objCorporativo->getSqPessoa(); $base['noPessoa'] = $objCorporativo->getNoPessoa(); $base['corporativo'] = $corporativo; $base['sgdoce'] = $dadosSgdoce; $base['nuCpf'] = $this->getServiceLocator()->getService('Pessoa')->getTipoPessoa($dtoSearch, $objCorporativo); return $base; }
/** * Método que retorna os dados da pessoa * @return array */ public function getPessoaDados($dtoSearch = NULL) { $dadosCorporativo = $this->_getRepository($this->_entityNameCorp)->getPessoaDados($dtoSearch); //fazer uma pesquisa no sgdoce também; $dadosSgdoce = $this->findPessoaDestinatarioArtefato($dtoSearch); if (!$dadosCorporativo) { return array(); } if (!$dadosSgdoce) { $criteria = array('sqPessoaCorporativo' => $dadosCorporativo->getSqPessoa()); $pessoaSgdoce = $this->_getRepository($this->_entityNameSgdoce)->findOneBy($criteria); if ($pessoaSgdoce) { $dadosSgdoce = $this->getServiceLocator()->getService('EnderecoSgdoce')->findByArray($pessoaSgdoce); } } $criteria = array('sqPessoa' => $dadosCorporativo->getSqPessoa()); $endereco = $this->getServiceLocator()->getService('VwEndereco')->findBy($criteria); $criteria = array('sqPessoa' => $dadosCorporativo->getSqPessoa(), 'sqAtributoTipoDocumento' => \Core_Configuration::getSgdoceSqAtributoTipoDocNumeroPassaporte()); $documento = $this->_getRepository('app:VwDocumento')->findBy($criteria); if (!$documento) { $documento = $this->_newEntity('app:VwDocumento'); } else { $documento = $documento[0]; } if (!$endereco) { $endereco = $this->_newEntity('app:VwEndereco'); } $corporativo = $this->validaCorporativo($endereco, $dadosCorporativo, $dtoSearch); $corporativo = $this->validaSgdoce($dadosSgdoce, $endereco, $corporativo); if ($dtoSearch->getSqTipoPessoa() == \Core_Configuration::getSgdoceTipoPessoaPessoaFisica()) { $base['nuCpf'] = $this->getTipoPessoa($dtoSearch, $dadosCorporativo); } else { $base['nuCnpj'] = $this->getTipoPessoa($dtoSearch, $dadosCorporativo); } $base['nuPassaporte'] = $documento->getTxValor(); $base['sqPessoa'] = $dadosCorporativo->getSqPessoa(); $base['noPessoa'] = $dadosCorporativo->getNoPessoa(); $base['corporativo'] = $corporativo; $base['sgdoce'] = $dadosSgdoce; return $base; }