Skip to content

Implementar formatação de boletos #435

@ramiroluz

Description

@ramiroluz

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions