# Correction Objectifs d'Intervention - Données Réelles **Date:** 10 novembre 2025 **Problème:** Objectifs d'intervention affichaient des pourcentages hardcodés (75%, 60%, 42%) **Statut:** ✅ Corrigé ## Problème Identifié Les "Objectifs d'intervention" dans le dashboard affichaient des valeurs fixes : - Ouverture → Assignation : **75%** (hardcodé) - Assignation → Intervention : **60%** (hardcodé) - Intervention → Résolution : **42%** (hardcodé) Ces métriques ne reflétaient pas les vraies performances de l'équipe. ## Solution Implémentée ### 1. Calcul des Métriques Réelles **Fichier:** `app/Controllers/DashboardController.php` **Nouvelles métriques calculées :** ```php // 1. Ouverture → Assignation (SLA 4h) $assignedInTime = incidents assignés dans les 4h / total incidents // 2. Assignation → Intervention (SLA 2h) $interventionStarted = interventions démarrées dans les 2h / total assignés // 3. Intervention → Résolution (SLA respecté) $resolvedInTime = incidents résolus avant expected_resolution_at / total avec SLA ``` ### 2. Barres de Progression Dynamiques **Fichier:** `app/Views/dashboard/index.php` **Couleurs selon performance :** - 🟢 **Vert** (bg-success) : ≥ 80% - Excellent - 🟡 **Orange** (bg-warning) : ≥ 50% - Correct - 🔴 **Rouge** (bg-danger) : < 50% - À améliorer ### 3. Requêtes SQL Utilisées **Ouverture → Assignation :** ```sql SELECT COUNT(*) FROM incident_assignments ia JOIN incidents i ON i.id = ia.incident_id WHERE TIMESTAMPDIFF(HOUR, i.declared_at, ia.assigned_at) <= 4 ``` **Assignation → Intervention :** ```sql SELECT COUNT(*) FROM intervention_events ie JOIN incident_assignments ia ON ia.incident_id = ie.incident_id WHERE ie.event_type = 'start' AND TIMESTAMPDIFF(HOUR, ia.assigned_at, ie.created_at) <= 2 ``` **Intervention → Résolution :** ```sql SELECT COUNT(*) FROM incidents WHERE expected_resolution_at IS NOT NULL AND resolved_at IS NOT NULL AND resolved_at <= expected_resolution_at ``` ## Tables Utilisées - ✅ `incidents` (declared_at, resolved_at, expected_resolution_at) - ✅ `incident_assignments` (assigned_at, active) - ✅ `intervention_events` (event_type='start', created_at) ## Gestion des Erreurs - **Try/catch** sur chaque requête pour éviter les crashes - **Valeurs par défaut** si tables manquantes ou données insuffisantes - **Fallback gracieux** vers 0% si aucune donnée disponible ## Résultats Attendus ### Avant (Données Fixes) - Ouverture → Assignation : **75%** (toujours pareil) - Assignation → Intervention : **60%** (toujours pareil) - Intervention → Résolution : **42%** (toujours pareil) ### Après (Données Réelles) - **Calculs dynamiques** basés sur la vraie performance - **Couleurs adaptatives** selon les résultats - **Mise à jour automatique** avec nouvelles données ## Test de Vérification 1. Accéder à https://maintenance-back.insuite-ci.com/public/dashboard 2. Scroller vers "Objectifs d'intervention" 3. ✅ **Pourcentages variables** selon vos vraies données 4. ✅ **Couleurs adaptées** aux performances (vert/orange/rouge) 5. ✅ **Calculs cohérents** avec votre flux de travail Les objectifs d'intervention reflètent maintenant votre vraie performance opérationnelle ! 📈