Pular para o conteúdo principal

Parâmetro de Login de Autorização para Desbloqueio

Tela de configuração: MFA001 - Parâmetros de Faturamento Localização: Parâmetros → Ambos → Opção 1 Tabela: PARMFATUR.ST_LOGINBLOQUEIO Valor padrão: N (Não)

Telas impactadas​

MóduloCódigoDescrição
Pedido de VendaMPD002Pedidos de venda (uso direto do parâmetro)
Nota Fiscal SaídaMNF002Emissão de NF de saída (uso direto do parâmetro)
Pedido de Venda (Mobile/Simples)MPD020Pedido mobile (uso via variável local iST_LOGINBLOQUEIO)
Contas a ReceberMCO006Carrega o parâmetro do PARMFATUR (SELECT)
NF Entrada (Avulsa)MNF008Carrega o parâmetro do PARMFATUR (SELECT)
NF Saída (Outra)MNF017Carrega o parâmetro do PARMFATUR (SELECT)
Consulta PedidosCPD009Inclui o campo no SELECT/UPDATE do PARMFATUR
Cadastro AuxiliarRCA006Inclui o campo no SELECT/UPDATE do PARMFATUR

Campos envolvidos​

CampoDescrição
PARMFATUR.ST_LOGINBLOQUEIOFlag (S/N) que define o modo de tratamento quando VERIFICA_BLOQUEIO detecta motivo de bloqueio
PEDIDO.ST_PEDIDOStatus do pedido. Recebe 'B' (bloqueado) quando ST_LOGINBLOQUEIO = 'N' e há motivo de bloqueio
NOTA.ST_NOTAStatus da NF. Recebe 'B' (bloqueada) quando ST_LOGINBLOQUEIO = 'N' e há motivo de bloqueio
PEDIDO.DS_BLOQUEIO / NOTA.DS_BLOQUEIODescrição do motivo de bloqueio retornado por VERIFICA_BLOQUEIO
NOTA.CD_AUTORIZADORCódigo do usuário autorizador que liberou o bloqueio via tela de login (apenas no MNF002)

Opções disponíveis​

S - Sim (Solicita Login do Autorizador)​

O que fazDetalhe
Ao detectar bloqueio (VERIFICA_BLOQUEIO retorna DS_BLOQUEIO)Abre a janela TfrmAUTORIZACAO solicitando login e senha
Usuário autorizador informa credenciais válidasDocumento é salvo normalmente (sem status 'B')
Usuário cancela a janelaRaise JException('W-0000', ['Confirmação Cancelada!']) — salvamento é abortado
Status do documentoPermanece como estava (não muda para 'B')
Campo DS_BLOQUEIO (MNF002)É gravado no registro, junto com CD_AUTORIZADOR que liberou
Mensagem de sucesso"Pedido/Nota Nº.: XXXX Salvo(a) com Sucesso."

Simulação passo a passo​

  1. Vá em MFA001 → Parâmetros → Ambos → Opção 1 → ST_LOGINBLOQUEIO = "Sim"
  2. Salve os parâmetros (F6)
  3. Configure um motivo de bloqueio no sistema (ex: cliente com limite de crédito estourado, ou protocolo/licença vencido)
  4. Abra o Pedido de Venda (MPD002) ou Nota Fiscal (MNF002)
  5. Adicione um produto e preencha os dados obrigatórios
  6. Pressione Salvar (F6) → VERIFICA_BLOQUEIO retorna motivo de bloqueio
  7. Sistema abre a janela TfrmAUTORIZACAO solicitando login e senha do autorizador
  8. Informe credenciais válidas de usuário autorizador → Pedido/NF salva normalmente, sem status bloqueado
  9. Clique em Cancelar na janela de autorização → Raise: "Confirmação Cancelada!" (salvamento abortado)

Resultado esperado: Quando há motivo de bloqueio, o sistema exige autorização em tempo real via login/senha do autorizador. O documento só é salvo (liberado) se a autorização for fornecida. Caso contrário, o salvamento é cancelado e o usuário precisa resolver o motivo do bloqueio.


N - Não (Bloqueia o Documento)​

O que fazDetalhe
Ao detectar bloqueio (VERIFICA_BLOQUEIO retorna DS_BLOQUEIO)Não solicita autorização em tela
Status do documentoRecebe 'B' (bloqueado) automaticamente
Campo DS_BLOQUEIOGravado com o motivo retornado por VERIFICA_BLOQUEIO
Mensagem exibidaTexto do motivo de bloqueio (iDS_MOTIVO)
Impressão (MNF002)iSt_Imprime := 'N' — não imprime a NF bloqueada
Liberação posteriorDeve ser feita manualmente por outra tela (ex: consulta/liberação de pedidos bloqueados)

Simulação passo a passo​

  1. MFA001 → ST_LOGINBLOQUEIO = "Não"
  2. Salve os parâmetros (F6)
  3. Configure um motivo de bloqueio no sistema (ex: limite de crédito do cliente estourado)
  4. Abra o Pedido de Venda (MPD002) ou Nota Fiscal (MNF002)
  5. Adicione um produto e preencha os dados obrigatórios
  6. Pressione Salvar (F6) → VERIFICA_BLOQUEIO retorna motivo de bloqueio
  7. Sistema NÃO abre a janela de autorização
  8. O pedido é gravado com ST_PEDIDO = 'B' (ou NF com ST_NOTA = 'B')
  9. Campo DS_BLOQUEIO recebe o motivo detectado
  10. Mensagem exibida mostra o motivo do bloqueio (sem permitir liberação)
  11. No caso da NF (MNF002): a impressão é suprimida (iSt_Imprime := 'N')

Resultado esperado: O documento é salvo direto no status bloqueado, sem oportunidade de liberação em tela. A liberação passa a depender de um fluxo posterior (autorização em outra tela ou ajuste do motivo de bloqueio).

Este é o valor padrão ao criar um novo registro no MFA001.


Observação Importante: Procedure VERIFICA_BLOQUEIO​

O parâmetro ST_LOGINBLOQUEIO não é lido diretamente por nenhuma stored procedure. Ele controla apenas o comportamento de UI quando a procedure VERIFICA_BLOQUEIO (chamada em MPD002, MNF002 e MPD020) retorna um motivo de bloqueio.

A procedure VERIFICA_BLOQUEIO retorna três campos:

CampoSignificado
O_DS_MOTIVOMotivo do bloqueio (mensagem curta)
O_DS_BLOQUEIODescrição detalhada do bloqueio
O_TP_BLOQUEIOTipo: 'E' (Erro — impede salvamento imediatamente) ou outro (passa para o fluxo de ST_LOGINBLOQUEIO)
  • Se O_TP_BLOQUEIO = 'E': sempre gera JException('W-0000'), independente do valor de ST_LOGINBLOQUEIO.
  • Se O_TP_BLOQUEIO <> 'E' e há DS_BLOQUEIO: entra no fluxo controlado por ST_LOGINBLOQUEIO (S → janela de autorização; N → bloqueio automático).

Fluxos Adicionais Cobertos pelo Parâmetro (MPD002 / MNF002)​

Além do bloqueio retornado por VERIFICA_BLOQUEIO, o parâmetro também é consultado em outras situações específicas:

CenárioMóduloLinhasComportamento quando = 'S'
Bloqueio por Análise Interna (representante com DISTRIBUIDOR.ST_BLOQUEIAPEDIDO = 'S')MPD0023160-3193Mostra autorização; salva normalmente se liberado
Bloqueio por Produtos Controlados (autorização v_DsAutorizacao)MNF0023706-3731Mostra autorização; libera após credenciais
Licença/Protocolo do cliente vencidos (v_bloqueaiAutorizacao)MPD0023195-3209Mostra autorização; libera após credenciais
Bloqueio antes do faturamento da NF (item controlado TPO009)MNF0023647-3693Mostra autorização; salva com CD_AUTORIZADOR

Em todos estes cenários, a opção 'N' grava o documento com ST_PEDIDO = 'B' / ST_NOTA = 'B' e registra o motivo em DS_BLOQUEIO.


Tabela Comparativa Resumida​

OpçãoDescriçãoAbre janela de autorização?Status do documento se há bloqueioSalva normalmente?Imprime NF (MNF002)?
SSim (Login do Autorizador)SimOriginal (liberado se autorizado)Sim (após autorização)Sim
NNãoNão'B' (Bloqueado)Não (grava bloqueado)Não