prepare(" SELECT l.*, e.name_en FROM leave_requests l JOIN employees e ON l.employee_id = e.id WHERE $where ORDER BY l.created_at DESC LIMIT $limit OFFSET $offset "); $logs->execute($params); $requests = $logs->fetchAll(PDO::FETCH_ASSOC); $total_logs = $pdo->prepare("SELECT COUNT(*) FROM leave_requests l WHERE $where"); $total_logs->execute($params); $total_rows = $total_logs->fetchColumn(); $total_pages = ceil($total_rows / $limit); $employees = $pdo->query("SELECT id, name_en FROM employees ORDER BY name_en")->fetchAll(PDO::FETCH_KEY_PAIR); // Handle Actions if ($_SERVER['REQUEST_METHOD'] === 'POST') { if (isset($_POST['add_leave'])) { $emp_id = $_POST['employee_id']; $type = $_POST['leave_type']; $start = $_POST['start_date']; $end = $_POST['end_date']; $reason = $_POST['reason']; $diff = strtotime($end) - strtotime($start); $days = round($diff / (60 * 60 * 24)) + 1; $stmt = $pdo->prepare("INSERT INTO leave_requests (employee_id, leave_type, start_date, end_date, days, reason, status) VALUES (?, ?, ?, ?, ?, ?, 'Pending')"); $stmt->execute([$emp_id, $type, $start, $end, $days, $reason]); } elseif (isset($_POST['approve_leave'])) { $stmt = $pdo->prepare("UPDATE leave_requests SET status = 'Approved' WHERE id = ?"); $stmt->execute([$_POST['id']]); } elseif (isset($_POST['reject_leave'])) { $stmt = $pdo->prepare("UPDATE leave_requests SET status = 'Rejected' WHERE id = ?"); $stmt->execute([$_POST['id']]); } elseif (isset($_POST['delete_leave'])) { $stmt = $pdo->prepare("DELETE FROM leave_requests WHERE id = ?"); $stmt->execute([$_POST['id']]); } echo ""; } ?>
| Employee | Type | Duration | Days | Reason | Status | Actions |
|---|---|---|---|---|---|---|
| to | ||||||
| No requests found | ||||||