Dauerzahlungen zu einem Vertrag gelten als belegt
Bei einer monatlichen Praemie gibt es keinen Beleg - es gibt einen Vertrag, und der wird einmal abgeschlossen, nicht monatlich quittiert. Bisher blieb nur ein Freitextfeld pro Buchung: zwoelfmal im Jahr derselbe Satz, mal Anzahl der Vertraege. Buchung.vertragId mit onDelete: SetNull. Der Belegzustand kennt jetzt drei Faelle statt zwei, getrennt ausgewiesen - ein Vertrag belegt, eine Begruendung erklaert nur; zusammengeworfen verliert die Belegquote ihre Aussage gegenueber dem Rechtspfleger. Dazu: automatische Zuordnung beim Import bei eindeutiger Gegenstelle, Sammelzuordnung ueber die Gruppen aus Issue #3, und die Rechnungslegung nennt den Vertrag samt Nummer statt "ohne Beleg". Die Sicherung dagegen: Weicht der Betrag um mehr als ein Fuenftel vom hinterlegten Beitrag ab, faellt die Anerkennung weg und die Buchung wird als "Betrag pruefen" markiert. Sonst waere die Zuordnung eine Hintertuer. Zur Toleranz - ein Entwurf und seine Korrektur: Zuerst verglich ich den Betrag gegen alle ueblichen Zahlweisen, damit es auch passt, wenn die Bank anders abbucht als der Vertrag es fuehrt. Der eigene Test hat das widerlegt: Bei 42,50 monatlich liegen 420 innerhalb von 20 Prozent des Jahresbetrags von 510 - ausgerechnet der Fall aus der Aufgabenstellung waere durchgerutscht. Jetzt wird stur gegen den hinterlegten Beitrag verglichen. Bucht die Bank anders ab, stimmen die Vertragsdaten nicht, und das soll auffallen. Behoben: Die Buchungsliste hatte eine eigene, fast gleiche Datenabfrage neben der aus berichte/gemeinsam.ts. Nur eine von beiden wurde nachgezogen, in der Liste stand weiter "Beleg fehlt". Beide benutzen jetzt BUCHUNG_EINBEZUG und zuBuchungEingabe - das kann nicht halb vergessen werden. Gefunden hat es der Browsertest. Nebenbei: Die Roadmap trug noch "Aktuelle Fassung 1.1.2" - Nachwirkung der parallelen Bearbeitung von #3 und #10. Nachgezogen wie zugesagt. Geprueft: 23 neue Einheitstests, die Haelfte davon darauf gerichtet, dass die Anerkennung auch wirklich wegfaellt. Fuenf End-to-End-Tests auf beiden Geraeteprofilen. 560 Unit-Tests, 63 e2e, null Typfehler. Refs #11
This commit is contained in:
+86
-1
@@ -26,6 +26,90 @@ Wiederherstellung*.
|
||||
|
||||
_Noch nichts._
|
||||
|
||||
## [1.3.0] – 2026-08-23
|
||||
|
||||
### Hinzugefügt
|
||||
|
||||
- **Dauerzahlungen zu einem Vertrag gelten als belegt**
|
||||
([#11](https://git.wilde-server.de/florian.wilde/betreuungs-cockpit/issues/11)).
|
||||
Bei einer monatlichen Versicherungsprämie gibt es keinen Beleg — es gibt
|
||||
einen Vertrag, und der wird einmal abgeschlossen, nicht monatlich
|
||||
quittiert. Bisher blieb nur ein Freitextfeld pro Buchung: zwölfmal im
|
||||
Jahr derselbe Satz, mal Anzahl der Verträge.
|
||||
|
||||
Eine Buchung lässt sich jetzt einem **Vertrag** zuordnen, und diese
|
||||
Zuordnung zählt als Nachweis. Bei einem Dauerschuldverhältnis ist der
|
||||
Vertrag der Beleg: Ein Rechtspfleger will für zwölf gleiche Lastschriften
|
||||
keine zwölf Quittungen sehen, sondern die Police.
|
||||
|
||||
**Die Belegquote weist drei Fälle getrennt aus** — mit Beleg, durch
|
||||
Vertrag belegt, begründet ohne Beleg. Zusammengeworfen verlöre die Zahl
|
||||
ihre Aussage.
|
||||
|
||||
- **Automatisch beim Import**, wenn die Gegenstelle zu genau *einem*
|
||||
Vertrag passt. Bei Mehrdeutigkeit geschieht nichts: Hausrat und
|
||||
Haftpflicht bei derselben Gesellschaft lassen sich nicht auseinanderhalten,
|
||||
und eine falsche Zuordnung wäre schlimmer als gar keine — sie behauptet
|
||||
einen Beleg, und niemand sieht noch einmal hin. Automatisch gesetzte
|
||||
Zuordnungen sind in der Liste als solche gekennzeichnet.
|
||||
|
||||
- **Sammelzuordnung** unter *Wiederkehrende Zahlungen*: Liegt zu einer
|
||||
Gruppe ein Vertrag vor, werden alle ihre Zahlungen mit einem Klick
|
||||
zugeordnet. Bei drei Jahren Laufzeit sind das 36 Buchungen.
|
||||
|
||||
- **Die Rechnungslegung nennt den Vertrag.** Statt „ohne Beleg – …" steht
|
||||
dort „Dauerzahlung zu Vertrag «Bezeichnung», Nr. …". Die Lücke wird nicht
|
||||
versteckt, sondern erklärt: Wer nachprüfen will, weiß sofort, welches
|
||||
Papier er aus dem Ordner holt.
|
||||
|
||||
### Die Sicherung dagegen
|
||||
|
||||
**Weicht der Betrag um mehr als ein Fünftel vom hinterlegten Beitrag ab,
|
||||
gilt die Zahlung nicht als belegt**, sondern wird als *Betrag prüfen*
|
||||
markiert. Sonst wäre die Zuordnung eine Hintertür, durch die auch eine
|
||||
verzehnfachte Prämie unbemerkt durchginge.
|
||||
|
||||
Ein Fünftel ist bewusst großzügig: Beitragsanpassungen und
|
||||
Versicherungsteuer bewegen sich in dieser Größenordnung, und dabei soll
|
||||
die Anwendung nicht meckern. Wer die Grenze enger zieht, bekommt täglich
|
||||
Warnungen und sieht die eine wichtige nicht mehr.
|
||||
|
||||
Steht am Vertrag **kein** Beitrag, findet keine Prüfung statt. Die
|
||||
Zuordnung gilt trotzdem — es wird nur nicht so getan, als wäre geprüft
|
||||
worden.
|
||||
|
||||
Und: **Verschwindet der Vertrag, fällt die Buchung zurück in „Beleg
|
||||
fehlt".** Ein Nachweis, der auf etwas zeigt, das es nicht mehr gibt, wäre
|
||||
schlimmer als gar keiner.
|
||||
|
||||
### Zu beachten
|
||||
|
||||
- **Eine Datenbank-Migration ist nötig**
|
||||
(`20260823062000_buchung_vertragszahlung`). Sie fügt zwei Spalten hinzu
|
||||
und ändert nichts an vorhandenen Daten.
|
||||
- Bestehende Buchungen sind nicht betroffen: Ohne Zuordnung bleibt alles,
|
||||
wie es war.
|
||||
|
||||
### Geprüft
|
||||
|
||||
- 23 neue Einheitstests. Die Hälfte prüft, dass die Anerkennung auch
|
||||
wirklich **wegfällt** — der gefährliche Fehler wäre hier ein zu mildes
|
||||
Urteil, nicht ein zu strenges.
|
||||
- Fünf End-to-End-Tests: Sammelzuordnung, Anzeige in der Buchungsliste,
|
||||
die abweichende Zahlung, die Kachel auf „Heute", und der Rückfall nach
|
||||
dem Löschen des Vertrags.
|
||||
|
||||
Der Browsertest hat zwei Fehler gefunden, die alle anderen Prüfungen
|
||||
durchgelassen haben — siehe unten.
|
||||
|
||||
### Behoben
|
||||
|
||||
- **Die Buchungsliste hatte eine eigene, fast gleiche Datenabfrage** neben
|
||||
der gemeinsamen aus `berichte/gemeinsam.ts`. Als die Dauerzahlungen
|
||||
dazukamen, wurde nur eine von beiden nachgezogen: In der Liste stand
|
||||
weiter „Beleg fehlt", obwohl der Vertrag hinterlegt war. Beide benutzen
|
||||
jetzt dieselbe Abbildung — die kann nicht halb vergessen werden.
|
||||
|
||||
## [1.2.0] – 2026-08-23
|
||||
|
||||
### Hinzugefügt
|
||||
@@ -616,7 +700,8 @@ Was davon wann angegangen wird, steht in [`docs/ROADMAP.md`](docs/ROADMAP.md).
|
||||
|
||||
---
|
||||
|
||||
[Unveröffentlicht]: https://git.wilde-server.de/florian.wilde/betreuungs-cockpit/compare/v1.2.0...HEAD
|
||||
[Unveröffentlicht]: https://git.wilde-server.de/florian.wilde/betreuungs-cockpit/compare/v1.3.0...HEAD
|
||||
[1.3.0]: https://git.wilde-server.de/florian.wilde/betreuungs-cockpit/compare/v1.2.0...v1.3.0
|
||||
[1.2.0]: https://git.wilde-server.de/florian.wilde/betreuungs-cockpit/compare/v1.1.2...v1.2.0
|
||||
[1.1.2]: https://git.wilde-server.de/florian.wilde/betreuungs-cockpit/compare/v1.1.1...v1.1.2
|
||||
[1.1.1]: https://git.wilde-server.de/florian.wilde/betreuungs-cockpit/compare/v1.1.0...v1.1.1
|
||||
|
||||
Reference in New Issue
Block a user