Kunden loeschen: DSGVO-geloeschte Kunden ausblenden und sperren; Checkout-Herkunft freiwillig
Kunden loeschen (Rueckmeldung "es wird nichts geloescht"): - DSGVO-geloeschte Eintraege blieben mit Name in den Listen stehen; Kunde 61009 wurde deshalb achtmal geloescht, bei Eintrag 45013 wurde die E-Mail danach ueber ein offenes Bearbeiten-Formular zurueckgeschrieben - neue Spalte shopping_users.gdpr_deleted_at (Bestand per Migration markiert) - Admin-Kundenliste blendet geloeschte Kunden aus (Filter: ausblenden / mit anzeigen / nur geloeschte), Berater-Kundenliste immer - Bearbeiten/Speichern im Admin und beim Berater gesperrt; ShoppingUser verweigert das Zurueckschreiben von E-Mail und Telefon - Modal und Erfolgsmeldung (de/en/es/fr) sagen klar, dass Name und Rechnungsadresse wegen der Aufbewahrungspflicht bleiben - gdpr:repair-customers [--execute] zieht protokollierte Loeschungen nach - DSGVO-Loeschung prueft Superadmin serverseitig; Berater duerfen eine Kunden-E-Mail nur beim eigenen Kunden nachtragen - setFakerMail setzt faker_mail bei geloeschten Eintraegen nicht zurueck Checkout: "Wie bist du auf uns aufmerksam geworden?" ist kein Pflichtfeld mehr und wird farbig hervorgehoben. Deploy: php artisan migrate && php artisan gdpr:repair-customers --execute Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
083d643220
commit
3d0864713b
19 changed files with 635 additions and 90 deletions
|
|
@ -387,12 +387,12 @@ it('erfasst die Herkunft bei Kundenbestellungen im Shop-Checkout', function () {
|
|||
$checkoutRepository = file_get_contents(app_path('Repositories/CheckoutRepository.php'));
|
||||
$orderDetail = file_get_contents(resource_path('views/admin/sales/_detail.blade.php'));
|
||||
|
||||
// Kundenentscheid F6: nur noch Freitext-Pflichtfeld, kein Dropdown mehr
|
||||
// Kundenentscheid F6: nur noch Freitext, kein Dropdown mehr; seit 10/2026 freiwillig
|
||||
expect($checkoutView)->toContain('customer_order_source_comment');
|
||||
expect($checkoutView)->toContain('Wie bist du auf uns aufmerksam geworden?');
|
||||
expect($checkoutView)->not->toContain('name="customer_order_source"');
|
||||
expect($checkoutController)->toContain("Request::get('is_from') === 'shopping'");
|
||||
expect($checkoutController)->toContain("\$rules['customer_order_source_comment'] = 'required|string|max:500'");
|
||||
expect($checkoutController)->toContain("\$rules['customer_order_source_comment'] = 'nullable|string|max:500'");
|
||||
expect($checkoutRepository)->toContain('$shopping_user->is_from === \'shopping\'');
|
||||
expect($checkoutRepository)->toContain('customer_order_source_comment');
|
||||
expect($orderDetail)->toContain('getCustomerOrderSourceLabel');
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue