Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

  • Membros Pro
Postado

Bom dia a todos,

 

Tive um problema com a validação de uma NF-e que achei bem estranho.

O Componente está devolvendo um aviso de que o valor da nota, o valor dos produtos, a base de ICMS e o valor da fatura estão com mais que duas decimais.

Só que o valor não tem mais que duas decimais, o valor é de R$ 554.399,81.

Fazendo um debug chegei ao problema, isso esta ocorrendo na unit pcnGerador na linha 728 a 731, nesse ponto é utilizada a rotina abaixo que devolve o valor incorreto. 554399,8100000001

 

 ConteudoProcessado  := FormatFloat('0.0000000000', valor);
  EstaVazio           := (valor = 0) and (ocorrencias = 0);
  if StrToIntDef(Copy(ConteudoProcessado, pos(DecimalSeparator, ConteudoProcessado) + NumeroDecimais + 1, 10),0) > 0 then
    walerta(ID, Tag, Descricao, ERR_MSG_MAXIMO_DECIMAIS + ' ' + IntToStr(NumeroDecimais));

 

Fiz vários testes e fazendo a seguinte alteração, resolve o problema.

  VlrExt:Extended; // declarar valiavel do tipo Extended
 

 

VlrExt := StrToFloat(Valor); // esse comando faz o ajuste

ConteudoProcessado := FormatFloat('0.0000000000', VlrExt); // associado a este

EstaVazio := (valor = 0) and (ocorrencias = 0);
if StrToIntDef(Copy(ConteudoProcessado, pos(DecimalSeparator, ConteudoProcessado) + NumeroDecimais + 1, 10),0) > 0 then
walerta(ID
, Tag, Descricao, ERR_MSG_MAXIMO_DECIMAIS + ' ' + IntToStr(NumeroDecimais));

 

 

Espero ter contribuido. 

 

 

 

  • Curtir 1
  • 2 semanas depois ...
  • 5 meses depois ...
  • Membros Pro
Postado

Olá,

 

Tive o mesmo problema passando o valor '2421268,06' para a tag vprod.

 

Após a chamada em pcnNFeW:

  Gerador.wCampo(tcDe2, 'I11 ', 'vProd   ', 00, 15, 1, nfe.Det.Prod.vProd, DSC_VPROD);
 

a unit pcnGerador recebia '2421268.0600' em valor. Porém, a linha 

 

ConteudoProcessado  := FormatFloat('0.0000000000', valor),

 

gerava '2421268.0600000001' causando erro na geração do XML.

 

Após a correção do colega  ademar-datalan, o problema deixou de ocorrer.

 

Porém eu baixei a versão atualizada da unit pcnGerador e as linhas ref. a esta correção estão comentadas. Porque?

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