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);
 }