ST_VALIDABOXPLACAVEICULO – Validar Box e Placa do Veículo
Tela de configuração: OFI001 – Parâmetros de Oficina Localização: Parâmetros → aba Parâmetros → combo "Validar Box e Placa do Veículo" Tabela:
PARMOFICINA.ST_VALIDABOXPLACAVEICULOTipo:CHAR(1)Valor padrão:N(Não)
Comportamento geral
Quando habilitado (S), o sistema impede a abertura, alteração ou reabertura de uma Ordem de Serviço se já existir outra OS aberta ou em andamento (status A ou B) com a mesma placa ou o mesmo número de box.
A validação ocorre em pontos-chave do fluxo de oficina (MOF001 e script de reabertura):
- Alterar o campo Placa na OS – valida placa imediatamente ao perder foco do campo.
- Alterar o campo Box na OS – valida box imediatamente ao perder foco do campo.
- Salvar OS na tela móvel (MOF001) – valida placa antes de confirmar a gravação.
- Reabrir OS na tela móvel (MOF001) – valida placa e box antes de permitir a reabertura.
- Reabrir OS via script (
REABRE_OS.sql) – valida placa e box antes de permitir a reabertura.
Telas impactadas
| Tela | Arquivo | Contexto |
|---|---|---|
| MOF001 | source/MOF001/UMOF001.pas | Validação de placa ao salvar e reabrir OS |
| MOF001 | source/MOF001/UdmMOF001.pas | Validação de placa e box nos eventos Validate dos campos |
| Script SQL | Scripts/REABRE_OS.sql | Validação de placa e box na reabertura de OS |
Campos envolvidos
| Campo | Tabela | Papel na validação |
|---|---|---|
NR_PLACA | ORDEMSERVICO | Placa do veículo – comparada entre OSs abertas |
NR_BOX | ORDEMSERVICO | Número do box – comparado entre OSs abertas da mesma empresa |
ST_ORDEMSERVICO | ORDEMSERVICO | Status da OS – filtrado em 'A' (Aberta) ou 'B' (Em andamento) |
CD_EMPRESA | ORDEMSERVICO | Empresa corrente – escopo da consulta de box |
Opções disponíveis
S – Sim (Validar)
| O que faz | Detalhe |
|---|---|
| Validação de placa | Ao alterar o campo NR_PLACA ou salvar a OS, o sistema consulta se existe outra OS pendente (status A ou B) com a mesma placa. Se encontrar, bloqueia a operação. |
| Validação de box | Ao alterar o campo NR_BOX ou reabrir a OS, o sistema consulta se existe outra OS pendente com o mesmo box na mesma empresa. Se encontrar, bloqueia a operação. |
| Escopo | Consulta na tabela ORDEMSERVICO filtrando ST_ORDEMSERVICO IN ('A','B'), excluindo a OS atual (quando aplicável). |
| Editável / Bloqueado | Parâmetro editável. Não exige outros parâmetros. |
Simulação passo a passo – Validação de Placa
- Acesse a tela MOF001 (Oficina Móvel).
- Crie ou edite uma Ordem de Serviço.
- Informe a placa
ABC1D23no campo Placa. - Saia do campo (perda de foco) ou clique em Salvar.
- O sistema consulta: existe outra OS com status A ou B e placa
ABC1D23? - Se existir OS nº 1050 na empresa 1 com essa placa → exibe mensagem de erro.
Resultado esperado: A operação é bloqueada e exibida a mensagem:
"Existe uma Ordem de Serviço Pendente com Esse Nr. de Placa. Verifique! Empresa: 1 / Nr. Ordem de Serviço: 1050"
Simulação passo a passo – Validação de Box
- Acesse a tela MOF001 (Oficina Móvel).
- Crie ou edite uma Ordem de Serviço.
- Informe o número do box
03no campo Box. - Saia do campo (perda de foco) ou clique em Reabrir OS.
- O sistema consulta: existe outra OS com status A ou B, box
03, na mesma empresa? - Se existir OS nº 1080 com esse box → exibe mensagem de erro.
Resultado esperado: A operação é bloqueada e exibida a mensagem:
"Existe uma Ordem de Serviço Pendente com esse Nr. de Box para a Empresa 1. Verifique! Nr. Ordem de Serviço: 1080"
Simulação passo a passo – Reabertura via Script (REABRE_OS.sql)
- Execute o script
REABRE_OSpassando a empresa e a OS a reabrir. - O script lê
PARMOFICINA.ST_VALIDABOXPLACAVEICULOpara a empresa informada. - Se o valor for
S, consulta se existe OS pendente com a mesma placa ou mesmo box. - Se encontrar → retorna mensagem de erro e impede a reabertura.
Resultado esperado: O script retorna uma das mensagens:
"REABRE_OS: A Ordem de Serviço 1050 está Pendente com esse Nr. de Placa!" "REABRE_OS: A Ordem de Serviço 1080 está Pendente com esse Nr. de Box!"
N – Não (Padrão)
| O que faz | Detalhe |
|---|---|
| Desabilita validação | Nenhuma consulta de placa ou box é executada. Duplicidade é permitida. |
| Editável / Bloqueado | Parâmetro editável. |
Simulação passo a passo
- Acesse a tela OFI001 → aba Parâmetros.
- Defina o combo "Validar Box e Placa do Veículo" como Não.
- Salve os parâmetros.
- Acesse MOF001 e crie duas OSs com a mesma placa e/ou mesmo box.
- Nenhuma validação é executada; ambas as OSs são gravadas normalmente.
Resultado esperado: O sistema permite gravar múltiplas OSs com a mesma placa ou mesmo box sem restrições.
Procedures impactadas
Rotinas Delphi com referência direta ao campo
| Rotina | Arquivo | Linha | Contexto |
|---|---|---|---|
TfrmMOF001.btnSalvarClick | source/MOF001/UMOF001.pas | 2481 | Valida placa ao salvar OS |
TfrmMOF001.btnReabrirClick | source/MOF001/UMOF001.pas | 5251 | Valida placa e box ao reabrir OS |
TdmMOF001.tabORDEMSERVICONR_PLACAValidate | source/MOF001/UdmMOF001.pas | 4647 | Valida placa ao alterar o campo |
TdmMOF001.tabORDEMSERVICONR_BOXValidate | source/MOF001/UdmMOF001.pas | 6285 | Valida box ao alterar o campo |
TdmOFI001.tabPARMOFICINAAfterInsert | source/OFI001/UdmOFI001.pas | 368 | Define valor padrão 'N' ao inserir registro |
Referências SQL diretas ao campo
| Procedure/View | Arquivo | Linha | Contexto |
|---|---|---|---|
REABRE_OS | Scripts/REABRE_OS.sql | 89 | Lê o parâmetro antes de validar placa e box na reabertura |
Candidatas por uso da tabela
Sem referência direta ao campo ST_VALIDABOXPLACAVEICULO encontrada em Scripts/. As procedures abaixo acessam PARMOFICINA para outros campos e não utilizam este parâmetro:
PARCELA_FINANC_MNF017, PARCELA_FINANCIAMENTO, RETORNA_MOTIVOBLOQUEIO, RETORNA_PRECOITEM, VERIFICA_BLOQUEIO, VIEW_DOCUMENTOSBLOQUEADOS, VIEW_ROF004, VIEW_ROF004B, VIEW_ROF004B_V2, VIEW_ROF008.