STVALITEMTABPRECO — Validação de Item na Tabela de Preço
Tela de configuração: REC001 — Parâmetros da Recapadora Tabela:
PARAMRECAP.STVALITEMTABPRECOTipo:CHAR(1)· Valor padrão:NAba: Configurações Gerais (coluna no schema, sem componente de UI direto identificado)
Finalidade
Controla como o sistema valida se o serviço de pneu (item) existe na tabela de preço vinculada ao cliente ao inserir/alterar itens de pedido, orçamento ou ordem de produção na recapadora. A validação ocorre chamando RETORNA_TABPRECO e consultando PARMTABPRECO/ITEMTABPRECO.
Telas impactadas
| Tela | Descrição | Uso principal |
|---|---|---|
| MRC001 | Pedido de Recapagem | Validação ao incluir serviço no pedido e ao recalcular serviços |
| MRC002 | Consulta de Pedidos | Validação ao marcar/desmarcar itens na consulta |
| MRC003 | Ordem de Produção — Montagem | Validação ao incluir serviço auxiliar e serviço principal |
| MRC006 | Ordem de Produção — Inspeção | Validação ao incluir serviço auxiliar e principal |
| MRC007 a MRC016 | Etapas de produção (Cola, Banda, etc.) | Validação ao incluir serviço auxiliar e principal |
| MRC027, MRC028 | Etapas adicionais de produção | Validação ao incluir serviço auxiliar |
| MRC031 | Orçamento de Recapagem | Validação ao incluir serviço + bloqueio de campo VLUNITARIO (quando = 'B') |
Campos envolvidos
| Campo | Tabela | Função |
|---|---|---|
STVALITEMTABPRECO | PARAMRECAP | Parâmetro que define o modo de validação |
IDSERVICOPNEU | Item do pedido/OP/orçamento | Serviço sendo validado contra a tabela |
IDTABPRECO | Item do pedido/OP/orçamento | Tabela de preço atribuída ao item |
VLUNITARIO | Item do orçamento (MRC031) | Campo bloqueado quando valor = B |
IDPESSOA | Pedido/OP/orçamento | Cliente usado para buscar tabela vinculada |
Opções disponíveis
N — Sem Validação (Padrão)
| O que faz | Detalhe |
|---|---|
| Comportamento | Nenhuma verificação de tabela de preço é realizada ao incluir um serviço |
| Campo editável? | Sim, livremente |
| Exige tabela vinculada? | Não |
Simulação passo a passo
- Acesse REC001 e confirme que
STVALITEMTABPRECO = N. - Abra MRC001, selecione um cliente sem tabela de preço vinculada em
MFA006. - Inclua um serviço de pneu no pedido.
- O sistema não exibe mensagem e aceita o item normalmente.
Resultado esperado: O serviço é adicionado sem qualquer validação de tabela de preço. O preço fica livre para digitação manual.
S — Bloqueante (Obrigatória)
| O que faz | Detalhe |
|---|---|
| Comportamento | Valida existência do item na tabela de preço; lança exceção (JException) se não encontrar |
| Campo editável? | Bloqueado se não houver tabela válida (o item nem é inserido) |
| Exige tabela vinculada? | Sim — tabela deve estar vinculada ao cliente (PARMTABPRECO) e o serviço deve existir nela (ITEMTABPRECO) |
Simulação passo a passo
- Acesse REC001 e configure
STVALITEMTABPRECO = S. - Abra MRC001, selecione um cliente.
- Inclua um serviço de pneu que não consta na tabela de preço do cliente.
- O sistema exibe erro bloqueante: "Para o Serviço X e para o cliente Y não há Parâmetros de Tabela de Preço Z. Verifique! [TFA006]".
- O item não é inserido no pedido.
Resultado esperado: A inclusão do item é recusada. O usuário precisa cadastrar a tabela de preço do cliente em TFA006/MFA006 antes de prosseguir.
Excecao / Importante: A mesma validação ocorre na função
RETORNA_PRECOITEM. Se a função retornar mensagem de erro, também é lançada exceção bloqueante. Em MRC002, ao marcar itens na consulta, pedidos com serviços fora da tabela também são recusados.
A — Aviso (Permissiva)
| O que faz | Detalhe |
|---|---|
| Comportamento | Valida existência do item na tabela de preço; exibe mensagem de aviso (MsgCodigo) mas permite continuar |
| Campo editável? | Sim, após o aviso |
| Exige tabela vinculada? | Recomenda, mas não bloqueia |
Simulação passo a passo
- Acesse REC001 e configure
STVALITEMTABPRECO = A. - Abra MRC001, selecione um cliente.
- Inclua um serviço de pneu que não consta na tabela de preço do cliente.
- O sistema exibe aviso: "Para o Serviço X e para o cliente Y não há Parâmetros de Tabela de Preço Z. Será utilizado preço da Tabela A Vista/A Prazo ou Tabela Padrão! [MFA006,MFA001,TFA006]".
- O item é inserido normalmente após o aviso.
Resultado esperado: O usuário é alertado mas o item é aceito. O preço é buscado da tabela à vista/à prazo ou da tabela padrão (PARMFATUR.ST_TABPRECO).
Excecao / Importante: O mesmo comportamento de aviso se repete se
RETORNA_PRECOITEMretornar mensagem — exibe aviso mas não impede a gravação.
B — Bloqueia Valor Unitário (somente MRC031)
| O que faz | Detalhe |
|---|---|
| Comportamento | Torna o campo VLUNITARIO somente leitura (ReadOnly := true) no orçamento de recapagem |
| Campo editável? | VLUNITARIO fica bloqueado; tabela de preço ainda é usada para buscar o valor |
| Exige tabela vinculada? | Sim (o valor vem da tabela) |
Simulação passo a passo
- Acesse REC001 e configure
STVALITEMTABPRECO = B. - Abra MRC031 (Orçamento de Recapagem), selecione um pneu com número de série.
- Observe que o campo Valor Unitário do item fica desabilitado para edição manual.
- O valor é preenchido automaticamente pela tabela de preço.
Resultado esperado: O operador não consegue alterar manualmente o valor unitário do item no orçamento. O valor é sempre obtido da tabela de preço vinculada.
Excecao / Importante: Este comportamento (
B) é aplicado apenas na tela MRC031 (orçamento). Nas demais telas (MRC001, MRC003, etc.), o valor'B'não é tratado — não há validação de tabela de preço nem bloqueio de campo.
Fluxo de validação detalhado
Quando STVALITEMTABPRECO é S ou A, o sistema executa as seguintes etapas ao incluir um serviço:
- Busca tabela de preço via
RETORNA_TABPRECO(empresa, condição de pagamento, tipo pessoa, vendedor, região, estado, cliente, serviço). - Se encontrou tabela, verifica se o serviço existe nela consultando
ITEMTABPRECO. - Se o serviço não existe na tabela do cliente:
S→ Exceção bloqueante mencionandoTFA006/MFA006.A→ Aviso informando que será usado preço à vista/à prazo ou padrão.
- Busca o preço via
RETORNA_PRECOITEM(empresa, tabela, serviço, condição de pagamento, cliente). - Se
RETORNA_PRECOITEMretornar mensagem de erro:S→ Exceção bloqueante.A→ Aviso (não bloqueia).
- Atribui o preço retornado ao campo
VLUNITARIOdo item.
Tabela Comparativa Resumida
| Valor | Valida tabela? | Valida item na tabela? | Bloqueia se inválido? | Bloqueia valor manual? | Telas |
|---|---|---|---|---|---|
| N | Não | Não | Não | Não | Todas |
| S | Sim | Sim | Sim (exceção) | Não | MRC001–MRC031 |
| A | Sim | Sim | Não (aviso) | Não | MRC001–MRC031 |
| B | Não | Não | Não | Sim (VLUNITARIO ReadOnly) | MRC031 apenas |
Procedures impactadas
Rotinas Delphi com referência direta ao campo
| Rotina | Arquivo | Linha | Valor testado |
|---|---|---|---|
TdmMRC001.recalculaServico | UdmMRC001.pas | 515 | S, A |
TdmMRC001.qryItemPedidoPneuIDSERVICOPNEUValidate | UdmMRC001.pas | 837 | S, A |
iniciar (form) | UformMRC001.pas | 82 | Todos (carrega em iValidaTabPreco) |
TdmMRC002.qryConsultaCHECKEDValidate | UdmMRC002.pas | 427 | S, A |
TdmMRC003.qryOrdemProducaoRecapIDSERVICOPNEUAUXValidate | UdmMRC003.pas | 2545 | S, A |
TdmMRC003.tabOrdemProducaoRecapIDSERVICOAUXValidate | UdmMRC003.pas | 3219 | S, A |
TdmMRC006.tabORDEMPRODUCAOIDSERVICOPNEUAUXValidate | UdmMRC006.pas | 563 | S, A |
TdmMRC006.tabORDEMPRODUCAOIDSERVICOAUXValidate | UdmMRC006.pas | 772 | S, A |
TdmMRC007.tabORDEMPRODUCAOIDSERVICOAUXValidate | UdmMRC007.pas | 840 | S, A |
TdmMRC007.tabORDEMPRODUCAOIDSERVICOPNEUAUXValidate | UdmMRC007.pas | 1389 | S, A |
TdmMRC008.tabORDEMPRODUCAOIDSERVICOAUXValidate | UdmMRC008.pas | 851 | S, A |
TdmMRC008.tabORDEMPRODUCAOIDSERVICOPNEUAUXValidate | UdmMRC008.pas | 1618 | S, A |
TdmMRC009.tabORDEMPRODUCAOIDSERVICOAUXValidate | UdmMRC009.pas | 703 | S, A |
TdmMRC010.tabORDEMPRODUCAOIDSERVICOAUXValidate | UdmMRC010.pas | 737 | S, A |
TdmMRC011.tabORDEMPRODUCAOIDSERVICOAUXValidate | UdmMRC011.pas | 587 | S, A |
TdmMRC012.tabORDEMPRODUCAOIDSERVICOAUXValidate | UdmMRC012.pas | 692 | S, A |
TdmMRC013.tabORDEMPRODUCAOIDSERVICOAUXValidate | UdmMRC013.pas | 531 | S, A |
TdmMRC014.tabORDEMPRODUCAOIDSERVICOAUXValidate | UdmMRC014.pas | 634 | S, A |
TdmMRC015.tabORDEMPRODUCAOIDSERVICOAUXValidate | UdmMRC015.pas | 563 | S, A |
TdmMRC016.tabORDEMPRODUCAOIDSERVICOAUXValidate | UdmMRC016.pas | 984 | S, A |
TdmMRC027.tabORDEMPRODUCAOIDSERVICOAUXValidate | UdmMRC027.pas | 681 | S, A |
TdmMRC028.tabORDEMPRODUCAOIDSERVICOAUXValidate | UdmMRC028.pas | 739 | S, A |
TdmMRC031.tabITEMORCAMENTOPNEUIDSERVICOPNEUValidate | UdmMRC031.pas | 840 | S, A |
TdmMRC031.tabITEMORCAMENTOPNEUAfterScroll | UdmMRC031.pas | 1065 | B |
TdmMRC031.tabCONSERTOITEMIDCONSERTOValidate | UdmMRC031.pas | 1160 | S, A |
Referências SQL diretas ao campo
Nenhuma referência direta ao campo STVALITEMTABPRECO foi encontrada em scripts SQL (Scripts/). Toda a lógica de validação está implementada no lado Delphi.
Candidatas por uso da tabela PARAMRECAP
Diversas procedures SQL fazem JOIN com PARAMRECAP para ler outros parâmetros (ex.: FECHA_ORDEMPRODUCAORECAP, GERA_NOTAPEDIDO, GERA_ORDEMPRODUCAORECAP), mas não referenciam o campo STVALITEMTABPRECO — sem impacto funcional direto identificado.
Parâmetros relacionados
| Parâmetro | Tela / Configuração | Relação |
|---|---|---|
ST_TABPRECO | PARMFATUR (MFA001) — Parâmetros de Faturamento | Define tabela de preço padrão usada como fallback quando STVALITEMTABPRECO está ativo |
ST_ALTERAVALOR | PARAMRECAP (REC001) — Parâmetros da Recapadora | Controla se o valor unitário pode ser alterado manualmente (complementa STVALITEMTABPRECO) |
ST_BLOQUEIOPED | PARMFATUR (MFA001) — Parâmetros de Faturamento | Carregado junto com STVALITEMTABPRECO na inicialização de MRC001 |