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
| Tela | Descrição |
|---|---|
| MFA006 | Cadastro/manutenção das regras de tabela de preço — local onde o parâmetro é configurado |
| TFA006 | Tabela de Preço (consulta/venda) — usa o filtro via RETORNA_TABPRECO |
| Telas de pedido/nota | Qualquer tela que chame RETORNA_TABPRECO ou RETORNA_PRECOITEM para resolver o preço de um item |
Campos envolvidos
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
CD_ITEM | DOM_INTEGER | Não | Có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 faz | Detalhe |
|---|---|
| Editável | Campo fica em branco, sem restrição de item |
| Exige | Nenhum item específico; a regra se aplica a qualquer produto |
| Restrição | Nenhuma |
Simulação passo a passo
- Acesse a tela MFA006 (Parâmetros de Tabela de Preço).
- Cadastre uma nova linha de regra ou edite uma existente.
- Preencha os demais filtros desejados (empresa, tabela de preço, condição de pagamento, etc.).
- Deixe o campo Item (
edtCD_ITEM) vazio. - 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 faz | Detalhe |
|---|---|
| Editável | Informe o código numérico do item/produto cadastrado na tabela ITEM |
| Exige | O código deve corresponder a um item válido (FK ITEM.CD_ITEM) |
| Restrição | A regra só se aplica ao item informado |
Simulação passo a passo
- Acesse a tela MFA006 (Parâmetros de Tabela de Preço).
- Cadastre uma nova linha de regra ou edite uma existente.
- No campo Item (
edtCD_ITEM), digite o código do produto desejado (ex:1001). - Preencha os demais filtros desejados (empresa, tabela de preço, condição de pagamento, etc.).
- 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_ITEMestá preenchido na regra → só aplica ao item correspondente. - Se
CD_ITEMéNULLna 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/View | Arquivo | Evidência |
|---|---|---|
RETORNA_TABPRECO | Scripts/RETORNA_TABPRECO.sql | Consulta PARMTABPRECO com filtro dinâmico incluindo CD_ITEM (linha 99) |
RETORNA_PRECOITEM | Scripts/RETORNA_PRECOITEM.sql | Consulta PARMTABPRECO por empresa/pessoa/condição (linha 104) |
ATUALIZA_PESSOA | Scripts/ATUALIZA_PESSOA.sql | Update em PARMTABPRECO (linha 302) |
CALCULA_MAQUINA | Scripts/CALCULA_MAQUINA.sql | Consulta PARMTABPRECO (linha 81) |
CALCULA_MAQUINAFICHA | Scripts/CALCULA_MAQUINAFICHA.sql | Consulta PARMTABPRECO (linha 79) |
GERA_COMISSAOTABPRECO | Scripts/GERA_COMISSAOTABPRECO.sql | Consulta PARMTABPRECO (linha 84) |
INSERE_ITEMPEDIDO_SERVCANALETA | Scripts/INSERE_ITEMPEDIDO_SERVCANALETA.sql | Consulta PARMTABPRECO (linha 58) |
VERIFICA_BLOQUEIO | Scripts/VERIFICA_BLOQUEIO.sql | Consulta PARMTABPRECO (linha 1115) |
VIEW_TFA006 | Scripts/VIEW_TFA006.sql | Join em PARMTABPRECO (linha 84) |
TRGAD_PARMTABPRECO | Scripts/TRGAD_PARMTABPRECO.sql | Trigger de delete em PARMTABPRECO (linha 5) |