---
name: project-taxreport
description: "Refonte de la page Fiscalité — renommage, onglets, pagination, sélecteur d'année"
metadata: 
  node_type: memory
  type: project
  originSessionId: 0922bde7-84ed-45dc-b233-50bf0be5ad3e
---

Page Fiscalité entièrement refactorée en session 2026-05-31.

**Renommage complet :**
- Fichier : `Fiscal2778.jsx` → `TaxReport.jsx` ; `fiscal2778.js` → `taxreport.js`
- Route frontend : `/2778-sd` → `/taxreport` (redirect conservée pour l'ancienne URL)
- Route backend : `/api/fiscal-2778` → `/api/taxreport`
- Composant : `Fiscal2778()` → `TaxReport()`
- 5 fichiers mis à jour : App.jsx, Layout.jsx, server.js, TaxReport.jsx, taxreport.js

**Structure de la page :**
- Bloc "Cases fiscales calculées" toujours visible en haut
- Onglets `dr-tabs` (pattern Investissements) : **Récapitulatif** | **Détail par projet**
- Récapitulatif : tableau récap + corrections de solde + pertes en capital (conditionnels)
- Détail par projet : tableau avec pagination (`cl_pagesize_fiscal_detail`), bouton agrandir/réduire, ExportDropdown (CSV + JSON)

**Sélecteur d'année :**
- Composant `YearSelector` autonome, clone stylisé du `YearSelectorKpi` du Dashboard (card violet/indigo)
- Pas de mode "Depuis le début" (fiscal = toujours par année)
- Années disponibles chargées via `GET /api/taxreport/years` (années ayant des remboursements réels, desc)
- Endpoint backend ajouté dans `taxreport.js` avec même logique de scope investisseur

**Why:** Cohérence visuelle avec le Dashboard ; meilleure ergonomie que l'input number.
**How to apply:** Pour toute future modif de la page fiscalité, le fichier est `frontend/src/pages/TaxReport.jsx` et la route backend `backend/src/routes/taxreport.js`.
