Statistik nur wenn Treffen auch stattgefunden hat

This commit is contained in:
Borgal
2025-08-23 00:47:28 +02:00
parent 8f5141005e
commit d581d8e0e7
2 changed files with 23 additions and 18 deletions

View File

@@ -15,6 +15,7 @@ $penalty_amount = 1;
// SQL-Abfrage, um Strafen pro Benutzer seit dem letzten Reset-Datum zu zählen
// Strafe = anwesend (attended=1) aber Farbe nicht getragen (wore_color=0)
// NEUE BEDINGUNG: Nur Meetings einbeziehen, die als abgeschlossen markiert sind.
$sql_penalties = "
SELECT
u.username,
@@ -22,7 +23,7 @@ $sql_penalties = "
FROM meeting_teilnehmer mt
JOIN meetings m ON mt.meeting_id = m.id
JOIN users u ON mt.user_id = u.id
WHERE m.meeting_date >= ? AND mt.attended = 1 AND mt.wore_color = 0
WHERE m.meeting_date >= ? AND mt.attended = 1 AND mt.wore_color = 0 AND m.is_completed = 1
GROUP BY u.username
ORDER BY penalty_count DESC
";
@@ -43,16 +44,18 @@ while ($row = mysqli_fetch_assoc($result)) {
mysqli_stmt_close($stmt);
// Neue Statistik: Ranking nach bezahlten Strafen
// NEUE BEDINGUNG: Auch hier nur abgeschlossene Meetings einbeziehen.
$paid_stats = [];
$sql_paid = "
SELECT
u.username,
COUNT(mt.user_id) AS paid_count
FROM meeting_teilnehmer mt
JOIN meetings m ON mt.meeting_id = m.id
JOIN users u ON mt.user_id = u.id
WHERE mt.paid = 1
WHERE mt.paid = 1 AND m.is_completed = 1
GROUP BY u.username
ORDER BY paid_count ASC
ORDER BY paid_count DESC
";
$result_paid = mysqli_query($conn, $sql_paid);
while ($row = mysqli_fetch_assoc($result_paid)) {
@@ -104,16 +107,13 @@ require_once 'inc/header.php';
</div>
</div>
<!-- Neuer Bereich für bezahlte Rechnungen -->
<div class="card shadow mb-4">
<div class="card-header bg-success-subtle text-success">
<h4 class="mb-0">Rechnungen</h4>
</div>
<div class="card-body">
<h5 class="card-title text-center">Ranking - Rechnung übernommen</h5>
<p class="text-center text-muted mt-2 mb-3">
Der mit der geringsten Anzahl ist das nächste Mal dran.
</p>
<div style="height: 40vh;">
<canvas id="paidChart"></canvas>
</div>
@@ -151,7 +151,7 @@ require_once 'inc/header.php';
},
title: {
display: true,
text: 'Anzahl der bezahlten Essen pro Benutzer'
text: 'Anzahl der bezahlten Rechnungen'
}
},
scales: {