NR_DIASBLOQLIB - Dias para Bloqueio após Liberação
Tela de configuração: ADM010 — Parâmetros do Sistema Localização: aba Bloqueio/Cadastro Pessoa Tabela:
PARMSISTEMA.NR_DIASBLOQLIBTipo:DOM_INTEGER— valor padrão0
Descrição
Define o número de dias, contados a partir da data de liberação da pessoa (DT_LIBERACAO), que o sistema aguarda antes de aplicar o bloqueio por inatividade. Funciona como um período de carência após a liberação: mesmo que a pessoa esteja inativa há mais dias do que o definido em NR_DIASBLOQUEIO, ela só será bloqueada se o período de carência também tiver expirado.
Telas impactadas
| Tela | Contexto |
|---|---|
| ADM010 — Parâmetros do Sistema | Campo editável na aba Bloqueio/Cadastro Pessoa |
Campos envolvidos
| Campo | Tabela | Tipo | Descrição |
|---|---|---|---|
NR_DIASBLOQLIB | PARMSISTEMA | INTEGER | Dias de carência após liberação |
DT_LIBERACAO | PESSOA | DATE | Data em que a pessoa foi liberada |
ST_ATIVA | PESSOA | CHAR(1) | Status ativo/inativo |
ST_BLOQUEADA | PESSOA | CHAR(1) | Status bloqueado |
ST_SCPC | PESSOA | CHAR(1) | Status SCPC |
Parâmetros relacionados
| Parâmetro | Configurado em | Descrição |
|---|---|---|
NR_DIASBLOQUEIO | ADM010 — aba Bloqueio/Cadastro Pessoa | Dias sem compra para considerar bloqueio |
ST_CADASTROPESSOA | ADM010 — aba Bloqueio/Cadastro Pessoa | Tipo de bloqueio: I (Inativar) ou S (SCPC) |
NR_DIASABLOQUEAR | ADM010 — aba Bloqueio/Cadastro Pessoa | Dias após liberação para bloqueio automático (fluxo independente) |
TP_BLOQUEIO | ADM010 — aba Bloqueio/Cadastro Pessoa | Tipo de bloqueio para o fluxo de NR_DIASABLOQUEAR |
Opções disponíveis
Valor numérico inteiro (dias)
| O que faz | Detalhe |
|---|---|
| Período de carência após liberação | Valor inteiro ≥ 0. Define quantos dias após DT_LIBERACAO a pessoa pode permanecer ativa antes de ser bloqueada por inatividade. |
| Obrigatório | Sim — ao salvar, o sistema exige que o campo esteja preenchido. |
| Editável | Sim — campo de edição livre. |
| Padrão | 0 (sem carência — bloqueio imediato após inatividade detectada) |
Simulação passo a passo
- Acesse ADM010 — Parâmetros do Sistema.
- Vá para a aba Bloqueio/Cadastro Pessoa.
- Certifique-se de que
NR_DIASBLOQUEIOesteja configurado (ex.:180dias). - No campo ao lado, digite o valor desejado para Bloqueio de Pessoas por Período (ex.:
30). - Salve os parâmetros.
Exemplo com valores concretos:
NR_DIASBLOQUEIO = 180(pessoa sem compra há 180 dias entra na verificação)NR_DIASBLOQLIB = 30(carência de 30 dias após a liberação)- Pessoa João Silva foi liberada em
01/03/2025(DT_LIBERACAO) e não compra há 200 dias. - A procedure
VERIFICA_BLOQUEIOPESSOAdetecta que João está sem compra há mais de 180 dias. - Então verifica se a data atual é maior que
01/03/2025 + 30 dias = 31/03/2025. - Se a data atual for
15/04/2025(após 31/03), João será bloqueado. - Se a data atual for
20/03/2025(antes de 31/03), João não será bloqueado — ainda está no período de carência.
Resultado esperado: Após a execução de VERIFICA_BLOQUEIOPESSOA, pessoas que estão há mais dias sem compra do que NR_DIASBLOQUEIO e cujo período de carência (DT_LIBERACAO + NR_DIASBLOQLIB) já expirou terão seu status alterado conforme ST_CADASTROPESSOA:
ST_CADASTROPESSOA = 'I'→ST_ATIVA = 'N'(pessoa inativada)ST_CADASTROPESSOA = 'S'→ST_BLOQUEADA = 'S'eST_SCPC = 'S'(pessoa bloqueada e marcada no SCPC)
Exceção / Importante:
- O consumidor final (configurado em
PARMFATUR.CD_CONSUMIDOR) é ignorado pela procedure e nunca será bloqueado.- Se
NR_DIASBLOQUEIOfor0ouNULL, todo o fluxo de bloqueio por inatividade é desativado —NR_DIASBLOQLIBnão terá efeito.NR_DIASBLOQLIBcom valor0significa que a carência é zero: a pessoa será bloqueada assim que a inatividade for detectada, sem período de tolerância após a liberação.
Regra Geral
O parâmetro atua como um filtro duplo no bloqueio por inatividade:
1.º filtro → DT_ULTIMACOMPRA < CURRENT_DATE - NR_DIASBLOQUEIO (sem compra há N dias)
2.º filtro → CURRENT_DATE > DT_LIBERACAO + NR_DIASBLOQLIB (carência após liberação expirada)
A pessoa só é bloqueada quando ambas as condições forem verdadeiras simultaneamente.
Procedures impactadas
Rotinas Delphi com referência direta
| Rotina | Arquivo | Descrição |
|---|---|---|
TdmADM010.tabPARMSISTEMABeforePost | source/ADM010/UdmADM010.pas | Validação obrigatória ao salvar: se vazio, exibe erro "Informe o numero de dias que é possível esperar para fazer a nota fiscal desde a liberação" e foca o campo na aba Bloqueio/Cadastro Pessoa. |
Referências SQL diretas ao campo
| Procedure | Arquivo | Descrição |
|---|---|---|
VERIFICA_BLOQUEIOPESSOA | Scripts/VERIFICA_BLOQUEIOPESSOA.sql | Utiliza COALESCE(P.NR_DIASBLOQLIB, 0) para calcular o período de carência após DT_LIBERACAO. Aplica-se tanto ao fluxo de inativação (ST_CADASTROPESSOA = 'I') quanto ao fluxo SCPC (ST_CADASTROPESSOA = 'S'). |