Seuls les tickets réellement en stock chez le revendeur peuvent être vendus. En cas d'erreur, la vente s'annule depuis sa fiche : les tickets reviennent dans son stock.
Les ventes viennent des routeurs.
Chaque ticket utilisé, enregistré sur un routeur, devient une vente du revendeur dont le préfixe ouvre le code WiFi (les 2 premiers caractères). Le prix est celui écrit dans le nom du profil.
Dernière lecture des routeurs : {{ $routersReadAt ? \Carbon\Carbon::parse($routersReadAt)->translatedFormat('d F à H:i') : 'jamais' }}. Lecture automatique chaque minute par la tâche planifiée, et pendant qu'un tableau de bord est ouvert.
Tout est attribué.
Chaque ticket utilisé a trouvé son revendeur et son profil.
@else @if ($otherRows->isNotEmpty()){{ $otherRows->sum('count') }} ticket(s) rangé(s) dans « Autres »
{{ \App\Support\Money::format($otherRows->sum('amount')) }} déjà comptés dans vos recettes (revendeur ou profil inconnu). Donnez le bon préfixe au revendeur, ou synchronisez les profils : ils seront reclassés tout seuls.
@endif @if ($waitingRows->isNotEmpty()){{ $waitingRows->sum('count') }} ticket(s) utilisé(s) en attente
{{ \App\Support\Money::format($waitingRows->sum('amount')) }} non encore comptés : mettez la base à jour (bandeau orange) pour qu'ils soient comptés dans « Autres ».
@endif @endif{{ \App\Support\Money::number($d['before_switch']) }} ticket(s) utilisé(s) avant le {{ \Carbon\Carbon::parse($d['since'])->format('d/m/Y') }} ne sont pas comptés (date de bascule réglée dans Paramètres). Videz cette date pour les compter.
@endif @unless ($d['scheduler_running']) @cannot('platform.manage')La lecture automatique des ventes est interrompue.
Vos ventes ne sont plus mises à jour toutes seules : vos rapports prennent du retard. Prévenez l'administrateur de la plateforme.
La tâche planifiée (cron) ne tourne pas{{ $d['scheduler_last'] ? ' depuis le '.$d['scheduler_last'] : '' }}.
Les ventes ne sont alors lues que lorsqu'un écran est ouvert : vos rapports prennent du retard. Dans cPanel > Tâches Cron, ajoutez cette ligne (« Chaque minute ») :
{{ $d['cron_line'] }}
| Date | Reçu | Revendeur | Type | Qté | Montant | Mode | Actions |
|---|---|---|---|---|---|---|---|
| {{ $s->sold_at->format('d/m/Y H:i') }} |
{{ $s->receipt_number }}
@if ($s->isCancelled()) |
{{ $s->reseller?->name ?? '—' }} | {{ \App\Support\Money::number($s->quantity) }} | @money($s->total_amount) |
|
||
| Total des ventes filtrées (hors annulées) | {{ \App\Support\Money::number($totals->quantity) }} | @money($totals->amount) | dont commissions @money($totals->commission) · part entreprise @money($totals->company_share) | ||||