presseportale/app/Http/Controllers
Kevin Adametz 80e04e26e0 Downgrades ohne Gutschrift: Tarifwechsel nach unten erst zum Periodenende
QA-Entscheidung 07.07.: Eine Buchung ist nicht rückabwickelbar — es darf
nie eine negative Proration-Rechnung oder ein Stripe-Guthaben entstehen.

- StripeCheckoutService::isDowngrade: sofortiger Wechsel nur, wenn der
  Periodenpreis des Ziel-Tarifs den aktuellen erreicht (Wechsel-Rechnung
  damit garantiert >= 0); sonst Downgrade
- scheduleDowngrade: Stripe Subscription Schedule stellt das Abo zum Ende
  der bezahlten Periode um (proration_behavior none), hebt eine
  vorgemerkte Kündigung auf und spiegelt die Vormerkung lokal
  (neue Spalten scheduled_stripe_price/scheduled_change_at/
  stripe_schedule_id an subscriptions)
- Sofort-Upgrade löst eine bestehende Vormerkung vorher auf (release)
- Webhook customer.subscription.updated räumt die Vormerkung nach
  Vollzug ab
- Buchungs-Modal unterscheidet Upgrade (sofort, Differenz-Rechnung) und
  Downgrade (Vormerkung, keine Zahlung heute); Banner + Hinweis auf der
  Paket-Karte zeigen den vorgemerkten Wechsel mit Datum
- Kontingent-Sperre aus 4b7f6d3 entfernt — ohne Gutschrift gegenstandslos

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 13:38:57 +00:00
..
Admin 12-05-2026 Frontend dev 2026-05-12 18:32:33 +02:00
Api/V1 Optimierung 3.2: API-PR-Ownership-Scope + zentrale Eager-Loads 2026-06-19 10:27:59 +00:00
Auth QA-Befunde A4: 2FA-Bestätigungsschritt + sicherer E-Mail-Wechsel 2026-07-07 10:53:24 +00:00
Web QA-Luecke geschlossen: Legacy-Medien-URLs redirecten wieder (301) 2026-07-06 10:12:35 +00:00
CheckoutController.php Downgrades ohne Gutschrift: Tarifwechsel nach unten erst zum Periodenende 2026-07-07 13:38:57 +00:00
Controller.php first commit 2025-10-20 17:53:02 +02:00
LegacyInvoicePdfController.php Optimierung Phase 1: Aufraeumen / toter Code 2026-06-19 08:27:12 +00:00
LegalRequestController.php T10: DSA-Meldeformulare mit URL-Feld, Vorgangsnummer und Eingangsbestaetigung 2026-07-06 09:35:30 +00:00
PressReleasePreviewController.php PM-Vorschau: echtes Portal-Design, Direkt-Button und Portal-Switch 2026-07-07 13:11:57 +00:00
ProofPdfController.php Proof-PDF + Extra-PM-Verkauf ueber die Credit-Wallet (Decision-Update 2.1/2.3) 2026-06-17 14:28:08 +00:00
StripeInvoiceRedirectController.php Rechnungsseite: neue STR/MAN-Rechnungen gelistet, STR bei Stripe verlinkt 2026-07-07 12:01:12 +00:00