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

Implementar a validação de boletos #433

Open
ramiroluz opened this issue Oct 21, 2024 · 1 comment
Open

Implementar a validação de boletos #433

ramiroluz opened this issue Oct 21, 2024 · 1 comment

Comments

@ramiroluz
Copy link

ramiroluz commented Oct 21, 2024

Validar boletos.

Implementação da função is_valid_boleto:

  • Diversidade de formatos: Boletos podem ter diferentes formatos e layouts, dependendo do banco emissor e do sistema utilizado.
  • Informações essenciais: A função precisa criar um objeto boleto e validar a linha digitável, para isso serão necessárias informações relevantes como:
    • Data do documento
    • Data de vencimento
    • Data de processamento
    • Valor do documento
    • Agencia cedente
    • Conta cedente
    • Convenio
    • Nosso número
    • Número do documento

A função deve:

  • Validar: Verificar se a entrada é um boleto válido, utilizando os dígitos verificadores e a estrutura padrão.
  • Considerar:
    • Diversidade de formatos: A função deve ser capaz de lidar com diferentes formatos de boletos.
    • Validação robusta: A validação deve ser completa e abranger todos os aspectos relevantes.
    • Flexibilidade: A função deve ser flexível para atender a diferentes necessidades.

Exemplo de uso:

from brutils.boleto import Boleto, is_valid_boleto


boleto = Boleto(
    data_documento = datetime.date(2000, 7, 4)
    data_vencimento = datetime.date(2000, 7, 4)
    data_processamento = datetime.date(2012, 7, 11)
    valor_documento = 550
    agencia_cedente = '1102'
    conta_cedente = '9000150'
    convenio = 7777777
    nosso_numero = str(22832563 + i)
    numero_documento = str(22832563 + i)
)

resultado = is_valid_boleto(boleto.linha_digitavel)

print(resultado)
# Output:
# True

Considerações adicionais:

  • Biblioteca externa: Podemos considerar a utilização de uma biblioteca externa especializada em tratamento de boletos, como a boleto3 ou a pyboleto.
  • Documentação: A documentação da função deve ser clara e completa, explicando todos os parâmetros e o formato da saída.
  • Testes: É fundamental criar testes unitários abrangentes para garantir a qualidade da implementação.
@ramiroluz
Copy link
Author

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants