ST_MOSTRACOMISSAO - Mostra Valor e Percentual dos Vários Vendedores
Tela de configuração: MFA001 - Parâmetros de Faturamento Localização: Parâmetros → aba Vendedor → grupo Parâmetros de Vendedor Caption (label na tela):
Mostra Valor e Percentual dos Vários VendedoresTabela:PARMFATUR.ST_MOSTRACOMISSAOValor padrão:S(Sim) — definido emUdmMFA001.pas:518(tabPARMFATURAfterInsert)
Telas impactadas
O parâmetro é lido pelos formulários de rateio de vendedores do pacote jVendedor (UVendedorIndividual e UVendedorAgrupado). Essas janelas são abertas como telas modais a partir dos módulos de Pedido, Nota Fiscal e Ordem de Serviço sempre que há mais de um vendedor associado ao documento (rateio de comissão).
| Módulo | Código | Tipo de uso | Como consome |
|---|---|---|---|
| Parâmetros de Faturamento | MFA001 | Produtora | Combobox Sim/Não que grava o campo |
| Pedido de Venda | MPD002 | Consumidora | Chama RateioVendedor... de jVendedor ao editar vendedores do pedido |
| Pedido Simplificado | MPD005 | Consumidora | Invoca frmVendedorIndividual/frmVendedorAgrupado |
| Pedido (Outro) | MPD004 | Consumidora | Invoca formulário de rateio de vendedores |
| Geração de NF a partir de Pedido | MPD011 | Consumidora | Carrega tela de rateio para a nota gerada |
| Pré-venda / PDV | MPD093 | Consumidora | Abre tela de vendedores |
| Nota Fiscal de Saída | MNF002 | Consumidora | Abre tela de vendedores ao emitir NF |
| NF Devolução / Outras | MNF013 | Consumidora | Abre tela de vendedores |
| NF Outra | MNF024 | Consumidora | Abre tela de vendedores |
| NF Outra | MNF032 | Consumidora | Abre tela de vendedores |
| Recap NF | MRC020 | Consumidora | Abre tela de vendedores ao manter NF da ordem |
| Ordem de Serviço | MOF001 | Consumidora | Abre tela de vendedores na OS |
| Ordem de Serviço (Outra) | MOF002 | Consumidora | Abre tela de vendedores na OS |
| Configuração NF | CNF001 | Consumidora | Abre tela de vendedores |
Nota: Quem efetivamente lê o parâmetro são as duas janelas genéricas
frmVendedorIndividualefrmVendedorAgrupadodo pacotejVendedor. Os módulos da tabela acima são apenas os chamadores dessas janelas. Qualquer novo módulo que invocarRateioVendedorIndividual/RateioVendedorAgrupadoherda automaticamente o efeito deST_MOSTRACOMISSAO.
Procedures impactadas
Nenhuma procedure/view/trigger em Scripts/ faz referência a ST_MOSTRACOMISSAO. A lógica é exclusivamente cliente (Delphi) — o parâmetro controla apenas a visibilidade e edição de colunas de comissão no grid de vendedores.
Campos envolvidos
| Campo | Tabela / Objeto | Descrição |
|---|---|---|
ST_MOSTRACOMISSAO | PARMFATUR | Liga/desliga a exibição de VL_COMISSAO e PC_COMISSAO na tela de rateio de vendedores |
VL_COMISSAO | PEDIDOVENDEDOR, NOTAVENDEDOR, ORDEMSERVICOVENDEDOR | Valor absoluto da comissão do vendedor no documento |
PC_COMISSAO | PEDIDOVENDEDOR, NOTAVENDEDOR, ORDEMSERVICOVENDEDOR | Percentual da comissão do vendedor no documento |
Opções disponíveis
S - Sim (default)
| O que faz | Detalhe |
|---|---|
| Valor/% visíveis? | SIM — colunas VL_COMISSAO (Valor Comissão) e PC_COMISSAO (% Comissão) aparecem no grid |
| Edição habilitada? | Sim, a menos que ST_ALTERACOMISSAO = 'S' bloqueie (aí ficam somente-leitura, fundo cinza) |
| Botão "Alterar Comissão" | Visível no formulário (pode ser escondido por ST_ALTERACOMISSAO) |
| Largura da coluna "Vendedor" | Padrão (gridVENDEDORES.Columns[1].Width := 230 quando St_AlteraBaseCalculoComissao <> 'S', UVendedorAgrupado.pas:733) |
Simulação passo a passo
- Em MFA001 → aba Vendedor → Parâmetros de Vendedor →
Mostra Valor e Percentual dos Vários Vendedores= Sim. - Salve (F6).
- Abra um pedido em MPD002 com vários vendedores (
ST_VARIOSVENDEDORES = 'S'). - Acione a tela de vendedores do pedido.
Resultado esperado:
- O grid exibe as colunas: Tipo de Vendedor, Vendedor, Valor Comissão, % Comissão, (Base de Cálculo, se habilitada).
- Os valores podem ser editados manualmente (respeitando
ST_ALTERACOMISSAO). - O botão Alterar Comissão é visível no rodapé da janela.
- O item de menu de contexto "Alterar Comissão" está habilitado.
N - Não
| O que faz | Detalhe |
|---|---|
| Valor/% visíveis? | NÃO — colunas VL_COMISSAO e PC_COMISSAO ficam Visible := False e ReadOnly := True |
| Edição habilitada? | Irrelevante (colunas escondidas); fields são forçados a ReadOnly := True no dataset |
| Botão "Alterar Comissão" | Escondido (btnALTERACOMISSAO.Visible := False) |
| Menu de contexto | Itens PopupMenu.Items[1] e PopupMenu.Items[3] ficam Enabled := False (apenas UVendedorAgrupado) |
| Largura da coluna "Vendedor" | Expandida para ocupar o espaço liberado: 300 (UVendedorAgrupado.pas:697) ou 340 (UVendedorIndividual.pas:548) |
| Ajuste extra com base de cálculo | Se ST_ALTERABASECALCULOCOMISSAO <> 'S', a coluna 7 recebe Width := 220 e a coluna 1 permanece em 300 (UVendedorAgrupado.pas:727-728) |
Simulação passo a passo
- Em MFA001 → aba Vendedor → Parâmetros de Vendedor →
Mostra Valor e Percentual dos Vários Vendedores= Não. - Salve (F6).
- Abra um pedido em MPD002 com vários vendedores.
- Acione a tela de vendedores do pedido.
Resultado esperado:
- O grid exibe apenas: Tipo de Vendedor e Vendedor (colunas de Valor e % de Comissão sumiram).
- A coluna Vendedor fica mais larga (300 pixels no
UVendedorAgrupado, 340 pixels noUVendedorIndividual). - O botão Alterar Comissão não aparece na tela.
- No menu de contexto (clique direito) os itens relativos à comissão estão desabilitados.
- Internamente, mesmo que alguém tente mexer via código,
tabVendedorIndividualVL_COMISSAO.ReadOnlyetabVendedorIndividualPC_COMISSAO.ReadOnlysãotrue(verUVendedorIndividual.pas:551-552).
Interação com ST_COMISSAO / ST_ALTERACOMISSAO
O trio ST_COMISSAO × ST_MOSTRACOMISSAO × ST_ALTERACOMISSAO atua em camadas sucessivas do fluxo de comissão:
| Camada | Parâmetro | Pergunta que responde |
|---|---|---|
| 1 — Cálculo | ST_COMISSAO | O sistema calcula comissão nos documentos? |
| 2 — Exibição | ST_MOSTRACOMISSAO | O usuário vê valor e percentual da comissão no rateio de vários vendedores? |
| 3 — Edição | ST_ALTERACOMISSAO | O usuário pode alterar manualmente o valor/percentual? |
Matriz combinada
ST_COMISSAO | ST_MOSTRACOMISSAO | ST_ALTERACOMISSAO | Comportamento na tela de rateio de vendedores |
|---|---|---|---|
N | S | — | Colunas aparecem mas os valores tendem a ficar zerados (sistema não calcula) — cenário incoerente |
S / V | S | N | Colunas visíveis e editáveis; botão "Alterar Comissão" ativo |
S / V | S | S | Colunas visíveis mas somente-leitura (fundo cinza $00EEEEEE, cor da fonte $009D6A00); botão "Alterar Comissão" escondido |
S / V | N | — | Colunas invisíveis, ReadOnly, botão "Alterar Comissão" escondido. Operador não vê nem edita comissão |
Observação importante:
ST_MOSTRACOMISSAOnão afeta o cálculo de comissão feito pelas procedures (CALCULA_COMISSAO,RECALCULA_COMISSAO, etc.). O cálculo continua ocorrendo normalmente no banco; o parâmetro apenas oculta visualmente o resultado no momento do rateio de vendedores.O combobox de
ST_MOSTRACOMISSAOfica ao lado do combobox deST_ALTERACOMISSAOna aba Vendedor do MFA001 (linhas 5419 e 5446 doUMFA001.dfm), reforçando que os parâmetros são usados em conjunto na UI.
Tabela Comparativa Resumida
| Valor | Descrição | Colunas VL_COMISSAO / PC_COMISSAO | Botão "Alterar Comissão" | Menu contexto comissão | Largura col. Vendedor |
|---|---|---|---|---|---|
S | Sim (default) | Visíveis e editáveis (ressalvado ST_ALTERACOMISSAO) | Visível | Habilitado | Padrão (230) |
N | Não | Ocultas e ReadOnly | Escondido | Desabilitado | Ampliada (300 / 340) |
Referências no Código Fonte
Delphi — tela de parâmetros (MFA001)
| Arquivo | Linha(s) | Conteúdo |
|---|---|---|
source/MFA001/UMFA001.dfm | 5025 | TabSheet com Caption = 'Vendedor' — aba onde o parâmetro fica |
source/MFA001/UMFA001.dfm | 5032 | GroupBox com Caption = ' Parâmetros de Vendedor ' |
source/MFA001/UMFA001.dfm | 5125-5139 | Label64 com Caption = 'Mostra Valor e Percentual dos Vários Vendedores' e FocusControl = cmbST_MOSTRACOMISSAO |
source/MFA001/UMFA001.dfm | 5419-5445 | cmbST_MOSTRACOMISSAO: TwwDBComboBox — DataField = 'ST_MOSTRACOMISSAO', Items.Strings = ('Sim'#9'S', 'Não'#9'N'), Style = csDropDownList, MapList = True |
source/MFA001/UMFA001.pas | 591 | Declaração do componente cmbST_MOSTRACOMISSAO: TwwDBComboBox |
source/MFA001/UdmMFA001.pas | 198 | Declaração do field tabPARMFATURST_MOSTRACOMISSAO: TStringField |
source/MFA001/UdmMFA001.pas | 518 | AfterInsert: tabPARMFATURST_MOSTRACOMISSAO.AsString := 'S'; — valor default |
source/MFA001/UdmMFA001.dfm | 209, 1484-1487, 2404, 2797, 3089 | SELECT/INSERT/UPDATE da PARMFATUR (queries do dataset) e definição do field com Size = 1 |
Nota sobre nomes enganosos: Os componentes
cmbST_MOSTRACOMISSAO1(linha 5343) ecmbST_MOSTRACOMISSAO2(linha 4798) não estão ligados aST_MOSTRACOMISSAO— o1está associado a outro campo e o2é um combobox deST_CONTROLETFA002(DataField = 'ST_CONTROLETFA002'). ApenascmbST_MOSTRACOMISSAO(sem sufixo, linha 5419) leitura/escreve este parâmetro.
Delphi — formulários consumidores (jVendedor)
| Arquivo | Linha(s) | Conteúdo |
|---|---|---|
source/jVendedor/UVendedorIndividual.pas | 535, 546-556 | Lê ParmFatur.Values['ST_MOSTRACOMISSAO']. Se = 'N': expande coluna 1 para 340, oculta colunas 2 e 3 (VL/PC_COMISSAO), força ReadOnly := True nos fields VL_COMISSAO e PC_COMISSAO, esconde btnALTERACOMISSAO |
source/jVendedor/UVendedorAgrupado.pas | 1196-1203 | SELECT em PARMFATUR que carrega ST_MOSTRACOMISSAO junto com ST_ALTERACOMISSAO, ST_OBRIGATIPOVENDPRINCIPAL, etc. |
source/jVendedor/UVendedorAgrupado.pas | 1209 | Atribui Param.St_MostraComissao := Resultado[2] |
source/jVendedor/UVendedorAgrupado.pas | 695-707 | FormShow: se Param.St_MostraComissao = 'N' — define Columns[1].Width := 300, oculta Columns[4] e Columns[5], força fields VL_COMISSAO/PC_COMISSAO ReadOnly, esconde btnALTERACOMISSAO, desabilita PopupMenu.Items[1] e PopupMenu.Items[3] |
source/jVendedor/UVendedorAgrupado.pas | 722-735 | Ajuste extra quando St_AlteraBaseCalculoComissao <> 'S': se ST_MOSTRACOMISSAO = 'N' coloca coluna 7 em 220 e coluna 1 em 300; caso contrário, 190 e 230 |
source/jVendedor/jRateioVendedor.pas | 47-66 | Classe Tparametros com o campo St_MostraComissao: string que transporta o valor do parâmetro entre setParametros e o FormShow |
SQL
Nenhuma referência em Scripts/ (a lógica é 100% client-side). O parâmetro é lido apenas em Delphi via:
ParmFatur.Values['ST_MOSTRACOMISSAO'](noUVendedorIndividual)- SELECT direto em
PARMFATUR(noUVendedorAgrupado)