{{-- 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. --}}
{{ $companyName }}
Règlement des primes de pilotage
{{ $societe }} · généré le {{ $genere_le->format('d/m/Y à H:i') }} depuis les réglages en vigueur

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 ────────────────────────────────────────────────────────── --}}

1. Le barème du jour — {{ $max_jour }} points au maximum

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.

@foreach ($bareme as $ligne) @endforeach
GestePoints
{{ $ligne['libelle'] }}{{ $ligne['points'] }}
Le double coût d'un retard. Une seule tâche reçue en retard fait perdre « Planning tenu » et « Zéro retard », soit {{ $cout_du_retard }} points sur {{ $max_jour }} le même jour. C'est voulu : le retard est le premier signal du pilotage. Ce n'est pas réglable, et c'est écrit ici pour que ce ne soit une surprise pour personne.

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 ────────────────────────────────────────────────────────────────── --}}

2. Les bonus — en plus des {{ $max_jour }} points du jour

{{-- ── La série ─────────────────────────────────────────────────────────────────── --}}

3. La série et le joker

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.

@foreach ($serie['seuils'] as $i => $seuil) @endforeach
SeuilPoints
{{ $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 ───────────────────────────────────────────────────────────────── --}}

4. Les badges du mois

Un badge, c'est de la fierté ; seuls ceux qui portent des points en rapportent.

@foreach ($badges as $badge) @endforeach
BadgeComment il s'obtientPoints
{{ $badge['libelle'] }} {{ $badge['explication'] }} {{ $badge['points'] > 0 ? '+'.$badge['points'] : '—' }}
{{-- ── Le renfort ───────────────────────────────────────────────────────────────── --}}

5. Les missions de renfort — soir, week-end, jour férié

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.

@foreach ($renfort as $ligne) @endforeach
TypePrimePoints
{{ $ligne['type'] }}{{ $ligne['montant'] }}+{{ $ligne['points'] }}
Les gardes de santé. Au-delà de {{ $params['renfort']['plafond_mois'] }} mission{{ $params['renfort']['plafond_mois'] > 1 ? 's' : '' }} de week-end ou de jour férié dans le mois, la majoration légale reste intégralement due, mais la prime et les points ne courent plus et la direction est alertée. Deux week-ends consécutifs demandent la confirmation de la direction. Un jour de repos compensateur est proposé dans la semaine qui suit ; le chef le confirme. Enfin, des heures de week-end ou de jour férié travaillées sans mission publiée n'ouvrent aucun droit au titre de ce dispositif — si un travail vous a été demandé, même oralement, signalez-le : il doit faire l'objet d'une mission.
{{-- ── Le dû légal ──────────────────────────────────────────────────────────────── --}}

6. Le dû légal des heures supplémentaires — ce n'est pas une prime

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.

@foreach ($majorations as $ligne) @endforeach
TrancheMajoration
{{ $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 ────────────────────────────────────────────────────────── --}}

7. Le niveau du mois et la prime cible

Maximum du mois = jours ouvrés (hors fériés confirmés et congés approuvés) × {{ $max_jour }} points. Taux = points ÷ maximum.

@foreach ($niveaux as $ligne) @endforeach
Taux atteintNiveauPart 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 ───────────────────────────────────────────────────────────────── --}}

8. Comment la prime est décidée et versée

  1. Le 1ᵉʳ du mois, le moteur propose un montant par personne, avec le détail du calcul en clair.
  2. La direction valide, ajuste (montant et motif obligatoires) ou refuse (motif obligatoire). Tout est journalisé.
  3. Une prime validée devient due : sur le bulletin pour un salarié, par virement pour un auto-entrepreneur ou un contractuel.

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.

Nature de la prime. Cette prime est variable et conditionnelle. Elle dépend de critères mesurés mois par mois et ne constitue ni un élément fixe de rémunération, ni un usage, ni un droit acquis. Son barème et ses paramètres sont révisables ; toute révision prend effet au 1ᵉʳ du mois suivant son adoption.

Ce document n'est ni un avis juridique ni un avis comptable. Il décrit le fonctionnement d'un outil de gestion. Les modalités de paie, de cotisations et de traitement fiscal des majorations et des primes relèvent du comptable de la société.