Buchungskalender: Abschluss – S5 Hinweis-Mail K35 vor der Loeschung, Rechnungen im Zustand abgeschaltet lesbar

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
knsoandClaude Opus 5.5 committed 2026-10-07 15:23:56 +00:00
1 parent e2fc4eb676
commit ab838d07bc
6 files changed
+225 -4

No files matched your search

+8 -1
View File
@@ -1,6 +1,7 @@
import { laufeFristenAb } from './ablauf.js'
import { config } from '../../config.js'
import { listDocuments, Query } from '../appwriteAdmin.js'
import { sendeHinweiseVorLoeschung } from './abschaltHinweis.js'
import { anonymisiere, loescheAbgeschaltete } from './aufbewahrung.js'
import { gleicheAlleAb } from './icalAbgleich.js'
import { unterkunftModus } from './schalter.js'
@@ -55,7 +56,7 @@ async function gibtDaten() {
/**
* Tagesjob: Aufbewahrung (ipHash, Verfall von `neu`, Anonymisierung, Rechnungen nach 8 Jahren) und Loeschung abgeschalteter Funktionen
* (90 Tage). Gemeinsamer Deckel config.unterkunft.aufbewahrungDeckel (500) je Lauf (die Loeschung bekommt, was die Aufbewahrung uebrig laesst). Bei UNTERKUNFT_ENABLED=off nur, wenn es noch
* (90 Tage; davor einmal die Hinweis-Mail K35). Gemeinsamer Deckel config.unterkunft.aufbewahrungDeckel (500) je Lauf (die Loeschung bekommt, was die Aufbewahrung uebrig laesst). Bei UNTERKUNFT_ENABLED=off nur, wenn es noch
* Buchungsdaten gibt (die Fristen gelten auch dann). Ein Teil, der scheitert, stoppt den anderen nicht.
*/
export async function taeglicherJob(now = new Date()) {
@@ -71,6 +72,12 @@ export async function taeglicherJob(now = new Date()) {
} catch (err) {
console.error(`[unterkunft-jobs] taeglicherJob: Aufbewahrung fehlgeschlagen: ${err?.name} ${err?.status ?? ''}`)
}
// Vor der Loeschung: einmaliger Hinweis K35 (Rechnungen sichern); ein Fehler stoppt die Loeschung nicht (Marker fehlt, naechster Lauf wiederholt)
try {
await sendeHinweiseVorLoeschung(now)
} catch (err) {
console.error(`[unterkunft-jobs] taeglicherJob: Hinweis vor der Löschung fehlgeschlagen: ${err?.name} ${err?.status ?? ''}`)
}
try {
weg = await loescheAbgeschaltete(now, { deckel: rest })
} catch (err) {