Pular para o conteúdo principal

ST_RATEIAVENDEDOR — Rateio de Comissão por Vendedor

Tela de configuração: OFI001 — Parâmetros de Oficina Localização: Aba Ordem 2 Tabela: PARMOFICINA.ST_RATEIAVENDEDOR Tipo: CHAR(1), NOT NULL, padrão 'N'

Controla se o valor base para cálculo de comissão dos vendedores é dividido igualmente entre todos os vendedores vinculados ao item da Ordem de Serviço, ou se cada vendedor recebe comissão sobre o valor integral do item.


Telas impactadas​

TelaEfeito
MOF001Altera o cálculo de comissão ao salvar itens de serviço e peça na OS; afeta gravação em ORDEMSERVICOVENDEDOR e comportamento ao recalcular vendedores em VariosVendedores.
UVendedorIndividual (janela de vendedores individuais)Altera validações de VL_BASE e PC_BASE; quando S, exige que a soma das bases individuais iguale o total do item.

Campos envolvidos​

TabelaCampoRelação
ORDEMSERVICOVENDEDORVL_BASEGrava o valor rateado (S) ou integral (N) como base de comissão por vendedor.
ORDEMSERVICOVENDEDORVL_COMISSAOComissão calculada sobre VL_BASE.
ORDEMSERVICOVENDEDORPC_COMISSAOPercentual de comissão aplicado.

Opções disponíveis​

S — Sim (Rateio Ativado)​

O que fazDetalhe
Divisão igualitáriaO valor líquido do item (VL_TOTAL − VL_DESCONTO) é dividido pela quantidade de vendedores vinculados. Cada vendedor recebe comissão sobre a fração.
Validacao de base na tela de vendedoresAo confirmar (btnOK), o sistema soma VL_BASE de todos os vendedores e compara com o total do item. Se não bater, exibe erro W-0139.
Preservacao de registros ao recalcularAo detectar alteração no item (valor, quantidade, tabela), o sistema não deleta os registros de ORDEMSERVICOVENDEDOR antes de recalcular; faz UPDATE OR INSERT mantendo vendedores existentes.
Base zero permitidaNa tela de vendedores individuais, aceita VL_BASE = 0 e PC_BASE = 0 (validação de valor mínimo é ignorada para OS com rateio).

Simulação passo a passo​

  1. Acesse OFI001 → aba Ordem 2.
  2. No campo Rateio de Comissão por Vendedor, selecione S (Sim).
  3. Salve os parâmetros.
  4. Abra MOF001 e crie ou edite uma Ordem de Serviço.
  5. Adicione um serviço com valor total de R$ 300,00 e desconto de R$ 0,00.
  6. Vincule 3 vendedores ao item (Vendedor A, Vendedor B, Vendedor C).
  7. Salve a OS.
  8. Consulte a tabela ORDEMSERVICOVENDEDOR para o item: cada vendedor terá VL_BASE = R$ 100,00 (300 / 3).
  9. A comissão de cada vendedor é calculada sobre R$ 100,00, não sobre R$ 300,00.

Resultado esperado: O valor base de comissão é dividido igualmente entre os vendedores. Cada um recebe comissão proporcional à sua fração do total do item.

Excecao / Importante: O rateio ocorre tanto para itens de serviço (ORDEMSERVITEM) quanto para itens de peça (SERVICOITEM). A contagem de vendedores é feita em tempo real no momento do cálculo — se houver 0 vendedores ou valor líquido ≤ 0, o vlTotal do rateio será 0.


N — Não (Rateio Desativado — Padrão)​

O que fazDetalhe
Comissão sobre valor integralCada vendedor recebe comissão calculada sobre o valor líquido completo do item (VL_TOTAL − VL_DESCONTO).
Delete antes de recalcularAo detectar alteração no item, o sistema deleta todos os registros de ORDEMSERVICOVENDEDOR daquele item antes de chamar o recálculo, gerando registros novos.
Validacao de base flexívelNa tela de vendedores individuais, aceita VL_BASE = 0 e PC_BASE = 0 sem erro (validação de valor mínimo é ignorada para OS).

Simulação passo a passo​

  1. Acesse OFI001 → aba Ordem 2.
  2. No campo Rateio de Comissão por Vendedor, selecione N (Não).
  3. Salve os parâmetros.
  4. Abra MOF001 e crie ou edite uma Ordem de Serviço.
  5. Adicione um serviço com valor total de R$ 300,00 e desconto de R$ 0,00.
  6. Vincule 3 vendedores ao item (Vendedor A, Vendedor B, Vendedor C).
  7. Salve a OS.
  8. Consulte a tabela ORDEMSERVICOVENDEDOR para o item: cada vendedor terá VL_BASE = R$ 300,00 (valor integral).
  9. A comissão de cada vendedor é calculada sobre R$ 300,00.

Resultado esperado: Todos os vendedores recebem comissão sobre o valor integral do item. Não há divisão.

Excecao / Importante: Ao alterar um item da OS (valor, quantidade, tabela de preço), os registros de vendedor daquele item são deletados e recriados do zero. Quando S, o sistema preserva os registros existentes e apenas atualiza via UPDATE OR INSERT.


Interação com outros parâmetros​

ParâmetroEfeito conjunto
ST_MODULOVARIOSVENDEDORES (configurado em OFI001 — Parâmetros de Oficina, aba Ordem 2)Quando S, ativa o módulo de vários vendedores. O rateio só tem efeito prático quando há mais de um vendedor vinculado ao item. Se ST_MODULOVARIOSVENDEDORES = N, o sistema ignora o rateio ao recalcular vendedores de outros itens da OS.
ST_OBRIGAVENDEDOR (configurado em OFI001 — Parâmetros de Oficina, aba Ordem 2)Quando S, exige que pelo menos um vendedor seja informado na OS. O rateio divide entre os vendedores existentes; se houver apenas 1, o valor é integral (divisão por 1).

Regra geral de cálculo​

A fórmula aplicada depende do modo de cálculo de vendedores (FlagVendedores):

FlagVendedoresST_RATEIAVENDEDOR = SST_RATEIAVENDEDOR = N
V (por vendedor)vlBase = (VL_TOTAL − VL_DESCONTO) / countVendvlBase = VL_TOTAL − VL_DESCONTO
Repetição automáticaMesma lógica — divide antes de chamar CALCULA_COMISSAO_V2Comissão calculada sobre valor integral

O resultado é gravado no campo VL_BASE da tabela ORDEMSERVICOVENDEDOR e utilizado pela function CALCULA_COMISSAO_V2 para retornar V_VL_COMISSAO e V_PC_COMISSAO.


Tabela comparativa resumida​

AspectoS (Rateio)N (Sem rateio)
Base de comissão por vendedorValor do item ÷ nº de vendedoresValor integral do item
VL_BASE em ORDEMSERVICOVENDEDORFração igualitáriaValor completo
Ao alterar item da OSPreserva registros, faz UPDATE OR INSERTDeleta registros e recria
Validação soma de basesExige que soma = total (erro W-0139)Não valida soma
Valor padrão—✅ 'N'