{% extends "base.html" %} {% block title %}Banco de Horas RH{% endblock %} {% block extra_css %} {% endblock %} {% block content %} {% set competencia_exibicao = (competencia[5:7] ~ '/' ~ competencia[:4]) if competencia and competencia|length >= 7 else competencia %}

Banco de horas

Consulte saldos, execute apuração e lance ajustes manuais no padrão operacional do RH.

Empresa em consulta: {{ empresa.nome_fantasia or empresa.razao_social or empresa.nome }} Competência: {{ competencia_exibicao }} Status: {% if fechamento %} Fechada {% else %} Aberta {% endif %}
Exibição operacional: {{ competencia_exibicao or 'MM/AAAA' }}.
Limpar filtros
Execução da apuração
A apuração lê o espelho de ponto do mês e recalcula o saldo da competência por funcionário.
Lançamento manual
Formato aceito: HH:MM. Exibição e lançamento seguem esse mesmo padrão no RH.
Atalho: digitando só números, 130 vira 01:30 e 00130 vira 01:30.
Ao escolher uma opção, o campo de duração é preenchido automaticamente.
Os atalhos usam a escala do funcionário selecionado; sem escala, usam a configuração padrão da empresa.
Exemplos rápidos: crédito de 2h = Tipo Crédito (+) + valor 02:00 • abatimento de 1h30 = Tipo Débito (-) + valor 01:30 • também pode informar direto no campo com sinal: -01:30 (o sinal digitado no campo prevalece).
Saldo por funcionário
{% for r in resumo_funcionarios %} {% else %} {% endfor %}
Funcionário Saldo (HH:MM)
{{ r.nome }} {{ fmt_min(r.saldo_min or 0) }}
Sem funcionários ativos.
Lançamentos do período {{ competencia_exibicao }}
{% for l in lancamentos %} {% else %} {% endfor %}
Data Funcionário Tipo Status Horas (HH:MM) Saldo após (HH:MM) Justificativa Obs.
{{ l.data_criacao.strftime('%d/%m/%Y %H:%M') if l.data_criacao else '-' }} {{ l.funcionario_nome }} {{ l.tipo_lancamento }} {% if l.status_apuracao == 'fechada' %} fechada {% else %} aberta {% endif %} {{ fmt_min(l.minutos or 0) }} {{ fmt_min(l.saldo_resultante_min or 0) }} {{ l.justificativa_nome or '-' }} {{ l.observacao or '-' }}
Sem lançamentos para a competência.
Neste módulo, toda duração é exibida no padrão HH:MM para evitar ambiguidade operacional.
{% endblock %} {% block scripts %} {{ super() }} {% endblock %}