$month, 'year' => $year] = fscash_normalize_month_year($month, $year); // Daten für die Summen-Tabelle abrufen $sql_sum = " SELECT c.category_id AS kategorie_id, c.name AS kategorie_name, COALESCE(SUM(e.amount), 0) AS summe_je_kategorie FROM categories c LEFT JOIN entries e ON e.category = c.category_id AND EXTRACT(YEAR FROM e.date) = :year AND EXTRACT(MONTH FROM e.date) = :month GROUP BY c.category_id, c.name ORDER BY c.category_id ASC "; $stmt_sum = $pdo->prepare($sql_sum); $stmt_sum->execute([ 'year' => $year, 'month' => $month ]); $entries_sum = $stmt_sum->fetchAll(); // Daten für den CSV-Export (alle Einträge) abrufen $sql_csv = " SELECT e.id AS id, e.user_id AS benutzer_id, u.username AS benutzer_name, c.category_id AS kategorie_id, c.name AS kategorie_name, e.amount AS betrag, pm.name AS zahlungsmethode, e.subject AS betreff, e.date AS datum FROM entries e LEFT JOIN categories c ON e.category = c.category_id LEFT JOIN users u ON e.user_id = u.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.user_id, e.category ASC "; $stmt_csv = $pdo->prepare($sql_csv); $stmt_csv->execute([ 'year' => $year, 'month' => $month ]); $entries_csv = $stmt_csv->fetchAll(); // CSV-Export-Logik if (isset($_GET['export']) && $_GET['export'] === 'csv') { header('Content-Type: text/csv; charset=utf-8'); header('Content-Disposition: attachment; filename=monatsreport_'.$year.'_'.$month.'.csv'); $output = fopen('php://output', 'w'); fputcsv($output, ['ID', 'Datum', 'Benutzer', 'Kat-ID', 'Kategorie', 'Betreff', 'Betrag', 'Zahlungsmethode'], ';'); foreach ($entries_csv as $entry) { fputcsv($output, fscash_format_report_month_csv_row($entry), ';'); } fclose($output); exit; } ?>
| ID | Kategorie | Summe |
|---|---|---|
| = htmlspecialchars($entry['kategorie_id'] ?? '') ?> | = htmlspecialchars($entry['kategorie_name'] ?? '') ?> | = htmlspecialchars(number_format($entry['summe_je_kategorie'], 2, ',', '.')) ?> |