Neu unter Verträge → Rückkaufswerte anfragen: Stichtag wählen, Liste prüfen, ein Klick. Heraus kommt ein ZIP mit einer Word-Datei je Gesellschaft plus Begleitblatt — und je Vertrag entstehen nebenbei die PDF-Fassung in der Akte, die Wiedervorlage nach 28 Tagen und der Anfragevermerk. Auf „Heute" steht danach unter Wartet auf andere, worauf gewartet wird und seit wann.
Die Auswahl begründet sich selbst
Vorausgewählt ist nur, was in Frage kommt. Was nicht in Frage kommt, wird nicht stumm ausgeblendet, sondern steht mit Grund in der Liste („Ohne Gesellschaft fehlt der Empfänger", „bereits vor 10 Tagen angefragt"). Nur Vertragsarten ohne jede Aussicht auf einen Rückkaufswert bleiben draußen.
Gekündigte Verträge bleiben anfragbar — bis zum Wirksamwerden besteht der Vertrag, und genau dann will der Sozialhilfeträger den Wert sehen.
Die Anzahl steht vor dem Klick auf dem Knopf: Einen Fehlgriff soll man bemerken, bevor zehn Briefe entstehen.
Zwei Zusagen
Kein Alles-oder-nichts. Jeder Vertrag läuft für sich; ein gescheiterter steht mit Grund im Begleitblatt des ZIP, die übrigen laufen durch. Eine Transaktion über alle wäre die falsche Zusage — wenn der neunte Brief scheitert, sollen die acht fertigen nicht verworfen werden.
Der Doppelklick kostet nichts. Tagesgenauer Dublettenschutz: Der zweite Lauf am selben Tag überspringt bereits angefragte Verträge (steht so im Begleitblatt). Die bewusste zweite Anfrage nach einer Woche bleibt möglich — von Hand anwählen genügt.
Sperrfrist und Wiedervorlage teilen sich die 28 Tage — ein Test hält beide zusammen. Liefen sie auseinander, würde gemahnt und zugleich neu angefragt.
Geprüft
Zwölf Einheitstests für die Auswahllogik.
Drei End-to-End-Tests: Vorauswahl samt Begründungen, der volle Lauf mit Kontrolle aller Nebenwirkungen in der Datenbank (Anfragedatum, Dokumente, Fristen — und dass nur die aktive betreute Person betroffen ist), Dublettenschutz beim zweiten Lauf.
Meine ersten e2e-Fassungen sind an einer falschen Annahme gescheitert (feste Anzahl statt vorhandener Demoverträge) — der Fehler lag in den Tests, nicht in der Anwendung.
Version auf 1.6.0 angehoben. Keine Migration nötig.
## Was es tut
Neu unter **Verträge → Rückkaufswerte anfragen**: Stichtag wählen, Liste prüfen, ein Klick. Heraus kommt ein **ZIP mit einer Word-Datei je Gesellschaft** plus Begleitblatt — und je Vertrag entstehen nebenbei die PDF-Fassung in der Akte, die Wiedervorlage nach 28 Tagen und der Anfragevermerk. Auf „Heute" steht danach unter *Wartet auf andere*, worauf gewartet wird und seit wann.
## Die Auswahl begründet sich selbst
Vorausgewählt ist nur, was in Frage kommt. Was nicht in Frage kommt, wird **nicht stumm ausgeblendet**, sondern steht mit Grund in der Liste („Ohne Gesellschaft fehlt der Empfänger", „bereits vor 10 Tagen angefragt"). Nur Vertragsarten ohne jede Aussicht auf einen Rückkaufswert bleiben draußen.
**Gekündigte Verträge bleiben anfragbar** — bis zum Wirksamwerden besteht der Vertrag, und genau dann will der Sozialhilfeträger den Wert sehen.
Die Anzahl steht **vor** dem Klick auf dem Knopf: Einen Fehlgriff soll man bemerken, bevor zehn Briefe entstehen.
## Zwei Zusagen
**Kein Alles-oder-nichts.** Jeder Vertrag läuft für sich; ein gescheiterter steht mit Grund im Begleitblatt des ZIP, die übrigen laufen durch. Eine Transaktion über alle wäre die falsche Zusage — wenn der neunte Brief scheitert, sollen die acht fertigen nicht verworfen werden.
**Der Doppelklick kostet nichts.** Tagesgenauer Dublettenschutz: Der zweite Lauf am selben Tag überspringt bereits angefragte Verträge (steht so im Begleitblatt). Die bewusste zweite Anfrage nach einer Woche bleibt möglich — von Hand anwählen genügt.
## Aufbau
| Datei | Zweck |
|---|---|
| `src/lib/vertraege/serienabfrage.ts` | Auswahllogik, rein und testbar |
| `src/lib/vertraege/serienlauf.ts` | der Lauf: je Vertrag das volle Paket aus #4 |
| `src/app/(app)/vertraege/serienabfrage/route.ts` | POST → ZIP (Nebenwirkungen vor der Auslieferung) |
| `src/app/(app)/vertraege/serienabfrage/seite/` | die Auswahlseite |
Sperrfrist und Wiedervorlage teilen sich die 28 Tage — ein Test hält beide zusammen. Liefen sie auseinander, würde gemahnt und zugleich neu angefragt.
## Geprüft
- **Zwölf Einheitstests** für die Auswahllogik.
- **Drei End-to-End-Tests**: Vorauswahl samt Begründungen, der volle Lauf mit Kontrolle aller Nebenwirkungen in der Datenbank (Anfragedatum, Dokumente, Fristen — und dass nur die *aktive* betreute Person betroffen ist), Dublettenschutz beim zweiten Lauf.
- 602 Unit-Tests, 87 e2e, 0 Typfehler, Lint sauber, Produktionsbau steht.
Meine ersten e2e-Fassungen sind an einer falschen Annahme gescheitert (feste Anzahl statt vorhandener Demoverträge) — der Fehler lag in den Tests, nicht in der Anwendung.
Version auf **1.6.0** angehoben. Keine Migration nötig.
Closes #6
Vor Vermoegensverzeichnis und Jahresbericht braucht es von jeder Lebens-
und Rentenversicherung den Rueckkaufswert zum Stichtag - jedes Mal
dieselben fuenf bis zehn Briefe. Neu unter Vertraege: Stichtag waehlen,
Liste pruefen, ein Klick. Heraus kommt ein ZIP mit einer Word-Datei je
Gesellschaft plus Begleitblatt; je Vertrag entstehen nebenbei die
PDF-Fassung in der Akte, die Wiedervorlage nach 28 Tagen und der
Anfragevermerk.
Aufbau:
- Auswahllogik als reine Funktionen in vertraege/serienabfrage.ts:
Vorauswahl, Hindernisse mit Begruendung statt stummem Ausblenden,
28-Tage-Sperre im Gleichschritt mit der Wiedervorlage.
- Der Lauf in vertraege/serienlauf.ts: je Vertrag das volle Paket aus
Issue #4, aber in einem Durchgang. Kein Alles-oder-nichts - ein
gescheiterter Vertrag steht mit Grund im Begleitblatt, die uebrigen
laufen durch. Eine Transaktion ueber alle waere die falsche Zusage.
- Dublettenschutz tagesgenau: Der Doppelklick erzeugt nichts Doppeltes,
die bewusste zweite Anfrage nach einer Woche bleibt moeglich.
- Die Anzahl steht vor dem Klick auf dem Knopf.
Gekuendigte Vertraege bleiben anfragbar: Bis zum Wirksamwerden besteht
der Vertrag, und genau dann will der Sozialhilfetraeger den Wert sehen.
Geprueft: zwoelf Einheitstests, drei End-to-End-Tests inklusive der
Nebenwirkungen in der Datenbank und des Dublettenschutzes. 602
Unit-Tests, 87 e2e, null Typfehler.
Refs #6
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Was es tut
Neu unter Verträge → Rückkaufswerte anfragen: Stichtag wählen, Liste prüfen, ein Klick. Heraus kommt ein ZIP mit einer Word-Datei je Gesellschaft plus Begleitblatt — und je Vertrag entstehen nebenbei die PDF-Fassung in der Akte, die Wiedervorlage nach 28 Tagen und der Anfragevermerk. Auf „Heute" steht danach unter Wartet auf andere, worauf gewartet wird und seit wann.
Die Auswahl begründet sich selbst
Vorausgewählt ist nur, was in Frage kommt. Was nicht in Frage kommt, wird nicht stumm ausgeblendet, sondern steht mit Grund in der Liste („Ohne Gesellschaft fehlt der Empfänger", „bereits vor 10 Tagen angefragt"). Nur Vertragsarten ohne jede Aussicht auf einen Rückkaufswert bleiben draußen.
Gekündigte Verträge bleiben anfragbar — bis zum Wirksamwerden besteht der Vertrag, und genau dann will der Sozialhilfeträger den Wert sehen.
Die Anzahl steht vor dem Klick auf dem Knopf: Einen Fehlgriff soll man bemerken, bevor zehn Briefe entstehen.
Zwei Zusagen
Kein Alles-oder-nichts. Jeder Vertrag läuft für sich; ein gescheiterter steht mit Grund im Begleitblatt des ZIP, die übrigen laufen durch. Eine Transaktion über alle wäre die falsche Zusage — wenn der neunte Brief scheitert, sollen die acht fertigen nicht verworfen werden.
Der Doppelklick kostet nichts. Tagesgenauer Dublettenschutz: Der zweite Lauf am selben Tag überspringt bereits angefragte Verträge (steht so im Begleitblatt). Die bewusste zweite Anfrage nach einer Woche bleibt möglich — von Hand anwählen genügt.
Aufbau
src/lib/vertraege/serienabfrage.tssrc/lib/vertraege/serienlauf.tssrc/app/(app)/vertraege/serienabfrage/route.tssrc/app/(app)/vertraege/serienabfrage/seite/Sperrfrist und Wiedervorlage teilen sich die 28 Tage — ein Test hält beide zusammen. Liefen sie auseinander, würde gemahnt und zugleich neu angefragt.
Geprüft
Meine ersten e2e-Fassungen sind an einer falschen Annahme gescheitert (feste Anzahl statt vorhandener Demoverträge) — der Fehler lag in den Tests, nicht in der Anwendung.
Version auf 1.6.0 angehoben. Keine Migration nötig.
Closes #6