Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Boleto #36

Open
mariohmol opened this issue Nov 21, 2019 · 4 comments
Open

Boleto #36

mariohmol opened this issue Nov 21, 2019 · 4 comments
Labels
enhancement New feature or request

Comments

@mariohmol
Copy link
Owner

No description provided.

@mariohmol mariohmol added the enhancement New feature or request label Dec 16, 2019
@sirbaconjr
Copy link

Validar boleto é um tanto complicado. Mas esse link explica tudo o que é necessário para entender.

https://tdn.totvs.com/pages/releaseview.action?pageId=421388789

Resumindo:

Montagem do campo código de barras base, posição 1 até a posição 19

  • Posições 1 a 3 com tamanho 3: Número oficial do banco (código Febraban).
  • Posição 4 com tamanho 1: Código da moeda que tem o valor 9.
  • Posição 5 com tamanho 1: Dígito verificar do código de barras.
  • Cálculo do dígito verificador do código de barras executado utilizando as informações anteriores no cálculo do "módulo 11". O valor gerado será inserido na posição definida para o dígito verificador (posição 5).
  • Posições 6 a 9 com tamanho 4: Fator de vencimento calculado pela subtração da data de vencimento informada no boleto menos a data 07/10/1997 (estabelecida pela Febraban).
  • Posições 10 a 19 com tamanho 10: Valor nominal do título.

Montagem do campo livre do código de barras, posição 20 até a posição 44:

  • O processamento deste campo será detalhando para cada banco conforme as regras do mesmo.

@mariohmol
Copy link
Owner Author

muito top esse link!!!!

entao pra cada banco terá regra diferentes? vai da trampo ter todas a variacoes ne?

talvez fazer agora um genérico e depois criar issues pra implementar as especificidades dos bancos?

@sirbaconjr
Copy link

Creio que sim, faz um genérico que valida da posição 1 a 19. Aí não validamos o resto. Depois dá para abrir uma issue com a lista de todos os bancos que devem ser suportados e ir adicionado um por um. Sem pressa.

@mariohmol
Copy link
Owner Author

Regex pros 44 generico:

(?<banco>\d{3})(?<moeda>\d{1})(?<verificador>\d{1})(?<vencimento>\d{4})(?<valor>\d{10})(?<mensagem>\d{25})

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants