Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado (editado)

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

Postado

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

  • Membros Pro
Postado

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

Postado (editado)

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

  • Consultores
Postado

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

Araraquara - A era dos Trólebus

  • Membros Pro
Postado

Í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 ?

 

Postado

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

  • Consultores
Postado

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

Araraquara - A era dos Trólebus

  • 2 anos depois...
  • Membros Pro
Postado

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.

Postado

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.

 

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

Postado

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

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

  • Membros Pro
Postado (editado)

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
Postado

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.

Postado

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.

Postado

Exatamente. Tenho um sistema para transportadoras onde o Conhecimento é preenchido com os dados da nota fiscal. Então a ideia é buscar os dados da nota fiscal e preencher os dados do conhecimento eletronico automaticamente.

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

@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.

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