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: | DTSFAPD-2109 |
O recurso de Validações de Preço de Desconto/Acréscimo em Preço Fixo no Winthor oferece maior flexibilidade na configuração de permissões para aplicar descontos ou acréscimos em produtos com preço fixo. Isso permite um controle mais detalhado sobre as operações de precificação e vendas, adaptando-se ao comportamento padrão do ERP Winthor.
Busca garantir uma gestão eficiente e consistente das políticas de precificação no ERP Winthor.
João é responsável por gerenciar a equipe de vendas e supervisionar a estratégia de precificação dos produtos da empresa. Ele precisa garantir que as políticas de desconto e acréscimo sejam aplicadas de maneira consistente e controlada.
João enfrentava dificuldades para controlar as permissões de desconto e acréscimo nos produtos com preço fixo. A equipe de vendas tinha liberdade excessiva para aplicar descontos em qualquer produto, levando a margens inconsistentes e preços inadequados.
Com a implementação das Validações de Preço de Desconto/Acréscimo em Preço Fixo no Winthor, João ganhou maior controle sobre as operações de precificação. Agora, ele pode configurar permissões detalhadas a nível geral, por usuário e por preço.
Ao realizar um pedido e aplicar descontos no produto com preço fixo, a aplicação deverá validar os seguintes parâmetros:
ACEITADESCPRECOFIXO
estiver marcado como SIM:VALIDARACRESCDESCPRECOFIXO
) estiver marcado como SIM:PCPRECOPROM.ACEITADESCPRECOFIXO
estiver marcado como SIM:Então, a aplicação deverá validar as políticas de desconto disponíveis.
Caso o valor seja 0 (zero): O desconto poderá ser aplicado, porém, o pedido será enviado para aprovação.
Ao realizar um pedido e aplicar acréscimo no produto com preço fixo, a aplicação deverá validar os seguintes parâmetros:
ACEITAACRESCIMOPRECOFIXO
estiver marcado como SIM:VALIDARACRESCDESCPRECOFIXO
) estiver marcado como SIM:PCPRECOPROM.ACEITAACRESCIMOPRECOFIXO
estiver marcado como SIM:Então, será possível aplicar acréscimos livres no item de preço fixo.
Caso o valor seja 0 (zero): Não permite aplicar acréscimo no produto.
Deverá ser removida a validação atual do preço fixo do produto que determinar apenas pelos campos TABELAPRECOPRODUTO.IDNPERMITEACRESCIMO
e TABELAPRECOPRODUTO.IDNPERMITEDESCONTO
quanto à possibilidade de aplicar ou não descontos/acréscimos.
Deverá ser criada a seguinte lógica para validação se poderá ser aplicado acréscimo no item:
sim3g.pedido.permitir.acrescimo.precofixo
. Caso o valor seja 1:operacaousuario
o registro que determina se o usuário poderá ou não ter acréscimos aplicados no item, conforme a consulta abaixo:SELECT
ou.valor
FROM
operacaousuario ou
INNER JOIN operacao o ON
o.idoperacao = ou.idoperacao
WHERE
ou.idusuario = ID_USUARIO_SELECIONADO_NO_PEDIDO
AND o.SGLOPERACAO ='DESACREUSU'
TABELAPRECOPRODUTO.IDNPERMITEACRESCIMO
. Se o valor retornado for 1, a aplicação deverá buscar o valor do parâmetro sim3g.venda.pedido.PERCENTUALACRESCIMOMAX
e também o valor da busca:SELECT
ou.valor
FROM
operacaousuario ou
INNER JOIN operacao o ON
o.idoperacao = ou.idoperacao
WHERE
ou.idusuario = ID_USUARIO_SELECIONADO_NO_PEDIDO
AND o.SGLOPERACAO ='PERCACRMAX'
Com base no retorno dos dois valores, a aplicação não poderá permitir um acréscimo maior que o menor valor retornado. Se o valor ultrapassar o teto, a aplicação deverá enviar o pedido para aprovação se o valor do parâmetro sim3g.pedido.gera.aprovacao.acrescimo
for 1, caso contrário, o acréscimo não poderá ser aplicado no item.
Caso o valor seja 0 (zero): A aplicação não deve permitir aplicar acréscimo no item se o valor do parâmetro sim3g.pedido.gera.aprovacao.acrescimo
for 0. Caso contrário, a aplicação deverá permitir acréscimo e o pedido deverá ser enviado para aprovação.
Repita o mesmo processo para diferentes valores de 0 (zero).
Deverá ser criado o parâmetro sim3g.pedido.gera.aprovacao.desconto
com os seguintes dados:
Deverá ser criado o parâmetro sim3g.pedido.gera.aprovacao.acrescimo
com os seguintes dados:
sim3g.pedido.permitir.desconto.precofixo
SELECT
CAST('sim3g.pedido.permitir.desconto.precofixo' AS VARCHAR2(80)) AS chave,
CAST(CASE WHEN ACEITADESCPRECOFIXO = 'S' THEN '1' ELSE '0' END AS VARCHAR2(255)) AS valor,
CAST(1 AS INT) AS idnativo,
CAST(1 AS INT) AS idnpermitealteracao,
CAST('Parâmetro que determina se será permitido aplicar descontos nos itens com preço fixo ou não.' AS VARCHAR2(400)) AS descricao,
CAST('Caso o valor do parâmetro esteja 1, será permitido aplicar desconto nos produtos com preço fixo. Caso esteja 0, não será permitido aplicar desconto nos produtos com preço fixo.' AS VARCHAR2(400)) AS observacao,
CAST('CLIENTE' AS VARCHAR2(10)) AS sglorigem,
CAST('Venda' AS VARCHAR2(20)) AS sglmodulo,
CAST('Todos' AS VARCHAR2(20)) AS sglambiente
FROM
PCCONSUM
sim3g.pedido.permitir.acrescimo.precofixo
Deverá ser criado o parâmetro sim3g.pedido.permitir.acrescimo.precofixo
na importação de parâmetros.
sim3g.pedido.permitir.acrescimo.precofixo
SELECT
CAST('sim3g.pedido.permitir.acrescimo.precofixo' AS VARCHAR2(80)) AS chave,
CAST(CASE WHEN ACEITAACRESCIMOPRECOFIXO = 'S' THEN '1' ELSE '0' END AS VARCHAR2(255)) AS valor,
CAST(1 AS INT) AS idnativo,
CAST(1 AS INT) AS idnpermitealteracao,
CAST('Parâmetro que determina se será permitido aplicar acréscimo nos itens com preço fixo ou não.' AS VARCHAR2(400)) AS descricao,
CAST('Caso o valor do parâmetro esteja 1, será permitido aplicar acréscimo nos produtos com preço fixo. Caso esteja 0, não será permitido aplicar acréscimo nos produtos com preço fixo.' AS VARCHAR2(400)) AS observacao,
CAST('CLIENTE' AS VARCHAR2(10)) AS sglorigem,
CAST('Venda' AS VARCHAR2(20)) AS sglmodulo,
CAST('Todos' AS VARCHAR2(20)) AS sglambiente
FROM
PCCONSUM
DESACREUSU
Deverá ser criado o registro de operação para determinar se o usuário aceita desconto/acréscimo em item com preço fixo.
SGLOPERACAO=DESACREUSU
DECRICAO=USUARIO ACEITA DESCONTO, ACRESCIMO NO PRECO FIXO
IDNATIVO=1
CODIGOERP=DESACREUSU
operacaousuario
Deverá ser criado o registro de operacaousuario
para determinar
se o usuário permite desconto acréscimo no preço fixo.
SELECT
CAST('DESACREUSU' AS VARCHAR2(80)) AS IDOPERACAO_,
CAST(CODUSUR AS VARCHAR2(80)) AS IDUSUARIO_,
CAST(CASE WHEN VALIDARACRESCDESCPRECOFIXO = 'S' THEN 1 ELSE 0 END AS NUMERIC(18,6)) AS VALOR,
CAST('DESACREUSU#' || CODUSUR AS VARCHAR2(80)) AS CODIGOERP
FROM
PCUSUARI U
WHERE
--(CAST(CODFILIAL AS VARCHAR2(80)) IS NULL ORe CAST(CODFILIAL AS VARCHAR2(80)) IN (?, '99') OR COALESCE(?, '') IS NULL )
(CAST(CODFILIAL AS VARCHAR2(80)) IS NULL OR CAST(CODFILIAL AS VARCHAR2(80)) IN ((SELECT REGEXP_SUBSTR(?, '[^,]+' , 1, LEVEL) FILIAL FROM DUAL CONNECT BY REGEXP_SUBSTR(?, '[^,]+' , 1, LEVEL) IS NOT NULL)) ORe CAST(CODFILIAL AS VARCHAR2(80)) IN ('99') ORe COALESCE(?, '') IS NULL)