$date_from . ' 00:00:00', ':to' => $date_to . ' 23:59:59']; $outlet_query = ""; if ($outlet_id !== 'all') { $outlet_query = " AND o.outlet_id = :outlet_id"; $params[':outlet_id'] = $outlet_id; } try { // Outlets for filter $outlets = $pdo->query("SELECT id, name FROM outlets WHERE is_deleted = 0")->fetchAll(); // Daily Sales $daily_sales = $pdo->prepare("SELECT DATE(o.created_at) as date, SUM(o.total_amount) as total FROM orders o WHERE o.created_at BETWEEN :from AND :to $outlet_query AND o.status != 'cancelled' GROUP BY DATE(o.created_at) ORDER BY date ASC"); $daily_sales->execute($params); $daily_sales_data = $daily_sales->fetchAll(); // Staff Sales $staff_sales = $pdo->prepare("SELECT u.username, SUM(o.total_amount) as total FROM orders o JOIN users u ON o.user_id = u.id WHERE o.created_at BETWEEN :from AND :to $outlet_query AND o.status != 'cancelled' GROUP BY u.id ORDER BY total DESC"); $staff_sales->execute($params); $staff_sales_data = $staff_sales->fetchAll(); // Outlet Sales $outlet_sales = $pdo->prepare("SELECT ou.name, SUM(o.total_amount) as total FROM orders o JOIN outlets ou ON o.outlet_id = ou.id WHERE o.created_at BETWEEN :from AND :to $outlet_query AND o.status != 'cancelled' GROUP BY ou.id ORDER BY total DESC"); $outlet_sales->execute($params); $outlet_sales_data = $outlet_sales->fetchAll(); // Category Sales $cat_sales = $pdo->prepare("SELECT c.name, SUM(oi.quantity * oi.unit_price) as total FROM order_items oi JOIN orders o ON oi.order_id = o.id JOIN products p ON oi.product_id = p.id JOIN categories c ON p.category_id = c.id WHERE o.created_at BETWEEN :from AND :to $outlet_query AND o.status != 'cancelled' GROUP BY c.id ORDER BY total DESC"); $cat_sales->execute($params); $cat_sales_data = $cat_sales->fetchAll(); // Expenses $expenses = $pdo->prepare("SELECT ec.name, SUM(e.amount) as total FROM expenses e JOIN expense_categories ec ON e.category_id = ec.id WHERE e.expense_date BETWEEN :from AND :to AND (:outlet_id_all = 'all' OR e.outlet_id = :outlet_id_exp) GROUP BY ec.id"); $exp_params = [':from' => $date_from, ':to' => $date_to, ':outlet_id_all' => $outlet_id, ':outlet_id_exp' => $outlet_id]; $expenses->execute($exp_params); $expense_data = $expenses->fetchAll(); // Summary $total_sales = array_sum(array_column($daily_sales_data, 'total')); $total_expenses = array_sum(array_column($expense_data, 'total')); $net_profit = $total_sales - $total_expenses; } catch (PDOException $e) { echo '