Ir para conteúdo
  • Cadastre-se

dev botao

DistribuicaoDFe - Status da Nota sefaz


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

Recommended Posts

Boa tarde pessoal. Eu estou com uma duvida aqui, vi varias respostas nos tópicos mas a duvida continua.

Depois de realizar a consulta das nota destinadas e as notas serem retornadas, existe algum modo de capturar o status da nota na sefaz ou somente consultando de uma a uma?

Status eu digo, se esta autorizada, cancelada...

Aguardo

EL Soluções em Informática

Desenvolvimento  e Suporte (ERP, NF-e, Sped Fiscal, EFD Contribuições, Emissor de Cupom Fiscal)
Ronda Alta - RS

(54)3364-1588
www.elinfo.com.br

 

Link para o comentário
Compartilhar em outros sites

o retorno da consulta de distribuição ja traz  status delas (autorizado ou denegado), ja para o status de cancelado tens de continuar a fazer a consulta de manifesto até alcançar o respectivo evento.

ACBR.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items.resNFe.cSitNFe retorna o status da nota

Link para o comentário
Compartilhar em outros sites

13 minutos atrás, 3Soft Sistemas disse:

o retorno da consulta de distribuição ja traz  status delas (autorizado ou denegado), ja para o status de cancelado tens de continuar a fazer a consulta de manifesto até alcançar o respectivo evento.

ACBR.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items.resNFe.cSitNFe retorna o status da nota

Perdão eu não entendi oque você quiz dizer aqui...

EL Soluções em Informática

Desenvolvimento  e Suporte (ERP, NF-e, Sped Fiscal, EFD Contribuições, Emissor de Cupom Fiscal)
Ronda Alta - RS

(54)3364-1588
www.elinfo.com.br

 

Link para o comentário
Compartilhar em outros sites

sendo o cancelamento da nota um evento posterior a sua autorização certamente terás de efetuar mais consultas de manifesto até esse ponto... assim pela logica uma nota primeiro é autorizada...e depois cancelada (se for esse o caso, claro).

EX: nsu de NFe xpto autorizada > 10
      nsu de NFe xptp cancelada (evento) > 11
      

   

Link para o comentário
Compartilhar em outros sites

Certo, eu observei que muitas vezes se obtém dois retornos da mesma NF-e. Como eu devo fazer para diferenciar um do outro?

Acredito que um seja a propria NF-e e o outro é algum tipo de outro evento vinculado a NF-e

EL Soluções em Informática

Desenvolvimento  e Suporte (ERP, NF-e, Sped Fiscal, EFD Contribuições, Emissor de Cupom Fiscal)
Ronda Alta - RS

(54)3364-1588
www.elinfo.com.br

 

Link para o comentário
Compartilhar em outros sites

ordem é facil, só tens de analisar o tipo de retorno e atuar conforme:

retorna resumo da NFe
manifestas a NFe (app)
  retorna Nfe completa (se autorizada) 
  retorna Evento
   ....
   retorna mais Eventos (só tem eventos deste ponto em diante)

para diferenciar tens o nsu, que serve de id em relação ao cnpj da nota

para mais esclarecimento consulta a NT 2014/002

Editado por 3Soft Sistemas
Link para o comentário
Compartilhar em outros sites

Desculpe se estou sendo chato ou se não estou entendendo oque vocês estão tentando me falar.

O fato é que eu efetuo a consulta, os xmls são todos retornados, porém eu só consigo capturar o evento de CCe os outros não são capturados.

Outro fato que esta estranho, mesmo inserindo no ClientDataSet apenas oque esta na tag resNFe ele insere duas, três vezes o mesmo XML.

Eu acredito que estou fazendo algo de errado, mas já li o manual do acbr onde tem a parte de distribuição e la não tem nada que diga como eu devo fazer para capturar os dados retornados...

EL Soluções em Informática

Desenvolvimento  e Suporte (ERP, NF-e, Sped Fiscal, EFD Contribuições, Emissor de Cupom Fiscal)
Ronda Alta - RS

(54)3364-1588
www.elinfo.com.br

 

Link para o comentário
Compartilhar em outros sites

  • Consultores

Bom dia Maurício,

Se tratando do retorno do método DistribuicaoDFe, vamos analisar os seguintes fontes: pcnRetDistDFeInt.pas e pcnConversaoNFe.pas 

No primeiro vamos descobrir (linha 431) que é montada uma lista e temos uma propriedade dessa lista chamada schema cujo valor pode ser um dos definidos em TSchemaNFe (pcnConversaoNFe.pas) e na linhas (443, 464, 483 e 522) temos a propriedade XML recebendo o respectivo retorno.

Se o componente estiver configurado para salvar em disco os retornos serão salvos.

Mas como você pode ver podemos identifica-los através do valor atribuído em Schema e podemos ler os dados desse retorno através de diversas propriedades.

Veja por exemplo o bloco de linhas de 441 até 460, se refere ao retorno de um resumo da NF-e, temos o resumo completo armazenado na propriedade XML e as informações separadas nas demais propriedades como por exemplo: chNFe, CNPJCPF, xNome, etc

Lendo essas propriedades podemos obter a chave da NF-e que consta no respectivo resumo, bem como o CNPJ do emitente, o nome, etc.

Tudo parece ser muito complicado então vamos simplificar um pouco.

Dentro da pasta ...\Exemplos\ACBrDFe\ACBrNFe você encontra um TXT chamado DistribuicaoDFe é o fragmento de uma rotina que se utiliza do método para realizar a consulta e depois lê os dados retornados do resumo da NF-e.

Por se tratar de um exemplo só consta a leitura do resumo da NF-e, de eventos não tem, mas a ideia é a mesma e para saber quais são os dados retornados no caso de um resumo de evento estude o bloco de linhas 462 até 479.

Espero ter ajudado e Bons Estudos.

 

  • Curtir 2
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

Italo obrigado pela sua resposta. 

Citar

Dentro da pasta ...\Exemplos\ACBrDFe\ACBrNFe você encontra um TXT chamado DistribuicaoDFe é o fragmento de uma rotina que se utiliza do método para realizar a consulta e depois lê os dados retornados do resumo da NF-e.

Eu usei esse método e adaptei do jeito que eu precisava.
Vou estudar as linha indicadas.
Novamente, muito obrigado pela sua resposta

EL Soluções em Informática

Desenvolvimento  e Suporte (ERP, NF-e, Sped Fiscal, EFD Contribuições, Emissor de Cupom Fiscal)
Ronda Alta - RS

(54)3364-1588
www.elinfo.com.br

 

Link para o comentário
Compartilhar em outros sites

Italo, eu estava estudando os trechos de código que você me passou e surgiu mais uma duvida aqui.

Quando eu faço a consulta ele me retorna todos os XMLs(eventos, resumo, NF-e). Quando a NF-e já possui manifesto ele retorna alem do resumo, a NF-e completa. Após a leitura eu estou usando o código abaixo:

          with (DMAdm.ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[i])do
          begin
            if (resNFe.chNFe <> '')then
            begin

Logo após o IF pego todos os dados o resNFe. O problema é que o componente esta puxando os dados do resumo e os dados da NF-e completa quando essa possui o manifesto, sendo assim, insere duas vezes na base os mesmos dados. As minhas duvidas são:
1. Eu devo fazer alguma coisa antes para isso não ocorrer?
2. Como eu poderia testar o XML se é a nota completa ou somente o resumo?
3. Na parte de eventos ele só le o evento de CC-e. Isso esta certo?

Espero que tenhas entendido e possa me responder
Aguardo... 

EL Soluções em Informática

Desenvolvimento  e Suporte (ERP, NF-e, Sped Fiscal, EFD Contribuições, Emissor de Cupom Fiscal)
Ronda Alta - RS

(54)3364-1588
www.elinfo.com.br

 

Link para o comentário
Compartilhar em outros sites

  • Consultores

Bom dia Maurício,

Ao executar pela segunda vez o DistribuicaoDFe, você esta informando o último NSU retornado pela consulta anterior?

Se sim não é para constar da lista o resumo da NF-e manifestada e sim somente a NF-e.

Para saber do que se trata, se é um resumo de nota ou nota completa ou resumo de evento ou evento completo deve-se ler a propriedade Schema conforme já dito na minha postagem anterior.

Exemplo:

      if ACBrNFe1.retDistDFeInt.docZip.Items.XML <> '' then
      begin
        case ACBrNFe1.retDistDFeInt.docZip.Items.schema of
          tsresNFe: begin
                            (...)
                          end:
          tsresEvento: begin
                                 (....)
                               end;
          tsprocNFe: begin
                                (...)
                            end;
          tsprocEventoNFe: begin
                                          (...)
                                       end;
        end;
      end;
 

  • 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

Estou fazendo assim, primeira vez:

DMAdm.ACBrNFe1.DistribuicaoDFe(43,
                               limpaString(configuracao.empresaCNPJ),
                               '0', '' );

Logo após:

sUltimoNSU := DMAdm.ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.ultNSU;
        DMAdm.ACBrNFe1.DistribuicaoDFe(43,
                                       limpaString(configuracao.empresaCNPJ),
                                       sUltimoNSU, '' );

vou fazer as modificações para testar oque me passaste...

obrigado..

EL Soluções em Informática

Desenvolvimento  e Suporte (ERP, NF-e, Sped Fiscal, EFD Contribuições, Emissor de Cupom Fiscal)
Ronda Alta - RS

(54)3364-1588
www.elinfo.com.br

 

Link para o comentário
Compartilhar em outros sites

Italo, mais uma duvida... Quando a nota é cancelada, e eu executo a função, ele não retorna o evento de cancelamento?

Na NT diz que o evento de cancelamento só ficará disponível depois que o destinatário se manifestar, mas é impossível mandar manifestação do destinatário ou ciência da operação para um NF cancelada, a própria sefaz retorna erro.

EL Soluções em Informática

Desenvolvimento  e Suporte (ERP, NF-e, Sped Fiscal, EFD Contribuições, Emissor de Cupom Fiscal)
Ronda Alta - RS

(54)3364-1588
www.elinfo.com.br

 

Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa tarde Maurício,

Realmente existe uma incoerência.

No meu entendimento se tratando de cancelamento pelo menos este evento ou resumo deste evento deveria ser disponibilizado ao destinatário para que o mesmo saiba que a respectiva nota foi cancelada.

A minha sugestão é entrar em contato com a SEFAZ e questiona-los sobre esse assunto.

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

  • 1 ano depois...
  • Membros Pro

Boa noite,

Ao pesquisar uma nota pela chave,    ACBrNFe1.DistribuicaoDFePorChaveNFe(CodigoEstado, ACBrNFe1.SSL.CertCNPJ, EditChave.Text) e
não encontrando a nota ele abre uma janela de retorna informando que a nota não foi encontrada, com Status 137. Como faço para pegar este status e trabalhar com ele.

Agradeço uma ajuda.

Link para o comentário
Compartilhar em outros sites

  • Consultores

Bom dia Luiz,

Para obter o código do status bem como a sua descrição basta usar as linhas abaixo:

   sStat   := ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.cStat;
   sMotivo := ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.xMotivo;

Uma pergunta, a chave da nota que você informou no método DistribuicaoDFePorChaveNFe foi previamente manifestada pelo destinatário?
 

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

Boa tarde Ítalo,

Eu não sei se foi manifestada, estou testando na base de um cliente. Mas acredito que não, pois o fornecedor é na mesma cidade do cliente.

Não estou entendendo o seguinte, o cliente possue um único certificado digital ligado ao CNPJ 03915923/0001-61 da matriz, as notas recebida por este CNPJ o distribuidorDFE consegue carregar, mas as notas emitidas contra os CNPJ das filiais( ex. 03915923/0003-23) não conseguem carregar. Não deveria considerar que o ator é da mesma empresa? Estas filiais são de outras praças, será isso? 

Outra coisa, existem ferramentas que conseguem buscar um XML na Sefaz nacional usando Captcha, não precisando ser um ator na nota, isso ajuda muito na emissão de CTe. Hoje uso um que comprei, mas ultimamente tem dado problema. Isso acaba deixando o cliente insatisfeito, pois outros concorrentes atendem melhor neste quesito. Voce conhece algo para indicar?

Obrigado pela atenção.

Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa noite Luiz,

Se eu entendi a matriz que baixar as notas contra as Filiais?

Se sim, qual é o CNPJ informado no DistribuicaDFe , o da matriz ou da filial?

Quanto a obter o XML para a transportadora, você pode usar o DistribuicaoDFe para baixar o XML completo, ou seja, assinado e com o protocolo de autorização, mas o XML da NF-e tem que constar o CNPJ da transportadora no grupo transporta.

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

Boa Tarde Ítalo,

Passo assim,   ACBrNFe1.DistribuicaoDFePorChaveNFe(CodigoEstado, ACBrNFe1.SSL.CertCNPJ, EditChave.Text), o CNPJ é do Cerfificado. Tentei passar o CNPJ da filial no lugar do certificado,  ACBrNFe1.DistribuicaoDFePorChaveNFe(CodigoEstado, vCNPJFilial, EditChave.Text);, mas retorna erro Chave de acesso invalida.  

Quanto ao DistribuicaoDFe  não preciso dele completo, somente dados do remetente e destinatário, se entendi voce quer dizer que se a transportadora estiver informada no XML da NFe no grupo transporta, ela consegue ler.  Vou dar uma olhada melhor no exemplo do DistribuicaDFe .

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Membros Pro
Em ‎13‎/‎12‎/‎2017 at 16:35, Luiz Carlos de Lima disse:

Boa Tarde Ítalo,

1 - Passo assim,   ACBrNFe1.DistribuicaoDFePorChaveNFe(CodigoEstado, ACBrNFe1.SSL.CertCNPJ, EditChave.Text), o CNPJ é do Cerfificado. Tentei passar o CNPJ da filial no lugar do certificado,  ACBrNFe1.DistribuicaoDFePorChaveNFe(CodigoEstado, vCNPJFilial, EditChave.Text);, mas retorna erro Chave de acesso invalida.  

2 - Quanto ao DistribuicaoDFe  não preciso dele completo, somente dados do remetente e destinatário, se entendi voce quer dizer que se a transportadora estiver informada no XML da NFe no grupo transporta, ela consegue ler.  Vou dar uma olhada melhor no exemplo do DistribuicaDFe .

Bom dia Italo, estou no aguardo da questao 1

Editado por Luiz Carlos de Lima
Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa tarde Luiz,

Por favor anexe o XML gerado ao executar o DistribuicaoDFePorChaveNFe que resulta na rejeição: Chave de acesso invalida.

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

The popup will be closed in 10 segundos...