User-Panel-Restarbeiten: PM-Guard, Profil-Rework, USt-ID-Prüfung, Buchungspflicht-Adresse

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Kevin Adametz 2026-06-12 14:36:18 +00:00
parent 036a53499f
commit afcca34f91
25 changed files with 905 additions and 140 deletions

View file

@ -5,6 +5,44 @@
---
## 2026-06-12 · User-Panel-Restarbeiten (Kevins Liste) ✅
- **Was**: Alle Punkte aus `docs/user-admin/User-Panel-Restarbeiten.md`
(Status-Tabelle dort): (1) PM-Anlage ohne Firma zeigt eine Meldung mit
„Firma anlegen"-Button statt des leeren Editors. (2) Profil-Seite neu
gegliedert (Persönliche Daten / Konto / Rechnungsadresse / Einstellungen);
Rechnungsadresse vervollständigt um Anrede, Vorname, Nachname,
Firmenname (Migration `billing_addresses` + Snapshot-Spalte `company`
in `invoice_billing_addresses`, von MAN-Lauf und STR-Spiegelung
durchgereicht); „Persönliche Daten übernehmen"-Button gegen die
Doppel-Eingabe. (3) Doppelte Validierungsmeldung behoben: fehlende
Pflichtfelder melden einzeln unter dem Feld. (4) USt-ID-Validierung:
Formatprüfung sofort (hartes Speicher-Gate) + eVatR-Online-Bestätigung
(BZSt-REST-API, neuer `VatIdValidationService`, ENV `BILLING_OWN_VAT_ID`,
6h-Cache nur für definitive Ergebnisse, Ausfälle degradieren sanft).
(5) Rechnungsadresse ist Pflicht für jeden Checkout (Redirect aufs
Profil mit Hinweis); USt-ID wird als Stripe-Tax-ID übergeben.
(6) Firmenübersicht zeigt Logos auch für Legacy-Firmen (zentrale
logoUrl-Auflösung statt verkürzter Fast-Variante); „Letzte PM" mit
Jahreszahl. (7) Checkboxen → Flux-Switches (Boilerplate-Override,
Footer-Code); Token-Abilities bleiben Checkbox-Gruppe. Befund zu den
Profil-Schaltern: `show_stats`/`disable_footer_code` werden noch
nirgends ausgewertet (greifen mit Web-Relaunch) — steht jetzt in den
Beschreibungen.
- **Dateien**: `customer/profile.blade.php` (Neufassung),
`customer/press-releases/create.blade.php` (Guard),
`customer/press-kits/index.blade.php` (Logo/Datum),
`app/Services/Billing/VatIdValidationService.php` (neu) +
`VatIdCheckStatus`-Enum, `VatResolver` (isPlausibleVatId public),
`StripeCheckoutService` (Tax-ID-Sync), `CheckoutController` (Guard),
`User::hasCompleteBillingAddress()`, `BillingAddress::isComplete()`,
Migration, `config/billing.php` (`own_vat_id`).
- **Build/Test**: Suite 546 passed / 4 skipped, Pint clean; 14 neue Tests
(VatId-Service, PM-Guard, Profil-Validierung, Checkout-Guard).
- **Offene Fragen**: `BILLING_OWN_VAT_ID` in .env setzen (eigene USt-ID),
sonst bleibt die Online-Prüfung aus; Entscheidung zu den beiden
Profil-Schaltern (behalten vs. bis Relaunch ausblenden).
## 2026-06-12 · Responsive-Härtung (Block 3, Punkt 1) ✅
- **Was**: Systemische Responsive-Fehler behoben (Screenshots in