Checkpoint: Application Budget Renouvellement SI 2027 Itinova — Version complète avec dashboard KPIs, grille des 75 établissements, panneau de détail par établissement avec tableau de synthèse et liste des équipements filtrables.

This commit is contained in:
Manus
2026-04-01 03:48:42 -04:00
parent 0f673d9ab0
commit 745ea5dce6
14 changed files with 19551 additions and 117 deletions

View File

@@ -0,0 +1,54 @@
// Types pour l'application Budget Renouvellement SI 2027 - Itinova
export interface Materiel {
libelle: string;
date_achat: string;
age_ans: number | null;
a_renouveler: boolean;
modele: string;
fabricant: string;
}
export interface EtablissementStats {
nb_fixes_total: number;
nb_portables_total: number;
nb_fixes_renouveler: number;
nb_portables_renouveler: number;
nb_fixes_sans_date: number;
nb_portables_sans_date: number;
budget_fixes: number;
budget_portables: number;
budget_total: number;
}
export interface Etablissement {
code: string;
nom: string;
fixes: Materiel[];
portables: Materiel[];
stats: EtablissementStats;
}
export interface BudgetMeta {
date_calcul: string;
date_reference: string;
seuil_fixes_ans: number;
seuil_portables_ans: number;
cout_fixe: number;
cout_portable: number;
nb_etablissements: number;
budget_global: number;
total_fixes: number;
total_portables: number;
total_fixes_renouveler: number;
total_portables_renouveler: number;
}
export interface BudgetData {
meta: BudgetMeta;
etablissements: Etablissement[];
}
export type SortField = 'nom' | 'budget_total' | 'nb_fixes_renouveler' | 'nb_portables_renouveler' | 'code';
export type SortOrder = 'asc' | 'desc';
export type FilterType = 'all' | 'has_budget' | 'no_budget';