ST_SOCIOPESSOA - Bloqueio de Pessoas por Sócio Compartilhado
Tela de configuração: ADM010 - Parâmetros do Sistema Localização: Aba Bloqueio/Cadastro Pessoa Tabela:
PARMSISTEMA.ST_SOCIOPESSOAValor padrão:N(Não)
Telas impactadas
| Tela | Descrição |
|---|---|
| TFA001 | Cadastro de Pessoas — bloqueio automático ao incluir sócio já vinculado a outra pessoa |
Campos envolvidos
| Campo | Tabela | Descrição |
|---|---|---|
ST_SOCIOPESSOA | PARMSISTEMA | Ativa/desativa o bloqueio automático por sócio compartilhado |
ST_BLOQUEADA | PESSOA | Status de bloqueio da pessoa (S/N) |
DS_MOTIVOBLOQUEIO | PESSOA | Texto com o motivo do bloqueio |
CD_PESSOASOCIO | PESSOASOCIO | Código do sócio no cadastro de pessoas |
Opções disponíveis
S - Sim (Bloqueio ativo)
| O que faz | Detalhe |
|---|---|
| Bloqueia automaticamente o cadastro de pessoa | Quando um sócio informado já está vinculado a outra pessoa |
| Grava motivo do bloqueio | Concatena no campo DS_MOTIVOBLOQUEIO o código do sócio e as pessoas associadas |
| Exibe mensagem de alerta | Mostra ao usuário todos os motivos de bloqueio acumulados |
Simulação passo a passo
- Acesse TFA001 - Cadastro de Pessoas e abra o cadastro de uma pessoa (ex.: Pessoa A, código 100).
- Inclua um sócio (ex.: Sócio João, código 50) na aba de Sócios.
- Confirme o registro do sócio (post).
- O sistema verifica se o Sócio João (código 50) já está vinculado a outras pessoas no sistema.
- Se o sócio já existir em outro cadastro (ex.: Pessoa B, código 200), a Pessoa A será bloqueada automaticamente:
- Campo
ST_BLOQUEADAda Pessoa A recebe'S'. - Campo
DS_MOTIVOBLOQUEIOrecebe o texto: "Os seguintes Sócios já estão associados a outras Pessoas: Sócio: 50; Pessoa(s): 200". - É exibida mensagem de alerta com todos os motivos de bloqueio.
- Campo
Resultado esperado: O cadastro da pessoa fica bloqueado (ST_BLOQUEADA = 'S') e o motivo é registrado automaticamente sempre que um sócio adicionado já estiver associado a outras pessoas.
Exceção / Importante: O bloqueio ocorre apenas no momento do
AfterPostdo registro de sócio. Se o parâmetro for alterado de'S'para'N', cadastros já bloqueados não são desbloqueados automaticamente — é necessário desbloqueio manual.
N - Não (Bloqueio inativo)
| O que faz | Detalhe |
|---|---|
| Não realiza verificação de sócio compartilhado | O sistema permite que o mesmo sócio seja vinculado a várias pessoas sem bloqueio |
Simulação passo a passo
- Acesse TFA001 - Cadastro de Pessoas e abra o cadastro de uma pessoa.
- Inclua um sócio que já esteja vinculado a outras pessoas.
- Confirme o registro do sócio.
- O sistema não realiza nenhuma verificação de compartilhamento de sócio.
- O cadastro permanece desbloqueado.
Resultado esperado: O cadastro da pessoa não é bloqueado, independentemente de o sócio já estar vinculado a outras pessoas.
Regra Geral de Funcionamento
O parâmetro atua no evento tabPESSOASOCIOAfterPost da tela TFA001. Quando ativo ('S'), após a confirmação de um sócio no cadastro, o sistema:
- Consulta a tabela
PESSOASOCIObuscando outras pessoas que possuam o mesmoCD_PESSOASOCIO. - Se encontrar ao menos uma outra pessoa vinculada, marca
ST_BLOQUEADA = 'S'na pessoa atual. - Concatena o motivo (código do sócio + lista de pessoas) no campo
DS_MOTIVOBLOQUEIO. - Exibe mensagem de alerta ao usuário com todos os motivos acumulados.
Procedures impactadas
Rotinas Delphi com referência direta ao campo
| Rotina | Arquivo | Linha | Descrição |
|---|---|---|---|
TdmTFA001.tabPESSOASOCIOAfterPost | source/TFA001/UdmTFA001.pas | 4001 | Verifica ST_SOCIOPESSOA = 'S' para bloquear pessoa quando sócio já está em outro cadastro |
Referências SQL diretas ao campo
Não foi encontrada referência direta ao campo ST_SOCIOPESSOA em scripts SQL (Scripts/). O parâmetro é consumido exclusivamente pela camada Delphi.
Tabela Comparativa Resumida
| Opção | Valor | Comportamento |
|---|---|---|
| Sim | S | Bloqueia automaticamente cadastros cujos sócios já estejam vinculados a outras pessoas |
| Não | N | Sem bloqueio — sócios podem ser compartilhados livremente entre pessoas |