ST_ALTERABASECALCULOCOMISSAO - Altera Base de Cálculo da Comissão
Tela de configuração: MFA001 — Parâmetros de Faturamento Localização: Aba Vendedor → seção "Parâmetros de Vendedor" Tabela:
PARMFATUR.ST_ALTERABASECALCULOCOMISSAOValor padrão:N(Não)
Controla se o usuário pode alterar manualmente a base de cálculo (VL_BASE) sobre a qual a comissão do vendedor é calculada. Quando desativado, a base é sempre o valor líquido do produto (VL_LIQUIDO).
Telas impactadas
| Tela | Arquivo | Efeito |
|---|---|---|
| UVendedorAgrupado | source/jVendedor/UVendedorAgrupado.pas | Exibe/oculta coluna de base; habilita edição e validação de VL_BASE |
| CNF009 — Cadastro Comissão V2 | source/CNF009/UCNF009.pas | Libera edição da coluna VL_TOTAL no grid |
Campos envolvidos
| Campo | Tabela | Descrição |
|---|---|---|
VL_BASE | ITEMNOTAVENDEDOR | Valor base para cálculo da comissão |
VL_LIQUIDO | ITEMNOTA | Valor líquido do item (usado como base padrão) |
VL_TOTAL | CONTROLE (CNF009) | Valor total no cadastro de comissão |
Opções disponíveis
S - Sim (Permite alterar a base de cálculo)
| O que faz | Detalhe |
|---|---|
| Coluna "Base" visível | A coluna VL_BASE (coluna 2 do grid) é exibida no formulário de vendedores agrupados |
| Campo editável | O usuário pode digitar um valor diferente do líquido |
| Validação ativa | Impede valor vazio, ≤ 0 ou maior que VL_LIQUIDO |
| CNF009 liberado | Grid CONTROLE coluna 5 e campo VL_TOTAL ficam editáveis |
Simulação passo a passo
- Acesse Vendas → Faturamento e abra um documento com vendedor associado.
- No formulário de vendedores, localize a coluna Base no grid — ela estará visível.
- Digite um valor manualmente, por exemplo
R$ 8,00em um item com líquido deR$ 10,00. - Pressione
<Tab>ou saia do campo — o sistema recalcula a comissão:(8,00 × percentual) / 100. - Repita para outros itens/vendedores conforme necessário.
- Salve o documento.
Resultado esperado: A comissão de cada vendedor é calculada sobre a base informada manualmente, não sobre o valor líquido. O campo é marcado como alteração manual (ST_MANUAL = 'S').
Exceção / Importante: O valor informado não pode ser maior que o valor líquido do item (
VL_LIQUIDO) nem vazio/zero — o sistema exibe erro W-0137 ou W-0138. Na tela CNF009, o campoVL_TOTALtambém se torna editável.
N - Não (Base de cálculo travada no valor líquido)
| O que faz | Detalhe |
|---|---|
| Coluna "Base" oculta | A coluna VL_BASE (coluna 2) é escondida no grid |
| Base fixa | O sistema utiliza automaticamente VL_LIQUIDO como base de cálculo |
| Grid redimensionado | As colunas vizinhas são alargadas para ocupar o espaço liberado |
| CNF009 travado | Grid CONTROLE coluna 5 e VL_TOTAL permanecem somente leitura |
Simulação passo a passo
- Acesse Vendas → Faturamento e abra um documento com vendedor associado.
- No formulário de vendedores, observe que a coluna Base não aparece no grid.
- A comissão de cada vendedor é calculada automaticamente sobre o valor líquido do item (ex.:
R$ 10,00×5%=R$ 0,50). - Salve o documento.
Resultado esperado: A comissão é sempre calculada sobre o valor líquido do item, sem possibilidade de alteração manual da base.
Exceção / Importante: O redimensionamento das colunas depende também de
ST_MOSTRACOMISSAO(configurado em MFA001 — Parâmetros de Faturamento, aba Vendedor). Quando ambos estão emN, a coluna 7 do grid recebe largura 220 e a coluna 1 (Vendedor) recebe largura 300. SeST_MOSTRACOMISSAO = 'S', os tamanhos são 190 e 230 respectivamente.
Regra geral
| Condição | Base de cálculo | Editável |
|---|---|---|
ST_ALTERABASECALCULOCOMISSAO = 'S' | Informada pelo usuário | Sim, com validação |
ST_ALTERABASECALCULOCOMISSAO = 'N' | VL_LIQUIDO do item | Não |
Relação com outros parâmetros
| Parâmetro | Configurado em | Interação |
|---|---|---|
ST_MOSTRACOMISSAO | MFA001 | Define se colunas de comissão são exibidas; quando ambos estão N, o grid é redimensionado para esconder a base |
ST_ALTERACOMISSAO | MFA001 | Controla se o botão "Alterar Comissão" aparece no formulário |
ST_VARIOSVENDEDORES | MFA001 | Define modelo de vendedor (único ou vários por item); CNF009 lê ambos os parâmetros juntos |
Procedures impactadas
Rotinas Delphi com referência direta
| Rotina | Arquivo | Linha | Resumo |
|---|---|---|---|
TdmMFA001.tabPARMFATURAfterInsert | source/MFA001/UdmMFA001.pas | 581 | Atribui valor padrão 'N' ao campo |
CarregarVendedorAgrupado | source/jVendedor/UVendedorAgrupado.pas | 385 | Se 'S', usa VL_BASE do documento; senão usa VL_LIQUIDO |
TfrmVendedorAgrupado.FormShow | source/jVendedor/UVendedorAgrupado.pas | 722 | Se <> 'S', oculta coluna 2 e redimensiona grid |
TfrmVendedorAgrupado.setParametros | source/jVendedor/UVendedorAgrupado.pas | 1200 | Carrega parâmetro via SELECT da PARMFATUR |
TfrmVendedorAgrupado.cdsVENDEDORESVL_BASEValidate | source/jVendedor/UVendedorAgrupado.pas | 1442 | Valida edição de VL_BASE quando 'S' |
iniciar | source/CNF009/UCNF009.pas | 400 | Consulta parâmetro para liberar/bloquear VL_TOTAL |
Scripts SQL
Não foi encontrada referência direta ao campo ST_ALTERABASECALCULOCOMISSAO nos scripts SQL (Scripts/). As procedures que utilizam a tabela PARMFATUR (como CALCULA_COMISSAO, CALCULA_COMISSAO_V2) acessam a tabela mas não leem este campo especificamente — a lógica de base de cálculo é tratada no lado Delphi.