TP_MOSTRAVENDEDORES - Modo de Exibição dos Vendedores
Tela de configuração: MFA001 - Parâmetros de Faturamento Localização: aba Vendedor → label "Tipo Vários Vendedores" Tabela:
PARMFATUR.TP_MOSTRAVENDEDORES(CHAR(1), NOT NULL) Valor padrão:N(Normal)
Define como a tela de rateio de vendedores é apresentada ao usuário nos documentos de venda (Pedidos, NF, Ordens de Carregamento). Pré-requisito: o parâmetro ST_VARIOSVENDEDORES precisa estar em S; caso contrário, este combo nem aparece na tela MFA001.
Telas impactadas
| Tela | Contexto | Comportamento |
|---|---|---|
| MPD002 | Pedido de Venda — ao salvar | N → abre rateio individual por item (UVendedorIndividual); A → abre rateio agrupado (UVendedorAgrupado) |
| MNF002 | Nota Fiscal — gravação | <> A → replica vendedores do pedido para ITEMNOTAVENDEDOR item a item; A → chama RateioVendedorAgrupado |
| MNF013 | CTRC/Nota de Transporte — gravação | A → abre RateioVendedorAgrupado para todos os itens |
| MRC020 | Ordem de Carregamento — gravação | <> A → replica vendedores do pedido; A → rateio agrupado |
| MFA001 | Configuração | Controla visibilidade de ST_REPETECOMISSAO (só visível quando N) |
| MCO006 | Movimentação Contábil | Apenas lê o campo para parâmetros internos |
Campos envolvidos
| Campo | Tabela | Relação |
|---|---|---|
ST_VARIOSVENDEDORES | PARMFATUR | Pré-requisito obrigatório = S (configurado em MFA001 → aba Vendedor) |
ST_REPETECOMISSAO | PARMFATUR | Só visível em MFA001 quando ST_VARIOSVENDEDORES='S' e TP_MOSTRAVENDEDORES='N' (configurado em MFA001 → aba Vendedor) |
ST_COMISSAO | ITEMPEDIDO / ITEMNOTA | Item precisa ter ST_COMISSAO='S' para o rateio ser disparado |
Opções disponíveis
N - Normal (Rateio Individual)
| O que faz | Detalhe |
|---|---|
| Modo de exibição | Rateio individual por item — abre UVendedorIndividual para cada item com ST_COMISSAO='S' |
| Editável em MFA001 | Sim (quando ST_VARIOSVENDEDORES='S') |
| Torna visível | ST_REPETECOMISSAO aparece no formulário |
| Usado em | MPD002, MNF002, MRC020 |
Simulação passo a passo
- Acesse MFA001 → aba Vendedor.
- Confirme que Vários Vendedores Por Produto (
ST_VARIOSVENDEDORES) está marcado como Sim. - Selecione Tipo Vários Vendedores = Normal.
- Salve os parâmetros.
- Abra um Pedido (MPD002) e insira um item com comissão ativa.
- Ao salvar, o sistema abre a tela de rateio individual para cada item, permitindo informar os vendedores um a um.
- Repita vendedores automaticamente? — o combo
ST_REPETECOMISSAOagora fica visível em MFA001 e controla esse comportamento.
Resultado esperado: Ao salvar o pedido, o sistema percorre cada item com comissão e abre a tela de rateio individual (UVendedorIndividual), permitindo definir os vendedores por item separadamente.
A - Agrupado (Rateio Agrupado)
| O que faz | Detalhe |
|---|---|
| Modo de exibição | Rateio agrupado — abre UVendedorAgrupado com todos os itens em uma única tela |
| Editável em MFA001 | Sim (quando ST_VARIOSVENDEDORES='S') |
| Oculta | ST_REPETECOMISSAO desaparece do formulário |
| Usado em | MPD002, MNF002, MNF013, MRC020 |
Simulação passo a passo
- Acesse MFA001 → aba Vendedor.
- Confirme que Vários Vendedores Por Produto (
ST_VARIOSVENDEDORES) está marcado como Sim. - Selecione Tipo Vários Vendedores = Agrupado.
- Salve os parâmetros.
- Abra um Pedido (MPD002) e insira itens com comissão ativa.
- Ao salvar, o sistema abre uma única tela (
UVendedorAgrupado) listando todos os itens juntos para distribuir os vendedores de forma concentrada.
Resultado esperado: Uma tela agrupada com todos os itens é exibida, permitindo alocar vendedores de forma consolidada, em vez de item a item.
Exceção / Importante: Se o usuário cancelar a tela de rateio agrupado, o sistema emite o aviso "Rateio de Vendedores Cancelado!" e interrompe a gravação. Além disso, o combo
ST_REPETECOMISSAOé automaticamente ocultado ao escolherAgrupado, pois a repetição de vendedores entre itens perde sentido nesse modo.
Regra de visibilidade no MFA001
ST_VARIOSVENDEDORES | TP_MOSTRAVENDEDORES | cmbTP_MOSTRAVENDEDORES visível? | cmbST_REPETECOMISSAO visível? |
|---|---|---|---|
N | qualquer | Não | Não |
S | N (Normal) | Sim | Sim |
S | A (Agrupado) | Sim | Não |
A lógica está em dois callbacks:
cmbST_VARIOSVENDEDORESChange(linha 2128): ao trocar paraN, oculta o combo e todos os campos dependentes.cmbTP_MOSTRAVENDEDORESChange(linha 2566): ao trocar paraNcomST_VARIOSVENDEDORES='S', exibeST_REPETECOMISSAO; caso contrário, oculta.
Tabela Comparativa Resumida
| Valor | Descrição | Tela de rateio | ST_REPETECOMISSAO visível? |
|---|---|---|---|
N | Normal (padrão) | Individual por item (UVendedorIndividual) | Sim |
A | Agrupado | Única para todos os itens (UVendedorAgrupado) | Não |
Procedures impactadas
Rotinas Delphi com referência direta ao campo
| Rotina | Arquivo | Linha | Contexto |
|---|---|---|---|
TdmMFA001.tabPARMFATURAfterInsert | UdmMFA001.pas | 582 | Define valor padrão 'N' |
cmbTP_MOSTRAVENDEDORESChange | UMFA001.pas | 2566 | Controla visibilidade de ST_REPETECOMISSAO |
TfrmMFA001.cmbST_VARIOSVENDEDORESChange | UMFA001.pas | 2135 | Exibe/oculta o combo conforme ST_VARIOSVENDEDORES |
TfrmMPD002.btnSalvarClick | UMPD002.pas | 2494 | <> A → rateio individual por item |
Grava_NotaFiscal (MNF002) | UdmMNF002.pas | 2473 | <> A → replica vendedores item a item |
Grava_NotaFiscal (MNF013) | UdmMNF013.pas | 1532 | = A → abre RateioVendedorAgrupado |
Grava_NotaFiscal (MRC020) | UdmMRC020NFORDEM.pas | 2173 | <> A → replica vendedores do pedido |
TfrmVendedorAgrupado.setParametros | UVendedorAgrupado.pas | 1201 | Lê parâmetro para gate de abertura |
TdmMCO006.BuscaParametros_MCO006 | UdmMCO006.pas | 2116 | Apenas leitura |
TdmMNF002.BuscaParametros_MNF002 | UdmMNF002.pas | 10507 | Apenas leitura |
TdmMNF008.BuscaParametros_MNF008 | UdmMNF008.pas | 772 | Apenas leitura |
calculaValorCTRC | UdmMNF013.pas | 539 | Declara variável local para o parâmetro |
Referências SQL diretas ao campo
Nenhuma procedure/view SQL em Scripts/ referencia diretamente TP_MOSTRAVENDEDORES. As procedures que utilizam a tabela PARMFATUR (ex.: CALCULA_COMISSAO, CALCULA_COMISSAO_V2, CANCELA_NOTAFISCAL) acessam outros campos, sem impacto funcional direto por este parâmetro.