refactor: improve filtering logic for employee time records in registro-pontos page
- Enhanced the filtering mechanism to apply location and status filters more effectively, ensuring only relevant records are displayed. - Added checks to exclude records without location information when filters are active, improving data accuracy. - Implemented a final filtering step to ensure only groups with valid records are shown, enhancing user experience in reviewing time records.
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user