From 30bbfa32a08ccdcca029b89358a60b5a593d0b87 Mon Sep 17 00:00:00 2001 From: Kevin Date: Wed, 23 Sep 2026 15:43:09 +0000 Subject: [PATCH] Kundenfeedback 07.09. (K4, K5) und Karriere-Fallback: fehlende Controller-/View-Teile Die Pakete stehen im Plan als umgesetzt und sind live, der Controller- und View-Teil lag aber nur im Arbeitsbaum (Sprachkeys und Model-Methoden sind seit 5a38f4a/685f7a9 versioniert): - K5: Abo-Bestellungen in Punkteuebersicht, Dashboard-Punkten und eigener Statistik tuerkis mit Zusatz "(Abo)", Legende darueber. - K4: Summe der Payline-Abos ("149 + 391 = 540 Abos gesamt"). - Home: payline_is_career_fallback, solange die Monatsquali aussteht (Kundenentscheid 01.09.); die View wertet das Kennzeichen schon aus. Co-Authored-By: Claude Opus 5.5 (1M context) --- app/Http/Controllers/HomeController.php | 6 ++++- app/Http/Controllers/User/TeamController.php | 26 +++++++++++++------ resources/views/dashboard/_points.blade.php | 9 ++++--- .../user/backoffice/statistics/my.blade.php | 6 +++-- resources/views/user/team/abos.blade.php | 8 +++++- resources/views/user/team/points.blade.php | 3 +++ 6 files changed, 43 insertions(+), 15 deletions(-) diff --git a/app/Http/Controllers/HomeController.php b/app/Http/Controllers/HomeController.php index e59cb794..dc0bb462 100644 --- a/app/Http/Controllers/HomeController.php +++ b/app/Http/Controllers/HomeController.php @@ -153,7 +153,8 @@ class HomeController extends Controller // Berater) — die Payline-Mitgliedermenge selbst enthält auch inaktive, // deren Abos weiterhin in die Abo-/Punkte-Summen der Payline zählen. $activeTeamUserIds = $dashboardService->activeTeamUserIds($user->id); - $paylineMemberIds = $paylineService->paylineContext($user, $month, $year)['member_ids']; + $paylineContext = $paylineService->paylineContext($user, $month, $year); + $paylineMemberIds = $paylineContext['member_ids']; $activePaylineMemberCount = count(array_intersect($activeTeamUserIds, $paylineMemberIds)); // Abo-Zähler der Payline monatsbezogen wie die übrigen Abo-Kacheln (N2) — @@ -176,6 +177,9 @@ class HomeController extends Controller 'payline_member_count' => $activePaylineMemberCount, 'payline_abo_count' => $paylineAboCount, 'payline_abos_new' => $paylineService->newPaylineAboCount($user, $month, $year), + // Monatsquali steht noch aus -> die beiden Payline-Kacheln rechnen + // mit den Ebenen des Karriere-Levels und weisen das aus. + 'payline_is_career_fallback' => (bool) $paylineContext['is_career_fallback'], 'level' => app(LiveCommissionService::class)->levelProgress($user, $month, $year), 'level_forecast' => $levelForecast, 'top_results' => app(TopResultsService::class)->monthlyTop3($user, $month, $year), diff --git a/app/Http/Controllers/User/TeamController.php b/app/Http/Controllers/User/TeamController.php index 845aee0b..d091d146 100644 --- a/app/Http/Controllers/User/TeamController.php +++ b/app/Http/Controllers/User/TeamController.php @@ -1088,14 +1088,24 @@ class TeamController extends Controller return \DataTables::eloquent($query) + // Abo-Bestellungen setzen sich farblich und per Zusatz von den + // Shop-Bestellungen ab (Kundenwunsch 2026-09-07). Die Farbe bleibt + // ansonsten wie bisher: eigene Bestellung vs. Kundenbestellung. ->addColumn('order', function (UserSalesVolume $UserSalesVolume) { - if ($UserSalesVolume->shopping_order) { - if ($UserSalesVolume->status === 1 && $UserSalesVolume->shopping_order->auth_user_id === $UserSalesVolume->user_id) { - return ''.$UserSalesVolume->shopping_order->id.''; - } - if (($UserSalesVolume->status === 2 || $UserSalesVolume->status === 3) && $UserSalesVolume->shopping_order->member_id === $UserSalesVolume->user_id) { - return ''.$UserSalesVolume->shopping_order->id.''; - } + $order = $UserSalesVolume->shopping_order; + + if (! $order) { + return ''; + } + + $isAbo = $UserSalesVolume->isAboOrder(); + $label = $order->id.($isAbo ? ' '.__('abo.abo_order_short') : ''); + + if ($UserSalesVolume->status === 1 && $order->auth_user_id === $UserSalesVolume->user_id) { + return ''.$label.''; + } + if (($UserSalesVolume->status === 2 || $UserSalesVolume->status === 3) && $order->member_id === $UserSalesVolume->user_id) { + return ''.$label.''; } return ''; @@ -1107,7 +1117,7 @@ class TeamController extends Controller return ''.$UserSalesVolume->getStatusTurnoverType().''; }) ->addColumn('status', function (UserSalesVolume $UserSalesVolume) { - return ''.$UserSalesVolume->getStatusType().''; + return ''.$UserSalesVolume->getStatusTypeWithAbo().''; }) ->addColumn('message', function (UserSalesVolume $UserSalesVolume) { return ''.$UserSalesVolume->message.''; diff --git a/resources/views/dashboard/_points.blade.php b/resources/views/dashboard/_points.blade.php index 7a0baa80..07f38297 100644 --- a/resources/views/dashboard/_points.blade.php +++ b/resources/views/dashboard/_points.blade.php @@ -32,6 +32,7 @@ @endif +

{{ __('abo.points_order_legend') }}

@@ -61,15 +62,17 @@ {{ formatNumber($userSalesVolume->total_net) }} € diff --git a/resources/views/user/backoffice/statistics/my.blade.php b/resources/views/user/backoffice/statistics/my.blade.php index 3b3f97ac..61632210 100644 --- a/resources/views/user/backoffice/statistics/my.blade.php +++ b/resources/views/user/backoffice/statistics/my.blade.php @@ -113,6 +113,8 @@ +

{{ __('abo.points_order_legend') }}

+ @foreach ($statistics['groups'] as $group) @if ($group['rows'] !== [])
@@ -153,10 +155,10 @@
- {{ $userSalesVolume->getStatusType() }} + {{ $userSalesVolume->getStatusTypeWithAbo() }} @if($userSalesVolume->shopping_order) + @php($isAboOrder = $userSalesVolume->isAboOrder()) + @php($orderLabel = $userSalesVolume->shopping_order->id.($isAboOrder ? ' '.__('abo.abo_order_short') : '')) @if($userSalesVolume->status === 1 && $userSalesVolume->shopping_order->auth_user_id === $userSalesVolume->user_id) - {{ $userSalesVolume->shopping_order->id }} + {{ $orderLabel }} @endif @if(($userSalesVolume->status === 2 || $userSalesVolume->status === 3) && $userSalesVolume->shopping_order->member_id === $userSalesVolume->user_id) - {{ $userSalesVolume->shopping_order->id }} + {{ $orderLabel }} @endif @endif @if ($row['order_id'] && $row['order_type'] === 'own') {{ $row['order_id'] }} + class="btn btn-xs btn-{{ ($row['is_abo'] ?? false) ? 'info' : 'primary' }}">{{ $row['order_id'] }}{{ ($row['is_abo'] ?? false) ? ' '.__('abo.abo_order_short') : '' }} @elseif ($row['order_id'] && $row['order_type'] === 'shop') {{ $row['order_id'] }} + class="btn btn-xs btn-{{ ($row['is_abo'] ?? false) ? 'info' : 'secondary' }}">{{ $row['order_id'] }}{{ ($row['is_abo'] ?? false) ? ' '.__('abo.abo_order_short') : '' }} @else — @endif diff --git a/resources/views/user/team/abos.blade.php b/resources/views/user/team/abos.blade.php index 7c1385bb..4521f2e0 100644 --- a/resources/views/user/team/abos.blade.php +++ b/resources/views/user/team/abos.blade.php @@ -67,7 +67,13 @@
{{ __('abo.payline_hint', ['lines' => $paylineAboTurnover['paylines'], 'members' => $paylineAboTurnover['members']]) }}
- {{ __('abo.payline_abo_counts', ['team_abos' => $paylineAboTurnover['team_abo_count'] ?? 0, 'customer_abos' => $paylineAboTurnover['team_customer_abo_count'] ?? 0]) }} + @php($paylineTeamAbos = (int) ($paylineAboTurnover['team_abo_count'] ?? 0)) + @php($paylineCustomerAbos = (int) ($paylineAboTurnover['team_customer_abo_count'] ?? 0)) + {{ __('abo.payline_abo_counts', [ + 'team_abos' => $paylineTeamAbos, + 'customer_abos' => $paylineCustomerAbos, + 'total' => $paylineTeamAbos + $paylineCustomerAbos, + ]) }}
@else

{{ __('abo.payline_none') }}

diff --git a/resources/views/user/team/points.blade.php b/resources/views/user/team/points.blade.php index 4c18b6a6..33a783fa 100644 --- a/resources/views/user/team/points.blade.php +++ b/resources/views/user/team/points.blade.php @@ -47,6 +47,9 @@ @include('user.team._points_sum', ['userSalesVolume' => $userSalesVolume])
+
+

{{ __('abo.points_order_legend') }}

+