protected function escreverRetorno() { $oDomDocument = new DOMDocument(); $oDomDocument->formatOutput = false; $oNodeConsultarLote = $oDomDocument->createElement("ii:ConsultarLoteRpsResposta"); $oNodeConsultarLote->setAttribute("xmlns:ii", "urn:DBSeller"); $oNoListaNfse = $oDomDocument->createElement('ii:ListaNfse'); if (count($this->aNotas) > 0) { foreach ($this->aNotas as $oNota) { $oNotaAbrasf = new WebService_Model_NotaAbrasf($oNota); $oNoListaNfse->appendChild($oDomDocument->importNode($oNotaAbrasf->getNota(), true)); } } $oNoListaErros = $oDomDocument->createElement('ii:ListaMensagemRetorno'); $oNodeConsultarLote->appendChild($oNoListaNfse); $oNodeConsultarLote->appendChild($oNoListaErros); foreach ($this->aInconsistencias as $sInconsistencia) { $oMensagemErro = $oDomDocument->createElement("ii:MensagemRetorno"); $oCodigo = $oDomDocument->createElement("ii:Codigo", $sInconsistencia); $oMensagem = $oDomDocument->createElement("ii:Mensagem", $this->aErrosManual[$sInconsistencia]->sMensagem); $oCorrecao = $oDomDocument->createElement("ii:Correcao", $this->aErrosManual[$sInconsistencia]->sSolucao); $oMensagemErro->appendChild($oCodigo); $oMensagemErro->appendChild($oMensagem); $oMensagemErro->appendChild($oCorrecao); $oNoListaErros->appendChild($oMensagemErro); } $oDomDocument->appendChild($oNodeConsultarLote); return $oDomDocument->saveXML(); }
/** * Retorno XML do webservice * @return string */ private function retornoWebservice() { $oXml = new DOMDocument("1.0", "UTF-8"); $oXmlConsultarNfseResposta = $oXml->createElement("ii:ConsultarNfseResposta"); $oXmlConsultarNfseResposta->setAttribute("xmlns:ii", "urn:DBSeller"); /** * Verifica se encontrou erros */ if (count($this->aInconsistencias) == 0) { $oNoListaNfse = $oXml->createElement('ii:ListaNfse'); if (count($this->aNotas) > 0) { foreach ($this->aNotas as $oNota) { $oNotaAbrasf = new WebService_Model_NotaAbrasf($oNota); $oNoListaNfse->appendChild($oXml->importNode($oNotaAbrasf->getNota(), true)); } } $oXmlConsultarNfseResposta->appendChild($oNoListaNfse); } else { /** * Lista de Mensagens */ $ListaMensagemRetorno = $oXml->createElement("ii:ListaMensagemRetorno"); foreach ($this->aInconsistencias as $iCodErro) { $MensagemRetorno = $oXml->createElement("ii:MensagemRetorno"); $Codigo = $oXml->createElement("ii:Codigo", $iCodErro); $Mensagem = $oXml->createElement("ii:Mensagem", $this->aErrosManual[$iCodErro]->sMensagem); $Correcao = $oXml->createElement("ii:Correcao", $this->aErrosManual[$iCodErro]->sSolucao); $MensagemRetorno->appendChild($Codigo); $MensagemRetorno->appendChild($Mensagem); $MensagemRetorno->appendChild($Correcao); $ListaMensagemRetorno->appendChild($MensagemRetorno); } $oXmlConsultarNfseResposta->appendChild($ListaMensagemRetorno); } $oXml->appendChild($oXmlConsultarNfseResposta); return $oXml->saveXML(); }
/** * Exporta os dados para XML */ public function rpsExportarAction() { parent::noLayout(); $aParametros = $this->getRequest()->getParams(); /** * Parametros de retorno do AJAX */ $aRetornoJson = array('success' => FALSE, 'message' => NULL); /** * Verifica se foi informado mês e ano da competência */ if (!empty($aParametros['mes_competencia']) && !empty($aParametros['ano_competencia'])) { $oContribuinte = $this->_session->contribuinte; $oCompetencia = new StdClass(); $oCompetencia->iMes = $aParametros['mes_competencia']; $oCompetencia->iAno = $aParametros['ano_competencia']; $iNumeroRps = !empty($aParametros['numero_rps']) ? $aParametros['numero_rps'] : NULL; $aNotas = Contribuinte_Model_Nota::getByContribuinteAndCompetencia($oContribuinte->getContribuintes(), $oCompetencia, $iNumeroRps); /** * Verifica se existe alguma NFSe para a competência informada */ if (count($aNotas) > 0) { $oXml = new DOMDocument("1.0", "UTF-8"); $oXml->formatOutput = TRUE; $oXmlConsultaRPSCompetencia = $oXml->createElement("ii:ConsultaRPSCompetencia"); $oXmlConsultaRPSCompetencia->setAttribute("xmlns:ii", "urn:DBSeller"); $oMes = $oXml->createElement("ii:Mes", $oCompetencia->iMes); $oAno = $oXml->createElement("ii:Ano", $oCompetencia->iAno); $oNoListaNfse = $oXml->createElement('ii:ListaNfse'); foreach ($aNotas as $oNota) { $oNotaAbrasf = new WebService_Model_NotaAbrasf($oNota); $oNoListaNfse->appendChild($oXml->importNode($oNotaAbrasf->getNota(), true)); } $oXmlConsultaRPSCompetencia->appendChild($oMes); $oXmlConsultaRPSCompetencia->appendChild($oAno); $oXmlConsultaRPSCompetencia->appendChild($oNoListaNfse); $oXml->appendChild($oXmlConsultaRPSCompetencia); /** * Path do arquivo */ $sNomeArquivo = "lista_rps_{$oCompetencia->iMes}_{$oCompetencia->iAno}.xml"; $sCaminhoArquivo = TEMP_PATH . "/{$sNomeArquivo}"; if (file_exists($sCaminhoArquivo)) { unlink($sCaminhoArquivo); } /** * Escreve os dados no arquivo */ $aArquivo = fopen($sCaminhoArquivo, 'w'); fputs($aArquivo, print_r($oXml->saveXML(), TRUE)); fclose($aArquivo); $aRetornoJson['success'] = TRUE; $aRetornoJson['filename'] = $sNomeArquivo; $aRetornoJson['message'] = 'Notas exportadas com sucesso.'; } else { $aRetornoJson['message'] = 'Nenhum registro encontrado.'; } } echo $this->getHelper('json')->sendJson($aRetornoJson); }