Projeto/Ourolux/Documentação/Normalizar Pedido

De GeoSales
Ir para navegação Ir para pesquisar

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.

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: A (com quantidade 15 e com estoque maior que 15)

Operação

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

Assertivas

Pedido X foi normalizado com sucesso e o pedido X' foi criado com o item A e com quantidade 15

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: A (com quantidade 15 e com estoque maior que 15) e B (com quantidade 10 e com estoque menor que 10)

Operação

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

Assertivas

Pedido X foi normalizado com sucesso e o pedido X' foi criado com o item A e com quantidade 15 e sem o item B, além disso uma grid é mostrada com o item B e com a pendência de estoque impeditivo

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: A (com quantidade 15 e com estoque menor que 15) e B (com quantidade 10 e com estoque menor que 10)

Operação

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

Assertivas

Pedido X foi normalizado com sucesso e o pedido X' não chegou a ser criado. Uma grid é mostrada com os itens A e B e com a pendências de estoque impeditivo

Autor?

Caras, se liguem, façam login!

É de graça e fácil

Solução vs implementação

É 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 solução dita as regras que devem ser seguidas na criação da implementação, enquanto que a 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.

Cenário confuso

Cara, esses cenários estão pessimamente testáveis... Assim, eles não ajudam na capacidade de escrita do teste.

Para ser facilmente testável, é melhor separar o cenário em Dados, Operação e Assertiva, como nos exemplos:

Nome da página

Gentes, o nome da página está Projeto/Ourolux/Documentação/NormalizarPedido, quando eu creio que deveria ser Projeto/Ourolux/Documentação/Normalizar Pedido, não?