Pular para o conteúdo principal

ST_ALTERAVALOR — Altera Valor do Pneu

Tela de configuração: REC001 — Parâmetros da Recapadora Localização: Aba Smart Tabela: PARAMRECAP.ST_ALTERAVALOR Tipo: CHAR(1) — Valor padrão: S Controle na tela: cmbST_ALTERAVALOR (TwwDBComboBox)


Telas impactadas​

TelaContextoComo é usado
MRC001 — Orçamento / Pedido de RecapagemAbertura do pedido e edição de itens de pneuLido na inicialização (parmRecap.Values['ST_ALTERAVALOR']) e armazenado em dmMRC001.iST_ALTERAVALOR. Controla se o campo VLUNITARIO fica editável ou somente leitura.
MRC025 — Exportação de ServiçosValidação durante exportação/listagem de serviçosLido diretamente de paramRecap.Values['ST_ALTERAVALOR'] na validação do serviço selecionado.

Campos envolvidos​

TelaCampoControle
MRC001qryItemPedidoPneuVLUNITARIOValor unitário do pneu no item do pedido — fica ReadOnly quando bloqueado
MRC025tabLISTAEXPORTVLUNITARIO (inferido)Valor unitário na exportação de serviços

Opções disponíveis​

S — Sim (Permite Alterar o Valor)​

O que fazDetalhe
EditávelO campo VLUNITARIO fica liberado para edição manual nos itens de pneu.
ExigeNenhuma condição adicional — é o comportamento padrão.
RestriçãoSe ST_TABPRECO (configurado em REC001 — Parâmetros da Recapadora, aba Smart) = B, o campo continua bloqueado independentemente deste parâmetro.

Simulação passo a passo​

  1. Acesse REC001 → aba Smart.
  2. Configure Altera Valor do Pneu como S (Sim).
  3. Salve o parâmetro.
  4. Abra MRC001 e crie ou edite um pedido de recapagem.
  5. Adicione um item de pneu com serviço associado.
  6. Observe que o campo Valor Unitário (VLUNITARIO) está habilitado para digitação.
  7. Altere o valor unitário para um valor diferente do original (ex: de R$ 150,00 para R$ 180,00).
  8. Salve o item.

Resultado esperado: O valor unitário é aceito e gravado normalmente. O operador pode ajustar livremente o preço do pneu no pedido.

Excecao / Importante: Se o parâmetro ST_TABPRECO (configurado em REC001 — Parâmetros da Recapadora, aba Smart) estiver como B (Tabela Bloqueada), o campo VLUNITARIO será bloqueado independentemente de ST_ALTERAVALOR estar como S. Ambos os parâmetros são avaliados com operador OR no código.


A — Somente Valor Acima​

O que fazDetalhe
Parcialmente editávelPermite alterar o valor unitário somente para valores acima do preço da tabela de serviços.
ExigeQue exista uma tabela de preço válida cadastrada para o serviço.
RestriçãoValores iguais ou inferiores ao da tabela não podem ser digitados manualmente.

Simulação passo a passo​

  1. Acesse REC001 → aba Smart.
  2. Configure Altera Valor do Pneu como A (Somente Valor Acima).
  3. Salve o parâmetro.
  4. Abra MRC001 e crie ou edite um pedido de recapagem.
  5. Adicione um item de pneu cujo serviço tenha valor de tabela de R$ 150,00.
  6. Tente alterar o Valor Unitário para R$ 120,00 (abaixo da tabela).
  7. Tente alterar o Valor Unitário para R$ 180,00 (acima da tabela).

Resultado esperado: O sistema aceita o valor de R$ 180,00 (acima do preço da tabela), mas rejeita ou não permite digitar R$ 120,00 (abaixo). O campo fica habilitado apenas quando o novo valor é superior ao valor base do serviço.


N — Não (Bloqueia Alteração)​

O que fazDetalhe
BloqueadoO campo VLUNITARIO fica ReadOnly (somente leitura) — o operador não pode alterar o valor unitário do pneu.
ExigeNenhuma — aplica-se a todos os usuários.
RestriçãoO valor unitário é preenchido automaticamente com o preço da tabela de serviços e não pode ser sobrescrito.

Simulação passo a passo​

  1. Acesse REC001 → aba Smart.
  2. Configure Altera Valor do Pneu como N (Não).
  3. Salve o parâmetro.
  4. Abra MRC001 e crie ou edite um pedido de recapagem.
  5. Adicione um item de pneu com serviço associado.
  6. Observe que o campo Valor Unitário (VLUNITARIO) está desabilitado (cinza/somente leitura).
  7. Tente clicar e editar o campo — o sistema não permite.

Resultado esperado: O campo VLUNITARIO permanece travado com o valor original da tabela de serviços. O operador não consegue alterar o preço, garantindo que todos os pedidos utilizem o valor padrão cadastrado.

Excecao / Importante: Este bloqueio é independente do parâmetro ST_TABPRECO (configurado em REC001 — Parâmetros da Recapadora, aba Smart). Se ST_TABPRECO = B, o resultado é o mesmo (campo bloqueado). A avaliação no código usa operador OR:

if (iStTabela = 'B') or (iST_ALTERAVALOR = 'N') then
VLUNITARIO.ReadOnly := true

Ou seja, basta um dos dois parâmetros bloquear para que o campo fique somente leitura.


Regra Geral de Bloqueio do VLUNITARIO​

O campo VLUNITARIO fica bloqueado (ReadOnly) quando qualquer uma das condições abaixo for verdadeira:

CondiçãoParâmetro envolvidoTela de configuração
ST_TABPRECO = 'B'ST_TABPRECOREC001 — aba Smart
ST_ALTERAVALOR = 'N'ST_ALTERAVALORREC001 — aba Smart

A lógica no código-fonte avalia as duas condições com operador OR:

if (iStTabela = 'B') or (iST_ALTERAVALOR = 'N') then
qryItemPedidoPneuVLUNITARIO.ReadOnly := true
else
qryItemPedidoPneuVLUNITARIO.ReadOnly := false;

Tabela Comparativa Resumida​

OpçãoValor unitário editável?Observação
S — Sim✅ SimPode alterar livremente (salvo bloqueio por ST_TABPRECO = 'B')
A — Somente Valor Acima⚠️ ParcialSó aceita valores acima do preço da tabela
N — Não❌ NãoCampo travado — valor fixo da tabela de serviços

Procedures impactadas​

Rotinas Delphi com referência direta ao parâmetro​

RotinaArquivoLinhaEvidência
iniciarsource/MRC001/UformMRC001.pas84dmMRC001.iST_ALTERAVALOR := parmRecap.Values['ST_ALTERAVALOR'];
TframeMRC001.FrameEntersource/MRC001/UframeMRC001.pas1431if (dmMRC001.iST_ALTERAVALOR = 'N') then
TdmMRC001.recalculaServicosource/MRC001/UdmMRC001.pas612if (dmMRC001.iStTabela = 'B') or (dmMRC001.iST_ALTERAVALOR = 'N') then
TdmMRC001.qryItemPedidoPneuIDSERVICOPNEUValidatesource/MRC001/UdmMRC001.pas927if (dmMRC001.iStTabela = 'B') or (dmMRC001.iST_ALTERAVALOR = 'N') then
TdmMRC025.tabLISTAEXPORTIDSERVICOValidatesource/MRC025/UdmMRC025.pas1142if (frmMRC025.parmFatur.Values['ST_TABPRECO'] = 'B') or (frmMRC025.paramRecap.Values['ST_ALTERAVALOR'] = 'N') then
TdmREC001.qryCadastroAfterInsertsource/REC001/UdmREC001.pas702if (tabCadastroST_ALTERAVALOR.IsNull) then (define valor padrão S)
TdmREC001.qryCadastroBeforePostsource/REC001/UdmREC001.pas1187Incluído no log de auditoria antes do post

Referências SQL diretas ao campo​

Não foram encontradas referências diretas ao campo ST_ALTERAVALOR em procedures/views SQL. O campo é utilizado exclusivamente pela aplicação Delphi (camada cliente).

Candidatas por uso da tabela​

As procedures abaixo acessam a tabela PARAMRECAP mas não citam o campo ST_ALTERAVALOR diretamente. Não há impacto funcional direto documentado para este parâmetro.

Procedure/ViewArquivoEvidência
ATUALIZA_PEDIDONOTAScripts/ATUALIZA_PEDIDONOTA.sqlFROM PARAMRECAP P
GERA_NOTAPEDIDOScripts/GERA_NOTAPEDIDO.sqlFROM PARAMRECAP P
FECHA_ORDEMPRODUCAORECAPScripts/FECHA_ORDEMPRODUCAORECAP.sqlINNER JOIN PARAMRECAP P
(demais 16+ scripts listados no inventário)Scripts/*.sqlAcesso à tabela sem uso do campo