Mudanças entre as edições de "Discussão:Complemento de saldo de conta corrente"

De GeoSales
Ir para navegação Ir para pesquisar
 
(7 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 1: Linha 1:
'''
+
== Solução pouco genérica ==
== Necessidade ==
 
'''
 
Cliente precisa estabelecer um saldo complementar para o usuário que utilizará a conta corrente para aprovar pedidos de bonificação. Esse saldo precisa ser atualizado todo primeiro dia útil do mês.
 
'''
 
  
== Solução ==
+
A solução está voltada apenas para a necessidade da Camil.
'''
+
 
*Criar um campo no cadastro da conta corrente para inserir o Saldo Complementar do Usuário
+
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
  
*Criar rotina para complementar saldo da conta corrente no primeiro dia de cada mês
+
== 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.
  
A solução está voltada apenas para a necessidade da Camil.
+
=== Exemplo ===
 +
'''Inalds''', todo dia '''1º''', 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.
  
Precisa possibilitar parametrizar a periodicidade para está funcionalidade, permitir também múltiplas parametrização.  
+
===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á:
  
A parte da rotina também precisa ser melhor descrita.
+
MC = Sd - Sa
  
== Cenários ==
+
Onde:
 +
* '''MC''' é o valor do movimento de complemento
 +
* '''Sd''' é o saldo desejado
 +
* '''Sa''' é o saldo anterior
  
'''Cenário 1'''
+
====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'''.
  
*Usuário João possui Saldo Complementar de 2000 e no dia 31/10/2016 ele possui um saldo de conta corrente de 1500, no dia 01/11/2016 será feito um lançamento complementar automático de 500,00
+
Assim, vamos calcular o saldo depois de realizado o movimento, '''Sn''':
  
'''Cenário 2'''
+
Sn = Sa + MC = Sa + (Sd - Sa) = Sd
  
*Usuário João possui Saldo complementar de 2000 e no dia 31/10/2016 ele possui zero de saldo de conta corrente, no dia 01/11/2016 será realizado um lançamento complementar automático de 2000 em sua conta corrente
+
Portanto, essa solução garante que o movimento e complemento sempre retorne o saldo do usuário para o saldo desejado.
  
'''Cenário 3'''
+
CQD
  
*Usuário João possui Saldo complementar de 2000 e no dia 31/10/2016 ele possui 2000 de saldo de conta corrente, no dia 01/11/2016 não será realizado saldo complementar pois seu saldo atual já é igual ao saldo complementar
+
== Solução imperativa ==
'''
 
  
 +
Na solução imperativa, diferentemente da solução declarativa, vai ser dito o ''como'' realizar a solução declarativa de modo que a necessidade seja atendida. Na solução declarativa se vê se a necessidade será atendida, aqui se vê se a solução proposta é viável.
  
 +
===2 centavos de imperatividade===
 +
Para conseguir atendes as necessidades, precisa-se de dois passos, descritos nas duas próximas sessões.
  
----
+
====Cadastro====
 +
No cadastro da conta corrente do usuário, no Portal, serão vinculados dois novos campos, referentes a:
 +
# valor do saldo prefixado
 +
# dia do mês em que o saldo da conta corrente retorna ao valor prefixado
  
----
+
====Movimentação====
 +
A movimentação é realizada em um microsserviço. O microsserviço fará a movimentação de todos os usuário que tenham os dados cadastrados na conta corrente. O movimento realizado será do tipo CM para complementos de crédito e DM para complementos de débito. O valor do movimento será calculado conforme a regra estabelecida na solução declarativa.

Edição atual tal como às 14h45min de 9 de novembro de 2016

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

Solução imperativa

Na solução imperativa, diferentemente da solução declarativa, vai ser dito o como realizar a solução declarativa de modo que a necessidade seja atendida. Na solução declarativa se vê se a necessidade será atendida, aqui se vê se a solução proposta é viável.

2 centavos de imperatividade

Para conseguir atendes as necessidades, precisa-se de dois passos, descritos nas duas próximas sessões.

Cadastro

No cadastro da conta corrente do usuário, no Portal, serão vinculados dois novos campos, referentes a:

  1. valor do saldo prefixado
  2. dia do mês em que o saldo da conta corrente retorna ao valor prefixado

Movimentação

A movimentação é realizada em um microsserviço. O microsserviço fará a movimentação de todos os usuário que tenham os dados cadastrados na conta corrente. O movimento realizado será do tipo CM para complementos de crédito e DM para complementos de débito. O valor do movimento será calculado conforme a regra estabelecida na solução declarativa.