Mudanças entre as edições de "Rateio de desconto adicional"

De GeoSales
Ir para navegação Ir para pesquisar
Linha 69: Linha 69:
 
Coordenador      #------*----# (12%)
 
Coordenador      #------*----# (12%)
 
Gerente Comercial #----*------# (8%)</pre>
 
Gerente Comercial #----*------# (8%)</pre>
 +
 +
====Fórmula de equilibração====
 +
Sejam <code>Z</code> o valor que será alterado no slider e <code>Xi</code> (<code>i</code> de 1 a <code>n</code>) os valores dos outros <code>n</code> sliders. Sejam <code>Z'</code> o valor alterado de <code>Z</code> e <code>X'i</code> o valor equilibrado de <code>Xi</code>. Esses valores são ''todos'' não negativos.
 +
 +
Se a soma de todos os <code>Xi</code> for não nula, então temos:
 +
<pre>
 +
S = Soma Xi, i de 1 a n
 +
Z' = Z - d
 +
X'i = Xi (1 + d/S)
 +
</pre>
 +
 +
Caso contrário, a soma de todos os <code>Xi</code> for nula, então temos:
 +
<pre>
 +
Z' = Z - d
 +
X'i = d/S
 +
</pre>

Edição das 17h45min de 28 de novembro de 2016

Necessidade

O vendedor precisa informar que as outras partes envolvidas na negociação vão dar desconto e qual valor será esse. Esse desconto é um desconto adicional e ficará pendente de aprovação da parte envolvida.

Exemplo

Fábio está vendendo Moto X Play para o Jefferson. Fábio dá 10% de desconto retirando de sua comissão, em seguida dá mais 10% de desconto, sendo que 5% será custeado pela Totvs e 5% pela SoftSite.

Solução declarativa

O vendedor colocará um desconto relativo à sua comissão e outro relativo às outras partes envolvidas. As outras partes envolvidas são papéis atrelados a elas (Parceiro, Coordenador e Gerente Comercial). Cada papel está associado a um supervisor para que ele possa aprovar o desconto.

Implementação

O item tem dois descontos a priori:

  • descondo padrão
  • desconto adicional

Caso seja de desejo do vendedor, é possível dividir o desconto adicional para as outras partes. As outras partes serão definidas pela estrutura de supervisor e papéis. Cada supervisor é associado a uma alçada que representa seu papel. O padrão da distribuição do desconto adicional é colocar todo no papel referente ao seu supervisor imediato. Quanto mais próximo um supervisor está do vendedor mais alto aparecerá na listagem de divisão de valores.

O valor do desconto adicional total é modificado exclusivamente no campo textual, sendo que a distribuição é colocado via sliders. Por exemplo:

Desconto adicional: 20%
Parceiro          #-----*-----# (10%)
Coordenador       #---*-------# (6%)
Gerente Comercial #--*--------# (4%)

Base de dados

Essas informações são salvas na tabela ITEM_PEDIDO_DESCONTO.

+----------------+----------------+----------------+----------+-------------------+----------------------+
| CD_PEDIDO_PALM | NR_ITEM_PEDIDO | DS_DESCONTO    | DS_MODIF | PR_DESCONTO       | VR_DESCONTO          |
+----------------+----------------+----------------+----------+-------------------+----------------------+
| Colunas para diferenciar o item | desc_adicional | O papel  | A porcentagem     | Nulo (reservado para |
| onde se aplica o desconto       | (literal)      |          | relativa ao papel | valores absolutos)   |
+---------------------------------+----------------+----------+-------------------+----------------------+

No exemplo anterior, os descontos seriam salvos assim (para o pedido de código 112, item número 1):

+----------------+----------------+----------------+-------------+-------------+-------------+
| CD_PEDIDO_PALM | NR_ITEM_PEDIDO | DS_DESCONTO    | DS_MODIF    | PR_DESCONTO | VR_DESCONTO |
+----------------+----------------+----------------+-------------+-------------+-------------+
| 112            | 1              | desc_adicional | Parceiro    | 10          | null        |
+----------------+----------------+----------------+-------------+-------------+-------------+
| 112            | 1              | desc_adicional | Coordenador | 6           | null        |
+----------------+----------------+----------------+-------------+-------------+-------------+
| 112            | 1              | desc_adicional | Gerente     | 4           | null        |
|                |                |                | Comercial   |             |             |
+----------------+----------------+----------------+-------------+-------------+-------------+

Para efeitos de cálculos de desconto, considera-se o valor da totalidade: 20%.

Equilibração dos sliders

OBS: tem mais a ver com o componente do que com o caso de uso em si.

Ao se alterar o valor de um dos sliders, os outros valores se equilibrarão proporcionalmente.

Tome novamente o exemplo anterior:

Desconto adicional: 20%
Parceiro          #-----*-----# (10%)
Coordenador       #---*-------# (6%)
Gerente Comercial #--*--------# (4%)

Caso se remova todo o desconto relativo ao Parceiro, o novo equilíbrio do sistema será:

Desconto adicional: 20%
Parceiro          #*----------# (0%)
Coordenador       #------*----# (12%)
Gerente Comercial #----*------# (8%)

Fórmula de equilibração

Sejam Z o valor que será alterado no slider e Xi (i de 1 a n) os valores dos outros n sliders. Sejam Z' o valor alterado de Z e X'i o valor equilibrado de Xi. Esses valores são todos não negativos.

Se a soma de todos os Xi for não nula, então temos:

S = Soma Xi, i de 1 a n
Z' = Z - d
X'i = Xi (1 + d/S)

Caso contrário, a soma de todos os Xi for nula, então temos:

Z' = Z - d
X'i = d/S