Ir para conteúdo
  • Cadastre-se

dev botao

Gravar XML do evento


Ver Solução Respondido por Calmeida79,
  • Este tópico foi criado há 2051 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Bom dia amigos,

Poderiam me ajudar no processo de gravar um XML de evento de cancelamento? Já li alguns topicos aqui mas não consegui ainda

NotasFiscais.Clear;
EventoNFe.Evento.Clear;

NotasFiscais.LoadFromFile(EnderecoXML);

EventoNFe.idLote := 1;

   with EventoNFe.Evento.Add do
   begin
         infEvento.chNFe := strChave;
         infEvento.CNPJ   := strCnpjCompleto;
         infEvento.dhEvento := now;
         infEvento.tpEvento := teCancelamento;
         infEvento.detEvento.xJust := Justificativa;
         infEvento.detEvento.nProt := strProtocolo;
   end;

EnviarEvento(iNumeroLote); 

Configuracoes.Arquivos.Salvar             := True;
Configuracoes.Arquivos.SalvarEvento       := true;
Configuracoes.Arquivos.PathNFe            := EnderecoDiretorioXML;
Configuracoes.Arquivos.PathEvento         := EnderecoDiretorioXML;
Configuracoes.Arquivos.EmissaoPathNFe     := True;

NotasFiscais.GravarXML(EnderecoDiretorioXML);

reportDanfe.ImprimirDANFEPDF();

 

  • Solution
Postado

Acabei por conseguir...

 

caso alguém precise está aqui a minha solução:

 

EnderecoXML := "Caminho onde está o meu xml que vou cancelar"

  DM.NFE.NotasFiscais.Clear;
  DM.NFE.EventoNFe.Evento.Clear;

  if not DM.NFE.NotasFiscais.LoadFromFile(EnderecoXML) then
  Begin
    raise Exception.Create('Não foi possível carregar o XML da Nota Fiscal Eletrônica para cancelamento!');
    Exit;
  End;


  strNrNota   := "123456"
  iNumeroLote := StrToInt("123456");
  DM.NFE.EventoNFe.idLote := iNumeroLote;

  strProtocolo := "Protocolo do XML"
  strChave     := "Chave do XML"

  with DM.NFE.EventoNFe.Evento.Add do
  begin
    infEvento.chNFe           := strChave;
    infEvento.CNPJ            := strCnpjCompleto;
    infEvento.dhEvento        := now;
    infEvento.tpEvento        := teCancelamento;
    infEvento.detEvento.xJust := Justificativa;
    infEvento.detEvento.nProt := strProtocolo;
  end;

  DM.nfe.Configuracoes.Arquivos.Salvar             := True;
  DM.nfe.Configuracoes.Arquivos.SalvarEvento       := true;
  DM.nfe.Configuracoes.Arquivos.PathNFe            := EnderecoDiretorioXML;
  DM.nfe.Configuracoes.Arquivos.PathEvento         := EnderecoDiretorioXML;
  DM.nfe.Configuracoes.Arquivos.EmissaoPathNFe     := True;

  if DM.NFE.EnviarEvento(iNumeroLote) then
  begin

      with DM.NFE.WebServices.EnvEvento do
      begin       

         DataProtocolo   := FormatDateTime('dd/mm/yyyy hh:nn:ss',EventoRetorno.retEvento.Items[0].RetInfEvento.dhRegEvento);
         NrProtocolo     := EventoRetorno.retEvento.Items[0].RetInfEvento.nProt;
         XMLCancelamento := EventoRetorno.retEvento.Items[0].RetInfEvento.XML;
         Result          := 'Cod:' + IntToStr(EventoRetorno.retEvento.Items[0].RetInfEvento.cStat) + '-' + EventoRetorno.retEvento.Items[0].RetInfEvento.xMotivo;
 

         DM.nfe.ImprimirEventoPDF;     

     END

End;

  • Curtir 1
  • Administradores
Postado

Obrigado por reportar.

Fechando. Para novas dúvidas, criar um novo tópico.

  • Curtir 1
Consultora SAC ACBr

Juliana Tamizou

Gerente de Projetos ACBr / Diretora de Marketing AFRAC
Ajude o Projeto ACBr crescer - Seja Pro

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

  • Este tópico foi criado há 2051 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.