Árvore de páginas

FLEXIBILIZAÇÃO DE DESCONTOS E ACRÉSCIMOS PARA PREÇOS FIXOS (WINTHOR)

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
       

    VISÃO GERAL

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.


    OBJETIVO

Busca garantir uma gestão eficiente e consistente das políticas de precificação no ERP Winthor.


  ANTES DE COMEÇAR

Requisitos

  • Versão padrão da solução TOTVS CRM - SFA.
  • Acesso ao sistema ERP Winthor.
  • Privilégios de administração ou configuração de descontos/acréscimos.

  DETALHES FUNCIONAIS

Funções

  • Configuração de permissões a nível geral, por usuário e por preço.
  • Bloqueio ou liberação de descontos/acréscimos para produtos com preço fixo.
  • Adaptação aos padrões de comportamento do ERP Winthor.
  • Controle preciso sobre quem pode aplicar descontos/acréscimos e em quais circunstâncias.

  COMO USAR?

Passo a Passo

  • No carrinho de vendas, selecione um produto
  • Ao inserir/editar um produto, os usuários autorizados verão as opções de desconto/acréscimo baseadas nas permissões.


 EXEMPLO PRÁTICO

Caso de uso

Cenário:

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.


Desafio Antigo:

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.


Solução Atualizada:

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.


  DETALHES TÉCNICOS


PERMITE DESCONTO NO PREÇO FIXO

Ao realizar um pedido e aplicar descontos no produto com preço fixo, a aplicação deverá validar os seguintes parâmetros:

  • Se o parâmetro de presidência ACEITADESCPRECOFIXO estiver marcado como SIM:
  • Se no cadastro do RCA o campo "Aceitar desconto/acréscimo em item com preço fixo" (VALIDARACRESCDESCPRECOFIXO) estiver marcado como SIM:
  • Se o campo 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.


PERMITE ACRÉSCIMO NO PREÇO FIXO

Ao realizar um pedido e aplicar acréscimo no produto com preço fixo, a aplicação deverá validar os seguintes parâmetros:

  • Se o parâmetro de presidência ACEITAACRESCIMOPRECOFIXO estiver marcado como SIM:
  • Se no cadastro do RCA o campo "Aceitar desconto/acréscimo em item com preço fixo" (VALIDARACRESCDESCPRECOFIXO) estiver marcado como SIM:
  • Se o campo 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.

APLICAÇÃO

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.

VALIDAÇÃO DE ACRÉSCIMO NO PREÇO FIXO

Deverá ser criada a seguinte lógica para validação se poderá ser aplicado acréscimo no item:

  1. Deverá ser buscado o valor do parâmetro sim3g.pedido.permitir.acrescimo.precofixo. Caso o valor seja 1:
  2. Deverá ser buscado na tabela operacaousuario o registro que determina se o usuário poderá ou não ter acréscimos aplicados no item, conforme a consulta abaixo:

  3. 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'


  4. Caso o valor retornado seja 1, deverá ser buscado o valor do campo 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:

  5. 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).

Criação do Parâmetro sim3g.pedido.gera.aprovacao.desconto

Deverá ser criado o parâmetro sim3g.pedido.gera.aprovacao.desconto com os seguintes dados:

  • idnativo: 1
  • valor: 1
  • descrição: Parâmetro que define se a aplicação deverá gerar aprovação ao exceder descontos no item.
  • sglmodulo: venda
  • ambiente: Todos

Criação do Parâmetro sim3g.pedido.gera.aprovacao.acrescimo

Deverá ser criado o parâmetro sim3g.pedido.gera.aprovacao.acrescimo com os seguintes dados:

  • idnativo: 1
  • valor: 1
  • descrição: Parâmetro que define se a aplicação deverá gerar aprovação ao exceder acréscimos no item.
  • sglmodulo: venda
  • ambiente: Todos

INTEGRAÇÃO

Criação do Parâmetro 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

Criação do Parâmetro sim3g.pedido.permitir.acrescimo.precofixo

Deverá ser criado o parâmetro sim3g.pedido.permitir.acrescimo.precofixo na importação de parâmetros.

Criação do Parâmetro 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

Criação do Registro de Operação 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

Criação do Registro de 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)

PERGUNTAS FREQUENTES

  • question_answer
  • Sem rótulos