From b1f6d23e696e5d2b68a122b7a60b2588d8b2144d Mon Sep 17 00:00:00 2001 From: fds2610 Date: Fri, 16 Jan 2026 15:51:52 +0100 Subject: [PATCH] erste Version der Reports --- README.md | 29 +++++------ html/assets/css/style.css | 6 +++ html/dashboard.php | 9 ++-- html/rep-month.php | 99 +++++++++++++++++++++++++++++++++++++ html/rep-person.php | 101 ++++++++++++++++++++++++++++++++++++++ 5 files changed, 227 insertions(+), 17 deletions(-) create mode 100644 html/rep-month.php create mode 100644 html/rep-person.php diff --git a/README.md b/README.md index 037ad42..4cabfd5 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,21 @@ Dokumentiere Ausgaben on-the-go als Webapp -v 1.0 +V.1.1 (geplant) + +Als nächstes kommen Auswertungen / Summen + +Auswertungen: + +- [X] Monatssumme je Kategorie + - [ ] Filter monatsweise + - [ ] monate durchblättern zurück und vor, defaut aktueller Monat +- [X] Monatssumme je Person + - [ ] Haken, welche Kategorieen eingeschlossen werden + - [ ] Filter monatssummen + - [ ] monate durchblättern zurück und vor, defaut aktueller Monat + +V.1.0 Das erste Release enthält: @@ -51,16 +65,3 @@ Weiteres - [x] Betrag deutsche Zahlen und rechtsbündig - [x] Kommentarfeld freitext drei Zeilen -V.1.1 - -Als nächstes kommen Auswertungen / Summen - -Auswertungen: - -- [ ] Monatssumme je Kategorie - - [ ] Filter monatsweise - - [ ] monate durchblättern zurück und vor, defaut aktueller Monat -- [ ] Monatssumme je Person - - [ ] Haken, welche Kategorieen eingeschlossen werden - - [ ] Filter monatssummen - - [ ] monate durchblättern zurück und vor, defaut aktueller Monat diff --git a/html/assets/css/style.css b/html/assets/css/style.css index fd9e837..b9e5d75 100644 --- a/html/assets/css/style.css +++ b/html/assets/css/style.css @@ -217,6 +217,12 @@ table { box-shadow: var(--box-shadow); } +table.thin { + width: 250px; + display: inline-table; /* schrumpft auf Inhalt */ + margin: 0 auto; /* horizontal zentrieren */ +} + th, td { padding: 12px 15px; text-align: left; diff --git a/html/dashboard.php b/html/dashboard.php index 02497b8..7cdcabc 100644 --- a/html/dashboard.php +++ b/html/dashboard.php @@ -45,8 +45,11 @@ 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) = EXTRACT(YEAR FROM CURRENT_DATE()) +AND EXTRACT(MONTH FROM e.date) = EXTRACT(MONTH FROM CURRENT_DATE()) ORDER BY -date DESC; +e.date DESC; "; $stmt = $pdo->prepare($sql); @@ -69,8 +72,8 @@ $entries = $stmt->fetchAll(); Logout diff --git a/html/rep-month.php b/html/rep-month.php new file mode 100644 index 0000000..b6d60e1 --- /dev/null +++ b/html/rep-month.php @@ -0,0 +1,99 @@ +prepare("SELECT * FROM users WHERE username = ?"); + $stmt->execute([$_POST['username']]); + $user = $stmt->fetch(); + if ($user && password_verify($_POST['password'], $user['password'])) { + $_SESSION['user_id'] = $user['id']; + } else { + header('Location: index.php'); + exit; + } +} + +// Daten abrufen +$sql="SELECT +c.category_id AS kategorie_id, +c.name AS kategorie_name, +SUM(e.amount) AS summe_je_kategorie +FROM +entries e +LEFT JOIN categories c ON e.category = c.category_id +WHERE +EXTRACT(YEAR FROM e.date) = EXTRACT(YEAR FROM CURRENT_DATE()) +AND EXTRACT(MONTH FROM e.date) = EXTRACT(MONTH FROM CURRENT_DATE()) +GROUP BY +c.category_id, c.name +ORDER BY +summe_je_kategorie DESC; +"; + +$stmt = $pdo->prepare($sql); +$stmt->execute(); +$entries = $stmt->fetchAll(); +?> + + + + + +FSCash - Dashboard + + + +
+ + + + + + + + + + + + + + + + + + + + +
IDKategorieSumme
+ + + + ++ +
+ + + + diff --git a/html/rep-person.php b/html/rep-person.php new file mode 100644 index 0000000..6a17c3a --- /dev/null +++ b/html/rep-person.php @@ -0,0 +1,101 @@ +prepare("SELECT * FROM users WHERE username = ?"); + $stmt->execute([$_POST['username']]); + $user = $stmt->fetch(); + if ($user && password_verify($_POST['password'], $user['password'])) { + $_SESSION['user_id'] = $user['id']; + } else { + header('Location: index.php'); + exit; + } +} + +// Daten abrufen +$sql="WITH user_names AS ( + SELECT + p.id, +b_single.username AS zahler +FROM +entries p +LEFT JOIN users b_single ON p.user_id = b_single.id +) +SELECT +un.zahler, +SUM(e.amount) AS summe_je_person +FROM +entries e +JOIN user_names un ON e.id = un.id +WHERE +EXTRACT(YEAR FROM e.date) = EXTRACT(YEAR FROM CURRENT_DATE()) +AND EXTRACT(MONTH FROM e.date) = EXTRACT(MONTH FROM CURRENT_DATE()) +AND e.category IN (1, 2, 3) +GROUP BY +un.zahler +ORDER BY +summe_je_person DESC; +"; + +$stmt = $pdo->prepare($sql); +$stmt->execute(); +$entries = $stmt->fetchAll(); +?> + + + + + +FSCash - Dashboard + + + +
+ + + + + + + + + + + + + + + + + + +
ZahlerSumme
+ + + + + +