---
name: project-projections-display
description: "Amélioration affichage projections InvestissementDetail — montants barrés, échéances non tenues"
metadata: 
  node_type: memory
  type: project
  originSessionId: 2824251c-280e-4f17-8623-a78ad9304896
---

Améliorations apportées à la table "Projections de remboursements" dans `InvestissementDetail.jsx`.

**Montants réels vs prévus (barré + réel) :**
- Quand un remboursement est payé mais le montant diffère de la projection : affiche le montant prévu barré en gris + le montant réel en gras.
- Appliqué aux colonnes Intérêts ET Total.
- Utilise `matchRembsAll` qui agrège **tous** les remboursements du mois (pas de priorité date exacte) pour gérer les rattrapages multi-versements.

**Why:** Un prêt peut avoir plusieurs versements dans le même mois (rattrapage de mois manqués), ou le capital peut être remboursé en plusieurs tranches à des dates différentes dans le mois. La `Map` standard n'en garde qu'un — il faut `rembsArrayByMonth` (Map<mois, remb[]>) et sommer.

**Échéances passées non payées :**
- Si `date_prevue < today` et aucun remboursement correspondant : affiche barré + 0,00 € dans les colonnes montants, et statut **✗ Échéance non tenue** en rouge.
- Les projections futures restent affichées normalement avec statut "En attente".

**How to apply:** Pour tout futur travail sur InvestissementDetail, ne pas toucher `matchRemb` (utilisé pour le clic/ouverture modale) mais utiliser `matchRembsAll` pour les comparaisons de montants.
