Skip to content

Instantly share code, notes, and snippets.

@franciscomxs
Last active August 29, 2015 14:09
Show Gist options
  • Save franciscomxs/fda7039ac12f44dec3dc to your computer and use it in GitHub Desktop.
Save franciscomxs/fda7039ac12f44dec3dc to your computer and use it in GitHub Desktop.
Teste developer

Teste ruby developer

Um balancete é um resumo contábil das movimentações financeiras da empresa.

Balancete

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!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment