Skip to content

Vacation Service

Orchestrator · Remuneraciones

ServiceVacacionesSaldos

VacationService administra solicitudes de vacaciones, cálculo de días hábiles y saldos por empleado. Sus resultados alimentan asistencia, revisión de saldos y cálculo de finiquitos.

PiezaRuta
Servicesrc/domain/vacations/VacationService.ts
Repositorysrc/domain/vacations/VacationRepository.ts
Routesrc/routes/remuneraciones/vacations.ts
Tablaremuneraciones.vacaciones
MétodoUso
findById(tenantDb, id)Obtiene solicitud por identificador.
findAll(tenantDb, filter)Lista solicitudes con filtros.
findRecent(tenantDb)Obtiene solicitudes recientes.
getBalances(tenantDb, filter)Obtiene saldos de vacaciones por empleado.
create(tenantDb, userId, data)Crea solicitud y calcula días hábiles.
update(tenantDb, userId, id, data)Actualiza solicitud existente.
delete(tenantDb, id)Elimina solicitud según regla vigente.
ReglaMotivo
empleado_id obligatorioLa solicitud debe pertenecer a un trabajador.
fecha_inicio y fecha_fin obligatoriasPermite calcular días hábiles.
fecha_fin >= fecha_inicioEvita rangos inválidos.
Estados válidosControla flujo PENDIENTE, APROBADA, RECHAZADA, ANULADA.
Sin solapamiento aprobadoEvita duplicar vacaciones en un mismo periodo.
import { VacationService } from '@/domain/vacations/VacationService';
await VacationService.create('tenant_db', 'user-123', {
empleado_id: 'emp-uuid',
fecha_inicio: '2026-02-01',
fecha_fin: '2026-02-15',
estado_solicitud: 'PENDIENTE',
comentario: 'Vacaciones de verano'
});
const { rows } = await VacationService.getBalances('tenant_db', {});