White Label: Sofortpaket WL-00 und Bestandsprüfung WL-01

- Etikettgröße im Lieferschein korrekt parsen ("40#3,5" ergab 3 statt 3,5 cm)
- Produktkopie optional inkl. Kundenzuordnungen und Logo-Dateien (zweiter Kopier-Link)
- whitelabel:transfer-assignments: gezielte, wiederholbare Übertragung ohne Dubletten
- whitelabel:migrate-colors: Zuordnungen anhand der Bildfarbe auf die Farbprodukte übertragen (Dry-Run ohne --execute)
- whitelabel:report: rein lesende Bestandsprüfung (fehlende Zuordnungen, Farbwidersprüche, Dateien, Dubletten)
- Migration für attributes.value (Schema-Drift, auf Live No-op)
- Analyse/Entwicklungsplan um Gegenprüfung, systemischen Befund und neue Paketreihenfolge ergänzt

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Kevin Adametz 2026-09-17 11:05:42 +00:00
parent f7ab4c4519
commit d687a6c569
11 changed files with 1012 additions and 13 deletions

View file

@ -95,8 +95,15 @@
<td data-sort="{{ $value->exclude_stats_sales }}">{!! get_active_badge($value->exclude_stats_sales) !!}</td>
<td data-sort="{{ $value->active }}">{!! get_active_badge($value->active) !!}</td>
<td><a class="text-info" href="{{ route('admin_product_copy', [$value->id]) }}"
title="{{ __('Kopieren (ohne Kundenlogos)') }}"
onclick="return confirm('{{ __('Eintrag kopieren?') }}');"><i
class="far fa-copy"></i></a> &nbsp;
@if($value->whitelabel && ($wlCount = (int) ($value->user_whitelabel_products_count ?? 0)) > 0)
<a class="text-info" href="{{ route('admin_product_copy', [$value->id]) }}?with_assignments=1"
title="{{ __('Kopieren inkl. Kundenlogos') }} ({{ $wlCount }})"
onclick="return confirm('{{ __('Eintrag kopieren und :count Kundenzuordnung(en) mit Logos übernehmen?', ['count' => $wlCount]) }}');"><i
class="fas fa-user-tag"></i></a> &nbsp;
@endif
<form method="post" action="{{ route('admin_product_delete', [$value->id]) }}" class="d-inline"
onsubmit="return confirm('{{ __('Really delete entry?') }}');">
@csrf