Pular para o conteúdo principal

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_DIASBLOQLIB Tipo: DOM_INTEGER — valor padrão 0

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​

TelaContexto
ADM010 — Parâmetros do SistemaCampo editável na aba Bloqueio/Cadastro Pessoa

Campos envolvidos​

CampoTabelaTipoDescrição
NR_DIASBLOQLIBPARMSISTEMAINTEGERDias de carência após liberação
DT_LIBERACAOPESSOADATEData em que a pessoa foi liberada
ST_ATIVAPESSOACHAR(1)Status ativo/inativo
ST_BLOQUEADAPESSOACHAR(1)Status bloqueado
ST_SCPCPESSOACHAR(1)Status SCPC

Parâmetros relacionados​

ParâmetroConfigurado emDescrição
NR_DIASBLOQUEIOADM010 — aba Bloqueio/Cadastro PessoaDias sem compra para considerar bloqueio
ST_CADASTROPESSOAADM010 — aba Bloqueio/Cadastro PessoaTipo de bloqueio: I (Inativar) ou S (SCPC)
NR_DIASABLOQUEARADM010 — aba Bloqueio/Cadastro PessoaDias após liberação para bloqueio automático (fluxo independente)
TP_BLOQUEIOADM010 — aba Bloqueio/Cadastro PessoaTipo de bloqueio para o fluxo de NR_DIASABLOQUEAR

Opções disponíveis​

Valor numérico inteiro (dias)​

O que fazDetalhe
Período de carência após liberaçãoValor inteiro ≥ 0. Define quantos dias após DT_LIBERACAO a pessoa pode permanecer ativa antes de ser bloqueada por inatividade.
ObrigatórioSim — ao salvar, o sistema exige que o campo esteja preenchido.
EditávelSim — campo de edição livre.
Padrão0 (sem carência — bloqueio imediato após inatividade detectada)

Simulação passo a passo​

  1. Acesse ADM010 — Parâmetros do Sistema.
  2. Vá para a aba Bloqueio/Cadastro Pessoa.
  3. Certifique-se de que NR_DIASBLOQUEIO esteja configurado (ex.: 180 dias).
  4. No campo ao lado, digite o valor desejado para Bloqueio de Pessoas por Período (ex.: 30).
  5. 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_BLOQUEIOPESSOA detecta 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' e ST_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_DIASBLOQUEIO for 0 ou NULL, todo o fluxo de bloqueio por inatividade é desativado — NR_DIASBLOQLIB não terá efeito.
  • NR_DIASBLOQLIB com valor 0 significa 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​

RotinaArquivoDescrição
TdmADM010.tabPARMSISTEMABeforePostsource/ADM010/UdmADM010.pasValidaçã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​

ProcedureArquivoDescrição
VERIFICA_BLOQUEIOPESSOAScripts/VERIFICA_BLOQUEIOPESSOA.sqlUtiliza 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').