ST_ALTERAVALOR — Altera Valor do Pneu
Tela de configuração: REC001 — Parâmetros da Recapadora Localização: Aba Smart Tabela:
PARAMRECAP.ST_ALTERAVALORTipo:CHAR(1)— Valor padrão:SControle na tela:cmbST_ALTERAVALOR(TwwDBComboBox)
Telas impactadas
| Tela | Contexto | Como é usado |
|---|---|---|
| MRC001 — Orçamento / Pedido de Recapagem | Abertura do pedido e edição de itens de pneu | Lido 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ços | Validação durante exportação/listagem de serviços | Lido diretamente de paramRecap.Values['ST_ALTERAVALOR'] na validação do serviço selecionado. |
Campos envolvidos
| Tela | Campo | Controle |
|---|---|---|
| MRC001 | qryItemPedidoPneuVLUNITARIO | Valor unitário do pneu no item do pedido — fica ReadOnly quando bloqueado |
| MRC025 | tabLISTAEXPORTVLUNITARIO (inferido) | Valor unitário na exportação de serviços |
Opções disponíveis
S — Sim (Permite Alterar o Valor)
| O que faz | Detalhe |
|---|---|
| Editável | O campo VLUNITARIO fica liberado para edição manual nos itens de pneu. |
| Exige | Nenhuma condição adicional — é o comportamento padrão. |
| Restrição | Se 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
- Acesse REC001 → aba Smart.
- Configure Altera Valor do Pneu como
S(Sim). - Salve o parâmetro.
- Abra MRC001 e crie ou edite um pedido de recapagem.
- Adicione um item de pneu com serviço associado.
- Observe que o campo Valor Unitário (
VLUNITARIO) está habilitado para digitação. - Altere o valor unitário para um valor diferente do original (ex: de R$ 150,00 para R$ 180,00).
- 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 comoB(Tabela Bloqueada), o campoVLUNITARIOserá bloqueado independentemente deST_ALTERAVALORestar comoS. Ambos os parâmetros são avaliados com operadorORno código.
A — Somente Valor Acima
| O que faz | Detalhe |
|---|---|
| Parcialmente editável | Permite alterar o valor unitário somente para valores acima do preço da tabela de serviços. |
| Exige | Que exista uma tabela de preço válida cadastrada para o serviço. |
| Restrição | Valores iguais ou inferiores ao da tabela não podem ser digitados manualmente. |
Simulação passo a passo
- Acesse REC001 → aba Smart.
- Configure Altera Valor do Pneu como
A(Somente Valor Acima). - Salve o parâmetro.
- Abra MRC001 e crie ou edite um pedido de recapagem.
- Adicione um item de pneu cujo serviço tenha valor de tabela de R$ 150,00.
- Tente alterar o Valor Unitário para R$ 120,00 (abaixo da tabela).
- 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 faz | Detalhe |
|---|---|
| Bloqueado | O campo VLUNITARIO fica ReadOnly (somente leitura) — o operador não pode alterar o valor unitário do pneu. |
| Exige | Nenhuma — aplica-se a todos os usuários. |
| Restrição | O 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
- Acesse REC001 → aba Smart.
- Configure Altera Valor do Pneu como
N(Não). - Salve o parâmetro.
- Abra MRC001 e crie ou edite um pedido de recapagem.
- Adicione um item de pneu com serviço associado.
- Observe que o campo Valor Unitário (
VLUNITARIO) está desabilitado (cinza/somente leitura). - 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). SeST_TABPRECO=B, o resultado é o mesmo (campo bloqueado). A avaliação no código usa operadorOR:if (iStTabela = 'B') or (iST_ALTERAVALOR = 'N') thenVLUNITARIO.ReadOnly := trueOu 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ção | Parâmetro envolvido | Tela de configuração |
|---|---|---|
ST_TABPRECO = 'B' | ST_TABPRECO | REC001 — aba Smart |
ST_ALTERAVALOR = 'N' | ST_ALTERAVALOR | REC001 — 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ção | Valor unitário editável? | Observação |
|---|---|---|
S — Sim | ✅ Sim | Pode alterar livremente (salvo bloqueio por ST_TABPRECO = 'B') |
A — Somente Valor Acima | ⚠️ Parcial | Só aceita valores acima do preço da tabela |
N — Não | ❌ Não | Campo travado — valor fixo da tabela de serviços |
Procedures impactadas
Rotinas Delphi com referência direta ao parâmetro
| Rotina | Arquivo | Linha | Evidência |
|---|---|---|---|
iniciar | source/MRC001/UformMRC001.pas | 84 | dmMRC001.iST_ALTERAVALOR := parmRecap.Values['ST_ALTERAVALOR']; |
TframeMRC001.FrameEnter | source/MRC001/UframeMRC001.pas | 1431 | if (dmMRC001.iST_ALTERAVALOR = 'N') then |
TdmMRC001.recalculaServico | source/MRC001/UdmMRC001.pas | 612 | if (dmMRC001.iStTabela = 'B') or (dmMRC001.iST_ALTERAVALOR = 'N') then |
TdmMRC001.qryItemPedidoPneuIDSERVICOPNEUValidate | source/MRC001/UdmMRC001.pas | 927 | if (dmMRC001.iStTabela = 'B') or (dmMRC001.iST_ALTERAVALOR = 'N') then |
TdmMRC025.tabLISTAEXPORTIDSERVICOValidate | source/MRC025/UdmMRC025.pas | 1142 | if (frmMRC025.parmFatur.Values['ST_TABPRECO'] = 'B') or (frmMRC025.paramRecap.Values['ST_ALTERAVALOR'] = 'N') then |
TdmREC001.qryCadastroAfterInsert | source/REC001/UdmREC001.pas | 702 | if (tabCadastroST_ALTERAVALOR.IsNull) then (define valor padrão S) |
TdmREC001.qryCadastroBeforePost | source/REC001/UdmREC001.pas | 1187 | Incluí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/View | Arquivo | Evidência |
|---|---|---|
ATUALIZA_PEDIDONOTA | Scripts/ATUALIZA_PEDIDONOTA.sql | FROM PARAMRECAP P |
GERA_NOTAPEDIDO | Scripts/GERA_NOTAPEDIDO.sql | FROM PARAMRECAP P |
FECHA_ORDEMPRODUCAORECAP | Scripts/FECHA_ORDEMPRODUCAORECAP.sql | INNER JOIN PARAMRECAP P |
| (demais 16+ scripts listados no inventário) | Scripts/*.sql | Acesso à tabela sem uso do campo |