Mudanças entre as edições de "Bonificação com Saldo Fixo"
Linha 1: | Linha 1: | ||
== Necessidade == | == Necessidade == | ||
− | É 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. | + | 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 == | == Solução Declarativa == | ||
Linha 13: | Linha 13: | ||
=== Regras de Negócio === | === Regras de Negócio === | ||
− | *[RN1] - | + | *[RN1] - Deve ser possível cadastrar um saldo de bonificação para o cliente que poderá ser utilizado pelo vendedor. Esse saldo não será incrementado, apenas será decrescido conforme for sendo efetuado a tiragem de pedidos de bonificação; |
− | *[RN2 | + | *[RN2] - 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. |
− | + | *[RN3] - 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 == | == Pré Detalhes da Solução Imperativa == | ||
Linha 95: | Linha 95: | ||
====Assertivas==== | ====Assertivas==== | ||
# 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 | # 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 | ||
+ | # Não deve existir o pedido '''Y''' na base de dados do sistema | ||
+ | # 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==== | ||
+ | # Supervisor Pedro | ||
+ | # Cliente Sousa com saldo de bonificação de R$500 | ||
+ | # 1 pedido de bonificação já cadastrado no valor de R$500 | ||
+ | #* com código pedido palm '''Y''' | ||
+ | |||
+ | ====Operação==== | ||
+ | # Pedro exclui o pedido '''Y''' para Sousa no valor de R$500 | ||
+ | |||
+ | ====Assertivas==== | ||
# Não deve existir o pedido '''Y''' na base de dados do sistema | # Não deve existir o pedido '''Y''' na base de dados do sistema | ||
# O saldo de bonificação de Sousa deve ficar igual a R$1000 | # O saldo de bonificação de Sousa deve ficar igual a R$1000 |
Edição das 13h42min 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á preciso criar uma estrutura de saldo de bonificação por cliente. Esse saldo será consumido de acordo com que os pedidos de bonificações forem utilizados. Para deixar a solução mais genérica e flexível pode-se vincular a tabela do saldo o tipo de movimento pedido em vez de forçar o saldo somente para bonificação.
Deve-se criar um listener para fazer a validação do saldo no momento de salvar o pedido. Caso não aja saldo suficiente deve-se mostra um alerta e impedir que o pedido seja salvo (Os fluxos explicam melhor essa situação).
Será preciso também criar no portal um crud para que o saldo de bonificação seja mantido pelo próprio usuário do sistema, não necessitando assim de trabalho da integração e passando a gerência para o usuário.
Regras de Negócio
- [RN1] - Deve ser possível cadastrar um saldo de bonificação para o cliente que poderá ser utilizado pelo vendedor. Esse saldo não será incrementado, apenas será decrescido conforme for sendo efetuado a tiragem de pedidos de bonificação;
- [RN2] - 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.
- [RN3] - 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
Tabelas usadas
- SALDO_BONI_CLIENTE
- CD_CLIENTE INT PK
- CD_TIPO_MOVIMENTO_PEDIDO INT PK
- SALDO DECIMAL(18,6) NOT NULL
Cenários
Cenário feliz
João faz um pedido de bonificação para Sousa dentro dos limites
Dado
- Usuário João
- Cliente Sousa com saldo de bonificação de R$1000
- O pedido de bonificação sendo criado
- com código pedido palm X
Operação
- João cadastra o pedido X para Sousa no valor de R$800
- João finaliza/salva esse pedido
Assertivas
- Deve existir o pedido X na base de dados do sistema
- Esse pedido tem valor de R$800
- 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
- Usuário João
- Cliente Sousa com saldo de bonificação de R$500
- O pedido de bonificação sendo criado
- com código pedido palm Y
Operação
- João cadastra o pedido Y para Sousa no valor de R$900
- João finaliza/salva esse pedido
Assertivas
- O sistema deve exibir uma mensagem de restrição
- Não deve existir o pedido Y na base de dados do sistema
- 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
- Usuário João
- Cliente Sousa com saldo de bonificação de R$500
- O pedido de bonificação sendo editado
- com código pedido palm Y
Operação
- João edita o pedido Y para Sousa e adiciona mais 2 produtos no valor de R$100,00
- João finaliza/salva esse pedido
Assertivas
- Deve existir o pedido Y na base de dados do sistema
- O sistema deve recalcular o saldo do cliente após a mudança dos dados do pedido
- 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
- Usuário João
- Cliente Sousa com saldo de bonificação de R$500
- 1 pedido de bonificação já cadastrado no valor de R$500
- com código pedido palm Y
Operação
- João exclui o pedido Y para Sousa no valor de R$500
Assertivas
- 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
- Não deve existir o pedido Y na base de dados do sistema
- 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
- Supervisor Pedro
- Cliente Sousa com saldo de bonificação de R$500
- 1 pedido de bonificação já cadastrado no valor de R$500
- com código pedido palm Y
Operação
- Pedro exclui o pedido Y para Sousa no valor de R$500
Assertivas
- Não deve existir o pedido Y na base de dados do sistema
- O saldo de bonificação de Sousa deve ficar igual a R$1000