Pular para o conteúdo principal

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_DEMONSTRAMOTIVOBLOQUEIO Tipo: Char(1) — DOM_CHAR1 no DDL; TDBCheckBox no formulário Valor padrão: S (marcado)

Telas impactadas​

MóduloCódigoPapel
Parâmetros de FaturamentoMFA001Produtora — cadastra/edita o checkbox na aba Opção 2
Pedido de VendaMPD002Consumidora indireta — invoca VERIFICA_BLOQUEIO que repassa o parâmetro a RETORNA_MOTIVOBLOQUEIO
Ordem de ServiçoMFA005 / variantesConsumidora indireta — mesmo fluxo via VERIFICA_BLOQUEIO

Procedures impactadas​

Rotinas Delphi​

RotinaArquivoEvidência
TdmMFA001.tabPARMFATURAfterInsertsource/MFA001/UdmMFA001.pas:594Atribui 'S' como valor padrão ao abrir novo registro

Procedures SQL com referência direta ao campo​

ProcedureArquivoEvidência
RETORNA_MOTIVOBLOQUEIOScripts/RETORNA_MOTIVOBLOQUEIO.sqlParâmetro de entrada I_ST_DEMONSTRAMOTIVOBLOQUEIO; controla se a mensagem de motivo é detalhada (S) ou resumida (N)
VERIFICA_BLOQUEIOScripts/VERIFICA_BLOQUEIO.sqlLê o campo de PARMFATUR e o repassa a RETORNA_MOTIVOBLOQUEIO. Pode ser sobrescrito se I_DEMONSTRA_MOTIVO = 'S'

Campos envolvidos​

CampoTabelaDescrição
ST_DEMONSTRAMOTIVOBLOQUEIOPARMFATURControla o nível de detalhe da mensagem de motivo de bloqueio exibida ao usuário
ST_SEPARABLOQUEIOPEDPARMFATURQuando 'S', separa o bloqueio por setor (Financeiro/Comercial) — influencia a mensagem quando o motivo é resumido
TP_BLOQUEIOPEDIDO / ORDEMSERVICO / PEDIDOPNEUArmazena 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:

  1. VERIFICA_BLOQUEIO (Scripts/VERIFICA_BLOQUEIO.sql) — detecta os bloqueios e chama RETORNA_MOTIVOBLOQUEIO passando o parâmetro.
  2. 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 entrada I_DEMONSTRA_MOTIVO = 'S', o valor de V_ST_DEMONSTRAMOTIVOBLOQUEIO é forçado para 'S', independentemente do que estiver cadastrado na PARMFATUR. Isso permite que contextos específicos sempre exibam o motivo detalhado.


Opções disponíveis​

S - Motivo Detalhado (padrão)​

O que fazDetalhe
Exibe a lista completa de motivos de bloqueioCada motivo é descrito individualmente na mensagem
EditávelPode ser desmarcado pelo usuário
ComportamentoTodos os códigos de bloqueio detectados são traduzidos em texto descritivo

Simulação passo a passo​

  1. Acesse Parâmetros → Faturamento (MFA001).
  2. Certifique-se de que o checkbox "Exibe motivo de bloqueio de Pedidos/Notas" esteja marcado (valor S).
  3. Abra um Pedido de Venda com cliente que possua duplicatas em atraso e tente salvar.
  4. 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 campo TP_BLOQUEIO do documento. Os motivos detalhados continuam sendo exibidos normalmente.


N - Motivo Resumido​

O que fazDetalhe
Exibe mensagem genérica de bloqueioApenas "Condição de Pagamento não liberada" e "Forma de Pagamento não liberada" permanecem explícitos (códigos G e A)
EditávelPode 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​

  1. Acesse Parâmetros → Faturamento (MFA001).
  2. Desmarque o checkbox "Exibe motivo de bloqueio de Pedidos/Notas" (valor N).
  3. Salve os parâmetros.
  4. Abra um Pedido de Venda para um cliente com duplicatas em atraso e valor unitário abaixo da tabela de preço.
  5. Tente salvar o pedido.
  6. 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​

ValorDescriçãoMensagem exibida ao usuário
S (padrão)Motivo detalhadoLista completa e individualizada de cada motivo de bloqueio (financeiro e comercial)
NMotivo resumidoApenas 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