Pular para o conteúdo principal

CD_SUBGRUPO — Subgrupo do Parâmetro de Tabela de Preço

Tela de configuração: MFA006 — Parâmetros de Tabela de Preço Tabela: PARMTABPRECO.CD_SUBGRUPO Tipo: INTEGER (opcional) Componente: edtCD_SUBGRUPO (edit) Valor padrão: vazio (sem filtro de subgrupo)

Visão Geral​

O campo CD_SUBGRUPO define, dentro de uma regra de parâmetro de tabela de preço, o subgrupo de produtos ao qual a regra se aplica. Quando preenchido, a regra só será considerada pelo sistema para itens que pertençam àquele subgrupo. Quando vazio, a regra aceita qualquer subgrupo (o campo é ignorado na resolução de preço).

Faz parte do conjunto de filtros hierárquicos de classificação de itens junto com CD_GRUPO e CD_SECAO (ambos configurados na mesma tela MFA006).

Campos Relacionados na Tela​

CampoDescrição
CD_GRUPOGrupo de produtos — filtra a busca do subgrupo ao pressionar <F9>
CD_SECAOSeção de produtos — complementa a hierarquia de classificação
CD_ITEMProduto específico — quando preenchido, subgrupo é redundante
CD_TABPRECOTabela de preço que será aplicada quando a regra for satisfeita

Opções Disponíveis​

Em Branco (Sem filtro de subgrupo)​

O que fazDetalhe
Regra válida para todos os subgruposCampo opcional; a regra ignora subgrupo na resolução

Simulação passo a passo​

  1. Acesse MFA006 — Parâmetros de Tabela de Preço.
  2. Cadastre ou edite uma regra preenchendo os campos desejados (empresa, tabela de preço, etc.).
  3. Deixe o campo Subgrupo (edtCD_SUBGRUPO) em branco.
  4. Salve o registro (<F4> ou botão Salvar).
  5. O sistema gravará CD_SUBGRUPO = NULL na tabela PARMTABPRECO.

Resultado esperado: Na resolução de preço (por exemplo, ao gerar um pedido de venda), a regra será considerada para itens de qualquer subgrupo, desde que os demais critérios da regra sejam atendidos.


Código de Subgrupo Específico​

O que fazDetalhe
Restringe a regra a um subgrupo específicoEdita-se o campo e busca-se com <F9>
Exige que CD_GRUPO já esteja preenchidoA busca de subgrupo é filtrada pelo grupo selecionado
Valida FK contra tabela SUBGRUPOConstraint RPARMTABPRECO_SUBGRUPO

Simulação passo a passo​

  1. Acesse MFA006 — Parâmetros de Tabela de Preço.
  2. Cadastre ou edite uma regra.
  3. No campo Grupo (edtCD_GRUPO), informe um grupo válido (por exemplo, código 1).
  4. Posicione o cursor no campo Subgrupo (edtCD_SUBGRUPO) e pressione <F9>.
  5. O sistema abrirá a tela de busca de SUBGRUPO, já filtrando apenas os subgrupos pertencentes ao grupo informado no passo 3.
  6. Selecione o subgrupo desejado (por exemplo, código 5).
  7. O campo será preenchido com o código selecionado.
  8. Preencha os demais campos da regra (tabela de preço, etc.) e salve.

Resultado esperado: O sistema gravará o código do subgrupo (por exemplo, 5) no campo CD_SUBGRUPO. Na resolução de preço, essa regra só será considerada para itens cujo CD_SUBGRUPO na tabela ITEM corresponda ao valor configurado.

Excecao / Importante:

  • A busca de subgrupo via <F9> recebe como filtro o valor atual de CD_GRUPO. Se o grupo estiver vazio, a busca exibe todos os subgrupos cadastrados (parâmetro NULL é enviado).
  • Se o campo CD_ITEM (produto específico) estiver preenchido na mesma regra, o filtro por subgrupo atua como redundância — o sistema já identifica o item diretamente.

Hierarquia de Classificação​

Os três campos de classificação de itens na tela MFA006 funcionam em hierarquia:

CD_GRUPO (Grupo)
└── CD_SUBGRUPO (Subgrupo)
└── CD_SECAO (Seção)

Quanto mais campos de classificação preenchidos, mais específica é a regra. Uma regra com grupo + subgrupo + seção preenchidos terá prioridade sobre uma regra com apenas o grupo preenchido (dependendo da lógica de resolução da procedure RETORNA_TABPRECO).

Tabela de Referência: SUBGRUPO​

CampoTipoObrigatórioDescrição
CD_SUBGRUPOINTEGER✓Código do subgrupo (PK)
DS_SUBGRUPOVARCHAR(60)✓Descrição do subgrupo
CD_GRUPOINTEGERGrupo ao qual pertence
CD_TABPRECOINTEGERTabela de preço vinculada ao subgrupo

Procedures Impactadas​

Rotinas Delphi com referência direta ao campo​

RotinaArquivoLinhaEvidência
TfrmMFA006.edtCD_SUBGRUPOKeyDownsource/MFA006/UMFA006.pas635Abre busca de SUBGRUPO com filtro de CD_GRUPO ao pressionar <F9>

Referências SQL diretas ao campo​

Não foram encontradas referências literais ao campo CD_SUBGRUPO da tabela PARMTABPRECO nos scripts SQL. O campo é utilizado indiretamente via consultas dinâmicas construídas na procedure RETORNA_TABPRECO.

Candidatas por uso da tabela​

Estas procedures/views utilizam a tabela PARMTABPRECO, mas não citam o campo CD_SUBGRUPO diretamente. O campo pode ser afetado em consultas dinâmicas (EXECUTE STATEMENT) ou joins genéricos.

Procedure/ViewArquivoLinhaEvidência
ATUALIZA_PESSOAScripts/ATUALIZA_PESSOA.sql302update PARMTABPRECO P
ATUALIZA_PRECOVENDAScripts/ATUALIZA_PRECOVENDA.sql79FROM PARMTABPRECO PP
CALCULA_MAQUINAScripts/CALCULA_MAQUINA.sql81FROM PARMTABPRECO P
CALCULA_MAQUINAFICHAScripts/CALCULA_MAQUINAFICHA.sql79FROM PARMTABPRECO P
GERA_COMISSAOTABPRECOScripts/GERA_COMISSAOTABPRECO.sql84from PARMTABPRECO
RETORNA_PRECOITEMScripts/RETORNA_PRECOITEM.sql104FROM PARMTABPRECO P
RETORNA_TABPRECOScripts/RETORNA_TABPRECO.sql51FROM PARMTABPRECO P — procedure principal de resolução de tabela de preço
TRGAD_PARMTABPRECOScripts/TRGAD_PARMTABPRECO.sql5Trigger de exclusão em PARMTABPRECO
VERIFICA_BLOQUEIOScripts/VERIFICA_BLOQUEIO.sql1115FROM PARMTABPRECO P
VIEW_TFA006Scripts/VIEW_TFA006.sql84Join com PARMTABPRECO

Observações Técnicas​

  • Resolução de preço: A procedure RETORNA_TABPRECO lê o CD_SUBGRUPO do item (ITEM.CD_SUBGRUPO) e utiliza-o em consulta dinâmica para casar com as regras em PARMTABPRECO. O campo é parte do critério de matching da regra.
  • Subgrupo e tabela de preço do subgrupo: A tabela SUBGRUPO possui campo CD_TABPRECO próprio. Quando um subgrupo tem tabela vinculada, procedures como ITEMTABPRECO_AU0 e RECALCULA_PRECOVENDA utilizam essa associação (INNER JOIN SUBGRUPO S ON (S.CD_SUBGRUPO = I.CD_SUBGRUPO)) para definir a tabela de preço correta.