Um balancete é um resumo contábil das movimentações financeiras da empresa.
Um balancete tem 3 grupos: Ativo, Passivo e Contas de resultado. Neste teste vamos focar apenas nos dois primeiros.
Cada grupo (código de 1 digito) tem uma série de subgrupos (código de dois dígitos), cada subgrupo contém uma série de contas sintéticas (código de três digitos) e cada conta sintética contém várias contas analíticas (código de 4 dígitos).
Simplificando:
- Balancete tem vários grupos
- Cada grupo tem vários subgrupos
- Cada subgrupo tem várias contas sintéticas
- Cada conta sintética tem várias contas analiticas.
Ex.:
-- Balancete
---- Grupo 1
---- Sub grupo 1.1
------ Conta sintética 1.1.1
-------- Conta analítica 1.1.1.1
-------- Conta analítica 1.1.1.2
------ Conta sintética 1.1.2
-------- Conta analítica 1.1.2.1
-------- Conta analítica 1.1.2.2
---- Sub grupo 1.2
...
---- Grupo 2
...
Cada item aqui (grupo, sub grupo, conta sintética e analítica) possui 4 valores: saldo anterior
, débitos
, créditos
e saldo atual
. Também, todos os itens possuem em comum um código
(de 1 a 4 dígitos) e um nome
.
Apenas as contas analíticas tem valores como atributos. Os valores de uma conta sintética são a soma dos valores de suas contas analiticas. Os valores em um subgrupo é a soma dos valores em suas contas sintéticas e assim por diante.
Nas contas analiticas do grupo Ativo
, o valor do saldo atual
é obtido pelo cálculo:
saldo inicial + débitos - créditos
.
Nas contas analiticas do grupo Passivo
o valor do saldo atual
é igual ao saldo inicial + créditos - débitos
.
Este teste consiste em escrever uma classe em ruby capaz de representar um balancete.
Testes com rspec, clareza de código e o código no github contam como diferenciais.
Boa sorte!