@php // Plusieurs lots dans une phrase : « then » = lots restants, « all » = tous (pour l'impression finale), « print » = modèle demandé. $ids = fn (?string $v) => collect(explode(',', (string) $v))->filter(fn ($i) => ctype_digit($i))->map(fn ($i) => (int) $i)->values(); $then = $ids(request('then')); $nextUrl = $then->isNotEmpty() ? route('tickets.batches.show', array_filter(['batch' => $then->first(), 'then' => $then->skip(1)->implode(',') ?: null, 'print' => request('print'), 'all' => request('all')])) : null; $printUrl = null; if (! $nextUrl && $templates->contains('id', (int) request('print'))) { $lots = \App\Models\TicketBatch::whereIn('id', $ids(request('all'))->push($batch->id)->unique()->all())->where('router_id', $batch->router_id)->orderBy('id')->pluck('comment')->implode(','); $printUrl = route('tickets.print', ['router' => $batch->router_id, 'lot' => $lots ?: $batch->comment, 'template' => (int) request('print')]); } @endphp

{{ $batch->created_count }}/{{ $batch->quantity }}

@foreach ([ ['Lot (commentaire)', $batch->comment, true], ['Date', $batch->created_at->format('d/m/Y H:i'), false], ['Quantité demandée', $batch->quantity, false], ['Profil', $batch->profile, false], ['Revendeur', $batch->reseller?->name ?? '—', false], ['Mode', $batch->mode === 'userpass' ? 'Code + mot de passe' : 'Code seul (code = mot de passe)', false], ['Début des codes', $batch->prefix.' + '.max(3, $batch->code_length - mb_strlen($batch->prefix)).' caractères ('.$batch->code_length.' en tout)', false], ['Durée / données', ($batch->limit_uptime ?: 'durée du profil').' · '.($batch->limit_bytes ? \App\Support\Money::number((int) round($batch->limit_bytes / 1048576)).' Mo' : 'données illimitées'), false], ] as [$k, $v, $mono])
{{ $k }}
{{ $v }}
@endforeach
@if ($batch->isQueued())

⏳ {{ $batch->pendingCount() }} ticket(s) en attente d'envoi au routeur

« {{ $batch->router->name }} » ne répond pas pour le moment. Les tickets sont déjà préparés : ils partent automatiquement dès qu'il répond (un essai par minute au début, puis plus espacé). Vous pouvez quitter cette page.

Dernière réponse du routeur : · essai n° · prochain essai vers

@csrfRelancer l'envoi maintenant
@csrf

Vous pouvez déjà imprimer ces tickets avec les boutons ci-dessous : ils ne fonctionneront qu'une fois envoyés au routeur.

@endif

Les tickets sont créés par tranches de {{ \App\Services\TicketService::STEP }}. Vous pouvez quitter la page : la création reprendra en revenant ici.

Routeur : —

code(s) n'ont pas pu être créés (déjà pris).

@php $tplBy = fn (array $words) => $templates->first(fn ($t) => collect($words)->contains(fn ($w) => str_contains(mb_strtolower($t->name), $w))); $printLinks = array_filter([ ['Imprimer', $templates->first()], ['QR', $tplBy(['qr'])], ['Petit', $tplBy(['compact', 'petit', 'small'])], ], fn ($x) => $x[1] !== null); @endphp
{{-- Print | QR | Small. Le lot imprimé = les tickets non utilisés de ce lot sur le routeur. --}}
@foreach ($printLinks as [$label, $tpl]) {{ $label }} @endforeach @if ($templates->count() > 1)
@endif
Voir ces tickets + Générer Retour aux tickets
@csrf
@if ($batch->allocation)

Remise enregistrée dans Attribution (lot {{ $batch->allocation->reference }}).

@endif
@include('tickets._deliveries', ['batch' => $batch])