Mudanças entre as edições de "Projeto/Ourolux/Documentação/Normalizar Pedido"

De GeoSales
Ir para navegação Ir para pesquisar
 
(25 revisões intermediárias por 2 usuários não estão sendo mostradas)
Linha 1: Linha 1:
 
=Necessidade=
 
=Necessidade=
Cliente precisa copiar um determinado pedido. Se o pedido a ser copiado tiver alguma pendência que impeça sua criação (Ex: estoque impeditivo), este pedido precisa ser normalizado para que possa ser criado no GeoSales. A normalização do pedido garante que o pedido poderá ser copiado dentro do GeoSales.
+
Cliente precisa copiar um determinado pedido. Se o pedido a ser copiado tiver alguma pendência que impeça sua criação (Ex: estoque impeditivo), este pedido precisa ser normalizado para que possa ser criado no GeoSales.
  
 
== Definição do que é um pedido normalizado ==
 
== Definição do que é um pedido normalizado ==
Um pedido normalizado A é a cópia de um pedido B sendo tratadas quaisquer pendências de criação, de maneira que o pedido A surja no GeoSales.
+
Um pedido normalizado '''A''' é a cópia de um pedido '''B''' sendo tratadas quaisquer pendências de criação, de maneira que o pedido '''A''' surja no GeoSales.
  
 
== Solução declarativa ==
 
== Solução declarativa ==
Linha 9: Linha 9:
  
 
== Solução imperativa ==
 
== Solução imperativa ==
 
  
  
 
== Cenários ==
 
== Cenários ==
 
===Cenário Feliz===
 
===Cenário Feliz===
João cadastra um pedido com observação de nota fiscal
+
João normaliza um pedido que não tem nenhuma pendência
  
 
====Dado====
 
====Dado====
 
+
*Vendedor: João
*Vendedor João
+
*Pedido a ser normalizado: X
*Cliente: A
+
*Itens:
*UF Cliente: RJ
+
# Item '''A'''
 +
## Produto '''Cadeira de rodinhas'''
 +
## Quantidade 15
 +
# Organização '''SoftSite''' com estoque '''Copa'''
 +
# O estoque '''Copa''' tem o seguinte produto:
 +
## '''Cadeira de rodinhas''' com 20 unidades em estoque
  
 
====Operação====
 
====Operação====
 
+
João aciona o botão de normalizar pedido para normalizar o pedido X
João cadastra no Pedido Y as informações do pedido normalmente e antes de finalizar o pedido ele clica no botão de observação aonde ele vê os campos de observação normal e observação de nota fiscal aonde ele insere a observação "Essa nota deverá ser emitida efetivamente se ocorrer devolução da mercadoria ao consignante".
 
  
 
====Assertivas====
 
====Assertivas====
 +
Foi criado um novo pedido '''X''''
 +
# O cabeçalho do pedido '''X'''' é idêntico ao do '''X''' nos seguintes campos:
 +
## Org Venda
 +
## Tab Preço
 +
## Cliente
 +
## Vendedor
 +
## Meio de pagamento
 +
## Condição de pagamento
 +
## Tipo movimento pedido
 +
# O cabeçalho do pedido '''X'''' difere do cabeçalho do '''X''' nos seguintes campos:
 +
## Data de emissão
 +
## Código do pedido
 +
## Data de entrega
 +
# A situação do pedido '''X'''' é nula
 +
# O pedido '''X'''' tem o item '''A''''
 +
# O item '''A'''' é idêntico ao item '''A''' do pedido '''X''' nos seguintes campos:
 +
## Produto
 +
## Referência usada
 +
## Quantidade
 +
## Desconto
 +
## Tipo de venda
 +
# '''X'''' não tem pendências
  
Pedido Y foi salvo e tem em seu campo de observação de nota fiscal o valor:
+
===Cenário Feliz Alternativo===
"Essa nota deverá ser emitida efetivamente se ocorrer devolução da mercadoria ao consignante"
+
João normaliza um pedido que possui um item com desconto
  
== Autor? ==
+
====Dado====
 +
*Vendedor: João
 +
*Pedido a ser normalizado: X
 +
*Itens:
 +
# Item '''A'''
 +
## Produto '''Cadeira de rodinhas'''
 +
## Desconto 10 %
 +
# Faixa de Preço (no momento da tiragem)
 +
## Valor Mínimo R$9,00
 +
## Valor Sugerido R$10,00
 +
## Valor Máximo R$12,00
 +
# Preço de Venda R$9,00
 +
*Produto '''Cadeira de rodinhas'''
 +
# Faixa de Preço atual (no momento de interação do vendedor)
 +
## Valor Mínimo R$45,00
 +
## Valor Sugerido R$50,00
 +
## Valor Máximo R$50,00
  
Caras, se liguem, façam login!
+
====Operação====
 +
João aciona o botão de normalizar pedido para normalizar o pedido X
  
É de graça e fácil
+
====Assertivas====
 +
Foi criado um novo pedido '''X''''
 +
# O cabeçalho do pedido '''X'''' é idêntico ao do '''X''' nos seguintes campos:
 +
## Org Venda
 +
## Tab Preço
 +
## Cliente
 +
## Vendedor
 +
## Meio de pagamento
 +
## Condição de pagamento
 +
## Tipo movimento pedido
 +
# O cabeçalho do pedido '''X'''' difere do cabeçalho do '''X''' nos seguintes campos:
 +
## Data de emissão
 +
## Código do pedido
 +
## Data de entrega
 +
# A situação do pedido '''X'''' é nula
 +
# O pedido '''X'''' tem o item '''A''''
 +
# O item '''A'''' é idêntico ao item '''A''' do pedido '''X''' nos seguintes campos:
 +
## Produto
 +
## Referência usada
 +
## Quantidade
 +
## Desconto
 +
## Tipo de venda
 +
# O item '''A'''' difere do item '''A''' do pedido '''X''' nos seguintes campos:
 +
##Faixa Preço
 +
## Valor Mínimo R$45,00
 +
## Valor Sugerido R$50,00
 +
## Valor Máximo R$50,00
 +
## Preço de Venda R$45,00
 +
# '''X'''' não tem pendências
  
== Solução vs implementação ==
+
===Cenário com um item com alguma pendência===
 +
João normaliza um pedido que possui alguma pendência
  
É sempre bom definir de modo separado a solução da implementação. Por exemplo, [[Validade de sincronismo de acordo com fuso horário do vendedor]] trata essa separação, onde a [[Validade de sincronismo de acordo com fuso horário do vendedor#Solução declarativa|solução]] dita as regras que devem ser seguidas na criação da implementação, enquanto que a [[Validade de sincronismo de acordo com fuso horário do vendedor#Pré-detalhes da informação imperativa|implementação]] trata de detalhes de como essas regras serão tratadas em um nível mais baixo, desde distribuição dos dados, explicação da estrutura das tabelas até mudanças necessárias em consultas no sistema.
+
====Dado====
 +
*Vendedor: João
 +
*Pedido a ser normalizado: X
 +
*Itens:
 +
# Item '''A'''
 +
## Produto '''Cadeira de rodinhas'''
 +
## Quantidade 15
 +
# Item '''B'''
 +
## Produto '''Banquinho'''
 +
## Quantidade 10
 +
# Organização '''SoftSite''' com estoque '''Copa'''
 +
# O estoque '''Copa''' tem os seguintes produtos:
 +
## '''Cadeira de rodinhas''' com 20 unidades em estoque
 +
## '''Banquinho''' com 5 unidades
  
== Cenário confuso ==
+
====Operação====
 +
João aciona o botão de normalizar pedido para normalizar o pedido X
 +
 
 +
====Assertivas====
 +
# Foi criado um novo pedido '''X''''
 +
# O cabeçalho do pedido '''X'''' é idêntico ao do '''X''' nos seguintes campos:
 +
## Org Venda
 +
## Tab Preço
 +
## Cliente
 +
## Vendedor
 +
## Meio de pagamento
 +
## Condição de pagamento
 +
## Tipo movimento pedido
 +
# O cabeçalho do pedido '''X'''' difere do cabeçalho do '''X''' nos seguintes campos:
 +
## Data de emissão
 +
## Código de pedido
 +
## Data de entrega
 +
# A situação do pedido '''X'''' é nula
 +
# O pedido '''X'''' tem o item '''A''''
 +
# O item '''A'''' é idêntico ao item '''A''' do pedido '''X''' nos seguintes campos:
 +
## Produto
 +
## Referência usada
 +
## Quantidade
 +
## Desconto
 +
## Tipo de venda
 +
# '''X'''' não tem pendências
  
Cara, esses cenários estão pessimamente testáveis... Assim, eles não ajudam na capacidade de escrita do teste.
+
===Cenário com todos os itens com alguma pendência===
 +
João normaliza um pedido em que todos os itens possuem alguma pendência
  
Para ser facilmente testável, é melhor separar o cenário em Dados, Operação e Assertiva, como nos exemplos:
+
====Dado====
* [[Inserção Motivo de Cadastro de Pedidos#Cenários]]
+
*Vendedor: João
* [[Bonificação com Saldo Fixo#Cenários]]
+
*Pedido a ser normalizado: X
* [[Desconto negociado#Cenários]]
+
*Itens:
* [[Observação de Nota Fiscal#Cenários]]
+
# Item '''A'''
* [[Funcionalidade/Limite de crédito#Cenários de fluxo]]
+
## Produto '''Cadeira de rodinhas'''
 +
## Quantidade 15
 +
# Item '''B'''
 +
## Produto '''Banquinho'''
 +
## Quantidade 10
 +
# Organização '''SoftSite''' com estoque '''Copa'''
 +
# O estoque '''Copa''' tem os seguintes produtos:
 +
## '''Cadeira de rodinhas''' com 10 unidades em estoque
 +
## '''Banquinho''' com 5 unidades
  
== Nome da página ==
+
====Operação====
 +
João aciona o botão de normalizar pedido para normalizar o pedido X
  
Gentes, o nome da página está <code>Projeto/Ourolux/Documentação/NormalizarPedido</code>, quando eu creio que deveria ser <code>Projeto/Ourolux/Documentação/Normalizar Pedido</code>, não?
+
====Assertivas====
 +
# Novo pedido '''X'''' não foi criado

Edição atual tal como às 18h54min de 9 de dezembro de 2016

Necessidade

Cliente precisa copiar um determinado pedido. Se o pedido a ser copiado tiver alguma pendência que impeça sua criação (Ex: estoque impeditivo), este pedido precisa ser normalizado para que possa ser criado no GeoSales.

Definição do que é um pedido normalizado

Um pedido normalizado A é a cópia de um pedido B sendo tratadas quaisquer pendências de criação, de maneira que o pedido A surja no GeoSales.

Solução declarativa

Todo pedido deve poder ser normalizado pelo GeoSales. A normalização de um pedido só não resultará na criação de um novo pedido se o pedido a ser normalizado não possuir nenhum item sem alguma pendência.

Solução imperativa

Cenários

Cenário Feliz

João normaliza um pedido que não tem nenhuma pendência

Dado

  • Vendedor: João
  • Pedido a ser normalizado: X
  • Itens:
  1. Item A
    1. Produto Cadeira de rodinhas
    2. Quantidade 15
  2. Organização SoftSite com estoque Copa
  3. O estoque Copa tem o seguinte produto:
    1. Cadeira de rodinhas com 20 unidades em estoque

Operação

João aciona o botão de normalizar pedido para normalizar o pedido X

Assertivas

Foi criado um novo pedido X'

  1. O cabeçalho do pedido X' é idêntico ao do X nos seguintes campos:
    1. Org Venda
    2. Tab Preço
    3. Cliente
    4. Vendedor
    5. Meio de pagamento
    6. Condição de pagamento
    7. Tipo movimento pedido
  2. O cabeçalho do pedido X' difere do cabeçalho do X nos seguintes campos:
    1. Data de emissão
    2. Código do pedido
    3. Data de entrega
  3. A situação do pedido X' é nula
  4. O pedido X' tem o item A'
  5. O item A' é idêntico ao item A do pedido X nos seguintes campos:
    1. Produto
    2. Referência usada
    3. Quantidade
    4. Desconto
    5. Tipo de venda
  6. X' não tem pendências

Cenário Feliz Alternativo

João normaliza um pedido que possui um item com desconto

Dado

  • Vendedor: João
  • Pedido a ser normalizado: X
  • Itens:
  1. Item A
    1. Produto Cadeira de rodinhas
    2. Desconto 10 %
  2. Faixa de Preço (no momento da tiragem)
    1. Valor Mínimo R$9,00
    2. Valor Sugerido R$10,00
    3. Valor Máximo R$12,00
  3. Preço de Venda R$9,00
  • Produto Cadeira de rodinhas
  1. Faixa de Preço atual (no momento de interação do vendedor)
    1. Valor Mínimo R$45,00
    2. Valor Sugerido R$50,00
    3. Valor Máximo R$50,00

Operação

João aciona o botão de normalizar pedido para normalizar o pedido X

Assertivas

Foi criado um novo pedido X'

  1. O cabeçalho do pedido X' é idêntico ao do X nos seguintes campos:
    1. Org Venda
    2. Tab Preço
    3. Cliente
    4. Vendedor
    5. Meio de pagamento
    6. Condição de pagamento
    7. Tipo movimento pedido
  2. O cabeçalho do pedido X' difere do cabeçalho do X nos seguintes campos:
    1. Data de emissão
    2. Código do pedido
    3. Data de entrega
  3. A situação do pedido X' é nula
  4. O pedido X' tem o item A'
  5. O item A' é idêntico ao item A do pedido X nos seguintes campos:
    1. Produto
    2. Referência usada
    3. Quantidade
    4. Desconto
    5. Tipo de venda
  6. O item A' difere do item A do pedido X nos seguintes campos:
    1. Faixa Preço
    2. Valor Mínimo R$45,00
    3. Valor Sugerido R$50,00
    4. Valor Máximo R$50,00
    5. Preço de Venda R$45,00
  7. X' não tem pendências

Cenário com um item com alguma pendência

João normaliza um pedido que possui alguma pendência

Dado

  • Vendedor: João
  • Pedido a ser normalizado: X
  • Itens:
  1. Item A
    1. Produto Cadeira de rodinhas
    2. Quantidade 15
  2. Item B
    1. Produto Banquinho
    2. Quantidade 10
  3. Organização SoftSite com estoque Copa
  4. O estoque Copa tem os seguintes produtos:
    1. Cadeira de rodinhas com 20 unidades em estoque
    2. Banquinho com 5 unidades

Operação

João aciona o botão de normalizar pedido para normalizar o pedido X

Assertivas

  1. Foi criado um novo pedido X'
  2. O cabeçalho do pedido X' é idêntico ao do X nos seguintes campos:
    1. Org Venda
    2. Tab Preço
    3. Cliente
    4. Vendedor
    5. Meio de pagamento
    6. Condição de pagamento
    7. Tipo movimento pedido
  3. O cabeçalho do pedido X' difere do cabeçalho do X nos seguintes campos:
    1. Data de emissão
    2. Código de pedido
    3. Data de entrega
  4. A situação do pedido X' é nula
  5. O pedido X' tem o item A'
  6. O item A' é idêntico ao item A do pedido X nos seguintes campos:
    1. Produto
    2. Referência usada
    3. Quantidade
    4. Desconto
    5. Tipo de venda
  7. X' não tem pendências

Cenário com todos os itens com alguma pendência

João normaliza um pedido em que todos os itens possuem alguma pendência

Dado

  • Vendedor: João
  • Pedido a ser normalizado: X
  • Itens:
  1. Item A
    1. Produto Cadeira de rodinhas
    2. Quantidade 15
  2. Item B
    1. Produto Banquinho
    2. Quantidade 10
  3. Organização SoftSite com estoque Copa
  4. O estoque Copa tem os seguintes produtos:
    1. Cadeira de rodinhas com 10 unidades em estoque
    2. Banquinho com 5 unidades

Operação

João aciona o botão de normalizar pedido para normalizar o pedido X

Assertivas

  1. Novo pedido X' não foi criado