Pular para o conteúdo principal

ST_REPETESERVICO — Permite Repetir Serviços

Tela de configuração: OFI001 — Parâmetros da Oficina Localização: Aba Ordem 1, campo chkST_REPETESERVICO Tabela / Campo: PARMOFICINA.ST_REPETESERVICO Tipo: CHAR(1) · Valor padrão: S (Sim) Rótulo na tela: Permite Repetir Serviços [MOF001]


Telas impactadas​

TelaEfeito
MOF001 — Ordem de ServiçoAo informar o código de um serviço no item da OS, o sistema consulta PARMOFICINA.ST_REPETESERVICO. Se o valor for N, verifica se aquele serviço já existe na mesma OS e bloqueia a inclusão duplicada.

Campos envolvidos​

TabelaCampoFunção
PARMOFICINAST_REPETESERVICOFlag que controla a regra de duplicidade de serviços na OS
ORDEMSERVITEMCD_SERVICOCampo consultado para detectar serviço já incluído na mesma OS

Opções disponíveis​

S — Permite repetir serviços (padrão)​

O que fazDetalhe
ComportamentoO mesmo serviço pode ser incluído diversas vezes em uma mesma Ordem de Serviço. O sistema não verifica duplicidade.
EdiçãoCheckbox desmarcado = libera repetição
Valor padrãoS (configurado no evento AfterInsert do dataset tabPARMOFICINA)

Simulação passo a passo​

  1. Acesse OFI001 (Parâmetros da Oficina) → aba Ordem 1.
  2. Certifique-se de que o checkbox Permite Repetir Serviços esteja desmarcado (valor S no banco).
  3. Salve os parâmetros, se necessário.
  4. Abra ou crie uma Ordem de Serviço em MOF001.
  5. Inclua um serviço (ex.: código 101 — Alinhamento) no primeiro item da OS.
  6. Avance para o próximo item e informe o mesmo código 101 novamente.
  7. O sistema aceita a inclusão sem mensagem de erro.

Resultado esperado: O serviço é incluído novamente na OS, gerando dois itens distintos com o mesmo código de serviço.


N — Bloqueia repetição de serviços​

O que fazDetalhe
ComportamentoAo incluir um serviço na OS, o sistema consulta ORDEMSERVITEM para verificar se o mesmo CD_SERVICO já existe naquela OS. Se existir, exibe alerta e impede a inclusão.
EdiçãoCheckbox marcado = bloqueia repetição
Regra SQLSELECT CD_SERVICO FROM ORDEMSERVITEM WHERE CD_EMPRESA = :empresa AND NR_ORDEMSERVICO = :os AND CD_SERVICO = :servico — se retornar resultado, bloqueia.

Simulação passo a passo​

  1. Acesse OFI001 (Parâmetros da Oficina) → aba Ordem 1.
  2. Marque o checkbox Permite Repetir Serviços (valor N no banco).
  3. Salve os parâmetros.
  4. Abra ou crie uma Ordem de Serviço em MOF001.
  5. Inclua um serviço (ex.: código 101 — Alinhamento) no primeiro item da OS.
  6. Avance para o próximo item e informe o mesmo código 101 novamente.
  7. O sistema exibe a mensagem: "Este Serviço já foi Informado na Ordem de Serviço!" e impede a inclusão.

Resultado esperado: O item não é criado. O foco permanece no campo CD_SERVICO para que o usuário informe um serviço diferente.

Excecao / Importante: A verificação de duplicidade ocorre somente na validação do campo CD_SERVICO (evento Validate em TdmMOF001.tabORDEMSERVITEMCD_SERVICOValidate). Se um serviço for copiado ou importado por outro mecanismo que não passe por essa validação, a regra pode não ser aplicada.


Tabela comparativa resumida​

ValorCheckboxPermite serviço repetido?Validação em MOF001
SDesmarcadoSim — sem restriçãoNenhuma verificação de duplicidade
NMarcadoNão — bloqueia duplicataConsulta ORDEMSERVITEM e exibe alerta

Procedures impactadas​

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

RotinaArquivoLinhaEvidência
TdmMOF001.tabORDEMSERVITEMCD_SERVICOValidatesource/MOF001/UdmMOF001.pas2485if ( ParmOficina.Values['ST_REPETESERVICO'] = 'N' ) then
TdmOFI001.tabPARMOFICINAAfterInsertsource/OFI001/UdmOFI001.pas364tabPARMOFICINAST_REPETESERVICO.AsString := 'S';
chkST_REPETESERVICOMouseMovesource/OFI001/UOFI001.pas749Evento de tooltip do checkbox

Referências SQL diretas ao campo em Scripts/​

Não foi encontrada referência direta ao campo ST_REPETESERVICO em procedures ou views SQL em Scripts/. As rotinas SQL listadas abaixo utilizam a tabela PARMOFICINA mas não citam o campo ST_REPETESERVICO:

Procedure/ViewArquivoUso da tabela
PARCELA_FINANC_MNF017Scripts/PARCELA_FINANC_MNF017.sqlJOIN em PARMOFICINA
PARCELA_FINANCIAMENTOScripts/PARCELA_FINANCIAMENTO.sqlJOIN em PARMOFICINA
REABRE_OSScripts/REABRE_OS.sqlSELECT em PARMOFICINA
RETORNA_MOTIVOBLOQUEIOScripts/RETORNA_MOTIVOBLOQUEIO.sqlSELECT em PARMOFICINA
RETORNA_PRECOITEMScripts/RETORNA_PRECOITEM.sqlSELECT em PARMOFICINA
VERIFICA_BLOQUEIOScripts/VERIFICA_BLOQUEIO.sqlSELECT em PARMOFICINA
VIEW_DOCUMENTOSBLOQUEADOSScripts/VIEW_DOCUMENTOSBLOQUEADOS.sqlJOIN em PARMOFICINA
VIEW_ROF004Scripts/VIEW_ROF004.sqlSELECT em PARMOFICINA
VIEW_ROF004BScripts/VIEW_ROF004B.sqlJOIN em PARMOFICINA
VIEW_ROF004B_V2Scripts/VIEW_ROF004B_V2.sqlJOIN em PARMOFICINA
VIEW_ROF008Scripts/VIEW_ROF008.sqlSELECT em PARMOFICINA

Nota: A regra de negócio deste parâmetro é aplicada inteiramente na camada Delphi (evento Validate em MOF001), sem necessidade de lógica SQL adicional.