$month, 'year' => $year] = fscash_normalize_month_year($month, $year); // Kategorien aus der Datenbank abrufen $categoryStmt = $pdo->query("SELECT category_id, name FROM categories ORDER BY name"); $categories = $categoryStmt->fetchAll(); // Standardmäßig alle Kategorien auswählen, falls keine Auswahl getroffen wurde $selectedCategories = fscash_resolve_selected_categories( array_column($categories, 'category_id'), $_GET['categories'] ?? null ); // Zahlweisen aus der Datenbank abrufen $paymentMethodStmt = $pdo->query("SELECT payment_method_id, name FROM payment_methods ORDER BY name"); $paymentMethods = $paymentMethodStmt->fetchAll(); // Standardmäßig alle Zahlweisen auswählen, falls keine Auswahl getroffen wurde $selectedPaymentMethods = fscash_resolve_selected_payment_methods( array_column($paymentMethods, 'payment_method_id'), $_GET['payment_methods'] ?? null ); // Daten abrufen für den ausgewählten Monat, die ausgewählten Kategorien und Zahlweisen $sql = " SELECT u.id AS user_id, u.username, COALESCE(SUM(e.amount), 0) AS gesamtbetrag FROM users u LEFT JOIN entries e ON e.user_id = u.id AND MONTH(e.date) = ? AND YEAR(e.date) = ? AND e.category IN (" . implode(',', array_fill(0, count($selectedCategories), '?')) . ") AND e.payment_method IN (" . implode(',', array_fill(0, count($selectedPaymentMethods), '?')) . ") GROUP BY u.id, u.username; "; $params = array_merge([$month, $year], $selectedCategories, $selectedPaymentMethods); $stmt = $pdo->prepare($sql); $stmt->execute($params); $entries = $stmt->fetchAll(); // Namen der aktuell ausgewählten Kategorien ermitteln (für den Link zum Dashboard) $selectedCategoryNames = []; foreach ($categories as $category) { if (in_array($category['category_id'], $selectedCategories)) { $selectedCategoryNames[] = $category['name']; } } // Namen der aktuell ausgewählten Zahlweisen ermitteln (für den Link zum Dashboard) $selectedPaymentMethodNames = []; foreach ($paymentMethods as $paymentMethod) { if (in_array($paymentMethod['payment_method_id'], $selectedPaymentMethods)) { $selectedPaymentMethodNames[] = $paymentMethod['name']; } } ?> FSCash - Personenreport





Zahler Summe