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 formatação de boletos #435

Open
ramiroluz opened this issue Oct 21, 2024 · 0 comments
Open

Implementar formatação de boletos #435

ramiroluz opened this issue Oct 21, 2024 · 0 comments
Labels

Comments

@ramiroluz
Copy link

Título: Implementar formatação de boletos

Descrição:

Proponho a criação de uma nova função, format_boleto, para formatar strings de boletos de acordo com padrões definidos.

Justificativa:

A formatação de boletos é uma tarefa comum em diversas aplicações financeiras e contábeis. Ao incluir essa funcionalidade na biblioteca, facilitamos o desenvolvimento de soluções que envolvam o processamento de boletos.

Funcionalidades:

  • Formatação: Converter um objeto boleto em uma linha digitável.
  • Validação: Verificar se a entrada é válida de acordo com as regras do formato escolhido.
  • Tratamento de erros: Retornar None para entradas inválidas.

Documentação:

A função terá uma docstring detalhada, incluindo:

  • Descrição da função.
  • Parâmetros de entrada.
  • Valor de retorno.
  • Exemplos de uso.
  • Casos de uso.

Testes unitários:

Serão criados testes unitários para cobrir os seguintes cenários:

  • Entradas válidas: Diferentes formatos de boletos válidos.
  • Entradas inválidas: Boletos com dados faltantes, inválidos ou em formatos não suportados.
  • Limites: Testar os limites da função (e.g., tamanho máximo da string, valores numéricos).

Exemplo de implementação (inicial):

def format_boleto(boleto_string: str) -> str:
    """Formata uma string de boleto.

    **Args:**
        boleto_string (str): A string representando o boleto.

    **Returns:**
        str: A string formatada, ou None se a entrada for inválida.

    **Raises:**
        NotImplementedError: A implementação da lógica ainda está pendente.

    **Exemplo:**
        >>> 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)
       ... )
        >>> format_boleto(boleto)
        '04192.11107 29000.150226 83256.340593 8 10010000055000'
    """

    # Implementar a lógica da função aqui

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

No branches or pull requests

2 participants