Ir para conteúdo
  • Cadastre-se

dev botao

  • Este tópico foi criado há 1977 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Saudações

Estou tentando pegar os eventos de retorno de uma nfe (e nfce) para identificar quando ela foi cancelada.

Confesso que tenho apanhado bastante e não consigo capturar o evento quando acontece.

Evento de Cancelamento de NFE.

Código:

      // gravar evento
      qptonfe.Open;
      qptonfe.append;
      qptonfeptonfechave.AsInteger := fprinci.RetornaNovoGenerator('ptonfe',
        'ptonfechave');

      qptonfenota.AsString := inttostr(fprinci.vnfcevenda);
      qptonfeprotocolo.AsString := ACBrNFe1.WebServices.EnvEvento.EventoRetorno.
        retEvento.Items[0].RetInfEvento.nProt;
      scaminho := ACBrNFe1.Configuracoes.Arquivos.PathNFe + sdata + '\';
      snota := copy(ACBrNFe1.NotasFiscais.Items[0].NFe.infNFe.id, 4, 44) +'-nfe.xml';

      qptonfelocalevento.AsString :=  ACBrNFe1.WebServices.EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento.NomeArquivo;
      qptonfeXMLCancelamento.AsString :=ACBrNFe1.WebServices.EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento.xml;
      qptonfetipoevento.AsString := ACBrNFe1.WebServices.EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento.xEvento;
      qptonfeDataHoraEvento.AsString := datetostr(ACBrNFe1.WebServices.EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento.dhRegEvento);
      qptonfeCodigoStatus.AsString := inttostr(vCodigoRetorno);
//      qptonfeMotivoStatus.AsString := vMotivoRetorno;
      qptonfeMotivoStatus.AsString :=  ACBrNFe1.WebServices.EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento.xMotivo;
      qptonfedata.AsFloat := date;
      qptonfeusrcodigo.AsInteger := fprinci.voperador;
      qptonfealteracao.AsString := datetimetostr(now);
      qptonfe.post;

Eu até consigo gravar 1 dos eventos. 135m--> Ver na imagem, MotivoStatus

eventocancelamento.thumb.png.501456793b13fb995725d09eca2d10c3.png

 

Mas não os demais.

Ou, pergunta idiota, só tem que salvar esse evento mesmo??

O que estou fazendo de errado??

Qualquer ideia é bem vinda.

Claudiomir

  • Consultores
Postado

Bom dia Claudiomir,

Não entendi muito bem o que você quer fazer.

A nota que você quer saber se foi cancelada ou não foi emitida por você ou pelo seu fornecedor?

Ao consultar a situação de uma nota, caso a mesma possua eventos vinculados a ela teremos uma lista desses eventos no retorno.

Eventos retornados caso existam: Evento de Cancelamento, Carta de Correção e EPEC.

Lembre-se que uma nota pode ter um ou mais eventos vinculados a ela logo temos uma lista, portanto:

(...).retEvento.Items[0].(...) só vai pegar informações do primeiro evento, para pegar de todos os eventos tem que colocar dentro de um loop e mudar para: (...).retEvento.Items[ x ].(...), onde x varia de zero até a quantidade de eventos vinculados a nota.

  • Curtir 1
Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

  • Este tópico foi criado há 1977 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • 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.