---
name: project-cerfa2561
description: Simulation CERFA 2561 par plateforme dans la page Fiscalité (TaxReport)
metadata: 
  node_type: memory
  type: project
  originSessionId: 0922bde7-84ed-45dc-b233-50bf0be5ad3e
---

Composant `frontend/src/components/Cerfa2561Preview.jsx` — simulation HTML du formulaire CERFA 2561, accessible via l'onglet "CERFA 2561" de la page TaxReport.

**Architecture :**
- Backend : `GET /api/taxreport/cerfa2561` — données agrégées par plateforme × investisseur
- Backend : `GET /api/taxreport/cerfa2561/remboursements` — détail des remboursements pour un formulaire
- Backend : `GET /api/taxreport/years` — années disponibles
- Frontend : `Cerfa2561Preview.jsx` — mode inline (onglet) avec prop `inline`, `expanded`, `onToggleExpand`

**Cases CERFA remplies :**
- `2TT/KR` ou `2TR/AR` selon `plateforme.type_produit_fiscal` ('2TT' défaut, '2TR' configurable dans Settings)
- `2BH/DQ` = interets_bruts si flat-tax FR (PS déjà prélevés)
- `2CK/AD` = prelev_forfaitaire si flat-tax FR (crédit d'impôt PFNL)
- `2TY/KS` = pertes en capital
- Montants arrondis à l'entier (sans décimales), récapitulatif fiscal en décimales

**Champ `type_produit_fiscal` sur plateformes :**
- Migration DB : `ALTER TABLE plateformes ADD COLUMN type_produit_fiscal TEXT NOT NULL DEFAULT '2TT'`
- Visible dans Settings > Plateformes uniquement pour les plateformes françaises
- Affiché dans le bloc Détail de la plateforme

**Ergonomie :**
- Sélecteur de plateforme (220px) + bouton agrandir + bouton imprimer dans la toolbar
- Impression via `window.open` → `print-color-adjust: exact` pour conserver les fonds colorés
- Titre de la fenêtre = `CERFA 2561 — {annee} — {plateforme_nom}` (proposé comme nom de fichier PDF)
- Panneau dépliable "N remboursements pris en compte" — tableau détail avec cache (pas de re-fetch)
- Mode sombre : `colorScheme: 'light'` + `background: '#fff'` forcé sur le formulaire

**Palette couleurs :** violet/indigo aligné sur YearSelector (`#5b21b6`, `#7c3aed`, `#f5f3ff`, `#ede9fe`)

**Why:** Permettre à l'utilisateur de vérifier/simuler ce que chaque plateforme aurait dû déclarer, et de générer un PDF de référence par plateforme.
**How to apply:** Fichier unique `Cerfa2561Preview.jsx`. Pas de sed sur ce fichier (risque de troncature). Utiliser python3 pour les remplacements de masse.
