Mudanças entre as edições de "Bonificação com Saldo Fixo"

De GeoSales
Ir para navegação Ir para pesquisar
Linha 22: Linha 22:
 
* Como a funcionalidade de limite de crédito por meio de pagamento tem o saldo realimentado quando os títulos são pagos, deve ser inserida uma configuração que impeça o incremento do saldo, pois o limite de bonificação não deve ser aumentado.
 
* Como a funcionalidade de limite de crédito por meio de pagamento tem o saldo realimentado quando os títulos são pagos, deve ser inserida uma configuração que impeça o incremento do saldo, pois o limite de bonificação não deve ser aumentado.
 
* A tabela utilizada para salvar os dados de saldos é a LIMITE_CLIENTE_MEIO_PGTO.
 
* A tabela utilizada para salvar os dados de saldos é a LIMITE_CLIENTE_MEIO_PGTO.
 +
* Existe o problema do paralelismo de tiragem de pedido. Como o saldo é do cliente, pode ser tirado pedidos no portal e no mobile simultaneamente o saldo perde a coesão. Deve-se corrigir da mesma forma como foi feito para o problema do estoque corrigido pelo Arielton.
  
 
== Cenários ==
 
== Cenários ==

Edição das 17h09min de 22 de setembro de 2016

Necessidade

Como forma de incentivar a compra por parte de novos clientes é dado ao cliente um valor para ser usado como bonificação. É preciso que um vendedor possa tirar pedidos de bonificação para clientes consumindo um saldo específico para bonificação de cada cliente. Quando esse saldo for consumido por completo o sistema não permitirá a tiragem de pedidos de bonificação para o cliente cujo saldo esteja zerado.

Solução Declarativa

Será utilizado o limite de crédito por meio de pagamento para que seja possível criar um saldo para pedidos de bonificação. Para os pedidos do tipo bonificação será cadastrado um meio de pagamento que tenha um limite cadastrado para ele.

Regras de Negócio

  • [RN1] - Utilização do Saldo: o vendedor poderá utilizar o saldo de bonificação enquanto houver saldo, ou seja, o sistema validará somente se existe saldo disponível para a bonificação. Se V > SA, o sistema não deve permitir que o pedido seja salvo; caso contrário, deve-se atualizar o saldo do cliente SN = SA - V
  1. V = valor do pedido de bonificação
  2. SA = saldo disponível para o cliente antes da tirado do pedido
  3. SN = saldo novo disponível para o cliente, logo depois da tirado do pedido
  • [RN2] - O Saldo deve ser atualizado de acordo com as mudanças (Edição, exclusão, cancelamento, inclusão) nos pedidos alvo

Pré Detalhes da Solução Imperativa

  • Deverão ser utilizadas as estruturas da funcionalidade de limite de crédito por meio de pagamento. Para isso deverá ser cadastrado um meio de pagamento e uma condição de pagamento específicas para a bonificação. Após esse cadastro deverá ser vinc

ulado a esse conjunto meio de pagamento e condição de pagamento um saldo.

  • Como a funcionalidade de limite de crédito por meio de pagamento tem o saldo realimentado quando os títulos são pagos, deve ser inserida uma configuração que impeça o incremento do saldo, pois o limite de bonificação não deve ser aumentado.
  • A tabela utilizada para salvar os dados de saldos é a LIMITE_CLIENTE_MEIO_PGTO.
  • Existe o problema do paralelismo de tiragem de pedido. Como o saldo é do cliente, pode ser tirado pedidos no portal e no mobile simultaneamente o saldo perde a coesão. Deve-se corrigir da mesma forma como foi feito para o problema do estoque corrigido pelo Arielton.

Cenários

Cenário feliz

João faz um pedido de bonificação para Sousa dentro dos limites

Dado

  1. Usuário João
  2. Cliente Sousa com saldo de bonificação de R$1000
  3. O pedido de bonificação sendo criado com código pedido palm X

Operação

  1. João cadastra o pedido X para Sousa no valor de R$800
  2. João finaliza/salva esse pedido

Assertivas

  1. Deve existir o pedido X na base de dados do sistema
  2. Esse pedido tem valor de R$800
  3. O saldo de bonificação de Sousa é de R$200

Cenário sem saldo

João faz um pedido de bonificação para Sousa que excede seu saldo

Dado

  1. Usuário João
  2. Cliente Sousa com saldo de bonificação de R$500
  3. O pedido de bonificação sendo criado com código pedido palm Y

Operação

  1. João cadastra o pedido Y para Sousa no valor de R$900
  2. João finaliza/salva esse pedido

Assertivas

  1. O sistema deve exibir uma mensagem de restrição
  2. Não deve existir o pedido Y na base de dados do sistema
  3. O saldo de bonificação de Sousa continua de R$500

Cenário edição de pedidos de bonificação

João edita as informações do pedido de bonificação feito para o Sousa

Dado

  1. Usuário João
  2. Cliente Sousa com saldo de bonificação de R$500
  3. O pedido de bonificação sendo editado com código pedido palm Y

Operação

  1. João edita o pedido Y para Sousa e adiciona mais 2 produtos no valor de R$100,00
  2. João finaliza/salva esse pedido

Assertivas

  1. Deve existir o pedido Y na base de dados do sistema
  2. O sistema deve recalcular o saldo do cliente após a mudança dos dados do pedido
  3. O saldo de bonificação de Sousa passa a ser de R$400

Cenário exclusão de pedidos de bonificação

João exclui o pedido de bonificação feito para o Sousa

Dado

  1. Usuário João
  2. Cliente Sousa com saldo de bonificação de R$500
  3. 1 pedido de bonificação já cadastrado no valor de R$500 com código pedido palm Y

Operação

  1. João exclui o pedido Y para Sousa no valor de R$500

Assertivas

  1. O sistema deve, após a remoção do pedido, incrementar o saldo do cliente Sousa pelo valor igual ao valor do pedido excluído
  2. Não deve existir o pedido Y na base de dados do sistema
  3. O saldo de bonificação de Sousa deve ficar igual a R$1000

Cenário cancelamento de pedidos de bonificação

O supervisor do João cancela o pedido de bonificação feito para o Sousa

Dado

  1. Supervisor Pedro
  2. Cliente Sousa com saldo de bonificação de R$500
  3. 1 pedido de bonificação já cadastrado no valor de R$500 com código pedido palm Y

Operação

  1. Pedro exclui o pedido Y para Sousa no valor de R$500

Assertivas

  1. Não deve existir o pedido Y na base de dados do sistema
  2. O saldo de bonificação de Sousa deve ficar igual a R$1000