Geração do código de barras para carteira 17 com convenio de 7 posições para BB

82 views
Skip to first unread message

Gilvan André Gobbato

unread,
Jan 27, 2015, 12:30:41 PM1/27/15
to caelum-s...@googlegroups.com

Boa tarde.

Estou realizando alguns testes na geração de boletos com a biblioteca, porém encontrei um pequeno problema, que não sei se é erro meu ou da maneira como a biblioteca está gerando.

Ao utilizar a carteira 17 ele está gerando o código com 49 dígitos.

Depurei os fontes e percebi que ele está adicionando duas vezes o convenio no código gerado.
Ex: 001962510000044750000000 Convenio: 1234567 Convenio de novo: 234567 Número: 0000000011 Carteira: 17
Código completo com 49 posições: 0019625100000447500000001234567234567000000001117
Código completo com os dígitos verificadores fica com tamanho de 50 posições: 00197625100000447500000001234567234567000000001117

Verificando o código da Caelum, verifiquei que o problema pode ser este:

private String getNossoNumeroParaCarteiras17e18(Beneficiario beneficiario) {
int indice = beneficiario.getCarteira().equals(CARTEIRA_17) ? 1 : 7;
return getNossoNumeroFormatado(beneficiario).substring(indice);
}

Pois se a carteira é 17 está pegando um índice de 1, e na verdade deveria ser o índice de 7. Porem se alterar o código neste momento, poderá ocorrer problemas com outras carteiras. Por exemplo, com uma carteira 18, o código acima funciona perfeitamente, se alterado, ele não funciona mais. Não me aprofundei muito no problema, gostaria de saber se é um erro da biblioteca ou se eu estou utilizando ela incorretamente?

Obrigado


Reply all
Reply to author
Forward
0 new messages