36398-vm/get_leave_events.php
2025-11-28 03:31:58 +00:00

46 lines
1.2 KiB
PHP

<?php
header('Content-Type: application/json');
require_once 'db/config.php';
session_start();
if (!isset($_SESSION['loggedin']) || $_SESSION['loggedin'] !== true) {
echo json_encode([]);
exit;
}
if ($_SESSION['role'] !== 'Admin' && $_SESSION['role'] !== 'HR' && $_SESSION['role'] !== 'Employee') {
echo json_encode([]);
exit;
}
$events = [];
try {
$pdo = db();
$sql = "SELECT lr.start_date as start, lr.end_date as end, u.username as title FROM leave_requests lr JOIN users u ON lr.employee_id = u.id WHERE lr.status = 'approved'";
if ($_SESSION['role'] == 'Employee') {
$sql .= " AND lr.employee_id = :employee_id";
}
$stmt = $pdo->prepare($sql);
if ($_SESSION['role'] == 'Employee') {
$stmt->bindParam(':employee_id', $_SESSION['id'], PDO::PARAM_INT);
}
$stmt->execute();
$events = $stmt->fetchAll(PDO::FETCH_ASSOC);
// Adjust end date for FullCalendar
foreach ($events as &$event) {
$event['end'] = date('Y-m-d', strtotime($event['end'] . ' +1 day'));
}
} catch (PDOException $e) {
// On error, return empty array
echo json_encode([]);
exit;
}
echo json_encode($events);
?>