{{-- v4.4.0 §C1 (c) — LE BLOC « MA PRIME », après « Mes heures », avant « + Nouvelle tâche ». Tout ce qui est ici est LU : rien ne se saisit, tout vient des gestes de la journée. L'ordre suit la maquette `pilotage-v3.38.html`, onglet « Primes · gamifiées » : montant projeté et cible → jauge des niveaux → les cinq points du jour → la série → les badges → l'objectif d'équipe → le règlement → « Chaque point a sa ligne ». ⚠️ Le montant est une PROJECTION, jamais une promesse : le taux courant appliqué à la cible. Sans prime cible sur la fiche, on montre les points et le niveau — jamais un montant inventé. --}} Ma prime {{ $bloc['mois_libelle'] }}, en direct — calculée à l'heure du récap, rien à saisir {{-- ── Le montant projeté et la cible ──────────────────────────────────────────────── --}}
@if ($bloc['projete'] !== null)

{{ \App\Support\Money::format($bloc['projete']) }}

projetés si tu tiens ce rythme

@else

{{ $bloc['niveau']->label() }}

aucune prime cible n'est encore définie sur votre fiche

@endif
@if ($bloc['cible'] !== null) cible 100 % : {{ \App\Support\Money::format($bloc['cible']) }}
@endif {{ $bloc['points_du_mois'] }} / {{ $bloc['maximum'] }} pts · {{ rtrim(rtrim(number_format($bloc['taux'], 1, ',', ' '), '0'), ',') }} %
{{-- ── La jauge des niveaux, avec ses trois seuils ─────────────────────────────────── --}}
@foreach ($bloc['seuils'] as $seuil) @endforeach
0 @foreach (\App\Enums\NiveauPrime::paliers() as $i => $palier) {{ $palier->label() }} {{ rtrim(rtrim(number_format($bloc['seuils'][$i] ?? 0, 1, ',', ' '), '0'), ',') }} % @endforeach
{{-- ── Les cinq points du jour ─────────────────────────────────────────────────────── --}}

Aujourd'hui — {{ $bloc['points_du_jour'] }}/{{ $bloc['max_jour'] }} pts @if ($bloc['bonus_du_jour'] > 0) · +{{ $bloc['bonus_du_jour'] }} de bonus @endif

@if ($bloc['bonus']->isNotEmpty()) @endif {{-- ── La série, ses quatorze cases, et le joker du mois ───────────────────────────── --}}
Série @foreach ($bloc['serie_cases'] as $case) $case === 'on', 'bg-warning-400' => $case === 'joker', 'bg-gray-200 dark:bg-white/10' => $case === 'off', ])> @endforeach {{ $bloc['serie'] > 0 ? $bloc['serie'].' j' : 'rompue' }}

Joker du mois {{ $bloc['joker_utilise'] ? 'utilisé' : 'disponible' }} — une journée en dessous du seuil ne casse pas la série, la suivante la ramène à zéro. @foreach ($bloc['serie_seuils'] as $i => $seuil) {{ $seuil }} j = {{ ($bloc['serie_points'][$i] ?? 0) > 0 ? '+'.$bloc['serie_points'][$i].' pts' : 'badge' }}{{ $loop->last ? '' : ' ·' }} @endforeach

{{-- ── Les badges du mois ──────────────────────────────────────────────────────────── --}}

Mes badges du mois

@if ($bloc['badges']->isEmpty())

Aucun badge encore ce mois-ci — la série de {{ $bloc['serie_seuils'][0] ?? 5 }} jours en débloque un.

@else
@foreach ($bloc['badges'] as $badge) ★ {{ $badge->label() }} @if ((int) $badge->points > 0) +{{ $badge->points }} @endif @endforeach
@endif {{-- ── L'objectif d'équipe de la semaine ───────────────────────────────────────────── --}} @if ($bloc['objectifs']->isNotEmpty())

Objectif d'équipe

@endif {{-- ── Le tableau d'équipe, quand l'option est active. Jamais de montant. ──────────── --}} @if ($bloc['tableau_equipe'] && $equipePrimes->isNotEmpty())

Mon équipe cette semaine

Séries et niveaux — jamais de montant, jamais de classement.

@endif {{-- ── Le règlement, et le journal du mois ─────────────────────────────────────────── --}}
Chaque point a sa ligne — le détail du mois, jour par jour