Pular para o conteúdo principal

CD_MARCA - Filtro de Marca nos Parâmetros de Vendedor

Tela de configuração: MFA007 — Parâmetros de Vendedor Tabela: PARMVENDEDOR.CD_MARCA (INTEGER, FK → MARCA.CD_MARCA) Valor padrão: preenchido pela pesquisa (Resultado[1]) Campo de descrição associado: DS_MARCA (somente leitura, ao lado do campo de código)

Resumo​

O campo CD_MARCA filtra quais Marcas de produto um vendedor pode atender/comercializar. Ele é um dos filtros opcionais da tabela PARMVENDEDOR, usada para restringir o escopo de atuação do vendedor por Marca, Grupo, Item, Pessoa ou Região Comercial.

Telas impactadas​

TelaContexto
MFA007 — Parâmetros de VendedorOnde o parâmetro é cadastrado (este campo)
CNF001 — Cadastro de MarcaCadastro da tabela MARCA referenciada pela FK
Telas de faturamento/vendas (indireto)A tabela PARMVENDEDOR é consumida na lógica de comissionamento

Campos envolvidos​

CampoTabelaTipoDescrição
CD_MARCAPARMVENDEDORINTEGERCódigo da Marca cadastrada como filtro do vendedor
DS_MARCAPARMVENDEDOR (lookup via join)VARCHAR(60)Descrição da Marca exibida ao lado do campo
CD_MARCAMARCAINTEGER (PK)Tabela-mestre de Marcas
CD_MARCACOMISSAOVENDEDORINTEGERMarca usada como critério no cálculo de comissões
CD_MARCAITEMINTEGERMarca associada ao produto

Opções disponíveis​

Preenchimento livre — Seleção de Marca via pesquisa​

Este campo não possui opções fixas (combo/radio). Trata-se de um campo editável que aceita o código de uma Marca cadastrada na tabela MARCA.

O que fazDetalhe
Permite digitar código da MarcaSim, campo editável
Pesquisa com <F9>Sim, abre janela "Selecione a Marca" listando DS_MARCA e CD_MARCA
ObrigatórioNão — campo opcional; se vazio, não filtra por marca
ValidaçãoFK → MARCA.CD_MARCA (garante que o código exista)
Campo de descriçãoedtDS_MARCA (somente leitura, preenchido automaticamente)

Simulação passo a passo​

  1. Acesse MFA007 — Parâmetros de Vendedor.
  2. Selecione o vendedor desejado no campo superior.
  3. Posicione o cursor no campo Marca (label "Marca").
  4. Pressione <F9> para abrir a janela de pesquisa.
  5. Na janela "Selecione a Marca", localize a marca desejada (ex.: "Bridgestone", "Michelin").
  6. Dê duplo-clique na marca desejada ou selecione e confirme.
  7. O campo será preenchido com o código da marca e a descrição aparecerá ao lado.
  8. Clique em Salvar para gravar o parâmetro.

Resultado esperado: O vendedor fica associado à marca selecionada na tabela PARMVENDEDOR. Essa associação será usada como critério de comissionamento: quando o item vendido pertence a essa marca, o percentual de comissão correspondente será aplicado.

Exceção / Importante: Se o campo ficar vazio, o filtro de marca é ignorado no cálculo de comissão — a procedure CALCULA_COMISSAO usa COALESCE(CD_MARCA, -1) para tratar marcas não especificadas como "todas". Se houver múltiplos registros em PARMVENDEDOR para o mesmo vendedor com marcas diferentes, a comissão é determinada pela melhor correspondência (mais específica) na tabela COMISSAOVENDEDOR.

Regra de Comissionamento​

O CD_MARCA informado em PARMVENDEDOR alimenta o fluxo de cálculo de comissão das procedures:

  • CALCULA_COMISSAO — Busca o CD_MARCA do ITEM vendido e cruza com COMISSAOVENDEDOR.CD_MARCA usando a lógica de "melhor correspondência" (COALESCE ordenado pela especificidade).
  • CALCULA_COMISSAO_V2 — Mesma lógica, versão atualizada com suporte a CD_TIPOVENDEDOR.
  • VIEW_COMISSAOMODELO_A/C/G/H/K — Recebem I_CD_MARCA como parâmetro de entrada para determinar a faixa de comissão no modelo de meta.
  • VIEW_COMISSAOMODELO_C — Usa I_CD_MARCA para buscar faixas de preço/comissão interpoladas.

A lógica de "melhor correspondência" prioriza registros de COMISSAOVENDEDOR mais específicos: primeiro tenta casar Marca + Grupo + Subgrupo + Item + Pessoa; se não encontrar, vai abrindo para níveis menos específicos (usando COALESCE com -1 para campos nulos).

Tabela Comparativa Resumida​

SituaçãoComportamento
Marca preenchidaFiltra comissão pela marca específica do item
Marca vazia (NULL)Marca não é usada como critério de filtro — todas as marcas são consideradas
Marca não existe em COMISSAOVENDEDORA procedure usa COALESCE(CD_MARCA, -1) = COALESCE(:I_CD_MARCA, -1) para buscar registro genérico

Procedures impactadas​

Rotinas Delphi com referência direta ao campo​

RotinaArquivoDescrição
TfrmMFA007.edtCD_MARCAKeyDownsource/MFA007/UMFA007.pas:408Abre pesquisa <F9> de Marca e preenche tabPARMVENDEDORCD_MARCA

Referências SQL diretas ao campo (comissionamento)​

Procedure/ViewArquivoUso
CALCULA_COMISSAOScripts/CALCULA_COMISSAO.sql:28Declara I_CD_MARCA; usa-o como filtro dinâmico em COMISSAOVENDEDOR
CALCULA_COMISSAO_V2Scripts/CALCULA_COMISSAO_V2.sql:28Idem, versão V2
VIEW_COMISSAOMODELO_AScripts/VIEW_COMISSAOMODELO_A.sql:15Parâmetro de entrada I_CD_MARCA
VIEW_COMISSAOMODELO_CScripts/VIEW_COMISSAOMODELO_C.sql:10Parâmetro de entrada I_CD_MARCA; filtra COMISSAOVENDEDOR.CD_MARCA
VIEW_COMISSAOMODELO_GScripts/VIEW_COMISSAOMODELO_G.sql:15Parâmetro de entrada I_CD_MARCA
VIEW_COMISSAOMODELO_HScripts/VIEW_COMISSAOMODELO_H.sql:16Parâmetro de entrada I_CD_MARCA
VIEW_COMISSAOMODELO_KScripts/VIEW_COMISSAOMODELO_K.sql:16Parâmetro de entrada I_CD_MARCA
VIEW_CNF005Scripts/VIEW_CNF005.sql:15Parâmetro de saída O_CD_MARCA

Candidatas por uso da tabela (sem referência direta ao campo)​

Procedure/ViewArquivoObservação
ATUALIZA_PESSOAScripts/ATUALIZA_PESSOA.sql:307Faz UPDATE PARMVENDEDOR mas sem referência direta a CD_MARCA

Relacionamentos​

PARMVENDEDOR.CD_MARCA → MARCA.CD_MARCA (FK)
COMISSAOVENDEDOR.CD_MARCA → MARCA.CD_MARCA (FK)
ITEM.CD_MARCA → MARCA.CD_MARCA (FK)
PARMVENDEDOR.CD_VENDEDOR → VENDEDOR.CD_VENDEDOR (FK)
COMISSAOVENDEDOR.CD_VENDEDOR → VENDEDOR.CD_VENDEDOR (FK)