{{ $nf0($summary['stale']) }} Positionen ({{ $nf0($summary['stale_units']) }} Stück) stammen noch vom {{ \Illuminate\Support\Carbon::parse($summary['stale_oldest'])->format('d.m.Y') }} und nicht vom heutigen Lauf.
Ihre Mengen beruhen auf den Beständen von damals – nicht ungeprüft mitbestellen. Normalerweise räumt jeder Rechenlauf solche Positionen weg; dass sie hier stehen, heißt: der Lauf für diesen Lieferanten ist seitdem nicht mehr durchgelaufen. Bitte neu rechnen lassen.
Filialen mit Bestellung
{{ $nf0($summary['branches']) }}
Positionen
{{ $nf0($summary['positions']) }}
Stück gesamt
{{ $nf0($summary['units']) }}
Ohne Lieferant
{{ $nf0($summary['no_supplier']) }}
Bedarf ohne Deckung
{{ $nf0($fehltPos) }}
{{ $nf0($fehltStk) }} Stück
{{ $nf0($fehltPos) }} Positionen ({{ $nf0($fehltStk) }} Stück) sollten bestellt werden, gehen aber heute nicht raus:
Alle betroffenen Artikel anzeigen →
Nichts davon ist verloren: der nächste Lauf rechnet den Bedarf aus dem dann niedrigeren Bestand erneut – er kommt größer wieder, statt sich aufzuaddieren. Welche Artikel es je Filiale betrifft, steht auf der jeweiligen Bestellseite unter „Nicht bestellbar“.
Angezeigt wird nur, was tatsächlich bestellt wird (offene Positionen mit Menge > 0). Je Filiale und Lieferant entsteht ein eigener Beleg. Sammelexport = alle Filialen eines Lieferanten in einer Datei.
{{ $ohneLieferant ? 'Ohne hinterlegten Lieferanten' : $items->first()->supplier_name }}
@if($ohneLieferant) Nicht bestellbar – in JTL ist für diese Artikel kein Lieferant gepflegt @else {{ $rhythmus($supplierId) }} @endif
{{ $items->count() }} Positionen · {{ $nf0($items->sum('order_quantity')) }} Stück
CSV @if((int) $supplierId === 2) @php $sendung = $extradeGesendet($branchId); @endphp @if($sendung) ✓ {{ $sendung->sent_at?->format('H:i') }} Uhr @elseif($extradeBereit) @else @endif @endif {{-- Riccardo laeuft ueber zwei Systeme (Auftrag Online-Wawi + Lieferantenbestellung Offline-Wawi), deshalb kein direkter Senden-Knopf, sondern der Weg ueber die Vorschau: dort wird die Lieferanschrift geprueft, bevor etwas angelegt wird. --}} Intern @if((int) $supplierId === 3) @php $ricSendung = $riccardoGesendet($branchId); @endphp @if($ricSendung) ✓ {{ $ricSendung->sent_at?->format('H:i') }} Uhr @else Bestellen … @endif @endif {{-- Niko genauso ueber die Vorschau: dort werden Anschrift und die Lieferantenartikelnummern geprueft, bevor etwas rausgeht. --}} @if((int) $supplierId === 1) @php $nikoSendung = $nikoGesendet($branchId); @endphp @if($nikoSendung) ✓ {{ $nikoSendung->sent_at?->format('H:i') }} Uhr @else Bestellen … @endif @endif' . e($z->article_name) . '
' . '' . e($z->article_sku ?: '–') . '
'], ['kopf' => 'Bestand', 'typ' => 'zahl', 'wert' => fn ($z) => '' . number_format((float) $z->current_stock, 0, ',', '.') . ''], ['kopf' => 'Dringlichkeit', 'typ' => 'text', 'wert' => fn ($z) => match ($z->severity()) { 'out' => 'Ausverkauft', 'critical' => 'Unter Sicherheitsbest.', default => 'Nachbestellen', }], ['kopf' => 'Meldebestand', 'typ' => 'zahl', 'wert' => fn ($z) => '' . number_format((float) $z->reorder_point, 0, ',', '.') . ''], ['kopf' => 'Bestellmenge', 'typ' => 'zahl', 'wert' => fn ($z) => '' . number_format((float) $z->order_quantity, 0, ',', '.') . ''], ['kopf' => 'Detail', 'typ' => 'text', 'wert' => fn ($z) => 'Detail'], ], ])