function solicitarVacaciones($inicio, $fin) { global $pdo; $userId = $_SESSION['user_id']; $dias = calcularDiferenciaDias($inicio, $fin); if ($dias <= 0) { echo "Rango de fechas inválido."; exit; } $disponibles = calcularDiasDisponibles($userId); if ($dias > $disponibles) { echo "No tienes suficientes días disponibles."; exit; } // Insertar en base de datos $stmt = $pdo->prepare("INSERT INTO vacaciones (user_id, fecha_inicio, fecha_fin, dias_solicitados, estado, fecha_solicitud) VALUES (?, ?, ?, ?, 'Pendiente', NOW())"); $stmt->execute([$userId, $inicio, $fin, $dias]); // Generar PDF generarSolicitudVacacionesPDF($userId, $inicio, $fin, $dias); header("Location: /vacaciones"); exit; } function calcularDiferenciaDias($inicio, $fin) { $date1 = new DateTime($inicio); $date2 = new DateTime($fin); $diff = $date1->diff($date2); return $diff->invert === 1 ? -$diff->days : $diff->days + 1; }