ST_EMAILPESSOA - Tornar E-mail Obrigatório no Cadastro de Pessoa
Tela de configuração: ADM010
Localização: Parâmetros → Bloqueio/Cadastro Pessoa
Tabela:PARMSISTEMA.ST_EMAILPESSOA
Componente:chkEmailPessoa(checkbox)
Valor padrão:N(Não Obrigatório)
Telas impactadas
| Tela | Nome | Impacto |
|---|---|---|
| TFA001 | Cadastro de Pessoa | Validação de obrigatoriedade e formato do e-mail |
| TFA083 | (Importação/Migração de Pessoa) | Validação de obrigatoriedade do e-mail |
Campos envolvidos
| Campo | Tabela | Tipo | Padrão | Obrigatório |
|---|---|---|---|---|
ST_EMAILPESSOA | PARMSISTEMA | CHAR(1) | 'N' | Sim |
DS_EMAIL | PESSOA | VARCHAR | — | Condicional |
Opções disponíveis
| O que faz | Detalhe |
|---|---|
| S (Marcado) | Torna o campo E-mail obrigatório no cadastro de pessoa e valida o formato do endereço. |
| N (Desmarcado) | Campo E-mail permanece opcional. |
S — E-mail Obrigatório
Simulação passo a passo
- Acesse a tela ADM010 — Parâmetros do Sistema.
- Selecione a aba Bloqueio/Cadastro Pessoa.
- Marque a opção Email Pessoa.
- Salve as alterações.
- Abra a tela TFA001 — Cadastro de Pessoa.
- Crie um novo registro de pessoa.
- Tente salvar sem informar o campo E-mail.
Resultado esperado: O sistema bloqueia o salvamento e exibe a mensagem:
"É Obrigatório Informar o E-mail! Verifique [TFA001/ADM010]"
O rótulo do campo E-mail (lblDS_EMAIL) fica em negrito, indicando obrigatoriedade visual.
Importante: Se o usuário informar um e-mail, o formato é validado. E-mails com mais de um
@ou no formatotexto@.comsão rejeitados com a mensagem "Email inválido! Verifique!".
Comportamento no BeforePost (TFA001)
Durante o salvamento da pessoa, a rotina tabPESSOABeforePost verifica ST_EMAILPESSOA = 'S'. Se o campo DS_EMAIL estiver vazio, a gravação é abortada. O campo é marcado como Required = True.
Comportamento no botão Salvar (TFA001)
No btnSalvarClick, o sistema executa a consulta:
SELECT ST_EMAILPESSOA, ST_MAISENDERECOPESSOA FROM PARMSISTEMA
Se ST_EMAILPESSOA = 'S' e o e-mail informado não estiver vazio, ele valida:
- Não pode ter mais de um
@no endereço. - Não pode haver
.logo após o@(ex:texto@.com). - O
@não pode ser o primeiro caractere.
Comportamento na TFA083
No evento iniciar da TFA083, o parâmetro é consultado:
- Se
ST_EMAILPESSOA = 'S', o campoDS_EMAILé marcado como obrigatório (Required := True) e o rótulo fica em negrito.
N — E-mail Não Obrigatório (padrão)
Simulação passo a passo
- Acesse a tela ADM010 — Parâmetros do Sistema.
- Selecione a aba Bloqueio/Cadastro Pessoa.
- Desmarque a opção Email Pessoa.
- Salve as alterações.
- Abra a tela TFA001 — Cadastro de Pessoa.
- Crie um novo registro de pessoa.
- Salve sem informar o campo E-mail.
Resultado esperado: O cadastro é concluído com sucesso. O campo E-mail permanece visível mas sem indicator de obrigatoriedade (não fica em negrito).
Importante: Se o usuário informar um e-mail mesmo com a opção desmarcada, a validação de formato no
btnSalvarClicknão é executada pelo bloco deST_EMAILPESSOA— o sistema só executa essa validação se o parâmetro estiverSe o e-mail estiver preenchido.
Procedimentos relacionados
TFA001 — Cadastro de Pessoa
| Rotina | Comportamento | Evidência |
|---|---|---|
btnSalvarClick | Lê ST_EMAILPESSOA e ST_MAISENDERECOPESSOA da PARMSISTEMA. Se S e e-mail preenchido, valida formato do e-mail (@ único, posição do ponto). | source/TFA001/UTFA001.pas:2107 |
validaObrigatoriedadeADM010 | Lê o parâmetro via ParmSistema.Values['ST_EMAILPESSOA']. Se S, marca DS_EMAIL como Required := True e aplica negrito no rótulo. | source/TFA001/UTFA001.pas:4968 |
tabPESSOABeforePost | Lê o parâmetro via ParmSistema.Values['ST_EMAILPESSOA']. Se S e não estiver em contexto de importação (flagImportandoCPFCNPJ), bloqueia se DS_EMAIL estiver vazio. | source/TFA001/UdmTFA001.pas:1300 |
TFA083 — Importação/Migração de Pessoa
| Rotina | Comportamento | Evidência |
|---|---|---|
iniciar | Lê o parâmetro via ParmSistema.Values['ST_EMAILPESSOA']. Se S, marca DS_EMAIL como Required := True e aplica negrito no rótulo. | source/TFA083/UTFA083.pas:278 |
Candidatas por uso da tabela PARMSISTEMA (sem referência direta ao campo)
As seguintes rotinas SQL consultam a tabela PARMSISTEMA, mas não referenciam o campo ST_EMAILPESSOA literalmente. Não há impacto funcional direto identificado:
ARRUMA_MASCARACONTA,ATUALIZA_CONTACONTABIL,CALCULA_TEMPOPERMANENCIACONTABILIZA_CUPOMFISCAL,ENDERECOPESSOA_BI0,GERA_CONTACLIFORGERA_DARF,GERA_PLANOFILIAL,GERA_SPEDBLOCOLGERA_SPEDCONTABIL,GERA_SPEDCONTABIL_0000,GERA_SPEDECFGERA_SPEDECFBLOCOJ,GERA_SPEDECFBLOCOK155,GERA_SPEDECFBLOCOK355GERA_SPEDECFBLOCOL210,GERA_SPEDECFBLOCOYGRAVA_REGISTROSPED0500,IMPORTA_ARQUIVOMAGNETICO,INCLUI_IMPOSTONOTACTB
Regra de exceção — Importação de CPF/CNPJ
Durante a importação automática de dados de pessoa por CPF/CNPJ (flagImportandoCPFCNPJ = True), a validação de obrigatoriedade do e-mail é ignorada mesmo com ST_EMAILPESSOA = 'S'. Isso permite que o processo de importação preencha os demais dados sem bloquear por falta de e-mail. Veja em source/TFA001/UdmTFA001.pas:1300.
Tabela Comparativa Resumida
| Valor | E-mail obrigatório? | Valida formato? | Negrito no rótulo? | Bloqueia salvamento vazio? |
|---|---|---|---|---|
S | Sim | Sim | Sim | Sim |
N | Não | Não | Não | Não |
Parâmetros relacionados (mesma aba — Bloqueio/Cadastro Pessoa)
| Parâmetro | Efeito |
|---|---|
ST_DTNASCPESSOA | Torna a data de nascimento obrigatória (configurado em ADM010) |
ST_NOMEFANTASIA | Torna o nome fantasia obrigatório (configurado em ADM010) |
ST_VENDEDORENDERECO | Torna o vendedor do endereço obrigatório (configurado em ADM010) |
ST_FORMAPAGTOENDERECO | Torna a forma de pagamento do endereço obrigatória (configurado em ADM010) |
ST_TELEFONEENDERECO | Torna telefone/celular do endereço obrigatórios (configurado em ADM010) |
ST_OBRIGADADOS | Torna CPF/CNPJ da pessoa obrigatório (configurado em ADM010) |