diff --git a/apps/web/src/lib/components/AprovarAusencias.svelte b/apps/web/src/lib/components/AprovarAusencias.svelte
index f58e22d..fd7279f 100644
--- a/apps/web/src/lib/components/AprovarAusencias.svelte
+++ b/apps/web/src/lib/components/AprovarAusencias.svelte
@@ -254,6 +254,80 @@
+
+ {#if solicitacao.status === 'aprovado'}
+
+
+
+
Reprovado
+ {#if solicitacao.gestor}
+
+ Por: {solicitacao.gestor.nome}
+
+ {/if}
+ {#if solicitacao.dataReprovacao}
+
+ Em: {new Date(solicitacao.dataReprovacao).toLocaleString('pt-BR')}
+
+ {/if}
+ {#if solicitacao.motivoReprovacao}
+
+
Motivo:
+
{solicitacao.motivoReprovacao}
+
+ {/if}
+
+
+ {/if}
+
+
+ {#if solicitacao.historicoAlteracoes && solicitacao.historicoAlteracoes.length > 0}
+
diff --git a/apps/web/src/lib/components/AprovarFerias.svelte b/apps/web/src/lib/components/AprovarFerias.svelte
index a478e42..10231b0 100644
--- a/apps/web/src/lib/components/AprovarFerias.svelte
+++ b/apps/web/src/lib/components/AprovarFerias.svelte
@@ -410,13 +410,48 @@
{/if}
{/if}
+
+ {#if periodo.status === 'aprovado' || periodo.status === 'data_ajustada_aprovada' || periodo.status === 'EmFérias'}
+
+
+
+
Aprovado
+ {#if periodo.gestor}
+
+ Por: {periodo.gestor.nome}
+
+ {/if}
+ {#if periodo.dataAprovacao}
+
+ Em: {formatarData(periodo.dataAprovacao)}
+
+ {/if}
+
+
+ {/if}
+
- {#if periodo.status === 'reprovado' && periodo.motivoReprovacao}
+ {#if periodo.status === 'reprovado'}
-
-
Motivo da Reprovação:
-
{periodo.motivoReprovacao}
+
+
Reprovado
+ {#if periodo.gestor}
+
+ Por: {periodo.gestor.nome}
+
+ {/if}
+ {#if periodo.dataReprovacao}
+
+ Em: {formatarData(periodo.dataReprovacao)}
+
+ {/if}
+ {#if periodo.motivoReprovacao}
+
+
Motivo:
+
{periodo.motivoReprovacao}
+
+ {/if}
{/if}
diff --git a/apps/web/src/routes/(dashboard)/perfil/+page.svelte b/apps/web/src/routes/(dashboard)/perfil/+page.svelte
index 5e41ee1..9df859e 100644
--- a/apps/web/src/routes/(dashboard)/perfil/+page.svelte
+++ b/apps/web/src/routes/(dashboard)/perfil/+page.svelte
@@ -62,10 +62,12 @@
type FuncionarioAtual = FunctionReturnType
;
type TimeAtual = FunctionReturnType;
+ type TimesSubordinados = FunctionReturnType;
type MinhasSolicitacoes = FunctionReturnType;
type MinhasAusencias = FunctionReturnType;
let funcionarioEstavel = $state(null);
let meuTimeEstavel = $state(null);
+ let timesSubordinadosEstavel = $state([]);
let minhasSolicitacoesEstaveis = $state([]);
let minhasAusenciasEstaveis = $state([]);
@@ -81,6 +83,8 @@
>('meu-perfil');
let periodoSelecionado = $state | null>(null);
+ let periodoHistoricoFerias = $state | null>(null);
+ let ausenciaHistorico = $state | null>(null);
let mostrarModalFoto = $state(false);
let uploadandoFoto = $state(false);
@@ -261,6 +265,13 @@
}
});
+ $effect(() => {
+ if (timesSubordinadosQuery?.data && Array.isArray(timesSubordinadosQuery.data)) {
+ timesSubordinadosEstavel = timesSubordinadosQuery.data;
+ }
+ // Não limpar durante carregamento (quando undefined)
+ });
+
// Deriveds - agora apenas extraem dados, não criam queries
const funcionario = $derived(funcionarioEstavel);
const solicitacoesSubordinados = $derived.by(() => {
@@ -274,14 +285,14 @@
const meuTime = $derived(meuTimeEstavel);
const minhasSolicitacoes = $derived(minhasSolicitacoesEstaveis);
const minhasAusencias = $derived(minhasAusenciasEstaveis);
- const timesSubordinados = $derived(timesSubordinadosQuery?.data || []);
- const meusTimesGestor = $derived(timesSubordinados);
+ const timesSubordinados = $derived(timesSubordinadosEstavel);
+ const meusTimesGestor = $derived(timesSubordinadosEstavel);
const rolePermiteAprovacao = $derived(
currentUser?.data?.role?.nome === 'TI_MASTER' || currentUser?.data?.role?.nome === 'TI_ADMIN'
);
- const ehGestor = $derived((timesSubordinados || []).length > 0 || rolePermiteAprovacao);
+ const ehGestor = $derived(timesSubordinadosEstavel.length > 0 || rolePermiteAprovacao);
// Estados estáveis para Meus Chamados
let chamadosEstaveis = $state>>([]);
@@ -1613,6 +1624,7 @@
Dias |
Status |
Solicitado em |
+ Histórico |
@@ -1650,6 +1662,21 @@
{new Date(periodo._creationTime).toLocaleDateString('pt-BR')} |
+
+ {#if periodo.historicoAlteracoes && periodo.historicoAlteracoes.length > 0}
+
+ {:else}
+ -
+ {/if}
+ |
{/each}
@@ -1809,6 +1836,7 @@
Motivo |
Status |
Solicitado em |
+ Histórico |
@@ -1837,6 +1865,21 @@
{new Date(ausencia.criadoEm).toLocaleDateString('pt-BR')} |
+
+ {#if ausencia.historicoAlteracoes && ausencia.historicoAlteracoes.length > 0}
+
+ {:else}
+ -
+ {/if}
+ |
{/each}
@@ -1890,6 +1933,7 @@
Período |
Dias |
Status |
+ Histórico |
Ações |
@@ -1947,6 +1991,21 @@
{getStatusTexto(periodo.status)}
+
+ {#if periodo.historicoAlteracoes && periodo.historicoAlteracoes.length > 0}
+
+ {:else}
+ -
+ {/if}
+ |
{#if periodo.status === 'aguardando_aprovacao'}
@@ -2021,6 +2080,7 @@
| Período |
Dias |
Status |
+ Histórico |
Ações |
@@ -2081,6 +2141,21 @@
{getStatusTexto(ausencia.status)}
+
+ {#if ausencia.historicoAlteracoes && ausencia.historicoAlteracoes.length > 0}
+
+ {:else}
+ -
+ {/if}
+ |
{#if ausencia.status === 'aguardando_aprovacao'}
@@ -2563,6 +2638,94 @@
{/await}
{/if}
+
+{#if periodoHistoricoFerias}
+ {#await client.query(api.ferias.obterDetalhes, { feriasId: periodoHistoricoFerias }) then detalhes}
+ {#if detalhes && detalhes.historicoAlteracoes && detalhes.historicoAlteracoes.length > 0}
+
+ {/if}
+ {/await}
+{/if}
+
+
+{#if ausenciaHistorico}
+ {@const ausenciaComHistorico = ausenciasFiltradas.find((a) => a._id === ausenciaHistorico) || ausenciasSubordinados.find((a) => a._id === ausenciaHistorico)}
+ {#if ausenciaComHistorico && ausenciaComHistorico.historicoAlteracoes && ausenciaComHistorico.historicoAlteracoes.length > 0}
+
+ {/if}
+{/if}
+
|