Ir para conteúdo
  • Cadastre-se

dev botao

Consulta Não Retornando Eventos


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

Recommended Posts

Estou realizando a consulta de uma nota que cancelei por evento no ambiente de homologação do sefaz/mg, porém a consulta não retorna nenhuma informação sobre o cancelamento.

Como estou realizando a consulta:

      with ACBrNFe.NotasFiscais.Items[n].NFe do
         begin
            ACBrNFe.WebServices.Consulta.NFeChave := Copy(infNFe.ID,4,44);
            ACBrNFe.WebServices.Consulta.Executar;
            Memo1.Lines.Text :=  ACBrNFe1.WebServices.Consulta.retCancNFe.nProt;
            Memo2.Lines.Text :=  DateTimeToStr(ACBrNFe1.WebServices.Consulta.retCancNFe.dhRecbto);

            cStat    := ACBrNFe.WebServices.Consulta.cStat;
            xMotivo  := ACBrNFe.WebServices.Consulta.XMotivo;
            //Se não existe protocolo de cancelamento o sistema procura os eventos
            if trim(ACBrNFe.WebServices.Consulta.retCancNFe.nProt) = '' then
               for i := 0 to ACBrNFe.WebServices.Consulta.procEventoNFe.Count-1 do
                  begin
                     if ACBrNFe.WebServices.Consulta.procEventoNFe.Items[i].RetEventoNFe.InfEvento.tpEvento = teCancelamento then

 

A função ACBrNFe.WebServices.Consulta.procEventoNFe.Count sempre retorna 0, porém no site do sefaz mostra o evento de cancelamento.

 

XML de retorno:

<retConsSitNFe versao="2.01" xmlns="http://www.portalfiscal.inf.br/nfe"><tpAmb>2</tpAmb><verAplic>13_0_71</verAplic><cStat>100</cStat><xMotivo>Autorizado o uso da NF-e</xMotivo><cUF>31</cUF><chNFe>31130303913809000100550010000046361000046362</chNFe><protNFe versao="2.00"><infProt Id="ID131130033334556"><tpAmb>2</tpAmb><verAplic>13_0_71</verAplic><chNFe>31130303913809000100550010000046361000046362</chNFe><dhRecbto>2013-03-26T11:18:31</dhRecbto><nProt>131130033334556</nProt><digVal>SpcoyPcE8Kg2YMFKltQrODS9yyA=</digVal><cStat>100</cStat><xMotivo>Autorizado o uso da NF-e</xMotivo></infProt></protNFe></retConsSitNFe>

 

 

Link para o comentário
Compartilhar em outros sites

Para consultar pela chave de acesso, faça assim:

ACBrNFe1.WebServices.Consulta.NFeChave := // Chave de acesso
ACBrNFe1.WebServices.Consulta.Executar;

 

A situação ATUAL da NOTA FISCAL você acessa aqui:

        Protocolo.....: ACBrNFe1.WebServices.Consulta.Protocolo;
        Cód. status...: ACBrNFe1.WebServices.Consulta.cStat;
        Descr status..: ACBrNFe1.WebServices.Consulta.XMotivo;
        Data/hora.....: ACBrNFe1.WebServices.Consulta.DhRecbto;

 

Para recuperar as informações dos EVENTOS:

        if ACBrNFe1.WebServices.Consulta.procEventoNFe.Count > 0 then
          begin
            for i := 0 to ACBrNFe1.WebServices.Consulta.procEventoNFe.Count - 1 do
              begin
                for j := 0 to ACBrNFe1.WebServices.Consulta.procEventoNFe.Items[i].RetEventoNFe.retEvento.Count - 1 do
                  begin
                    Sequência do evento: ACBrNFe1.WebServices.Consulta.procEventoNFe.Items[i].RetEventoNFe.InfEvento.nSeqEvento;
                    Tipo de evento.....: ACBrNFe1.WebServices.Consulta.procEventoNFe.Items[I].RetEventoNFe.InfEvento.TpEvento;
                    Descrição do evento: ACBrNFe1.WebServices.Consulta.procEventoNFe.Items[I].RetEventoNFe.InfEvento.DescEvento;
                    Cód. status evento.: ACBrNFe1.WebServices.Consulta.procEventoNFe.Items[I].RetEventoNFe.retEvento.Items[j].RetInfEvento.cStat;
                    Desc. status evento: ACBrNFe1.WebServices.Consulta.procEventoNFe.Items[I].RetEventoNFe.retEvento.Items[j].RetInfEvento.xMotivo;
                    Status evento......: ACBrNFe1.WebServices.Consulta.procEventoNFe.Items[I].RetEventoNFe.retEvento.Items[j].RetInfEvento.xEvento;
                    Protocolo..........: ACBrNFe1.WebServices.Consulta.procEventoNFe.Items[I].RetEventoNFe.retEvento.Items[j].RetInfEvento.nProt;
                    Data/hora do evento: ACBrNFe1.WebServices.Consulta.procEventoNFe.Items[I].RetEventoNFe.retEvento.Items[j].RetInfEvento.dhRegEvento;
                  end;
              end;
          end;

 

O resultado fica próximo disso (memo do sistema que recebe as informações da consulta):

-------------------------------------------------------------------------------------------
 =>  Consultando NF-e com chave de acesso nº 35130307267118000120550000000001131067371925
-------------------------------------------------------------------------------------------
  Protocolo: 135130002008561 21/03/2013 19:30:50
  Status...: 101 - Cancelamento de NF-e homologado
 
-------------------------------------------------------------------------------------------
 =>  Eventos da NF-e com chave de acesso nº 35130307267118000120550000000001131067371925
-------------------------------------------------------------------------------------------
  Quantidade total de eventos: 1
 
  No. seq..: 1
  Evento...: 110111 - Cancelamento
  Status...: 135 - Evento registrado e vinculado a NF-e
  Status...: Cancelamento registrado
  Protocolo: 135130002008561 21/03/2013 19:30:50

 

Peterson de Cerqueira Matos
[email protected]
Vivo: (11) 97197-1474 / Oi: (11) 98059-4055

Link para o comentário
Compartilhar em outros sites

É, está bem parecido com a forma que estou fazendo.

Porém a função abaixo não retorna evento algum na nota que acabei de cancelar.

ACBrNFe1.WebServices.Consulta.procEventoNFe.Count

 

Verifiquei uma nota de ontem e ela está retornando o evento, parece que o Sefaz MG não retorna na hora o evento ....

Alguém está passando por este problema?

Link para o comentário
Compartilhar em outros sites

Elimine esta verificação:

if trim(ACBrNFe.WebServices.Consulta.retCancNFe.nProt) = '' then

 

A NF-e estando cancelada pelo modo antigo ou por eventos, suas informações estarão aqui:

       Protocolo.....: ACBrNFe1.WebServices.Consulta.Protocolo;
       Cód. status...: ACBrNFe1.WebServices.Consulta.cStat;

 

Em seguida faça uma verificação se existem eventos (Cartas de correção ou cancelamentos).

Creio que eliminando a verificação acima citada, a verificação abaixo retornará os dados:

if ACBrNFe1.WebServices.Consulta.procEventoNFe.Count > 0 then

Peterson de Cerqueira Matos
[email protected]
Vivo: (11) 97197-1474 / Oi: (11) 98059-4055

Link para o comentário
Compartilhar em outros sites

Ainda persiste, a verificação parece que está correta:

 



if trim(ACBrNFe.WebServices.Consulta.retCancNFe.nProt) = '' then

 

Como ela foi cancelada por evento esse teste retorna vazio, agora quando chega no teste do

 



if ACBrNFe1.WebServices.Consulta.procEventoNFe.Count > 0 then

 

O componente retorna 0.

 

Olha essa chave do sefaz mg.

 

31130303913809000100550010000046371000046378

Editado por malk182
Link para o comentário
Compartilhar em outros sites

Infelizmente sou de SP e não consigo consultar sua NF-e pelo componente.

O que eu fiz, foi entrar no site da Sefaz-MG e consultar a sua chave de acesso.

Observe no anexo 'ConsultaNFeHomMG' a atutorização e o evento de cancelamento.

Agora fica a dúvida se é problema na Sefaz-MG ou se algo precisa ser modificado no código.

 

post-64-0-00083300-1364316540_thumb.jpg

post-64-0-00083300-1364316540_thumb.jpg

Peterson de Cerqueira Matos
[email protected]
Vivo: (11) 97197-1474 / Oi: (11) 98059-4055

Link para o comentário
Compartilhar em outros sites

Isso mesmo, assim que fiz o evento conferi no site do sefaz e lá já continha a informação do evento.

 

Mais tarde vou consultar novamente com o componente para verificar, como não vi ninguém com este problema provavelmente é erro no sefaz mg.

Link para o comentário
Compartilhar em outros sites

Pessoal MG tem esse Delay mesmo tenho esse problema, você cancela a nota como evento mas ao consultar a CHAVE pelo ACBR não retorna os eventos, mais umas 2 horas depois passa a vir a consulta com eventos, lembrando que nesse período sempre consultando pelo site tem o evento de cancelamento.

 

Espero ter ajudado.

Thiago Balbino

Analista de Sistemas Programador

email: [email protected]

Muriaé - MG

 

Link para o comentário
Compartilhar em outros sites

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