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_LOGINBLOQUEIOValor padrão:N(Não)
Telas impactadas
| Módulo | Código | Descrição |
|---|---|---|
| Pedido de Venda | MPD002 | Pedidos de venda (uso direto do parâmetro) |
| Nota Fiscal Saída | MNF002 | Emissão de NF de saída (uso direto do parâmetro) |
| Pedido de Venda (Mobile/Simples) | MPD020 | Pedido mobile (uso via variável local iST_LOGINBLOQUEIO) |
| Contas a Receber | MCO006 | Carrega o parâmetro do PARMFATUR (SELECT) |
| NF Entrada (Avulsa) | MNF008 | Carrega o parâmetro do PARMFATUR (SELECT) |
| NF Saída (Outra) | MNF017 | Carrega o parâmetro do PARMFATUR (SELECT) |
| Consulta Pedidos | CPD009 | Inclui o campo no SELECT/UPDATE do PARMFATUR |
| Cadastro Auxiliar | RCA006 | Inclui o campo no SELECT/UPDATE do PARMFATUR |
Campos envolvidos
| Campo | Descrição |
|---|---|
PARMFATUR.ST_LOGINBLOQUEIO | Flag (S/N) que define o modo de tratamento quando VERIFICA_BLOQUEIO detecta motivo de bloqueio |
PEDIDO.ST_PEDIDO | Status do pedido. Recebe 'B' (bloqueado) quando ST_LOGINBLOQUEIO = 'N' e há motivo de bloqueio |
NOTA.ST_NOTA | Status da NF. Recebe 'B' (bloqueada) quando ST_LOGINBLOQUEIO = 'N' e há motivo de bloqueio |
PEDIDO.DS_BLOQUEIO / NOTA.DS_BLOQUEIO | Descrição do motivo de bloqueio retornado por VERIFICA_BLOQUEIO |
NOTA.CD_AUTORIZADOR | Có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 faz | Detalhe |
|---|---|
Ao detectar bloqueio (VERIFICA_BLOQUEIO retorna DS_BLOQUEIO) | Abre a janela TfrmAUTORIZACAO solicitando login e senha |
| Usuário autorizador informa credenciais válidas | Documento é salvo normalmente (sem status 'B') |
| Usuário cancela a janela | Raise JException('W-0000', ['Confirmação Cancelada!']) — salvamento é abortado |
| Status do documento | Permanece 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
- Vá em MFA001 → Parâmetros → Ambos → Opção 1 → ST_LOGINBLOQUEIO = "Sim"
- Salve os parâmetros (F6)
- Configure um motivo de bloqueio no sistema (ex: cliente com limite de crédito estourado, ou protocolo/licença vencido)
- Abra o Pedido de Venda (MPD002) ou Nota Fiscal (MNF002)
- Adicione um produto e preencha os dados obrigatórios
- Pressione Salvar (F6) →
VERIFICA_BLOQUEIOretorna motivo de bloqueio - Sistema abre a janela
TfrmAUTORIZACAOsolicitando login e senha do autorizador - Informe credenciais válidas de usuário autorizador → Pedido/NF salva normalmente, sem status bloqueado
- 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 faz | Detalhe |
|---|---|
Ao detectar bloqueio (VERIFICA_BLOQUEIO retorna DS_BLOQUEIO) | Não solicita autorização em tela |
| Status do documento | Recebe 'B' (bloqueado) automaticamente |
Campo DS_BLOQUEIO | Gravado com o motivo retornado por VERIFICA_BLOQUEIO |
| Mensagem exibida | Texto do motivo de bloqueio (iDS_MOTIVO) |
| Impressão (MNF002) | iSt_Imprime := 'N' — não imprime a NF bloqueada |
| Liberação posterior | Deve ser feita manualmente por outra tela (ex: consulta/liberação de pedidos bloqueados) |
Simulação passo a passo
- MFA001 → ST_LOGINBLOQUEIO = "Não"
- Salve os parâmetros (F6)
- Configure um motivo de bloqueio no sistema (ex: limite de crédito do cliente estourado)
- Abra o Pedido de Venda (MPD002) ou Nota Fiscal (MNF002)
- Adicione um produto e preencha os dados obrigatórios
- Pressione Salvar (F6) →
VERIFICA_BLOQUEIOretorna motivo de bloqueio - Sistema NÃO abre a janela de autorização
- O pedido é gravado com
ST_PEDIDO = 'B'(ou NF comST_NOTA = 'B') - Campo
DS_BLOQUEIOrecebe o motivo detectado - Mensagem exibida mostra o motivo do bloqueio (sem permitir liberação)
- 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:
| Campo | Significado |
|---|---|
O_DS_MOTIVO | Motivo do bloqueio (mensagem curta) |
O_DS_BLOQUEIO | Descrição detalhada do bloqueio |
O_TP_BLOQUEIO | Tipo: 'E' (Erro — impede salvamento imediatamente) ou outro (passa para o fluxo de ST_LOGINBLOQUEIO) |
- Se
O_TP_BLOQUEIO = 'E': sempre geraJException('W-0000'), independente do valor deST_LOGINBLOQUEIO. - Se
O_TP_BLOQUEIO <> 'E'e háDS_BLOQUEIO: entra no fluxo controlado porST_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ário | Módulo | Linhas | Comportamento quando = 'S' |
|---|---|---|---|
Bloqueio por Análise Interna (representante com DISTRIBUIDOR.ST_BLOQUEIAPEDIDO = 'S') | MPD002 | 3160-3193 | Mostra autorização; salva normalmente se liberado |
Bloqueio por Produtos Controlados (autorização v_DsAutorizacao) | MNF002 | 3706-3731 | Mostra autorização; libera após credenciais |
Licença/Protocolo do cliente vencidos (v_bloqueaiAutorizacao) | MPD002 | 3195-3209 | Mostra autorização; libera após credenciais |
Bloqueio antes do faturamento da NF (item controlado TPO009) | MNF002 | 3647-3693 | Mostra 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ção | Descrição | Abre janela de autorização? | Status do documento se há bloqueio | Salva normalmente? | Imprime NF (MNF002)? |
|---|---|---|---|---|---|
| S | Sim (Login do Autorizador) | Sim | Original (liberado se autorizado) | Sim (após autorização) | Sim |
| N | Não | Não | 'B' (Bloqueado) | Não (grava bloqueado) | Não |