From a90c1bc11b5624b3c11fd060520864198775fdf4 Mon Sep 17 00:00:00 2001 From: "fefe.clochette" Date: Mon, 16 Feb 2026 10:26:53 +0100 Subject: [PATCH] fix recap --- modules/budget/views/recap.php | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/modules/budget/views/recap.php b/modules/budget/views/recap.php index e6c434c..a0d29cb 100644 --- a/modules/budget/views/recap.php +++ b/modules/budget/views/recap.php @@ -51,11 +51,11 @@ $totalRevenus = 0; foreach ($allExpenses as $exp) { $match = false; - // A. Matching par ID (Prioritaire & Précis) + // A. Matching par ID (Prioritaire) if (!empty($exp['budget_item_id']) && (int)$exp['budget_item_id'] === (int)$item['id']) { $match = true; } - // B. Matching par Mots-clés (Si pas d'ID sur la dépense) + // B. Matching par Mots-clés elseif (empty($exp['budget_item_id']) && !empty($item['mapping_keywords'])) { $keywords = array_map('trim', explode(',', $item['mapping_keywords'])); foreach ($keywords as $kw) { @@ -67,7 +67,14 @@ $totalRevenus = 0; } if ($match) { - $realSum += (float)$exp['amount']; // Additionne débits (+) et crédits (-) + // CORRECTION : Gestion des signes + if ($item['category'] === 'income') { + // Pour les revenus stockés en négatif, on prend la valeur absolue + $realSum += abs((float)$exp['amount']); + } else { + // Pour les dépenses, on garde le signe (Débit positif, Remboursement négatif) + $realSum += (float)$exp['amount']; + } $hasMatchingExpense = true; } }