setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(Exception $e) {}
// Fetch Data for KPIs
$total_sales = $pdo->query("SELECT SUM(amount_received) FROM payments")->fetchColumn() ?? 0;
$total_admissions = $pdo->query("SELECT COUNT(id) FROM members")->fetchColumn() ?? 0;
$pending_fees = $pdo->query("SELECT SUM(m.total_fees) - COALESCE((SELECT SUM(amount_received) FROM payments WHERE member_id = m.id), 0) FROM members m")->fetchColumn() ?? 0;
// Fetch Expiring List (Calculated using the 1 month rule rule)
$expiring = $pdo->query("SELECT full_name, expiry_date FROM members WHERE expiry_date BETWEEN CURDATE() AND DATE_ADD(CURDATE(), INTERVAL 14 DAY) ORDER BY expiry_date ASC")->fetchAll(PDO::FETCH_ASSOC);
// Fetch Lists for Tables
$members = $pdo->query("SELECT * FROM members ORDER BY id DESC")->fetchAll(PDO::FETCH_ASSOC);
$ledger = $pdo->query("SELECT p.payment_date, m.full_name, p.amount_received FROM payments p JOIN members m ON p.member_id = m.id ORDER BY p.id DESC")->fetchAll(PDO::FETCH_ASSOC);
?>