/** * Processa o arquivo Webservice */ public function consultaDados($oParametros) { try { $sNomeTempArquivo = TEMP_PATH . "/ConsultarSituacaoLoteRps-" . time() . ".xml"; /* gravo o xml enviado */ $fp = fopen($sNomeTempArquivo, "w"); fwrite($fp, $oParametros); fclose($fp); /* carrega o arquivo em memoria para manipulação */ $oXml = simplexml_load_file($sNomeTempArquivo); $oRetorno = new StdClass(); $oRetorno->iNumeroLote = ''; $oRetorno->iSituacao = 1; $oParametrosArquivo = $oXml->ConsultarSituacaoLoteRpsEnvio; if (!$this->validarRequisicao($oParametrosArquivo)) { return $this->processaRetornoWebService($oRetorno); } /** * Busca usuário contribuinte pelo cnpj_cpf */ $oUsuarioContribuinte = Administrativo_Model_UsuarioContribuinte::getByAttribute('cnpj_cpf', $oParametrosArquivo->Prestador->Cnpj); if (empty($oUsuarioContribuinte)) { $this->adicionarInconsistencia('E45'); return $this->processaRetornoWebService($oRetorno); } $oProtocolo = Administrativo_Model_Protocolo::getByAttribute('protocolo', $oParametrosArquivo->Protocolo); if (!$oProtocolo) { // situação de não recebido $oRetorno->iNumeroLote = $oParametrosArquivo->Protocolo; $oRetorno->iSituacao = 1; return $this->processaRetornoWebService($oRetorno); } $oProtocoloImportacao = Contribuinte_Model_ProtocoloImportacao::getByAttribute('protocolo', $oProtocolo->getId()); if (!$oProtocoloImportacao->getImportacao()) { // situação de recebido mas processado com erro $oRetorno->iNumeroLote = $oProtocoloImportacao->getNumeroLote(); $oRetorno->iSituacao = 3; return $this->processaRetornoWebService($oRetorno); } // situação de recebido e processado com sucesso $oRetorno->iNumeroLote = $oProtocoloImportacao->getNumeroLote(); $oRetorno->iSituacao = 4; return $this->processaRetornoWebService($oRetorno); } catch (Exception $oErro) { return $oErro->getMessage(); } }
/** * Realiza a execução da pesquisa dos dados conforme arquivo de requisicao * * @param $sArquivo * @return string */ public function processar($sArquivo) { if (empty($sArquivo)) { $this->adicionarInconsistencia('E160'); } $sNomeTempArquivo = TEMP_PATH . "/ConsultarLoteRps-" . time() . ".xml"; /* gravo o xml enviado */ $fp = fopen($sNomeTempArquivo, "w"); fwrite($fp, $sArquivo); fclose($fp); $this->oRequisicao = simplexml_load_string($sArquivo); if (empty($this->oRequisicao)) { $this->adicionarInconsistencia('E160'); } if (!$this->validarRequisicao()) { return $this->escreverRetorno(); } $sCnpj = $this->oRequisicao->Prestador->Cnpj; $sNumeroProtocolo = $this->oRequisicao->Protocolo; $oUsuarioContribuinte = Administrativo_Model_UsuarioContribuinte::getByAttribute('cnpj_cpf', $sCnpj); if (empty($oUsuarioContribuinte)) { $this->adicionarInconsistencia('E45'); } $oProtocolo = Administrativo_Model_Protocolo::getByAttribute('protocolo', $sNumeroProtocolo); if (empty($oProtocolo)) { $this->adicionarInconsistencia('E86'); return $this->escreverRetorno(); } $oProtocoloImportacao = Contribuinte_Model_ProtocoloImportacao::getByAttribute('protocolo', $oProtocolo->getId()); if (!$oProtocoloImportacao->getImportacao()) { $this->adicionarInconsistencia('E86'); return $this->escreverRetorno(); } $this->aNotas = $oProtocoloImportacao->getNotasImportadas(); return $this->escreverRetorno(); }
/** * * @param integer $iTipo * @param string $sMensagem * @param integer $iNumeroLote * @param object $oDadosImportacao * @return Contribuinte_Model_ProtocoloImportacao */ public function adicionaProtocolo($iTipo, $sMensagem, $iNumeroLote, $oDadosImportacao = NULL) { /** * Cria um protocolo para a operação executada */ $oProtocolo = new Administrativo_Model_Protocolo(); $oProtocoloCriado = $oProtocolo->criaProtocolo($iTipo, $sMensagem); /** * Cria o vinculo entre o protocolo e a importacao do arquivo */ $oProtocoloImportacao = new Contribuinte_Model_ProtocoloImportacao(); $oProtocoloImportacao->setProtocolo($oProtocoloCriado); if ($oDadosImportacao) { $oProtocoloImportacao->setImportacao($oDadosImportacao); } $oProtocoloImportacao->setNumeroLote($iNumeroLote); $oProtocoloImportacao->persist(); return $oProtocolo; }