Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado

Bom dia a todos!

Estou com a seguinte situação: algumas vezes o XML retornado no envio da NFC-e vem vazio (0 Kb), mas não dá nenhum erro, então o meu sistema grava tudo normalmente, e o erro só é detectado posteriormente, quando os XMLs do cliente são enviados para a contabilidade. Já verifiquei várias vezes a minha rotina em busca de furos, mas infelizmente ainda não consegui detectar a fonte do problema.

Nesse caso, como não tenho o XML, mas tenho a chave da nota e protocolo de envio, existe alguma forma de recuperar o XML via programação?

  • Consultores
Postado

Bom dia Clerisonb,

Sim, temo como, mas você precisa descobrir o que esta ocorrendo.

Uma dica é atribuir o valor True a propriedade de configuração: Configuracoes.WebServices.Salvar

Desta forma os arquivos de envio e de retorno serão salvos sem nenhum tratamento realizado pelo componente, dai é possível descobrir o problema.

É importante informar sempre um numero de Lote sequencial para que seja possível o rastreamento.

Para recriar basta gerar novamente o XML com os dados da venda e assinar o mesmo.

Para isso basta alimentar o componente com os dados da respectiva venda e depois executar o método Assinar.

Em seguida execute o método Consultar.

Se a nota foi realmente gerada, enviada e autorizada pela primeira vez, ao executar o método Consultar será acrescentado ao XML assinado o protocolo de autorização.

Pronto você tem agora o XML da NFC-e com validade jurídica exatamente igual o que foi enviado da primeira vez.

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

Postado (editado)
2 horas atrás, Italo Jurisato Junior disse:

Bom dia Clerisonb,

Sim, temo como, mas você precisa descobrir o que esta ocorrendo.

Uma dica é atribuir o valor True a propriedade de configuração: Configuracoes.WebServices.Salvar

Desta forma os arquivos de envio e de retorno serão salvos sem nenhum tratamento realizado pelo componente, dai é possível descobrir o problema.

É importante informar sempre um numero de Lote sequencial para que seja possível o rastreamento.

Para recriar basta gerar novamente o XML com os dados da venda e assinar o mesmo.

Para isso basta alimentar o componente com os dados da respectiva venda e depois executar o método Assinar.

Em seguida execute o método Consultar.

Se a nota foi realmente gerada, enviada e autorizada pela primeira vez, ao executar o método Consultar será acrescentado ao XML assinado o protocolo de autorização.

Pronto você tem agora o XML da NFC-e com validade jurídica exatamente igual o que foi enviado da primeira vez.

Italo, antes de tudo, obrigado pela ajuda!

Os XMLs de envio ao qual você se refere seriam aqueles que são  nomeados da seguinte forma: "2028-env-lot.xml" ?

Então nesse caso bastaria eu alimentar o componente com ele, assinar e logo em seguida consultar, e depois disso eu já poderia chamar o método de salvar o xml na para que o mesmo seja salvo na pasta final já com os dados corretos?

EDIT !!!!

Fui verificar os arquivos de envio das notas que estão com xml vazio, e para minha surpresa e infelicidade, todos estão com um conteúdo estranho, como se não tivessem sido gerados corretamente. Outra coisa que notei foi que em todos, o arquivo de retorno do protocolo veio com cStat = 104 (Lote processado). Eu não testo esse retorno no meu código para saber se ocorreu tudo bem. Eu testo apenas o cStat = 100. 

Alguém poderia me dar uma luz?

1900-pro-lot.xml

1900-env-lot.xml

1901-env-lot.xml

1901-pro-lot.xml

Editado por clerisonb
Anexando arquivos
  • Consultores
Postado

Boa tarde Clerisonb,

O arquivo *-pro-lot.xml contem 2 TAGs chamadas cStat.

A primeira informa o status do processamento do lote, que no caso tem que ser 104 = Lote Processado com Sucesso.

Já a segunda informa o status do processamento da nota, que no caso tem que ser 100 = Autorização de Uso.

Os arquivos *-env-lot.xml se trata do arquivo de envio do lote, o componente não possui nenhum método capaz de carregado-lo para ser enviado novamente.

Repito, você tem que ler o arquivo *-nfe.xml (assinado e sem o protocolo de autorização) usando para isso o método LoadFromFile da seguinte forma:

LoadFromFile(xNomeXML, False); 

O segundo parâmetro ( False ) diz ao método que o objetivo é apenas ler o conteúdo do XML que precisa estar assinado.

Depois basta executar o método Consultar.

Agora se você não tem o arquivo *-nfe.xml a solução é:

Ler os dados da venda do banco de dados para alimentar o componente.

É preciso garantir que o valor de cNF tem que ser exatamente o mesmo de quando o nota foi gerada pela primeira vez.

Após alimentar o componente, devemos executar o método Assinar e em seguida o Consultar.

Não confunda nNF com cNF, o primeiro se refere ao numero da Nota Fiscal, já o segundo se refere ao código aleatório da Nota Fiscal.

O numero da NF tem 9 dígitos já o código da NF tem apenas 8 dígitos.

Muitos atribuem o valor de nNF a cNF, isso esta errado por 2 motivos.

Primeiro, o que você vai fazer quanto o numero da NF chegar a ter 9 dígitos?

Segundo, a SEFAZ recomenda que seja um código aleatório por motivos de segurança para o próprio emitente da NF.

Dica: quando for salvar no banco de dados os dados da NF, acrescente mais uma campo na tabela.

Esse campo pode se chamar CodigoNF e ser do tipo Inteiro.

Na sua aplicação faça com que seja gerado um numero com 8 dígitos, utilize para isso a função Random.

Quando for alimentar o componente leia o valor do campo CodigoNF e atribua a propriedade cNF do componente.

 

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

Postado

Então resumindo, é impossível refazer esses XMLs? Pois como falei, os arquivos " -nfe.xml" estão vazios. E como nunca salvei esse campo cNF, não tenho como saber qual número foi enviado. Então posso esquecer e dar a péssima notícia ao cliente, ou será que existe esperança?? rsrs

  • Moderadores
Postado
1 hora atrás, clerisonb disse:

Então resumindo, é impossível refazer esses XMLs? Pois como falei, os arquivos " -nfe.xml" estão vazios. E como nunca salvei esse campo cNF, não tenho como saber qual número foi enviado. Então posso esquecer e dar a péssima notícia ao cliente, ou será que existe esperança?? rsrs

Se você tem a chave da nota como disse no primeiro post, basta pegar o cNF dela. Os dígitos na posição 36 a 43 correspondem ao cNF.

  • Curtir 1
Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

Postado
9 minutos atrás, BigWings disse:

Se você tem a chave da nota como disse no primeiro post, basta pegar o cNF dela. Os dígitos na posição 36 a 43 correspondem ao cNF.

Opa! Não sabia!! Obrigado pela dica amigo! Vou ver o que consigo aqui.

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