caelum / caelum-stella

O Caelum Stella visa suprir as necessidades do dia a dia do desenvolvedor brasileiro

Home Page:http://stella.caelum.com.br

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

CodigoDeBarrasBuilder utiliza o valorDoBoleto e não o valorCobrado

robsonrosa opened this issue · comments

Ao gerar um boleto que utiliza acréscimos e descontos, o "valor total" do boleto é alterado de acordo com o método getValorCobrado, que faz o devido cálculo do valor a ser cobrado.

valorCobrado = valorDoBoleto + valorAcrescios - valorDescontos;

A classe CodigoDeBarrasBuilder utiliza o método getValorFormatado do Boleto para gerar o código de barras com o valor do boleto. No entanto, o método getValorFormatado formata e retorna apenas o valorDoBoleto, e não o valorCobrado, ou seja, o "Valor do Total" do boleto, aquele que deve ser pago, é diferente no código de barras e na linha digitável. Questiono se o método getValorFormatado não deveria retornar algo como:

return String.format("%011.2f", this.getValorCobrado()).replaceAll("[^0-9]", "");

Exemplo gerado atualmente:

stella-boleto

Existe uma forma de gerar o código de barras / linha digitável, de acordo com o Valor Cobrado, ao invés do Valor do Documento?

Oi @robsonrosa

Eu acho que era assim antes, e pediram para alterar. De qualquer maneira, você pode extender a classe Boleto, e sobreescrever o método getValorFormatado, com o código que você postou aqui, isso será suficiente para que o código de barras seja corrigido. Isso vai alterar tanto o código de barras quanto a linha digitável.

Depois de muito tempo @mariofts

Passei pelo mesmo problema de novo e lembrei desse post. A solução adotada nos dois casos foi tua sugestão. Obrigado.