Olá bom dia.
Cliente relatou um problema no Boleto, referente a taxa de juros.
Hoje nessa função está errada, já que cjValorMensal não deveria ser % ao mês e sim Valor por Mês.
O mesmo pra quando for cjTaxaDiaria, ele coloca como sendo valor diario. Unit ACBrBoleto.
function TACBrBoleto.GerarMensagemPadraoJuros(ATitulo: TACBrTitulo): String;
var ATipoJuros,AJurosQuando : String;
begin
if (ATitulo.CodigoMoraJuros = [cjTaxaMensal, cjValorMensal]) or (ATitulo.CodigoMora = '2') or (ATitulo.CodigoMora = 'B') then
ATipoJuros := FloatToStr(ATitulo.ValorMoraJuros) + '% ao mês'
else
ATipoJuros := FormatFloatBr(ATitulo.ValorMoraJuros, 'R$ #,##0.00 por dia');
if ATitulo.DataMoraJuros <> 0 then
begin
if ATitulo.Vencimento = ATitulo.DataMoraJuros then
AJurosQuando := 'após o vencimento'
else
AJurosQuando := 'a partir de '+FormatDateTime('dd/mm/yyyy',ATitulo.DataMoraJuros);
end;(* else
AJurosQuando := ' por dia de atraso';*) //TK-4612
Result := ACBrStr(Format('Cobrar juros de %s de atraso para pagamento %s.',[ATipoJuros,AJurosQuando]));
end;
Segue correção do código
function TACBrBoleto.GerarMensagemPadraoJuros(ATitulo: TACBrTitulo): String;
var ATipoJuros,AJurosQuando : String;
begin
if (ATitulo.CodigoMoraJuros = cjTaxaMensal) or (ATitulo.CodigoMora = '2') or (ATitulo.CodigoMora = 'B') then
ATipoJuros := FloatToStr(ATitulo.ValorMoraJuros) + '% ao mês'
else if (ATitulo.CodigoMoraJuros = cjValorDia) then
ATipoJuros := FormatFloatBr(ATitulo.ValorMoraJuros, 'R$ #,##0.00 por dia')
else if (ATitulo.CodigoMoraJuros = cjValorMensal) then
ATipoJuros := FormatFloatBr(ATitulo.ValorMoraJuros, 'R$ #,##0.00 ao mês')
else if (ATitulo.CodigoMoraJuros = cjTaxaDiaria) then
ATipoJuros := FloatToStr(ATitulo.ValorMoraJuros) + '% ao dia';
if ATitulo.DataMoraJuros <> 0 then
begin
if ATitulo.Vencimento = ATitulo.DataMoraJuros then
AJurosQuando := 'após o vencimento'
else
AJurosQuando := 'a partir de '+FormatDateTime('dd/mm/yyyy',ATitulo.DataMoraJuros);
end;(* else
AJurosQuando := ' por dia de atraso';*) //TK-4612
Result := ACBrStr(Format('Cobrar juros de %s de atraso para pagamento %s.',[ATipoJuros,AJurosQuando]));
end;