Warenwirtschaft: AP-33a — Abwicklungs-Tabelle für iPad optimiert
9 → 6 Spalten (Datum unter Bestellnr., Gewicht in die Packliste, Zahlung in die Status-Spalte); Aktionen-Spalte sticky am rechten Rand (bleibt beim horizontalen Scrollen sichtbar); unterhalb Desktop-Breite Icon-Buttons ohne Beschriftung (Tooltip bleibt). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
054f26fb38
commit
4c73e64446
1 changed files with 43 additions and 27 deletions
|
|
@ -3,6 +3,23 @@
|
|||
@section('content')
|
||||
@include('admin.inventory.partials.wawi-ui')
|
||||
|
||||
<style>
|
||||
/* AP-33a: iPad-Optimierung — Aktionen bleiben beim horizontalen Scrollen sichtbar */
|
||||
#of-table th.of-actions,
|
||||
#of-table td.of-actions {
|
||||
position: sticky;
|
||||
right: 0;
|
||||
background: #fff;
|
||||
box-shadow: -6px 0 6px -6px rgba(24, 28, 33, .15);
|
||||
white-space: nowrap;
|
||||
}
|
||||
#of-table td { vertical-align: middle; }
|
||||
@media (max-width: 1199.98px) {
|
||||
.of-btn-text { display: none; }
|
||||
#of-table .btn .mr-1 { margin-right: 0 !important; }
|
||||
}
|
||||
</style>
|
||||
|
||||
<div class="wawi-page">
|
||||
<div class="wawi-page-head">
|
||||
<div>
|
||||
|
|
@ -64,14 +81,11 @@
|
|||
<thead>
|
||||
<tr>
|
||||
<th>{{ __('Bestellung') }}</th>
|
||||
<th>{{ __('Datum') }}</th>
|
||||
<th>{{ __('Kunde') }}</th>
|
||||
<th class="text-right">{{ __('Positionen') }}</th>
|
||||
<th class="text-right">{{ __('Gewicht') }}</th>
|
||||
<th>{{ __('Zahlung') }}</th>
|
||||
<th class="text-center">{{ __('Positionen') }}</th>
|
||||
<th>{{ __('Status') }}</th>
|
||||
<th>{{ __('Dokumente') }}</th>
|
||||
<th class="text-right">{{ __('Aktionen') }}</th>
|
||||
<th class="text-right of-actions">{{ __('Aktionen') }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
|
@ -94,40 +108,39 @@
|
|||
@elseif ($order->promotion_user_id)
|
||||
<span class="wawi-pill" style="background:rgba(24,28,33,.06);color:#6c757d;">{{ __('Promo') }}</span>
|
||||
@endif
|
||||
<div class="small text-muted">{{ $order->created_at->format('d.m.Y H:i') }}</div>
|
||||
</td>
|
||||
<td>{{ $order->created_at->format('d.m.Y H:i') }}</td>
|
||||
<td>
|
||||
<span class="wawi-item-name">{{ $customer !== '' ? $customer : '—' }}</span>
|
||||
@if ($order->shipping_country?->country)
|
||||
<span class="text-muted small">{{ strtoupper($order->shipping_country->country->code) }}</span>
|
||||
@endif
|
||||
</td>
|
||||
<td class="text-right">
|
||||
<td class="text-center">
|
||||
<button type="button" class="btn btn-sm btn-link p-0 js-of-toggle" data-target="of-items-{{ $order->id }}">
|
||||
{{ $itemCount }} <span class="fas fa-chevron-down small"></span>
|
||||
</button>
|
||||
</td>
|
||||
<td class="text-right">{{ $order->weight ? number_format($order->weight / 1000, 2, ',', '.').' kg' : '—' }}</td>
|
||||
<td>
|
||||
@if ($readyToShip)
|
||||
<span class="wawi-pill wawi-pill--ok">{{ __('versandfertig') }}</span>
|
||||
@else
|
||||
<span class="wawi-pill wawi-pill--warning">{{ __('wartet auf Zahlung') }}</span>
|
||||
@endif
|
||||
@if ($clearingtype === 'fnc')
|
||||
<div class="small text-muted">{{ __('Rechnung') }}</div>
|
||||
@elseif ($clearingtype === 'vor')
|
||||
<div class="small text-muted">{{ __('Vorkasse') }}</div>
|
||||
@endif
|
||||
</td>
|
||||
<td>
|
||||
@if ((int) $order->shipped === 0)
|
||||
<span class="wawi-pill wawi-pill--warning">{{ __('offen') }}</span>
|
||||
@else
|
||||
<span class="wawi-pill" style="background:rgba(3,155,229,.12);color:#0277bd;">{{ $order->getShippedType() }}</span>
|
||||
@endif
|
||||
<div class="small mt-1">
|
||||
@if ($readyToShip)
|
||||
<span class="wawi-pill wawi-pill--ok">{{ __('versandfertig') }}</span>
|
||||
@else
|
||||
<span class="wawi-pill wawi-pill--danger">{{ __('wartet auf Zahlung') }}</span>
|
||||
@endif
|
||||
@if ($clearingtype === 'fnc')
|
||||
<span class="text-muted">{{ __('Rechnung') }}</span>
|
||||
@elseif ($clearingtype === 'vor')
|
||||
<span class="text-muted">{{ __('Vorkasse') }}</span>
|
||||
@endif
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<td style="white-space:nowrap;">
|
||||
@if ($order->isApiOrder())
|
||||
@if ($order->wp_invoice_path)
|
||||
<a href="{{ $order->wp_invoice_path }}" target="_blank" rel="noopener" title="{{ __('Externe Rechnung (Shop)') }}">
|
||||
|
|
@ -146,19 +159,19 @@
|
|||
<input type="hidden" name="back_filter" value="{{ $filter }}">
|
||||
<button type="submit" class="btn btn-sm btn-outline-secondary" title="{{ __('Rechnung + Lieferschein erstellen (ohne E-Mail-Versand)') }}"
|
||||
onclick="return confirm(@json(__('Rechnung + Lieferschein jetzt erstellen? (Es wird keine E-Mail versendet — Versand wie gewohnt über die Bestell-Details.)')));">
|
||||
<span class="fas fa-file-medical mr-1"></span>{{ __('erstellen') }}
|
||||
<span class="fas fa-file-medical mr-1"></span><span class="of-btn-text">{{ __('erstellen') }}</span>
|
||||
</button>
|
||||
</form>
|
||||
@endif
|
||||
</td>
|
||||
<td class="text-right" style="white-space:nowrap;">
|
||||
<td class="text-right of-actions">
|
||||
@if ((int) $order->shipped === 0)
|
||||
<form action="{{ route('admin.inventory.orders.status', $order->id) }}" method="post" class="d-inline">
|
||||
@csrf
|
||||
<input type="hidden" name="shipped" value="1">
|
||||
<input type="hidden" name="back_filter" value="{{ $filter }}">
|
||||
<button type="submit" class="btn btn-sm btn-outline-primary" title="{{ __('Als konfektioniert (in Bearbeitung) markieren') }}">
|
||||
<span class="fas fa-box mr-1"></span>{{ __('Konfektioniert') }}
|
||||
<span class="fas fa-box mr-1"></span><span class="of-btn-text">{{ __('Konfektioniert') }}</span>
|
||||
</button>
|
||||
</form>
|
||||
@endif
|
||||
|
|
@ -169,15 +182,18 @@
|
|||
<input type="hidden" name="shipped" value="2">
|
||||
<input type="hidden" name="back_filter" value="{{ $filter }}">
|
||||
<button type="submit" class="btn btn-sm btn-primary" title="{{ __('Als versendet buchen (Bestandsabzug)') }}">
|
||||
<span class="fas fa-shipping-fast mr-1"></span>{{ __('Versendet') }}
|
||||
<span class="fas fa-shipping-fast mr-1"></span><span class="of-btn-text">{{ __('Versendet') }}</span>
|
||||
</button>
|
||||
</form>
|
||||
@endif
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="of-items d-none" id="of-items-{{ $order->id }}">
|
||||
<td colspan="9" class="pl-4" style="background:rgba(24,28,33,.02);">
|
||||
<td colspan="6" 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>
|
||||
@endif
|
||||
<ul class="mb-1 small">
|
||||
@foreach ($order->shopping_order_items as $item)
|
||||
<li>
|
||||
|
|
@ -197,7 +213,7 @@
|
|||
</tr>
|
||||
@empty
|
||||
<tr>
|
||||
<td colspan="9">
|
||||
<td colspan="6">
|
||||
<div class="wawi-empty">
|
||||
<div><span class="fas fa-mug-hot"></span></div>
|
||||
{{ __('Nichts zu tun — keine Bestellungen in diesem Filter.') }}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue