caelum-stella
caelum-stella copied to clipboard
Problema com campos zerados na homologação do Bradesco
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á =)
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.