Ce que la société doit à la CNSS, ce qu'elle lui a versé Les cotisations dues (parts patronale et salariale, CNSS + AMO) confrontées aux versements relevés au journal. Seuls les collaborateurs déclarés CNSS entrent dans le calcul (v1.6 §3) : {{ $non_cotisants }} collaborateur(s) ne cotisent pas et sont hors comparaison. Les cotisations sont calculées sur l'assiette réellement déclarée, et seulement à partir de la date de déclaration (v3.6 §3) — le brut du bulletin n'est pas l'assiette CNSS, et un collaborateur n'est souvent déclaré que des mois après son embauche. Un écart résiduel n'est pas forcément une erreur — la CNSS est versée le mois suivant. Cet écran montre, il ne tranche pas. @if ($indetermines->isNotEmpty())

{{ $indetermines->count() }} collaborateur(s) au régime « à déterminer » — leurs cotisations ne sont pas calculées.

{{ $motif_indetermine }}

Concernés : {{ $indetermines->map(fn ($e) => trim($e->first_name.' '.$e->last_name))->join(', ') }}. À trancher dans RH → Régimes des collaborateurs.

@endif @if ($sur_brut_faute_de_mieux > 0)

{{ $sur_brut_faute_de_mieux }} bulletin(s) calculé(s) sur le BRUT, faute d'assiette déclarée.

L'assiette CNSS se saisit sur la fiche du collaborateur (RH → Collaborateurs → Éléments de paie → Assiette déclarée CNSS). Tant qu'elle est vide, le calcul retombe sur le brut du bulletin : l'écart affiché ci-dessous peut n'être que cela.

@if ($sans_date_de_declaration !== [])

Sans date de déclaration CNSS : {{ implode(', ', $sans_date_de_declaration) }} — tous leurs bulletins sont comptés, y compris ceux d'avant la déclaration réelle.

@endif
@endif
Total dû : {{ \App\Support\Money::format($total_calcule) }} Total versé : {{ \App\Support\Money::format($total_verse) }} Écart cumulé : {{ \App\Support\Money::format($total_ecart) }} @if ($bulletins_avant_declaration > 0) {{ $bulletins_avant_declaration }} bulletin(s) antérieur(s) à la déclaration — hors calcul. @endif
@forelse ($lignes as $ligne) @empty @endforelse
Mois Cotisations dues Versements CNSS Écart
{{ $ligne['label'] }} {{ \App\Support\Money::format($ligne['calcule']) }} {{ \App\Support\Money::format($ligne['verse']) }} {{ \App\Support\Money::format($ligne['ecart']) }}
Aucune cotisation ni versement à rapprocher.
@if ($assiettes !== []) Assiette retenue, collaborateur par collaborateur Ce que le calcul ci-dessus a réellement pris pour chacun. Une assiette « brut du bulletin » signale une fiche à compléter, pas une anomalie de versement.
@foreach ($assiettes as $ligne) @endforeach
Collaborateur Déclaré le Assiette mensuelle Bulletins retenus Cotisations dues
{{ $ligne['employe'] }} {{ $ligne['date_declaration'] ?? '—' }} @if ($ligne['declaree'] !== null) {{ \App\Support\Money::format($ligne['declaree']) }} @else brut du bulletin @endif {{ $ligne['bulletins'] }} {{ \App\Support\Money::format($ligne['cotisations']) }}
@endif