ST_DEMONSTRAMOTIVOBLOQUEIO - Exibe Motivo de Bloqueio de Pedidos/Notas
Tela: MFA001 - Parâmetros de Faturamento Localização: Parâmetros → Ambos → Opção 2 (rótulo no formulário: Exibe motivo de bloqueio de Pedidos/Notas) Tabela:
PARMFATUR.ST_DEMONSTRAMOTIVOBLOQUEIOTipo: Char(1) —DOM_CHAR1no DDL;TDBCheckBoxno formulário Valor padrão:S(marcado)
Telas impactadas
| Módulo | Código | Papel |
|---|---|---|
| Parâmetros de Faturamento | MFA001 | Produtora — cadastra/edita o checkbox na aba Opção 2 |
| Pedido de Venda | MPD002 | Consumidora indireta — invoca VERIFICA_BLOQUEIO que repassa o parâmetro a RETORNA_MOTIVOBLOQUEIO |
| Ordem de Serviço | MFA005 / variantes | Consumidora indireta — mesmo fluxo via VERIFICA_BLOQUEIO |
Procedures impactadas
Rotinas Delphi
| Rotina | Arquivo | Evidência |
|---|---|---|
TdmMFA001.tabPARMFATURAfterInsert | source/MFA001/UdmMFA001.pas:594 | Atribui 'S' como valor padrão ao abrir novo registro |
Procedures SQL com referência direta ao campo
| Procedure | Arquivo | Evidência |
|---|---|---|
RETORNA_MOTIVOBLOQUEIO | Scripts/RETORNA_MOTIVOBLOQUEIO.sql | Parâmetro de entrada I_ST_DEMONSTRAMOTIVOBLOQUEIO; controla se a mensagem de motivo é detalhada (S) ou resumida (N) |
VERIFICA_BLOQUEIO | Scripts/VERIFICA_BLOQUEIO.sql | Lê o campo de PARMFATUR e o repassa a RETORNA_MOTIVOBLOQUEIO. Pode ser sobrescrito se I_DEMONSTRA_MOTIVO = 'S' |
Campos envolvidos
| Campo | Tabela | Descrição |
|---|---|---|
ST_DEMONSTRAMOTIVOBLOQUEIO | PARMFATUR | Controla o nível de detalhe da mensagem de motivo de bloqueio exibida ao usuário |
ST_SEPARABLOQUEIOPED | PARMFATUR | Quando 'S', separa o bloqueio por setor (Financeiro/Comercial) — influencia a mensagem quando o motivo é resumido |
TP_BLOQUEIO | PEDIDO / ORDEMSERVICO / PEDIDOPNEU | Armazena o tipo de bloqueio atribuído (F = Financeiro, C = Comercial, A = Ambos) |
Comportamento / Regra de aplicação
O parâmetro controla o nível de detalhe da mensagem de motivo de bloqueio exibida ao usuário quando um Pedido, Nota Fiscal ou Ordem de Serviço é bloqueado. A lógica está concentrada em duas procedures:
VERIFICA_BLOQUEIO(Scripts/VERIFICA_BLOQUEIO.sql) — detecta os bloqueios e chamaRETORNA_MOTIVOBLOQUEIOpassando o parâmetro.RETORNA_MOTIVOBLOQUEIO(Scripts/RETORNA_MOTIVOBLOQUEIO.sql) — monta a mensagem de motivo conforme o valor do parâmetro.
Override: Em
VERIFICA_BLOQUEIO(linha 155-156), se o parâmetro de entradaI_DEMONSTRA_MOTIVO = 'S', o valor deV_ST_DEMONSTRAMOTIVOBLOQUEIOé forçado para'S', independentemente do que estiver cadastrado naPARMFATUR. Isso permite que contextos específicos sempre exibam o motivo detalhado.
Opções disponíveis
S - Motivo Detalhado (padrão)
| O que faz | Detalhe |
|---|---|
| Exibe a lista completa de motivos de bloqueio | Cada motivo é descrito individualmente na mensagem |
| Editável | Pode ser desmarcado pelo usuário |
| Comportamento | Todos os códigos de bloqueio detectados são traduzidos em texto descritivo |
Simulação passo a passo
- Acesse Parâmetros → Faturamento (MFA001).
- Certifique-se de que o checkbox "Exibe motivo de bloqueio de Pedidos/Notas" esteja marcado (valor
S). - Abra um Pedido de Venda com cliente que possua duplicatas em atraso e tente salvar.
- Observe a mensagem de bloqueio listando cada motivo individualmente, por exemplo:
- "Duplicatas em Atraso."
- "Ultrapassou Limite de Crédito."
- "Valor Unitário abaixo da Tabela de Preço."
Resultado esperado: A mensagem de bloqueio apresenta cada motivo individualmente, com texto descritivo para cada código detectado (financeiro: "Duplicatas em Atraso", "Ultrapassou Limite de Crédito", etc.; comercial: "Valor Unitário abaixo da Tabela de Preço", "Desconto está acima do Máximo Permitido", etc.).
Exceção / Importante: Quando
ST_SEPARABLOQUEIOPED(configurado em MFA001 — Parâmetros de Faturamento) está'S', o sistema classifica o bloqueio como Financeiro (F), Comercial (C) ou Ambos (A) e grava essa classificação no campoTP_BLOQUEIOdo documento. Os motivos detalhados continuam sendo exibidos normalmente.
N - Motivo Resumido
| O que faz | Detalhe |
|---|---|
| Exibe mensagem genérica de bloqueio | Apenas "Condição de Pagamento não liberada" e "Forma de Pagamento não liberada" permanecem explícitos (códigos G e A) |
| Editável | Pode ser marcado pelo usuário |
Combina com ST_SEPARABLOQUEIOPED = 'S' | Adiciona "Documento enviado para análise do Setor Financeiro/Comercial" conforme o caso |
Simulação passo a passo
- Acesse Parâmetros → Faturamento (MFA001).
- Desmarque o checkbox "Exibe motivo de bloqueio de Pedidos/Notas" (valor
N). - Salve os parâmetros.
- Abra um Pedido de Venda para um cliente com duplicatas em atraso e valor unitário abaixo da tabela de preço.
- Tente salvar o pedido.
- Observe que a mensagem de bloqueio mostra apenas texto genérico:
- "Atenção! O Pedido de Venda Nº.: 123 será Bloqueado."
- "Venda Bloqueada para Análise."
Resultado esperado: A mensagem de bloqueio não detalha os motivos específicos. Exibe apenas o cabeçalho informando que o documento será bloqueado e, conforme o caso, a indicação genérica "Venda Bloqueada para Análise." ou "Documento enviado para análise do Setor Financeiro/Comercial."
Exceção / Importante: Quando
ST_SEPARABLOQUEIOPED(configurado em MFA001 — Parâmetros de Faturamento) está'S', a mensagem resumida inclui "Documento enviado para análise do Setor Financeiro." (para bloqueios financeiros) ou "Documento enviado para análise do Setor Comercial." (para bloqueios comerciais). Quando ambos os setores estão envolvidos, ambas as mensagens são adicionadas. Os motivos de Condição de Pagamento (G) e Forma de Pagamento (A) são sempre exibidos, mesmo no modo resumido.
Tabela Comparativa Resumida
| Valor | Descrição | Mensagem exibida ao usuário |
|---|---|---|
S (padrão) | Motivo detalhado | Lista completa e individualizada de cada motivo de bloqueio (financeiro e comercial) |
N | Motivo resumido | Apenas cabeçalho + "Venda Bloqueada para Análise." (e indicação de setor, se ST_SEPARABLOQUEIOPED = 'S'). Exceção: motivos de Condição e Forma de Pagamento continuam explícitos |