diff --git a/apps/web/src/routes/(dashboard)/recursos-humanos/registro-pontos/+page.svelte b/apps/web/src/routes/(dashboard)/recursos-humanos/registro-pontos/+page.svelte index 4172efb..a4b1d16 100644 --- a/apps/web/src/routes/(dashboard)/recursos-humanos/registro-pontos/+page.svelte +++ b/apps/web/src/routes/(dashboard)/recursos-humanos/registro-pontos/+page.svelte @@ -251,6 +251,8 @@ }); // Filtrar registros com base nos filtros avançados + // Nota: Os filtros de data e funcionário são aplicados no backend através de registrosParams + // Os filtros de status e localização são aplicados aqui no frontend const registrosFiltrados = $derived.by(() => { if (!registros || registros.length === 0) return []; @@ -268,6 +270,10 @@ // Filtro de localização (Dentro/Fora do Raio) if (localizacaoFiltro !== 'todos') { resultado = resultado.filter(r => { + // Se não houver informação de localização, excluir do resultado quando filtro está ativo + if (r.dentroRaioPermitido === undefined || r.dentroRaioPermitido === null) { + return false; + } if (localizacaoFiltro === 'dentro') return r.dentroRaioPermitido === true; if (localizacaoFiltro === 'fora') return r.dentroRaioPermitido === false; return true; @@ -432,7 +438,17 @@ } } - return resultado; + // Filtrar grupos que não têm registros após aplicar os filtros + // Isso garante que apenas funcionários com registros que passam pelos filtros sejam exibidos + const resultadoFiltrado = resultado.filter(grupo => { + // Verificar se o grupo tem pelo menos um registro em alguma data + const temRegistros = Object.values(grupo.registrosPorData).some( + grupoData => grupoData.registros && grupoData.registros.length > 0 + ); + return temRegistros; + }); + + return resultadoFiltrado; }); // Query para banco de horas de cada funcionário