ST_SEPARABLOQUEIO — Liberação de Bloqueio por Setor
Tela de configuração: OFI001 — Parâmetros de Oficina Localização: Aba Ordem 2 → campo "Liberação de Bloqueio por Setor" Tabela / Campo:
PARMOFICINA.ST_SEPARABLOQUEIO·CHAR(1)·NOT NULLValor padrão:N(Não) Controle na tela:cmbST_SEPARABLOQUEIO(combobox, Sim/Não)
Comportamento Geral
Este parâmetro controla se o bloqueio de Ordens de Serviço (OS) é dividido por setor (Financeiro × Comercial) ou tratado como um bloco único.
Quando uma OS sofre bloqueio, o campo ORDEMSERVICO.TP_BLOQUEIO recebe um código que indica o tipo de restrição (preço, desconto, crédito, duplicatas em atraso, etc.). O parâmetro ST_SEPARABLOQUEIO define se esse código será classificado em categorias setoriais (F = Financeiro, C = Comercial, A = Ambos) e se telas diferentes (MOF007 e MOF008) poderão liberar cada setor de forma independente.
Telas Impactadas
| Tela | Papel |
|---|---|
| MOF001 (Consulta de OS) | Botão "Liberar" — valida permissões MOF007 e/ou MOF008 conforme o parâmetro |
| MOF007 (Liberar OS — Comercial) | Salvar — controla se valida status já liberado |
| MOF008 (Liberar OS — Financeiro) | Salvar — controla se valida status já liberado |
| VIEW_DOCUMENTOSBLOQUEADOS | SQL — filtra OS bloqueadas por tipo (TP_BLOQUEIO IN ('F','A') ou 'C','A') |
| RETORNA_MOTIVOBLOQUEIO | SQL — classifica motivos em Financeiro/Comercial/Ambos |
Campos Envolvidos
| Campo | Tabela | Descrição |
|---|---|---|
ST_SEPARABLOQUEIO | PARMOFICINA | Este parâmetro |
TP_BLOQUEIO | ORDEMSERVICO | Tipo de bloqueio gravado na OS (F, C, A quando separado) |
ST_ORDEMSERVICO | ORDEMSERVICO | Status da OS (A = Aberta/Liberada, B = Bloqueada, C = Cancelada) |
Opções Disponíveis
N — Não (Bloqueio Único)
| O que faz | Detalhe |
|---|---|
| Bloqueio tratado como bloco único | Toda a OS é liberada por um único responsável via MOF007 |
| Classificação setorial não é aplicada | TP_BLOQUEIO não é categorizado em F/C/A |
| Permissão exigida | Somente MOF007 (ADM004) |
| Telas que listam OS bloqueadas | Apenas MOF007 lista OS bloqueadas (sem filtro por TP_BLOQUEIO) |
Simulação Passo a Passo
- Acesse OFI001 → aba Ordem 2.
- No campo "Liberação de Bloqueio por Setor", selecione Não.
- Salve a configuração.
- Crie uma OS em que o cliente tenha duplicatas em atraso (bloqueio financeiro) ou preço abaixo da tabela (bloqueio comercial). A OS será bloqueada com
ST_ORDEMSERVICO = 'B'. - Acesse MOF007 — a OS bloqueada aparece na listagem.
- Clique em Salvar para liberar a OS. A OS passa para
ST_ORDEMSERVICO = 'A'(Aberta). - Se tentar salvar novamente em MOF007, o sistema exibe: "Ordem de Serviço Nº X Já Esta Liberada. Atualize A Consulta [F2]!"
Resultado esperado: A OS é liberada de uma única vez por um usuário com acesso MOF007. Não existe separação por setor — basta a permissão comercial.
Excecao / Importante: O usuário também precisa ser do tipo Autorizador (
iST_AUTORIZADOR = 'S', configurado em ADM004 — Acesso). Sem essa condição, o botão "Liberar" em MOF001 lança a exceção: "Somente Usuário do tipo Autorizador pode Liberar esta Ordem."
S — Sim (Bloqueio Separado por Setor)
| O que faz | Detalhe |
|---|---|
| Bloqueio classificado em Financeiro, Comercial ou Ambos | TP_BLOQUEIO recebe F, C ou A |
| Liberação independente por setor | MOF007 libera bloqueios comerciais; MOF008 libera bloqueios financeiros |
| Permissões exigidas | MOF007 (Comercial) e MOF008 (Financeiro) — verificados em ADM004 |
| Telas que listam OS bloqueadas | MOF007 lista apenas TP_BLOQUEIO IN ('C','A'); MOF008 lista apenas TP_BLOQUEIO IN ('F','A') |
| Validação "já liberada" ignorada | Se a OS já está A (Aberta), MOF007/MOF008 não bloqueiam a operação, pois o outro setor pode ainda estar pendente |
Simulação Passo a Passo
- Acesse OFI001 → aba Ordem 2.
- No campo "Liberação de Bloqueio por Setor", selecione Sim.
- Salve a configuração.
- Crie uma OS em que o cliente tenha duplicatas em atraso (bloqueio financeiro: código
D). A OS será bloqueada comTP_BLOQUEIO = 'F'. - Acesse MOF008 — a OS aparece listada como bloqueio financeiro.
- Um usuário com acesso MOF008 e tipo Autorizador libera a OS. O bloqueio financeiro é removido.
- Crie outra OS em que o preço unitário esteja abaixo da tabela (bloqueio comercial: código
P). A OS será bloqueada comTP_BLOQUEIO = 'C'. - Acesse MOF007 — a OS aparece listada como bloqueio comercial.
- Um usuário com acesso MOF007 e tipo Autorizador libera a OS.
- Crie uma OS com ambos os tipos de bloqueio (ex: duplicatas em atraso e preço abaixo da tabela). O
TP_BLOQUEIOserá'A'(Ambos). - A OS aparece tanto em MOF007 quanto em MOF008. Cada setor libera independentemente a sua parte.
Resultado esperado: A liberação é feita por setor. Um bloqueio financeiro só pode ser liberado por quem tem MOF008; um bloqueio comercial, por quem tem MOF007. Se uma OS tiver bloqueio de ambos os tipos, ela precisa ser liberada pelos dois setores.
Excecao / Importante: Quando
ST_SEPARABLOQUEIO = 'S', o botão "Liberar" em MOF001 exige que o usuário tenha ambas as permissões (MOF007 e MOF008) emADM004. Se faltar uma delas, o sistema lança: "O usuário não tem Permissão para Liberar Ordem [MOFxxx]! Verifique[ADM004]."
Regra de Classificação de Bloqueios
Quando ST_SEPARABLOQUEIO = 'S', a procedure RETORNA_MOTIVOBLOQUEIO classifica os códigos de TP_BLOQUEIO da seguinte forma:
| Categoria | Códigos incluídos | Descrição resumida |
|---|---|---|
Financeiro (F) | D, C, T, L, G, A, N, 8 | Duplicatas em atraso, limite de crédito, crédito acumulado, liquidadas após vencimento, condição/forma de pagamento, média de dias, bloqueio por subgrupo financeiro |
Comercial (C) | P, Q, W, E, V, Y, Z, X, M, H, S, J, U, 9, O | Preço abaixo da tabela, valor líquido abaixo do permitido, desconto acima do máximo, margem de segurança, faturamento médio, validade da tabela, bloqueio por subgrupo comercial |
Ambos (A) | — | Quando há simultaneamente códigos financeiros e comerciais |
Tabela Comparativa Resumida
| Aspecto | N (Não) | S (Sim) |
|---|---|---|
| Classificação do bloqueio | Único, sem separação | Financeiro / Comercial / Ambos |
| Telas de liberação | Somente MOF007 | MOF007 (Comercial) + MOF008 (Financeiro) |
| Permissão mínima do liberador | MOF007 + Autorizador | MOF007 + MOF008 + Autorizador |
| Validação "já liberada" | Sim — bloqueia operação se OS já está A | Não — permite operação pois o outro setor pode estar pendente |
| Visualização na VIEW_DOCUMENTOSBLOQUEADOS | Todas as OS bloqueadas listadas sob MOF007 | MOF008 lista TP_BLOQUEIO IN ('F','A'); MOF007 lista TP_BLOQUEIO IN ('C','A') |
Parâmetro Análogo em Pedidos de Venda
Existe um parâmetro equivalente para Pedidos de Venda: ST_SEPARABLOQUEIOPED (configurado em MFA001 — Parâmetros de Faturamento, campo "Liberação de Bloqueio por Setor"). A lógica é idêntica, mas aplicada a pedidos (TP_DOCTO = P/R) em vez de Ordens de Serviço (TP_DOCTO = S/O).