ST_BLOQUEIAITEMORCAMENTO
Tela de configuração: OFI001 — Parâmetros de Oficina Localização: Aba Ordem 1 Componente:
DBCheckBox1(checkbox) Tabela / Campo:PARMOFICINA.ST_BLOQUEIAITEMORCAMENTO—CHAR(1) NOT NULL, valor padrão'N'
Controla se itens de uma Ordem de Serviço que foram importados a partir de um Orçamento podem ou não ser editados. Quando ativado, qualquer tentativa de alterar um item que possua número de orçamento vinculado (NR_ORCAMENTO) gera uma exceção e impede a edição.
Telas impactadas
| Tela | Módulo | Impacto |
|---|---|---|
| OFI001 | Ordem de Serviço | Configuração do parâmetro (aba Ordem 1) |
| MOF001 | Ordem de Serviço (Manutenção) | Bloqueio efetivo na edição de itens de peça e serviço |
Campos envolvidos
| Campo | Tabela | Papel |
|---|---|---|
ST_BLOQUEIAITEMORCAMENTO | PARMOFICINA | Ativa/desativa o bloqueio (S/N) |
NR_ORCAMENTO | ORDEMSERVITEM / SERVICOITEM | Identifica a origem do item — se preenchido, o item veio de um Orçamento |
Opções disponíveis
S — Bloqueia alteração de itens oriundos de Orçamento
| O que faz | Detalhe |
|---|---|
| Editável? | Checkbox marcado |
| Comportamento | Itens de peça e serviço vinculados a um orçamento ficam somente leitura na OS |
Simulação passo a passo
- Acesse OFI001 → Aba Ordem 1.
- Marque o checkbox "Bloqueia alteração de itens oriundos de Orçamento".
- Salve o parâmetro.
- Abra uma OS que tenha sido gerada a partir de um Orçamento (MOF001).
- Localize um item de peça ou serviço que possua
NR_ORCAMENTOpreenchido. - Tente alterar a quantidade, o valor ou qualquer dado do item.
- O sistema exibirá a mensagem: "Não é permitido alterar Item oriundo de Orçamento!" e a edição será cancelada.
Resultado esperado: O item importado do orçamento permanece inalterável — nenhuma edição de quantidade, preço ou descrição é aceita. Itens que não vieram de orçamento podem ser editados normalmente.
N — Não bloqueia (padrão)
| O que faz | Detalhe |
|---|---|
| Editável? | Checkbox desmarcado |
| Comportamento | Todos os itens da OS, independentemente da origem, podem ser editados livremente |
Simulação passo a passo
- Acesse OFI001 → Aba Ordem 1.
- Desmarque o checkbox "Bloqueia alteração de itens oriundos de Orçamento" (ou mantenha-o no estado padrão).
- Salve o parâmetro.
- Abra uma OS que tenha sido gerada a partir de um Orçamento (MOF001).
- Localize um item de peça ou serviço com
NR_ORCAMENTOpreenchido. - Altere a quantidade, o valor ou outro dado do item e salve.
Resultado esperado: O item é editado normalmente, sem nenhuma restrição, mesmo tendo vindo de um orçamento.
Tabela comparativa resumida
| Valor | Checkbox | Efeito sobre itens de orçamento | Efeito sobre itens sem orçamento |
|---|---|---|---|
S | Marcado | Bloqueado — edição impedida | Livre para edição |
N | Desmarcado | Livre para edição | Livre para edição |
Regra geral
- O bloqueio é verificado no evento
BeforeEditdos datasets de itens de peça (tabORDEMSERVITEM) e de serviço (tabSERVICOITEM) na tela MOF001. - A verificação é simples: se o campo
NR_ORCAMENTOdo item estiver preenchido, a edição é barrada com exceção. - Não há configuração de autorizador ou usuário especial que contorne este bloqueio — a restrição é aplicada a todos os usuários igualmente.
Excecao / Importante: O bloqueio se aplica somente durante a edição de itens já existentes na OS. Inclusão de novos itens ou exclusão de itens não são afetados por este parâmetro. O campo
NR_ORCAMENTOdeve estar preenchido no item para que o bloqueio seja acionado.
Procedures impactadas
Rotinas Delphi com referência direta ao parâmetro
| Rotina | Arquivo | Linha | Evidência |
|---|---|---|---|
TdmMOF001.BloqueiaAlteracaoOrcamento | source/MOF001/UdmMOF001.pas | 7034 | if (ParmOficina.Values['ST_BLOQUEIAITEMORCAMENTO'] = 'S') then — lança exceção se item tem NR_ORCAMENTO preenchido |
TdmOFI001.tabPARMOFICINAAfterInsert | source/OFI001/UdmOFI001.pas | 377 | tabPARMOFICINAST_BLOQUEIAITEMORCAMENTO.AsString := 'N'; — define valor padrão no insert |
Chamadores do bloqueio
| Rotina | Arquivo | Linha | Evidência |
|---|---|---|---|
TdmMOF001.tabORDEMSERVITEMBeforeEdit | source/MOF001/UdmMOF001.pas | 7041 | Chama BloqueiaAlteracaoOrcamento(DataSet) antes da edição de itens de peça |
TdmMOF001.tabSERVICOITEMBeforeEdit | source/MOF001/UdmMOF001.pas | 7047 | Chama BloqueiaAlteracaoOrcamento(DataSet) antes da edição de itens de serviço |
Referências SQL diretas ao campo
Nenhuma referência direta ao campo ST_BLOQUEIAITEMORCAMENTO foi encontrada em procedures ou views SQL (Scripts/). A lógica de bloqueio é tratada exclusivamente na camada Delphi (aplicação).
Candidatas por uso da tabela PARMOFICINA
As procedures/views abaixo fazem join com PARMOFICINA mas não citam o campo ST_BLOQUEIAITEMORCAMENTO — não há impacto funcional direto identificado para este parâmetro:
PARCELA_FINANC_MNF017PARCELA_FINANCIAMENTOREABRE_OSRETORNA_MOTIVOBLOQUEIORETORNA_PRECOITEMVERIFICA_BLOQUEIOVIEW_DOCUMENTOSBLOQUEADOSVIEW_ROF004/VIEW_ROF004B/VIEW_ROF004B_V2VIEW_ROF008