Haushaltsbuch



🏠Pro Seite

Das Modul ist ein persönliches Haushaltsbuch für Ausgaben und Einnahmen. Jede Person bekommt beim ersten Aufruf automatisch ein eigenes Buch, das nur sie selbst sieht. Ein Eintrag ist ein Beleg mit Datum, Bezeichnung und optional Bestellnummer, Notiz und Belegdateien. Der Betrag lässt sich auf mehrere Positionen aufteilen, jede mit eigener Zuständigkeit und Kategorie. Fixkosten werden automatisch gebucht, Monat und Jahr werden ausgewertet und lassen sich drucken oder als CSV exportieren.

Allgemein

Einträge und Positionen


Ein Eintrag ist entweder eine Ausgabe oder eine Einnahme. Standardmäßig hat er eine Position mit Betrag, Zuständigkeit und Kategorie. Über „Aufteilen“ kommen weitere Positionen hinzu, zum Beispiel wenn eine Amazon-Bestellung teils Weihnachtsgeschenke und teils Haushaltsbedarf enthält. Bestellnummer und Belegdateien stehen dann nur einmal am Eintrag, die Auswertung rechnet über die Positionen.

Beträge werden in deutscher Schreibweise eingegeben: „12,50“, „1.234,56“ und auch „12.50“ funktionieren. Ein Punkt mit genau drei Ziffern danach gilt als Tausenderpunkt, „1.500“ sind also 1.500 Euro.

Zuständigkeiten und Kategorien


Jede Position hat zwei Felder: die Zuständigkeit (wer trägt die Kosten, etwa „Ich“ oder „Gemeinsam“) und die Kategorie (wofür, etwa „Lebensmittel“ oder „Weihnachten“). Beide Begriffe werden beim ersten Verwenden gemerkt und danach als Vorschlag angeboten. Im Tab „Zuständigkeiten & Kategorien“ lassen sie sich umbenennen, einfärben, archivieren oder löschen. Archivierte Begriffe werden nicht mehr vorgeschlagen, bleiben aber in alten Einträgen und Auswertungen erhalten. Wer einen Begriff wie einen vorhandenen umbenennt, führt beide zusammen.

Fixkosten


Fixkosten und feste Einnahmen werden als Vorlage mit Betrag, Zuständigkeit, Kategorie, Rhythmus (monatlich, alle 2 Monate, vierteljährlich, halbjährlich, jährlich), Tag im Monat sowie Start- und optional Endmonat angelegt. Sobald ein fälliger Monat geöffnet wird, bucht das Modul die Vorlage einmalig als normalen Eintrag. Gebuchte Einträge lassen sich danach frei ändern oder löschen, ein gelöschter Eintrag kommt nicht wieder. Die Jahresansicht bucht alle fälligen Monate bis einschließlich des aktuellen Monats.

Auswertung und Export


Monats- und Jahresansicht zeigen Einnahmen, Ausgaben und Saldo, die Monatsansicht zusätzlich die Veränderung der Ausgaben zum Vormonat. Darunter folgen Tabellen nach Zuständigkeit und nach Kategorie mit Anteil an den Ausgaben sowie eine Kreuztabelle Zuständigkeit mal Kategorie. Die Jahresansicht hat ein Balkendiagramm und eine Monatstabelle, jeder Monat ist anklickbar. Unter „Abrechnung & Export“ gibt es eine Druckansicht, über die der Browser ein PDF erzeugt, und einen CSV-Export, beide wahlweise für alle oder nur eine Zuständigkeit.

Zugriff


Nutzen dürfen das Haushaltsbuch eingeloggte Mitglieder der Site, deren Rolle unter Weinhold → Nutzerverwaltung → Modulberechtigungen die Berechtigung „Ansehen“ für das Haushaltsbuch hat. Standardmäßig ist keine Rolle freigeschaltet. Niemand sieht fremde Bücher, auch Administratoren nicht, und die Admin-Seite zeigt nur die Anzahl der Bücher und Einträge.

Shortcodes

ShortcodeBeschreibung
[weinhold_household_book]Das komplette Haushaltsbuch mit den Tabs Monat, Jahr, Fixkosten sowie Zuständigkeiten & Kategorien. Keine Parameter, jede Person sieht ihr eigenes Buch.

Dateien

modules/household_book.php – Modul-Header und init(): Install, Hooks, Audit-Log-Aktionen und Shortcode-Registrierung.

modules/household_book/db.php – Tabellen, Install und Cleanup, Lesen und Schreiben von Büchern, Begriffen, Einträgen und Positionen, Geld- und Monatshelfer, Fixkosten-Buchung und Auswertung.

modules/household_book/files.php – Belegdateien: Upload, geschützte Auslieferung und Löschen.

modules/household_book/frontend.php – Zugriffsprüfung, Formularverarbeitung, Druckansicht und CSV-Export, alle Ansichten des Shortcodes und das Inline-JS.

modules/household_book/admin.php – Admin-Seite mit Hinweisen und Zahlen, ohne Buchinhalte.

assets/weinhold_household_book.css – Styles mit dem Präfix .weinhold-household-book-, inklusive Handy-Layout und Druckansicht.

Für Entwickler

Datenbank


Alle Tabellen liegen pro Site (Präfix der jeweiligen Site) und werden per dbDelta() angelegt, Versionsschlüssel ist die Option weinhold_household_book_db_version. Die Spalte book_id steht schon in allen Tabellen, damit später mehrere oder gemeinsame Bücher ohne Umbau möglich sind. Beträge werden als Ganzzahl in Cent gespeichert.

TabelleInhalt
{prefix}weinhold_hb_booksEin Buch pro Person (owner_user_id), wird beim ersten Aufruf angelegt
{prefix}weinhold_hb_termsZuständigkeiten und Kategorien (kind responsibility oder category), mit Farbe und Archiv-Kennzeichen, eindeutig pro Buch, Art und Name
{prefix}weinhold_hb_entriesEinträge mit Art, Datum, Bezeichnung, Bestellnummer, Notiz und gegebenenfalls der Fixkosten-Vorlage
{prefix}weinhold_hb_positionsPositionen eines Eintrags mit Betrag in Cent, Zuständigkeit, Kategorie und optionaler Bezeichnung
{prefix}weinhold_hb_filesBelegdateien eines Eintrags (gespeicherter und ursprünglicher Name, MIME-Typ, Größe)
{prefix}weinhold_hb_recurringFixkosten-Vorlagen mit Rhythmus, Tag, Start- und Endmonat
{prefix}weinhold_hb_recurring_runsMerkt pro Vorlage und Monat, dass gebucht wurde (Unique-Key auf recurring_id und month)

Fixkosten ohne Doppelbuchung


weinhold_household_book_apply_recurring() läuft beim Öffnen eines Monats. Für jede fällige Vorlage wird zuerst der Eintrag in recurring_runs geschrieben und erst danach der Beleg. Der Unique-Key verhindert so doppelte Buchungen auch bei parallelen Aufrufen, und weil der Run-Eintrag bleibt, wird ein gelöschter Fixkosten-Eintrag nicht erneut gebucht. Fällig ist eine Vorlage, wenn sie aktiv ist, der Monat im Zeitraum liegt und der Abstand zum Startmonat durch den Rhythmus teilbar ist.

Formulare und Parameter


Alle Formulare werden in weinhold_household_book_handle_frontend_actions() am Hook wp verarbeitet, mit Nonce pro Aktion und Weiterleitung danach (Post/Redirect/Get). Die Ansicht wird über Query-Parameter gesteuert:

ParameterBeschreibung
hb_viewmonth, year, recurring oder terms
hb_monthMonat der Monatsansicht im Format JJJJ-MM
hb_yearJahr der Jahresansicht
hb_editID des Eintrags bzw. der Vorlage, die bearbeitet wird
hb_newFormular für einen neuen Eintrag geöffnet anzeigen
hb_msgRückmeldung nach dem Speichern oder Löschen

Belegdateien


Erlaubt sind JPG, PNG, GIF, WebP, HEIC und PDF bis 15 MB, geprüft per wp_check_filetype_and_ext(). Die Dateien liegen außerhalb der Mediathek unter uploads/sites/{id}/weinhold-household-book/{book_id}/ mit zufälligem Dateinamen, der Ordner ist per .htaccess gesperrt und enthält eine leere index.php. Ausgeliefert wird nur über ?weinhold_household_book_file=ID mit Nonce, nachdem geprüft ist, dass die Datei zum Buch der angemeldeten Person gehört.

Export


?weinhold_household_book_export=print oder csv mit hb_period (JJJJ-MM oder JJJJ), optional hb_resp (ID einer Zuständigkeit) und Nonce weinhold_household_book_export. Die CSV ist mit Semikolon getrennt, hat ein UTF-8-BOM für Excel und vorzeichenbehaftete Beträge.

Audit-Log


AktionBedeutung
entry_savedEintrag gespeichert
entry_deletedEintrag gelöscht
recurring_savedFixkosten-Vorlage gespeichert
recurring_deletedFixkosten-Vorlage gelöscht
term_savedBegriff gespeichert oder zusammengeführt
term_deletedBegriff gelöscht

Besonderheiten

Die Bücher sind bewusst privat: Weder die Admin-Seite noch das Audit-Log zeigen Beträge oder Bezeichnungen, und auch Administratoren können fremde Bücher nicht öffnen.

Das Löschen eines Begriffs entfernt nur die Zuordnung, die Positionen bleiben mit „Ohne Zuständigkeit“ bzw. „Ohne Kategorie“ erhalten. Das Löschen einer Fixkosten-Vorlage lässt bereits gebuchte Einträge stehen. Änderungen an einer Vorlage gelten nur für Monate, die noch nicht gebucht wurden.

Ein PDF entsteht über die Druckfunktion des Browsers auf einer eigenen, druckoptimierten Seite. Eine PDF-Bibliothek wird nicht verwendet.

Auf dem Handy öffnet ein Tipp auf den Monatsnamen direkt die Monatsauswahl, breite Tabellen werden dort kompakter dargestellt und Fixkosten-Vorlagen als Karten.

Versionshistorie

VersionDatumÄnderung
1.0.002.11.2026Erste Veröffentlichung: Bücher pro Person, Einträge mit aufteilbaren Positionen, Zuständigkeiten und Kategorien, Fixkosten, Monats- und Jahresauswertung, Druckansicht und CSV-Export, geschützte Belegdateien.
1.0.103.11.2026Handy-Ansicht überarbeitet: kein seitliches Scrollen mehr, Monatsauswahl über den Monatsnamen, einspaltige Formulare, Fixkosten als Karten, kurze Monatsnamen in der Jahrestabelle.
1.1.007.11.2026Farben über das Modul Design einstellbar (Tab Haushaltsbuch, Standard sind die bisherigen Farben; die Druckansicht bleibt unverändert). Karten, Hinweise, Tabellen und Badges nutzen die gemeinsamen UI-Bausteine des Frameworks. Fehlerhinweise ohne geöffnetes Buch (z. B. nicht angemeldet) haben wieder ihre Hintergrundfarbe.
1.2.007.11.2026Schriften über das Modul Design einstellbar: Text (samt Formularfeldern), Überschriften, Buttons und Reiter sowie Beträge. Druckansicht und PDF bleiben unverändert. Ohne Auswahl gilt wie bisher die Schrift des Themes.