Pular para o conteúdo principal

CD_ITEM — Item (filtro opcional)

Tela de configuração: MFA006 — Parâmetros de Tabela de Preço
Componente: edtCD_ITEM (edit)
Tabela/Coluna: PARMTABPRECO.CD_ITEM — DOM_INTEGER (não obrigatório)
Valor padrão: vazio (NULL)

Finalidade​

O campo CD_ITEM permite restringir uma regra de tabela de preço a um item (produto) específico. Quando preenchido, a regra cadastrada na linha de PARMTABPRECO só é aplicada se o item da operação comercial corresponder ao código informado. Quando deixado em branco, a regra vale para qualquer item.

Esse filtro faz parte de um conjunto de critérios opcionais da tabela PARMTABPRECO (junto com CD_PESSOA, CD_CONDPAGTO, CD_TIPOPESSOA, CD_VENDEDOR, CD_REGIAOCOMERCIAL, CD_GRUPO, CD_SUBGRUPO, CD_SECAO, etc.) que, combinados, determinam qual tabela de preço será aplicada em uma venda.

Telas impactadas​

TelaDescrição
MFA006Cadastro/manutenção das regras de tabela de preço — local onde o parâmetro é configurado
TFA006Tabela de Preço (consulta/venda) — usa o filtro via RETORNA_TABPRECO
Telas de pedido/notaQualquer tela que chame RETORNA_TABPRECO ou RETORNA_PRECOITEM para resolver o preço de um item

Campos envolvidos​

CampoTipoObrigatórioDescrição
CD_ITEMDOM_INTEGERNãoCódigo do item/produto ao qual a regra se aplica. Quando NULL, a regra é genérica (vale para qualquer item).

Chave estrangeira: RPARMTABPRECO_ITEM → ITEM (CD_ITEM)

Opções disponíveis​

O campo CD_ITEM não possui lista de opções fixas (não é combo/radio). Trata-se de um campo editável do tipo numérico que aceita:

Vazio (NULL) — Regra genérica para todos os itens​

O que fazDetalhe
EditávelCampo fica em branco, sem restrição de item
ExigeNenhum item específico; a regra se aplica a qualquer produto
RestriçãoNenhuma

Simulação passo a passo​

  1. Acesse a tela MFA006 (Parâmetros de Tabela de Preço).
  2. Cadastre uma nova linha de regra ou edite uma existente.
  3. Preencha os demais filtros desejados (empresa, tabela de preço, condição de pagamento, etc.).
  4. Deixe o campo Item (edtCD_ITEM) vazio.
  5. Salve o registro.

Resultado esperado: A regra cadastrada será aplicada a qualquer item/produto durante a resolução de preço nas operações comerciais. Na consulta SQL de RETORNA_TABPRECO, a expressão COALESCE(P.CD_ITEM, :I_CD_ITEM) = :I_CD_ITEM avalia true para qualquer item, pois COALESCE(NULL, X) = X.

Importante: Regras genéricas (sem item definido) têm menor prioridade quando existe uma regra específica para o mesmo item. O motor de resolução de preço aplica a regra mais específica encontrada.

Código do item (ex: 12345) — Regra específica para um produto​

O que fazDetalhe
EditávelInforme o código numérico do item/produto cadastrado na tabela ITEM
ExigeO código deve corresponder a um item válido (FK ITEM.CD_ITEM)
RestriçãoA regra só se aplica ao item informado

Simulação passo a passo​

  1. Acesse a tela MFA006 (Parâmetros de Tabela de Preço).
  2. Cadastre uma nova linha de regra ou edite uma existente.
  3. No campo Item (edtCD_ITEM), digite o código do produto desejado (ex: 1001).
  4. Preencha os demais filtros desejados (empresa, tabela de preço, condição de pagamento, etc.).
  5. Salve o registro.

Resultado esperado: A regra cadastrada será aplicada somente quando o item da operação comercial tiver o código 1001. Na consulta SQL de RETORNA_TABPRECO, a expressão COALESCE(P.CD_ITEM, 1001) = 1001 avalia true apenas para o item 1001. Para outros itens, a comparação falha e a regra é ignorada.

Excecao / Importante: O valor informado deve existir na tabela ITEM. Caso contrário, a validação de chave estrangeira (RPARMTABPRECO_ITEM) impedirá a gravação do registro.

Regra de resolução de preço​

O campo CD_ITEM integra a lógica de busca de tabela de preço implementada na procedure RETORNA_TABPRECO. A regra constrói uma consulta dinâmica com todos os filtros opcionais, incluindo:

COALESCE(P.CD_ITEM, :I_CD_ITEM) = :I_CD_ITEM

Isso significa:

  • Se CD_ITEM está preenchido na regra → só aplica ao item correspondente.
  • Se CD_ITEM é NULL na regra → aplica a qualquer item (regra genérica).

A combinação com os demais filtros (CD_EMPRESA, CD_PESSOA, CD_CONDPAGTO, CD_TIPOPESSOA, CD_VENDEDOR, CD_REGIAOCOMERCIAL, CD_GRUPO, CD_SUBGRUPO, CD_SECAO, CD_PERFIL) determina a tabela de preço final aplicada.

Procedures impactadas​

Candidatas por uso da tabela PARMTABPRECO​

Não foi encontrada referência direta ao campo PARMTABPRECO.CD_ITEM nos scripts SQL. Porém, as seguintes procedures/views utilizam a tabela PARMTABPRECO e participam da lógica de resolução de preço, onde o campo CD_ITEM é considerado nos filtros dinâmicos:

Procedure/ViewArquivoEvidência
RETORNA_TABPRECOScripts/RETORNA_TABPRECO.sqlConsulta PARMTABPRECO com filtro dinâmico incluindo CD_ITEM (linha 99)
RETORNA_PRECOITEMScripts/RETORNA_PRECOITEM.sqlConsulta PARMTABPRECO por empresa/pessoa/condição (linha 104)
ATUALIZA_PESSOAScripts/ATUALIZA_PESSOA.sqlUpdate em PARMTABPRECO (linha 302)
CALCULA_MAQUINAScripts/CALCULA_MAQUINA.sqlConsulta PARMTABPRECO (linha 81)
CALCULA_MAQUINAFICHAScripts/CALCULA_MAQUINAFICHA.sqlConsulta PARMTABPRECO (linha 79)
GERA_COMISSAOTABPRECOScripts/GERA_COMISSAOTABPRECO.sqlConsulta PARMTABPRECO (linha 84)
INSERE_ITEMPEDIDO_SERVCANALETAScripts/INSERE_ITEMPEDIDO_SERVCANALETA.sqlConsulta PARMTABPRECO (linha 58)
VERIFICA_BLOQUEIOScripts/VERIFICA_BLOQUEIO.sqlConsulta PARMTABPRECO (linha 1115)
VIEW_TFA006Scripts/VIEW_TFA006.sqlJoin em PARMTABPRECO (linha 84)
TRGAD_PARMTABPRECOScripts/TRGAD_PARMTABPRECO.sqlTrigger de delete em PARMTABPRECO (linha 5)