Skip to content

Arquitetura da biblioteca #10

Description

@renatonlima

Olá pessoal,

Recentemente eu comecei a refatorar e a implementar algumas melhorias na lib, pensando nisso eu gostaria de fazer algumas propostas para a arquitetura da lib, hoje devida a extração das funções do módulo l10n_br_base do Odoo acabou mantendo a mesma estrutura dos arquivos e acabou ficando não muito organizado, pensando na futura expansão da lib, descrevi dois pontos básicos:

Finalidade da lib

É importante definirmos um escopo para o objetivo da lib, isso é importante para a arquitetura da lib e futuramente em sua evolução, inicialmente eu vejo este escopo:

  • Implementar funções de validações de números de documentos existentes no Brasil como: CPF, CNPJ, IE, PIS, Chave de NF-e, Chave de CT-e e etc.

  • Implementar funções de formatação quando existente dos números dos documentos descritos acima.

Proposta de estrutura da Lib

  • erpbrasil.base/fiscal - Pasta contendo funções fiscais:

    • ie.py: Inscrição Estadual;
    • cpf_cnpj.py: CPF / CNPJ;
    • pis.py: PIS/PASEP;
    • nfe.py: NF-e (Funções para gerar chave e formatar chave e etc);
    • cte.py: CT-e (Funções para gerar chave e formatar chave e etc);
    • sat.py: SAT (Funções para gerar chave e formatar chave e etc).
  • erpbrasil.base:

    • util.py: Funções comum usada para a validação em geral como o calculo do modulo11 modulo10, remoção de pontuação e outras funções auxiliares;
    • excecoes.py: Contendo classes de exceções da lib.
  • erpbrasil.base/ibge:

    • estado.py: (Contendo constantes de siglas de UFs e Número dos estados, validação de numeros e sigals.
  • erpbrasil.base/correios:

    • cep.py: Contento funções de validação de CEP e formatação de CEP.
  • erpbrasil.base/financeiro:

    • cnab.py: Contendo funções para a geração do nosso número para cada banco.

Gostaria de saber a opinião de vocês e sugestões

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions