Vários Vendedores Por Produto (Rateio de Comissão por Item)
Tela de configuração: MFA001 - Parâmetros de Faturamento Localização: Aba "Vendedor" → Label
Vários Vendedores Por Produto(ComboBoxcmbST_VARIOSVENDEDORES) Tabela:PARMFATUR.ST_VARIOSVENDEDORESValor padrão:N(Não) Hint da tela (módulos relacionados):[MRC001, MPD002, MNF002, MNF024]
Controla se o sistema permite vários vendedores rateando a comissão por item do documento (Pedido, Nota Fiscal, Ordem de Serviço, Ordem de Carregamento e Produção). Quando ativo, cada item passa a ter uma grade auxiliar (ITEMPEDIDOVENDEDOR, ITEMNOTAVENDEDOR, SERVICOITEMVENDEDOR, etc.) permitindo dividir a comissão entre múltiplos vendedores; quando inativo, apenas o vendedor único do cabeçalho recebe a comissão.
Este parâmetro é um dos mais difundidos do módulo faturamento: aparece em 59 stored procedures SQL e em cerca de 30 módulos Delphi, além de ser o gatilho para exibir/ocultar abas inteiras em telas de cadastro como CNF001, MPD002, MNF002, MOF001 e a UI compartilhada em jVendedor/UVendedorAgrupado.pas e jVendedor/UVendedorIndividual.pas.
Telas impactadas
| Módulo | Código | Efeito principal do parâmetro |
|---|---|---|
| Parâmetros de Faturamento | MFA001 | Tela onde o parâmetro é cadastrado; controla UI complementar (aba Vendedor) |
| NF Saída (principal) | MNF002 | Exibido no hint como alvo principal; alimenta o rateio por item |
| NF Cupom/Contingência | MNF008 | SELECT em PARMFATUR carrega ST_VARIOSVENDEDORES |
| NF Troca de Vendedor | MNF011 | Quando S, exibe grupos de vários vendedores (item/nota/pedido); quando N, atualiza ENDERECOPESSOA.CD_VENDEDOR |
| NF Devolução | MNF019 | Ajustes no rateio quando S |
| NF CT-e | MNF013 | Interage com PARMTRANSPORTE.ST_VENDEDOR |
| Cupom Fiscal | MNF024 | Exibido no hint; quando N oculta cmbTP_COMISSAO/lblcomissao; quando S + TP_COMISSAO='M' gera parâmetros de vários vendedores |
| Conhecimento de Transporte | MNF022 | Usa SELECT próprio de ST_VARIOSVENDEDORES |
| Ordem Produção Recapadora | MNF025 | Lógica no rateio |
| Fechamento NF / Rateio | MNF026 | Múltiplas ramificações conforme valor |
| Pedido de Venda | MPD002 (via jVendedor) | Exibido no hint como alvo principal |
| Ordem de Serviço | MOF001 | Quando S, oculta colunas/edits de vendedor no grid de serviços e trava SERVICOITEMCD_VENDEDOR |
| Recebimento / Compensação | MRC001 | Exibido no hint como alvo principal |
| Cadastro Vendedor | CNF001 | Quando S, torna pagVendedoresAlteracao visível |
| Cadastro Tipo Movimento | CNF003 | Controle de UI específico |
| Cadastro Movimentação | CNF007 | Controle de UI específico |
| Cadastro Comissão | CNF008 | SELECT específico |
| Cadastro Comissão V2 | CNF009 | SELECT ST_VARIOSVENDEDORES, ST_ALTERABASECALCULOCOMISSAO |
| Cópia PARMFATUR | CPD001, CPD003, CPD013 | Replica/ajusta valor na cópia entre empresas |
| Parâmetros Admin | ADM010 | SELECT direto em PARMFATUR.ST_VARIOSVENDEDORES |
| Conferência/Produção | CRC001, CRC002 | Carrega em iVariosVend |
| Movimentação Contábil | MCO006 | SELECT em PARMFATUR |
| Rateio de vendedores (shared) | jVendedor/UVendedorAgrupado.pas + jVendedor/UVendedorIndividual.pas + jVendedor/jRateioVendedor.pas | Campo St_VariosVendedores do record TParametrosVendedor; gate inicial de abertura da tela agrupada (exige S e TP_MOSTRAVENDEDORES='A') |
| Serviço de integração | JunsoftServiceFatApp/PersistenciaDao.pas | Carrega stVariosVendedores |
Procedures SQL impactadas (destaques)
São 59 arquivos em Scripts/ que referenciam ST_VARIOSVENDEDORES. Principais:
| Procedure / View | Papel |
|---|---|
CALCULA_COMISSAO.sql | Procedure-chave. Lê o parâmetro (linhas 44, 72-75). Quando N, força CD_TIPOVENDEDOR IS NULL no WHERE. Ramifica várias vezes (ex.: linha 184, 688) para usar RETORNA_BASENOTACOMISSAO_V2 (quando S) vs RETORNA_BASENOTACOMISSAO (quando N) |
CALCULA_COMISSAO_V2.sql | Variante utilizada em pipeline novo |
CALCULA_CENTRORESULTITEM.sql | Ramifica UNION ALL lendo comissão de ITEMNOTA (quando N, linha 119) ou de ITEMNOTAVENDEDOR (quando S, linha 142) |
CALCULA_CENTRORESULT.sql | Mesma lógica em versão agregada (linha 195 monta WHERE dinâmico AND PF.ST_VARIOSVENDEDORES = ''N'') |
GRAVA_NOTAFISCALPEDIDO.sql, GERA_NOTAFISCALPEDIDO.sql, GERA_NOTAFISCALORDEMCARREG.sql, GERA_NFORDEMCARREGMRC049.sql | Decidem se copiam registros de ITEMPEDIDOVENDEDOR para ITEMNOTAVENDEDOR |
GRAVA_NOTACTE.sql | Integra com transporte |
RETORNA_VENDEDORES.sql, RETORNA_VENDEDORESPEDIDO.sql, RETORNA_VENDEDORESOS.sql, RETORNA_VENDEDORESOS2.sql, RETORNA_VENDEDORESORDEMSERV.sql, RETORNA_VENDEDORVISITA.sql | Fontes de dados do grid de rateio |
RETORNA_LIQUIDACAOCOMISSAO.sql | Liquidação olha o parâmetro |
RETORNA_VLCONTA_VENDNOTA.sql, RETORNA_VENDASPESSOA.sql, RETORNA_PRODUTOSRRC022.sql, RETORNA_OBSNOTA.sql, RETORNA_ITENSADICIONAISNOTA.sql | Usadas em relatórios fiscais/gerenciais |
VIEW_COMISSAO.sql, VIEW_COMISSAONOTA_E.sql, VIEW_COMISSAOMODELO_A/G/H/K.sql | Views de comissão comutam fonte ITEMNOTA ↔ ITEMNOTAVENDEDOR |
VIEW_RNF010(_D/_F).sql, VIEW_RNF017_2.sql, VIEW_RNF020(_V).sql, VIEW_RNF029_V.sql, VIEW_RNF035(_GRAFICO).sql | Relatórios de NF consomem o parâmetro |
VIEW_REQ014_LUCRATIVIDADE.sql, VIEW_CUSTOVENDARNF006.sql, VIEW_RPD009.sql, VIEW_ROF004_FATMENSAL.sql | Relatórios de rentabilidade/custo/ordem |
JV_ACOMPANHAMENTOVENDAS.sql, JV_FATURAMENTOMENSALPORVENDEDOR.sql, JV_PROJECAOVENDEDOR.sql | Dashboards do módulo JV |
INSERE_CONSERTOSPNEU.sql, INSERE_CONSERTOSRETRABALHO.sql, INSERE_ITEMPEDIDO_BANDARECAP.sql | Recapadora / recondicionamento |
GERA_ORDEMPRODUCAORECAP.sql, FECHA_ORDEMPRODUCAORECAP(NOTA).sql, CONFIRMA_ORDEMSERVICO(METAL).sql | Produção/OS |
PROCESSA_PEDIDOSOVIS(_DESM).sql, PROCESSA_VISITASOVIS.sql, PROCESSA_ITEMPEDIDOHUB.sql, PROCESSA_ITEMPEDIDOIMPORTACAO.sql, PROCESSA_ITEMPEDIMPPRESTASHOP.sql | Integrações (SOVIS/Hub/E-commerce) |
ITEMPEDIDOPNEUBORRACHEIRO_BI0.sql, GERA_INTEGRACAO.sql | Integração de pedido específico |
Campos envolvidos
| Campo / Tabela | Relação com o parâmetro |
|---|---|
PARMFATUR.ST_VARIOSVENDEDORES | O próprio parâmetro (S/N), domínio DOM_CHAR1 |
PEDIDO.CD_VENDEDOR / NOTA.CD_VENDEDOR | Vendedor único do cabeçalho (sempre existe) |
ITEMPEDIDOVENDEDOR (CD_VENDEDOR, PC_COMISSAO, VL_COMISSAO, CD_TIPOVENDEDOR) | Grid de rateio utilizado apenas quando S |
ITEMNOTAVENDEDOR (idem) | Grid de rateio da NF; UNIONs em CALCULA_CENTRORESULTITEM escolhem esta tabela quando S |
SERVICOITEMVENDEDOR, ITENSCONSUMOVENDEDOR | Rateio para Ordem de Serviço |
ENDERECOPESSOA.CD_VENDEDOR | Em MNF011 (troca de vendedor), só é atualizado globalmente quando o parâmetro é N |
VENDEDOR.CD_TIPOVENDEDOR / TIPOVENDEDOR | "Tipos" de vendedor (ex.: Principal, Técnico, Externo). Usados no rateio quando S |
PARMFATUR.TP_MOSTRAVENDEDORES | Determina onde aparece o grid: A=Agrupado, N=Nenhum/individual. UVendedorAgrupado só abre quando ST_VARIOSVENDEDORES='S' e TP_MOSTRAVENDEDORES='A' |
PARMFATUR.ST_OBRIGATIPOVENDPRINCIPAL | Obriga tipo "Principal" no rateio; só é visível se este parâmetro = S |
PARMFATUR.ST_BLOQMESMOTIPOVENDEDOR | Bloqueia repetir o mesmo tipo de vendedor; visível só quando S |
PARMFATUR.ST_REPETECOMISSAO | Controla o que é reaproveitado Pedido→NF; só é visível quando S e TP_MOSTRAVENDEDORES='N' |
PARMFATUR.ST_VENDEDOR (bloqueio) | Combinado no MPD020: bloqueia PC_COMISSAOGERAL quando ST_VENDEDOR∈{A,P} e ST_VARIOSVENDEDORES='N' e ST_COMISSAO='S' |
PARMFATUR.ST_COMISSAO | Regras de comissão de item só fazem sentido quando ST_COMISSAO='S'; em MNF024 só gera parâmetros de vários vendedores se ST_COMISSAO='S' e ST_VARIOSVENDEDORES='S' |
PARMFATUR.ST_ALTERACOMISSAO | O ComboBox é desabilitado quando ST_VARIOSVENDEDORES='N' (cmbST_ALTERACOMISSAOChange) |
Opções disponíveis
S - Sim
| O que faz | Detalhe |
|---|---|
Habilita grade ITEMPEDIDOVENDEDOR/ITEMNOTAVENDEDOR? | SIM - vários vendedores por item, cada um com seu PC_COMISSAO/VL_COMISSAO/CD_TIPOVENDEDOR |
| Onde aparece a UI de rateio? | UVendedorAgrupado (se TP_MOSTRAVENDEDORES='A') ou UVendedorIndividual caso contrário |
Impacto no CALCULA_COMISSAO.sql | V_WHERE_VARIOSVENDEDORES = '' (sem filtrar tipo de vendedor); usa RETORNA_BASENOTACOMISSAO_V2 (linha 688) |
Impacto no CALCULA_CENTRORESULTITEM.sql | Ramo superior do UNION ALL (linha 142): puxa VL_COMISSAO de ITEMNOTAVENDEDOR |
| MOF001 | Oculta lblNM_VENDEDOR / edtNM_VENDEDOR1, alarga coluna 1 do gridSERVICOITEM, zera largura da coluna 4, trava tabSERVICOITEMCD_VENDEDOR |
| MNF011 | Torna visíveis grpNOTAVARVEND, grpITEMVARVEND, grpVENDEDORESNOTA, grpPEDVARVEND; oculta grpSALDO/grpITEMNOTA; tabITEMPEDIDOPC_COMISSAO.ReadOnly := True |
| MNF024 | Quando S, exibe cmbTP_COMISSAO e lblcomissao. Com TP_COMISSAO='M' e ST_COMISSAO='S', monta array ParmVendedores[0..19] para chamar rotina de rateio (linha 1024) |
| CNF001 | pagVendedoresAlteracao.TabVisible := True (linhas 3017, 7214) - libera aba de alteração de vendedores do cadastro |
| CPD001, CPD013 | Copia ITEMPEDIDOVENDEDOR/ITEMNOTAVENDEDOR durante a cópia entre empresas |
MFA001 - comportamento ao marcar S | cmbST_ALTERACOMISSAO.Enabled := True; torna visíveis chkST_OBRIGATIPOVENDPRINCIPAL, chkST_BLOQMESMOTIPOVENDEDOR, lblTP_MOSTRAVENDEDORES, cmbTP_MOSTRAVENDEDORES |
Simulação passo a passo (modo S)
- Abra MFA001 → aba Vendedor
- No campo "Vários Vendedores Por Produto" selecione Sim
- Observe: o
ComboBox"Altera Comissão" é liberado e aparecem os campos deObriga Tipo Vendedor Principal,Bloqueia Mesmo Tipo Vendedor,Mostrar Vendedorese (seMostrar Vendedores='Nenhum')Repetir Vendedores do Pedido na Nota - Salve (F6)
- Abra um Pedido (MPD002) e insira um item
- Clique em Vendedores (ou a tecla/menu do item) → abre a tela agrupada (
UVendedorAgrupado) ou individual (UVendedorIndividual) dependendo deTP_MOSTRAVENDEDORES - Adicione múltiplos vendedores com percentuais diferentes (ex.:
V1=60%,V2=40%) - registros vão paraITEMPEDIDOVENDEDOR - Gere a NF a partir do pedido →
GERA_NOTAFISCALPEDIDO/GRAVA_NOTAFISCALPEDIDOcopiamITEMPEDIDOVENDEDOR→ITEMNOTAVENDEDOR - Abra o relatório de comissão:
VIEW_COMISSAOconsultaITEMNOTAVENDEDOR(cada vendedor recebe proporcional) - Em MNF011, a troca de vendedor apresenta os grupos
grpNOTAVARVEND/grpITEMVARVEND/grpVENDEDORESNOTAem vez de atualizarENDERECOPESSOAem massa
Resultado esperado: A comissão é rateada por vendedor por item; relatórios e integrações contábeis (CALCULA_CENTRORESULTITEM, VIEW_COMISSAO*) consomem ITEMNOTAVENDEDOR. Cadastro de Vendedor em CNF001 ganha a aba "Alterações de Vendedor".
N - Não (valor padrão)
| O que faz | Detalhe |
|---|---|
Habilita grade ITEMPEDIDOVENDEDOR/ITEMNOTAVENDEDOR? | NÃO - somente o vendedor único (PEDIDO.CD_VENDEDOR/NOTA.CD_VENDEDOR) recebe toda a comissão |
Impacto no CALCULA_COMISSAO.sql | V_WHERE_VARIOSVENDEDORES = 'AND CD_TIPOVENDEDOR IS NULL' (linhas 77-78); totais são calculados por vendedor único |
Impacto no CALCULA_CENTRORESULTITEM.sql | Ramo inferior do UNION ALL (linha 119): puxa VL_COMISSAO de ITEMNOTA |
MFA001 - comportamento ao marcar N | cmbST_ALTERACOMISSAO.Enabled := False; oculta chkST_OBRIGATIPOVENDPRINCIPAL, chkST_BLOQMESMOTIPOVENDEDOR, lblTP_MOSTRAVENDEDORES, cmbTP_MOSTRAVENDEDORES, lblST_REPETECOMISSAO, cmbST_REPETECOMISSAO |
| MNF011 | Ao trocar vendedor, executa UPDATE ENDERECOPESSOA SET CD_VENDEDOR = :novo WHERE CD_VENDEDOR = :antigo (substitui em lote) |
| MNF024 | Oculta cmbTP_COMISSAO e lblcomissao no abrir da tela (linhas 222-226) |
| MNF013 (CT-e) | Só aplica lógica de PARMTRANSPORTE.ST_VENDEDOR='S' se ST_VARIOSVENDEDORES<>'S' (linha 2518) |
| MOF001 | Se TP_COMISSAOMEC='N' e ST_VARIOSVENDEDORES='N', exibe campos de mecânica e comissão de mecânico no cabeçalho (linha 609) |
| MPD020 | Quando ST_VENDEDOR∈{A,P} e ST_VARIOSVENDEDORES='N' e ST_COMISSAO='S', bloqueia PC_COMISSAOGERAL |
| CNF001 | pagVendedoresAlteracao.TabVisible := False (aba ocultada) |
Simulação passo a passo (modo N)
- MFA001 → aba Vendedor → "Vários Vendedores Por Produto" = Não
- Salve (F6) - observe que os campos de controle de tipo/bloqueio de vendedor e
Mostrar Vendedores/Repetir Vendedoressomem - Abra um Pedido (MPD002) → só há 1 vendedor (cabeçalho); não aparece a chamada de rateio por item
- Se em MFA001
ST_VENDEDOR=AouPeST_COMISSAO='S', o campo Comissão Geral (PC_COMISSAOGERAL) também fica travado no MPD020 - Gere a NF → não há cópia de
ITEMPEDIDOVENDEDORparaITEMNOTAVENDEDOR - Relatórios consultam direto
ITEMNOTA.VL_COMISSAO(branchNdo UNION ALL) - No MNF011, ao trocar de vendedor, é executado um único
UPDATE ENDERECOPESSOAatualizando o vendedor do cliente em todos os endereços - No MNF024, a seleção "Tipo Comissão" fica escondida (não relevante sem rateio)
Resultado esperado: Um vendedor, uma comissão por item, UI simplificada em todos os módulos. Este é o valor definido pelo AfterInsert de MFA001 quando um novo registro de PARMFATUR é criado.
Interação com ST_VENDEDOR / ST_COMISSAO e parâmetros correlatos
ST_VENDEDOR(bloqueio de vendedor): É parâmetro ortogonal - cuida apenas do cabeçalho. Em MPD020 (UdmMPD020.paslinhas 391-393), oPC_COMISSAOGERALsó é travado seST_VENDEDOR∈{A,P}EST_VARIOSVENDEDORES='N'EST_COMISSAO='S'. SeST_VARIOSVENDEDORES='S', a comissão geral é ignorada porque o rateio por item é o que vale.ST_COMISSAO: Em MNF024 (UMNF024.paslinha 1024) a criação de parâmetros de vários vendedores só acontece seST_COMISSAO='S'EST_VARIOSVENDEDORES='S'. Um sem o outro não produz rateio.TP_MOSTRAVENDEDORES:jVendedor/UVendedorAgrupado.paslinha 181 tem o gateif (St_VariosVendedores<>'S' or Tp_MostraVendedores<>'A') then exit;. Ou seja, a tela agrupada só funciona com os dois parâmetros ligados na combinação certa.ST_OBRIGATIPOVENDPRINCIPAL/ST_BLOQMESMOTIPOVENDEDOR: dependem totalmente deST_VARIOSVENDEDORES='S'(caso contrário, os checks são escondidos emcmbST_VARIOSVENDEDORESChange).ST_REPETECOMISSAO: exibido apenas quandoST_VARIOSVENDEDORES='S'ETP_MOSTRAVENDEDORES='N'(callbackcmbTP_MOSTRAVENDEDORESChange, UMFA001.pas:2568).ST_ALTERACOMISSAO: o combo éEnabled := Falseautomaticamente quandoST_VARIOSVENDEDORES='N'(não faz sentido alterar comissão item a item sem rateio).jVendedor.TParametrosVendedor: o record emjRateioVendedor.paslinha 62 declaraSt_VariosVendedoresjunto comSt_Vendedor,St_Comissao,St_AlteraComissaoetc. - explicitando que são um conjunto.TP_OBSNOTA: não há dependência direta de código entreST_VARIOSVENDEDORESeTP_OBSNOTA.RETORNA_OBSNOTA.sqlreferencia ambos em ramos independentes (observação da nota é montada em função do tipo de vendedor quando rateio está ativo).
Tabela Comparativa Resumida
| Aspecto | S (Sim) | N (Não - padrão) |
|---|---|---|
| Rateio de comissão por item | Sim (ITEM*VENDEDOR) | Não (só cabeçalho) |
| Aba "Alterações de Vendedor" em CNF001 | Visível | Oculta |
Campos Obriga Tipo Principal / Bloqueia Mesmo Tipo / Mostrar Vendedores em MFA001 | Visíveis | Ocultos |
cmbST_ALTERACOMISSAO editável? | Sim | Não |
cmbST_REPETECOMISSAO visível? | Se TP_MOSTRAVENDEDORES='N' | Nunca |
| MOF001 - Vendedor no grid de serviço | Oculto e travado | Visível/editável |
MNF024 - cmbTP_COMISSAO | Visível | Oculto |
| MNF011 troca de vendedor | Usa rateio por item | UPDATE ENDERECOPESSOA em massa |
CALCULA_COMISSAO / CALCULA_CENTRORESULTITEM | Fonte: ITEMNOTAVENDEDOR, sem filtro CD_TIPOVENDEDOR | Fonte: ITEMNOTA, filtra CD_TIPOVENDEDOR IS NULL |
Referências no Código Fonte
Definição do parâmetro (MFA001)
source/MFA001/UMFA001.dfmlinha 5110-5124 - LabelLabel23comCaption = 'Vários Vendedores Por Produto',FocusControl = cmbST_VARIOSVENDEDORESsource/MFA001/UMFA001.dfmlinha 5370-5400 - ComboBoxcmbST_VARIOSVENDEDORES: TwwDBComboBox,DataField = 'ST_VARIOSVENDEDORES',Items.Strings = ('Sim'#9'S', 'Não'#9'N'),Hint = '[MRC001, MPD002, MNF002, MNF024]',OnChange = cmbST_VARIOSVENDEDORESChangesource/MFA001/UMFA001.dfmlinha 5557 -cmbST_REPETECOMISSAO.OnChange = cmbST_VARIOSVENDEDORESChange(compartilha o handler)source/MFA001/UMFA001.paslinha 589 - declaraçãocmbST_VARIOSVENDEDORES: TwwDBComboBoxsource/MFA001/UMFA001.paslinha 790 - declaraçãoprocedure cmbST_VARIOSVENDEDORESChange(Sender: TObject)source/MFA001/UMFA001.paslinhas 2128-2160 - implementação doOnChange: mostra/oculta campos correlatos (cmbST_ALTERACOMISSAO.Enabled,chkST_OBRIGATIPOVENDPRINCIPAL.Visible,chkST_BLOQMESMOTIPOVENDEDOR.Visible,lblTP_MOSTRAVENDEDORES.Visible,cmbTP_MOSTRAVENDEDORES.Visible,lblST_REPETECOMISSAO.Visible,cmbST_REPETECOMISSAO.Visible)source/MFA001/UMFA001.paslinha 2568 -cmbTP_MOSTRAVENDEDORESChangechecacmbST_VARIOSVENDEDORES.Value = 'S'antes de decidir visibilidade decmbST_REPETECOMISSAOsource/MFA001/UdmMFA001.dfmlinha 157, 2386, 3037 -tabPARMFATUR/outros datasets incluemST_VARIOSVENDEDORESno SELECTsource/MFA001/UdmMFA001.dfmlinha 1208-1211 -tabPARMFATURST_VARIOSVENDEDORES: TStringFielddefiniçãosource/MFA001/UdmMFA001.dfmlinha 2763 - UPDATE:ST_VARIOSVENDEDORES = :ST_VARIOSVENDEDORESsource/MFA001/UdmMFA001.paslinha 150 - campotabPARMFATURST_VARIOSVENDEDORES: TStringFieldsource/MFA001/UdmMFA001.paslinha 491 -AfterInsert:tabPARMFATURST_VARIOSVENDEDORES.AsString := 'N';(valor padrão)
Consumidores Delphi por módulo
jVendedor (shared unit crítica)
source/jVendedor/jRateioVendedor.paslinha 62 - declaraçãoSt_VariosVendedoresno recordTParametrosVendedorsource/jVendedor/UVendedorAgrupado.paslinha 181 - gate inicialif (Param.St_VariosVendedores <> 'S') or (param.Tp_MostraVendedores <> 'A') then exit;source/jVendedor/UVendedorAgrupado.paslinhas 1196-1214 - SELECT em PARMFATUR carregandoST_VARIOSVENDEDORESemParam.St_VariosVendedoressource/jVendedor/UVendedorIndividual.paslinha 450 -if (ParmFatur.Values['ST_BLOQMESMOTIPOVENDEDOR']='S' and ST_VARIOSVENDEDORES='S') thenvalidação de tipo duplicado
Pedidos
source/CPD001/UCPD001.paslinhas 1333, 1454 - cópia de parâmetros entre empresas (ramos='S')source/CPD003/UCPD003.paslinhas 533, 1484 - cópia (ramo='N'em 533, ramo='S'em 1484)source/CPD013/UCPD013.paslinhas 906, 1437, 2186 - cópia condicional quando='S'source/MPD020/UdmMPD020.pas(via MPD020) - bloqueiaPC_COMISSAOGERALcombinado comST_VENDEDOR/ST_COMISSAO
Notas Fiscais
source/MNF011/UMNF011.paslinhas 383, 558, 755, 805, 960, 1013, 1285, 1343 - ramificações='S'(torna visíveis os grupos de rateio, trava comissões)source/MNF011/UMNF011.paslinhas 1435, 1588 - ramificações='N'(UPDATE emENDERECOPESSOA)source/MNF013/UdmMNF013.paslinhas 538, 700, 725, 1093, 1532, 1548, 1830 - lógica de CT-e lendoiST_VARIOSVENDEDORESsource/MNF013/UMNF013.paslinha 2518 -if (ParmTransporte.Values['ST_VENDEDOR']='S') and (dmMNF013.iST_VARIOSVENDEDORES<>'S') thensource/MNF019/UdmMNF019.paslinha 1539 - ramo específico de devoluçãosource/MNF022/UMNF022.paslinhas 346, 1403 - SELECT local em PARMFATUR + ramificação='S'source/MNF024/UdmMNF024.paslinhas 121, 145, 153 - declaraçãoiST_VARIOSVENDEDORES, SELECT em PARMFATUR e atribuiçãoResultado[1]source/MNF024/UMNF024.paslinha 222 -if (iST_VARIOSVENDEDORES='N')escondecmbTP_COMISSAO/lblcomissaosource/MNF024/UMNF024.paslinhas 1024, 1332, 2282, 2769 - gera arrayParmVendedoresquando='S'comST_COMISSAO='S'source/MNF025/UMNF025.paslinha 729 - ramo='S'source/MNF026/UdmMNF026.paslinhas 843, 1165, 1181, 5752, 5810, 5945, 6018, 6065, 6163 - múltiplas ramificações no fluxo de rateiosource/MNF008/UdmMNF008.paslinhas 765-766 - SELECT em PARMFATUR (campo repetido duas vezes no SQL, provavelmente um bug histórico inofensivo)
Ordem de Serviço
source/MOF001/UMOF001.paslinhas 540, 599, 609, 2235, 2264 - configura UI do grid de serviços e campos de mecânica
Cadastros correlatos
source/CNF001/UdmCNF001.paslinhas 1186, 1231, 1235 - carrega emiST_VARIOSVENDEDORESsource/CNF001/UCNF001.paslinhas 2768, 3017, 6968, 7214 - controla visibilidade depagVendedoresAlteracaosource/CNF003/UCNF003.paslinhas 310, 520 - SELECT localsource/CNF007/UCNF007.paslinha 560 - ramo='S'source/CNF008/UCNF008.paslinhas 497, 499-502 - SELECT ad hoc e atribuiçãoLVariosVendedoressource/CNF009/UCNF009.paslinha 400 - SELECT combinadoST_VARIOSVENDEDORES, ST_ALTERABASECALCULOCOMISSAO
Recebimento / Produção
source/CRC001/UdmCRC001.paslinha 229 - SELECT básicosource/CRC002/UdmCRC002.paslinhas 408-414 - SELECT e atribuiçãodmCRC002.iVariosVend := resultado[1];
Administração
source/ADM010/UADM010.paslinha 544 -'SELECT P.ST_VARIOSVENDEDORES FROM PARMFATUR P ' + ...
Contábil
source/MCO006/UdmMCO006.paslinhas 2109-2110 - SELECT em PARMFATUR (campo repetido duas vezes no SQL)
Serviço de integração
source/JunsoftServiceFatApp/PersistenciaDao.paslinhas 243, 277, 1129, 1184 - carregastVariosVendedores := DtParams.FieldByName('ST_VARIOSVENDEDORES').AsString;
Referências SQL (principais linhas)
Scripts/CALCULA_COMISSAO.sqllinhas 44 (declare), 72-75 (SELECT), 77 (IF), 184 (branch Modelo Sobre Faturamento), 644, 657 (chamadas aRETORNA_PERFILCOMISSAOV2/RETORNA_PERFILCOMISSAOpassando o parâmetro como argumento), 688 (branch=SchamandoRETORNA_BASENOTACOMISSAO_V2), 931, 946 (chamadas aVERIFICA_COMISSAOPERFILpassando o parâmetro)Scripts/CALCULA_CENTRORESULTITEM.sqllinhas 119, 296 (branch='N'), 142, 319 (branch='S')Scripts/CALCULA_CENTRORESULT.sqllinha 195 - WHERE dinâmico- Demais 55 arquivos listados na seção "Procedures SQL impactadas" acima.
Cópia entre empresas
source/CPD009/UdmCPD009.*- Utilitário de cópia de PARMFATUR entre empresas; incluiST_VARIOSVENDEDORESno INSERT/UPDATE/SELECT (padrão idêntico ao deST_VENDEDOR).
Nota de modelo: a semântica do parâmetro é binária (
S/N) e amplamente verificada em runtime Delphi viaParmFatur.Values['ST_VARIOSVENDEDORES'](string lookup) e carregada explicitamente em variáveisiST_VARIOSVENDEDORESnos data modules das telas de alto volume (MNF013, MNF024, MNF026).