Pular para o conteúdo principal

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​

TelaNomeImpacto
TFA001Cadastro de PessoaValidação de obrigatoriedade e formato do e-mail
TFA083(Importação/Migração de Pessoa)Validação de obrigatoriedade do e-mail

Campos envolvidos​

CampoTabelaTipoPadrãoObrigatório
ST_EMAILPESSOAPARMSISTEMACHAR(1)'N'Sim
DS_EMAILPESSOAVARCHAR—Condicional

Opções disponíveis​

O que fazDetalhe
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​

  1. Acesse a tela ADM010 — Parâmetros do Sistema.
  2. Selecione a aba Bloqueio/Cadastro Pessoa.
  3. Marque a opção Email Pessoa.
  4. Salve as alterações.
  5. Abra a tela TFA001 — Cadastro de Pessoa.
  6. Crie um novo registro de pessoa.
  7. 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 formato texto@.com sã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 campo DS_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​

  1. Acesse a tela ADM010 — Parâmetros do Sistema.
  2. Selecione a aba Bloqueio/Cadastro Pessoa.
  3. Desmarque a opção Email Pessoa.
  4. Salve as alterações.
  5. Abra a tela TFA001 — Cadastro de Pessoa.
  6. Crie um novo registro de pessoa.
  7. 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 btnSalvarClick não é executada pelo bloco de ST_EMAILPESSOA — o sistema só executa essa validação se o parâmetro estiver S e o e-mail estiver preenchido.

Procedimentos relacionados​

TFA001 — Cadastro de Pessoa​

RotinaComportamentoEvidência
btnSalvarClickLê 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
validaObrigatoriedadeADM010Lê 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
tabPESSOABeforePostLê 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​

RotinaComportamentoEvidência
iniciarLê 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_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

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​

ValorE-mail obrigatório?Valida formato?Negrito no rótulo?Bloqueia salvamento vazio?
SSimSimSimSim
NNãoNãoNãoNão

Parâmetros relacionados (mesma aba — Bloqueio/Cadastro Pessoa)​

ParâmetroEfeito
ST_DTNASCPESSOATorna a data de nascimento obrigatória (configurado em ADM010)
ST_NOMEFANTASIATorna o nome fantasia obrigatório (configurado em ADM010)
ST_VENDEDORENDERECOTorna o vendedor do endereço obrigatório (configurado em ADM010)
ST_FORMAPAGTOENDERECOTorna a forma de pagamento do endereço obrigatória (configurado em ADM010)
ST_TELEFONEENDERECOTorna telefone/celular do endereço obrigatórios (configurado em ADM010)
ST_OBRIGADADOSTorna CPF/CNPJ da pessoa obrigatório (configurado em ADM010)