Pular para o conteúdo principal

ST_BLOQUEIADESC — Bloquear Alteração da Descrição dos Serviços/Peças

Tela de configuração: OFI001 — Parâmetros da Oficina Localização: Aba Ordem 1 Componente: chkST_BLOQUEIADESCMOF001 (checkbox) Tabela / Campo: PARMOFICINA.ST_BLOQUEIADESC — CHAR(1), default 'N'

Quando ativado, impede que o operador altere a descrição de serviços e peças já vinculados a uma Ordem de Serviço (MOF001). O bloqueio é aplicado exclusivamente na camada Delphi (client-side), tornando os campos de descrição somente-leitura.


Telas impactadas​

TelaFormulárioEfeito
MOF001Ordem de ServiçoCampos de descrição de serviços e peças ficam ReadOnly

Campos envolvidos​

TabelaCampoQuando 'S'
ORDEMSERVITEMDS_SERVICOReadOnly (descrição do serviço na OS)
SERVICOITEMDS_ITEMReadOnly (descrição do item de serviço)
ITEMCONSUMODS_ITEMReadOnly (descrição do item de consumo/peça)

Opções disponíveis​

S — Bloquear Alteração de Descrição​

O que fazDetalhe
EditávelNão — campos de descrição ficam somente-leitura
ExigeNenhuma condição adicional
RestriçãoAfeta somente MOF001 (Ordem de Serviço)

Simulação passo a passo​

  1. Acesse OFI001 → Parâmetros → aba Ordem 1.
  2. Marque o checkbox "Bloquear Alteração da Descrição" (chkST_BLOQUEIADESCMOF001).
  3. Salve os parâmetros.
  4. Abra uma MOF001 (Ordem de Serviço) com serviços e/ou peças já adicionados.
  5. Tente editar o campo Descrição em um serviço listado na grade.
  6. Tente editar o campo Descrição em um item de consumo/peça listado.

Resultado esperado: Os campos de descrição (DS_SERVICO, DS_ITEM) estão travados (somente-leitura) e não aceitam digitação. O operador consegue alterar quantidade, valores e outros campos, mas não a descrição do item.


N — Permitir Alteração de Descrição (Padrão)​

O que fazDetalhe
EditávelSim — campos de descrição permanecem editáveis
ExigeNenhuma
RestriçãoNenhuma

Simulação passo a passo​

  1. Acesse OFI001 → Parâmetros → aba Ordem 1.
  2. Certifique-se de que o checkbox "Bloquear Alteração da Descrição" está desmarcado.
  3. Salve os parâmetros.
  4. Abra uma MOF001 (Ordem de Serviço) com serviços e/ou peças.
  5. Edite o campo Descrição de um serviço ou peça na grade.

Resultado esperado: Os campos de descrição permitem edição livre. O operador pode alterar o texto descritivo de serviços e itens de consumo normalmente.

Exceção / Importante: Quando ST_BLOQUEIADESC = 'N', o código não restaura explicitamente ITEMCONSUMO.DS_ITEM para editável (a linha está comentada no fonte). Caso o campo tenha sido bloqueado por outro mecanismo, pode permanecer somente-leitura mesmo com o parâmetro desmarcado. Reiniciar a tela resolve.


Regra Geral​

  • O bloqueio é aplicado no evento iniciar de MOF001, logo ao abrir a tela.
  • Quando ST_BLOQUEIADESC = 'S', apenas a descrição é travada; quantidade, valores unitários e descontos permanecem editáveis (sujeitos a outros parâmetros).
  • O campo ST_BLOQUEIADESCPROM (configurado em MFA001 — Parâmetros de Faturamento, tabela PARMFATUR) controla bloqueio de descontos por promoção em notas e pedidos — é um parâmetro distinto e sem relação direta com este.

Tabela Comparativa Resumida​

ValorDescrição dos ServiçosDescrição dos Itens de Consumo
'S'Somente-leituraSomente-leitura
'N'EditávelEditável (exceto se travado por outro mecanismo)

Procedures impactadas​

Rotinas Delphi com referência direta ao campo​

RotinaArquivoLinhaEvidência
iniciarsource/MOF001/UMOF001.pas521if (ParmOficina.Values['ST_BLOQUEIADESC'] = 'S') then — torna ReadOnly os campos de descrição

Scripts SQL com referência direta ao campo​

Nenhuma referência direta a PARMOFICINA.ST_BLOQUEIADESC foi encontrada em procedures ou views SQL. O bloqueio é aplicado inteiramente na camada Delphi (client-side).

Nota: A procedure VALIDA_BLOQDESCMAXSUBGRUPO (Scripts/VALIDA_BLOQDESCMAXSUBGRUPO.sql) utiliza uma variável local V_ST_BLOQUEIADESCONTO que não tem relação com o campo PARMOFICINA.ST_BLOQUEIADESC. Essa variável é interna à validação de desconto máximo por subgrupo e opera sobre a tabela PARMFATUR.

Candidatas por uso da tabela​

Estas procedures/views usam a tabela PARMOFICINA, mas não citam o campo ST_BLOQUEIADESC diretamente. Não há impacto funcional comprovado:

Procedure/ViewArquivo
PARCELA_FINANC_MNF017Scripts/PARCELA_FINANC_MNF017.sql
PARCELA_FINANCIAMENTOScripts/PARCELA_FINANCIAMENTO.sql
REABRE_OSScripts/REABRE_OS.sql
RETORNA_MOTIVOBLOQUEIOScripts/RETORNA_MOTIVOBLOQUEIO.sql
RETORNA_PRECOITEMScripts/RETORNA_PRECOITEM.sql
VERIFICA_BLOQUEIOScripts/VERIFICA_BLOQUEIO.sql
VIEW_DOCUMENTOSBLOQUEADOSScripts/VIEW_DOCUMENTOSBLOQUEADOS.sql
VIEW_ROF004Scripts/VIEW_ROF004.sql
VIEW_ROF004BScripts/VIEW_ROF004B.sql
VIEW_ROF004B_V2Scripts/VIEW_ROF004B_V2.sql
VIEW_ROF008Scripts/VIEW_ROF008.sql