Retrait des cumuls « Consommation globale » et « Reste à affecter » du tableau de bord
Ces deux cartes additionnaient les heures de tous les agents suivis, quotités confondues : le pourcentage et le solde obtenus ne décrivaient la situation d'aucun agent réel et n'appelaient aucune action. Le bloc « Suivi des quotas annuels » conserve les indicateurs actionnables (agents suivis, agents sans aucune heure) et le tableau agent par agent. Les agrégats correspondants sont retirés du payload de api/dashboard_summary.php et de leur calcul dans DashboardController : plus aucun consommateur ne les lit. La tuile « Quotas dépassés » et son compteur de dépassements sont inchangés. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -186,28 +186,24 @@ final class DashboardController
|
||||
}
|
||||
|
||||
/**
|
||||
* Suivi des quotas : combien d'agents dépassent leur quota annuel, combien
|
||||
* n'ont encore aucune heure planifiée, et le volume restant à affecter.
|
||||
* Suivi des quotas : combien d'agents dépassent leur quota annuel et combien
|
||||
* n'ont encore aucune heure planifiée. Les cumuls tous agents confondus
|
||||
* (consommation globale, reste à affecter) ne sont volontairement pas exposés :
|
||||
* une somme d'agents aux quotités différentes ne décrit aucune situation réelle.
|
||||
*/
|
||||
private function quotaPayload(int $year): array
|
||||
{
|
||||
$tracking = $this->dashboardModel->quotaTracking($year);
|
||||
$overCount = 0;
|
||||
$emptyCount = 0;
|
||||
$remainingMinutes = 0;
|
||||
$targetMinutes = 0;
|
||||
$allocatedMinutes = 0;
|
||||
|
||||
foreach ($tracking as $agent) {
|
||||
$targetMinutes += $agent['quota_cible_minutes'];
|
||||
$allocatedMinutes += $agent['minutes_affectees'];
|
||||
if ($agent['minutes_restantes'] < 0) {
|
||||
$overCount++;
|
||||
}
|
||||
if ($agent['minutes_affectees'] === 0) {
|
||||
$emptyCount++;
|
||||
}
|
||||
$remainingMinutes += max(0, $agent['minutes_restantes']);
|
||||
}
|
||||
|
||||
// Tri décroissant sur le taux : les dépassements remontent en tête,
|
||||
@@ -221,10 +217,6 @@ final class DashboardController
|
||||
'agent_count' => count($tracking),
|
||||
'depassement_count' => $overCount,
|
||||
'sans_heure_count' => $emptyCount,
|
||||
'minutes_restantes' => $remainingMinutes,
|
||||
'minutes_cible' => $targetMinutes,
|
||||
'minutes_affectees' => $allocatedMinutes,
|
||||
'taux_global' => $targetMinutes > 0 ? round(($allocatedMinutes / $targetMinutes) * 100, 1) : 0.0,
|
||||
'apercu' => array_slice($tracking, 0, self::QUOTA_APERCU_MAX),
|
||||
];
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user