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 7bd8a6f..666feb8 100644 --- a/apps/web/src/routes/(dashboard)/recursos-humanos/ferias/+page.svelte +++ b/apps/web/src/routes/(dashboard)/recursos-humanos/ferias/+page.svelte @@ -277,14 +277,14 @@ ); const periodosDetalhados = $derived>( - solicitacoesAprovadas + solicitacoesAprovadas .map((periodo) => ({ feriasId: periodo._id, funcionarioId: periodo.funcionarioId, anoReferencia: periodo.anoReferencia, funcionarioNome: periodo.funcionario?.nome ?? 'Funcionário não encontrado', matricula: periodo.funcionario?.matricula ?? null, - timeNome: periodo.time?.nome ?? null, + gestorNome: periodo.gestor?.nome ?? null, timeCor: periodo.time?.cor ?? null, status: periodo.status, dataInicio: periodo.dataInicio, @@ -1134,7 +1134,7 @@ const dadosTabela: string[][] = periodosSelecionados.map((periodo) => [ periodo.funcionarioNome, periodo.matricula ?? 'S/N', - periodo.timeNome ?? 'Sem time', + periodo.gestorNome ?? 'Sem gestor', periodo.anoReferencia.toString(), formatarData(periodo.dataInicio), formatarData(periodo.dataFim), @@ -1146,7 +1146,7 @@ if (dadosTabela.length > 0) { autoTable(doc, { startY: yPosition, - head: [['Funcionário', 'Matrícula', 'Time', 'Ano Ref.', 'Início', 'Fim', 'Dias', 'Status']], + head: [['Funcionário', 'Matrícula', 'Gestor', 'Ano Ref.', 'Início', 'Fim', 'Dias', 'Status']], body: dadosTabela, theme: 'striped', headStyles: { @@ -1159,7 +1159,7 @@ columnStyles: { 0: { cellWidth: 40, fontSize: 7 }, // Funcionário 1: { cellWidth: 20, fontSize: 7 }, // Matrícula - 2: { cellWidth: 25, fontSize: 7 }, // Time + 2: { cellWidth: 25, fontSize: 7 }, // Gestor 3: { cellWidth: 15, fontSize: 7 }, // Ano Ref. 4: { cellWidth: 22, fontSize: 7 }, // Início 5: { cellWidth: 22, fontSize: 7 }, // Fim @@ -1218,7 +1218,7 @@ const dados: Array> = periodosSelecionados.map((periodo) => ({ 'Funcionário': periodo.funcionarioNome, 'Matrícula': periodo.matricula ?? 'S/N', - 'Time': periodo.timeNome ?? 'Sem time', + 'Gestor': periodo.gestorNome ?? 'Sem gestor', 'Ano Ref.': periodo.anoReferencia, 'Data Início': formatarData(periodo.dataInicio), 'Data Fim': formatarData(periodo.dataFim), @@ -1495,7 +1495,7 @@ ${index + 1} ${periodo.funcionarioNome} ${periodo.matricula ?? 'S/N'} - ${periodo.timeNome ?? 'Sem time'} + ${periodo.gestorNome ?? 'Sem gestor'} ${periodo.anoReferencia} ${formatarData(periodo.dataInicio)} ${formatarData(periodo.dataFim)} @@ -1603,7 +1603,7 @@ # Funcionário Matrícula - Time + Gestor Ano Ref. Início Fim @@ -2688,10 +2688,18 @@
-
- {periodo.funcionario?.nome.substring(0, 2).toUpperCase()} +
+ {#if periodo.funcionario && 'fotoPerfilUrl' in periodo.funcionario && periodo.funcionario.fotoPerfilUrl} + {`Foto + {:else} + {periodo.funcionario?.nome?.substring(0, 2).toUpperCase() || '??'} + {/if}
diff --git a/packages/backend/convex/ferias.ts b/packages/backend/convex/ferias.ts index 0c16830..c071260 100644 --- a/packages/backend/convex/ferias.ts +++ b/packages/backend/convex/ferias.ts @@ -80,6 +80,15 @@ export const listarTodas = query({ todasFerias.map(async (ferias) => { const funcionario = await ctx.db.get(ferias.funcionarioId); + // Buscar usuário do funcionário para obter fotoPerfilUrl + let fotoPerfilUrl: string | null = null; + if (funcionario?.usuarioId) { + const usuario = await ctx.db.get(funcionario.usuarioId); + if (usuario?.fotoPerfil) { + fotoPerfilUrl = await ctx.storage.getUrl(usuario.fotoPerfil); + } + } + // Buscar time do funcionário const membroTime = await ctx.db .query("timesMembros") @@ -114,7 +123,10 @@ export const listarTodas = query({ return { ...ferias, - funcionario, + funcionario: funcionario ? { + ...funcionario, + fotoPerfilUrl, + } : null, time, gestor, };