@extends('admin.layout') @section('title', $mode === 'arrivages' ? __('Historique des arrivages') : __('Historique des commandes')) {{-- Les commandes par semaine, mois ou annee (HistoriquePeriodesController) : ce qu'on a recu (mode `arrivages`, date_entrepot) ou ce qu'on a commande (mode `commandes`, created_at). Meme ecran, seuls les mots changent. De haut en bas : l'echelle et les filtres, les chiffres, le graphique de l'echelle — un clic sur une barre liste ses commandes juste en dessous — puis la grille des annees mois par mois, dont chaque case mene aussi a sa liste. Une commande sans la date comptee n'y figure pas. --}} @section('content') @php $base = array_filter([ 'echelle' => $echelle, 'annee' => $echelle === 'annee' ? null : $annee, 'type_id' => $filtres['type_id'] ?? null, 'usine' => $filtres['usine'] ?? null, 'statut' => $filtres['statut'] ?? null, ]); $lien = fn (array $modifs) => route($route, array_filter( array_merge($base, $modifs), fn ($v) => $v !== null && $v !== '' )); $max = max(1, ...array_map(fn ($p) => (int) $p['n'], $serie)); $nombre = fn ($n) => number_format((int) $n, 0, ',', ' '); $echelles = ['semaine' => __('Semaine'), 'mois' => __('Mois'), 'annee' => __('Année')]; // Les seuls mots qui different d'un mode a l'autre. $arrivages = $mode === 'arrivages'; $titre = $arrivages ? __('Historique des arrivages') : __('Historique des commandes'); $compte = fn (int $n) => $arrivages ? trans_choice(':n commande reçue|:n commandes reçues', $n, ['n' => $nombre($n)]) : trans_choice(':n commande passée|:n commandes passées', $n, ['n' => $nombre($n)]); $vide = $arrivages ? __('Aucune commande reçue sur cette période.') : __('Aucune commande passée sur cette période.'); @endphp

{{ $titre }}

{{-- Les deux lectures, a un clic l'une de l'autre, filtres et echelle gardes. --}} @if (auth()->user()->can('commandes.view') && auth()->user()->can('commandes.arrivages')) @php $garder = array_filter(['echelle' => $echelle, 'annee' => $echelle === 'annee' ? null : $annee] + $filtres); @endphp @endif
{{-- Echelle, annee, filtres --}}
@foreach ($echelles as $cle => $libelle) {{ $libelle }} @endforeach
@if ($echelle !== 'annee')
{{ $annee }}
@endif
{{-- Les filtres se soumettent seuls : deux listes, pas de bouton a chercher. --}}
@if ($echelle !== 'annee') @endif {{-- Une refabrication est une commande de plus : on peut vouloir ne compter que les originales. --}}
{{-- Chiffres --}}
@foreach ($chiffres as $chiffre)
{{ $chiffre['libelle'] }}
{{ $chiffre['valeur'] }} @if (!empty($chiffre['note'])) {{ $chiffre['note'] }} @endif
@endforeach
{{-- Graphique : une barre par periode, un lien chacune. Defile a l'horizontale sur un telephone plutot que d'ecraser 53 semaines. --}}
@foreach ($serie as $p) @if ($p['n'] === null)
{{ $p['libelle'] }}
@else
@if ($p['n'] > 0) {{ $nombre($p['n']) }}
@endif
{{ $p['libelle'] }}
@endif @endforeach
{{-- Les commandes de la periode choisie --}}
@if ($commandes === null)

{{ $vide }}

@else
{{ $titrePeriode }} — {{ $compte($commandes->total()) }}
@if ($commandes->isEmpty())

{{ $vide }}

@else
@foreach ($commandes as $commande) @php $client = $clients[$commande->id]['client'] ?? null; $nomClient = $client['libelle'] ?? null; @endphp @endforeach
{{ __('N°') }} {{ __('Client') }} {{ __('Type') }} {{ __('Modèle') }} {{ __('Couleur') }} {{ __('Usine') }} {{ $arrivages ? __('Reçue le') : __('Passée le') }}
{{ $commande->id }} @if ($nomClient) {{ $nomClient }} @elseif ($commande->client_id) {{ __('Client :id', ['id' => $commande->client_id]) }} @else — @endif {{ $commande->type ? \App\Helpers\CommandeHelper::nomTraduit($commande->type->nom) : '—' }} {{ $commande->modele ?: '—' }} {{ \App\Helpers\CommandeHelper::couleurCourte($commande->couleur, '—') }} {{ \App\Helpers\CommandeHelper::libelle('usines', $commande->usine, '—') }} {{ \Illuminate\Support\Carbon::parse($commande->{$colonne})->format('d/m/Y') }}
{{ $commandes->links() }} @endif @endif
{{-- Comparaison : une ligne par annee, un mois par colonne. Plus la case est foncee, plus on a recu. --}}
{{ __('Mois par mois, année par année') }}
@include('admin.commandes._grille-periodes', ['grille' => $grille, 'lien' => $lien, 'periode' => $periode])
@endsection