Ir para conteúdo
  • Cadastre-se

dev botao

Consultar NFe na Sefaz, e pegar o XML com os dados atualizados


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

Recommended Posts

boa noite, estou implementando a consulta para nota fiscal autorizadas junto a sefaz, estou usando o código de rejeição através do retorno 67 ((Duplicidade de NF-e, com diferença na Chave de Acesso[Chave), que trata do caso de duplicidade, geralmente essa mensagem é emitida pela sefaz, então o que estou pretendendo fazer;

1. Alimento o componente com todos os dados da NF-e.

2. uso as opções do componente NotasFiscais.GerarNFe; NotasFiscais.Assinar e NotasFiscais.Validar;

3. Passo a chave da NF-e em questão: ACBrNFe1.WebServices.Consulta.NFeChave := AChave ; aparentemente consulta e trás o protocolo e data de autorização.

porem não estou conseguindo reaver do componente o XML com os dados atualizados, o XML continua da forma que foi assinado e sem dados do protocolo.

Gostaria de saber qual XML retorna esses dados atualizados. Estou pensando em implementar o resultado do XML na pasta de retorno xxxxxxxxx-sit.xml, com o XML gerado pelo componente caso não exista essa opção, mas antes preciso saber de vocês se já tem essa opção e sem tem como proceder, pra obter o XML atualizado.

Obrigado!

Att. Solivan

 

 

Editado por Solivan

Sistema de Automação Comercial para diversos segmentos
NF-e, NFC-e, SPED Fiscal - www.arenasoft.com.br

Link para o comentário
Compartilhar em outros sites

boa tarde Ítalo, sem querer ser chato, mas aquela alteração (nas ultimas revisões não me lembro qual), pra gravar os dados do protNFe, de alguma forma já contempla também a correção no caso de consulta da NF-e ?

como foi descrito no posto acima. Obrigado!

Sistema de Automação Comercial para diversos segmentos
NF-e, NFC-e, SPED Fiscal - www.arenasoft.com.br

Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa tarde Solivan,

Foi aplicada uma alteração no ACBrNFe - Trunk2 visando gravar os dados do protNFe tanto na consulta quanto no retorno do envio.

Por favor realize testes e nos de um retorno.

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

Italo, Bom dia...

Atualizei ontem para o trunk2 enviamos uma nfe em um cliente e não apareceu nenhum erro, mostrando a nota corretamente. Hoje o cliente foi imprimir e esta aparecendo que não foi autorizada pela sefaz, faço a consulta e mostra que esta autorizada. Verifiquei na pasta retorno e não encontro o arquivo do protocolo. consultei varias vezes e não aparece o protocolo.

Tem alguma coisa que pode ta interferindo, que eu possa ta verificando?

Grato...

Link para o comentário
Compartilhar em outros sites

Italo efetuei varios testes e o protocolo não vem, então fiz uma pequena alteração afim de corrigir,não sei se é a melhor forma de contornar a situação segue abaixo o arquivo alterado e o modo como estou fazendo pra consultar a NF-e.

            if ConsultarNotaFiscal_ComItens( DataSet.FieldByName('CodigoNFe').AsInteger ) then
              begin
                ACBrNFe1.NotasFiscais.Clear ;
                AlimentarComponenteNFe( DataSet.FieldByName('NumeroNFe').AsInteger );

                ACBrNFe1.NotasFiscais.GerarNFe;
                ACBrNFe1.NotasFiscais.Assinar;
                ACBrNFe1.NotasFiscais.Validar;

                FChave := Trim(DataSet.FieldByName('ChaveNFe').AsString) ;

                if not ValidarChave( FChave ) then
                  begin
                    MessageError('Chave da Nota Fiscal inválida.');
                    Exit ;
                  end;

                FPathXML := IncludeTrailingPathDelimiter( cPathRaizNFe + cAutorizadas ) +
                FChave + '-nfe.xml' ;

                ACBrNFe1.WebServices.Consulta.NFeChave := FChave ;

                if ACBrNFe1.WebServices.Consulta.Executar then
                  begin
                    if ACBrNFe1.WebServices.Consulta.retCancNFe.cStat = 101 then
                      begin
                        MessageWarning('Nota Fiscal Cancelada.');
                      end;

                    FPathEvento := IncludeTrailingPathDelimiter( cPathRaizNFe + cRetornoMssg ) +
                    FChave + '-sit.xml' ;

                    ACBrNFe1.WebServices.Consulta.protNFe.PathNFe := FPathXML ;
                    //ACBrNFe1.WebServices.Consulta.protNFe.PathRetConsSitNFe := FPathEvento ;
                    ACBrNFe1.WebServices.Consulta.protNFe.PathRetConsReciNFe := '' ;

                    // Função gravar XML, grava o XML, da forma que foi gerado e assinado e sem o protocolo. irrelevante.

                    //ACBrNFe1.NotasFiscais.Items[0].GravarXML( ExtractFileName( FPathXML ), ExtractFilePath( FPathXML ) );
                    ACBrNFe1.WebServices.Consulta.protNFe.Versao := '3.10' ; // Caso não informe o campo vem vazio dentro do XML
                   

                    // adicionei uma linha pra gravar o arquivo no final do processo gerarXML  

                    ACBrNFe1.WebServices.Consulta.protNFe.GerarXML ;

                    TrataRetornosNFeGravaBancoDados( DataSet.FieldByName('CodigoNFe').AsInteger, 0, FChave, FPathXML ) ;
                  end
                else
                  MessageInfo( 'NF-e ainda não autorizada. Use o botão Enviar NF-e caso queira autoriza-la junto a Sefaz.' ) ;
              end;

Depois que o arquivo é salvo no disco pela função GerarXML

então carrego novamente o arquivo como mostra abaixo e imprimo.

  ACBrNFe1.NotasFiscais.Clear; 

   ACBrNFe1.NotasFiscais.LoadFromFile( FPathXML ) ;
  ACBrNFe1.NotasFiscais.ImprimirPDF ;
  ACBrNFe1.NotasFiscais.Imprimir;

Baixar o arquivo com modificação

O arquivo ao qual me refiro é o pcnProcNFe.pas.

Notei algo diferente também quando ele faz a consulta dentro do XML contem uma outra chave diferente da que informei.

Obrigado!

 

 

Editado por Solivan

Sistema de Automação Comercial para diversos segmentos
NF-e, NFC-e, SPED Fiscal - www.arenasoft.com.br

Link para o comentário
Compartilhar em outros sites

  • Consultores

Bom dia a todos,

Dércio, Trunk e Trunk2 são repositórios onde disponibilizamos os fontes dos componentes. Os novos fontes estão sendo disponibilizados no Trunk2.

Elrodaocorp e Solivan, já foi detectado esse problema e se não me falha a memória o André esta cuidando disso.

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

  • Consultores

Boa tarde Dércio,

Te aconselho utilizar uma outra maquina para usar os fontes do Trunk2.

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

Ítalo. Só para mim entender essa transição para o Trunk2.

Até hj, para atualizar os fontes do ACBR, eu rodo o ACBRInstal.exe, la dentro eu escolho os componentes que quero instalar/atualizar. O próprio AcbrInstall faz o download dos fontes pelo Tortoise SVN e depois compilo os pacotes. 

O Processo é o mesmo com Trunk2 ? Preciso baixar ou fazer algo diferente ?

 

Link para o comentário
Compartilhar em outros sites

Bom dia a todos,

Dércio, Trunk e Trunk2 são repositórios onde disponibilizamos os fontes dos componentes. Os novos fontes estão sendo disponibilizados no Trunk2.

Elrodaocorp e Solivan, já foi detectado esse problema e se não me falha a memória o André esta cuidando disso.

Ola Italo bom dia, só para confirmar, quando eu estou fazendo a consulta da nota já enviada, ela não esta gravando o XML com os dados do protocolo de autorização e quando faço um cancelamento da Nota e depois faço uma consulta ele tbem não grava o protocolo de cancelamento no XML. É isso que nosso amigo André esta cuidando...

Desde ja obrigado pela atenção...

Luciano

Link para o comentário
Compartilhar em outros sites

  • Consultores

Bom dia Luciano,

Estamos trabalhando para resolver o problema do protocolo de autorização.

Quando ao cancelamento, o componente não vai mais alterar o XML conforme orientação contida em Manuais e Notas Técnicas publicadas pelo ENCAT.

Por favor pesquise aqui mesmo no fórum sobre o cancelamento, você encontrará várias postagem explicando como proceder.

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

  • 2 anos depois...
  • Membros Pro

olá pessoal, como posso obter um retorno para saber se a NF foi recepcionada(recebida) ou não pela sefaz?
estou tentando fazer a consulta da seguinte forma:
 1 - carrego o xml previamente salvo antes do envio da NF-e no componente, desta forma: NFe.NotasFiscais.LoadFromString(QrTempNFXML.AsString)
 2 - executo: if (NFe.Consultar) then, aqui retorna TRUE para qualquer xml, mesmo os não transmitidos
 3 - tento verificar apos o Cnsulta desta forma: NFe.NotasFiscais.Items[0].Processada, todas retornam False, tento tambem com NFe.NotasFiscais.Items[0].Confirmada mesma coisa

o que eu poderia estar fazendo para checar se esta NF foi ou não transmitida? pois vez ou outra ocorre de o sistema transmitir o XML e por algum motivo não obter o devido retorno.

obrigado.

Link para o comentário
Compartilhar em outros sites

Bom Dia,

Se o retorno da consulta está sendo "True" você deve analisar o cStat retornado, a consulta retorna true com base no seguinte:

image.png.56be0bf6589dd53b5b565bd5ad9b5253.png

 

Verifique qual o status que retornou da consulta e proceda de acordo com ele.

OBS: se está faz\endo consultas antes de enviar a NFe você vai acabar tendo problema de consumo indevido, de uma conferida nas NT, o melhor é controlar localmente esta situação.

 

Link para o comentário
Compartilhar em outros sites

  • Membros Pro
56 minutos atrás, Roberto.Godinho disse:

Bom Dia,

Se o retorno da consulta está sendo "True" você deve analisar o cStat retornado, a consulta retorna true com base no seguinte:

image.png.56be0bf6589dd53b5b565bd5ad9b5253.png

 

Verifique qual o status que retornou da consulta e proceda de acordo com ele.

OBS: se está faz\endo consultas antes de enviar a NFe você vai acabar tendo problema de consumo indevido, de uma conferida nas NT, o melhor é controlar localmente esta situação.

 

Obrigado por ajudar, porém o que ocorre é que, o metodo "Consultar" retorna True, para qualquer XML, mesmo os não transmitidos...
analisando o cStat apos a chamada do metodo consultar utilizando desta forma: "NFe.WebServices.Consulta.cStat" eu recebo 588 mesmo para NF-e já autorizada.

existe também os NotasFiscais.Items[0].Confirmada e NotasFiscais.Items[0].Processada, ambos retornando False inclusive para Nf-e's já autorizadas...

com relação a consumo indevido, eu pretendo utilizar a consulta apenas nos casos onde a NF-e não retorne ok, sendo assim pretendo utilizar esta consulta para atualizar o xml na minha base de dados apos o consumo do metodo "consultar"

Link para o comentário
Compartilhar em outros sites

o cstat 588 é presença de caracteres inválidos no XML, esta com o ACBr atualizado? posta um destes XML's pra gente da uma olhada.

Pra você ver como está se comportando a consulta da uma depurada no método "TNFeConsulta.TratarResposta" da unit ACBrNFeWebServices, lá você vai conseguir ter uma noção de como é tratado esta situação.

a propriedade confirmada é readOnly, trata exatamente os status que passei acima, o fato de não estar vindo confirmada é por causa do retorno da consulta

Link para o comentário
Compartilhar em outros sites

  • Membros Pro
1 hora atrás, Roberto.Godinho disse:

o cstat 588 é presença de caracteres inválidos no XML, esta com o ACBr atualizado? posta um destes XML's pra gente da uma olhada.

Pra você ver como está se comportando a consulta da uma depurada no método "TNFeConsulta.TratarResposta" da unit ACBrNFeWebServices, lá você vai conseguir ter uma noção de como é tratado esta situação.

a propriedade confirmada é readOnly, trata exatamente os status que passei acima, o fato de não estar vindo confirmada é por causa do retorno da consulta

consulta tanto pela chave quanto pelo xml retornam:

<retConsSitNFe xmlns="http://www.portalfiscal.inf.br/nfe" versao="3.10"><tpAmb>1</tpAmb><verAplic>3.10</verAplic><cStat>588</cStat><xMotivo>Rejeicao: Nao e permitida a presenca de caracteres de edicao no inicio/fim da mensagem ou entre as tags da mensagem</xMotivo><cUF>51</cUF><dhRecbto>2018-01-23T13:30:41-03:00</dhRecbto><chNFe>51170927204142000127550010000001271000001276</chNFe></retConsSitNFe>

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

atualizei o componente, atualizei o patch schemas...

tentei mudar a versão em Configuracoes.Geral.VersaoDF  de 310 para ve400

setei as propriedades:

    NFe.Configuracoes.Geral.RetirarAcentos        := True;
    NFe.Configuracoes.Geral.RetirarEspacos        := True;

nada muda..
 

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

Copiar e colar o trecho XML não vai resolver, não tem como identificar se tem algum problema na formação dos mesmo.

verifica se não esta configurado pra identar o XML: "acbr.Configuracoes.Geral.IdentarXML"

Configura teu acbr pra salvar os arquivos gerados:

  acbr.Configuracoes.WebServices.Salvar := true;
  acbr.Configuracoes.Geral.Salvar := true;

pega todos os arquivos gerados, inclusive o XML da própria NFe, arquivos de envio e retorno e posta, desta forma fica mais fácil ajudar.

Link para o comentário
Compartilhar em outros sites

Como assim? deixa eu ver se entendi, consultar todos os dados da nota a que você se refere seria informar a chave de acesso e retornar o XML completo, isso? 

Se for isso então não é possível. Você deve carregar o XML da NFe no componente acbr e usar o método consultar, se encontrar sua nota autorizada, cancelada o componente irá atualizar o arquivo XML com os dados do protocolo retornado.

Link para o comentário
Compartilhar em outros sites

  • Membros Pro
Em 23/01/2018 at 13:53, Roberto.Godinho disse:

Copiar e colar o trecho XML não vai resolver, não tem como identificar se tem algum problema na formação dos mesmo.

verifica se não esta configurado pra identar o XML: "acbr.Configuracoes.Geral.IdentarXML"

Configura teu acbr pra salvar os arquivos gerados:

  acbr.Configuracoes.WebServices.Salvar := true;
  acbr.Configuracoes.Geral.Salvar := true;

pega todos os arquivos gerados, inclusive o XML da própria NFe, arquivos de envio e retorno e posta, desta forma fica mais fácil ajudar.

Eu salvo o xml em banco de dados...em todo caso o que eu estou tentando dizer é que o metodo Consultar que retorna um boolean...me retorna TRUE para qualquer xml consultado, independente se este xml existe ou não na base da NFe nacional/estadual...pq eu tenho uma rotina no sistema que analisa se realmente aquele xml consta na base da NFe...gostaria de saber dos amigos se alguém tem rotina semelhante e como estão procedendo para fazer esta consulta, derrepente estou interpretando incorretamente o retorno do metodo Consultar, (que pra mim TRUE retorna que: a NFe foi localizada na base nacional e atualizada no componente),  caso tenham intenção de reproduzir isso que estou falando salve o xml antes da chamada ao metodo Enviar e depois tente consultar o mesmo...Obrigado.

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

@tiagosis o XML que você enviou anteriormente estava com quebras de linhas, pra salvar em banco aconselho você salvar ele no formato original.

O que eu havia sugerido é que você salvasse em pasta e anexasse os mesmo aqui, mas deixa pra la. Pra tirar suas duvidas será  mais fácil você pegar os demos do ACBr e testar por lá, o tipo de retorno que você mencionou "Sempre True" não procede em circunstancias normais e com a falta de detalhes não temos como te ajudar.

Link para o comentário
Compartilhar em outros sites

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