Discussão:Complemento de saldo de conta corrente

De GeoSales
Revisão de 14h34min de 9 de novembro de 2016 por Jeffque (discussão | contribs) (→‎Solução declarativa: nova seção)
Ir para navegação Ir para pesquisar

Solução pouco genérica

A solução está voltada apenas para a necessidade da Camil.

Precisa possibilitar parametrizar a periodicidade para está funcionalidade, permitir também múltiplas parametrização.

A parte da rotina também precisa ser melhor descrita.

Cenário confuso

Os cenários usam itemização, mas não de maneira eficiente.

Tipo, não consigo distinguir facilmente as informações.

Creio que você queria fazer algo mais assim no cenário 1:

Cenário 1

Dados

  • João possui saldo complementar de R$ 2000.00
  • o saldo atual de João no dia 31/10/2016 é R$ 1500.00
  • o complemento de João está cadastrado para rodar no primeiro dia do mês
  • João não realiza mais nenhuma movimentação esse mês

Assertivas

No dia 01/11/2016...

  • o saldo de João é R$ 2000.00
  • existe um movimento para João de R$ 500.00 do tipo de movimento CM do dia 01/11/2016

Sugestão de generalização da necessidade

O usuário de conta corrente precisa, em data fixa no mês, ficar com um saldo prefixado.

Exemplo

Inalds, todo dia , fica com o saldo de R$ 2000.00

Solução declarativa

Na solução declarativa, declaramos não como será feito, mas uma visão geral do quê será feito.

2 centavos de solução declarativa

No dia determinado para que o usuário tenha o saldo especificado, será gerado um movimento de complementação, de modo que seu Saldo final seja o especificado. Assim, o movimento de complemento será:

MC = Sd - Sa

Onde:

  • MC é o valor do movimento de complemento
  • Sd é o saldo desejado
  • Sa é o saldo anterior

Demonstração matemática

O saldo é dado pela somatória dos movimentos. Assim, eu realizar um movimento M1 em um saldo S0, o saldo novo S1 é S0 + M1.

Assim, vamos calcular o saldo depois de realizado o movimento, Sn:

Sn = Sa + MC = Sa + (Sd - Sa) = Sd

Portanto, essa solução garante que o movimento e complemento sempre retorne o saldo do usuário para o saldo desejado.

CQD