{{-- L'état de santé des séries de pièces, en tête de la liste des factures. Muet quand tout va bien : un bandeau permanent cesse d'être lu, et celui-ci doit être vu le jour où il paraît. Il ne parle donc que des trous et des doublons — l'information qu'on veut avoir avant un contrôle, pas pendant. L'enveloppe est à l'extérieur de la condition, et non dedans : un composant Livewire doit avoir une racine unique, quoi qu'il ait à dire. Une vue qui ne produit rien lève « missing root tag », et l'écran affiche une erreur au lieu de ne rien afficher. Le widget se retire lui-même de la grille par son « canView() » ; l'enveloppe, elle, garantit qu'il y a toujours une racine. --}} @if ($anomalies !== [])

La série {{ $annee }} n'est pas continue

@foreach ($anomalies as $etat)
Série {{ $etat['serie'] }} — {{ $etat['attribues'] }} numéro(s) attribué(s), de {{ $etat['premier'] }} à {{ $etat['dernier'] }}. @if ($etat['trous'])
Manquant{{ count($etat['trous']) > 1 ? 's' : '' }} : {{ implode(', ', $etat['trous']) }}.
@endif @if ($etat['doublons'])
En double : {{ collect($etat['doublons'])->map(fn ($d) => $d['numero'].' ('.$d['occurrences'].' pièces)')->implode(', ') }} .
@endif
@endforeach

L'article 145 du code général des impôts impose une série continue et sans doublon. Un numéro manquant se lit comme une facture retirée après coup ; un numéro répété, comme une pièce refaite sans que l'ancienne ait disparu. Une facture émise à tort s'annule — le numéro reste pris — ou se compense par un avoir.

@endif