Mudanças entre as edições de "Cerca Eletrônica"

De GeoSales
Ir para navegação Ir para pesquisar
(Criou página com '==Necessidade== O cliente quer criar uma forma de auditorar a aprovação dos pedidos de bonificação, pois da forma como está os vendedores estão bonificando muito e sem...')
 
 
(27 revisões intermediárias por um outro usuário não estão sendo mostradas)
Linha 1: Linha 1:
 
==Necessidade==
 
==Necessidade==
  
O cliente quer criar uma forma de auditorar a aprovação dos pedidos de bonificação, pois da forma como está os vendedores estão bonificando muito e sem uma forma de controle. É necessário que todos os pedidos de bonificação fiquem pendentes de aprovação. Também é preciso que exista uma forma de auditorar a aprovação desses pedidos cadastrando um motivo de aprovação para a pedido entre alguns motivos pré cadastrados. Para gerenciar essas aprovações é preciso que exista um relatório mostrando o código do pedido, o motivo da aprovação, o tipo de pedido, o cliente, o valor, o supervisor, vendedor e data aprovação. Isso vai permitir quantificar e auditorar esse processo de bonificação.
+
O cliente quer garantir que quando o vendedor/representante faça o check-in durante o atendimento ele esteja realmente visitando o cliente.
  
 
==Pré Detalhes da Solução Imperativa==
 
==Pré Detalhes da Solução Imperativa==
  
Deverá ser criado uma tela aonde possa ser cadastrado os motivos para aprovação ou cancelamento no portal. Esse motivo será vinculado a um tipo de pedido tornando a funcionalidade aplicável a todos os tipos de pedidos. Nessa tela deverá ser possível fazer as operações de exclusão, edição, inserção e listagem para esses motivos. Deverá ser inserido na tela de aprovação de pedido um select box que tenha todos os motivos para ser anexado a aprovação do pedido. Deve ser criado um relatório mostrando o código do pedido, o motivo da aprovação, o tipo de pedido, o cliente, o valor, o supervisor, vendedor e data aprovação que possa ser retirado por um intervalo de tempo. Esse relatório deverá ser exportado em xlsx para que seja possível trabalhar os dados do relatório.
+
No momento que que o vendedor for efetuar o check-in antes de iniciar a venda, o sistema, caso esteja configurado para validar a posição do vendedor, deve calcular a distância entre a posição do vendedor e a posição cadastrada no cliente. Após calcular essa distância, o sistema deve conferir em sua configuração a distância máxima permitida para tiragem do pedido e fazer a seguinte comparação:
  
===Regras de Negócio===
+
* DMP >= DCV
  
*[RN1] - Quando o vendedor for cadastrar um pedido de bonificação deve ser mostrada uma listagem de motivos para tiragem do pedido de bonificação. Nesse caso será obrigatório a seleção de um desses motivos para cadastro do pedido.
+
Onde DMP = Distância Máxima Permitida e DCV = Distância entre Cliente e Vendedor. Caso essa comparação seja verdadeira, então o check-in é permitido. Caso seja falso, então o chek-in não será feito e será mostrada uma mensagem informando que não será permitido efetuar o check-in, pois é obrigatório estar dentro da distância máxima permitida. Obviamente, é necessário que o GPS esteja ligado para que esse cálculo seja feito, sendo que se o mesmo estiver desligado, será emitido um erro ao vendedor.
  
*[RN2] - Todos os pedidos de bonificação devem ficar pendentes de aprovação (Regra deve ser configurada no cadastro do tipo de pedido bonificação).
+
Essa distância máxima permitida é representada como um círculo ao redor da coordenada do cliente com um raio igual a DMP.
  
*[RN3] - A informação do motivo de cadastro da bonificação deve ser integrada também a base do ERP do cliente.
+
O cálculo da distância máxima entre duas coordenadas é dado pela seguinte fórmula:
  
* Deve ser criado um campo de seleção na tela de cabeçalho do pedido que seja preenchido com os motivos de aprovação de pedidos cadastrados. Esses dados devem ser cadastradas numa tabela a parte. Esse campo deve ser inserido tanto no portal como no mobile.
+
*Δλ = | λ′ - λ |
* Deve ser criado um relatório que possibilite a visualização dos motivos de criação dos pedidos de bonificação. Nesse relatório os seguintes dados devem ser mostrados:
+
*''cos''('''S''') = ''sin''(φ′) * ''sin''(φ) + ''cos''(φ′) * ''cos''(φ) * ''cos''(Δλ)
# Código do pedido
+
*'''S''' = ''arcos''(''cos''('''S'''))
# Motivo da aprovação
+
*DCV = '''S''' * '''R'''
# Tipo de pedido
 
# Cliente
 
# Valor do Pedido
 
# Supervisor
 
# Vendedor
 
# Data aprovação(Caso o pedido não tenha sido aprovado ainda este campo ficará vazio)
 
* Adicionar o código do motivo de aprovação para ser persistido para o ERP no web service server.
 
  
* O cadastro do motivo deve ser atrelado a um tipo qualquer de pedido, não limitando a solução somente a pedidos de bonificação. Deverão ser criadas 2 tabelas uma contendo CD_MOTIVO_CADASTRO, CD_TIPO_PEDIDO e a outra contendo, CD_MOTIVO_CADASTRO e DS_MOTIVO_CADASTRO. Isso servirá para evitar a duplicação de registros.
+
onde temos:
 +
 
 +
*'''P1''' = Coordenada geográfica do Cliente
 +
*'''P2''' = Coordenada geográfica do Vendedor
 +
*φ = Latitude do Cliente
 +
*φ′ = Latitude do Vendedor
 +
*λ = Longitude do Cliente
 +
*λ′ = Longitude do Vendedor
 +
*Δλ = Diferença entre as longitudes das duas coordenadas.  
 +
*'''S''' = Arco unindo os dois pontos ('''P1''' e '''P2'''), pois uma vez conhecido este valor bastará multiplicá-lo pelo raio da terra para encontrarmos a distância linear.
 +
*'''R''' = Raio da Terra que tem valor igual 6.371 km
 +
 
 +
*Imagem ilustrativa: [[http://staff.on.br/jlkm/geopath/Coorden.gif]]
  
 
==Cenários==
 
==Cenários==
Linha 33: Linha 38:
 
===Cenário feliz===
 
===Cenário feliz===
  
O vendedor João cadastra um pedido de bonificação.
+
O vendedor João efetua check-in para iniciar a tiragem de pedidos.
  
====Dado====
+
====Dados====
  
# Vendedor João
+
# Vendedor João (-21,0972:43.2075)
# Todos os pedidos de bonificação ficam pendentes de aprovação
+
# Clientes possíveis de ser atendidos pelo vendedor João
# Motivos de Cadastro do Pedido de Bonificação
+
## Cliente A (-22.4525:46,6361)
## Aprovação da diretoria
+
#Δλ = 3,4286
## Bonificação vantajosa
+
#Limite de distância atendimento 400 km
## Bônus por grande compra
 
# Lista de clientes a serem atendidos
 
## Cliente A
 
## Cliente B
 
## Cliente C
 
# O tipo de pedido de bonificação tem em seu cadastro que todo pedido feito desse tipo irá ficar pendente de aprovação
 
  
 
====Operação====
 
====Operação====
  
# João inicia o atendimento ao Cliente A.
+
# João acessa a tela de listagem de clientes, seleciona o Cliente A e clica em atender cliente; 
# João seleciona o tipo de pedido bonificação.
+
# João clica em efetuar check-in;
# João insere o motivo do cadastro do pedido "Aprovação da Diretoria" e clica em inserir itens.
+
# Sistema calcula a distância entre a posição do vendedor João e o Cliente A que é de 358km.
# João insere as informações necessárias e finaliza o cadastro do pedido.
 
  
 
====Assertivas====
 
====Assertivas====
  
# É cadastrado o pedido D do tipo bonificação pelo vendedor João para o cliente A.
+
# O vendedor João poderá efetuar a venda para o Cliente A.
# O pedido de bonificação D fica com o status igual a pendente de aprovação.
 
# No cadastro do pedido D é salvo o motivo de cadastro "Aprovação da Diretoria".
 
  
 +
===Cenário de impedimento de Venda===
  
===Cenário cadastro de pedido sem motivo===
+
O vendedor João efetua check-in para iniciar a tiragem de pedidos.
  
O vendedor João cadastra um pedido de bonificação.
+
====Dados====
  
====Dado====
+
# Vendedor João (-21,0972:43.2075)
 
+
# Clientes possíveis de ser atendidos pelo vendedor João
# Vendedor João
+
## Cliente A (-22.4525:46,6361)
# Todos os pedidos de bonificação ficam pendentes de aprovação
+
#Δλ = 3,4286
# Motivos de Cadastro do Pedido de Bonificação
+
#Limite de distância atendimento 1 km
## Aprovação da diretoria
 
## Bonificação vantajosa
 
## Bônus por grande compra
 
# Lista de clientes a serem atendidos
 
## Cliente A
 
## Cliente B
 
## Cliente C
 
# O tipo de pedido de bonificação tem em seu cadastro que todo pedido feito desse tipo irá ficar pendente de aprovação
 
  
 
====Operação====
 
====Operação====
  
# João inicia o atendimento ao Cliente B.
+
# João acessa a tela de listagem de clientes, seleciona o Cliente A e clica em atender cliente; 
# João seleciona o tipo de pedido bonificação.
+
# João clica em efetuar check-in;
# João não insere o motivo do cadastro do pedido e clica em inserir itens.
+
# Sistema calcula a distância entre a posição do vendedor João e o Cliente A que é de 358km.
# João insere as informações necessárias com exceção do motivo e finaliza o cadastro do pedido.
 
  
 
====Assertivas====
 
====Assertivas====
  
# É mostrada uma mensagem de erro avisando que o pedido não pode ser cadastrado sem o motivo.
+
# O vendedor João não poderá efetuar a venda para o Cliente A.
 +
# O sistema exibe a seguinte mensagem ao Vendedor:
 +
#*"Você não está dentro da distância máxima do cliente permitida para efetuar uma venda!"
 +
 
 +
==Observações==
 +
 
 +
Podem existir pequenos erros de cálculo se as latitudes forem próximas dos polos da terra (devido a mudança de raio).

Edição atual tal como às 14h30min de 22 de dezembro de 2016

Necessidade

O cliente quer garantir que quando o vendedor/representante faça o check-in durante o atendimento ele esteja realmente visitando o cliente.

Pré Detalhes da Solução Imperativa

No momento que que o vendedor for efetuar o check-in antes de iniciar a venda, o sistema, caso esteja configurado para validar a posição do vendedor, deve calcular a distância entre a posição do vendedor e a posição cadastrada no cliente. Após calcular essa distância, o sistema deve conferir em sua configuração a distância máxima permitida para tiragem do pedido e fazer a seguinte comparação:

  • DMP >= DCV

Onde DMP = Distância Máxima Permitida e DCV = Distância entre Cliente e Vendedor. Caso essa comparação seja verdadeira, então o check-in é permitido. Caso seja falso, então o chek-in não será feito e será mostrada uma mensagem informando que não será permitido efetuar o check-in, pois é obrigatório estar dentro da distância máxima permitida. Obviamente, é necessário que o GPS esteja ligado para que esse cálculo seja feito, sendo que se o mesmo estiver desligado, será emitido um erro ao vendedor.

Essa distância máxima permitida é representada como um círculo ao redor da coordenada do cliente com um raio igual a DMP.

O cálculo da distância máxima entre duas coordenadas é dado pela seguinte fórmula:

  • Δλ = | λ′ - λ |
  • cos(S) = sin(φ′) * sin(φ) + cos(φ′) * cos(φ) * cos(Δλ)
  • S = arcos(cos(S))
  • DCV = S * R

onde temos:

  • P1 = Coordenada geográfica do Cliente
  • P2 = Coordenada geográfica do Vendedor
  • φ = Latitude do Cliente
  • φ′ = Latitude do Vendedor
  • λ = Longitude do Cliente
  • λ′ = Longitude do Vendedor
  • Δλ = Diferença entre as longitudes das duas coordenadas.
  • S = Arco unindo os dois pontos (P1 e P2), pois uma vez conhecido este valor bastará multiplicá-lo pelo raio da terra para encontrarmos a distância linear.
  • R = Raio da Terra que tem valor igual 6.371 km
  • Imagem ilustrativa: [[1]]

Cenários

Cenário feliz

O vendedor João efetua check-in para iniciar a tiragem de pedidos.

Dados

  1. Vendedor João (-21,0972:43.2075)
  2. Clientes possíveis de ser atendidos pelo vendedor João
    1. Cliente A (-22.4525:46,6361)
  3. Δλ = 3,4286
  4. Limite de distância atendimento 400 km

Operação

  1. João acessa a tela de listagem de clientes, seleciona o Cliente A e clica em atender cliente;
  2. João clica em efetuar check-in;
  3. Sistema calcula a distância entre a posição do vendedor João e o Cliente A que é de 358km.

Assertivas

  1. O vendedor João poderá efetuar a venda para o Cliente A.

Cenário de impedimento de Venda

O vendedor João efetua check-in para iniciar a tiragem de pedidos.

Dados

  1. Vendedor João (-21,0972:43.2075)
  2. Clientes possíveis de ser atendidos pelo vendedor João
    1. Cliente A (-22.4525:46,6361)
  3. Δλ = 3,4286
  4. Limite de distância atendimento 1 km

Operação

  1. João acessa a tela de listagem de clientes, seleciona o Cliente A e clica em atender cliente;
  2. João clica em efetuar check-in;
  3. Sistema calcula a distância entre a posição do vendedor João e o Cliente A que é de 358km.

Assertivas

  1. O vendedor João não poderá efetuar a venda para o Cliente A.
  2. O sistema exibe a seguinte mensagem ao Vendedor:
    • "Você não está dentro da distância máxima do cliente permitida para efetuar uma venda!"

Observações

Podem existir pequenos erros de cálculo se as latitudes forem próximas dos polos da terra (devido a mudança de raio).