Pular para o conteúdo principal

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 NULL Valor 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​

TelaPapel
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_DOCUMENTOSBLOQUEADOSSQL — filtra OS bloqueadas por tipo (TP_BLOQUEIO IN ('F','A') ou 'C','A')
RETORNA_MOTIVOBLOQUEIOSQL — classifica motivos em Financeiro/Comercial/Ambos

Campos Envolvidos​

CampoTabelaDescrição
ST_SEPARABLOQUEIOPARMOFICINAEste parâmetro
TP_BLOQUEIOORDEMSERVICOTipo de bloqueio gravado na OS (F, C, A quando separado)
ST_ORDEMSERVICOORDEMSERVICOStatus da OS (A = Aberta/Liberada, B = Bloqueada, C = Cancelada)

Opções Disponíveis​

N — Não (Bloqueio Único)​

O que fazDetalhe
Bloqueio tratado como bloco únicoToda a OS é liberada por um único responsável via MOF007
Classificação setorial não é aplicadaTP_BLOQUEIO não é categorizado em F/C/A
Permissão exigidaSomente MOF007 (ADM004)
Telas que listam OS bloqueadasApenas MOF007 lista OS bloqueadas (sem filtro por TP_BLOQUEIO)

Simulação Passo a Passo​

  1. Acesse OFI001 → aba Ordem 2.
  2. No campo "Liberação de Bloqueio por Setor", selecione Não.
  3. Salve a configuração.
  4. 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'.
  5. Acesse MOF007 — a OS bloqueada aparece na listagem.
  6. Clique em Salvar para liberar a OS. A OS passa para ST_ORDEMSERVICO = 'A' (Aberta).
  7. 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 fazDetalhe
Bloqueio classificado em Financeiro, Comercial ou AmbosTP_BLOQUEIO recebe F, C ou A
Liberação independente por setorMOF007 libera bloqueios comerciais; MOF008 libera bloqueios financeiros
Permissões exigidasMOF007 (Comercial) e MOF008 (Financeiro) — verificados em ADM004
Telas que listam OS bloqueadasMOF007 lista apenas TP_BLOQUEIO IN ('C','A'); MOF008 lista apenas TP_BLOQUEIO IN ('F','A')
Validação "já liberada" ignoradaSe 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​

  1. Acesse OFI001 → aba Ordem 2.
  2. No campo "Liberação de Bloqueio por Setor", selecione Sim.
  3. Salve a configuração.
  4. Crie uma OS em que o cliente tenha duplicatas em atraso (bloqueio financeiro: código D). A OS será bloqueada com TP_BLOQUEIO = 'F'.
  5. Acesse MOF008 — a OS aparece listada como bloqueio financeiro.
  6. Um usuário com acesso MOF008 e tipo Autorizador libera a OS. O bloqueio financeiro é removido.
  7. Crie outra OS em que o preço unitário esteja abaixo da tabela (bloqueio comercial: código P). A OS será bloqueada com TP_BLOQUEIO = 'C'.
  8. Acesse MOF007 — a OS aparece listada como bloqueio comercial.
  9. Um usuário com acesso MOF007 e tipo Autorizador libera a OS.
  10. Crie uma OS com ambos os tipos de bloqueio (ex: duplicatas em atraso e preço abaixo da tabela). O TP_BLOQUEIO será 'A' (Ambos).
  11. 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) em ADM004. 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:

CategoriaCódigos incluídosDescrição resumida
Financeiro (F)D, C, T, L, G, A, N, 8Duplicatas 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, OPreç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​

AspectoN (Não)S (Sim)
Classificação do bloqueioÚnico, sem separaçãoFinanceiro / Comercial / Ambos
Telas de liberaçãoSomente MOF007MOF007 (Comercial) + MOF008 (Financeiro)
Permissão mínima do liberadorMOF007 + AutorizadorMOF007 + MOF008 + Autorizador
Validação "já liberada"Sim — bloqueia operação se OS já está ANão — permite operação pois o outro setor pode estar pendente
Visualização na VIEW_DOCUMENTOSBLOQUEADOSTodas as OS bloqueadas listadas sob MOF007MOF008 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).