Modelando um ERP [004]. Cadastros Base | by Albert Eije Barreto Mouta | Medium

Modelando um ERP [004]

Cadastros Base


Image for post
Image for post

Esse artigo faz parte de uma série que mostra como levantar os requisitos e modelar um sistema ERP. Leia os artigos na sequencia. Veja a lista completa de artigos no seguinte link: http://www.alberteije.com/blog


Introdução

Este artigo introduzirá o primeiro módulo do ERP: Cadastros Base. Analisaremos os requisitos deste módulo e mostraremos a modelagem dos dados, as tabelas, seus relacionamentos e campos.

A ideia é que, no final do processo, você, leitor, consiga compreender como funciona um ERP desde sua concepção através dos requisitos apresentados nos artigos e que possa construir o seu próprio ERP utilizando as tecnologias que mais lhe agradam ou que já está acostumado a utilizar: bancos de dados, linguagens, etc.

Exemplos de Modularização

Temos vários ERPs disponíveis no mercado. Cada um costuma seguir uma linha de raciocínio ao separar e classificar seus módulos, mais ou menos de forma parecida. Vejamos alguns exemplos:

Image for post
Image for post
ERP Mentor

Veja no exemplo acima como os módulos são divididos em blocos que são definidos do centro para fora. É possível ver que no bloco Suprimentos temos os módulos Compras, Recebimentos e Estoque, por exemplo.


Image for post
Image for post
Módulos de um ERP

No exemplo acima vemos novamente uma divisão entre blocos e módulos. Observe, por exemplo, o bloco Financeiro com os módulos Contas a Pagar, Contas a Receber e Tesouraria.


Image for post
Image for post
ERP — Exemplo de Blocos e Módulos

Na imagem acima temos mais um exemplo de separação de blocos e módulos para um ERP.

T2Ti ERP

A empresa T2Ti vem há 10 anos ensinando como desenvolver ERPs desde sua concepção até sua implementação em diversas linguagens.

Image for post
Image for post
Image for post
Image for post
T2Ti ERP 1.0

A primeira versão do T2Ti ERP foi dividida em seis blocos com um total de 24 módulos. Veja abaixo as explicações sobre cada bloco do T2Ti ERP 1.0.

Image for post
Image for post
T2Ti ERP 1.0 — Bloco Administrativo
Image for post
Image for post
T2Ti ERP 1.0 — Bloco Comercial
Image for post
Image for post
T2Ti ERP 1.0 — Bloco Financeiro
Image for post
Image for post
T2Ti ERP 1.0 — Bloco Contábil e Fiscal
Image for post
Image for post
T2Ti ERP 1.0 — Bloco Recursos Humanos
Image for post
Image for post
T2Ti ERP 1.0 — Bloco Suprimentos

Durante o desenvolvimento do treinamento T2Ti ERP 1.0 o aluno aprende como desenvolver os módulos acima em três linguagens distintas: Delphi, Java e C#. A aplicação é construída em três camadas com a arquitetura RIA, ou seja, o cliente é uma aplicação Desktop.

Image for post
Image for post

Este treinamento se encontra disponível para ser estudado gratuitamente no site da T2Ti no seguinte link:


Image for post
Image for post
T2Ti ERP 2.0

O T2Ti ERP 2.0 foi lançado a seguir com mais módulos e mais uma linguagem. São 42 módulos e a linguagem introduzida foi o Lazarus. Veja abaixo as explicações sobre cada bloco do T2Ti ERP 2.0.

Image for post
Image for post
T2Ti ERP 2.0 — Bloco Administrativo
Image for post
Image for post
T2Ti ERP 2.0 — Bloco Comercial
Image for post
Image for post
T2Ti ERP 2.0 — Bloco Financeiro
Image for post
Image for post
T2Ti ERP 2.0 — Bloco Contábil e Fiscal
Image for post
Image for post
T2Ti ERP 2.0 -Bloco Suprimentos
Image for post
Image for post
T2Ti ERP 2.0 — Bloco Recursos Humanos

O treinamento T2Ti ERP 2.0 está disponível para aquisição no site da T2Ti por um valor módico. Segue o link:


Durante o ano de 2020 a T2Ti está desenvolvendo o T2Ti ERP 3.0. A primeira fase deste treinamento é chamada T2Ti ERP Fenix, onde são construídos os primeiros 24 de 48 módulos.

Image for post
Image for post
T2Ti ERP Fenix

O cliente da aplicação é feito com o Flutter e são construídos 5 servidores nas linguagens: C#, Delphi, Java, Node e PHP.

Image for post
Image for post
T2Ti ERP Fenix — Flutter no Cliente e 5 Servidores

Mais detalhes sobre o T2Ti ERP 3.0 podem ser encontrados no link a seguir:


Cadastros Base

A construção de qualquer sistema passa pela fase de levantamento de requisitos e modelagem do banco de dados. Se essa fase for bem feita, o sistema será construído sobre uma base forte. Ainda mais importante essa fase se mostra na construção de um ERP.

O módulo Cadastros Base deve conter aqueles cadastros que servirão de base para o restante do ERP.

Podemos classificar tais cadastros da seguinte forma:

  • Dados informados pelo usuário: o usuário deve informar os dados que alimentarão as tabelas. Exemplo: cadastros dos clientes.
  • Dados preexistentes sem alteração: os dados dessas tabelas já existem e não podem ser excluídos ou alterados. Além disso, novos registros não podem ser incluídos pelo usuário. Exemplo: CFOP. Apenas a software house pode alimentar os dados dessa tabela.
  • Dados preexistentes com alteração: trata-se de uma tabela que já traz alguns dados, mas o usuário poderá inserir novos. Exemplo: tabela que armazena os tipos de pedido.

Você pode pensar em levantar logo todos os requisitos de um ERP colocando todos os possíveis cadastros base de uma vez só no papel, mas essa é uma tarefa muito complicada. É melhor você levantar os requisitos de cada módulo e identificar quais são os cadastros que podem ser utilizados por outros módulos, chegando assim aos cadastros base.

Por exemplo, você começa a pensar na parte financeira. Daí você enxerga o CLIENTE e o FORNECEDOR. Enxerga também o PRODUTO/SERVICO, pois a empresa deverá vender alguma coisa. Já temos três entidades. Mas, note que essas entidades serão utilizadas também em outros módulos do sistema. Precisaremos controlar os produtos em estoque. Ao comprar um item, precisaremos saber quem é o fornecedor. Ao vender um item precisaremos saber quem é o cliente.

Essas entidades fazem parte do Cadastros Base, pois são utilizadas no bloco financeiro, nos módulos controle de estoque, compras e vendas, etc.

A princípio, podemos separar os cadastros base em grupos, tais como:

  • Pessoal: Cadastro dos clientes, fornecedores, colaboradores, transportadoras, Contadores, Sindicatos, Convênios e outros.
  • Produto: Cadastro do produto e dos itens que envolvem o produto: Grupo, Subgrupo, Unidade, NCM, etc.
  • Financeiro: Cadastro dos dados financeiros básicos, tais como Banco, Agência, Conta/Caixa, Talonário, Cheque e outros.
  • Tabelas: Cadastros das tabelas usadas no ERP. Muitos desses cadastros possuem dados preexistentes e suas janelas existem apenas para consultas. Podemos citar as tabelas do Sped, Sefip, PIS, CST, CBO, CFOP, GPS, Salário Mínimo, CSOSN, Feriados etc.
  • Diversos: Setor, Almoxarifado, Operadora Plano Saúde, Operadora Cartão, País, Estado, Município, CEP etc.

Para estudar as tabelas do ERP, o leitor deverá instalar o software MySQL Workbench. Para saber mais detalhes sobre como modelar um banco de dados e como usar essa ferramenta, leia os artigos sobre Modelagem de Banco de Dados. Segue o link para o primeiro dos seis artigos:

Se você ainda não tem conhecimentos sobre modelagem, é imprescindível que leia a sequencia dos artigos acima. Instale o MySQL Workbench, explore a ferramenta.

Os arquivos criados pelo MySQL Workbench tem a extensão ‘mwb’. Você vai encontrar o DER do T2Ti ERP Fenix no Github com o nome ‘fenix.mwb’ e poderá estudar a modelagem de acordo com o que está sendo explicado nos artigos.

Segue o link para o github:

Abra o DER do Fenix e conheça as tabelas das regiões: “Grupo Dados Pré-Existentes”, “Grupo Pessoa”, “Grupo Colaborador”, “Grupo Financeiro”, “Grupo Empresa” e “Grupo Produto”.

Algumas tabelas possuem uma descrição informando o seu objetivo. Para isso, clique duas vezes na tabela desejada e acesse a opção “Comments”. Cada campo também possui um comentário no formato JSON. Esse comentário é utilizado para gerar automaticamente o servidor e o cliente da aplicação utilizando o Gerador de Código desenvolvido pela T2Ti.


Ao analisar o DER, o leitor observará as tabelas das seguintes entidades:

  • Cadastros do grupo Pessoa: Pessoa, Pessoa Física, Pessoa Jurídica, Cliente, Fornecedor, Transportadora e Contador. Vinculadas a Pessoa Física temos Estado Civil e Nível de Formação. Ainda vinculadas a Pessoa temos Endereços, Telefones e Contados.
  • Cadastros do grupo Colaborador: Colaborador, Cargo, Setor, Vendedor. Temos ainda as tabelas de controle de acesso: Usuário, Papel, Função e Papel/Função.
  • Cadastros do grupo Financeiro: Banco, Agência e Conta/Caixa.
  • Cadastros do grupo Empresa: Empresa, Contatos, Telefones e Endereços.
  • Cadastros do grupo Produto: Marca, Unidade, Grupo, Subgrupo e Produto.
  • Cadastros do Grupo Dados Pré-Existentes: UF, Município e CEP. NCM e CFOP. Tabelas CST: Cofins, ICMS, IPI e PIS. Tabela CSOSN. Ainda nesse grupo temos a tabela CNAE.

É possível que o módulo Cadastros Base receba ainda outras tabelas com o decorrer da implementação do ERP, principalmente no Grupo de Dados Pré-Existentes.

Vejamos agora uma breve descrição sobre cada tabela do módulo Cadastros Base.


Image for post
Image for post

CEP

Tabela que contém os CEPs do Brasil. Normalmente essa tabela é utilizada para consultas por telas da aplicação que precisam armazenar um endereço.

Image for post
Image for post

MUNICÍPIO

Relação dos Municípios (cidades) do Brasil.

Image for post
Image for post

UF

Relação de Estados (Unidades da Federação) do Brasil.

Image for post
Image for post

NCM

A Nomenclatura Comum do Mercosul (NCM) é uma convenção de categorização de mercadorias adotada desde 1995 pelo Uruguai, Paraguai, Brasil e Argentina e que toma por base o Sistema Harmonizado (SH). Este sistema de nomenclatura foi criado a fim de melhorar e facilitar o crescimento do comércio internacional, facilitando também a criação e comparação de estatísticas. Cada produto cadastrado na aplicação deve conter um código NCM.

Image for post
Image for post

CST ICMS

O Código da Situação Tributária (CST) é o valor que identifica a origem da mercadoria e a forma de tributação que deverá incidir sobre a mesma. Os contribuintes do Imposto sobre operações relativas à circulação de mercadorias e sobre prestações de serviços de transporte interestadual, intermunicipal e de comunicação (ICMS) são obrigados a informar nos campos próprios dos documentos fiscais que emitirem, o Código de Situação Tributária (CST) do ICMS.

Image for post
Image for post

CST IPI

Os contribuintes do Imposto sobre Produtos Industrializados (IPI) obrigados à Escrituração Fiscal Digital (EFD), comumente chada de Sped-Fiscal, e à emissão de Nota Fiscal Eletrônica (NF-e), deverão informar nos campos próprios dos respectivos arquivos XML, o Código de Situação Tributária (CST) do IPI nas operações que realizarem

Image for post
Image for post

CST PIS / COFINS

Os contribuintes das contribuições para o PIS/Pasep e para a Cofins obrigados à Escrituração Fiscal Digital (EFD), comumente chamada de Sped-Fiscal, e à emissão de Nota Fiscal Eletrônica (NF-e), deverão informar nos campos próprios dos respectivos arquivos XML, o Código de Situação Tributária (CST) dessas contribuições nas operações que realizarem.

A Secretaria da Receita Federal do Brasil (RFB), a seu critério, poderá utilizar-se do CST/PIS e da CST/Cofins em outras obrigações acessórias, para padronização, na prestação ou na manutenção, pelos contribuintes, de informações relativas às operações de que participem.

Image for post
Image for post
Image for post
Image for post

CSOSN

O CSOSN (Código de Situação da Operação do Simples Nacional) é uma numeração criada pelo governo e utilizada por empresas optantes pelo Simples Nacional. É um código tributário utilizado nas notas emitidas por empresas do Simples Nacional e identifica qual o tipo de operação registrada no documento fiscal.

Image for post
Image for post

CFOP

O CFOP (Código Fiscal de Operações e de Prestações das Entradas de Mercadorias e Bens e da Aquisição de Serviços) é um código do sistema tributarista brasileiro, determinado pelo governo. É indicado nas emissões de notas fiscais, declarações, guias e escrituração de livros. É utilizado em uma operação fiscal e define se a nota emitida recolhe ou não impostos, movimento de estoque e financeiro.

O CFOP é, em sua maioria, composto por quatro dígitos, onde o primeiro (prefixo) determina a natureza da operação, ou seja, se é entrada ou saída de mercadorias. Por sua vez o sufixo determina o código de Situação Tributária.

Prefixos

1 — Entrada de Mercadoria ou Aquisição de Serviços de dentro do Estado.
2 — Entrada de Mercadoria ou Aquisição de Serviços de fora do Estado.
3 — Entrada de Mercadoria ou Aquisição de Serviços do Exterior.
4 — Prefixo não utilizado
5 — Saída de Mercadoria ou Prestação de Serviços para dentro do Estado.
6 — Saída de Mercadoria ou Prestação de Serviços para fora do Estado.
7 — Saída ou prestações de serviços para o exterior

Image for post
Image for post

CNAE

A CNAE (Classificação Nacional de Atividades Econômicas) é a classificação oficial adotada pelo Sistema Estatístico Nacional do Brasil e pelos órgãos federais, estaduais e municipais gestores de registros administrativos e demais instituições do Brasil.

A CNAE é o instrumento de padronização nacional dos códigos de atividade econômica e dos critérios de enquadramento utilizados pelos diversos órgãos da Administração Tributária do Brasil. Essa classificação aplica-se a empresas privadas ou públicas, estabelecimentos agrícolas, organismos públicos e privados, instituições sem fins lucrativos e agentes autônomos (pessoa física).

Image for post
Image for post

DIA PARCELA

Tabela que armazena os dias que podem ser utilizados para a geração de parcelas do Contas a Receber.

Image for post
Image for post

Image for post
Image for post

Logo abaixo você verá as tabelas que compõem o Grupo Pessoa. Existe um estudo de caso que explica como essas tabelas são criadas. Leia no link a seguir:

PESSOA

Essa tabela vai armazenar os dados da entidade PESSOA.

Image for post
Image for post

PESSOA FÍSICA

Tabela que armazena os dados específicos para Pessoas Físicas. Relacionamento Um-Pra-Um com PESSOA.

Image for post
Image for post

PESSOA JURÍDICA

Tabela que armazena os dados específicos para Pessoas Jurídicas. Relacionamento Um-Pra-Um com PESSOA.

Image for post
Image for post

PESSOA ENDEREÇO

Tabela que armazena os endereços das pessoas. Relacionamento Um-Pra-Muitos com PESSOA.

Image for post
Image for post

PESSOA CONTATO

Tabela que armazena os contatos das pessoas. Tabela que armazena os endereços das pessoas. Relacionamento Um-Pra-Muitos com PESSOA.

Image for post
Image for post

PESSOA TELEFONE

Tabela que armazena os telefones das pessoas. Tabela que armazena os endereços das pessoas. Relacionamento Um-Pra-Muitos com PESSOA.

Image for post
Image for post

CLIENTE

Tabela que armazena os clientes. Relacionamento Um-Pra-Um com PESSOA.

Image for post
Image for post

FORNECEDOR

Tabela que armazena os fornecedores. Relacionamento Um-Pra-Um com PESSOA.

Image for post
Image for post

CONTADOR

Tabela que armazena os contadores. Relacionamento Um-Pra-Um com PESSOA.

Image for post
Image for post

TRANSPORTADORA

Tabela que armazena as transportadoras. Relacionamento Um-Pra-Um com PESSOA.

Image for post
Image for post

ESTADO CIVIL

Armazena os tipos de Estado Civil. Vinculada a tabela PESSOA_FISICA através de um relacionamento Um-Para-Muitos.

Image for post
Image for post

NÍVEL DE FORMAÇÃO

Armazena os tipos de Nível de Formação. Vinculada a tabela PESSOA_FISICA através de um relacionamento Um-Para-Muitos.

Image for post
Image for post

Image for post
Image for post

CARGO

Armazena a relação dos Cargos disponíveis na empresa.

Image for post
Image for post

SETOR

Armazena os setores disponíveis na Empresa.

Image for post
Image for post

COLABORADOR

Armazena os colaboradores da Empresa. Relacionamento Um-Pra-Um com PESSOA.

Image for post
Image for post

VENDEDOR

Armazena aqueles colaboradores que são vendedores. Relacionamento Um-Para-Um com a tabela COLABORADOR.

Image for post
Image for post

USUÁRIO

Armazena aqueles colaboradores que são usuários da aplicação. Relacionamento Um-Para-Um com a tabela COLABORADOR.

Image for post
Image for post

PAPEL

Armazena os papéis (roles) da aplicação. Por exemplo: administrativo, financeiro, cobrança, estoque, etc.

Image for post
Image for post

FUNÇÃO

Armazena as funções da aplicação. Pode ser uma tela. Exemplos: Cadastro do Cliente. Pode ser um botão específico. Exemplo: Calcular Fluxo de Caixa.

Image for post
Image for post

PAPEL FUNÇÃO

É a tabela que armazena o controle de acessos. Essa tabela é o resultado do relacionamento Muitos-Para-Muitos entre as tabelas PAPEL e FUNCAO.

Image for post
Image for post

Image for post
Image for post

EMPRESA

Armazena os dados da Empresa.

Image for post
Image for post

EMPRESA ENDEREÇO

Armazena os endereços da Empresa.

Image for post
Image for post

EMPRESA TELEFONE

Armazena os telefones da Empresa.

Image for post
Image for post

EMPRESA CONTATO

Armazena os contatos da Empresa.

Image for post
Image for post

Image for post
Image for post

PRODUTO GRUPO

Armazena os grupos de produtos. Exemplo: CANETAS E LAPISEIRAS.

Image for post
Image for post

PRODUTO SUBGRUPO

Armazena os subgrupos de produtos. Exemplo: CANETAS ESFEROGRÁFICAS.

Image for post
Image for post

PRODUTO

Armazena os produtos. Exemplo: CANETA BIC.

Image for post
Image for post

PRODUTO UNIDADE

Armazena as unidades de produto. Exemplo: CAIXA, LOTE, etc.

Image for post
Image for post

PRODUTO MARCA

Armazena as marcas de produto. Exemplo: ADIDAS, TILIBRA, etc.

Image for post
Image for post

Image for post
Image for post

BANCO

Armazena a relação de bancos (instituições financeiras) do Brasil.

Image for post
Image for post

BANCO AGÊNCIA

Armazena as agências bancárias onde a Empresa possui conta.

Image for post
Image for post

CONTA/CAIXA

Armazena a relação das contas que a Empresa contém nos bancos. Armazena ainda a relação dos caixas internos da Empresa.

Image for post
Image for post

Considerações Finais

Concluímos aqui a análise do módulo Cadastros Base. Estude o DER disponível no github e prepare-se para os demais artigos que virão explicando os demais módulos do ERP.


T2Ti ERP — Aprenda a Desenvolver um ERP

O T2Ti ERP 2.0 é feito em C#, Delphi, Java (RIA e Web) e Lazarus. São cinco projetos diferentes. Que tal aprender a desenvolver esse ERP totalmente grátis? Parece bom?

Image for post
Image for post

Acompanhe o canal da T2Ti no Youtube. A T2Ti está postando todos os vídeos do T2Ti ERP 2.0 no Youtube. São quase 300 módulos!


Os vídeos estão organizados em Playlists. Então se inscreva no canal e ative o sininho para receber atualizações sobre as postagens.


Acesse o artigo no Medium para aplaudir e/ou comentar.