Pular para o conteúdo principal

TP_BLOQSUBGRUPO - Tipo de Bloqueio por Subgrupo

Tela de configuração: MFA001 - Parâmetros de Faturamento Localização: Parâmetros → Ambos → Opção 3 → "Tipo Bloqueio" Tabela: PARMFATUR.TP_BLOQSUBGRUPO (CHAR(1), NOT NULL, padrão C) Controle: Combobox cmbTP_BLOQSUBGRUPO

Telas impactadas​

TelaContexto
MFA001Configuração do parâmetro (Opção 3)
MPD003Liberação de bloqueio comercial (TP_BLOQUEIO = 'C')
MPD081Liberação de bloqueio financeiro (TP_BLOQUEIO = 'F')

Campos envolvidos​

CampoTabelaPapel
TP_BLOQSUBGRUPOPARMFATURParâmetro principal
ST_SEPARABLOQUEIOPEDPARMFATURPré-requisito obrigatório (S)
TP_BLOQUEIOPEDIDORecebe o valor de TP_BLOQSUBGRUPO quando o bloqueio por subgrupo é ativado
CD_SUBGRUPOSUBGRUPOPARMFATURSubgrupos configurados para bloqueio

Dependência obrigatória​

O combo cmbTP_BLOQSUBGRUPO só é editável quando ST_SEPARABLOQUEIOPED = 'S'. Caso contrário, o campo é forçado para C e o combo fica desabilitado.

  • ST_SEPARABLOQUEIOPED (configurado em MFA001 — Parâmetros de Faturamento, Ambos → Opção 1).

Opções disponíveis​

C - Comercial (MPD003)​

O que fazDetalhe
Define o tipo de bloqueio como ComercialPedidos com itens pertencentes a subgrupos configurados em SUBGRUPOPARMFATUR recebem TP_BLOQUEIO = 'C'
Tela de liberaçãoMPD003 (Pedidos)
EditávelSomente quando ST_SEPARABLOQUEIOPED = 'S'

Simulação passo a passo​

  1. Acesse MFA001 → Parâmetros → Ambos → Opção 1.
  2. Configure ST_SEPARABLOQUEIOPED = "Sim" e salve.
  3. Navegue até a Opção 3 — o combo "Tipo Bloqueio" estará habilitado.
  4. Selecione "Comercial - MPD003" e salve.
  5. Cadastre subgrupos bloqueados na tabela SUBGRUPOPARMFATUR.
  6. No faturamento, ao gravar um pedido que contenha itens de um subgrupo bloqueado, o pedido será bloqueado com tipo Comercial.
  7. Acesse MPD003 para liberar o pedido.

Resultado esperado: Pedidos com itens de subgrupos controlados são bloqueados com TP_BLOQUEIO = 'C' e só podem ser liberados pela tela MPD003.


F - Financeiro (MPD081)​

O que fazDetalhe
Define o tipo de bloqueio como FinanceiroPedidos com itens pertencentes a subgrupos configurados em SUBGRUPOPARMFATUR recebem TP_BLOQUEIO = 'F'
Tela de liberaçãoMPD081 (Financeiro)
EditávelSomente quando ST_SEPARABLOQUEIOPED = 'S'

Simulação passo a passo​

  1. Acesse MFA001 → Parâmetros → Ambos → Opção 1.
  2. Configure ST_SEPARABLOQUEIOPED = "Sim" e salve.
  3. Navegue até a Opção 3 — o combo "Tipo Bloqueio" estará habilitado.
  4. Selecione "Financeiro - MPD081" e salve.
  5. Cadastre subgrupos bloqueados na tabela SUBGRUPOPARMFATUR.
  6. No faturamento, ao gravar um pedido que contenha itens de um subgrupo bloqueado, o pedido será bloqueado com tipo Financeiro.
  7. Acesse MPD081 para liberar o pedido.

Resultado esperado: Pedidos com itens de subgrupos controlados são bloqueados com TP_BLOQUEIO = 'F' e só podem ser liberados pela tela MPD081.

Exceção / Importante: Quando ST_SEPARABLOQUEIOPED = 'N', o OnValidate de ST_SEPARABLOQUEIOPED força automaticamente TP_BLOQSUBGRUPO = 'C' e desabilita o combo, independentemente do valor previamente gravado. Isso ocorre porque a procedure VERIFICA_BLOQUEIOSUBGRUPO só é chamada por VERIFICA_BLOQUEIO quando ST_SEPARABLOQUEIOPED = 'S'.

Regra geral​

CondiçãoComportamento do comboValor gravado
ST_SEPARABLOQUEIOPED = 'N'Desabilitado, não editávelC (forçado pelo OnValidate)
ST_SEPARABLOQUEIOPED = 'S'Habilitado, editávelValor selecionado pelo usuário (C ou F)

A procedure VERIFICA_BLOQUEIOSUBGRUPO converte o valor de TP_BLOQSUBGRUPO em códigos internos de motivo de bloqueio:

TP_BLOQSUBGRUPOCódigo interno retornado (O_TP_BLOQUEIO)Natureza
F'8'Financeiro
C'9'Comercial

Além disso, ao detectar bloqueio, o PEDIDO.TP_BLOQUEIO é atualizado diretamente com o valor de TP_BLOQSUBGRUPO (C ou F).

Procedures impactadas​

Rotinas Delphi​

RotinaArquivoLinhaEvidência
iniciarsource/MFA001/UMFA001.pas927Habilita/desabilita o combo conforme ST_SEPARABLOQUEIOPED
tabPARMFATURAfterInsertsource/MFA001/UdmMFA001.pas593Atribui valor padrão 'C'
tabPARMFATURST_SEPARABLOQUEIOPEDValidatesource/MFA001/UdmMFA001.pas2122–2134Habilita combo quando S; desabilita e força 'C' quando N

Referências SQL diretas ao campo​

ProcedureArquivoLinhaEvidência
VERIFICA_BLOQUEIOScripts/VERIFICA_BLOQUEIO.sql99, 145, 151, 177Declara variável, lê de PARMFATUR, repassa para VERIFICA_BLOQUEIOSUBGRUPO
VERIFICA_BLOQUEIOSUBGRUPOScripts/VERIFICA_BLOQUEIOSUBGRUPO.sql10, 53–56, 67Recebe como parâmetro de entrada, define código de bloqueio (8/9) e grava PEDIDO.TP_BLOQUEIO

Candidatas por uso da tabela​

As procedures abaixo referenciam a tabela PARMFATUR, mas não citam TP_BLOQSUBGRUPO diretamente: ATUALIZA_PESSOA, ATUALIZA_PRECOVENDA, BUSCAPRECORECAP, CALCULA_CENTRORESULT, CALCULA_CENTRORESULTITEM, CALCULA_COMISSAO, CALCULA_COMISSAO_V2, CALCULA_JUROVENDA, CALCULA_MAQUINA, CALCULA_MAQUINAFICHA, CANCELA_MESTRA, CANCELA_NOTAFISCAL, CONFIRMA_ORDEMSERVICO, CONFIRMA_ORDEMSERVICOMETAL, CONSOME_LOTEMATERIAPRIMA, CREDITOPERIODICO_AI0, CREDITOPERIODICOGRUPO_AI0, EXPORTACAO_ALLABOR, EXPORTACAO_DOMINIOCADASTROS, EXPORTACAO_DOMINIOCUPOM. Sem impacto direto identificado no código.