Histórico da Página
Reestruturação dos Saldos Contabeis.
Os saldos contábeis foram
reinscritoreinscritos, pois
, asas rotinas de saldo com lançamento retroativo de um grande período demandavam muito processamento e tempo do sistema
por este motivo esta rotina foi reescrita.
Exemplo : Se tivéssemos que fazer um lançamento retroativo pela versão Protheus 11 o tempo de processamento é bem maior que na versão Protheus 12.
Conforme pode ser visto na tela abaixo na Na versão 11 do Protheus, tínhamos 11 tabelas e 8 campos como, saldo atual, saldo anterior, movimento e movimento por período que totalizavam 88 operações distintas isto para cada transição.
Na Versão 12 do Protheus, passamos a não ter saldo tem saldo a cada dia, passo a passou a ter 2 tabelas 8 tabelas, gravando dois valores Debito e Crédito, que são (:
- 4 tabelas mensais
- 4 quatro tabelas diárias
A reestruturação das tabelas de saldo possui os seguintes objetivos:
- Composição de saldos de forma mais simples;
- Tabelas normalizadas;
- Ganho de desempenho para leitura/escrita nos bancos;
- Diminuição do tempo de inclusão de lançamentos contábeis.
Aviso |
---|
A premissa para essa reestruturação é a versão 12 que não terá mais tratamento para bancos não relacionais (Codebase). |
Versão P11 - Estrutura de tabelas) para as quatro entidades, gravo dois valores Debito e Crédito
TABELA DE SALDOS BÁSICOS |
Tabela | Versão | Descrição |
CT2 | P11 | Lançamentos |
Contábeis | ||
CT3 | P11 | Saldos de Centro de Custos |
CT4 | P11 | Saldos de Item contábil |
CT6 | P11 | Totais de Lotes |
CT7 | P11 | Saldos de Planos de Contas |
CTI | P11 | Saldos da Classe de Valores |
CTC | P11 | Saldos do Documento |
TABELA DE SALDOS COMPOSTOS |
Tabela | Versão | Descrição |
CTU |
P11 | Grupos Contábeis | |
CTV | P11 | Saldo Itens X Centro de Custo |
CTW | P11 | Saldos Cl Valor X Centro de Custo |
CTX | P11 | Saldos Cl Valor X Item |
CTY | P11 | Saldos Ccusto X Item X Cl Valor |
TABELA DE SALDOS |
DAS NOVAS ENTIDADES CONTÁBEIS | ||
Tabela | Versão | Descrição |
CVX |
P11 |
Saldos Diários |
CVY |
CT7
P12
Saldos de Planos de Contas
CTI
P11 | Saldos Mensais |
Todas as tabelas de saldo possuem os seguintes conceitos em suas estruturas:
- Registro do saldo diário.
- Quando não tiver movimento no dia, não é gravada a informação saldo.
- Em todas as linhas de registros constam os seguintes valores:
- Saldo Débito (D): Soma dos valores de débito no dia para a entidade.
- Saldo Crédito (C): Soma dos valores de crédito no dia para a entidade.
- Saldo Atual Débito(D): Soma de todos os valores de débitos até o dia (inclusive o dia) para a entidade.
- Saldo Atual Crédito(C): Soma de todos os valores de crédito até o dia (inclusive o dia) para a entidade.
Saldo Anterior a Débito(D): Soma de todos os valores de débito até o dia anterior para a entidade.
- Saldo Anterior a Crédito(C): Soma de todos os valores de crédito até o dia anterior para a entidade.
A estrutura atual foi concebida com o objetivo de priorizar a consulta das informações utilizando os métodos de pesquisa codebase que consiste da pesquisa direta do registro utilizando a sua chave de busca (comando dbseek), porém, essa estrutura colocava a maior carga de processamento na operação de gravação, principalmente no processamento dos campos de saldo atual D/C e saldo anterior D/C.
Um exemplo dessa situação:
- Uma empresa possui os seguintes lançamentos contábeis no sistema:
DATA | CONTA DEBITO | CONTA CREDITO | VALOR | HISTORICO |
---|---|---|---|---|
01/01/2013 | 11001 | 23001 | 100.000,00 | Constituição da Empresa |
02/01/2013 | 12001 | 11001 | 10.000,00 | Compra de Imobilizado para Operações |
15/01/2013 | 31003 | 11001 | 5.000,00 | Pagamento de Conta de Luz |
25/01/2013 | 11001 | 41002 | 50.000,00 | Prestação de Serviços |
- O sistema irá calcular os saldos das contas e os registrará na tabela CT7 - Saldos por conta. O registro da conta Caixa (11001) ficará conforme o quadro a seguir:
Data | Conta | Saldo a Débito | Saldo a Crédito | Saldo Atual Débito | Saldo Atual Crédito | Saldo Anterior Débito | Saldo Anterior Crédito |
01/01/2013 | 11001 | 100.000,00 | 0 | 100.000,00 | 0 | 0 | 0 |
02/01/2013 | 11001 | 0 | 10.000,00 | 100.000,00 | 10.000,00 | 100.000,00 | 0 |
15/01/2013 | 11001 | 0 | 5.000,00 | 100.000,00 | 15.000,00 | 100.000,00 | 10.000,00 |
25/01/2013 | 11001 | 50.000,00 | 0 | 150.000,00 | 15.000,00 | 100.000,00 | 15.000,00 |
Em uma situação aonde o usuário incluiria um lançamento no dia 26/01 o sistema processa o cálculo de 6 campos de valores para incluir um novo registro na tabela de saldo por conta.
Em outra situação que o usuário precise incluir um lançamento retroativo no dia 03/01/2013, o sistema precisa realizar o mesmo cálculo de 6 campos para incluir o registro do saldo nesse dia. Porém ele precisa recalcular e atualizar os registros de saldos dos dias 15/01 e 25/01, pois os campos de saldo atual D/C e saldo anterior D/C estarão desatualizados.
Nessa situação de gravação de lançamento o sistema precisa realizar mais 8 operações totalizando 14 operações.
Se adicionarmos as outras entidades contábeis e em um lançamento retroativo de 90 dias temos a seguinte quantidade de operações:
- Atualização 11 tabelas
- 6 campos por tabelas
- 90 dias
- Total aproximando de 5940 operações.
Em uma realidade de milhares de registros de lançamento contábeis, verificamos que a estrutura atual não é escalável, provocando
perda de desempenho e serialização da gravação no banco de dados (no caso de múltiplos usuários estarem gravando ao mesmo tempo).
Versão P12 - Estrutura de tabelas
Ao alterar a estrutura atual da P11 de saldos contábeis tem como o objetivo diminuir a quantidade de operações na gravação de saldos contábeis, e consequente a normalização das tabelas, garantindo uma melhor utilização dos recursos dos bancos de dados relacionais. Com a evolução do sistema na versão 12, não teremos mais a codificação para bases codebase.
Sendo assim simplificaremos os códigos fontes atuais de consulta e gravação de saldos e utilizando melhor os recurso dos banco de dados relacionais.
Abaixo a estrutura das tabelas na versão P12
TABELAS DE SALDOS BÁSICOS |
Tabela | Versão | Descrição |
CQ1 | P12 | Saldo por Conta no Dia |
CQ0 | P12 | Saldo por Conta no Mês |
CQ3 |
P12 | Saldo por Centro de Custo no Dia | |
CQ2 |
P12 | Saldo por Centro de Custo no Mês | |
CQ5 | P12 | Saldo Item Contábil no Dia |
CQ4 | P12 | Saldo Item Contábil no Mês |
CQ6 | P12 | Saldo Classe de Valor no Mês |
CQ7 | P12 | Saldo Classe de Valor no Dia |
TABELAS DE SALDOS COMPOSTOS | ||
Tabela | Versão | Descrição |
CQ9 | P12 | Saldo por Entidade no Dia |
CQ8 | P12 | Saldos por Entidade no Mês |
TABELA PROCESSAMENTO EM FILA |
Importante : Na versão 12 as tabelas CTU, CTV, CTW, CTX e CTY não recebem mais informações.
Opcional
Protótipo de Tela
<Caso necessário inclua protótipos de telas com o objetivo de facilitar o entendimento do requisito, apresentar conceitos e funcionalidades do software>.
Protótipo 01
Opcional
Fluxo do Processo
<Nesta etapa incluir representações gráficas que descrevam o problema a ser resolvido e o sistema a ser desenvolvido. Exemplo: Diagrama - Caso de Uso, Diagrama de Atividades, Diagrama de Classes, Diagrama de Entidade e Relacionamento e Diagrama de Sequência>.
Opcional
Dicionário de Dados
Arquivo ou Código do Script: AAA – Negociação Financeira / *Versao=CP.2014.12_03*/
Índice | Chave |
01 | <FI9_FILIAL+FI9_IDDARF+FI9_STATUS> |
02 | <FI9_FILIAL+FI9_FORNEC+ FI9_LOJA+FI9_EMISS+FI9_IDDARF> |
03 | <FI9_FILIAL+FI9_FORNEC+ FI9_LOJA+FI9_PREFIX+FI9_NUM+FI9_PARCEL+FI9_TIPO> |
Campo | <AAA_PERESP> |
Tipo | <N> |
Tamanho | <6> |
Valor Inicial | <Varia de acordo com o tipo informado. Por exemplo, quando o campo “tipo” for date, neste campo pode ser informado uma data>. |
Mandatório | Sim ( ) Não ( ) |
Descrição | <Referência Mínima para Cálculo> |
Título | <Ref.Calc.> |
Picture | <@E999.99> |
Help de Campo | <Informar o % que o aluno pagará em dinheiro. Esse % poderá ser alterado durante a negociação> |
(Opcional)
Grupo de Perguntas
<Informações utilizadas na linha Protheus>.
Nome: FINSRF2
X1_ORDEM | 01 |
X1_PERGUNT | Emissão De |
X1_TIPO | D |
X1_TAMANHO | 8 |
X1_GSC | G |
X1_VAR01 | MV_PAR01 |
X1_DEF01 | Comum |
X1_CNT01 | '01/01/08' |
X1_HELP | Data inicial do intervalo de emissões das guias de DARF a serem consideradas na seleção dos dados para o relatório |
(Opcional)
Consulta Padrão
<Informações utilizadas na linha Protheus>
Consulta: AMB
Descrição | Configurações de Planejamento |
Tipo | Consulta Padrão |
Tabela | “AMB” |
Índice | “Código” |
Campo | “Código”; ”Descrição” |
Retorno | AMB->AMB_CODIGO |
Tabela | Versão | Descrição |
CQA | P12 | Fila de Saldos |
As novas tabelas de saldos terão os seguintes conceitos na sua estrutura :
- Registro do saldo diário nas tabelas de saldos diários
- Registro do saldo mensal nas tabelas de saldos mensais, somando os valores dos saldos diários no período.
- Para facilitar na montagem das queries e procedures, as tabelas de saldos mensais terão o campo que identifica o período com o tipo data e terá como conteúdo sempre o primeiro dia do mês.
- Para facilitar na montagem das queries e procedures, as tabelas de saldos mensais terão o campo que identifica o período com o tipo data e terá como conteúdo sempre o primeiro dia do mês.
- Quando não tiver movimento no dia, não será gravada a informação de saldo no dia.
- Em todas as linhas de registros constarão os seguintes valores:
- Saldo Débito (D): Soma dos valores de débito no dia para a entidade.
- Saldo Crédito (C): Soma dos valores de crédito no dia para a entidade.
Nota | |||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Importante : A partir da versão 12 as tabelas abaixo serão descontinuadas:
A tabela de saldos por documento contábil será mantida e terá o papel de tabela de cabeçalho do lançamento contábil (CT2). As tabelas de saldos das Novas Entidades Contábeis serão mantidas e não terão alteração na sua gravação/consulta. |
Para ilustrar o ganho com essa nova estrutura, vamos utilizar o exemplo anterior:
Uma empresa possui os seguintes lançamentos contábeis no sistema:
Data | Conta Débito | Conta Crédito | Valor | Histórico |
01/01/2013 | 11001 | 23001 | 100.000,00 | Constituição da empresa |
02/01/2013 | 12001 | 11001 | 10.000,00 | Compra de Imobilizado para operações |
15/01/2013 | 31003 | 11001 | 5.000,00 | Pagamento de conta de Luz |
25/01/2013 | 11001 | 41002 | 50.000,00 | Prestação de serviços |
O sistema irá calcular os saldos das contas e os registrará na tabela CQ0 - Saldo por conta no Mês e CQ1 – Saldo por Conta No Dia. O registro da conta Caixa (11001) ficará conforme os quadros a seguir:
CQ0 - Saldo por conta no Mês | |||
Data | Conta | Saldo a Débito | Saldo a Crédito |
01/01/2013 | 11001 | 150.000,00 | 15.000,00 |
CQ1 – Saldo por Conta No Dia | |||
Data | Conta | Saldo a Débito | Saldo a Crédito |
01/01/2013 | 11001 | 100.000,00 | - |
02/01/2013 | 11001 | - | 10.000,00 |
15/01/2013 | 11001 | - | 5.000,00 |
25/01/2013 | 11001 | 50.000,00 | - |
Em uma situação aonde o usuário incluiria um lançamento no dia 26/01 o sistema irá processar o cálculo de 4 campos de valores para incluir um novo registro na tabela de saldo por conta no Dia e no Mês.
Em outra situação que o usuário precise incluir um lançamento retroativo no dia 03/01/2013, o sistema realizará o mesmo cálculo
de 4 campos para incluir os registros do saldo nesse dia. Com a estrutura proposta o sistema não precisará realizar o cálculo ou atualização de nenhum outro dia.
Se adicionarmos as outras entidades contábeis e em um lançamento retroativo de 90 dias temos a seguinte quantidade de operações:
- Atualização 10 tabelas
- 2 campos por tabelas
- 90 dias
- Total de 20 operações, pois será necessário atualizar o saldo somente do dia e do mês que foi incluído o registro.
Na estrutura proposta, independentemente da quantidade de dias para o lançamento retrocedente, a quantidade de operações se manterá a mesma.
A lógica para consulta de saldos nessa nova estrutura deverá ser alterada utilizando query para retornar os valores de saldo de uma conta.
- Será realizada uma query utilizando a função SUM para trazer a soma de todos os saldos mensais até o mês anterior do saldo que se deseja a consulta.
- Será realizada uma query utilizando a função SUM para trazer a soma dos saldos diários do primeiro dia do período até o dia do saldo que se deseja a consulta.
- O saldo atual D/C será a soma do resultado do passo 1 com o passo 2
- Será realizada uma query utilizando a função SUM para trazer a soma dos saldos diários do primeiro dia do período até o dia anterior do saldo que se deseja a consulta.
- O saldo anterior D/C será a soma do resultado do passo 1 com o passo 4
Utilizando os dados do exemplo anterior, para a consulta do saldo da conta no dia 15/01/13, o sistema irá realizar os seguintes procedimentos:
- Soma dos saldos mensais até o mês de dezembro de 2012
Importante : Na nova estrutura proposta, apenas teremos como tabelas de saldos compostos a CQ8 e CQ9 que corresponde na estrutura antiga à tabela CTU - Saldo por Entidade Gerencial.
- Total de 20 operações, pois será necessário atualizar o saldo somente do dia e do mês que foi incluído o registro.
Na estrutura proposta, independentemente da quantidade de dias para o lançamento retrocedente, a quantidade de operações se manterá a mesma.
(Opcional)
Estrutura de Menu
<Informações utilizadas na linha Datasul>.
Procedimentos
Procedimento |
|
|
|
Descrição | (Max 40 posições) | (Max 40 posições) | (Max 40 posições) |
Módulo |
|
|
|
Programa base |
|
|
|
Nome Menu | (Max 32 posições) | (Max 32 posições) | (Max 32 posições) |
Interface | GUI/WEB/ChUI/Flex | GUI/WEB/ChUI/Flex | GUI/WEB/ChUI/Flex |
Registro padrão | Sim | Sim | Sim |
Visualiza Menu | Sim/Não | Sim/Não | Sim/Não |
Release de Liberação |
|
|
|
Programas
Programa |
|
|
|
Descrição | (Max 40 posições) | (Max 40 posições) | (Max 40 posições) |
Nome Externo |
|
|
|
Nome Menu/Programa | (Max 32 posições) | (Max 32 posições) | (Max 32 posições) |
Nome Verbalizado[1] | (Max 254 posições) | (Max 254 posições) | (Max 254 posições) |
Procedimento |
|
|
|
Template | (Verificar lista de opções no man01211) | (Verificar lista de opções no man01211) | (Verificar lista de opções no man01211) |
Tipo[2] | Consulta/Manutenção/ Relatório/Tarefas | Consulta/Manutenção/ Relatório/Tarefas | Consulta/Manutenção/ Relatório/Tarefas |
Interface | GUI/WEB/ChUI/Flex | GUI/WEB/ChUI/Flex | GUI/WEB/ChUI/Flex |
Categoria[3] |
|
|
|
Executa via RPC | Sim/Não | Sim/Não | Sim/Não |
Registro padrão | Sim | Sim | Sim |
Outro Produto | Não | Não | Não |
Visualiza Menu | Sim/Não | Sim/Não | Sim/Não |
Query on-line | Sim/Não | Sim/Não | Sim/Não |
Log Exec. | Sim/Não | Sim/Não | Sim/Não |
Rotina (EMS) |
|
|
|
Sub-Rotina (EMS) |
|
|
|
Localização dentro da Sub Rotina (EMS) |
|
|
|
Compact[4] | Sim/Não | Sim/Não | Sim/Não |
Home[5] | Sim/Não | Sim/Não | Sim/Não |
Posição do Portlet[6] | 0 – Top Left 1 – Top Right 2 – Bottom Left 3 – Bottom Right | 0 – Top Left 1 – Top Right 2 – Bottom Left 3 – Bottom Right | 0 – Top Left 1 – Top Right 2 – Bottom Left 3 – Bottom Right |
Informar os papeis com os quais o programa deve ser vinculado |
|
|
|
Cadastro de Papéis
<O cadastro de papéis é obrigatório para os projetos de desenvolvimento FLEX a partir do Datasul 10>.
<Lembrete: o nome dos papeis em inglês descrito neste ponto do documento, devem ser homologados pela equipe de tradução>.
Código Papel | (máx 3 posições) |
Descrição em Português* |
|
Descrição em Inglês* |
|
[1] Nome Verbalizado é obrigatório para desenvolvimentos no Datasul 10 em diante.
[2] Tipo é obrigatório para desenvolvimento no Datasul 10 em diante
[3] Categorias são obrigatórias para os programas FLEX.
[4] Obrigatório quando o projeto for FLEX
[5] Obrigatório quando o projeto for FLEX
[6] Obrigatório quando o projeto for FLEX