Parâmetro de Cálculo de Comissão
Tela de configuração: MFA001 - Parâmetros de Faturamento
Localização: Parâmetros → Ambos → Opção 1
Tabela: PARMFATUR.ST_COMISSAO
Valor padrão: N (Não)
Telas impactadas
| Módulo | Código | Descrição |
|---|
| Pedido de Venda | MPD002 | Pedidos de venda |
| Pedido de Venda (Simplificado) | MPD005 | Pedido simplificado |
| Pedido (Outro Tipo) | MPD017 | Pedido outro tipo |
| Pedido de Venda (Mobile) | MPD020 | Pedido de venda mobile |
| Nota Fiscal Saída | MNF002 | Emissão de NF de saída |
| Nota Fiscal Entrada | MNF001 | NF de entrada |
| NF Devolução/Outra | MNF007 | NF devolução |
| PDV / Cupom Fiscal | MNF024 | Frente de caixa |
| Ordem de Serviço | MOF001 | Ordens de serviço |
| Ordem de Serviço (Outra) | MOF002 | OS outra |
| Ordem de Serviço (Outra) | MOF006 | OS outra |
| Recap NF | MRC020 | Notas fiscais recap |
| Reparcelamento | MFC019 | Reparcelamento financeiro |
Procedures impactadas
Procedures de cálculo de comissão
| Procedure | Arquivo | Descrição |
|---|
CALCULA_COMISSAO | Scripts/CALCULA_COMISSAO.sql | Calcula comissão por item (V1). Só calcula quando MOVIMENTACAO.ST_COMISSAO = 'S' |
CALCULA_COMISSAO_V2 | Scripts/CALCULA_COMISSAO_V2.sql | Calcula comissão por item (V2). Calcula quando MOVIMENTACAO.ST_COMISSAO <> 'N' |
RECALCULA_COMISSAO | Scripts/RECALCULA_COMISSAO.sql | Recalcula comissões de notas/pedidos já gravados |
RECALCULA_COMISSAOV2 | Scripts/RECALCULA_COMISSAOV2.sql | Recalcula comissões (V2) com suporte a múltiplos vendedores |
CALCULA_COMISSAOVIAGEM | Scripts/CALCULA_COMISSAOVIAGEM.sql | Comissão por viagem |
CALCULA_COMISSAOMOTORISTA | Scripts/CALCULA_COMISSAOMOTORISTA.sql | Comissão de motorista |
Procedures de geração de documentos
| Procedure | Arquivo | Descrição |
|---|
GERA_NOTAFISCAL | Scripts/GERA_NOTAFISCAL.sql | Gera nota fiscal a partir do pedido |
GERA_ESTOQUE_NOTAFISCAL | Scripts/GERA_ESTOQUE_NOTAFISCAL.sql | Gera estoque da nota fiscal |
CONFIRMA_ORDEMSERVICO | Scripts/CONFIRMA_ORDEMSERVICO.sql | Confirma OS e gera comissão |
CONFIRMA_ORDEMSERVICOMETAL | Scripts/CONFIRMA_ORDEMSERVICOMETAL.sql | Confirma OS Metal |
ENCERRA_MESA | Scripts/ENCERRA_MESA.sql | Encerra mesa (restaurante) |
GRAVA_NOTACTE | Scripts/GRAVA_NOTACTE.sql | Grava nota de conhecimento de transporte |
CANCELA_NOTAFISCAL | Scripts/CANCELA_NOTAFISCAL.sql | Cancela nota e marca comissão como 'C' |
Procedures de processamento de pedidos
| Procedure | Arquivo | Descrição |
|---|
PROCESSA_PEDIDOSOVIS | Scripts/PROCESSA_PEDIDOSOVIS.sql | Processa pedidos SOVIS |
PROCESSA_PEDIDOSOVIS_DESM | Scripts/PROCESSA_PEDIDOSOVIS_DESM.sql | Processa pedidos SOVIS desmembrado |
PROCESSA_ITEMPEDIDOIMPORTACAO | Scripts/PROCESSA_ITEMPEDIDOIMPORTACAO.sql | Processa item de importação |
PROCESSA_ITEMPEDIMPPRESTASHOP | Scripts/PROCESSA_ITEMPEDIMPPRESTASHOP.sql | Integração Prestashop |
PROCESSA_ITEMPEDIDOHUB | Scripts/PROCESSA_ITEMPEDIDOHUB.sql | Integração Hub |
IMPORTACAO_ALLABOR | Scripts/IMPORTACAO_ALLABOR.sql | Importação Allabor |
INSERE_CONSERTOSRETRABALHO | Scripts/INSERE_CONSERTOSRETRABALHO.sql | Consertos retrabalho |
INSERE_CONSERTOSPNEU | Scripts/INSERE_CONSERTOSPNEU.sql | Consertos pneu |
Views de relatórios de comissão
| View | Arquivo | Descrição |
|---|
VIEW_COMISSAONOTA | Scripts/VIEW_COMISSAONOTA.sql | Relatório principal de comissão por nota |
VIEW_COMISSAONOTA_R | Scripts/VIEW_COMISSAONOTA_R.sql | Comissão por nota - resumo |
VIEW_COMISSAONOTA_E | Scripts/VIEW_COMISSAONOTA_E.sql | Comissão por nota - empresa |
VIEW_COMISSAONOTA_H | Scripts/VIEW_COMISSAONOTA_H.sql | Comissão por nota - histórico |
VIEW_COMISSAONOTA_N | Scripts/VIEW_COMISSAONOTA_N.sql | Comissão por nota - notas |
VIEW_COMISSAONOTA_Y | Scripts/VIEW_COMISSAONOTA_Y.sql | Comissão por nota - Yellow |
VIEW_COMISSAONOTA_V | Scripts/VIEW_COMISSAONOTA_V.sql | Comissão por nota - versão |
VIEW_COMISSAONOTA_X | Scripts/VIEW_COMISSAONOTA_X.sql | Comissão por nota - extra |
VIEW_COMISSAONOTA_L | Scripts/VIEW_COMISSAONOTA_L.sql | Comissão por nota - Lista |
VIEW_COMISSAONOTA_DISTRIBUIDOR | Scripts/VIEW_COMISSAONOTA_DISTRIBUIDOR.sql | Comissão por distribuidor |
VIEW_COMISSAONOTA_VERSAO2 | Scripts/VIEW_COMISSAONOTA_VERSAO2.sql | Comissão por nota V2 |
VIEW_COMISSAOPEDIDO | Scripts/VIEW_COMISSAOPEDIDO.sql | Relatório de comissão por pedido |
VIEW_COMISSAOPEDIDO_VERSAO2 | Scripts/VIEW_COMISSAOPEDIDO_VERSAO2.sql | Comissão por pedido V2 |
VIEW_RRC007 | Scripts/VIEW_RRC007.sql | Relatório RRC007 |
VIEW_RPD007 | Scripts/VIEW_RPD007.sql | Relatório RPD007 |
Campos envolvidos
| Campo | Descrição |
|---|
PC_COMISSAO | Percentual de comissão do vendedor no item |
PC_COMISEMPR | Percentual de comissão da empresa no item (visível apenas com 'T') |
PC_COMISSAOGERAL | Percentual de comissão geral aplicado a todos os itens do pedido |
VL_COMISSAO | Valor da comissão calculada |
MOVIMENTACAO.ST_COMISSAO | Flag por movimentação que define se gera comissão ('S'/'N') |
Opções disponíveis
S - Sim (Vendedor)
| O que faz | Detalhe |
|---|
| Calcula comissão automaticamente? | SIM, usando a procedure CALCULA_COMISSAO |
Campo PC_COMISSAO | ReadOnly (não edita, calculado automático) |
Campo PC_COMISSAOGERAL | ReadOnly (não edita, calculado automático) |
Campo PC_COMISEMPR | Invisível (comissão empresa não se aplica) |
| Recalcula ao trocar movimentação? | Sempre recalcula (para todos os itens) |
| Origem do percentual | Busca do cadastro do Vendedor/Produto/Grupo |
Simulação passo a passo
- Vá em MFA001 → Parâmetros → Ambos → Opção 1 → ST_COMISSAO = "Sim (Vendedor)"
- Salve os parâmetros (F6)
- Abra um Pedido de Venda (MPD002)
- Informe o vendedor no pedido
- Adicione um produto com movimentação que gera comissão (
MOVIMENTACAO.ST_COMISSAO = 'S')
- O campo
PC_COMISSAO é preenchido automaticamente pela procedure CALCULA_COMISSAO
- Tente clicar no campo
PC_COMISSAO → Campo fica bloqueado (ReadOnly)
- Tente clicar no campo
PC_COMISSAOGERAL → Campo fica bloqueado (ReadOnly)
Resultado esperado: A comissão é calculada automaticamente para o vendedor com base nas regras cadastradas. O usuário não consegue alterar manualmente os percentuais.
T - Sim (Vendedor e Empresa)
| O que faz | Detalhe |
|---|
| Calcula comissão automaticamente? | SIM, usando a procedure CALCULA_COMISSAO |
Campo PC_COMISSAO | ReadOnly (não edita, calculado automático) |
Campo PC_COMISSAOGERAL | ReadOnly (não edita, calculado automático) |
Campo PC_COMISEMPR | Visível e ReadOnly (percentual da empresa, calculado automático) |
| Recalcula ao trocar movimentação? | Sempre recalcula (para todos os itens) |
| Diferença de 'S' | Exibe o campo de comissão da empresa (PC_COMISEMPR) |
Simulação passo a passo
- Vá em MFA001 → ST_COMISSAO = "Sim (Vend e Empr)"
- Salve os parâmetros (F6)
- Abra um Pedido de Venda (MPD002)
- Informe o vendedor no pedido
- Adicione um produto com movimentação que gera comissão
- O campo
PC_COMISSAO é preenchido automaticamente
- O campo
PC_COMISEMPR aparece visível com o percentual da empresa
- Tente editar
PC_COMISSAO → Bloqueado
- Tente editar
PC_COMISEMPR → Bloqueado
Resultado esperado: Comissão calculada automaticamente para o vendedor E para a empresa. Ambos os campos de percentual ficam visíveis mas não editáveis.
N - Não (Manual)
| O que faz | Detalhe |
|---|
| Calcula comissão automaticamente? | NÃO - comissão deve ser informada manualmente |
Campo PC_COMISSAO | Editável (usuário digita o percentual) |
Campo PC_COMISSAOGERAL | Editável (usuário define comissão geral) |
Campo PC_COMISEMPR | Invisível (comissão empresa não se aplica) |
| Recalcula ao trocar movimentação? | Condicional - só recalcula para itens novos (não gravados no banco) |
| Itens já gravados | Mantém a comissão que foi informada manualmente |
Simulação passo a passo
- MFA001 → ST_COMISSAO = "Não"
- Salve os parâmetros (F6)
- Abra um Pedido de Venda (MPD002)
- Adicione um produto com movimentação que gera comissão
- O campo
PC_COMISSAO fica editável → Digite o percentual desejado
- O campo
PC_COMISSAOGERAL fica editável → Pode definir comissão geral para todos os itens
- Salve o pedido
- Reabra e altere a movimentação de um item já salvo → A comissão NÃO é recalculada (mantém valor original)
- Adicione um item novo → A comissão É calculada normalmente
Resultado esperado: O usuário tem liberdade para informar manualmente o percentual de comissão. Itens já gravados não são afetados por recálculos automáticos.
Este é o valor padrão ao criar um novo registro no MFA001.
Observação Importante: MOVIMENTACAO.ST_COMISSAO
O parâmetro PARMFATUR.ST_COMISSAO controla o modo de cálculo da comissão (automático/manual). Porém, a geração ou não de comissão para cada item depende da flag MOVIMENTACAO.ST_COMISSAO da movimentação selecionada:
MOVIMENTACAO.ST_COMISSAO | Comportamento |
|---|
S | Gera comissão (o cálculo segue o que foi definido em PARMFATUR.ST_COMISSAO) |
N | Não gera comissão - o valor da comissão é zerado |
T | Gera comissão (aceito pela V2 do cálculo) |
Essa flag é configurada por movimentação no cadastro TCB001 - Movimentações.
O cálculo de comissão é influenciado pelo parâmetro ST_VARIOSVENDEDORES:
- ST_VARIOSVENDEDORES = 'S': Permite múltiplos vendedores por item. A comissão é rateada entre os vendedores cadastrados na tabela
ITEMNOTAVENDEDOR / ITEMPEDIDOVENDEDOR.
- ST_VARIOSVENDEDORES = 'N': Apenas um vendedor por documento. A comissão é calculada diretamente pelo vendedor do pedido/nota.
A geração de comissão só ocorre quando ambas as condições são atendidas:
MOVIMENTACAO.ST_COMISSAO = 'S' (a movimentação gera comissão)
- O módulo está configurado para calcular comissão (
PARMFATUR.ST_COMISSAO = 'S' ou 'T')
Tabela Comparativa Resumida
| Opção | Descrição | PC_COMISSAO editável? | PC_COMISEMPR visível? | Recalcula sempre? | Comissão automática? |
|---|
| S | Sim (Vendedor) | Não (ReadOnly) | Não | Sim | Sim |
| T | Sim (Vend e Empr) | Não (ReadOnly) | Sim | Sim | Sim |
| N | Não (Manual) | Sim | Não | Só itens novos | Não |