BoletoNet / BoletoNetCore

Versão do BoletoNet para .NET Core
MIT License
178 stars 116 forks source link

Metadados para Auxiliar no preenchimento dos boletos nos padrões #20

Open olavorn opened 5 years ago

olavorn commented 5 years ago

Os validadores para cada carteira e para cada banco estão escritos de forma declarativa no código. Isso dificulta a possibilidade de montar/limitar o nosso número que variam de banco pra banco, pois o arranjo delas muda, e no final só conseguimos validar pelo método ValidaBoleto.

Estou abrindo esta issue no sentido de discutirmos como melhorar essa abordagem pra possibilitar que tenhamos um conjunto de metadados, com máscaras e opções disponíveis para cada carteira de modo a facilitar a construção de uma interface de entrada de boleto em conformidade com a carteira selecionada.

olavorn commented 5 years ago

Pra ficar mais claro, um exemplo prático de função para Banco do Brasil por exemplo em pseudo-código.

Uma função que busca metadados a partir de uma carteira específica do banco do brasil poderia ter esta forma:

<F_BancoBrasil_17_011>  =>  
retorna {  
       UsaConvenio : true,
       UsaContrato: false,
       UsaAgenciaConta: false,
       PreencherNossoNumero: true,
       Convenios : [{
               Tamanho: 6,
               FormatoNossoNumero: "00000000000"
       },
       {
               Tamanho: 10,
               FormatoNossoNumero: "0000000"
       },

}