From 73d550aa962bf3ca5f0133ee9fe8253206679b3c Mon Sep 17 00:00:00 2001 From: deyvisonwanderley Date: Thu, 13 Nov 2025 16:39:56 -0300 Subject: [PATCH] refactor: optimize vacation data aggregation and logging - Updated the logic for aggregating approved vacation requests to streamline data handling and improve performance. - Enhanced logging to provide detailed insights into vacation periods and requests, aiding in debugging and monitoring. - Cleaned up code formatting for better readability and maintainability, ensuring a consistent coding style throughout the component. --- .../recursos-humanos/ferias/+page.svelte | 36 +++++++++++-------- 1 file changed, 21 insertions(+), 15 deletions(-) diff --git a/apps/web/src/routes/(dashboard)/recursos-humanos/ferias/+page.svelte b/apps/web/src/routes/(dashboard)/recursos-humanos/ferias/+page.svelte index 2b35bb0..be40e03 100644 --- a/apps/web/src/routes/(dashboard)/recursos-humanos/ferias/+page.svelte +++ b/apps/web/src/routes/(dashboard)/recursos-humanos/ferias/+page.svelte @@ -201,7 +201,8 @@ const solicitacoesAprovadas = $derived( solicitacoesFiltradas.filter( - (p) => p.status === 'aprovado' || p.status === 'data_ajustada_aprovada' || p.status === 'EmFérias' + (p) => + p.status === 'aprovado' || p.status === 'data_ajustada_aprovada' || p.status === 'EmFérias' ) ); @@ -304,19 +305,16 @@ (() => { const agregados = new SvelteMap(); - for (const solicitacao of solicitacoesAprovadas) { - const totalDias = solicitacao.periodos.reduce( - (acc, periodo) => acc + periodo.diasFerias, - 0 - ); - const existente = agregados.get(solicitacao.anoReferencia) ?? { - ano: solicitacao.anoReferencia, + for (const periodo of solicitacoesAprovadas) { + const totalDias = periodo.diasFerias; + const existente = agregados.get(periodo.anoReferencia) ?? { + ano: periodo.anoReferencia, solicitacoes: 0, diasTotais: 0 }; existente.solicitacoes += 1; existente.diasTotais += totalDias; - agregados.set(solicitacao.anoReferencia, existente); + agregados.set(periodo.anoReferencia, existente); } return Array.from(agregados.values()).sort((a, b) => a.ano - b.ano); @@ -460,9 +458,18 @@ console.log('📅 [Eventos] Total de eventos:', eventosFerias.length); console.log('📋 [Periodos] Total de períodos:', periodosDetalhados.length); console.log('✅ [Aprovadas] Total de solicitações aprovadas:', solicitacoesAprovadas.length); + console.log('📊 [PeriodosPorMes] Total:', periodosPorMes.length); + console.log('📊 [PeriodosPorMesAtivos] Total:', periodosPorMesAtivos.length); + console.log('📊 [SolicitacoesPorAno] Total:', solicitacoesPorAno.length); if (eventosFerias.length > 0) { console.log('📅 [Eventos] Primeiro evento:', eventosFerias[0]); } + if (periodosPorMes.length > 0) { + console.log('📊 [PeriodosPorMes] Primeiro:', periodosPorMes[0]); + } + if (solicitacoesPorAno.length > 0) { + console.log('📊 [SolicitacoesPorAno] Primeiro:', solicitacoesPorAno[0]); + } }); let calendarioContainer: HTMLDivElement | null = null; @@ -1709,10 +1716,7 @@ {#if periodo.time} -
+
{periodo.time.nome}
{:else} @@ -1721,7 +1725,9 @@ {periodo.anoReferencia} - {formatarDataString(periodo.dataInicio)} - {formatarDataString(periodo.dataFim)} + {formatarDataString(periodo.dataInicio)} - {formatarDataString( + periodo.dataFim + )} {periodo.diasFerias} dia(s) @@ -1920,7 +1926,7 @@ {#if periodoSelecionado && currentUser.data} - {#await client.query( api.ferias.obterDetalhes, { feriasId: periodoSelecionado } ) then detalhes} + {#await client.query(api.ferias.obterDetalhes, { feriasId: periodoSelecionado }) then detalhes} {#if detalhes}