@if(session('success'))
{{ session('success') }}
@endif @if(session('error'))
{{ session('error') }}
@endif

Bestellung bei Riccardo Onlinestore

Die Bestellung entsteht in zwei Systemen. In der Online-Wawi wird ein Verkaufsauftrag der Riccardo Onlinestore GmbH an die Filiale angelegt – das ist der Knopf unten. In der Offline-Wawi braucht die Filiale dieselbe Bestellung als Lieferantenbestellung, damit ihre Warenwirtschaft den Zulauf kennt und der nächste Rechenlauf die Ware nicht ein zweites Mal bestellt; dafür gibt es die CSV für die JTL-Ameise.

@if(! $vorschau['ok'])

Es wird nichts gesendet

{{ $vorschau['message'] }}

@else {{-- Die Lieferanschrift steht bewusst zuoberst und gross: der Kunde ist fuer fast alle Filialen derselbe, allein diese Anschrift entscheidet, wo die Ware ankommt. --}}

Lieferanschrift – bitte prüfen

@php $a = $vorschau['anschrift']; @endphp {{ $a['Company'] }}
@if(!empty($a['Company2'])){{ $a['Company2'] }}
@endif {{ $a['Street'] }}
@if(!empty($a['Address2'])){{ $a['Address2'] }}
@endif {{ $a['PostalCode'] }} {{ $a['City'] }} ({{ $a['CountryIso'] }})

Frisch aus der Online-Wawi gelesen (Kunde {{ $branch->riccardo_customer_id }}, Anschrift {{ $branch->riccardo_delivery_address_id }}). Stimmt sie nicht, wird sie in JTL geändert – die Suite hält keine eigene Kopie.

Positionen

{{ $vorschau['message'] }}

@include('partials.positionsliste', [ 'gruppen' => $gruppen, 'menge' => fn ($z) => (float) $z->order_quantity, 'spalten' => [ ['kopf' => 'Artikel', 'typ' => 'text', 'klasse' => 'text-left', 'wert' => fn ($z) => '

' . e($z->article_name) . '

' . '

' . e($z->article_sku) . '

'], ['kopf' => 'Bestand', 'typ' => 'zahl', 'wert' => fn ($z) => '' . number_format((float) $z->current_stock, 0, ',', '.') . ''], ['kopf' => 'Menge', 'typ' => 'zahl', 'wert' => fn ($z) => '' . number_format((float) $z->order_quantity, 0, ',', '.') . ''], ], ])

Übertragen

@csrf
Ameise-CSV herunterladen
@csrf
Intern – CSV Zurück

Der Auftrag geht nur einmal pro Tag und Filiale raus; ein zweiter Versuch wird abgewiesen. Erst wenn Kopf und Positionen bestätigt sind, gelten die Vorschläge als bestellt. Mit dem Anlegen wandert die Ameise-CSV automatisch auf die Storage Box ({{ config('storagebox.pfad') }}); die beiden Knöpfe daneben sind für den Fall, dass das nachgeholt werden muss.

@endif {{-- Nicht bestellbarer Bedarf. Bewusst ausserhalb der Bestellansicht: sind ALLE Positionen nicht lieferbar, ist oben nur die rote Box zu sehen - und dann ist diese Liste die eigentliche Information. --}} @if($nichtLieferbar->isNotEmpty())

Nicht bestellbar

{{ $nichtLieferbar->count() }} Positionen · {{ (int) $nichtLieferbar->sum('bedarf') }} Stück Bedarf

Diese Artikel hat der Rechenlauf gebraucht, aber Riccardo kann sie derzeit nicht liefern. Sie sind nicht verloren: der nächste Lauf rechnet sie aus dem dann noch niedrigeren Bestand erneut – der Bedarf kommt größer wieder, statt sich aufzuaddieren.

@foreach($nichtLieferbar as $n) @endforeach
Artikelnummer Artikel Bestand Meldebestand Bedarf Grund
{{ $n['sku'] }} {{ $n['name'] }} {{ (int) $n['bestand'] }} {{ (int) $n['meldebestand'] }} {{ (int) $n['bedarf'] }} {{ $n['grund'] }}

Bestand = aktueller Bestand der Filiale. Steht er auf 0, ist der Artikel dort bereits leer.

@endif