ST_BLOQUEIACPFCNPJ - Bloqueio de Alteração de CPF/CNPJ
Tela de configuração: ADM010 — Parâmetros do Sistema Localização: aba Configurações, campo Configurações (
cmbST_BLOQUEIOCPFCNPJ) Tabela:PARMSISTEMA.ST_BLOQUEIACPFCNPJTipo:CHAR(1)— Valor padrão:N(Não)
Telas impactadas
| Tela | Descrição | Impacto |
|---|---|---|
| TFA001 | Cadastro de Pessoas | Campo CPF/CNPJ fica somente leitura em registros já existentes |
| TFA083 | Cadastro de Pessoas (simplificado) | Mesmo comportamento do TFA001 |
Campos envolvidos
| Campo | Tabela | Efeito |
|---|---|---|
NR_CNPJCPF | PESSOA | Tornar-se-á somente leitura (ReadOnly) quando o parâmetro estiver ativo e o registro já existir |
Opções disponíveis
S - Sim (Bloqueia CPF/CNPJ em registros existentes)
| O que faz | Detalhe |
|---|---|
| Bloqueia edição do CPF/CNPJ | O campo NR_CNPJCPF fica ReadOnly com fundo cinza e fonte em cor diferenciada em registros já cadastrados |
| Permite CPF/CNPJ em inclusão | Ao criar uma nova pessoa, o campo é liberado normalmente para digitação |
| Aplica-se após salvar/navegar | Ao navegar para um registro existente (AfterScroll) ou localizar pessoa já cadastrada, o campo é bloqueado |
Simulação passo a passo
- Acesse ADM010 → Configurações e configure
ST_BLOQUEIACPFCNPJ = S. - Abra o TFA001 — Cadastro de Pessoas.
- Navegue até uma pessoa já cadastrada (ex.: cliente "João Silva").
- Observe que o campo CPF/CNPJ está com fundo cinza e não permite edição.
- Clique no botão Novo para incluir uma pessoa.
- Digite o código ou nome da nova pessoa e pressione
<Tab>para sair do campo de código. - Observe que o campo CPF/CNPJ está liberado (fundo branco) — digite o CPF/CNPJ normalmente.
- Preencha os dados e Salve o registro.
- Após salvar, navegue novamente até essa pessoa — o campo CPF/CNPJ voltará a ficar bloqueado.
Resultado esperado: O CPF/CNPJ pode ser informado apenas no momento da inclusão de uma nova pessoa. Após salvo, o campo não pode mais ser alterado pelo usuário.
N - Não (CPF/CNPJ livre para edição)
| O que faz | Detalhe |
|---|---|
| CPF/CNPJ editável | O campo NR_CNPJCPF permanece editável tanto em inclusão quanto em alteração |
| Sem restrição visual | O campo mantém fundo branco e fonte preta em qualquer situação |
Simulação passo a passo
- Acesse ADM010 → Configurações e configure
ST_BLOQUEIACPFCNPJ = N(padrão). - Abra o TFA001 — Cadastro de Pessoas.
- Navegue até uma pessoa já cadastrada (ex.: cliente "Maria Souza").
- Clique no campo CPF/CNPJ e altere o valor normalmente.
- Salve o registro — a alteração é aceita sem restrição.
Resultado esperado: O campo CPF/CNPJ é livremente editável em qualquer situação, sem bloqueio.
Regra Geral
O parâmetro controla exclusivamente a edição do campo CPF/CNPJ em registros já existentes. Em inclusões de novas pessoas, o campo é sempre liberado, independentemente do valor do parâmetro.
| Situação | ST_BLOQUEIACPFCNPJ = S | ST_BLOQUEIACPFCNPJ = N |
|---|---|---|
| Nova pessoa (inclusão) | CPF/CNPJ editável | CPF/CNPJ editável |
| Pessoa existente (alteração) | CPF/CNPJ bloqueado | CPF/CNPJ editável |
| Navegação entre registros | CPF/CNPJ bloqueado | CPF/CNPJ editável |
Exceção / Importante: O parâmetro atua em conjunto com
ST_BLOQUEIOPESSOA(configurado em ADM010 — Parâmetros do Sistema). Ambos são consultados na mesma rotina de inicialização do TFA001 e TFA083, mas possuem efeitos independentes sobre campos diferentes.
Procedures impactadas
Rotinas Delphi com referência direta ao campo
| Rotina | Arquivo | Linha(s) | Descrição |
|---|---|---|---|
TfrmTFA001.iniciar | source/TFA001/UTFA001.pas | 911, 1169 | Carrega o parâmetro e bloqueia NR_CNPJCPF se S |
TfrmTFA001.btnNovoClick | source/TFA001/UTFA001.pas | 2347 | Libera NR_CNPJCPF para digitação ao incluir nova pessoa |
TfrmTFA001.edtCD_PESSOAExit | source/TFA001/UTFA001.pas | 2708, 2730 | Ao localizar pessoa existente → bloqueia; pessoa nova → libera |
TdmTFA001.tabPESSOAAfterScroll | source/TFA001/UdmTFA001.pas | 774, 798 | Ao navegar entre registros, bloqueia NR_CNPJCPF se S |
TfrmTFA083.iniciar | source/TFA083/UTFA083.pas | 229, 235 | Carrega o parâmetro na inicialização |
TfrmTFA083.edtCD_PESSOAExit | source/TFA083/UTFA083.pas | 895, 947 | Mesma lógica do TFA001 para bloqueio/liberação |
TdmTFA083.tabPESSOAAfterScroll | source/TFA083/UdmTFA083.pas | 255, 276 | Mesma lógica do TFA001 na navegação |
Referências SQL diretas ao campo
Não foi encontrada referência direta ao campo ST_BLOQUEIACPFCNPJ em scripts SQL (Scripts/). O uso é exclusivamente client-side (Delphi).
Candidatas por uso da tabela
As procedures/views listadas na análise utilizam a tabela PARMSISTEMA, mas não referenciam o campo ST_BLOQUEIACPFCNPJ diretamente. Sem impacto funcional comprovado nestas rotinas.