43 lines
1.7 KiB
PHP
43 lines
1.7 KiB
PHP
<?php
|
|
require_once 'db/config.php';
|
|
|
|
header('Content-Type: application/json');
|
|
|
|
$p_start_date = date('Y-m-d', strtotime('-6 days'));
|
|
$p_end_date = date('Y-m-d');
|
|
|
|
$sql = "SELECT
|
|
d.sale_date,
|
|
COALESCE(SUM(s.total_amount), 0) AS daily_total
|
|
FROM
|
|
(SELECT CURDATE() - INTERVAL (a.a + (10 * b.a) + (100 * c.a)) DAY AS sale_date
|
|
FROM (SELECT 0 AS a UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) AS a
|
|
CROSS JOIN (SELECT 0 AS a UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) AS b
|
|
CROSS JOIN (SELECT 0 AS a UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) AS c
|
|
) AS d
|
|
LEFT JOIN
|
|
sales s ON d.sale_date = DATE(s.sale_date)
|
|
WHERE
|
|
d.sale_date BETWEEN :start_date AND :end_date
|
|
GROUP BY
|
|
d.sale_date
|
|
ORDER BY
|
|
d.sale_date ASC;";
|
|
|
|
$stmt = db()->prepare($sql);
|
|
$stmt->bindParam(':start_date', $p_start_date, PDO::PARAM_STR);
|
|
$stmt->bindParam(':end_date', $p_end_date, PDO::PARAM_STR);
|
|
$stmt->execute();
|
|
|
|
$sales_data = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
|
|
|
$labels = [];
|
|
$data = [];
|
|
|
|
foreach ($sales_data as $row) {
|
|
$labels[] = date('M d', strtotime($row['sale_date']));
|
|
$data[] = $row['daily_total'];
|
|
}
|
|
|
|
echo json_encode(['labels' => $labels, 'data' => $data]);
|