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

De GeoSales
Ir para navegação Ir para pesquisar
(Criou página com '= Funcionalidade Bonificação com Saldo Fixo = === Necessidade === É preciso que um vendedor possa tirar pedidos de bonificação para clientes consumindo um saldo especí...')
 
 
(23 revisões intermediárias por 3 usuários não estão sendo mostradas)
Linha 1: Linha 1:
= Funcionalidade Bonificação com Saldo Fixo =
+
== Necessidade ==
  
=== 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. O Saldo do cliente deve estar disponível para visualização do vendedor.
  
É 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 ==
  
==== Regras de Negócio ====
+
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.
  
*[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;
+
=== Regras de Negócio ===
*[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.
+
*[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
 +
#'''V''' = valor do pedido de bonificação
 +
#'''SA''' = saldo disponível para o cliente antes da tirado do pedido
 +
#'''SN''' = saldo novo disponível para o cliente, logo depois da tirado do pedido
  
=== Solução Declarativa ===
+
*[RN2] - O Saldo deve ser atualizado de acordo com as mudanças (Edição, exclusão, cancelamento, inclusão) nos pedidos alvo
  
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.
+
== Pré Detalhes da Solução Imperativa ==
  
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).
+
* 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 vinculado 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.
 +
* Como existe a possibilidade de pedidos de bonificação serem tirados no próprio ERP e haver devolução de notas fiscais, o controle do saldo estará no próprio ERP onde no campo A1_X_VALBO  o valor total autorizado é salvo. Ao lado desse campo está o campo que contém o dado do saldo restante para ser utilizado.
  
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.
+
== Cenários ==
  
=== Pré Detalhes da Solução Imperativa ===
+
===Cenário feliz===
 +
João faz um pedido de bonificação para Sousa dentro dos limites
  
*TABELA
+
====Dado====
SALDO_BONI_CLIENTE
+
# 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'''
  
*CAMPOS
+
====Operação====
#CD_CLIENTE INT PK
+
# João cadastra o pedido '''X''' para Sousa no valor de R$800
#CD_TIPO_MOVIMENTO_PEDIDO INT PK
+
# João finaliza/salva esse pedido
#SALDO DECIMAL(18,6) NOT NULL
 
  
=== Cenários ===
+
====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
  
==== Happy Day ====
+
===Cenário sem saldo===
 +
João faz um pedido de bonificação para Sousa que excede seu saldo
  
# O usuário acessa o Sistema Geosales Mobile e efetua login;
+
====Dado====
# 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;
+
# Usuário João
# O Usuário seleciona a opção de cadastro de itens do pedido;
+
# Cliente Sousa com saldo de bonificação de R$500
# O Usuário acessa a aba de produtos;
+
# O pedido de bonificação sendo criado com código pedido palm '''Y'''
# 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 ====
+
====Operação====
 +
# João cadastra o pedido '''Y''' para Sousa no valor de R$900
 +
# João finaliza/salva esse pedido
  
* [A1] -  Saldo de Bonificação Insuficiente
+
====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
  
# 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;
+
===Cenário edição de pedidos de bonificação===
# 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;
+
João edita as informações do pedido de bonificação feito para o Sousa
# 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
+
====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'''
  
# 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;
+
====Operação====
# O Usuário acessa a tela de listagem de pedidos, seleciona um pedido de bonificação não exportado e clica em editar pedido;
+
# João edita o pedido '''Y''' para Sousa e adiciona mais 2 produtos no valor de R$100,00
# 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;
+
# João finaliza/salva esse pedido
# 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
+
====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
  
# Este fluxo alternativo se inicia quando o Usuário decide excluir um pedido já salvo que não foi exportado para o ERP;
+
===Cenário exclusão de pedidos de bonificação===
# O Usuário acessa a tela de listagem de pedidos, seleciona um pedido de bonificação e clica em excluir o pedido;
+
João exclui o pedido de bonificação feito para o Sousa
# 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;
+
====Dado====
# 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;
+
# Usuário João
# Fim do caso de uso;
+
# 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

Edição atual tal como às 20h38min de 24 de outubro 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. O Saldo do cliente deve estar disponível para visualização do vendedor.

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 vinculado 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.
  • Como existe a possibilidade de pedidos de bonificação serem tirados no próprio ERP e haver devolução de notas fiscais, o controle do saldo estará no próprio ERP onde no campo A1_X_VALBO o valor total autorizado é salvo. Ao lado desse campo está o campo que contém o dado do saldo restante para ser utilizado.

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