@php $h = fn (float $v): string => rtrim(rtrim(number_format($v, 2, ',', ' '), '0'), ',').' h'; @endphp {{-- v4.30.0 §C1 — L'ÉCRAN « ÉQUIPE », PILOTAGE ÉTEINT : les heures de l'équipe, et rien d'autre. Une ligne par collaborateur dont on attend une saisie, le gabarit de lignes du socle, un mois au choix. Le coût d'un marché ne compte que les heures APPROUVÉES : c'est ici qu'on les approuve. Page volontairement légère — l'ancien cockpit figeait le navigateur. --}} {{-- v4.32.0 §D.1 — Une heure en brouillon n'est ni soumise ni approuvée : elle ne compte dans le coût d'aucun marché. --}} @if (! empty($alertesBrouillon))
@endif @foreach ($moisProposes as $valeur => $libelle) @endforeach @if ($peutApprouver && $nombreAApprouver > 0) Approuver tout {{ $moisAffiche->translatedFormat('F Y') }} @endif @forelse ($lignesEquipe as $ligne) @php $employe = $ligne['employee']; $initiales = mb_strtoupper(mb_substr((string) $employe->first_name, 0, 1).mb_substr((string) $employe->last_name, 0, 1)); $meta = $h($ligne['pointees']).' pointées · '.$h($ligne['approuvees']).' approuvées · ' .$h($ligne['en_attente']).' en attente d\'approbation · ' .$ligne['jours_manquants'].' jour'.($ligne['jours_manquants'] > 1 ? 's' : '').' ouvré'.($ligne['jours_manquants'] > 1 ? 's' : '').' manquant'.($ligne['jours_manquants'] > 1 ? 's' : '') .($ligne['rejetees'] > 0 ? ' · '.$ligne['rejetees'].' rejetée'.($ligne['rejetees'] > 1 ? 's' : '').' à corriger' : ''); @endphp @if ($peutApprouver && $ligne['lignes_en_attente'] > 0) Approuver le mois @endif Sa fiche @empty @endforelse @if ($dejaVentile) {{ ucfirst($moisAffiche->translatedFormat('F Y')) }} est déjà ventilé : après une approbation, recalculez sa ventilation (le bouton apparaît dans la notification) pour que le coût des marchés en tienne compte. @else Le coût d'un marché ne compte que les heures approuvées. {{ ucfirst($moisAffiche->translatedFormat('F Y')) }} sera ventilé le 1ᵉʳ du mois suivant. @endif