Checkpoint: 1. Renommage de Prorata classe 6 en Prorata C 6 dans DsiOpex.tsx, data_opex.json et data_opex_2025.json. 2. Colonne Type déplacée en mode showDetails. 3. Colonne Ventilation (avec bouton bascule) affichée en mode normal (toujours visible). Ordre des colonnes : Catégorie → Facturation → Ventilation → [Type] → [Compte] → Budget N-1 → Prév.
This commit is contained in:
@@ -8,7 +8,7 @@
|
|||||||
"libelle": "SAAS AGEVAL Gestion de la qualité",
|
"libelle": "SAAS AGEVAL Gestion de la qualité",
|
||||||
"detail": "Gestion qualité (procédures,FEI...)",
|
"detail": "Gestion qualité (procédures,FEI...)",
|
||||||
"facturation": "Annuelle",
|
"facturation": "Annuelle",
|
||||||
"mode_ventilation": "Prorata classe 6",
|
"mode_ventilation": "Prorata C 6",
|
||||||
"categorie": "App global",
|
"categorie": "App global",
|
||||||
"type": "SAAS",
|
"type": "SAAS",
|
||||||
"compte": "613511",
|
"compte": "613511",
|
||||||
@@ -21,7 +21,7 @@
|
|||||||
"libelle": "SAAS OCTIME Gestion de temps",
|
"libelle": "SAAS OCTIME Gestion de temps",
|
||||||
"detail": "GTA",
|
"detail": "GTA",
|
||||||
"facturation": "Annuelle",
|
"facturation": "Annuelle",
|
||||||
"mode_ventilation": "Prorata classe 6",
|
"mode_ventilation": "Prorata C 6",
|
||||||
"categorie": "App global",
|
"categorie": "App global",
|
||||||
"type": "SAAS",
|
"type": "SAAS",
|
||||||
"compte": "613511",
|
"compte": "613511",
|
||||||
@@ -60,7 +60,7 @@
|
|||||||
"libelle": "SAAS ISI-APP Gestion de parc",
|
"libelle": "SAAS ISI-APP Gestion de parc",
|
||||||
"detail": "Outil de pilotage SI du parc + Connexion AD + Module Santé",
|
"detail": "Outil de pilotage SI du parc + Connexion AD + Module Santé",
|
||||||
"facturation": "Mensuelle",
|
"facturation": "Mensuelle",
|
||||||
"mode_ventilation": "Prorata classe 6",
|
"mode_ventilation": "Prorata C 6",
|
||||||
"categorie": "Infogérance",
|
"categorie": "Infogérance",
|
||||||
"type": "SAAS",
|
"type": "SAAS",
|
||||||
"compte": "613511",
|
"compte": "613511",
|
||||||
@@ -73,7 +73,7 @@
|
|||||||
"libelle": "SAAS DLD Gestion de la Conformité RGPD",
|
"libelle": "SAAS DLD Gestion de la Conformité RGPD",
|
||||||
"detail": "RGPD",
|
"detail": "RGPD",
|
||||||
"facturation": "Mensuelle",
|
"facturation": "Mensuelle",
|
||||||
"mode_ventilation": "Prorata classe 6",
|
"mode_ventilation": "Prorata C 6",
|
||||||
"categorie": "App global",
|
"categorie": "App global",
|
||||||
"type": "SAAS",
|
"type": "SAAS",
|
||||||
"compte": "613511",
|
"compte": "613511",
|
||||||
@@ -86,7 +86,7 @@
|
|||||||
"libelle": "SAAS Gestion signature électronique",
|
"libelle": "SAAS Gestion signature électronique",
|
||||||
"detail": "DE électroniques",
|
"detail": "DE électroniques",
|
||||||
"facturation": "Annuelle",
|
"facturation": "Annuelle",
|
||||||
"mode_ventilation": "Prorata classe 6",
|
"mode_ventilation": "Prorata C 6",
|
||||||
"categorie": "App global",
|
"categorie": "App global",
|
||||||
"type": "SAAS",
|
"type": "SAAS",
|
||||||
"compte": "613511",
|
"compte": "613511",
|
||||||
@@ -112,7 +112,7 @@
|
|||||||
"libelle": "Redevance SXS Gestion trésorerie SAGE",
|
"libelle": "Redevance SXS Gestion trésorerie SAGE",
|
||||||
"detail": "Communications bancaires",
|
"detail": "Communications bancaires",
|
||||||
"facturation": "Annuelle",
|
"facturation": "Annuelle",
|
||||||
"mode_ventilation": "Prorata classe 6",
|
"mode_ventilation": "Prorata C 6",
|
||||||
"categorie": "App global",
|
"categorie": "App global",
|
||||||
"type": "SAAS",
|
"type": "SAAS",
|
||||||
"compte": "613511",
|
"compte": "613511",
|
||||||
@@ -138,7 +138,7 @@
|
|||||||
"libelle": "SAAS LIFEN Plateforme E-Santé Réceptions",
|
"libelle": "SAAS LIFEN Plateforme E-Santé Réceptions",
|
||||||
"detail": "SMR / outil d'intégration dans le DPI depuis le DMP et/ou la MSS",
|
"detail": "SMR / outil d'intégration dans le DPI depuis le DMP et/ou la MSS",
|
||||||
"facturation": "Mensuelle",
|
"facturation": "Mensuelle",
|
||||||
"mode_ventilation": "Prorata classe 6",
|
"mode_ventilation": "Prorata C 6",
|
||||||
"categorie": "App SMR",
|
"categorie": "App SMR",
|
||||||
"type": "SAAS",
|
"type": "SAAS",
|
||||||
"compte": "613511",
|
"compte": "613511",
|
||||||
@@ -151,7 +151,7 @@
|
|||||||
"libelle": "SAAS NOVRH",
|
"libelle": "SAAS NOVRH",
|
||||||
"detail": "SIRH : Maintenance et hébergement",
|
"detail": "SIRH : Maintenance et hébergement",
|
||||||
"facturation": "Annuelle",
|
"facturation": "Annuelle",
|
||||||
"mode_ventilation": "Prorata classe 6",
|
"mode_ventilation": "Prorata C 6",
|
||||||
"categorie": "App global",
|
"categorie": "App global",
|
||||||
"type": "SAAS",
|
"type": "SAAS",
|
||||||
"compte": "613511",
|
"compte": "613511",
|
||||||
@@ -164,7 +164,7 @@
|
|||||||
"libelle": "SAAS NOVRH Assistance",
|
"libelle": "SAAS NOVRH Assistance",
|
||||||
"detail": "SIRH : Assistance premium",
|
"detail": "SIRH : Assistance premium",
|
||||||
"facturation": null,
|
"facturation": null,
|
||||||
"mode_ventilation": "Prorata classe 6",
|
"mode_ventilation": "Prorata C 6",
|
||||||
"categorie": "App global",
|
"categorie": "App global",
|
||||||
"type": "Maintenance",
|
"type": "Maintenance",
|
||||||
"compte": "615610",
|
"compte": "615610",
|
||||||
@@ -177,7 +177,7 @@
|
|||||||
"libelle": "Coffre fort numérique",
|
"libelle": "Coffre fort numérique",
|
||||||
"detail": "SIRH : Coffe fort numérique",
|
"detail": "SIRH : Coffe fort numérique",
|
||||||
"facturation": "Annuelle",
|
"facturation": "Annuelle",
|
||||||
"mode_ventilation": "Prorata classe 6",
|
"mode_ventilation": "Prorata C 6",
|
||||||
"categorie": "App global",
|
"categorie": "App global",
|
||||||
"type": "SAAS",
|
"type": "SAAS",
|
||||||
"compte": "613511",
|
"compte": "613511",
|
||||||
@@ -190,7 +190,7 @@
|
|||||||
"libelle": "SAAS DUI Pole HEP",
|
"libelle": "SAAS DUI Pole HEP",
|
||||||
"detail": "Outil métier",
|
"detail": "Outil métier",
|
||||||
"facturation": "Annuelle",
|
"facturation": "Annuelle",
|
||||||
"mode_ventilation": "Prorata classe 6",
|
"mode_ventilation": "Prorata C 6",
|
||||||
"categorie": "App HEP",
|
"categorie": "App HEP",
|
||||||
"type": "SAAS",
|
"type": "SAAS",
|
||||||
"compte": "613511",
|
"compte": "613511",
|
||||||
@@ -203,7 +203,7 @@
|
|||||||
"libelle": "SAAS DUI BON PASTEUR",
|
"libelle": "SAAS DUI BON PASTEUR",
|
||||||
"detail": "Outil métier",
|
"detail": "Outil métier",
|
||||||
"facturation": "Annuelle",
|
"facturation": "Annuelle",
|
||||||
"mode_ventilation": "Prorata classe 6",
|
"mode_ventilation": "Prorata C 6",
|
||||||
"categorie": "App HEP",
|
"categorie": "App HEP",
|
||||||
"type": "SAAS",
|
"type": "SAAS",
|
||||||
"compte": "613511",
|
"compte": "613511",
|
||||||
@@ -229,7 +229,7 @@
|
|||||||
"libelle": "Infrastructures Data Center + Liens Internet",
|
"libelle": "Infrastructures Data Center + Liens Internet",
|
||||||
"detail": "DataCenter",
|
"detail": "DataCenter",
|
||||||
"facturation": "Mensuelle",
|
"facturation": "Mensuelle",
|
||||||
"mode_ventilation": "Prorata classe 6",
|
"mode_ventilation": "Prorata C 6",
|
||||||
"categorie": "Infogérance",
|
"categorie": "Infogérance",
|
||||||
"type": "Loc. Infra Data Center",
|
"type": "Loc. Infra Data Center",
|
||||||
"compte": "613512",
|
"compte": "613512",
|
||||||
@@ -242,7 +242,7 @@
|
|||||||
"libelle": "Liens internet Siège Data Center",
|
"libelle": "Liens internet Siège Data Center",
|
||||||
"detail": "DataCenter",
|
"detail": "DataCenter",
|
||||||
"facturation": "Mensuelle",
|
"facturation": "Mensuelle",
|
||||||
"mode_ventilation": "Prorata classe 6",
|
"mode_ventilation": "Prorata C 6",
|
||||||
"categorie": "Infogérance",
|
"categorie": "Infogérance",
|
||||||
"type": "Liens Internet",
|
"type": "Liens Internet",
|
||||||
"compte": "626203",
|
"compte": "626203",
|
||||||
@@ -255,7 +255,7 @@
|
|||||||
"libelle": "Prestation TMA réglementaire",
|
"libelle": "Prestation TMA réglementaire",
|
||||||
"detail": "Gestion du temps module TMA",
|
"detail": "Gestion du temps module TMA",
|
||||||
"facturation": "Au fil de l'eau",
|
"facturation": "Au fil de l'eau",
|
||||||
"mode_ventilation": "Prorata classe 6",
|
"mode_ventilation": "Prorata C 6",
|
||||||
"categorie": "App global",
|
"categorie": "App global",
|
||||||
"type": "Prestation",
|
"type": "Prestation",
|
||||||
"compte": "628400",
|
"compte": "628400",
|
||||||
@@ -268,7 +268,7 @@
|
|||||||
"libelle": "Maintenance applicatifs",
|
"libelle": "Maintenance applicatifs",
|
||||||
"detail": "Compta-first, paye-fisrt, GAP-first...",
|
"detail": "Compta-first, paye-fisrt, GAP-first...",
|
||||||
"facturation": "Annuelle",
|
"facturation": "Annuelle",
|
||||||
"mode_ventilation": "Prorata classe 6",
|
"mode_ventilation": "Prorata C 6",
|
||||||
"categorie": "App global",
|
"categorie": "App global",
|
||||||
"type": "Maintenance",
|
"type": "Maintenance",
|
||||||
"compte": "615610",
|
"compte": "615610",
|
||||||
@@ -281,7 +281,7 @@
|
|||||||
"libelle": "Maintenance FLEXICLOUD",
|
"libelle": "Maintenance FLEXICLOUD",
|
||||||
"detail": "Connexions aux serveurs du DataCenter",
|
"detail": "Connexions aux serveurs du DataCenter",
|
||||||
"facturation": "Annuelle",
|
"facturation": "Annuelle",
|
||||||
"mode_ventilation": "Prorata classe 6",
|
"mode_ventilation": "Prorata C 6",
|
||||||
"categorie": "Infogérance",
|
"categorie": "Infogérance",
|
||||||
"type": "Maintenance",
|
"type": "Maintenance",
|
||||||
"compte": "615610",
|
"compte": "615610",
|
||||||
@@ -294,7 +294,7 @@
|
|||||||
"libelle": "Abonnement Solution de télémaintenance",
|
"libelle": "Abonnement Solution de télémaintenance",
|
||||||
"detail": "Prise de main distante pour équipe IT",
|
"detail": "Prise de main distante pour équipe IT",
|
||||||
"facturation": "Annuelle Juin",
|
"facturation": "Annuelle Juin",
|
||||||
"mode_ventilation": "Prorata classe 6",
|
"mode_ventilation": "Prorata C 6",
|
||||||
"categorie": "Infogérance",
|
"categorie": "Infogérance",
|
||||||
"type": "Maintenance",
|
"type": "Maintenance",
|
||||||
"compte": "615610",
|
"compte": "615610",
|
||||||
@@ -307,7 +307,7 @@
|
|||||||
"libelle": "Assistance technique Niveau 3",
|
"libelle": "Assistance technique Niveau 3",
|
||||||
"detail": "Contrat de prestation 10 j + 20h assistnce premium",
|
"detail": "Contrat de prestation 10 j + 20h assistnce premium",
|
||||||
"facturation": "Annuelle",
|
"facturation": "Annuelle",
|
||||||
"mode_ventilation": "Prorata classe 6",
|
"mode_ventilation": "Prorata C 6",
|
||||||
"categorie": "Infogérance",
|
"categorie": "Infogérance",
|
||||||
"type": "Prestation",
|
"type": "Prestation",
|
||||||
"compte": "628400",
|
"compte": "628400",
|
||||||
@@ -333,7 +333,7 @@
|
|||||||
"libelle": "Maintenance VEEAM",
|
"libelle": "Maintenance VEEAM",
|
||||||
"detail": "DataCenter / Sauvegardes machines + Sauvegardes 0365",
|
"detail": "DataCenter / Sauvegardes machines + Sauvegardes 0365",
|
||||||
"facturation": "Annuelle",
|
"facturation": "Annuelle",
|
||||||
"mode_ventilation": "Prorata classe 6",
|
"mode_ventilation": "Prorata C 6",
|
||||||
"categorie": "Infogérance",
|
"categorie": "Infogérance",
|
||||||
"type": "Maintenance",
|
"type": "Maintenance",
|
||||||
"compte": "615610",
|
"compte": "615610",
|
||||||
@@ -346,7 +346,7 @@
|
|||||||
"libelle": "Maintenance WATCHGUARD",
|
"libelle": "Maintenance WATCHGUARD",
|
||||||
"detail": "Sécurité /Pare-feux",
|
"detail": "Sécurité /Pare-feux",
|
||||||
"facturation": "Au fil de l'eau",
|
"facturation": "Au fil de l'eau",
|
||||||
"mode_ventilation": "Prorata classe 6",
|
"mode_ventilation": "Prorata C 6",
|
||||||
"categorie": "Sécurité",
|
"categorie": "Sécurité",
|
||||||
"type": "Maintenance",
|
"type": "Maintenance",
|
||||||
"compte": "615610",
|
"compte": "615610",
|
||||||
@@ -359,7 +359,7 @@
|
|||||||
"libelle": "Maintenance EPDR WG",
|
"libelle": "Maintenance EPDR WG",
|
||||||
"detail": "Sécurité / Anti-virus",
|
"detail": "Sécurité / Anti-virus",
|
||||||
"facturation": "Annuelle",
|
"facturation": "Annuelle",
|
||||||
"mode_ventilation": "Prorata classe 6",
|
"mode_ventilation": "Prorata C 6",
|
||||||
"categorie": "Sécurité",
|
"categorie": "Sécurité",
|
||||||
"type": "Maintenance",
|
"type": "Maintenance",
|
||||||
"compte": "615610",
|
"compte": "615610",
|
||||||
@@ -372,7 +372,7 @@
|
|||||||
"libelle": "Maintenance DARKTRACE",
|
"libelle": "Maintenance DARKTRACE",
|
||||||
"detail": "Sécurité / Inteligence artificielle surveillance réseau",
|
"detail": "Sécurité / Inteligence artificielle surveillance réseau",
|
||||||
"facturation": "Annuelle",
|
"facturation": "Annuelle",
|
||||||
"mode_ventilation": "Prorata classe 6",
|
"mode_ventilation": "Prorata C 6",
|
||||||
"categorie": "Sécurité",
|
"categorie": "Sécurité",
|
||||||
"type": "Maintenance",
|
"type": "Maintenance",
|
||||||
"compte": "615610",
|
"compte": "615610",
|
||||||
@@ -385,7 +385,7 @@
|
|||||||
"libelle": "Maintenance DARKTRACE ANTIGENA",
|
"libelle": "Maintenance DARKTRACE ANTIGENA",
|
||||||
"detail": "Sécurité / Inteligence artificielle surveillance réseau",
|
"detail": "Sécurité / Inteligence artificielle surveillance réseau",
|
||||||
"facturation": "Annuelle",
|
"facturation": "Annuelle",
|
||||||
"mode_ventilation": "Prorata classe 6",
|
"mode_ventilation": "Prorata C 6",
|
||||||
"categorie": "Sécurité",
|
"categorie": "Sécurité",
|
||||||
"type": "Maintenance",
|
"type": "Maintenance",
|
||||||
"compte": "615610",
|
"compte": "615610",
|
||||||
@@ -398,7 +398,7 @@
|
|||||||
"libelle": "SAAS Protection mails DARKTRACE",
|
"libelle": "SAAS Protection mails DARKTRACE",
|
||||||
"detail": "Sécurité / Inteligence artificielle surveillance réseau",
|
"detail": "Sécurité / Inteligence artificielle surveillance réseau",
|
||||||
"facturation": "Annuelle",
|
"facturation": "Annuelle",
|
||||||
"mode_ventilation": "Prorata classe 6",
|
"mode_ventilation": "Prorata C 6",
|
||||||
"categorie": "Sécurité",
|
"categorie": "Sécurité",
|
||||||
"type": "SAAS",
|
"type": "SAAS",
|
||||||
"compte": "613511",
|
"compte": "613511",
|
||||||
@@ -411,7 +411,7 @@
|
|||||||
"libelle": "SIEM / SOC / NEOEDGE",
|
"libelle": "SIEM / SOC / NEOEDGE",
|
||||||
"detail": "Sécurité / corrélation données logs. Annalyse tentatives d'intrusion",
|
"detail": "Sécurité / corrélation données logs. Annalyse tentatives d'intrusion",
|
||||||
"facturation": "Annuelle",
|
"facturation": "Annuelle",
|
||||||
"mode_ventilation": "Prorata classe 6",
|
"mode_ventilation": "Prorata C 6",
|
||||||
"categorie": "Sécurité",
|
"categorie": "Sécurité",
|
||||||
"type": "Prestation",
|
"type": "Prestation",
|
||||||
"compte": "628400",
|
"compte": "628400",
|
||||||
@@ -424,7 +424,7 @@
|
|||||||
"libelle": "Budget Petit matériel et Autres dépenses",
|
"libelle": "Budget Petit matériel et Autres dépenses",
|
||||||
"detail": "Divers matériels",
|
"detail": "Divers matériels",
|
||||||
"facturation": "Annuelle",
|
"facturation": "Annuelle",
|
||||||
"mode_ventilation": "Prorata classe 6",
|
"mode_ventilation": "Prorata C 6",
|
||||||
"categorie": "Infogérance",
|
"categorie": "Infogérance",
|
||||||
"type": "Petits matériels",
|
"type": "Petits matériels",
|
||||||
"compte": "606241",
|
"compte": "606241",
|
||||||
@@ -450,7 +450,7 @@
|
|||||||
"libelle": "Maintenance GAMMEO",
|
"libelle": "Maintenance GAMMEO",
|
||||||
"detail": "GMAO",
|
"detail": "GMAO",
|
||||||
"facturation": "Annuelle",
|
"facturation": "Annuelle",
|
||||||
"mode_ventilation": "Prorata classe 6",
|
"mode_ventilation": "Prorata C 6",
|
||||||
"categorie": "App global",
|
"categorie": "App global",
|
||||||
"type": "Maintenance",
|
"type": "Maintenance",
|
||||||
"compte": "615610",
|
"compte": "615610",
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
"libelle": "SAAS AGEVAL Gestion de la qualité",
|
"libelle": "SAAS AGEVAL Gestion de la qualité",
|
||||||
"detail": "Gestion qualité (procédures,FEI...)",
|
"detail": "Gestion qualité (procédures,FEI...)",
|
||||||
"facturation": "Annuelle",
|
"facturation": "Annuelle",
|
||||||
"mode_ventilation": "Prorata classe 6",
|
"mode_ventilation": "Prorata C 6",
|
||||||
"categorie": "App global",
|
"categorie": "App global",
|
||||||
"type": "SAAS",
|
"type": "SAAS",
|
||||||
"compte": "613511",
|
"compte": "613511",
|
||||||
@@ -21,7 +21,7 @@
|
|||||||
"libelle": "SAAS OCTIME Gestion de temps",
|
"libelle": "SAAS OCTIME Gestion de temps",
|
||||||
"detail": "GTA",
|
"detail": "GTA",
|
||||||
"facturation": "Annuelle",
|
"facturation": "Annuelle",
|
||||||
"mode_ventilation": "Prorata classe 6",
|
"mode_ventilation": "Prorata C 6",
|
||||||
"categorie": "App global",
|
"categorie": "App global",
|
||||||
"type": "SAAS",
|
"type": "SAAS",
|
||||||
"compte": "613511",
|
"compte": "613511",
|
||||||
@@ -60,7 +60,7 @@
|
|||||||
"libelle": "SAAS ISI-APP Gestion de parc",
|
"libelle": "SAAS ISI-APP Gestion de parc",
|
||||||
"detail": "Outil de pilotage SI du parc + Connexion AD + Module Santé",
|
"detail": "Outil de pilotage SI du parc + Connexion AD + Module Santé",
|
||||||
"facturation": "Mensuelle",
|
"facturation": "Mensuelle",
|
||||||
"mode_ventilation": "Prorata classe 6",
|
"mode_ventilation": "Prorata C 6",
|
||||||
"categorie": "Infogérance",
|
"categorie": "Infogérance",
|
||||||
"type": "SAAS",
|
"type": "SAAS",
|
||||||
"compte": "613511",
|
"compte": "613511",
|
||||||
@@ -73,7 +73,7 @@
|
|||||||
"libelle": "SAAS DLD Gestion de la Conformité RGPD",
|
"libelle": "SAAS DLD Gestion de la Conformité RGPD",
|
||||||
"detail": "RGPD",
|
"detail": "RGPD",
|
||||||
"facturation": "Mensuelle",
|
"facturation": "Mensuelle",
|
||||||
"mode_ventilation": "Prorata classe 6",
|
"mode_ventilation": "Prorata C 6",
|
||||||
"categorie": "App global",
|
"categorie": "App global",
|
||||||
"type": "SAAS",
|
"type": "SAAS",
|
||||||
"compte": "613511",
|
"compte": "613511",
|
||||||
@@ -86,7 +86,7 @@
|
|||||||
"libelle": "SAAS Gestion signature électronique",
|
"libelle": "SAAS Gestion signature électronique",
|
||||||
"detail": "DE électroniques",
|
"detail": "DE électroniques",
|
||||||
"facturation": "Annuelle",
|
"facturation": "Annuelle",
|
||||||
"mode_ventilation": "Prorata classe 6",
|
"mode_ventilation": "Prorata C 6",
|
||||||
"categorie": "App global",
|
"categorie": "App global",
|
||||||
"type": "SAAS",
|
"type": "SAAS",
|
||||||
"compte": "613511",
|
"compte": "613511",
|
||||||
@@ -112,7 +112,7 @@
|
|||||||
"libelle": "Redevance SXS Gestion trésorerie SAGE",
|
"libelle": "Redevance SXS Gestion trésorerie SAGE",
|
||||||
"detail": "Communications bancaires",
|
"detail": "Communications bancaires",
|
||||||
"facturation": "Annuelle",
|
"facturation": "Annuelle",
|
||||||
"mode_ventilation": "Prorata classe 6",
|
"mode_ventilation": "Prorata C 6",
|
||||||
"categorie": "App global",
|
"categorie": "App global",
|
||||||
"type": "SAAS",
|
"type": "SAAS",
|
||||||
"compte": "613511",
|
"compte": "613511",
|
||||||
@@ -138,7 +138,7 @@
|
|||||||
"libelle": "SAAS LIFEN Plateforme E-Santé Réceptions",
|
"libelle": "SAAS LIFEN Plateforme E-Santé Réceptions",
|
||||||
"detail": "SMR / outil d'intégration dans le DPI depuis le DMP et/ou la MSS",
|
"detail": "SMR / outil d'intégration dans le DPI depuis le DMP et/ou la MSS",
|
||||||
"facturation": "Mensuelle",
|
"facturation": "Mensuelle",
|
||||||
"mode_ventilation": "Prorata classe 6",
|
"mode_ventilation": "Prorata C 6",
|
||||||
"categorie": "New",
|
"categorie": "New",
|
||||||
"type": "SAAS",
|
"type": "SAAS",
|
||||||
"compte": "613511",
|
"compte": "613511",
|
||||||
@@ -151,7 +151,7 @@
|
|||||||
"libelle": "NOVRH",
|
"libelle": "NOVRH",
|
||||||
"detail": "SIRH (année pleine)",
|
"detail": "SIRH (année pleine)",
|
||||||
"facturation": "Annuelle",
|
"facturation": "Annuelle",
|
||||||
"mode_ventilation": "Prorata classe 6",
|
"mode_ventilation": "Prorata C 6",
|
||||||
"categorie": "App global",
|
"categorie": "App global",
|
||||||
"type": "SAAS",
|
"type": "SAAS",
|
||||||
"compte": "613511",
|
"compte": "613511",
|
||||||
@@ -164,7 +164,7 @@
|
|||||||
"libelle": "SAAS Protection mails DARKTRACE",
|
"libelle": "SAAS Protection mails DARKTRACE",
|
||||||
"detail": "Sécurité",
|
"detail": "Sécurité",
|
||||||
"facturation": "Annuelle",
|
"facturation": "Annuelle",
|
||||||
"mode_ventilation": "Prorata classe 6",
|
"mode_ventilation": "Prorata C 6",
|
||||||
"categorie": "New",
|
"categorie": "New",
|
||||||
"type": "SAAS",
|
"type": "SAAS",
|
||||||
"compte": "613511",
|
"compte": "613511",
|
||||||
@@ -177,7 +177,7 @@
|
|||||||
"libelle": "SAAS DUI Pole HEP",
|
"libelle": "SAAS DUI Pole HEP",
|
||||||
"detail": "Outil métier",
|
"detail": "Outil métier",
|
||||||
"facturation": "Annuelle",
|
"facturation": "Annuelle",
|
||||||
"mode_ventilation": "Prorata classe 6",
|
"mode_ventilation": "Prorata C 6",
|
||||||
"categorie": "App HEP",
|
"categorie": "App HEP",
|
||||||
"type": "SAAS",
|
"type": "SAAS",
|
||||||
"compte": "613511",
|
"compte": "613511",
|
||||||
@@ -203,7 +203,7 @@
|
|||||||
"libelle": "Infrastructures Data Center + Liens Internet",
|
"libelle": "Infrastructures Data Center + Liens Internet",
|
||||||
"detail": "DataCenter",
|
"detail": "DataCenter",
|
||||||
"facturation": "Mensuelle",
|
"facturation": "Mensuelle",
|
||||||
"mode_ventilation": "Prorata classe 6",
|
"mode_ventilation": "Prorata C 6",
|
||||||
"categorie": "Infogérance",
|
"categorie": "Infogérance",
|
||||||
"type": "Loc. Infra Data Center",
|
"type": "Loc. Infra Data Center",
|
||||||
"compte": "613512",
|
"compte": "613512",
|
||||||
@@ -216,7 +216,7 @@
|
|||||||
"libelle": "Liens internet Siège Data Center",
|
"libelle": "Liens internet Siège Data Center",
|
||||||
"detail": "DataCenter",
|
"detail": "DataCenter",
|
||||||
"facturation": "Mensuelle",
|
"facturation": "Mensuelle",
|
||||||
"mode_ventilation": "Prorata classe 6",
|
"mode_ventilation": "Prorata C 6",
|
||||||
"categorie": "Infogérance",
|
"categorie": "Infogérance",
|
||||||
"type": "Liens Internet",
|
"type": "Liens Internet",
|
||||||
"compte": "626203",
|
"compte": "626203",
|
||||||
@@ -229,7 +229,7 @@
|
|||||||
"libelle": "Abonnements Liaisons internet siège et Data Center",
|
"libelle": "Abonnements Liaisons internet siège et Data Center",
|
||||||
"detail": "DataCenter",
|
"detail": "DataCenter",
|
||||||
"facturation": "Mensuelle",
|
"facturation": "Mensuelle",
|
||||||
"mode_ventilation": "Prorata classe 6",
|
"mode_ventilation": "Prorata C 6",
|
||||||
"categorie": "Infogérance",
|
"categorie": "Infogérance",
|
||||||
"type": "Liens Internet",
|
"type": "Liens Internet",
|
||||||
"compte": "626203",
|
"compte": "626203",
|
||||||
@@ -242,7 +242,7 @@
|
|||||||
"libelle": "Prestation TMA réglementaire",
|
"libelle": "Prestation TMA réglementaire",
|
||||||
"detail": "Gestion du temps module TMA",
|
"detail": "Gestion du temps module TMA",
|
||||||
"facturation": "Au fil de l'eau",
|
"facturation": "Au fil de l'eau",
|
||||||
"mode_ventilation": "Prorata classe 6",
|
"mode_ventilation": "Prorata C 6",
|
||||||
"categorie": "App global",
|
"categorie": "App global",
|
||||||
"type": "Prestation",
|
"type": "Prestation",
|
||||||
"compte": "628400",
|
"compte": "628400",
|
||||||
@@ -268,7 +268,7 @@
|
|||||||
"libelle": "Maintenance applicatifs",
|
"libelle": "Maintenance applicatifs",
|
||||||
"detail": "Compta-first, paye-fisrt, GAP-first...",
|
"detail": "Compta-first, paye-fisrt, GAP-first...",
|
||||||
"facturation": "Annuelle",
|
"facturation": "Annuelle",
|
||||||
"mode_ventilation": "Prorata classe 6",
|
"mode_ventilation": "Prorata C 6",
|
||||||
"categorie": "App global",
|
"categorie": "App global",
|
||||||
"type": "Maintenance",
|
"type": "Maintenance",
|
||||||
"compte": "615610",
|
"compte": "615610",
|
||||||
@@ -294,7 +294,7 @@
|
|||||||
"libelle": "Maintenance OSIDOC (A RESILIER)",
|
"libelle": "Maintenance OSIDOC (A RESILIER)",
|
||||||
"detail": "Gestion des contrats",
|
"detail": "Gestion des contrats",
|
||||||
"facturation": "Annuelle",
|
"facturation": "Annuelle",
|
||||||
"mode_ventilation": "Prorata classe 6",
|
"mode_ventilation": "Prorata C 6",
|
||||||
"categorie": "App global",
|
"categorie": "App global",
|
||||||
"type": "Maintenance",
|
"type": "Maintenance",
|
||||||
"compte": "615610",
|
"compte": "615610",
|
||||||
@@ -307,7 +307,7 @@
|
|||||||
"libelle": "Maintenance FLEXICLOUD",
|
"libelle": "Maintenance FLEXICLOUD",
|
||||||
"detail": "Connexions aux serveurs du DataCenter",
|
"detail": "Connexions aux serveurs du DataCenter",
|
||||||
"facturation": "Annuelle",
|
"facturation": "Annuelle",
|
||||||
"mode_ventilation": "Prorata classe 6",
|
"mode_ventilation": "Prorata C 6",
|
||||||
"categorie": "Infogérance",
|
"categorie": "Infogérance",
|
||||||
"type": "Maintenance",
|
"type": "Maintenance",
|
||||||
"compte": "615610",
|
"compte": "615610",
|
||||||
@@ -320,7 +320,7 @@
|
|||||||
"libelle": "Abonnement Solution de télémaintenance",
|
"libelle": "Abonnement Solution de télémaintenance",
|
||||||
"detail": "Prise de main distante pour équipe IT",
|
"detail": "Prise de main distante pour équipe IT",
|
||||||
"facturation": "Annuelle",
|
"facturation": "Annuelle",
|
||||||
"mode_ventilation": "Prorata classe 6",
|
"mode_ventilation": "Prorata C 6",
|
||||||
"categorie": "Infogérance",
|
"categorie": "Infogérance",
|
||||||
"type": "Maintenance",
|
"type": "Maintenance",
|
||||||
"compte": "615610",
|
"compte": "615610",
|
||||||
@@ -333,7 +333,7 @@
|
|||||||
"libelle": "Maintenance WATCHGUARD",
|
"libelle": "Maintenance WATCHGUARD",
|
||||||
"detail": "Sécurité /Pare-feux renouvellement des pare-feux tous les 5 ans",
|
"detail": "Sécurité /Pare-feux renouvellement des pare-feux tous les 5 ans",
|
||||||
"facturation": "Au fil de l'eau",
|
"facturation": "Au fil de l'eau",
|
||||||
"mode_ventilation": "Prorata classe 6",
|
"mode_ventilation": "Prorata C 6",
|
||||||
"categorie": "Sécurité",
|
"categorie": "Sécurité",
|
||||||
"type": "Maintenance",
|
"type": "Maintenance",
|
||||||
"compte": "615610",
|
"compte": "615610",
|
||||||
@@ -346,7 +346,7 @@
|
|||||||
"libelle": "Maintenance EPDR WG",
|
"libelle": "Maintenance EPDR WG",
|
||||||
"detail": "Sécurité / Anti-virus",
|
"detail": "Sécurité / Anti-virus",
|
||||||
"facturation": "Annuelle",
|
"facturation": "Annuelle",
|
||||||
"mode_ventilation": "Prorata classe 6",
|
"mode_ventilation": "Prorata C 6",
|
||||||
"categorie": "Sécurité",
|
"categorie": "Sécurité",
|
||||||
"type": "Maintenance",
|
"type": "Maintenance",
|
||||||
"compte": "615610",
|
"compte": "615610",
|
||||||
@@ -359,7 +359,7 @@
|
|||||||
"libelle": "Maintenance VEEAM",
|
"libelle": "Maintenance VEEAM",
|
||||||
"detail": "DataCenter / Sauvegardes machines + Sauvegardes 0365",
|
"detail": "DataCenter / Sauvegardes machines + Sauvegardes 0365",
|
||||||
"facturation": "Annuelle",
|
"facturation": "Annuelle",
|
||||||
"mode_ventilation": "Prorata classe 6",
|
"mode_ventilation": "Prorata C 6",
|
||||||
"categorie": "Infogérance",
|
"categorie": "Infogérance",
|
||||||
"type": "Maintenance",
|
"type": "Maintenance",
|
||||||
"compte": "615610",
|
"compte": "615610",
|
||||||
@@ -372,7 +372,7 @@
|
|||||||
"libelle": "Maintenance DARKTRACE",
|
"libelle": "Maintenance DARKTRACE",
|
||||||
"detail": "Sécurité / Inteligence artificielle surveillance réseau",
|
"detail": "Sécurité / Inteligence artificielle surveillance réseau",
|
||||||
"facturation": "Annuelle",
|
"facturation": "Annuelle",
|
||||||
"mode_ventilation": "Prorata classe 6",
|
"mode_ventilation": "Prorata C 6",
|
||||||
"categorie": "Sécurité",
|
"categorie": "Sécurité",
|
||||||
"type": "Maintenance",
|
"type": "Maintenance",
|
||||||
"compte": "615610",
|
"compte": "615610",
|
||||||
@@ -385,7 +385,7 @@
|
|||||||
"libelle": "Maintenance DARKTRACE ANTIGENA",
|
"libelle": "Maintenance DARKTRACE ANTIGENA",
|
||||||
"detail": "Sécurité / Inteligence artificielle surveillance réseau",
|
"detail": "Sécurité / Inteligence artificielle surveillance réseau",
|
||||||
"facturation": "Annuelle",
|
"facturation": "Annuelle",
|
||||||
"mode_ventilation": "Prorata classe 6",
|
"mode_ventilation": "Prorata C 6",
|
||||||
"categorie": "Sécurité",
|
"categorie": "Sécurité",
|
||||||
"type": "Maintenance",
|
"type": "Maintenance",
|
||||||
"compte": "615610",
|
"compte": "615610",
|
||||||
@@ -398,7 +398,7 @@
|
|||||||
"libelle": "Budget Petit matériel et Autres dépenses",
|
"libelle": "Budget Petit matériel et Autres dépenses",
|
||||||
"detail": "Divers matériels",
|
"detail": "Divers matériels",
|
||||||
"facturation": "Annuelle",
|
"facturation": "Annuelle",
|
||||||
"mode_ventilation": "Prorata classe 6",
|
"mode_ventilation": "Prorata C 6",
|
||||||
"categorie": "Infogérance",
|
"categorie": "Infogérance",
|
||||||
"type": "Petits matériels",
|
"type": "Petits matériels",
|
||||||
"compte": null,
|
"compte": null,
|
||||||
@@ -424,7 +424,7 @@
|
|||||||
"libelle": "Maintenance GAMMEO",
|
"libelle": "Maintenance GAMMEO",
|
||||||
"detail": "GMAO",
|
"detail": "GMAO",
|
||||||
"facturation": "Annuelle",
|
"facturation": "Annuelle",
|
||||||
"mode_ventilation": "Prorata classe 6",
|
"mode_ventilation": "Prorata C 6",
|
||||||
"categorie": "New",
|
"categorie": "New",
|
||||||
"type": "Maintenance",
|
"type": "Maintenance",
|
||||||
"compte": null,
|
"compte": null,
|
||||||
|
|||||||
@@ -493,14 +493,14 @@ export default function DsiOpex() {
|
|||||||
|
|
||||||
const CATEGORIES_FILTER = useMemo(() => ['Toutes', ...categoriesPresentes], [categoriesPresentes]);
|
const CATEGORIES_FILTER = useMemo(() => ['Toutes', ...categoriesPresentes], [categoriesPresentes]);
|
||||||
|
|
||||||
// Basculer le mode de ventilation d'une ligne (Prorata classe 6 ↔ Manuel)
|
// Basculer le mode de ventilation d'une ligne (Prorata C 6 ↔ Manuel)
|
||||||
const handleToggleVentilation = useCallback((id: string) => {
|
const handleToggleVentilation = useCallback((id: string) => {
|
||||||
if (isValidated) return;
|
if (isValidated) return;
|
||||||
setOpexState(prev => ({
|
setOpexState(prev => ({
|
||||||
...prev,
|
...prev,
|
||||||
lignes: prev.lignes.map(l => l.id === id ? {
|
lignes: prev.lignes.map(l => l.id === id ? {
|
||||||
...l,
|
...l,
|
||||||
mode_ventilation: (l.mode_ventilation === 'Manuel') ? 'Prorata classe 6' : 'Manuel',
|
mode_ventilation: (l.mode_ventilation === 'Manuel') ? 'Prorata C 6' : 'Manuel',
|
||||||
} : l),
|
} : l),
|
||||||
}));
|
}));
|
||||||
setIsDirty(true);
|
setIsDirty(true);
|
||||||
@@ -1091,10 +1091,10 @@ export default function DsiOpex() {
|
|||||||
<SortBtn col="libelle" label="Poste de charge" />
|
<SortBtn col="libelle" label="Poste de charge" />
|
||||||
</th>
|
</th>
|
||||||
<th className="text-left px-4 py-3 font-medium text-muted-foreground hidden md:table-cell">Catégorie</th>
|
<th className="text-left px-4 py-3 font-medium text-muted-foreground hidden md:table-cell">Catégorie</th>
|
||||||
<th className="text-left px-3 py-3 font-medium text-muted-foreground hidden lg:table-cell w-20 max-w-[80px]">Type</th>
|
|
||||||
<th className="text-left px-4 py-3 font-medium text-muted-foreground hidden xl:table-cell">Facturation</th>
|
<th className="text-left px-4 py-3 font-medium text-muted-foreground hidden xl:table-cell">Facturation</th>
|
||||||
|
<th className="text-left px-4 py-3 font-medium text-muted-foreground hidden xl:table-cell">Ventilation</th>
|
||||||
|
{showDetails && <th className="text-left px-3 py-3 font-medium text-muted-foreground hidden lg:table-cell w-20 max-w-[80px]">Type</th>}
|
||||||
{showDetails && <th className="text-left px-4 py-3 font-medium text-muted-foreground hidden xl:table-cell">Compte</th>}
|
{showDetails && <th className="text-left px-4 py-3 font-medium text-muted-foreground hidden xl:table-cell">Compte</th>}
|
||||||
{showDetails && <th className="text-left px-4 py-3 font-medium text-muted-foreground hidden xl:table-cell">Ventilation</th>}
|
|
||||||
<th className="text-right px-4 py-3 font-medium text-muted-foreground">Budget N-1</th>
|
<th className="text-right px-4 py-3 font-medium text-muted-foreground">Budget N-1</th>
|
||||||
<th className="text-right px-4 py-3 font-medium text-muted-foreground" style={{ minWidth: '140px' }}>
|
<th className="text-right px-4 py-3 font-medium text-muted-foreground" style={{ minWidth: '140px' }}>
|
||||||
<SortBtn col="montant" label={`Prév. ${annee}`} />
|
<SortBtn col="montant" label={`Prév. ${annee}`} />
|
||||||
@@ -1138,19 +1138,17 @@ export default function DsiOpex() {
|
|||||||
{ligne.categorie}
|
{ligne.categorie}
|
||||||
</span>
|
</span>
|
||||||
</td>
|
</td>
|
||||||
<td className="px-3 py-3 text-xs text-muted-foreground hidden lg:table-cell w-20 max-w-[80px] truncate" title={ligne.type || ''}>{ligne.type || '—'}</td>
|
|
||||||
<td className="px-4 py-3 text-sm text-muted-foreground hidden xl:table-cell">{ligne.facturation || '—'}</td>
|
<td className="px-4 py-3 text-sm text-muted-foreground hidden xl:table-cell">{ligne.facturation || '—'}</td>
|
||||||
{showDetails && <td className="px-4 py-3 text-xs font-mono text-muted-foreground hidden xl:table-cell">{ligne.compte || '—'}</td>}
|
{/* Ventilation — toujours visible (affichage normal) */}
|
||||||
{showDetails && (
|
|
||||||
<td className="px-4 py-3 text-xs hidden xl:table-cell">
|
<td className="px-4 py-3 text-xs hidden xl:table-cell">
|
||||||
{isValidated ? (
|
{isValidated ? (
|
||||||
<span className={`inline-flex px-2 py-0.5 rounded-full text-xs font-medium ${
|
<span className={`inline-flex px-2 py-0.5 rounded-full text-xs font-medium ${
|
||||||
ligne.mode_ventilation === 'Manuel' ? 'bg-blue-100 text-blue-700' : 'bg-emerald-100 text-emerald-700'
|
ligne.mode_ventilation === 'Manuel' ? 'bg-blue-100 text-blue-700' : 'bg-emerald-100 text-emerald-700'
|
||||||
}`}>{ligne.mode_ventilation || 'Prorata classe 6'}</span>
|
}`}>{ligne.mode_ventilation === 'Manuel' ? 'Manuel' : 'Prorata C 6'}</span>
|
||||||
) : (
|
) : (
|
||||||
<button
|
<button
|
||||||
onClick={() => handleToggleVentilation(ligne.id)}
|
onClick={() => handleToggleVentilation(ligne.id)}
|
||||||
title="Cliquer pour basculer Prorata ↔ Manuel"
|
title="Cliquer pour basculer Prorata C 6 ↔ Manuel"
|
||||||
className={`inline-flex items-center gap-1 px-2 py-0.5 rounded-full text-xs font-medium border transition-colors hover:opacity-80 cursor-pointer ${
|
className={`inline-flex items-center gap-1 px-2 py-0.5 rounded-full text-xs font-medium border transition-colors hover:opacity-80 cursor-pointer ${
|
||||||
ligne.mode_ventilation === 'Manuel'
|
ligne.mode_ventilation === 'Manuel'
|
||||||
? 'bg-blue-100 text-blue-700 border-blue-300 hover:bg-blue-200'
|
? 'bg-blue-100 text-blue-700 border-blue-300 hover:bg-blue-200'
|
||||||
@@ -1158,11 +1156,13 @@ export default function DsiOpex() {
|
|||||||
}`}
|
}`}
|
||||||
>
|
>
|
||||||
{ligne.mode_ventilation === 'Manuel' ? '🔒' : '🔓'}
|
{ligne.mode_ventilation === 'Manuel' ? '🔒' : '🔓'}
|
||||||
{ligne.mode_ventilation || 'Prorata classe 6'}
|
{ligne.mode_ventilation === 'Manuel' ? 'Manuel' : 'Prorata C 6'}
|
||||||
</button>
|
</button>
|
||||||
)}
|
)}
|
||||||
</td>
|
</td>
|
||||||
)}
|
{/* Type — visible uniquement en mode détails */}
|
||||||
|
{showDetails && <td className="px-3 py-3 text-xs text-muted-foreground hidden lg:table-cell w-20 max-w-[80px] truncate" title={ligne.type || ''}>{ligne.type || '—'}</td>}
|
||||||
|
{showDetails && <td className="px-4 py-3 text-xs font-mono text-muted-foreground hidden xl:table-cell">{ligne.compte || '—'}</td>}
|
||||||
<td className="px-4 py-3 text-right text-sm text-muted-foreground tabular-nums">
|
<td className="px-4 py-3 text-right text-sm text-muted-foreground tabular-nums">
|
||||||
{formatNum(ligne.budget_n1)}
|
{formatNum(ligne.budget_n1)}
|
||||||
</td>
|
</td>
|
||||||
@@ -1327,7 +1327,7 @@ export default function DsiOpex() {
|
|||||||
? 'text-blue-700 bg-blue-50/60 border-b-2 border-blue-400'
|
? 'text-blue-700 bg-blue-50/60 border-b-2 border-blue-400'
|
||||||
: 'text-emerald-700 bg-emerald-50/60 border-b-2 border-emerald-400'
|
: 'text-emerald-700 bg-emerald-50/60 border-b-2 border-emerald-400'
|
||||||
}`}
|
}`}
|
||||||
title={`${ligne.libelle} — ${isManuel ? 'Saisie manuelle' : 'Prorata classe 6'} — ${formatEuros(ligne.montant)}`}
|
title={`${ligne.libelle} — ${isManuel ? 'Saisie manuelle' : 'Prorata C 6'} — ${formatEuros(ligne.montant)}`}
|
||||||
>
|
>
|
||||||
<span className="block truncate max-w-[100px]" style={{ writingMode: 'horizontal-tb' }}>
|
<span className="block truncate max-w-[100px]" style={{ writingMode: 'horizontal-tb' }}>
|
||||||
{ligne.libelle.length > 18 ? ligne.libelle.slice(0, 16) + '…' : ligne.libelle}
|
{ligne.libelle.length > 18 ? ligne.libelle.slice(0, 16) + '…' : ligne.libelle}
|
||||||
|
|||||||
Reference in New Issue
Block a user