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á 1641 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,

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

 

 

  • Membros Pro
Postado
7 horas atrás, Juliomar Marchetti disse:

Boa noite

tentou entrar em contato diretamente com eles ou consultou o MDF-e no site da sefaz para verificar?

Bom dia,

Consultei o documento diretamente no portal da SEFAZ (vide anexo).

MDFE2050.png

  • Curtir 1

Valdir Dill

Rio de Janeiro - RJ

 

 

  • Consultores
Postado

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 / Araraquara-SP

Araraquara - A era dos Trólebus

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

 

 

  • Consultores
  • Solution
Postado

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 / Araraquara-SP

Araraquara - A era dos Trólebus

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

 

 

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

The popup will be closed in 10 segundos...
The popup will be closed in 10 segundos...