Correcao ferias #17

Merged
deyvisonwanderley merged 4 commits from correcao-ferias into master 2025-11-13 11:51:35 +00:00
13 changed files with 2377 additions and 1211 deletions
Showing only changes of commit fd7d3729c1 - Show all commits

View File

@@ -63,6 +63,28 @@
processando = true; processando = true;
erro = ''; erro = '';
// Validar se as datas e condições estão dentro do regime do funcionário
if (!solicitacao.funcionario?._id) {
erro = 'Funcionário não encontrado';
processando = false;
return;
}
const validacao = await client.query(api.saldoFerias.validarSolicitacao, {
funcionarioId: solicitacao.funcionario._id,
anoReferencia: solicitacao.anoReferencia,
periodos: solicitacao.periodos.map((p) => ({
dataInicio: p.dataInicio,
dataFim: p.dataFim
}))
});
if (!validacao.valido) {
erro = `Não é possível aprovar: ${validacao.erros.join('; ')}`;
processando = false;
return;
}
await client.mutation(api.ferias.aprovar, { await client.mutation(api.ferias.aprovar, {
solicitacaoId: solicitacao._id, solicitacaoId: solicitacao._id,
gestorId: gestorId gestorId: gestorId
@@ -105,6 +127,37 @@
processando = true; processando = true;
erro = ''; erro = '';
// Validar se as datas ajustadas e condições estão dentro do regime do funcionário
if (!solicitacao.funcionario?._id) {
erro = 'Funcionário não encontrado';
processando = false;
return;
}
// Validar todos os períodos ajustados
for (const periodo of periodos) {
if (!periodo.dataInicio || !periodo.dataFim) {
erro = 'Todos os períodos devem ter data de início e fim';
processando = false;
return;
}
}
const validacao = await client.query(api.saldoFerias.validarSolicitacao, {
funcionarioId: solicitacao.funcionario._id,
anoReferencia: solicitacao.anoReferencia,
periodos: periodos.map((p) => ({
dataInicio: p.dataInicio,
dataFim: p.dataFim
}))
});
if (!validacao.valido) {
erro = `Não é possível aprovar com ajuste: ${validacao.erros.join('; ')}`;
processando = false;
return;
}
await client.mutation(api.ferias.ajustarEAprovar, { await client.mutation(api.ferias.ajustarEAprovar, {
solicitacaoId: solicitacao._id, solicitacaoId: solicitacao._id,
gestorId: gestorId, gestorId: gestorId,