ST_MAISENDERECOPESSOA - Mais de um Endereço por Pessoa (Comportamento)
Tela de configuração: ADM010 — Parâmetros do Sistema
Localização: Aba "Bloqueio/Cadastro Pessoa"
Tabela:PARMSISTEMA.ST_MAISENDERECOPESSOA
Valor padrão:N(Desmarcado)
Componente:chkMaisEnderecoPessoa(Checkbox)
Este parâmetro obriga que uma pessoa (cliente/fornecedor) possua mais de um endereço cadastrado antes de permitir salvar o cadastro na tela de Pessoa (TFA001).
Telas impactadas
| Tela | Nome | Impacto |
|---|---|---|
| TFA001 | Cadastro de Pessoa | Validação ao excluir e ao salvar; exige endereço adicional |
Campos envolvidos
| Campo | Tabela | Tipo | Default | Editável |
|---|---|---|---|---|
ST_MAISENDERECOPESSOA | PARMSISTEMA | CHAR(1) | 'N' | Sim (via ADM010) |
Procedures impactadas
Rotinas Delphi com referência direta
| Rotina | Arquivo | Linha | Evidencia |
|---|---|---|---|
TfrmTFA001.btnExcluirClick | source/TFA001/UTFA001.pas | 1450 | if(ParmSistema.Values['ST_MAISENDERECOPESSOA'] = 'S') then |
TfrmTFA001.btnSalvarClick | source/TFA001/UTFA001.pas | 2107 | SELECT ST_EMAILPESSOA, ST_MAISENDERECOPESSOA FROM PARMSISTEMA |
Candidatas por uso da tabela
As rotinas abaixo usam a tabela PARMSISTEMA, mas não citam o campo ST_MAISENDERECOPESSOA literalmente. Não foi encontrada referência direta ao campo em Scripts/:
| Procedure/View | Arquivo | Linha |
|---|---|---|
ENDERECOPESSOA_BI0 | Scripts/ENDERECOPESSOA_BI0.sql | 14 |
Demais procedures em Scripts/* que acessam PARMSISTEMA | — | — |
Opções disponíveis
N - Desmarcado (Padrão: nenhuma exigência de múltiplos endereços)
| O que faz | Detalhe |
|---|---|
| Exigência de endereço extra | Não exige mais de um endereço |
| Comportamento na TFA001 | Salvar/excluir normalmente, sem validação de quantidade de endereços |
Simulação passo a passo
- Acesse ADM010 (Parâmetros do Sistema) → aba Bloqueio/Cadastro Pessoa.
- Localize a opção Mais de um Endereço por Pessoa e deixe-a desmarcada.
- Salve os parâmetros.
- Acesse TFA001 (Cadastro de Pessoa).
- Cadastre uma pessoa com apenas um endereço (endereço principal).
- Salve o cadastro.
Resultado esperado: O sistema salva o cadastro normalmente, sem exigir endereços adicionais.
S - Marcado (Exige mais de um endereço por Pessoa)
| O que faz | Detalhe |
|---|---|
| Exigência de endereço extra | Exige no mínimo 2 endereços no cadastro da pessoa |
| Comportamento na exclusão | Impede exclusão se a pessoa tiver 2 ou menos endereços |
| Comportamento na gravação | Impede salvamento sem端ereços suficientes |
Simulação passo a passo
- Acesse ADM010 (Parâmetros do Sistema) → aba Bloqueio/Cadastro Pessoa.
- Localize a opção Mais de um Endereço por Pessoa e marque-a.
- Salve os parâmetros.
- Acesse TFA001 (Cadastro de Pessoa).
- Selecione uma pessoa existente ou cadastre uma nova.
- Acesse a aba Endereços da pessoa.
- Cadastre apenas 1 endereço principal e tente salvar ou excluir o registro.
Resultado esperado: O sistema exibe a mensagem: "O Cadastro da Pessoa precisa ter mais do que um Endereço! Verifique! [TFA001/ADM010]". O foco é direcionado para a grid de endereços, e se houver apenas 1 endereço, o botão Novo é acionado automaticamente.
Simulação passo a passo — cenário válido (2 ou mais endereços)
- Com o parâmetro marcado (S), acesse TFA001 e abra o cadastro de uma pessoa.
- Na aba Endereços, adicione um segundo endereço (ex: endereço de entrega).
- Preencha os campos obrigatórios do segundo endereço.
- Salve o cadastro.
Resultado esperado: O sistema salva o cadastro normalmente, pois a pessoa possui mais de um endereço (RecordCount > 2, contando o registro em inserção).
Exceção / Importante: A validação considera
RecordCount <= 2. Isso ocorre porque, ao adicionar um novo endereço em modo de inserção (dsInsert), o dataset já conta o registro "fantasma". Portanto, para passar na validação a pessoa precisa ter pelo menos 1 endereço existente + 1 sendo adicionado = 2 endereços. O usuário final deve interpretar como "mínimo de 2 endereços cadastrados".
Regra Geral de Funcionamento
| Situação | ST_MAISENDERECOPESSOA = 'N' | ST_MAISENDERECOPESSOA = 'S' |
|---|---|---|
| Salvar pessoa com 1 endereço | ✅ Permitido | ❌ Bloqueado |
| Salvar pessoa com 2+ endereços | ✅ Permitido | ✅ Permitido |
| Excluir pessoa com ≤ 2 endereços | ✅ Permitido | ❌ Bloqueado |
| Excluir pessoa com 3+ endereços | ✅ Permitido | ✅ Permitido |