diff --git a/includes/Api/AnalyticsController.php b/includes/Api/AnalyticsController.php index 625cfc8..7a6f132 100644 --- a/includes/Api/AnalyticsController.php +++ b/includes/Api/AnalyticsController.php @@ -321,20 +321,37 @@ class AnalyticsController { ORDER BY date ASC ", $days)); - // Format sales chart + // Create a map of existing data + $data_map = []; + foreach ($salesChart as $row) { + $data_map[$row->date] = [ + 'revenue' => round(floatval($row->revenue), 2), + 'orders' => intval($row->orders), + ]; + } + + // Fill in ALL dates in the range (including dates with no data) $formatted_sales = []; $total_revenue = 0; $total_orders = 0; - foreach ($salesChart as $row) { - $revenue = round(floatval($row->revenue), 2); - $orders = intval($row->orders); + for ($i = $days - 1; $i >= 0; $i--) { + $date = date('Y-m-d', strtotime("-{$i} days")); + + if (isset($data_map[$date])) { + $revenue = $data_map[$date]['revenue']; + $orders = $data_map[$date]['orders']; + } else { + // No data for this date, fill with zeros + $revenue = 0.00; + $orders = 0; + } $total_revenue += $revenue; $total_orders += $orders; $formatted_sales[] = [ - 'date' => $row->date, + 'date' => $date, 'revenue' => $revenue, 'orders' => $orders, ];