Pular para o conteúdo principal

STVALITEMTABPRECO — Validação de Item na Tabela de Preço

Tela de configuração: REC001 — Parâmetros da Recapadora Tabela: PARAMRECAP.STVALITEMTABPRECO Tipo: CHAR(1) · Valor padrão: N Aba: 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​

TelaDescriçãoUso principal
MRC001Pedido de RecapagemValidação ao incluir serviço no pedido e ao recalcular serviços
MRC002Consulta de PedidosValidação ao marcar/desmarcar itens na consulta
MRC003Ordem de Produção — MontagemValidação ao incluir serviço auxiliar e serviço principal
MRC006Ordem de Produção — InspeçãoValidação ao incluir serviço auxiliar e principal
MRC007 a MRC016Etapas de produção (Cola, Banda, etc.)Validação ao incluir serviço auxiliar e principal
MRC027, MRC028Etapas adicionais de produçãoValidação ao incluir serviço auxiliar
MRC031Orçamento de RecapagemValidação ao incluir serviço + bloqueio de campo VLUNITARIO (quando = 'B')

Campos envolvidos​

CampoTabelaFunção
STVALITEMTABPRECOPARAMRECAPParâmetro que define o modo de validação
IDSERVICOPNEUItem do pedido/OP/orçamentoServiço sendo validado contra a tabela
IDTABPRECOItem do pedido/OP/orçamentoTabela de preço atribuída ao item
VLUNITARIOItem do orçamento (MRC031)Campo bloqueado quando valor = B
IDPESSOAPedido/OP/orçamentoCliente usado para buscar tabela vinculada

Opções disponíveis​

N — Sem Validação (Padrão)​

O que fazDetalhe
ComportamentoNenhuma 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​

  1. Acesse REC001 e confirme que STVALITEMTABPRECO = N.
  2. Abra MRC001, selecione um cliente sem tabela de preço vinculada em MFA006.
  3. Inclua um serviço de pneu no pedido.
  4. 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 fazDetalhe
ComportamentoValida 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​

  1. Acesse REC001 e configure STVALITEMTABPRECO = S.
  2. Abra MRC001, selecione um cliente.
  3. Inclua um serviço de pneu que não consta na tabela de preço do cliente.
  4. 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]".
  5. 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 fazDetalhe
ComportamentoValida 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​

  1. Acesse REC001 e configure STVALITEMTABPRECO = A.
  2. Abra MRC001, selecione um cliente.
  3. Inclua um serviço de pneu que não consta na tabela de preço do cliente.
  4. 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]".
  5. 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_PRECOITEM retornar mensagem — exibe aviso mas não impede a gravação.


B — Bloqueia Valor Unitário (somente MRC031)​

O que fazDetalhe
ComportamentoTorna 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​

  1. Acesse REC001 e configure STVALITEMTABPRECO = B.
  2. Abra MRC031 (Orçamento de Recapagem), selecione um pneu com número de série.
  3. Observe que o campo Valor Unitário do item fica desabilitado para edição manual.
  4. 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:

  1. Busca tabela de preço via RETORNA_TABPRECO (empresa, condição de pagamento, tipo pessoa, vendedor, região, estado, cliente, serviço).
  2. Se encontrou tabela, verifica se o serviço existe nela consultando ITEMTABPRECO.
  3. Se o serviço não existe na tabela do cliente:
    • S → Exceção bloqueante mencionando TFA006/MFA006.
    • A → Aviso informando que será usado preço à vista/à prazo ou padrão.
  4. Busca o preço via RETORNA_PRECOITEM (empresa, tabela, serviço, condição de pagamento, cliente).
  5. Se RETORNA_PRECOITEM retornar mensagem de erro:
    • S → Exceção bloqueante.
    • A → Aviso (não bloqueia).
  6. Atribui o preço retornado ao campo VLUNITARIO do item.

Tabela Comparativa Resumida​

ValorValida tabela?Valida item na tabela?Bloqueia se inválido?Bloqueia valor manual?Telas
NNãoNãoNãoNãoTodas
SSimSimSim (exceção)NãoMRC001–MRC031
ASimSimNão (aviso)NãoMRC001–MRC031
BNãoNãoNãoSim (VLUNITARIO ReadOnly)MRC031 apenas

Procedures impactadas​

Rotinas Delphi com referência direta ao campo​

RotinaArquivoLinhaValor testado
TdmMRC001.recalculaServicoUdmMRC001.pas515S, A
TdmMRC001.qryItemPedidoPneuIDSERVICOPNEUValidateUdmMRC001.pas837S, A
iniciar (form)UformMRC001.pas82Todos (carrega em iValidaTabPreco)
TdmMRC002.qryConsultaCHECKEDValidateUdmMRC002.pas427S, A
TdmMRC003.qryOrdemProducaoRecapIDSERVICOPNEUAUXValidateUdmMRC003.pas2545S, A
TdmMRC003.tabOrdemProducaoRecapIDSERVICOAUXValidateUdmMRC003.pas3219S, A
TdmMRC006.tabORDEMPRODUCAOIDSERVICOPNEUAUXValidateUdmMRC006.pas563S, A
TdmMRC006.tabORDEMPRODUCAOIDSERVICOAUXValidateUdmMRC006.pas772S, A
TdmMRC007.tabORDEMPRODUCAOIDSERVICOAUXValidateUdmMRC007.pas840S, A
TdmMRC007.tabORDEMPRODUCAOIDSERVICOPNEUAUXValidateUdmMRC007.pas1389S, A
TdmMRC008.tabORDEMPRODUCAOIDSERVICOAUXValidateUdmMRC008.pas851S, A
TdmMRC008.tabORDEMPRODUCAOIDSERVICOPNEUAUXValidateUdmMRC008.pas1618S, A
TdmMRC009.tabORDEMPRODUCAOIDSERVICOAUXValidateUdmMRC009.pas703S, A
TdmMRC010.tabORDEMPRODUCAOIDSERVICOAUXValidateUdmMRC010.pas737S, A
TdmMRC011.tabORDEMPRODUCAOIDSERVICOAUXValidateUdmMRC011.pas587S, A
TdmMRC012.tabORDEMPRODUCAOIDSERVICOAUXValidateUdmMRC012.pas692S, A
TdmMRC013.tabORDEMPRODUCAOIDSERVICOAUXValidateUdmMRC013.pas531S, A
TdmMRC014.tabORDEMPRODUCAOIDSERVICOAUXValidateUdmMRC014.pas634S, A
TdmMRC015.tabORDEMPRODUCAOIDSERVICOAUXValidateUdmMRC015.pas563S, A
TdmMRC016.tabORDEMPRODUCAOIDSERVICOAUXValidateUdmMRC016.pas984S, A
TdmMRC027.tabORDEMPRODUCAOIDSERVICOAUXValidateUdmMRC027.pas681S, A
TdmMRC028.tabORDEMPRODUCAOIDSERVICOAUXValidateUdmMRC028.pas739S, A
TdmMRC031.tabITEMORCAMENTOPNEUIDSERVICOPNEUValidateUdmMRC031.pas840S, A
TdmMRC031.tabITEMORCAMENTOPNEUAfterScrollUdmMRC031.pas1065B
TdmMRC031.tabCONSERTOITEMIDCONSERTOValidateUdmMRC031.pas1160S, 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âmetroTela / ConfiguraçãoRelação
ST_TABPRECOPARMFATUR (MFA001) — Parâmetros de FaturamentoDefine tabela de preço padrão usada como fallback quando STVALITEMTABPRECO está ativo
ST_ALTERAVALORPARAMRECAP (REC001) — Parâmetros da RecapadoraControla se o valor unitário pode ser alterado manualmente (complementa STVALITEMTABPRECO)
ST_BLOQUEIOPEDPARMFATUR (MFA001) — Parâmetros de FaturamentoCarregado junto com STVALITEMTABPRECO na inicialização de MRC001