diff --git a/client/src/pages/Budget2027.tsx b/client/src/pages/Budget2027.tsx index 8ab376b..af43b53 100644 --- a/client/src/pages/Budget2027.tsx +++ b/client/src/pages/Budget2027.tsx @@ -387,34 +387,58 @@ export default function Budget2027() { {selectedCode && selectedBP && ( <> - {/* Données informatives 2026 */} -
-
- -
-

- Données historiques — à titre informatif -

-

- Enveloppes de renouvellement allouées par le Siège Itinova (non modifiables) -

-
-
-
-

Renouvellement 2026

-

- {selectedBP.renouvellement_2026 > 0 ? formatEuros(selectedBP.renouvellement_2026) : '—'} -

-

Enveloppe Siège

-
-
+ {/* Données historiques N-1 */} + {(() => { + const anneeN1 = annee - 1; + // Valeur N-1 : d'abord chercher dans les saisies CAPEX de l'année N-1, + // sinon utiliser l'enveloppe 2026 issue du fichier BP2027 (si N-1 === 2026) + let valeurN1: number = 0; + try { + const storageN1 = localStorage.getItem(`itinova_budget_capex_${anneeN1}`); + if (storageN1) { + const saisiesN1 = JSON.parse(storageN1) as Record; + const saisieEtab = saisiesN1[selectedCode]; + if (saisieEtab?.renouvellement_2027 !== undefined) { + valeurN1 = saisieEtab.renouvellement_2027; + } + } + } catch {} + // Fallback : enveloppe 2026 du fichier BP2027 si N-1 = 2026 + if (valeurN1 === 0 && anneeN1 === 2026 && selectedBP.renouvellement_2026 > 0) { + valeurN1 = selectedBP.renouvellement_2026; + } + return ( +
+
+ +
+

+ Données historiques — à titre informatif +

+

+ Renouvellement de l'année précédente ({anneeN1}) — non modifiable +

+
+
+
+

Renouvellement {anneeN1}

+

+ {valeurN1 > 0 ? formatEuros(valeurN1) : '0 €'} +

+

+ {valeurN1 > 0 ? 'Valeur saisie ou enveloppe allouée' : 'Aucune saisie pour cet exercice'} +

+
+
+ ); + })()} {/* Formulaire de saisie */}

- Budget prévisionnel 2027 — Saisie directeur + Budget prévisionnel {annee} — Saisie directeur

(tous les champs sont optionnels)
diff --git a/client/src/pages/Home.tsx b/client/src/pages/Home.tsx index b852fc6..f873454 100644 --- a/client/src/pages/Home.tsx +++ b/client/src/pages/Home.tsx @@ -45,6 +45,9 @@ export default function Home() { } = useBudgetData(); const { annee } = useAnnee(); + // Les données de parc ne sont disponibles que pour 2026 et 2027 + const ANNEES_AVEC_DONNEES = [2026, 2027]; + const hasDonnees = ANNEES_AVEC_DONNEES.includes(annee); const [selectedEtab, setSelectedEtab] = useState(null); const [sidebarCollapsed, setSidebarCollapsed] = useState(false); const [viewMode, setViewMode] = useState('grid'); @@ -232,7 +235,20 @@ export default function Home() { {/* Contenu — vue vignettes ou liste */}
- {etablissements.length === 0 ? ( + {!hasDonnees ? ( +
+
+ +
+

+ Aucune donnée pour {annee} +

+

+ Les données d'inventaire parc PC pour l'exercice {annee} n'ont pas encore été importées. + Les années disponibles sont 2026 et 2027. +

+
+ ) : etablissements.length === 0 ? (

Aucun établissement trouvé