diff --git a/admin/ratings.php b/admin/ratings.php index 19eb9bd..91ba250 100644 --- a/admin/ratings.php +++ b/admin/ratings.php @@ -8,36 +8,61 @@ if (function_exists('require_permission')) { $pdo = db(); $tab = $_GET['tab'] ?? 'staff'; +$start_date = $_GET['start_date'] ?? ''; +$end_date = $_GET['end_date'] ?? ''; + +$where_staff = ""; +$where_service = ""; +$params = []; + +if ($start_date) { + $where_staff .= " AND r.created_at >= :start_date"; + $where_service .= " AND created_at >= :start_date"; + $params[':start_date'] = $start_date . ' 00:00:00'; +} +if ($end_date) { + $where_staff .= " AND r.created_at <= :end_date"; + $where_service .= " AND created_at <= :end_date"; + $params[':end_date'] = $end_date . ' 23:59:59'; +} // Fetch Staff summary stats -$summaryStmt = $pdo->query(" +$summaryQuery = " SELECT u.id, u.full_name, u.username, u.profile_pic, AVG(r.rating) as avg_rating, COUNT(r.id) as total_ratings FROM users u JOIN staff_ratings r ON u.id = r.user_id + WHERE 1=1 $where_staff GROUP BY u.id ORDER BY avg_rating DESC -"); +"; +$summaryStmt = $pdo->prepare($summaryQuery); +$summaryStmt->execute($params); $summaries = $summaryStmt->fetchAll(PDO::FETCH_ASSOC); // Fetch Service summary stats -$serviceSummaryStmt = $pdo->query(" - SELECT AVG(rating) as avg_rating, COUNT(id) as total_ratings FROM service_ratings -"); +$serviceSummaryQuery = " + SELECT AVG(rating) as avg_rating, COUNT(id) as total_ratings + FROM service_ratings + WHERE 1=1 $where_service +"; +$serviceSummaryStmt = $pdo->prepare($serviceSummaryQuery); +$serviceSummaryStmt->execute($params); $serviceSummary = $serviceSummaryStmt->fetch(PDO::FETCH_ASSOC); if ($tab === 'service') { - $query = "SELECT * FROM service_ratings ORDER BY created_at DESC"; + $query = "SELECT * FROM service_ratings WHERE 1=1 $where_service ORDER BY created_at DESC"; } else { $query = " SELECT r.*, u.full_name, u.username, u.profile_pic FROM staff_ratings r JOIN users u ON r.user_id = u.id + WHERE 1=1 $where_staff ORDER BY r.created_at DESC "; } -$pagination = paginate_query($pdo, $query); +$pagination = paginate_query($pdo, $query, $params); $ratings = $pagination['data']; ?> @@ -53,14 +78,41 @@ $ratings = $pagination['data']; + +
+
+
+ +
+ + +
+
+ + +
+
+ + + + + + +
+
+
+
+