Pular para o conteúdo principal

DT_INICIOHRVERAO - Data de Início do Horário de Verão

Tela de configuração: ADM010 — Parâmetros do Sistema Tabela: PARMSISTEMA.DT_INICIOHRVERAO Tipo: DOM_TIMESTAMP (data e hora) Valor padrão: nenhum (campo nulo por padrão)

Descrição​

Define a data de início do horário de verão utilizado pelo sistema. Trabalha em conjunto com DT_FIMHRVERAO (mesma tela, mesmo bloco) e é influenciado por ST_HORARIOVERAOAUTO (campo DOM_CHAR1 DEFAULT 'S' na tabela PARMSISTEMA, configurado na mesma tela ADM010).

Campos envolvidos​

CampoTabelaTipoDescrição
DT_INICIOHRVERAOPARMSISTEMADOM_TIMESTAMPData/hora de início do horário de verão
DT_FIMHRVERAOPARMSISTEMADOM_TIMESTAMPData/hora de término do horário de verão
ST_HORARIOVERAOAUTOPARMSISTEMADOM_CHAR1Indicador de período automático (S/N)

Regras de validação (BeforePost)​

Quando o usuário tenta salvar (TdmADM010.tabPARMSISTEMABeforePost):

#CondiçãoResultado
1DT_FIMHRVERAO preenchido e DT_INICIOHRVERAO vazioErro: "Informe a data de início do Horário de Verão!" — foco em edtDT_INICIOHRVERAO
2DT_INICIOHRVERAO preenchido e DT_FIMHRVERAO vazioErro: "Informe a data de término do Horário de Verão!" — foco em edtDT_FIMHRVERAO
3Ambos preenchidos e DT_FIMHRVERAO < DT_INICIOHRVERAOErro: "Data de Término do Horário de Verão deve ser posterior a data de Início!" — foco em edtDT_FIMHRVERAO

Importante: As datas de início e término são obrigatoriamente preenchidas em par. Não é possível informar apenas uma delas.

Comportamento do controle de período automático​

O que fazDetalhe
Checkbox período automáticoQuando marcado, desabilita edtDT_INICIOHRVERAO e edtDT_FIMHRVERAO e preenche automaticamente as datas
Preenchimento automáticoChama a procedure RETORNA_HORARIOVERAO passando a data atual e atribui o retorno aos dois campos
Período manualQuando desmarcado, os campos ficam habilitados para digitação livre

Simulação passo a passo (período automático)​

  1. Acesse a tela ADM010 — Parâmetros do Sistema.
  2. Marque o checkbox Período Automático (chkST_PERIODOAUTOMATICO).
  3. Observe que os campos Data de Início e Data de Término são desabilitados e preenchidos automaticamente com as datas calculadas pela procedure RETORNA_HORARIOVERAO.
  4. Clique em Salvar (<F9>).

Resultado esperado: As datas de início e fim do horário de verão são calculadas automaticamente conforme a legislação (primeiro domingo de novembro até o terceiro domingo de fevereiro do ano seguinte) e gravadas no banco.

Simulação passo a passo (período manual)​

  1. Acesse a tela ADM010 — Parâmetros do Sistema.
  2. Desmarque o checkbox Período Automático.
  3. Digite a data de início desejada no campo Data de Início (ex.: 01/11/2024 00:00).
  4. Digite a data de término no campo Data de Término (ex.: 16/02/2025 23:59).
  5. Clique em Salvar (<F9>).

Resultado esperado: As datas informadas manualmente são gravadas na tabela PARMSISTEMA, desde que a data de término seja posterior à data de início.

Exceção / Importante: Se o horário de verão estiver desativado (a procedure RETORNA_HORARIOVERAO ignora anos anteriores a 2019, conforme comentário "Horário de verão desativado em 2019"), o cálculo automático avança para o ano vigente. O Brasil extinguiu oficialmente o horário de verão em 2019 (Decreto nº 9.242/2017, suspenso por portaria posterior), portanto o preenchimento automático pode não gerar datas úteis para anos recentes. Nesses casos, o período manual deve ser utilizado se houver necessidade específica.

Procedures impactadas​

Rotinas Delphi com referência direta​

RotinaArquivoDescrição
TfrmADM010.chkST_PERIODOAUTOMATICOClicksource/ADM010/UADM010.pas:519Habilita/desabilita o campo e preenche automaticamente via RETORNA_HORARIOVERAO
TdmADM010.tabPARMSISTEMABeforePostsource/ADM010/UdmADM010.pas:303Valida preenchimento obrigatório em par e ordem das datas

Procedure SQL com referência direta​

ProcedureArquivoDescrição
RETORNA_HORARIOVERAOScripts/RETORNA_HORARIOVERAO.sqlCalcula datas de início/fim do horário de verão conforme legislação brasileira

Candidatas por uso da tabela (sem referência direta ao campo)​

As procedures abaixo utilizam a tabela PARMSISTEMA mas não referenciam diretamente o campo DT_INICIOHRVERAO:

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.

Sem impacto funcional direto identificado nesses scripts.