Gerencie e visualize os registros de ponto dos funcionários com informações detalhadas e relatórios
Total de Registros
{estatisticas.totalRegistros}
Funcionários
{estatisticas.totalFuncionarios}
Total de Registros
{estatisticas.totalRegistros}
Dentro do Prazo
{estatisticas.dentroDoPrazo}
{estatisticas.totalRegistros > 0 ? ((estatisticas.dentroDoPrazo / estatisticas.totalRegistros) * 100).toFixed(1) : 0}% do total
Fora do Prazo
{estatisticas.foraDoPrazo}
{estatisticas.totalRegistros > 0 ? ((estatisticas.foraDoPrazo / estatisticas.totalRegistros) * 100).toFixed(1) : 0}% do total
Funcionários
{estatisticas.totalFuncionarios}
{estatisticas.funcionariosDentroPrazo} dentro, {estatisticas.funcionariosForaPrazo} fora
Período: {formatarData(dataInicio)} até {formatarData(dataFim)}
{#if funcionarioIdFiltro && funcionarioSelecionadoNome}Funcionário: {funcionarioSelecionadoNome}
{/if}Tente ajustar os filtros para encontrar registros.
Matrícula: {grupo.funcionario.matricula}
{/if} {#if grupo.funcionario?.descricaoCargo}{grupo.funcionario.descricaoCargo}
{/if}Banco de Horas
{formatarSaldoHoras(saldoAcumulado)}
| Data | Tipo | Horário | Saldo Diário | Status | Ações |
|---|---|---|---|---|---|
| {dataFormatada} | {config ? getTipoRegistroLabel(registro.tipo, { nomeEntrada: config.nomeEntrada, nomeSaidaAlmoco: config.nomeSaidaAlmoco, nomeRetornoAlmoco: config.nomeRetornoAlmoco, nomeSaida: config.nomeSaida, }) : getTipoRegistroLabel(registro.tipo)} | {formatarHoraPonto(registro.hora, registro.minuto)} | {#if index === 0}{#if grupoData.saldoDiario} {formatarSaldoDiario(grupoData.saldoDiario)} {:else} - {/if} | {/if}{registro.dentroDoPrazo ? '✓ Dentro do Prazo' : '✗ Fora do Prazo'} |