feat: enhance dispensa management with modal confirmation and time input improvements

- Introduced a modal for confirming the removal of dispensas, improving user interaction and preventing accidental deletions.
- Updated time input fields to use a more user-friendly format, allowing for direct time selection.
- Refactored state management for dispensa creation, ensuring better handling of time and date inputs.
- Enhanced UI elements for better feedback and clarity during the dispensa creation process.
This commit is contained in:
2025-11-20 13:58:12 -03:00
parent 8ea5c0316b
commit e029cd1d6b
3 changed files with 190 additions and 100 deletions

View File

@@ -384,15 +384,32 @@ export const listarRegistrosPeriodo = query({
const dataFim = new Date(args.dataFim);
dataFim.setHours(23, 59, 59, 999);
const registros = await ctx.db
.query('registrosPonto')
.withIndex('by_data', (q) => q.gte('data', args.dataInicio).lte('data', args.dataFim))
.collect();
// Filtrar por funcionário se especificado
let registrosFiltrados = registros;
let registrosFiltrados;
// Se funcionário foi especificado, usar índice por funcionário e data (mais eficiente)
if (args.funcionarioId) {
registrosFiltrados = registros.filter((r) => r.funcionarioId === args.funcionarioId);
// Garantir que funcionarioId não é undefined para TypeScript
const funcionarioId = args.funcionarioId;
// Buscar todos os registros do funcionário
const todosRegistrosFuncionario = await ctx.db
.query('registrosPonto')
.withIndex('by_funcionario_data', (q) => q.eq('funcionarioId', funcionarioId))
.collect();
// Filtrar por período de data
registrosFiltrados = todosRegistrosFuncionario.filter((r) => {
const dataRegistro = new Date(r.data);
return dataRegistro >= new Date(args.dataInicio) && dataRegistro <= dataFim;
});
} else {
// Se não há funcionário especificado, buscar todos e filtrar (menos eficiente, mas necessário)
const registros = await ctx.db
.query('registrosPonto')
.withIndex('by_data', (q) => q.gte('data', args.dataInicio).lte('data', args.dataFim))
.collect();
registrosFiltrados = registros;
}
// Buscar informações dos funcionários