Selamat Datang,
Total Saldo
session_start(); ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(E_ALL); require_once 'conf/db.php'; require_once 'includes/csrf.php'; require_once 'includes/functions.php'; if (!isset($_SESSION['user_id'])) { header("Location: auth/splash.php"); exit(); } $user_id = $_SESSION['user_id']; $username = $_SESSION['username']; $full_name = $_SESSION['full_name'] ?? $_SESSION['username']; // Fetch Categories (Grouped by Type) $stmt = $pdo->prepare("SELECT * FROM categories WHERE user_id IS NULL OR user_id = ? ORDER BY type, name"); $stmt->execute([$user_id]); $all_categories = $stmt->fetchAll(); $income_categories = []; $expense_categories = []; foreach ($all_categories as $cat) { if ($cat['type'] === 'income') $income_categories[] = $cat; else $expense_categories[] = $cat; } // Fetch Data $balance = getBalance($pdo, $user_id); $monthly_summary = getMonthlySummary($pdo, $user_id); $recent_transactions = getRecentTransactions($pdo, $user_id); // Fetch Top 3 Budgets for Dashboard // Fetch Top 3 Budgets for Dashboard $current_month = date('Y-m'); $stmt = $pdo->prepare(" SELECT b.*, c.name, c.icon, COALESCE(e.total_spent, 0) as spent FROM budgets b JOIN categories c ON b.category_id = c.id LEFT JOIN ( SELECT category_id, SUM(amount) as total_spent FROM expenses WHERE user_id = ? AND DATE_FORMAT(date, '%Y-%m') = ? GROUP BY category_id ) e ON b.category_id = e.category_id WHERE b.user_id = ? AND b.month = ? ORDER BY b.amount DESC LIMIT 3 "); $stmt->execute([$user_id, $current_month, $user_id, $current_month]); $dashboard_budgets = $stmt->fetchAll(); ?>
Selamat Datang,
Total Saldo