Bonificação com Saldo Fixo
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.
Regras de Negócio
- [RN1] - Saldo de Bonificação: Como forma de incentivar a compra por parte de novos clientes é dado ao cliente um valor para ser usado como bonificação. Então 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] - Validação: Caso o cliente não tenha saldo disponível para bonificar o pedido que está sendo efetuado, o sistema não poderá salvar o pedido. Essa regra se aplicará a todos os pedidos de bonificação;
- [RN3] - 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.
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.
Pré Detalhes da Solução Imperativa
- TABELA
SALDO_BONI_CLIENTE
- CAMPOS
- CD_CLIENTE INT PK
- CD_TIPO_MOVIMENTO_PEDIDO INT PK
- SALDO DECIMAL(18,6) NOT NULL
Cenários
Happy Day
- O usuário acessa o Sistema Geosales Mobile e efetua login;
- O usuário escolhe o cliente que deseja efetuar uma bonificação e acessa a tela de pedido, insere as informações necessárias do cabeçalho do pedido;
- O Usuário seleciona a opção de cadastro de itens do pedido;
- O Usuário acessa a aba de produtos;
- O Sistema Geosales Mobile mostra os produtos cadastrados para o cliente escolhido.
- O Usuário escolhe os produtos desejados e os insere no pedido [RE1].
- O Usuário verifica se todos os dados do pedido estão corretos e tudo estando correto ele clica em finalizar o pedido.
- O Sistema Geosales Mobile | Sistema Geosales Portal verifica se o cliente apresenta saldo de bonificação maior ou igual que o valor do pedido [RN1] [RN2] [RN3] [A1];
- O Sistema Geosales Mobile | Sistema Geosales Portal debita do saldo de bonificação do cliente o valor do pedido;
- O Sistema Geosales Mobile | Sistema Geosales Portal salva o pedido;
- Fim do caso de uso;
Fluxos Alternativos
- [A1] - Saldo de Bonificação Insuficiente
- Este fluxo alternativo se inicia quando o Sistema Geosales Mobile | Sistema Geosales Portal verifica que o cliente não apresenta saldo de bonificação suficiente para a tiragem do pedido;
- O Sistema Geosales Mobile | Sistema Geosales Portal retorna uma mensagem informando ao usuário que não existe saldo de bonificação suficiente para que o pedido seja salvo;
- O usuário remove os itens do pedido para que o valor do pedido atinja o valor permitido pelo saldo de bonificação que o cliente ao qual ele está tirando pedido tem;
- O Sistema Geosales Mobile | Sistema Geosales Portal verifica se o cliente apresenta saldo de bonificação maior ou igual que o valor do pedido [RN1] [RN2] [RN3] [A1];
- O Sistema Geosales Mobile | Sistema Geosales Portal debita do saldo de bonificação do cliente o valor do pedido;
- O Sistema Geosales Mobile | Sistema Geosales Portal salva o pedido;
- Fim do caso de uso;
- [A2] - Edição de pedidos
- Este fluxo alternativo se inicia quando o Usuário decide alterar alguma informação de um pedido já salvo que não foi exportado para o ERP;
- O Usuário acessa a tela de listagem de pedidos, seleciona um pedido de bonificação não exportado e clica em editar pedido;
- O Sistema Geosales Mobile | Sistema Geosales Portal identifica que é uma edição e recupera o saldo que tinha sido utilizado pelo pedido que estava sendo salvo;
- O usuário faz as alterações no pedido e clica em salvar;
- O Sistema Geosales Mobile | Sistema Geosales Portal verifica se o cliente apresenta saldo de bonificação maior ou igual que o valor do pedido [RN1] [RN2] [RN3] [A1];
- O Sistema Geosales Mobile | Sistema Geosales Portal debita do saldo de bonificação do cliente o valor do pedido;
- O Sistema Geosales Mobile | Sistema Geosales Portal salva o pedido;
- Fim do caso de uso;
- [A3] - Exclusão de pedidos
- Este fluxo alternativo se inicia quando o Usuário decide excluir um pedido já salvo que não foi exportado para o ERP;
- O Usuário acessa a tela de listagem de pedidos, seleciona um pedido de bonificação e clica em excluir o pedido;
- O Sistema Geosales Mobile | Sistema Geosales Portal pede uma confirmação para a exclusão do pedido;
- O Usuário confirma a exclusão do pedido;
- O Sistema Geosales Mobile | Sistema Geosales Portal exclui o pedido da base de dados e atualiza o saldo de bonificação para aquele cliente somando o valor do pedido excluído ao saldo;
- Fim do caso de uso;