caelum / caelum-stella

O Caelum Stella visa suprir as necessidades do dia a dia do desenvolvedor brasileiro
http://stella.caelum.com.br
663 stars 340 forks source link

Cálculo do dígito do Nosso Número #227

Open Rafael-Simonelli opened 6 years ago

Rafael-Simonelli commented 6 years ago

Ao testar boletos com os bancos implementados, recebi um NullPointerException com net.sf.jasperreports.engine.JRException: Error retrieving field value from bean: nossoNumeroECodDocumento na pilha, apenas para o Itaú. Percebi que não enviei o dígito do nosso número, acertei e funcionou normalmente. Porém, verifiquei os fontes dos demais bancos está protegido e, inclusive o Santander possui método próprio para calcular o dígito.

Diante disso, gostaria de fazer as seguintes perguntas:

1- O Itaú obriga tal informação? Em caso positivo, não seria melhor lançar uma exception específica caso não esteja informado? Ou é apenas um caso de proteger caso não tenha sido informado? Não encontrei evidências no teste unitário que o método deveria falhar caso não fosse informado

2- Por que apenas o Santander calcula caso não seja informado? Os demais bancos não obrigam?

3- Se os demais bancos também precisam de tal informação, por que não calculam? Repetir o cálculo por banco em cada aplicação que consome o Stella me parece algo que poderia ser evitado, centralizando em cada classe de banco. Existe já alguma classe para isso?

Obrigado.

angeliski commented 6 years ago

Opa @Rafael-Simonelli Vou tentar verificar isso pra você ok? Se você conseguir localizar essas respostas nos manuais do banco, compartilha com a gente também :)

HosanaTrabalho2018 commented 1 year ago

1 - O nosso número para o Itaú é de livre utilização do usuário, seguindo as regras da carteira do produto contratado. É obrigatório para carteira 109. Não pode ser repetido se nosso número ainda estiver ativo ou tiver menos de 45 dias de sua baixa/liquidação.

À luz disso, acredito que não deveria ser obrigatório no Itaú, a não ser que a carteira seja 109.