Ir para conteúdo
  • Cadastre-se

dev botao

Consulta MDFe Encerrado


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

Recommended Posts

  • Membros Pro

Bom dia,

Estou com uma situação em um MDFe e gostaria de sugestão de como poderia contornar o problema. 

No nosso sistema o MDFe está como autorizado. Mas no WS já está encerrado.
Isso indica que o XML com o encerramento foi enviado, mas, por algum motivo, não houve a gravação do retorno do WS no BD do sistema.

Quando isso ocorre, fazemos uma consulta (ACBrMDFe1.Consultar) e, se for retorno 132, é porque está encerrado; se for 101, é porque está cancelado,...
Então, para atualizar o BD, executamos a seguinte rotina:

if ACBrMDFe1.WebServices.Consulta.cstat = 101 then
 begin
   for I := 0 to ACBrMDFe1.WebServices.Consulta.procEventoMDFe.Count-1 do
      if ACBrMDFe1.WebServices.Consulta.procEventoMDFe.Items.RetEventoMDFe.InfEvento.tpEvento = teCancelamento then 
       begin
        FDQueryMDFe.FieldByName('DATA_CANC').AsDateTime :=
         ACBrMDFe1.WebServices.Consulta.procEventoMDFe.Items.RetEventoMDFe.retEvento.Items[0].RetInfEvento.dhRegEvento;
        FDQueryMDFe.FieldByName('PROT_CANC').AsString :=
         ACBrMDFe1.WebServices.Consulta.procEventoMDFe.Items.RetEventoMDFe.retEvento.Items[0].RetInfEvento.nProt;
        FDQueryMDFe.FieldByName('SITUACAO').AsString := 'Cancelada';
        break; //para sair do loop de eventos.
       end;
    end
   else if ACBrMDFe1.WebServices.Consulta.cstat = 132 then 
    begin
     for I := 0 to ACBrMDFe1.WebServices.Consulta.procEventoMDFe.Count-1 do
      if ACBrMDFe1.WebServices.Consulta.procEventoMDFe.Items.RetEventoMDFe.InfEvento.tpEvento = teEncerramento then
       begin
        FDQueryMDFe.FieldByName('DATA_ENCERR').AsDateTime :=
         ACBrMDFe1.WebServices.Consulta.procEventoMDFe.Items.RetEventoMDFe.retEvento.Items[0].RetInfEvento.dhRegEvento;
        FDQueryMDFe.FieldByName('PROT_ENCERR').AsString :=
         ACBrMDFe1.WebServices.Consulta.procEventoMDFe.Items.RetEventoMDFe.retEvento.Items[0].RetInfEvento.nProt;
        FDQueryMDFe.FieldByName('SITUACAO').AsString := 'Encerrada';
        break; //para sair do loop de eventos.
       end;
    end;

Funciona beleza.

Contudo, estamos com um MDFe atípico. Ele consta lá no WS como "Encerramento Fisco", ou seja, foi a SEFAZ q fez o encerramento.
O problema é que ao executar a consulta acima, temos o retorno de 10 eventos, mas todos com o 
ACBrMDFe1.WebServices.Consulta.procEventoMDFe.Items.RetEventoMDFe.InfEvento.tpEvento = teNaoMapeado.
Aí não dá para saber qual deles é o evento de encerramento para pegar o dhRegEvento e nProt.

Alguma dica sobre essa situação?

Obrigado!

Valdir Dill

Rio de Janeiro - RJ

 

 

Link para o comentário
Compartilhar em outros sites

  • Consultores

Bom dia Valdir,

Favor anexar o XML de retorno da consulta.

Se o valor de tpEvento é teNaoMapeado isso significa que o código do evento de Encerrando Fisco é diferente do Encerramento realizado pelo emitente.

 

Consultor SAC ACBr

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

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

  • Membros Pro
21 minutos atrás, Italo Jurisato Junior disse:

Bom dia Valdir,

Favor anexar o XML de retorno da consulta.

Se o valor de tpEvento é teNaoMapeado isso significa que o código do evento de Encerrando Fisco é diferente do Encerramento realizado pelo emitente.

 

Arquivos em anexo.

Obrigado.

26200610241975000165580010000020501305985767-mdfe.xml 26200610241975000165580010000020501305985767-MDFeDFe.xml 26200610241975000165580010000020501305985767-ped-sit.xml 26200610241975000165580010000020501305985767-ped-sit-soap.xml 26200610241975000165580010000020501305985767-sit.xml 26200610241975000165580010000020501305985767-sit-soap.xml

Valdir Dill

Rio de Janeiro - RJ

 

 

Link para o comentário
Compartilhar em outros sites

  • Consultores
  • Solution

Bom dia Valdir,

No XML de retorno consta os eventos: 310112 = Encerramento Fisco (que não constava na lista de eventos) e o 510620 = Registro de Passagem Automático.

Fiz uma alteração em duas units para que esses dois eventos sejam identificados.

O de encerramento recém incluído tem o enumerador: teEncerramentoFisco e o outro teRegistroPassagemBRId.

Favor atualizar os fontes e faça novos testes.

  • Curtir 1
Consultor SAC ACBr

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

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

  • Membros Pro
18 minutos atrás, Italo Jurisato Junior disse:

Bom dia Valdir,

No XML de retorno consta os eventos: 310112 = Encerramento Fisco (que não constava na lista de eventos) e o 510620 = Registro de Passagem Automático.

Fiz uma alteração em duas units para que esses dois eventos sejam identificados.

O de encerramento recém incluído tem o enumerador: teEncerramentoFisco e o outro teRegistroPassagemBRId.

Favor atualizar os fontes e faça novos testes.

Testado e aprovado!

Show de bola!

Obrigado.

  • Curtir 3

Valdir Dill

Rio de Janeiro - RJ

 

 

Link para o comentário
Compartilhar em outros sites

  • Consultores

Obrigado por reportar.

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

  • Curtir 1
Consultor SAC ACBr

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

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 1313 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.