-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
enhancementNew feature or requestNew feature or request
Description
Beschreibung
Die Bulk-Operation "Terminserien verlängern" soll verbessert werden, um ein absolutes Enddatum basierend auf dem heutigen Datum zu setzen, anstatt die Serie relativ zu verlängern.
Aktuelles Verhalten
- Dropdown zeigt "3 Monate", "6 Monate", "12 Monate", etc.
- Die Serie wird um X Monate ab dem aktuellen Enddatum verlängert
- Beispiel: Serie endet am 31.12.2025 → +12 Monate → neues Ende: 31.12.2026
Gewünschtes Verhalten
- Dropdown zeigt weiterhin "3 Monate", "6 Monate", "12 Monate", etc.
- Das neue Enddatum wird berechnet als: Heute + X Monate
- Beispiel: Heute ist 13.12.2024, Auswahl "12 Monate" → neues Ende: 13.12.2025
Validierung
- Verkürzung verhindern: Wenn das berechnete Enddatum (Heute + X Monate) vor dem aktuellen Enddatum liegt, soll:
- Die Serie nicht verändert werden
- Eine Warnung angezeigt werden: "Die Serie würde verkürzt werden. Bitte wählen Sie einen längeren Zeitraum."
- Die Serie aus der Bulk-Operation übersprungen werden
Beispiele
Beispiel 1: Verlängerung
- Heute: 13.12.2024
- Aktuelles Ende: 31.03.2025
- Auswahl: 12 Monate
- Neues Ende: 13.12.2025 ✅
- Ergebnis: Serie wird verlängert
Beispiel 2: Verkürzung (verhindert)
- Heute: 13.12.2024
- Aktuelles Ende: 31.12.2026
- Auswahl: 12 Monate
- Berechnetes Ende: 13.12.2025 ❌
- Ergebnis: Warnung, Serie wird nicht geändert
Beispiel 3: Keine Änderung nötig
- Heute: 13.12.2024
- Aktuelles Ende: 15.12.2025
- Auswahl: 12 Monate
- Berechnetes Ende: 13.12.2025 (2 Tage früher)
- Ergebnis: Warnung, Serie wird nicht geändert
Technische Details
Betroffene Dateien
src/composables/useBulkAppointmentActions.ts- Logik für Bulk-Operationensrc/components/expiring-appointments/ExpiringAppointmentsAdmin.vue- UI
Implementierung
// Aktuell
const newRepeatUntil = currentDate.setMonth(currentDate.getMonth() + extensionMonths)
// Neu
const today = new Date()
const newRepeatUntil = new Date(today)
newRepeatUntil.setMonth(today.getMonth() + extensionMonths)
// Validierung
if (currentEndDate && newRepeatUntil < currentEndDate) {
// Warnung anzeigen, Serie überspringen
warnings.push({
seriesId: appointmentId,
title: appointment.base.title,
message: 'Serie würde verkürzt werden'
})
continue
}Toast-Benachrichtigungen
Nach der Bulk-Operation:
- Alle erfolgreich: "X Termine erfolgreich verlängert"
- Einige übersprungen: "X Termine verlängert, Y übersprungen (würden verkürzt)"
- Alle übersprungen: "Keine Termine verlängert. Alle würden verkürzt werden."
Akzeptanzkriterien
- Enddatum wird als "Heute + X Monate" berechnet
- Serien, die verkürzt würden, werden übersprungen
- Warnung wird angezeigt, wenn Serien übersprungen werden
- Toast zeigt Anzahl der verlängerten und übersprungenen Serien
- Bestehende Funktionalität bleibt erhalten (keine Breaking Changes)
Labels
enhancementbulk-operationsexpiring-appointments
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request