Kapazitaets-Logik Testszenarien

Vollstaendige Testmatrix fuer Ticket-Limits und Kapazitaet

Test Kapazitaet Logik QA

Kapazitaets-Logik Testszenarien

Diese Dokumentation beschreibt alle Test-Szenarien fuer die Logik-Ueberwachung von Ticket-Limits und Kapazitaet.


Uebersicht: Wie die Logik funktioniert

Pruefungsreihenfolge bei Buchung

  1. ERST: Ticket-Varianten-Limit (pro Variante einzeln)
  2. DANN: Gesamt-Kapazitaet (alle Varianten zusammen)

Admin Info-Box

Die Info-Box erscheint im Kurs-Editor unter "Maximale Teilnehmerzahl" und zeigt:

Status Farbe Bedeutung
OK Gruen Alle Limits konsistent
Warnung Orange Summe Limits > Kapazitaet
Fehler Rot Ticket ohne Namen
Info Blau Unbegrenzte Kapazitaet

Testszenarien

Szenario 1: Konsistente Limits (OK)

Einstellungen: - Kapazitaet: 10 - Ticket "Erwachsene": Limit 6 - Ticket "Kinder": Limit 4

Erwartete Info-Box:

[GRUEN] Kapazitaet: 10 Plaetze
        Erwachsene: max 6 | Kinder: max 4 | Summe: 10

Buchungs-Tests:

Test Buchung Erwartet Grund
1.1 6 Erw. + 4 Kind OK Alle Limits eingehalten
1.2 5 Erw. + 5 Kind OK Summe = 10
1.3 7 Erw. FEHLER Varianten-Limit (6) ueberschritten
1.4 6 Erw. + 5 Kind FEHLER Gesamt-Limit (10) ueberschritten

Szenario 2: Limits ueberschreiten Kapazitaet (Warnung)

Einstellungen: - Kapazitaet: 10 - Ticket "Erwachsene": Limit 8 - Ticket "Kinder": Limit 6

Erwartete Info-Box:

[ORANGE] Summe der Ticket-Limits (14) ueberschreitet Kapazitaet (10)
         Erwachsene: max 8 | Kinder: max 6
         -> Bei Buchung gilt das niedrigere Limit (Kapazitaet)

Buchungs-Tests:

Test Buchung Erwartet Grund
2.1 8 Erw. OK Varianten-Limit OK, Gesamt OK
2.2 8 Erw. + 2 Kind OK Summe = 10
2.3 8 Erw. + 3 Kind FEHLER Gesamt (11) > Kapazitaet (10)
2.4 6 Kind + 5 Erw. FEHLER Gesamt (11) > Kapazitaet (10)
2.5 9 Erw. FEHLER Varianten-Limit (8) ueberschritten

Szenario 3: Unbegrenzte Kapazitaet (Info)

Einstellungen: - Kapazitaet: 0 (unbegrenzt) - Ticket "Erwachsene": Limit 8 - Ticket "Kinder": Limit 6

Erwartete Info-Box:

[BLAU] Unbegrenzte Kapazitaet - nur Ticket-Limits gelten
       Erwachsene: max 8 | Kinder: max 6

Buchungs-Tests:

Test Buchung Erwartet Grund
3.1 8 Erw. + 6 Kind OK Beide Varianten-Limits OK
3.2 100 Erw. FEHLER Varianten-Limit (8) ueberschritten
3.3 8 Erw. + 8 Kind FEHLER Kind-Limit (6) ueberschritten

Szenario 4: Keine Limits (Info)

Einstellungen: - Kapazitaet: 0 (unbegrenzt) - Ticket "Standard": Limit 0 (unbegrenzt)

Erwartete Info-Box:

[BLAU] Keine Begrenzung - unbegrenzte Buchungen moeglich

Buchungs-Tests:

Test Buchung Erwartet
4.1 100 Standard OK
4.2 1000 Standard OK

Szenario 5: Ticket ohne Namen (Fehler)

Einstellungen: - Kapazitaet: 10 - Ticket #1: Name leer, Limit 5 - Ticket "Kinder": Limit 5

Erwartete Info-Box:

[ROT] Variante #1 hat keinen Namen
[GRUEN] Kapazitaet: 10 Plaetze
        #1: max 5 | Kinder: max 5 | Summe: 10

Szenario 6: Gemischte Limits

Einstellungen: - Kapazitaet: 20 - Ticket "VIP": Limit 5 - Ticket "Standard": Limit 0 (unbegrenzt)

Erwartete Info-Box:

[GRUEN] Kapazitaet: 20 Plaetze
        VIP: max 5

Buchungs-Tests:

Test Buchung Erwartet Grund
6.1 5 VIP + 15 Standard OK VIP-Limit OK, Gesamt = 20
6.2 5 VIP + 16 Standard FEHLER Gesamt (21) > Kapazitaet (20)
6.3 6 VIP FEHLER VIP-Limit (5) ueberschritten
6.4 20 Standard OK Kein Standard-Limit, Gesamt OK

Szenario 7: Nur Kapazitaet (keine Ticket-Limits)

Einstellungen: - Kapazitaet: 15 - Ticket "Teilnehmer": Limit 0

Erwartete Info-Box:

[GRUEN] Kapazitaet: 15 Plaetze (keine Ticket-Limits)

Buchungs-Tests:

Test Buchung Erwartet
7.1 15 Teilnehmer OK
7.2 16 Teilnehmer FEHLER

Frontend-Verhalten (Cards)

Aktuelle Logik

Die Kurs-Cards zeigen:

Zustand Anzeige
Plaetze frei "X Plaetze verfuegbar"
Ausgebucht "Ausgebucht" (Button disabled)

WICHTIG: Die Cards pruefen nur die Gesamt-Kapazitaet, nicht die einzelnen Ticket-Limits!

Beispiel-Problem

  • Kapazitaet: 10
  • Ticket "Erwachsene": Limit 5 (5 gebucht = ausverkauft)
  • Ticket "Kinder": Limit 5 (0 gebucht)
  • Gesamt gebucht: 5

Card zeigt: "5 Plaetze verfuegbar" Aber: Erwachsenen-Tickets sind ausverkauft!

Empfehlung

Bei Buchungsformular-Oeffnung werden die Varianten-Verfuegbarkeiten live geprueft und angezeigt.


Konflikte: Pro Tag + Preis multiplizieren

Warnung bei Konflikt

Wenn beide Optionen aktiviert werden:

ACHTUNG: "Pro Tag berechnen" und "Preis multiplizieren" sind beide aktiv!

Das fuehrt zu einer doppelten Preismultiplikation:
Preis x Kurstage x Menge

Die andere Option wurde automatisch deaktiviert.

Testfall

Preis Kurstage Menge Berechnung Ergebnis
50 EUR 3 2 50 x 3 x 2 300 EUR (FALSCH!)

Korrekte Berechnung (nur eine Option): - Pro Tag: 50 x 3 = 150 EUR - ODER Menge: 50 x 2 = 100 EUR


Checkliste fuer Tests

Admin-Bereich

  • [ ] Info-Box erscheint unter "Maximale Teilnehmerzahl"
  • [ ] Info-Box aktualisiert sich live beim Tippen
  • [ ] Korrekte Farben (Gruen/Orange/Rot/Blau)
  • [ ] Korrekte Summen-Berechnung
  • [ ] Warnung bei Ticket ohne Namen
  • [ ] Konflikt-Warnung bei Pro Tag + Preis multiplizieren

Buchungsformular

  • [ ] Gesamt-Kapazitaet wird geprueft
  • [ ] Varianten-Limits werden geprueft
  • [ ] Korrekte Fehlermeldungen
  • [ ] "Ausgebucht" wenn alle voll

Frontend Cards

  • [ ] "Ausgebucht" bei voller Kapazitaet
  • [ ] Button disabled bei ausgebucht
  • [ ] Plaetze-Anzeige korrekt

Technische Details

Beteiligte Dateien

Datei Funktion
class-capacity-validator.php AJAX-Validierung, Logik
class-ajax.php:1245-1300 check_availability() bei Buchung
class-frontend.php:942-952 is_sold_out() fuer Cards
admin.js:107-239 Live-Validierung im Admin
admin.css:3188-3269 Info-Box Styles

AJAX-Endpoint

POST /wp-admin/admin-ajax.php
action: kurs_booking_validate_capacity
nonce: kurs_booking_admin
max_capacity: [int]
varianten[0][name]: [string]
varianten[0][limit]: [int]

Letzte Aktualisierung: 24.12.2025