Duplicidade de Hora em Série e Autorização NFCe - NFC-e - Nota Fiscal do Consumidor Eletrônica - Projeto ACBr
Duplicidade de Hora em Série e Autorização NFCe
By Armando Soares da Silva,
January 9, 2021 in NFC-e - Nota Fiscal do Consumidor Eletrônica
Go to solution Solved by Armando Soares da Silva, January 11, 2021
Este tópico foi criado há 372 dias atrás.
Armando Soares da Silva 0
Boa tarde, esse é meu primeiro tópico, espero que esteja no local correto.
Há muitos anos cursei Delphi e estou voltando aos poucos para o desenvolvimento, então desde já, estou com conhecimento limitado.
Adquiri um Fonte para ir finalizando e tento maior contato novamente e me deparei com a seguinte situação:
A hora está duplicada em Série e em Data de autorização. Já vasculhei a parte fiscal e até agora não consegui um norte para encontrar esse erro.
O ACBr está atualizando, bem como o Fortes. O layout do Fortes está correto, não duplicidade de código. Um detalhe muito importante é que o XML está correto, não há nenhum erro em sua emissão, está autorizando normal e todas as tags obrigatórias estão atendidas.
Alguém poderia me dizer pelo menos um caminho onde devo procurar ? Visto que está gerando normal o XML e o layout não está errado. Desde já agradeço.
Anexo da Danfe.
Desconheço seus fontes mas a partir do exemplo do svn tu consegue ter um norte.
geralmente é dados diferentes, hora etc. que fazem dar a duplicidade. então pegue o xml da duplicidade e tente baixar o xml do sefaz pra tu ver a diferença
Amigo, primeiramente obrigado pela resposta.
Como havia dito, o XML está correto, NFC-e e NFe estão implementados, apenas a DANFE da NFC-e que está com esse problema.
Dei mais uma vasculhada e descobri o que está acontecendo, porém ainda não sei como resolver.
Na hora de ir buscar o dados, ele está buscando em pcnProcNFe, então ele busca tanto a data/hora de autorização de emissão quanto de autorização; segue o código.
if not EstaVazio(Trim(procNFe.nProt)) then
lProtocolo.Visible := True;
lProtocolo.Caption := ACBrStr('Protocolo de Autorização: '+procNFe.nProt);
if (procNFe.dhRecbto<>0) then
lDataAutorizacao.Visible := True;
lDataAutorizacao.Caption := ACBrStr('Data de Autorização ' +DateTimeToStr(procNFe.dhRecbto));
lDataAutorizacao.Visible := False;
lProtocolo.Caption := '';
lProtocolo.Visible := False;
lDataAutorizacao.Caption := '';
Acontece que lá está assim;
'<dhRecbto>' + FormatDateTime('yyyy-mm-dd"T"hh:nn:ss', FdhRecbto) + IIf(Versao >= '3.10', GetUTC(xUF,FdhRecbto),'')+'</dhRecbto>'+
Então acredito que na hora de transformar em String, tá ficando essa embolada. Como poderia corrigir essas datas ?
Já modifiquei para DateToString e fica do mesmo jeito. Tentei TimeToString e a hora veio correta, porém sem a data.
Pode ser a configuração geral do formato de data e hora do Windows, já verificou?
O problema só acontece na impressão da NFCe?
Então amigo, obrigado pela resposta.
A NFe está ok, sai correto. Esse problema está sendo só na NFCe.
Se eu usar apenas TimeToStr a hora sai correta. Se eu usar DateToStr sai "Corretamente", porém na hora sai um 24 misturado. Se usar DateTimeToStr sai aquela bagunça. Vou anexar as imagens.
Mas você verificou as configurações do Windows?
Se você chamar o DateTimeToStr(Now) em um projeto novo, qual o retorno?
Verifiquei sim amigo, tanto na maquina virtual quanto nas minhas maquinas aqui, estou testando em 3 maquinas físicas.
Ele retorna 11/01/2021 17:14:45
Edited January 11, 2021 by Armando Soares da Silva
Como você mesmo viu no código do DANFE só é chamada a DateTimeToStr(), é uma função nativa do Delphi/Lazarus.
Tente imprimir o DANFE NFCe pelo programa exemplo do componente.
Se sair correto significa que é algo no seu projeto que está interferindo.
Aí vai precisar depurar.
Amigo, agradeço sua ajuda. Confesso que já estava pensando em desistir, faz uma semana que rodo todo esse fonte em busca desse erro, e graças a Deus encontrei e corrigi.
Aproveitando o post, virão algumas atualizações por parte da Sefaz, como Ator Interessado. Terei muitos problemas na implementação dos mesmos, visto que não tenho tanta experiência e estou tendo que reaprender tudo novamente ?