Pular para o conteúdo principal

NR_DIASBLOQUEIO - Dias para Bloqueio de Pessoas por Inatividade

Tela de configuração: ADM010 — Parâmetros do Sistema Localização: Aba Bloqueio/Cadastro Pessoa Tabela: PARMSISTEMA.NR_DIASBLOQUEIO Tipo: INTEGER Valor padrão: null (nenhum bloqueio automático)

Descrição​

Define o número de dias de inatividade (sem compras) após os quais o sistema bloqueia automaticamente pessoas do tipo Cliente (C) ou Ambos (A). O bloqueio é executado pela procedure VERIFICA_BLOQUEIOPESSOA, que verifica todas as pessoas ativas e compara a data da última compra com o número de dias configurado.

Campos envolvidos​

CampoTabelaTipoDescrição
NR_DIASBLOQUEIOPARMSISTEMAINTEGERQuantidade de dias sem compra para bloquear
ST_ATIVAPESSOACHAR(1)Status de ativação da pessoa (S/N)
ST_BLOQUEADAPESSOACHAR(1)Status de bloqueio da pessoa (S/N)
ST_SCPCPESSOACHAR(1)Indicador SCPC da pessoa (S/N)
DT_LIBERACAOPESSOADATEData em que a pessoa foi liberada

Parâmetros relacionados​

ParâmetroDescriçãoConfigurado em
ST_CADASTROPESSOATipo de bloqueio aplicado: I (Inativo) ou S (SCPC)ADM010 — aba Bloqueio/Cadastro Pessoa
NR_DIASBLOQLIBDias de carência após a data de liberação antes de novo bloqueioADM010 — aba Bloqueio/Cadastro Pessoa
NR_DIASABLOQUEARDias após a data de liberação para bloqueio automáticoADM010 — aba Bloqueio/Cadastro Pessoa
TP_BLOQUEIOTipo de bloqueio por período de liberação: I (Inativo) ou S (SCPC)ADM010 — aba Bloqueio/Cadastro Pessoa

Telas impactadas​

TelaImpacto
ADM010Onde o parâmetro é configurado
Tela de Cadastro de PessoasPessoas podem ser inativadas ou bloqueadas automaticamente

Comportamento​

Quando NR_DIASBLOQUEIO > 0​

A procedure VERIFICA_BLOQUEIOPESSOA é executada e percorre todas as pessoas do tipo Cliente (C) ou Ambos (A) que estejam ativas. Para cada pessoa (exceto o consumidor final), o sistema verifica:

  1. Data da última compra — obtida pela maior DT_EMISSAO das notas de venda válidas (ST_NOTA = 'V' e TP_NOTA = 'S').
  2. Se a pessoa nunca comprou — utiliza a DT_REGISTRO do cadastro como referência.
  3. Se a data da última compra é anterior a CURRENT_DATE - NR_DIASBLOQUEIO — a pessoa é candidata a bloqueio.
  4. Verificação de liberação — se CURRENT_DATE > DT_LIBERACAO + NR_DIASBLOQLIB, o bloqueio é aplicado.

O tipo de bloqueio depende de ST_CADASTROPESSOA:

ST_CADASTROPESSOAAção aplicada
I (Inativo)PESSOA.ST_ATIVA é alterado para N — pessoa fica inativa
S (deixar SCPC)PESSOA.ST_SCPC e PESSOA.ST_BLOQUEADA são alterados para S — pessoa fica bloqueada e marcada no SCPC

Quando NR_DIASBLOQUEIO = 0 ou null​

Nenhum bloqueio por inatividade é realizado pela procedure. O sistema não percorre as pessoas para verificar tempo sem compra.

Opções disponíveis​

Valor inteiro positivo (ex: 180)​

O que fazDetalhe
Bloqueia pessoas sem compra há mais de N diasEditável livremente na aba Bloqueio/Cadastro Pessoa
Exige que ST_CADASTROPESSOA esteja configuradoSe ST_CADASTROPESSOA não estiver definido (I ou S), o comportamento pode ser indeterminado
Não afeta o consumidor finalO consumidor final cadastrado em PARMFATUR.CD_CONSUMIDOR é sempre ignorado

Simulação passo a passo​

  1. Acesse ADM010 — Parâmetros do Sistema.
  2. Navegue até a aba Bloqueio/Cadastro Pessoa.
  3. No campo "Bloqueio de Pessoas por Período", digite 180.
  4. No campo "Tipo de Bloqueio" (ST_CADASTROPESSOA), selecione Inativo (I) ou deixar SCPC (S).
  5. Configure também NR_DIASBLOQLIB com o número de dias de carência após liberação (ex: 30).
  6. Salve os parâmetros.
  7. Ao executar a procedure VERIFICA_BLOQUEIOPESSOA, o sistema verificará todos os clientes ativos.
  8. O cliente "João da Silva" cuja última compra foi há 200 dias será inativado (ST_ATIVA = 'N') ou bloqueado no SCPC (ST_BLOQUEADA = 'S' e ST_SCPC = 'S'), conforme o tipo selecionado.

Resultado esperado: Pessoas sem movimentação de compra há mais de 180 dias são automaticamente bloqueadas (inativadas ou marcadas como SCPC) na próxima execução da procedure de verificação.

Exceção / Importante:

  • Pessoas do tipo "Consumidor Final" (configurado em CD_CONSUMIDOR do PARMFATUR) nunca são bloqueadas por esta regra.
  • Se a pessoa possuir uma data de liberação (DT_LIBERACAO) recente e o período DT_LIBERACAO + NR_DIASBLOQLIB ainda não tiver expirado, o bloqueio não é aplicado.

Valor 0 ou vazio (sem bloqueio por inatividade)​

O que fazDetalhe
Desativa o bloqueio automático por inatividadeEditável livremente
Não impede bloqueios por outros parâmetrosNR_DIASABLOQUEAR continua funcional se configurado

Simulação passo a passo​

  1. Acesse ADM010 — Parâmetros do Sistema.
  2. Navegue até a aba Bloqueio/Cadastro Pessoa.
  3. No campo "Bloqueio de Pessoas por Período", deixe vazio ou digite 0.
  4. Salve os parâmetros.

Resultado esperado: Nenhum bloqueio automático por inatividade (tempo sem compra) será aplicado. Outros mecanismos de bloqueio (como NR_DIASABLOQUEAR) continuam operando normalmente se configurados.

Regra geral de funcionamento​

Se NR_DIASBLOQUEIO > 0:
Para cada Pessoa (Cliente ou Ambos, ativa, não-consumidor):
data_ref = data_da_última_compra OU data_de_cadastro (se nunca comprou)
Se data_ref < CURRENT_DATE - NR_DIASBLOQUEIO:
Se CURRENT_DATE > DT_LIBERACAO + NR_DIASBLOQLIB:
Se ST_CADASTROPESSOA = 'I': ST_ATIVA = 'N'
Se ST_CADASTROPESSOA = 'S': ST_BLOQUEADA = 'S' e ST_SCPC = 'S'

Procedures impactadas​

Referência direta ao campo​

ProcedureArquivoDescrição
VERIFICA_BLOQUEIOPESSOAScripts/VERIFICA_BLOQUEIOPESSOA.sqlProcedure principal que lê NR_DIASBLOQUEIO e aplica o bloqueio em pessoas inativas. Executa verificação de data da última compra e bloqueia/marca SCPC conforme configuração.

Candidatas por uso da tabela (sem referência direta ao campo)​

As procedures abaixo utilizam a tabela PARMSISTEMA mas não referenciam NR_DIASBLOQUEIO diretamente em seu código:

ARRUMA_MASCARACONTA, ATUALIZA_CONTACONTABIL, CALCULA_TEMPOPERMANENCIA, CONTABILIZA_CUPOMFISCAL, ENDERECOPESSOA_BI0, GERA_CONTACLIFOR, GERA_DARF, GERA_PLANOFILIAL, GERA_SPEDBLOCOL, GERA_SPEDCONTABIL, GERA_SPEDCONTABIL_0000, GERA_SPEDECF, GERA_SPEDECFBLOCOJ, GERA_SPEDECFBLOCOK155, GERA_SPEDECFBLOCOK355, GERA_SPEDECFBLOCOL210, GERA_SPEDECFBLOCOY, GRAVA_REGISTROSPED0500, IMPORTA_ARQUIVOMAGNETICO, INCLUI_IMPOSTONOTACTB.

Sem impacto funcional direto deste parâmetro nessas rotinas.