diff --git a/app/models/TraductionLangue_Model.php b/app/models/TraductionLangue_Model.php index c7b67a7..ff3f132 100644 --- a/app/models/TraductionLangue_Model.php +++ b/app/models/TraductionLangue_Model.php @@ -689,15 +689,29 @@ class CRVI_TraductionLangue_Model extends Main_Model { $result['total_available'] = max(0, $result['total'] - $result['total_used']); // Calculer les totaux par période - foreach ($result['by_periode'] as $periode => &$items) { + // Créer une copie des clés pour éviter de modifier le tableau pendant l'itération + $periodes_keys = array_keys($result['by_periode']); + foreach ($periodes_keys as $periode) { + // Ignorer les clés qui sont déjà des summaries + if (strpos($periode, '_summary') !== false) { + continue; + } + + $items = $result['by_periode'][$periode]; $periode_total = 0; $periode_used = 0; $periode_available = 0; - foreach ($items as $item) { - $periode_total += $item['limite']; - $periode_used += $item['used']; - $periode_available += $item['available']; + // Vérifier que $items est un tableau + if (is_array($items)) { + foreach ($items as $item) { + // Vérifier que $item est un tableau et non un int + if (is_array($item) && isset($item['limite']) && isset($item['used']) && isset($item['available'])) { + $periode_total += $item['limite']; + $periode_used += $item['used']; + $periode_available += $item['available']; + } + } } // Ajouter un résumé pour cette période