Jump to content

Compre o Delphi
Com até 30% de desconto
e parcelado em até 12x sem juros

Saiba Mais

Balança SM100 performance surpreendente

Tecnologia Japonesa   Teclado e Visor resistentes a água
Consumo inteligente de etiquetas   Baixo custo de manutenção
Comunicação Ethernet e WIFI independentes

Saiba mais

Impressora de Etiquetas ELGIN - L42 PRO

Protocolos PPLA, PPLB, ZPL, EPL (automático)
Porta USB padrão Opcionais: Ethernet, Serial, Paralela
Sensor de Etiquetas Móvel Garantia de 18 meses

Saiba mais

Edevair Viesa Junior

ANSWERED Erro no arredondamento usando RoundABNT

Recommended Posts

Boa tarde. Pessoal estou passando por um problema que parece não ter fim, toda hora uma situação diferente e meus clientes reclamando muito com estes erros, é o seguinte, eu uso a função RounABNT do ACBr para gravar informações no banco de dados e gerar o XML do sat.

Eu tenho um exemplo que está acontecendo neste momento (lembrando que é um BD de testes)

Tenho 2 produtos diferentes na venda :

Produto A - Valor Unitário R$ 14,90 - Qtd 1,550 Kg = R$ 23,095

Produto B - Valor Unitário R$ 34,90 - Qtd 2,168 Kg = R$ 75,6632

Usando o RoundABNT os valores arredondados para duas casas decimais ficam respectivamente R$ 23,09 e R$ 75,66 e totalizando R$ 98,75

Pois bem, porém quando eu gero o XML, quem calcula os subtotais e total é o sat e no sat os valores são respectivamente R$ 23,10 e R$ 75,66 e totalizando R$ 98,76, conforme xml em anexo.

Ao validar o xml retorna o erro

Citar

Código do Retorno : 6010

Retorno : Erro de validação do conteúdo

Retorno Str: 565794|06010|1408|Rejeição: Valor total do CF-e-SAT maior que o somatório dos valores de Meio de Pagamento empregados em seu pagamento.||

Mensagem de Retorno : Rejeição: Valor total do CF-e-SAT maior que o somatório dos valores de Meio de Pagamento empregados em seu pagamento.

Mensagem SEFAZ : 

Código do Erro : 1408

Erro : Valor total do CF-e-SAT maior que o somatório dos valores de Meio de Pagamento empregados em seu pagamento

Porém como a soma no sistema ficou R$ 98,75 o valor informado pago fica com R$ 0,01 menor e gera o erro. Como resolvo esta situação ?

Erro retorno do sat (no log gerado pelo sat) :

Citar

31/05/19 16:02:50:561 - NumeroSessao: 565794 - Resposta:565794|06010|1408|Rejeição: Valor total do CF-e-SAT maior que o somatório dos valores de Meio de Pagamento empregados em seu pagamento.||

Alguém ja passou por isso ??

Muito Obrigado !

000000000002028.xml

Edited by Edevair Viesa Junior
Faltou informações

_____________________________________

Junior - Rhovanion Tecnologia

(11) 4224.6543

Share this post


Link to post
Share on other sites

O SAT exige Truncamento...

Arredondamento só é permitido no SAT para venda de combustíveis 

  • Like 1

Consultor SAC ACBr

Daniel Simões de Almeida
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Share this post


Link to post
Share on other sites
3 minutos atrás, Daniel Simoes disse:

O SAT exige Truncamento...

Arredondamento só é permitido no SAT para venda de combustíveis 

Hummm.. Acho que a informação não procede....

Se usar truncamento neste caso que citei acima, os valores ficam diferentes também...

Citar

Produto A - Valor Unitário R$ 14,90 - Qtd 1,550 Kg = R$ 23,095 usando trunc fica R$ 23,09

Produto B - Valor Unitário R$ 34,90 - Qtd 2,168 Kg = R$ 75,6632 usando trunc fica R$ 75,66

E fica extamente como se tivesse usado RoundABNT somando o total R$ 98,75 gerando o erro !!!

o problemas está neste arredondamento :

Produto A - Valor Unitário R$ 14,90 - Qtd 1,550 Kg = R$ 23,095

O RoundABNT arredonda para R$ 23,09 ficando igual ao trunc porém no sat o valor calculado fica R$ 23,10 conforme imagem do comprovante em anexo.

Fiz um teste informando R$ 0,01 a mais na forma de pagamento e o cupom foi gerado !!!

20190531_171322.jpg


_____________________________________

Junior - Rhovanion Tecnologia

(11) 4224.6543

Share this post


Link to post
Share on other sites

Realmente me enganei... o Truncamento é mandatório no caso de combustíveis...

21 horas atrás, Edevair Viesa Junior disse:

O RoundABNT arredonda para R$ 23,09 ficando igual ao trunc porém no sat o valor calculado fica R$ 23,10 conforme imagem do comprovante em anexo.

parece haver algum erro no seu código...  o teste abaixo, é executado com sucesso...  (testei no Lazarus e no Delphi 7)

  dblTotal := 14.90 * 1.550;
  CheckEquals( 23.10, RoundABNT(dblTotal, 2), 0.00001);  

Verifique se você realmente está usando o RoundABNT, ou se outra rotina muda o valor

O RoundABNT usa a regra desse documento...

http://svn.code.sf.net/p/acbr/code/tools/Diversos/ABNT NBR-5891 Regras de arredondamento e numeração decimal.pdf

  • Like 2

Consultor SAC ACBr

Daniel Simões de Almeida
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Share this post


Link to post
Share on other sites

×
×
  • Create New...