refactor: update vacation management structure and enhance status handling
- Renamed and refactored vacation-related types and components for clarity, transitioning from 'SolicitacaoFerias' to 'PeriodoFerias'. - Improved the handling of vacation statuses, including the addition of 'EmFérias' to the status options. - Streamlined the vacation request and approval components to better reflect individual vacation periods. - Enhanced data handling in backend queries and schema to support the new structure and ensure accurate status updates. - Improved user experience by refining UI elements related to vacation periods and their statuses.
This commit is contained in:
@@ -229,23 +229,20 @@ export const obterDadosGraficos = query({
|
||||
|
||||
// Buscar férias do período
|
||||
try {
|
||||
const solicitacoesFerias = await ctx.db
|
||||
.query('solicitacoesFerias')
|
||||
const ferias = await ctx.db
|
||||
.query('ferias')
|
||||
.filter((q) =>
|
||||
q.or(
|
||||
q.eq(q.field('status'), 'aprovado'),
|
||||
q.eq(q.field('status'), 'data_ajustada_aprovada')
|
||||
q.eq(q.field('status'), 'data_ajustada_aprovada'),
|
||||
q.eq(q.field('status'), 'EmFérias')
|
||||
)
|
||||
)
|
||||
.collect();
|
||||
|
||||
solicitacoesFerias.forEach((s) => {
|
||||
if (s.periodos && Array.isArray(s.periodos)) {
|
||||
s.periodos.forEach((p: { dataInicio: string; dataFim: string }) => {
|
||||
const dias = calcularDias(p.dataInicio, p.dataFim);
|
||||
totalDiasPorTipo.ferias += dias;
|
||||
});
|
||||
}
|
||||
ferias.forEach((f) => {
|
||||
const dias = calcularDias(f.dataInicio, f.dataFim);
|
||||
totalDiasPorTipo.ferias += dias;
|
||||
});
|
||||
} catch (error) {
|
||||
console.error('Erro ao buscar férias para gráfico:', error);
|
||||
@@ -619,48 +616,42 @@ export const obterEventosCalendario = query({
|
||||
// Integrar com férias (se não estiver filtrando por tipo específico)
|
||||
if (!args.tipoFiltro || args.tipoFiltro === 'todos' || args.tipoFiltro === 'ferias') {
|
||||
try {
|
||||
// Buscar solicitações de férias aprovadas
|
||||
const solicitacoesFerias = await ctx.db
|
||||
.query('solicitacoesFerias')
|
||||
// Buscar férias aprovadas
|
||||
const ferias = await ctx.db
|
||||
.query('ferias')
|
||||
.filter((q) =>
|
||||
q.or(
|
||||
q.eq(q.field('status'), 'aprovado'),
|
||||
q.eq(q.field('status'), 'data_ajustada_aprovada')
|
||||
q.eq(q.field('status'), 'data_ajustada_aprovada'),
|
||||
q.eq(q.field('status'), 'EmFérias')
|
||||
)
|
||||
)
|
||||
.collect();
|
||||
|
||||
for (const solicitacao of solicitacoesFerias) {
|
||||
for (const feriasRegistro of ferias) {
|
||||
try {
|
||||
const funcionario = await ctx.db.get(solicitacao.funcionarioId);
|
||||
const funcionario = await ctx.db.get(feriasRegistro.funcionarioId);
|
||||
if (!funcionario) continue;
|
||||
|
||||
// Verificar se periodos existe e é um array
|
||||
if (!solicitacao.periodos || !Array.isArray(solicitacao.periodos)) {
|
||||
continue;
|
||||
}
|
||||
if (!feriasRegistro.dataInicio || !feriasRegistro.dataFim) continue;
|
||||
|
||||
for (const periodo of solicitacao.periodos) {
|
||||
if (!periodo.dataInicio || !periodo.dataFim) continue;
|
||||
|
||||
eventos.push({
|
||||
id: `ferias-${solicitacao._id}-${periodo.dataInicio}`,
|
||||
title: `${funcionario.nome} - Férias`,
|
||||
start: periodo.dataInicio,
|
||||
end: periodo.dataFim,
|
||||
color: '#10b981', // verde
|
||||
tipo: 'ferias',
|
||||
funcionarioNome: funcionario.nome,
|
||||
funcionarioId: funcionario._id
|
||||
});
|
||||
}
|
||||
eventos.push({
|
||||
id: `ferias-${feriasRegistro._id}`,
|
||||
title: `${funcionario.nome} - Férias`,
|
||||
start: feriasRegistro.dataInicio,
|
||||
end: feriasRegistro.dataFim,
|
||||
color: '#10b981', // verde
|
||||
tipo: 'ferias',
|
||||
funcionarioNome: funcionario.nome,
|
||||
funcionarioId: funcionario._id
|
||||
});
|
||||
} catch (error) {
|
||||
console.error(`Erro ao processar solicitação de férias ${solicitacao._id}:`, error);
|
||||
console.error(`Erro ao processar férias ${feriasRegistro._id}:`, error);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('Erro ao buscar solicitações de férias:', error);
|
||||
console.error('Erro ao buscar férias:', error);
|
||||
// Continua mesmo se houver erro ao buscar férias
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user