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_DIASBLOQUEIOTipo:INTEGERValor 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
| Campo | Tabela | Tipo | Descrição |
|---|---|---|---|
NR_DIASBLOQUEIO | PARMSISTEMA | INTEGER | Quantidade de dias sem compra para bloquear |
ST_ATIVA | PESSOA | CHAR(1) | Status de ativação da pessoa (S/N) |
ST_BLOQUEADA | PESSOA | CHAR(1) | Status de bloqueio da pessoa (S/N) |
ST_SCPC | PESSOA | CHAR(1) | Indicador SCPC da pessoa (S/N) |
DT_LIBERACAO | PESSOA | DATE | Data em que a pessoa foi liberada |
Parâmetros relacionados
| Parâmetro | Descrição | Configurado em |
|---|---|---|
ST_CADASTROPESSOA | Tipo de bloqueio aplicado: I (Inativo) ou S (SCPC) | ADM010 — aba Bloqueio/Cadastro Pessoa |
NR_DIASBLOQLIB | Dias de carência após a data de liberação antes de novo bloqueio | ADM010 — aba Bloqueio/Cadastro Pessoa |
NR_DIASABLOQUEAR | Dias após a data de liberação para bloqueio automático | ADM010 — aba Bloqueio/Cadastro Pessoa |
TP_BLOQUEIO | Tipo de bloqueio por período de liberação: I (Inativo) ou S (SCPC) | ADM010 — aba Bloqueio/Cadastro Pessoa |
Telas impactadas
| Tela | Impacto |
|---|---|
| ADM010 | Onde o parâmetro é configurado |
| Tela de Cadastro de Pessoas | Pessoas 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:
- Data da última compra — obtida pela maior
DT_EMISSAOdas notas de venda válidas (ST_NOTA = 'V'eTP_NOTA = 'S'). - Se a pessoa nunca comprou — utiliza a
DT_REGISTROdo cadastro como referência. - Se a data da última compra é anterior a
CURRENT_DATE - NR_DIASBLOQUEIO— a pessoa é candidata a bloqueio. - Verificação de liberação — se
CURRENT_DATE > DT_LIBERACAO + NR_DIASBLOQLIB, o bloqueio é aplicado.
O tipo de bloqueio depende de ST_CADASTROPESSOA:
ST_CADASTROPESSOA | Açã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 faz | Detalhe |
|---|---|
| Bloqueia pessoas sem compra há mais de N dias | Editável livremente na aba Bloqueio/Cadastro Pessoa |
Exige que ST_CADASTROPESSOA esteja configurado | Se ST_CADASTROPESSOA não estiver definido (I ou S), o comportamento pode ser indeterminado |
| Não afeta o consumidor final | O consumidor final cadastrado em PARMFATUR.CD_CONSUMIDOR é sempre ignorado |
Simulação passo a passo
- Acesse ADM010 — Parâmetros do Sistema.
- Navegue até a aba Bloqueio/Cadastro Pessoa.
- No campo "Bloqueio de Pessoas por Período", digite
180. - No campo "Tipo de Bloqueio" (
ST_CADASTROPESSOA), selecioneInativo(I) oudeixar SCPC(S). - Configure também
NR_DIASBLOQLIBcom o número de dias de carência após liberação (ex:30). - Salve os parâmetros.
- Ao executar a procedure
VERIFICA_BLOQUEIOPESSOA, o sistema verificará todos os clientes ativos. - 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'eST_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_CONSUMIDORdoPARMFATUR) nunca são bloqueadas por esta regra.- Se a pessoa possuir uma data de liberação (
DT_LIBERACAO) recente e o períodoDT_LIBERACAO + NR_DIASBLOQLIBainda não tiver expirado, o bloqueio não é aplicado.
Valor 0 ou vazio (sem bloqueio por inatividade)
| O que faz | Detalhe |
|---|---|
| Desativa o bloqueio automático por inatividade | Editável livremente |
| Não impede bloqueios por outros parâmetros | NR_DIASABLOQUEAR continua funcional se configurado |
Simulação passo a passo
- Acesse ADM010 — Parâmetros do Sistema.
- Navegue até a aba Bloqueio/Cadastro Pessoa.
- No campo "Bloqueio de Pessoas por Período", deixe vazio ou digite
0. - 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
| Procedure | Arquivo | Descrição |
|---|---|---|
VERIFICA_BLOQUEIOPESSOA | Scripts/VERIFICA_BLOQUEIOPESSOA.sql | Procedure 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.