Pular para o conteúdo principal

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 Vendedores Tabela: PARMFATUR.ST_MOSTRACOMISSAO Valor padrão: S (Sim) — definido em UdmMFA001.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óduloCódigoTipo de usoComo consome
Parâmetros de FaturamentoMFA001ProdutoraCombobox Sim/Não que grava o campo
Pedido de VendaMPD002ConsumidoraChama RateioVendedor... de jVendedor ao editar vendedores do pedido
Pedido SimplificadoMPD005ConsumidoraInvoca frmVendedorIndividual/frmVendedorAgrupado
Pedido (Outro)MPD004ConsumidoraInvoca formulário de rateio de vendedores
Geração de NF a partir de PedidoMPD011ConsumidoraCarrega tela de rateio para a nota gerada
Pré-venda / PDVMPD093ConsumidoraAbre tela de vendedores
Nota Fiscal de SaídaMNF002ConsumidoraAbre tela de vendedores ao emitir NF
NF Devolução / OutrasMNF013ConsumidoraAbre tela de vendedores
NF OutraMNF024ConsumidoraAbre tela de vendedores
NF OutraMNF032ConsumidoraAbre tela de vendedores
Recap NFMRC020ConsumidoraAbre tela de vendedores ao manter NF da ordem
Ordem de ServiçoMOF001ConsumidoraAbre tela de vendedores na OS
Ordem de Serviço (Outra)MOF002ConsumidoraAbre tela de vendedores na OS
Configuração NFCNF001ConsumidoraAbre tela de vendedores

Nota: Quem efetivamente lê o parâmetro são as duas janelas genéricas frmVendedorIndividual e frmVendedorAgrupado do pacote jVendedor. Os módulos da tabela acima são apenas os chamadores dessas janelas. Qualquer novo módulo que invocar RateioVendedorIndividual / RateioVendedorAgrupado herda automaticamente o efeito de ST_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​

CampoTabela / ObjetoDescrição
ST_MOSTRACOMISSAOPARMFATURLiga/desliga a exibição de VL_COMISSAO e PC_COMISSAO na tela de rateio de vendedores
VL_COMISSAOPEDIDOVENDEDOR, NOTAVENDEDOR, ORDEMSERVICOVENDEDORValor absoluto da comissão do vendedor no documento
PC_COMISSAOPEDIDOVENDEDOR, NOTAVENDEDOR, ORDEMSERVICOVENDEDORPercentual da comissão do vendedor no documento

Opções disponíveis​

S - Sim (default)​

O que fazDetalhe
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​

  1. Em MFA001 → aba Vendedor → Parâmetros de Vendedor → Mostra Valor e Percentual dos Vários Vendedores = Sim.
  2. Salve (F6).
  3. Abra um pedido em MPD002 com vários vendedores (ST_VARIOSVENDEDORES = 'S').
  4. 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 fazDetalhe
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 contextoItens 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álculoSe 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​

  1. Em MFA001 → aba Vendedor → Parâmetros de Vendedor → Mostra Valor e Percentual dos Vários Vendedores = Não.
  2. Salve (F6).
  3. Abra um pedido em MPD002 com vários vendedores.
  4. 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 no UVendedorIndividual).
  • 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.ReadOnly e tabVendedorIndividualPC_COMISSAO.ReadOnly são true (ver UVendedorIndividual.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:

CamadaParâmetroPergunta que responde
1 — CálculoST_COMISSAOO sistema calcula comissão nos documentos?
2 — ExibiçãoST_MOSTRACOMISSAOO usuário vê valor e percentual da comissão no rateio de vários vendedores?
3 — EdiçãoST_ALTERACOMISSAOO usuário pode alterar manualmente o valor/percentual?

Matriz combinada​

ST_COMISSAOST_MOSTRACOMISSAOST_ALTERACOMISSAOComportamento na tela de rateio de vendedores
NS—Colunas aparecem mas os valores tendem a ficar zerados (sistema não calcula) — cenário incoerente
S / VSNColunas visíveis e editáveis; botão "Alterar Comissão" ativo
S / VSSColunas visíveis mas somente-leitura (fundo cinza $00EEEEEE, cor da fonte $009D6A00); botão "Alterar Comissão" escondido
S / VN—Colunas invisíveis, ReadOnly, botão "Alterar Comissão" escondido. Operador não vê nem edita comissão

Observação importante: ST_MOSTRACOMISSAO nã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_MOSTRACOMISSAO fica ao lado do combobox de ST_ALTERACOMISSAO na aba Vendedor do MFA001 (linhas 5419 e 5446 do UMFA001.dfm), reforçando que os parâmetros são usados em conjunto na UI.

Tabela Comparativa Resumida​

ValorDescriçãoColunas VL_COMISSAO / PC_COMISSAOBotão "Alterar Comissão"Menu contexto comissãoLargura col. Vendedor
SSim (default)Visíveis e editáveis (ressalvado ST_ALTERACOMISSAO)VisívelHabilitadoPadrão (230)
NNãoOcultas e ReadOnlyEscondidoDesabilitadoAmpliada (300 / 340)

Referências no Código Fonte​

Delphi — tela de parâmetros (MFA001)​

ArquivoLinha(s)Conteúdo
source/MFA001/UMFA001.dfm5025TabSheet com Caption = 'Vendedor' — aba onde o parâmetro fica
source/MFA001/UMFA001.dfm5032GroupBox com Caption = ' Parâmetros de Vendedor '
source/MFA001/UMFA001.dfm5125-5139Label64 com Caption = 'Mostra Valor e Percentual dos Vários Vendedores' e FocusControl = cmbST_MOSTRACOMISSAO
source/MFA001/UMFA001.dfm5419-5445cmbST_MOSTRACOMISSAO: TwwDBComboBox — DataField = 'ST_MOSTRACOMISSAO', Items.Strings = ('Sim'#9'S', 'Não'#9'N'), Style = csDropDownList, MapList = True
source/MFA001/UMFA001.pas591Declaração do componente cmbST_MOSTRACOMISSAO: TwwDBComboBox
source/MFA001/UdmMFA001.pas198Declaração do field tabPARMFATURST_MOSTRACOMISSAO: TStringField
source/MFA001/UdmMFA001.pas518AfterInsert: tabPARMFATURST_MOSTRACOMISSAO.AsString := 'S'; — valor default
source/MFA001/UdmMFA001.dfm209, 1484-1487, 2404, 2797, 3089SELECT/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) e cmbST_MOSTRACOMISSAO2 (linha 4798) não estão ligados a ST_MOSTRACOMISSAO — o 1 está associado a outro campo e o 2 é um combobox de ST_CONTROLETFA002 (DataField = 'ST_CONTROLETFA002'). Apenas cmbST_MOSTRACOMISSAO (sem sufixo, linha 5419) leitura/escreve este parâmetro.

Delphi — formulários consumidores (jVendedor)​

ArquivoLinha(s)Conteúdo
source/jVendedor/UVendedorIndividual.pas535, 546-556Lê 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.pas1196-1203SELECT em PARMFATUR que carrega ST_MOSTRACOMISSAO junto com ST_ALTERACOMISSAO, ST_OBRIGATIPOVENDPRINCIPAL, etc.
source/jVendedor/UVendedorAgrupado.pas1209Atribui Param.St_MostraComissao := Resultado[2]
source/jVendedor/UVendedorAgrupado.pas695-707FormShow: 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.pas722-735Ajuste 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.pas47-66Classe 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'] (no UVendedorIndividual)
  • SELECT direto em PARMFATUR (no UVendedorAgrupado)