From ede8e0532d4275fd9f07536a2501ebe236bc6637 Mon Sep 17 00:00:00 2001 From: Kevin Date: Wed, 23 Sep 2026 15:40:46 +0000 Subject: [PATCH] Portal-Abo: Abo-Anlage und Ausfuehrungsliste rendern ohne Fehler Log-Analyse 26.08. (P0-1, P1-2): getContentByOrder() liefert ein Array, contains() darauf warf bei jeder Abo-Anlage im Portal einen 500. Die Ausfuehrungsliste nutzt CRM-Routen, die im Portal fehlen; dort gibt es jetzt user_order_detail als Alias auf die Portal-Bestellansicht, und die View prueft die Route vor dem Verlinken. Co-Authored-By: Claude Opus 5.5 (1M context) --- resources/views/admin/abo/_executions.blade.php | 4 ++-- resources/views/portal/abo/_create_check.blade.php | 2 +- routes/domains/portal.php | 3 +++ 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/resources/views/admin/abo/_executions.blade.php b/resources/views/admin/abo/_executions.blade.php index 0f2807a5..c947504d 100644 --- a/resources/views/admin/abo/_executions.blade.php +++ b/resources/views/admin/abo/_executions.blade.php @@ -64,7 +64,7 @@ @endif @else @if($user_abo->is_for === 'me') - @if(!isset($only_show_products) || !$only_show_products) + @if((!isset($only_show_products) || !$only_show_products) && Route::has('user_order_detail')) {!! ''.$user_abo_order->shopping_order_id.'' !!} @else @@ -72,7 +72,7 @@ @endif @endif @if($user_abo->is_for === 'ot') - @if(!isset($only_show_products) || !$only_show_products) + @if((!isset($only_show_products) || !$only_show_products) && Route::has('user_shop_order_detail')) {!! ''.$user_abo_order->shopping_order_id.'' !!} @else {{ $user_abo_order->shopping_order_id }} diff --git a/resources/views/portal/abo/_create_check.blade.php b/resources/views/portal/abo/_create_check.blade.php index 04dfc480..53bc631c 100644 --- a/resources/views/portal/abo/_create_check.blade.php +++ b/resources/views/portal/abo/_create_check.blade.php @@ -125,7 +125,7 @@ @endforeach - @php($hasOneTimeRows = Yard::instance('subscription')->getContentByOrder()->contains(function ($item) { return (bool) ($item->options->abo_addon ?? false); })) + @php($hasOneTimeRows = collect(Yard::instance('subscription')->getContentByOrder())->contains(function ($item) { return (bool) ($item->options->abo_addon ?? false); })) @if ($hasOneTimeRows)
{{ __('abo.onetime_create_info') }} diff --git a/routes/domains/portal.php b/routes/domains/portal.php index 25beda55..9303c63c 100644 --- a/routes/domains/portal.php +++ b/routes/domains/portal.php @@ -70,6 +70,9 @@ Route::domain(config('app.pre_url_portal').config('app.domain').config('app.tld_ return redirect()->route('portal.my_data.edit'); })->name('user_customer_edit'); Route::get('portal/my-orders/detail/{id}', [OrderController::class, 'myOrderShow'])->name('user_shop_order_detail'); + // Kunden im Portal haben nur eine Bestellansicht; der CRM-Name wird fuer + // admin.abo._executions (is_for === 'me') mit abgebildet. + Route::get('portal/my-orders/own-detail/{id}', [OrderController::class, 'myOrderShow'])->name('user_order_detail'); Route::get('portal/settings', [InController::class, 'settings'])->name('portal.settings'); // Weitere Kunden-spezifische Routen });