Estou trabalhando na geração de boletos pelo Pense Bank (mas o problema também ocorre com boletos de outros bancos) e percebi que o valor do desconto está incorreto na mensagem padrão de impressão quando utilizo tipos de desconto que operam com porcentagem.
Por exemplo, em um boleto de R$ 220,00 com desconto de 10%, o valor correto do desconto deveria ser R$ 22,00. No entanto, na impressão está dando um valor incorreto:
Depurando o código, verifiquei que os valores estão sendo enviados corretamente. O problema parece estar no cálculo realizado pelo método CalcularPercentualValor na unit ACBrBoleto.pas (esse método é chamado dentro do GerarMensagemPadraoDesconto). O trecho relevante do código está assim:
Acredito que o correto seria isso aqui:
Aqui é o método GerarMensagemPadraoDesconto, onde esse outro método é chamado:
Poderiam esclarecer o motivo desse cálculo estar implementado dessa forma ou confirmar se há, de fato, um erro?
Verificado na revisão 36519 .