Árvore de páginas

01. DADOS GERAIS


Produto:

TOTVS CRM Automação da Força de Vendas

Linha de Produto:

Linha TOTVS CRM SFA

Módulo:Venda
Função:Pedido
Ticket:
Requisito/Story/Issue:

TSFAFSWE-3993 - Obtendo detalhes do item... STATUS

02. GLOSSÁRIO

Referência textual

Descrição detalhada

Desconto padrão

O desconto padrão assumido pelo sistema quanto um item será adicionado ao pedido é baseado na seguinte lógica: 

Se desconto.idnaplicaautomatico = 1 então 
	Se desconto.valor is not null então desconto.valor
	Caso contrário então desconto.percentual
Caso contrário então 0

03. ESCOPO FUNCIONAL

Atualmente,

Pela tela de Cadastro → Venda → Desconto,

O sistema permite que sejam cadastradas políticas de descontos que podem fazer influência no pedido nos seguintes sentidos:

      • Pode influenciar na busca do preço original do produto no pedido, aplicando um percentual/valor de desconto automaticamente ao preço buscado pela tabela de preço selecionada no cabeçalho
      • Pode influenciar no preço de venda inicial que é trazido à tela, aplicando um percentual/valor de desconto comercial automaticamente aplicado ao preço de venda.
      • Pode determinar o limite de desconto comercial que pode ser aplicação, até que o pedido seja encaminhado para aprovação.
      • Pode determinar o limite de desconto comercial que pode ser aplicado pelo usuário no momento da venda, até que exista um bloqueio do desconto aplicado.

Portanto, para preços de venda menores que os preços originais (tabela), juntamente com o preço mínimo do produto cadastrado na tabela de preço, o sistema permite uma complexidade maior para determinar os limites de desconto que um usuário pode fornecer no momento da venda.

Entretanto,

Não é possível cadastrar políticas de acréscimo, que fazem a mesma limitação de digitação de preços de venda, quando se deseja aplicar um percentual de acréscimo ao preço original do produto do pedido, como quando se deseja aplicar um preço de venda superior ao preço original (acréscimo).

A limitação da digitação de preço de venda com acréscimo é somente determinada pelo preço máximo do produto cadastrado na tabela de preço.

Agora,

Pela tela de Cadastro → Venda → Desconto, que deverá ser renomeada para "Desconto/Acréscimo",

O sistema deverá permitir o cadastro de valores/percentuais negativos, representando as políticas de acréscimo do sistema.

No momento da venda, o sistema deverá considerar tanto um possível percentual de desconto quanto um possível percentual de acréscimo no momento de influenciar no cálculo do preço original do item do pedido.

Ainda, o sistema deverá aplicar os limites de desconto para levar o pedido à aprovação, como também bloquear a aplicação de acréscimos devido aos registros cadastrados com valores/percentuais negativos, semelhantemente ao que acontece com as políticas de desconto.

A tela de cadastro deverá receber atualizações de validações, garantindo que valores positivos e negativos não se misturem.

A tela de cadastro deverá conter filtro que o usuário utilizará para filtrar somente registros de políticas de desconto, ou somente registros de políticas de acréscimo.

04. ESCOPO TÉCNICO

04.01 Renomear menu descontos

Contexto / Gatilho:

  • No ambiente Web, ao acessar o menu lateral esquerdo

Lógica:

  • A opção Cadastro → Venda → Desconto deverá ser renomeada para "Desconto / Acréscimo" e seu código de referência para pesquisa rápida alterado de "desconto" para "descontoacrescimo"

04.02 Criação de campo lógico para identificação de políticas de desconto / acréscimo

Contexto / Gatilho:

  • No ambiente Web, ao acessar o menu Cadastro → Venda → Desconto / Acréscimo

Lógica:

  • Deve ser criada nova coluna de label "Desc. / Acr.": textual, não editável

    • O conteúdo da coluna será o resultado da lógica a seguir:

      se (desconto.faixapercentualinicial < 0 ou desconto.faixapercentualfinal < 0 ou desconto.percentual < 0 ou desconto.valor < 0) 
      	então "Acréscimo"
      caso contrário
      	então "Desconto"
  • Deve ser criado filtro avançado para poder filtrar pela nova coluna criada, sendo do tipo combobox, seleção simples, com opções ("Selecione..." (todos), "Desconto", "Acréscimo")

04.03 Separação de cache de descontos / acréscimos

Contexto / Gatilho:

  • Nos ambientes Web / Mobile, na tela de edição de pedido de venda, ao consultar o cache de itens

Lógica:

  • Da mesma forma que hoje os caches de "Descontos sobre preço de tabela" foram separados de "Descontos sobre preço de venda" utilizando os mesmos critérios de busca de Busca Produto → DESCONTO, o sistema deverá separar o cache desta forma:

    • "Descontos sobre preço de tabela" : Mesma lógica, apenas filtrando registros cujo campo "Desc. / Acr." seja igual a "Desconto"
    • "Descontos sobre preço de venda": Mesma lógica, apenas filtrando registros cujo campo "Desc. / Acr." seja igual a "Desconto"
    • "Acréscimos sobre preço de tabela": Mesma lógica de "Descontos sobre preço de tabela", apenas filtrando registros cujo campo "Desc. / Acr." seja igual a "Acréscimo"
    • "Acréscimos sobre preço de venda": Mesma lógica de "Descontos sobre preço de venda", apenas filtrando registros cujo campo "Desc. / Acr." seja igual a "Acréscimo"

04.04 Implementação de lógicas de acréscimo sobre preço de tabela

Contexto / Gatilho:

  • Nos ambientes Web / Mobile, na tela de edição de pedido de venda, ao calcular o preço original do item

Lógica:

  • Da mesma forma que atualmente é consultado um registro de desconto do cache de "Descontos sobre preço de tabela", para ter o valor (ou percentual) multiplicado pelo preço de tabela para influenciar no preço original

    • Agora, serão consultados 2 registros:
      • Um do cache de "Descontos sobre preço de tabela"
      • Um do cache de "Acréscimos sobre preço de tabela" 
        • Visto que o desconto.valor (ou desconto.percentual) estarão negativos, deverão ser tratados desta forma para influenciar corretamente no preço:

          se (desconto.valor is not null) {
          	então preco_influenciado = preco_anterior - desconto.valor --menos com menos dá mais
          } caso contrário se (desconto.percentual is not null) {
          	então preco_influenciado = preco_anterior * (1-desconto.percentual/100) --menos com menos dá mais
          }
    • A influência de desconto deve ser aplicada anteriormente à influência de acréscimo, ou seja, a base de cálculo (preco_anterior) é o valor já influenciado pelo desconto.

03.05 Implementação de lógicas de acréscimo sobre preço de venda

Contexto / Gatilho:

  • Nos ambientes Web / Mobile, na tela de edição de pedido de venda, ao calcular o preço original do item

Lógica:

  • Da mesma forma que atualmente é consultado um registro de desconto do cache de "Descontos sobre preço de venda", para definir lógicas de até quanto de desconto é permitido inserir para aquela faixa de percentuais (lógicas definidas pelo cadastro do campo "Lógica ao exceder"),

    • Agora, serão consultados 2 registros:
      • Um do cache de "Descontos sobre preço de venda"
      • Um do cache de "Acréscimos sobre preço de venda"
        • Espelhando a lógica de políticas de descontos de forma a definir faixas permitidas de acréscimo e um limite de quanto acréscimo pode ser fornecido ao item sem aprovações / bloqueios  (lógicas definidas pelo cadastro do campo "Lógica ao exceder)
        • Atualmente, quando o filtro de FAIXA_PERCENTUAL não está configurado na busca de níveis, o sistema tem uma lógica de verificar ao inserir o item se o desconto padrão está contido dentro da faixa de percentual cadastrada para o registro buscado no cache.
          • Se não estiver, o sistema adiciona o item com % desconto igual ao percentual cadastrado na faixa de percentual inicial, para garantir que o registro esteja válido segundo a política de descontos
          • Para não causar conflito, quando existirem políticas de desconto retornadas no cache de "Descontos sobre preço de venda", essa validação não precisa acontecer para os acréscimos. Caso contrário, a validação deve acontecer para os acréscimos também.
  • Sem rótulos