{{-- v4.4.0 §B9 — LE RÈGLEMENT DES PRIMES. Généré DEPUIS LES RÉGLAGES, jamais recopié : si le gérant change un barème, le document suivant le dit. Un règlement recopié à la main serait faux au premier ajustement, et c'est précisément ce document-là qu'on remet à l'équipe. ⚠️ Aucun nom de société en dur : il vient de `Identite`. Le socle sert plusieurs installations et l'archive livrée est rigoureusement la même pour toutes. --}}
Ce règlement décrit comment la prime mensuelle de pilotage est calculée. Il est généré depuis les réglages de l'application : ce que vous lisez ici est exactement ce que le moteur applique. Un changement de réglage prend effet au 1ᵉʳ du mois suivant, jamais en cours de mois, et chaque prime conserve les paramètres avec lesquels elle a été calculée.
{{-- ── Le barème du jour ────────────────────────────────────────────────────────── --}}Calculé chaque jour ouvré à {{ substr($heure_calcul, 0, 5) }}, depuis le journal des tâches. Rien ne se saisit. Aucun point n'est jamais négatif.
| Geste | Points |
|---|---|
| {{ $ligne['libelle'] }} | {{ $ligne['points'] }} |
Ce qui ne compte pas. Les tâches qu'on se donne à soi-même n'entrent que dans « Journée à jour ». Un seul livrable compte par jour : découper un travail en dix tâches ne rapporte rien de plus. Un blocage dont le motif est validé suspend le retard ; un report accordé déplace l'échéance sans pénalité. Un jour non ouvré — week-end, jour férié confirmé, congé approuvé — ne compte ni dans les points ni dans le maximum du mois, et ne rompt jamais la série.
Mode strict : @if ($mode_strict) activé — une journée sans aucune mise à jour avant {{ substr($heure_calcul, 0, 5) }} est comptée zéro sur toute la journée. @else possible, désactivé. S'il était activé, une journée sans aucune mise à jour avant {{ substr($heure_calcul, 0, 5) }} serait comptée zéro sur toute la journée. Il est mentionné ici pour qu'il n'arrive jamais par surprise. @endif
{{-- ── Les bonus ────────────────────────────────────────────────────────────────── --}}La série compte les jours ouvrés consécutifs à {{ $serie['declencheur'] }} points ou plus. Une mission de renfort validée compte comme une bonne journée et ne rompt jamais la série.
| Seuil | Points |
|---|---|
| {{ $seuil }} jours consécutifs | {{ ($serie['points'][$i] ?? 0) > 0 ? '+'.$serie['points'][$i] : 'badge seul' }} |
Le joker est un droit : {{ $serie['jokers'] }} journée{{ $serie['jokers'] > 1 ? 's' : '' }} en dessous du seuil par mois ne rompt pas la série. La suivante la ramène à zéro.
{{-- ── Les badges ───────────────────────────────────────────────────────────────── --}}Un badge, c'est de la fierté ; seuls ceux qui portent des points en rapportent.
| Badge | Comment il s'obtient | Points |
|---|---|---|
| {{ $badge['libelle'] }} | {{ $badge['explication'] }} | {{ $badge['points'] > 0 ? '+'.$badge['points'] : '—' }} |
Une mission de renfort est publiée par un chef de marché ou par la direction, avec sa récompense affichée avant d'accepter. Le premier qui la prend l'obtient ; le chef confirme. Le jour venu, les heures se pointent depuis « Ma journée » ; le chef valide. Un stagiaire ne se voit jamais proposer de mission de renfort.
| Type | Prime | Points |
|---|---|---|
| {{ $ligne['type'] }} | {{ $ligne['montant'] }} | +{{ $ligne['points'] }} |
Pour un salarié, les heures d'une mission de renfort validée sont majorées selon le code du travail (loi 65-99, articles 196 à 203). Le taux horaire est le salaire de base divisé par {{ (int) $diviseur }}. La ligne apparaît sur le bulletin ; elle n'est jamais saisie à la main.
| Tranche | Majoration |
|---|---|
| {{ $ligne['tranche'] }} | + {{ rtrim(rtrim(number_format($ligne['taux'], 2, ',', ' '), '0'), ',') }} % |
Ces taux sont des minima légaux : l'application permet de payer davantage, jamais moins. Un auto-entrepreneur est hors code du travail : son renfort est rémunéré au taux contractuel de sa fiche (par défaut +{{ rtrim(rtrim(number_format($params['renfort']['taux_ae'], 2, ',', ' '), '0'), ',') }} % du tarif journalier), sur facture complémentaire.
{{-- ── Le niveau du mois ────────────────────────────────────────────────────────── --}}Maximum du mois = jours ouvrés (hors fériés confirmés et congés approuvés) × {{ $max_jour }} points. Taux = points ÷ maximum.
| Taux atteint | Niveau | Part de la prime cible |
|---|---|---|
| à partir de {{ rtrim(rtrim(number_format($ligne['seuil'], 2, ',', ' '), '0'), ',') }} % | {{ $ligne['niveau'] }} | {{ rtrim(rtrim(number_format($ligne['part'], 2, ',', ' '), '0'), ',') }} % |
La prime cible est un montant fixe, propre à chaque collaborateur et inscrit sur sa fiche. Ce n'est ni un pourcentage du salaire, ni un montant par livrable. Base insuffisante : moins de {{ $min_taches }} tâches reçues échues dans le mois — pas de niveau automatique ; la direction fixe le montant à la main, ou passe. Chef de marché : il gagne en plus {{ rtrim(rtrim(number_format($part_chef, 2, ',', ' '), '0'), ',') }} % de sa cible multipliés par le taux de ponctualité de son équipe — et cette part se calcule même quand son propre niveau n'est pas atteint.
{{-- ── Le circuit ───────────────────────────────────────────────────────────────── --}}Rien n'est versé sans validation de la direction. Il n'existe aucun classement par montant, et aucune notification n'annonce des points perdus : un point non pris reste « à prendre ». Chaque point et chaque dirham a sa ligne, lisible par le collaborateur ; la direction peut annuler ou ajuster, toujours avec un motif.