{{-- Générer des tickets (menu Tickets et onglet « Générer » du routeur) : les champs HABITUELS d'un générateur de tickets, en français. Quantité, Serveur, Mode utilisateur, Longueur du code ou du nom, Préfixe, Caractères, Profil, Temps limite, Limite de données, Commentaire. Le préfixe est libre : ses 2 premiers caractères reconnaissent le revendeur (une phrase l'indique pendant la saisie) ; plus de numéro de profil dans le code. Variables : $router, $profiles (TOUS les profils du routeur), $servers, $serversRead, $resellers (sert seulement à reconnaître le revendeur). --}} @php $profileData = $profiles->map(fn ($p) => ['name' => $p['name'], 'price' => (int) $p['price'], 'priceLabel' => $p['price'] ? \App\Support\Money::format($p['price']) : '', 'validity' => $p['validity'], 'minutes' => (int) $p['minutes']])->values(); $resellerData = $resellers->map(fn ($r) => ['id' => $r->id, 'name' => $r->name, 'prefix' => $r->voucher_prefix])->values(); $pools = collect(\App\Services\TicketService::CHARSETS)->map(fn ($c) => $c[1]); $row = 'grid items-start gap-x-4 gap-y-1 sm:grid-cols-[10.5rem_1fr]'; $label = 'pt-2 text-sm font-semibold text-slate-700'; $field = 'block w-full rounded-lg border-slate-300 text-sm shadow-sm'; $hint = 'mt-1 text-xs leading-snug text-slate-500'; $today = now()->format('m.d.y'); $min = \App\Services\TicketService::MIN_NAME_LENGTH; $max = \App\Services\TicketService::MAX_NAME_LENGTH; @endphp
@csrf {{-- Boutons du haut --}}
Générer ticket(s) Liste des tickets Fermer
@foreach ([1, 10, 20, 50, 100, 200] as $n) @endforeach

De 1 à {{ \App\Services\TicketService::MAX_QUANTITY }} tickets, créés par tranches de {{ \App\Services\TicketService::STEP }} avec une barre de progression.

@if (! $serversRead) Serveurs hotspot non lus (routeur injoignable pour l'instant) : « all » est utilisé. @else Les serveurs hotspot de ce routeur. « all » : le ticket marche sur tous les serveurs. @endif

Le lot s'appelle sur le routeur.

Caractères tirés au hasard, après le préfixe. Code final : + = caractères.

{{-- La phrase qui dit à quel revendeur correspond le préfixe : seuls ses 2 premiers caractères comptent. --}}

@error('prefix')

{{ $message }}

@enderror

Les caractères ambigus (O, I, l, 0, 1) sont évités pour rester lisibles à l'impression et à la saisie.

Tous les profils de ce routeur. Validité de ce profil : .

Ce profil n'a pas de prix connu : ses tickets utilisés seront signalés « en attente » dans les alertes, sans être comptés comme des ventes.

@error('profile')

{{ $message }}

@enderror

Format [wdhm] : 30d = 30 jours, 12h = 12 heures, 4w3d = 31 jours. Vide : pas de limite. Doit être inférieur à la validité du profil.

Format invalide : utilisez w, d, h, m (par exemple 30m, 3h, 1d, 4w3d).

Le temps limite doit être inférieur à la validité du profil ().

@error('limit_uptime')

{{ $message }}

@enderror

Vide : pas de limite de données.

Nom du lot sur le routeur : . Vide : « pf » (créé par la plateforme).

Aperçu d'un code

(préfixe) + caractères au hasard · · valable · temps limite

Saisissez un préfixe de 2 caractères au moins pour voir un exemple de code.

Générer ticket(s)