feat: add validation for vacation request approval and adjustments
- Implemented validation checks to ensure employee and vacation period data are valid before approval. - Enhanced error handling to provide specific feedback for invalid requests. - Added checks for adjusted vacation periods to ensure all required dates are present. - Improved overall user experience by ensuring only valid requests can be processed.
This commit is contained in:
@@ -63,6 +63,28 @@
|
||||
processando = true;
|
||||
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, {
|
||||
solicitacaoId: solicitacao._id,
|
||||
gestorId: gestorId
|
||||
@@ -105,6 +127,37 @@
|
||||
processando = true;
|
||||
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, {
|
||||
solicitacaoId: solicitacao._id,
|
||||
gestorId: gestorId,
|
||||
|
||||
Reference in New Issue
Block a user