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ãoC) Controle: ComboboxcmbTP_BLOQSUBGRUPO
Telas impactadas
| Tela | Contexto |
|---|---|
| MFA001 | Configuração do parâmetro (Opção 3) |
| MPD003 | Liberação de bloqueio comercial (TP_BLOQUEIO = 'C') |
| MPD081 | Liberação de bloqueio financeiro (TP_BLOQUEIO = 'F') |
Campos envolvidos
| Campo | Tabela | Papel |
|---|---|---|
TP_BLOQSUBGRUPO | PARMFATUR | Parâmetro principal |
ST_SEPARABLOQUEIOPED | PARMFATUR | Pré-requisito obrigatório (S) |
TP_BLOQUEIO | PEDIDO | Recebe o valor de TP_BLOQSUBGRUPO quando o bloqueio por subgrupo é ativado |
CD_SUBGRUPO | SUBGRUPOPARMFATUR | Subgrupos 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 faz | Detalhe |
|---|---|
| Define o tipo de bloqueio como Comercial | Pedidos com itens pertencentes a subgrupos configurados em SUBGRUPOPARMFATUR recebem TP_BLOQUEIO = 'C' |
| Tela de liberação | MPD003 (Pedidos) |
| Editável | Somente quando ST_SEPARABLOQUEIOPED = 'S' |
Simulação passo a passo
- Acesse MFA001 → Parâmetros → Ambos → Opção 1.
- Configure
ST_SEPARABLOQUEIOPED = "Sim"e salve. - Navegue até a Opção 3 — o combo "Tipo Bloqueio" estará habilitado.
- Selecione "Comercial - MPD003" e salve.
- Cadastre subgrupos bloqueados na tabela
SUBGRUPOPARMFATUR. - No faturamento, ao gravar um pedido que contenha itens de um subgrupo bloqueado, o pedido será bloqueado com tipo Comercial.
- 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 faz | Detalhe |
|---|---|
| Define o tipo de bloqueio como Financeiro | Pedidos com itens pertencentes a subgrupos configurados em SUBGRUPOPARMFATUR recebem TP_BLOQUEIO = 'F' |
| Tela de liberação | MPD081 (Financeiro) |
| Editável | Somente quando ST_SEPARABLOQUEIOPED = 'S' |
Simulação passo a passo
- Acesse MFA001 → Parâmetros → Ambos → Opção 1.
- Configure
ST_SEPARABLOQUEIOPED = "Sim"e salve. - Navegue até a Opção 3 — o combo "Tipo Bloqueio" estará habilitado.
- Selecione "Financeiro - MPD081" e salve.
- Cadastre subgrupos bloqueados na tabela
SUBGRUPOPARMFATUR. - No faturamento, ao gravar um pedido que contenha itens de um subgrupo bloqueado, o pedido será bloqueado com tipo Financeiro.
- 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 deST_SEPARABLOQUEIOPEDforça automaticamenteTP_BLOQSUBGRUPO = 'C'e desabilita o combo, independentemente do valor previamente gravado. Isso ocorre porque a procedureVERIFICA_BLOQUEIOSUBGRUPOsó é chamada porVERIFICA_BLOQUEIOquandoST_SEPARABLOQUEIOPED = 'S'.
Regra geral
| Condição | Comportamento do combo | Valor gravado |
|---|---|---|
ST_SEPARABLOQUEIOPED = 'N' | Desabilitado, não editável | C (forçado pelo OnValidate) |
ST_SEPARABLOQUEIOPED = 'S' | Habilitado, editável | Valor 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_BLOQSUBGRUPO | Có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
| Rotina | Arquivo | Linha | Evidência |
|---|---|---|---|
iniciar | source/MFA001/UMFA001.pas | 927 | Habilita/desabilita o combo conforme ST_SEPARABLOQUEIOPED |
tabPARMFATURAfterInsert | source/MFA001/UdmMFA001.pas | 593 | Atribui valor padrão 'C' |
tabPARMFATURST_SEPARABLOQUEIOPEDValidate | source/MFA001/UdmMFA001.pas | 2122–2134 | Habilita combo quando S; desabilita e força 'C' quando N |
Referências SQL diretas ao campo
| Procedure | Arquivo | Linha | Evidência |
|---|---|---|---|
VERIFICA_BLOQUEIO | Scripts/VERIFICA_BLOQUEIO.sql | 99, 145, 151, 177 | Declara variável, lê de PARMFATUR, repassa para VERIFICA_BLOQUEIOSUBGRUPO |
VERIFICA_BLOQUEIOSUBGRUPO | Scripts/VERIFICA_BLOQUEIOSUBGRUPO.sql | 10, 53–56, 67 | Recebe 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.