Jump to content

Delphi chamada_delphi.png acbr.png

C6 chamada_c6.png botao.png

Erro no arredondamento usando RoundABNT


Go to solution Solved by Daniel Simoes,
  • Este tópico foi criado há 1081 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Membros Pro

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

Link to comment
Share on other sites

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

Link to comment
Share on other sites

  • Fundadores
  • Solution

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
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

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

Link to comment
Share on other sites

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.