Terminplaner: Absagen, Verschieben, Widerruf durch Gaeste

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
ClaudeandClaude Sonnet 5.5 committed 2026-10-03 08:17:43 +00:00
1 parent 1289b5697b
commit 2d9b75b3bf
5 files changed
+1682 -24

No files matched your search

+5 -2
View File
@@ -33,6 +33,8 @@ import { datumKurz, datumLang, uhrzeit } from './zeit.js'
* G04 nachricht (optionale Nachricht des Betriebs)
* G06 von 'gast' | 'betrieb' | 'system' (Pflicht); grund, nachricht (nur bei Absage durch den Betrieb); sequenz (ICS, Vorgabe: icsSequenz + 1)
* G07 altStart (bisheriger Beginn, Pflicht)
* G06/G07 ohneIcs: true laesst die Kalenderdatei weg (eine unbestaetigte Anfrage hat nie eine Einladung bekommen,
* es gibt im Kalender des Gastes nichts abzusagen oder zu verschieben)
* G08 fall 'zugeordnet' | 'nach_frist' | 'nicht_zugeordnet' (Pflicht); eingang (Date, Pflicht); an (bei 'nicht_zugeordnet')
* K20 fall (= block) 'anfrage' oder nichts
* K21 fall (= block) 'abgesagt' | 'verschoben' | 'widerrufen' | 'nicht_zugeordnet' | 'nach_frist' (Pflicht); altStart (verschoben);
@@ -455,7 +457,8 @@ function kalenderDatei(art, ctx, buchung, extra, jetzt) {
/**
* Reiht eine Mail an den Gast ein (Absender: Betriebsname, Antworten an die Betriebs-E-Mail, nie BCC). Empfaenger ist
* extra.an, sonst buchung.gastEmail. G02 und G07 tragen eine Einladung (REQUEST), G06 die Absage (CANCEL).
* extra.an, sonst buchung.gastEmail. G02 und G07 tragen eine Einladung (REQUEST), G06 die Absage (CANCEL), jeweils
* ausser mit extra.ohneIcs.
* @param {string} art 'G01' ... 'G08'
* @param {object} ctx
* @param {object|null} buchung
@@ -469,7 +472,7 @@ export async function anGast(art, ctx, buchung, extra = {}, now = new Date()) {
extra = extra ?? {}
const { values, blocks } = werteFuer(art, ctx, buchung, extra)
const b = ctx.einstellung.betrieb
const ics = kalenderDatei(art, ctx, buchung, extra, now)
const ics = extra.ohneIcs === true ? null : kalenderDatei(art, ctx, buchung, extra, now)
return einreihen(
{
featureId: ctx.feature?.$id,