Case Exemplo Tabela Precos Dinamica/Encerramento Tabela Pessoa
Este caso/exemplo ilustra a aplicação prática de uma tabela de preços dinâmica como substituto da tabela de preços pessoal, um módulo recentemente descontinuado. Para uma abordagem mais avançada, o exemplo será expandido para incluir uma indústria que opera com esquemas de comissionamento diferenciados para cada representante.
1- Antes de começar
- Tabela de Preços Base
Para que a tabela dinâmica funcione de forma adequada, é necessário possuir o registro 177 - Tabela de Preços Base Cadastrado. Para mais informações, consulte: 177_Tabela_Precos_Base
- Faça o Planejamento
Recomendamos que seja feito um esboço, utilizando o bloco de notas, para estabelecer os critérios e condições a serem aplicados aos avaliadores de desempenho. A título de exemplo, vamos considerar as seguintes diretrizes para o comissionamento dos representantes com base nas vendas:
- Lucas: Será atribuída uma comissão de 5% sobre o valor de venda para todos os itens comercializados.
- Bruno: Receberá uma comissão de 10% sobre o valor de venda, porém exclusivamente para produtos destinados à revenda.
- Demais Representantes: Não receberão comissão sobre as vendas realizadas.
2- Cadastre os avaliadores de Preço e comissão
Neste exemplo, os avaliadores serão simples, pois não será necessário cálculos adicionais. Para replicar o valor de venda da tabela base, vincule o token Valor Venda (x), incluso no recurso de Avaliação de Expressões, aba Fórmula.
3- Cadastre as condições de aplicações de preços e tabelas
Defina as condições no recurso Avaliação de Expressões. Selecione o tipo de Item Variáveis para cálculo preço pedido.
Avaliador Preço Padrão
Condição de Aplicação: 1
Fórmula: @valorVenda@
Avaliador Comissão Lucas
Representante Lucas possui o identificador igual a 1.
Condição de Aplicação: @id_representante@ == 1
Fórmula: 5
Avaliador Comissão Bruno
Representante Lucas possui o identificador igual a 2. A espécie de Revenda possui o identificador igual a 5.
Condição de Aplicação: @id_representante@ == 2 && @id_especie@ == 5
Fórmula: 10
Avaliador Comissão Padrão
Aqui, é importante construir as exceções:
Condição de Aplicação: @id_representante@ != 1 && @id_representante@ != 2
Fórmula: 0
5- Construa a Tabela Dinamica
Faça a criação do recurso 1538, utilizando os avaliadores criados.
6- Defina a ordem de pesquisa
Este item, apesar do ultimo passo, é importante como visto no recurso 1538 que a política e planejamento de preços deve ser o primeiro item a ser definido.
Informe conforme os produtos que utilizar da Touch Comp a configuração de pesquisa abaixo. Lembre também de mudar para Tabela De Preços Dinâmica.
Configuração: 1;2;5;3,7;3;9; Esta é a configuração padrão, você pode simplificá-la para ganhar performance.
- 107 - Opções de Faturamento
Majoração/Minoração de Preços
O Touch Comp ERP possui a capacidade de ajustar automaticamente o preço sugerido na tabela de preços base, conforme a inclusão de juros para cada condição de pagamento.
Na tabela de preços pessoa, o cálculo era realizado internamente, permitindo a majoração ou minoração do valor unitário do item ao incluir o percentual no recurso 104 - Condições de Pagamento.
A fórmula interna ocorria da seguinte forma: ((valorTotalNota * (condicoesPagamento.getMajoracaoPreco() / 100)) / 30) * nrDiasMedios)
Para melhor entendimento, vamos dividi-la em partes:
- valorTotalNota:
Este é o valor total da nota fiscal, ou seja, o preço original do produto ou serviço antes de qualquer alteração.
- condicoesPagamento.getMajoracaoPreco:
Aqui, estamos acessando as condições de pagamento para obter a porcentagem de majoração do preço. Se o valor retornado for positivo, indica que há um acréscimo no preço; se for negativo, indica um desconto.
- nrDiasMedios: Este é o número de dias médios informados na condição de pagamento.
Agora, vamos à operação:
- (condicoesPagamento.getMajoracaoPreco() / 100): Aqui, estamos convertendo a porcentagem de majoração em um valor decimal, dividindo por 100.
- valorTotalNota * (condicoesPagamento.getMajoracaoPreco() / 100): Esta parte calcula o valor do acréscimo ou desconto com base na porcentagem e no preço total.
- ((valorTotalNota * (condicoesPagamento.getMajoracaoPreco() / 100)) / 30): Agora, estamos dividindo esse valor pelo número de dias médios (30) para calcular o valor do acréscimo ou desconto por dia.
- ((valorTotalNota * (condicoesPagamento.getMajoracaoPreco() / 100)) / 30) * nrDiasMedios): Por fim, multiplicamos esse valor pelo número de dias médios informados na condição de pagamento para obter o total do acréscimo ou desconto.
Então, no final, a fórmula realiza um cálculo para determinar o valor do acréscimo ou desconto com base na porcentagem de majoração/preço e no número de dias médios informados na condição de pagamento, que poderá ser utilizada para ajustar o preço de venda final.
Transformando para a estrutura padrão da Avaliação de Expressões:
- ((((@valorVenda@ * @majoracaoPreco@) / 100) / 30) * @pre_nr_dias_medios_cond_pag@) + @valorVenda@
Por fim, foi adicionado a somatória do acrescimo/desconto encontrado sob o valor de venda vinculado na tabela base.