$month, 'year' => $year] = fscash_normalize_month_year($month, $year); // Daten abrufen $sql="WITH user_names AS ( SELECT p.id, b_single.username AS zahler, GROUP_CONCAT(b_array.username) AS personen FROM entries p LEFT JOIN users b_single ON p.user_id = b_single.id JOIN JSON_TABLE(p.person, '$[*]' COLUMNS(id INT PATH '$')) AS jt LEFT JOIN users b_array ON jt.id = b_array.id GROUP BY p.id, b_single.username ) SELECT e.*, un.zahler, un.personen, c.name AS kategorie, pm.name AS zahlweise FROM entries e JOIN user_names un ON e.id = un.id LEFT JOIN categories c ON e.category = c.category_id LEFT JOIN payment_methods pm ON e.payment_method = pm.payment_method_id WHERE EXTRACT(YEAR FROM e.date) = :year AND EXTRACT(MONTH FROM e.date) = :month ORDER BY e.date DESC, id desc; "; $stmt = $pdo->prepare($sql); $stmt->execute([ 'year' => $year, 'month' => $month ]); $entries = $stmt->fetchAll(); // Eindeutige Werte für die Filter-Dropdowns ermitteln $filterZahler = []; $filterPersonen = []; $filterKategorie = []; $filterZahlweise = []; foreach ($entries as $entry) { if (!empty($entry['zahler'])) { $filterZahler[$entry['zahler']] = true; } if (!empty($entry['personen'])) { foreach (explode(',', $entry['personen']) as $person) { $person = trim($person); if ($person !== '') { $filterPersonen[$person] = true; } } } if (!empty($entry['kategorie'])) { $filterKategorie[$entry['kategorie']] = true; } if (!empty($entry['zahlweise'])) { $filterZahlweise[$entry['zahlweise']] = true; } } // Vorauswahl der Filter aus GET-Parametern (z. B. Link aus einem Report) $presetZahler = isset($_GET['zahler']) ? $_GET['zahler'] : ''; $presetKategorie = isset($_GET['kategorie']) ? $_GET['kategorie'] : ''; $presetKategorien = isset($_GET['kategorien']) && is_array($_GET['kategorien']) ? $_GET['kategorien'] : []; $filterZahler = array_keys($filterZahler); $filterPersonen = array_keys($filterPersonen); $filterKategorie = array_keys($filterKategorie); $filterZahlweise = array_keys($filterZahlweise); sort($filterZahler, SORT_STRING | SORT_FLAG_CASE); sort($filterPersonen, SORT_STRING | SORT_FLAG_CASE); sort($filterKategorie, SORT_STRING | SORT_FLAG_CASE); sort($filterZahlweise, SORT_STRING | SORT_FLAG_CASE); ?> FSCash - Dashboard

Datum Zahler Person Kategorie Zahlweise Betreff Betrag Hinweis  
 
Summe 0,00
+