Ir para conteúdo
  • Cadastre-se

Gravar XML do evento


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

Recommended Posts

  • Membros Pro
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();

 

  • Membros Pro
  • 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
  • Consultores
Postado

Obrigado por reportar.

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

  • Curtir 1
Consultora ACBr Pro

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á 2606 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.