Produto: | Automação da Força de Vendas |
Linha de Produto: | TOTVS CRM |
Segmento: | Cross Segmentos |
Módulo: | Venda |
Aplicação: | Web/App móvel |
Identificador: | TSFAFSWE-1895 |
O recurso 'Desconto de Rodapé no Pedido' permite aplicar descontos somente ao valor total do pedido, sem afetar os preços individuais dos itens, garantindo flexibilidade e precisão no gerenciamento de descontos.
Visa simplificar e flexibilizar a aplicação de descontos, mantendo o controle sobre valores totais.
A empresa XYZ Comércio, que vende materiais de construção, desejava uma forma mais rápida e precisa de aplicar descontos em pedidos maiores de clientes empresariais.
A equipe de vendas da XYZ Comércio enfrentava dificuldades ao aplicar descontos em pedidos de grande volume. O processo manual era demorado e suscetível a erros, afetando negociações e a eficiência geral.
Com o novo recurso "Desconto de Rodapé no Pedido", a equipe agora pode aplicar descontos diretamente no valor total do pedido. Ao receber um pedido de um cliente corporativo, eles selecionam o desconto desejado e o sistema faz o cálculo automaticamente, sem alterar os preços individuais dos itens.
Pelo "tools", opção 3, o sistema deverá executar as seguintes ações:
Pelo "tools", opção 18, o sistema deverá criar os seguintes registros na tabela "wsconfigpedidoresumo":
INSERT INTO public.wsconfigpedidoresumo (chave,"label",idnvisivel,idnobrigatorio,idnexiberelatorio,idneditavel)
VALUES ('VALOR_TOTAL_FORMULA','standard.pedidoconfig.resumo.lbl.valortotalformula',0,0,0,0);
INSERT INTO public.wsconfigpedidoresumo (chave,"label",idnvisivel,idnobrigatorio,idnexiberelatorio,idneditavel)
VALUES ('VALOR_DESCONTO_RESUMO','standard.pedidoconfig.resumo.lbl.valordescontoresumo',0,0,0,0);
INSERT INTO public.wsconfigpedidoresumo (chave,"label",idnvisivel,idnobrigatorio,idnexiberelatorio,idneditavel)
VALUES ('PERCENTUAL_DESCONTO_RESUMO','standard.pedidoconfig.resumo.lbl.percentualdescontoresumo',0,0,0,0);
Pelo "tools", opção 18, o sistema deverá criar os seguintes registros na tabela "wsconfigpedidoformula":
INSERT INTO public.wsconfigpedidoformula (identificador,descricao,formula,idnativo,contexto)
VALUES ('VALOR_BASE_DESCONTO_RESUMO','Valor total do pedido, calculado por fórmula','RESUMO_VALOR_TOTAL_LIQUIDO',0,'RESUMO');
INSERT INTO public.wsconfigpedidoformula (identificador,descricao,formula,idnativo,contexto)
VALUES ('VALOR_TOTAL_FORMULA','Valor total do pedido, calculado por fórmula','RESUMO_VALOR_TOTAL_LIQUIDO - RESUMO_VALOR_DESCONTO_RESUMO',0,'RESUMO');
Na tela de cadastro de tipo de desconto,
O sistema deverá realizar a inclusão das seguintes colunas:
Para os registros anteriores a esta versão a aplicação considerará o PRECOTAB como padrão quando o campo "Lógica preço" estiver nulo.
Persistir no campo tipodesconto.sgllogicapreco
Persistir no campo tipodesconto.sgllogicaexceder
Ao selecionar a opção APR, o sistema deverá habilitar para edição o campo "Tipo aprovação"
O campo deverá exibir todos os tipos de aprovação ativos
Persistir no campo tipodesconto.idtipoaprovacao
Persistir no campo tipodesconto.faixapercentualinicial
Persistir no campo tipodesconto.faixapercentualfinal
Persistir no campo tipodesconto.valor
A coluna não deverá ser editável caso o campo "Lógica preço" estiver com valor "PRECOTAB" ou a coluna "Percentual" estiver com valores preenchidos
Se a coluna já tiver valores persistidos, ao alterar a coluna "PRECOTAB", os valores deverão ser limpos
A coluna existente "Percentual" não deverá ser editável caso o campo "Valor monetário" estiver com valores preenchidos
Na tela de "Configuração > Configuração pedido > Resumo", o sistema deverá exibir os registros de:
A configuração de níveis e filtros gerais deverão estar bloqueados para ação.
Na tela de "Configuração > Configuração pedido > Fórmulas", deverá existir mais dois registros de fórmula, de códigos: VALOR_TOTAL_FORMULA e VALOR_BASE_DESCONTO_RESUMO
Ao clicar na edição da fórmula VALOR_TOTAL_FORMULA, o sistema deverá exibir as seguintes variáveis para interpolação:
Esse valor deverá ser criado como novo Enum, com descrição "Valor total desconto no resumo, inserido a partir de tipos de desconto" referente ao campo pedido.valortotalresumo
Ao clicar na edição da fórmula VALOR_BASE_DESCONTO_RESUMO, o sistema deverá exibir as seguintes variáveis para interpolação:
O sistema deverá exibir o campo "Tipos de desconto", que anteriormente somente era exibido no cabeçalho, também no resumo.
O comportamento do campo deverá ser exatamente semelhante, em questão de lógica, ao campo do cabeçalho. Portanto, ao selecionar um tipo de desconto no resumo, deverá ser replicado em tela também para o cabeçalho, caso o campo estiver ativo e visível
No campo "Tipos de desconto",
A coluna "Percentual" deve ser renomeada para "Valor atrib."
Deverá ter uma coluna adicional, drop down, de nome "Atributo" com os valores fixos para seleção:
Ao selecionar essa opção,
Caso quando o campo tipodesconto.sglogicapreco = 'RESUMO',
O sistema deverá fazer o cálculo do VALOR_DESCONTO_RESUMO e PERCENTUAL_DESCONTO_RESUMO partindo da fórmula:
Caso contrário, caso o campo tipodesconto.sglogicapreco = 'PRECOTAB' ou null,
O sistema deverá continuar influenciando os preços de tabela pelo percentual, como fazia anteriormente, de maneira fixa.
"Valor monetário"
A opção deverá apenas ser exibida para seleção quando tipodesconto.sgllogicapreco = 'RESUMO'
Caso quando ( tipodesconto.percentual = 0 OR tipodesconto.percentual is null ) AND (tipodesconto.valor <> 0 OR tipodesconto.valor is not null) deve ser selecionada essa opção por padrão
Ao selecionar essa opção,
O sistema deverá fazer o cálculo do VALOR_DESCONTO_RESUMO e PERCENTUAL_DESCONTO_RESUMO partindo da fórmula:
A coluna deverá não ser editável caso o campo "Valor atrib." estiver com valores preenchidos
Ao inserir um novo registro,
Caso o campo tipodesconto.idnaplicamaximo = 1
O sistema deverá aplicar o valor do campo tipodesconto.percentual ou tipodesconto.valor automaticamente na coluna "Valor atrib"
Caso contrário
O sistema deverá aplicar o valor do campo tipodesconto.faixapercentualinicial automaticamente na coluna "Valor atrib"
Caso o campo tipodesconto.idnpermiteedicao = 1
Ao alterar a coluna "Valor atrib",
Caso o campo tipodesconto.sgllogicaexceder = 'BLQ'
O sistema deverá bloquear a persistência do valor preenchido caso o valor da coluna seja:
(*)Quando selecionado o Atributo de "valor monetário", o valor comparado às colunas de faixapercentual deverá ser resultado do cálculo: ${valor da coluna} / VALOR_BASE_DESCONTO_RESUMO * 100
Caso o campo tipodesconto.sgllogicaexceder = 'APR'
O sistema deverá bloquear a persistência do valor preenchido caso o valor da coluna seja:
O sistema deverá encaminhar o pedido para aprovação na finalização do pedido, vinculado ao tipoaprovacao tipodesconto.idtipoaprovacao, caso o valor seja:
(*)Quando selecionado o Atributo de "valor monetário", o valor comparado às colunas de faixapercentual deverá ser resultado do cálculo: ${valor da coluna} / VALOR_BASE_DESCONTO_RESUMO * 100
O sistema deverá exibir 2 novos campos no resumo, que serão resultado das fórmulas citadas no tópico acima, sendo eles: VALOR_DESCONTO_RESUMO e PERCENTUAL_DESCONTO_RESUMO
Os campos deverão respeitar as configurações da tela Configuração pedido > Resumo, segundo os campos:
O ícone de cadastro de níveis e filtros diretos deverá estar bloqueado
O valor dos campos deverão ser persistidos em:
O sistema deverá exibir novo campo no resumo, referente ao código VALOR_TOTAL_FORMULA
Valor numérico monetário, cujo comportamento de arredondamento e casas decimais devem considerar os parâmetros: MODO_ARREDONDAMENTO_MONETARIO e QTD_CASAS_DECIMAIS_MONETARIO
O valor do campo deverá ser resultado da fórmula aritmética cadastrada na tela Configuração > Configuração pedido > Fórmulas > VALOR_TOTAL_FORMULA
O campo deverá respeitar as configurações da tela Configuração pedido > Resumo, segundo os campos:
O valor do campo deverá ser persistido em pedido.valortotalformula