DT_INICIOHRVERAO - Data de Início do Horário de Verão
Tela de configuração: ADM010 — Parâmetros do Sistema Tabela:
PARMSISTEMA.DT_INICIOHRVERAOTipo: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
| Campo | Tabela | Tipo | Descrição |
|---|---|---|---|
DT_INICIOHRVERAO | PARMSISTEMA | DOM_TIMESTAMP | Data/hora de início do horário de verão |
DT_FIMHRVERAO | PARMSISTEMA | DOM_TIMESTAMP | Data/hora de término do horário de verão |
ST_HORARIOVERAOAUTO | PARMSISTEMA | DOM_CHAR1 | Indicador de período automático (S/N) |
Regras de validação (BeforePost)
Quando o usuário tenta salvar (TdmADM010.tabPARMSISTEMABeforePost):
| # | Condição | Resultado |
|---|---|---|
| 1 | DT_FIMHRVERAO preenchido e DT_INICIOHRVERAO vazio | Erro: "Informe a data de início do Horário de Verão!" — foco em edtDT_INICIOHRVERAO |
| 2 | DT_INICIOHRVERAO preenchido e DT_FIMHRVERAO vazio | Erro: "Informe a data de término do Horário de Verão!" — foco em edtDT_FIMHRVERAO |
| 3 | Ambos preenchidos e DT_FIMHRVERAO < DT_INICIOHRVERAO | Erro: "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 faz | Detalhe |
|---|---|
| Checkbox período automático | Quando marcado, desabilita edtDT_INICIOHRVERAO e edtDT_FIMHRVERAO e preenche automaticamente as datas |
| Preenchimento automático | Chama a procedure RETORNA_HORARIOVERAO passando a data atual e atribui o retorno aos dois campos |
| Período manual | Quando desmarcado, os campos ficam habilitados para digitação livre |
Simulação passo a passo (período automático)
- Acesse a tela ADM010 — Parâmetros do Sistema.
- Marque o checkbox Período Automático (
chkST_PERIODOAUTOMATICO). - 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. - 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)
- Acesse a tela ADM010 — Parâmetros do Sistema.
- Desmarque o checkbox Período Automático.
- Digite a data de início desejada no campo Data de Início (ex.:
01/11/2024 00:00). - Digite a data de término no campo Data de Término (ex.:
16/02/2025 23:59). - 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_HORARIOVERAOignora 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
| Rotina | Arquivo | Descrição |
|---|---|---|
TfrmADM010.chkST_PERIODOAUTOMATICOClick | source/ADM010/UADM010.pas:519 | Habilita/desabilita o campo e preenche automaticamente via RETORNA_HORARIOVERAO |
TdmADM010.tabPARMSISTEMABeforePost | source/ADM010/UdmADM010.pas:303 | Valida preenchimento obrigatório em par e ordem das datas |
Procedure SQL com referência direta
| Procedure | Arquivo | Descrição |
|---|---|---|
RETORNA_HORARIOVERAO | Scripts/RETORNA_HORARIOVERAO.sql | Calcula 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.