caelum-stella icon indicating copy to clipboard operation
caelum-stella copied to clipboard

Problema com campos zerados na homologação do Bradesco

Open gabrielhof opened this issue 9 years ago • 1 comments

Gerei alguns boletos para o Bradesco. Tudo aparenta estar perfeito. Ao menos, quase tudo. O único problema é que o pessoal do Bradesco, que está homologando os boletos gerados, implica que os campos de descontos, deduções, multa e outros acréscimos devem estar em branco caso os valores desses campos sejam igual a zero.

Pensei em simplesmente passar null como parâmetro para os métodos comValorDescontos, comValorDeducoes, comValorMulta e comValorAcrescimos. Porém vi que esses métodos só aceitam String como parâmetro e dentro desses métodos é instanciado um BigDecimal:

public Boleto comValorDescontos(String valorDescontos) {
    this.valorDescontos = new BigDecimal(valorDescontos);
    return this;
}

Então, se passar null para esses caras, é NullPointerException na certa.

Minha única alternativa parece ser modificar o boleto-default.jasper e sobrescrever a classe GeradorDeBoleto. Alguém pode me dizer se existe outra alternativa para solucionar esse impedimento?

Agradeço desde já =)

gabrielhof avatar May 03 '15 01:05 gabrielhof

Oi @gabrielhof

Para manter a retrocompatibilidade acabamos por reutilizar as interfaces antigas da classe boleto, onde o retorno é BigDecimal. Hoje a única solução é sobreescrever o template limpando os locais onde os valores são impressos, e passar a referência para o GeradorDeBoleto.

Estava pensando nas possibilidades, talvez criar uma nova interface onde todos os retornos sejam String, para facilitar a customização dos valores do template. Também tivemos problemas com pessoas que queriam que os valores dos boletos fossem formatados (R$ 1.000,00, por exemplo) e a solução acaba sempre sendo sobreescrever o template.

O problema é fazer isso de alguma maneira que o código antigo continue funcionando.

mariofts avatar May 04 '15 18:05 mariofts