Warenwirtschaft: Review-Fix — Abwicklungs-Board (Copyreader-Links, 500er-Cap, Details)

Bestellnummern-Links auf admin_sales_detail (admin >= 7) waren für
Versand-Mitarbeiter tote Links (stiller Redirect) — jetzt rollenabhängig.
Kachel-Zähler und pick/ready-Filter rechnen über alle offenen
Bestellungen statt über die neuesten 500; gekappt wird nur die Anzeige,
der Hinweis-Banner zeigt 'neueste n von total' korrekt. whereDate durch
indexfähiges whereBetween ersetzt; Packlisten-Toggle über data-order-id;
Gewicht über formatNumber().

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Kevin Adametz 2026-07-20 12:40:03 +00:00
parent f28f4b4b68
commit 80d0687f95
5 changed files with 61 additions and 17 deletions

View file

@ -83,8 +83,12 @@
<td>{{ $log->wp_order_number ?? '—' }}</td>
<td>{{ $customer !== '' ? $customer : '—' }}</td>
<td>
@if ($log->shopping_order_id)
{{-- Verkäufe-Detail verlangt admin ≥ 7 — Versand-Mitarbeiter (copyreader)
bekämen sonst einen stillen Redirect (Review 20.07.2026) --}}
@if ($log->shopping_order_id && auth()->user()->isAdmin())
<a href="{{ route('admin_sales_detail', $log->shopping_order_id) }}">#{{ $log->shopping_order_id }}</a>
@elseif ($log->shopping_order_id)
<span class="font-weight-bold">#{{ $log->shopping_order_id }}</span>
@else
<span class="text-muted">—</span>
@endif

View file

@ -132,7 +132,7 @@
$readyToShip = $order->isReadyToShip();
$itemCount = $order->shopping_order_items->sum('qty');
@endphp
<tr class="of-row" data-search="{{ mb_strtolower($order->id.' '.$customer) }}">
<tr class="of-row" data-order-id="{{ $order->id }}" data-search="{{ mb_strtolower($order->id.' '.$customer) }}">
<td>
@if ($order->isApiOrder())
<input type="checkbox" disabled title="{{ __('API-Bestellung — Dokumente liegen im externen Shop') }}">
@ -141,7 +141,13 @@
@endif
</td>
<td>
<a href="{{ route('admin_sales_detail', $order->id) }}">#{{ $order->id }}</a>
{{-- Verkäufe-Detail verlangt admin ≥ 7 — Versand-Mitarbeiter (copyreader)
bekämen sonst einen stillen Redirect (Review 20.07.2026) --}}
@if (auth()->user()->isAdmin())
<a href="{{ route('admin_sales_detail', $order->id) }}">#{{ $order->id }}</a>
@else
<span class="font-weight-bold">#{{ $order->id }}</span>
@endif
@if ($order->isApiOrder())
<span class="wawi-pill" style="background:rgba(24,28,33,.06);color:#6c757d;">API</span>
@elseif ($order->user_shop_id)
@ -243,7 +249,7 @@
<td colspan="7" class="pl-4" style="background:rgba(24,28,33,.02);">
<strong class="small text-muted">{{ __('Packliste') }}</strong>
@if ($order->weight)
<span class="small text-muted">· {{ __('Gewicht') }}: {{ number_format($order->weight / 1000, 2, ',', '.') }} kg</span>
<span class="small text-muted">· {{ __('Gewicht') }}: {{ formatNumber($order->weight / 1000) }} kg</span>
@endif
<ul class="mb-1 small">
@foreach ($order->shopping_order_items as $item)
@ -275,9 +281,9 @@
</tbody>
</table>
</div>
@if (($listLimit ?? null) !== null && $orders->count() >= $listLimit)
@if (($listLimit ?? null) !== null && ($listTotal ?? 0) > $listLimit)
<p class="text-muted small px-3 pb-2 mb-0">
{{ __('Es werden die neuesten :n Bestellungen angezeigt.', ['n' => $listLimit]) }}
{{ __('Es werden die neuesten :n von :total Bestellungen angezeigt.', ['n' => $listLimit, 'total' => $listTotal]) }}
<a href="{{ route('admin.inventory.orders.index', array_filter(['all' => 1, 'filter' => $filter])) }}">{{ __('Alle anzeigen') }}</a>
</p>
@endif
@ -295,7 +301,7 @@
var show = term === '' || ($(this).data('search') || '').toString().indexOf(term) !== -1;
$(this).toggle(show);
if (!show) {
$('#of-items-' + $(this).find('a').first().text().replace('#', '')).addClass('d-none');
$('#of-items-' + $(this).data('order-id')).addClass('d-none');
}
});
});