46 lines
1.2 KiB
PHP
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);
|
|
?>
|