Será abordado uma visão geral da estrutura conceitual do gestor.

## Histórico

<br>

Nunca existiu no sistema um mapeamento das tabelas de preço ou lucratividade desejados e permitidos para cada situação comercial atendida pelo sistema. O sistema possuia uma margem fixa no cadastro do SKU e ficava a cargo dos vendedores decidirem o desconto ou acréscimo manualmente para cada situação.

<br>

## Descrição

<br>

Tabela de _Lançamento Financeiro_ armazena todos os lançamentos com cunho financeiro do sistema (conta a pagar, conta a receber e transferencias).
Para representar o local onde está o dinheiro deste lançamento financeiro existe uma tabela _Conta Financeira_ e vai ser usado para definir o destino e a origem dos valores.
Um Lançamento Financeiro precisa ser classificado com um tipo, os tipos mais basicos são _receita, despesas e transferencia_. Estes tipos são armazenados na tabela _Conta Classificação_.

<br>

```mermaid
graph TD;

    Lançamento_Financeiro[Laçamento Financeiro]-->Classificação;
    Lançamento_Financeiro-->Conta_Origem[Conta de Origem];
    Lançamento_Financeiro-->Conta_Destino[Conta de Destino];
```
<br>

Então um lançamento financeiro a grosso modo pode ser representado da seguinte forma:

Valor: R$ 10,00
Conta de Origem: Conta do cliente
Conta de Destino: Conta principal da empresa
Classificação: Pagamento de compra

Até o momento temos então um lançamento financeiro que é classificado com um tipo de lançamento, ai surge um problema que é quando um lançamento financeiro precisa ser classificado parte em uma classificação e a outra parte em outra classificação.
Um exemplo é uma cliente que tem uma classificação para venda de produtos (Receita sobre venda) e outra classificação para serviços (Receita sobre serviços).
Para isto então:

<br>

**Modelo de Dados**

<br>

- Tabela LANCAMENTO_FINANCEIRO - Tabela principal onde é representado cada movimentação financeira (conta a pagar, conta a receber e transferencias);
- Tabela CONTA_FINANCEIRA - Representa os caixas do sistema. Para cada lançamento financeiro tem um caixa de origem e um caixa para o destino;
- Tabela CONTA_CLASSIFICACAO - Representa o tipo de movimentação que está sendo feita;
- Coluna TRANSACAO_NEGOCIO_ITEM.ID_TABELA_PRECO - Campo que indica qual foi a tabela de preço utilizada em determinado item de pedido;
    
<br>

**Regras de Negócio** 

<br>

- Só pode existir uma tabela base ativa para cada grupo de tabelas de preço;
- Tem que existir ao menos uma tabela base ativa para cada grupo de tabelas de preço;

<br>

**Ideias para o Futuro**

<br>

- Alerta de grupo sem tabela de preço base ativa;
- Alerta de lucratividade fora do esperado em relação a tabela de preço;
- Demonstrar a diferença entre as tabelas de preço em forma de texto para o vendedor. Exemplo: O item XPTO está x% abaixo da tabela base (para consumidor). O objetivo é utilizar o preço da tabela base (se esta for a tabela da loja online) como base de comparação para um preço em outra tabela;