Open Rafael-Simonelli opened 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 :)
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.
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.