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