From cc33a0a6e45177ccd342f2d36fd1cfb2d4cf4eab Mon Sep 17 00:00:00 2001
From: clallemand <=>
Date: Thu, 13 Feb 2025 17:44:06 +0100
Subject: [PATCH] adapte plf 2025

---
 .../plf_plfss_2025/__init__.py                |  6 +-
 .../plf_plfss_2025/cdhr.py                    | 66 ++++++++++++++++---
 2 files changed, 60 insertions(+), 12 deletions(-)

diff --git a/openfisca_france_reforms/plf_plfss_2025/__init__.py b/openfisca_france_reforms/plf_plfss_2025/__init__.py
index 4520914e..571ae0fe 100644
--- a/openfisca_france_reforms/plf_plfss_2025/__init__.py
+++ b/openfisca_france_reforms/plf_plfss_2025/__init__.py
@@ -14,7 +14,8 @@ from openfisca_france_reforms.plf_plfss_2025.cdhr import (
     contribution_differentielle_hauts_revenus_eligible,
     contribution_differentielle_hauts_revenus,
     contribution_exceptionnelle_hauts_revenus_majoration,
-    revenus_nets_apres_impot_menage
+    #revenus_nets_apres_impot_menage
+    impots_directs
 )
 
 
@@ -137,4 +138,5 @@ class PlfPlfss2025(Reform):
         self.add_variable(contribution_differentielle_hauts_revenus)
         self.add_variable(contribution_differentielle_hauts_revenus_decote)
         self.add_variable(contribution_exceptionnelle_hauts_revenus_majoration)
-        self.update_variable(revenus_nets_apres_impot_menage)
+        #self.update_variable(revenus_nets_apres_impot_menage)
+        self.update_variable(impots_directs)
diff --git a/openfisca_france_reforms/plf_plfss_2025/cdhr.py b/openfisca_france_reforms/plf_plfss_2025/cdhr.py
index c6b29138..0ebe2bac 100644
--- a/openfisca_france_reforms/plf_plfss_2025/cdhr.py
+++ b/openfisca_france_reforms/plf_plfss_2025/cdhr.py
@@ -209,31 +209,77 @@ class contribution_differentielle_hauts_revenus(Variable):
         return contribution_differentielle_hauts_revenus_eligible * contribution_differentielle_hauts_revenus_montant
 
 
-class revenus_nets_apres_impot_menage(Variable):
+# class revenus_nets_apres_impot_menage(Variable):
+#     value_type = float
+#     entity = Menage
+#     label = 'Revenus nets après impôts'
+#     definition_period = YEAR
+
+#     def formula_2025_01_01(menage, period):
+#         revenus_nets_menage = menage('revenus_nets_menage', period, options = [ADD])
+#         irpp_economique_i = menage.members.foyer_fiscal('irpp_economique', period)
+#         irpp_economique = menage.sum(irpp_economique_i, role = FoyerFiscal.DECLARANT_PRINCIPAL)
+
+#         contribution_differentielle_hauts_revenus_i = menage.members.foyer_fiscal('contribution_differentielle_hauts_revenus', period)
+#         contribution_differentielle_hauts_revenus = menage.sum(contribution_differentielle_hauts_revenus_i, role = FoyerFiscal.DECLARANT_PRINCIPAL)
+
+#         isf_ifi_i = menage.members.foyer_fiscal('isf_ifi', period)
+#         isf_ifi = menage.sum(isf_ifi_i, role = FoyerFiscal.DECLARANT_PRINCIPAL)
+
+#         return revenus_nets_menage + irpp_economique + isf_ifi - contribution_differentielle_hauts_revenus
+
+#     def formula_2024_01_01(menage, period):
+#         revenus_nets_menage = menage('revenus_nets_menage', period, options = [ADD])
+#         irpp_economique_i = menage.members.foyer_fiscal('irpp_economique', period)
+#         irpp_economique = menage.sum(irpp_economique_i, role = FoyerFiscal.DECLARANT_PRINCIPAL)
+
+#         isf_ifi_i = menage.members.foyer_fiscal('isf_ifi', period)
+#         isf_ifi = menage.sum(isf_ifi_i, role = FoyerFiscal.DECLARANT_PRINCIPAL)
+
+#         return revenus_nets_menage + irpp_economique + isf_ifi
+
+class impots_directs(Variable):
     value_type = float
     entity = Menage
-    label = 'Revenus nets après impôts'
+    label = 'Impôts directs'
+    reference = 'http://fr.wikipedia.org/wiki/Imp%C3%B4t_direct'
     definition_period = YEAR
 
-    def formula_2025_01_01(menage, period):
-        revenus_nets_menage = menage('revenus_nets_menage', period, options = [ADD])
+    def formula_2025_01_01(menage, period, parameters):
+        '''
+        Pour les impôts définis au niveau du foyer fiscal :
+        on prend en compte l'impôt des foyers fiscaux dont le déclarant principal est dans le ménage
+        '''
+
         irpp_economique_i = menage.members.foyer_fiscal('irpp_economique', period)
         irpp_economique = menage.sum(irpp_economique_i, role = FoyerFiscal.DECLARANT_PRINCIPAL)
 
+        isf_ifi_i = menage.members.foyer_fiscal('isf_ifi', period)
+        isf_ifi = menage.sum(isf_ifi_i, role = FoyerFiscal.DECLARANT_PRINCIPAL)
+
         contribution_differentielle_hauts_revenus_i = menage.members.foyer_fiscal('contribution_differentielle_hauts_revenus', period)
         contribution_differentielle_hauts_revenus = menage.sum(contribution_differentielle_hauts_revenus_i, role = FoyerFiscal.DECLARANT_PRINCIPAL)
 
-        isf_ifi_i = menage.members.foyer_fiscal('isf_ifi', period)
-        isf_ifi = menage.sum(isf_ifi_i, role = FoyerFiscal.DECLARANT_PRINCIPAL)
 
-        return revenus_nets_menage + irpp_economique + isf_ifi - contribution_differentielle_hauts_revenus
+        return (
+            irpp_economique
+            + isf_ifi
+            + contribution_differentielle_hauts_revenus
+            )
+
+    def formula(menage, period, parameters):
+        '''
+        Pour les impôts définis au niveau du foyer fiscal :
+        on prend en compte l'impôt des foyers fiscaux dont le déclarant principal est dans le ménage
+        '''
 
-    def formula_2024_01_01(menage, period):
-        revenus_nets_menage = menage('revenus_nets_menage', period, options = [ADD])
         irpp_economique_i = menage.members.foyer_fiscal('irpp_economique', period)
         irpp_economique = menage.sum(irpp_economique_i, role = FoyerFiscal.DECLARANT_PRINCIPAL)
 
         isf_ifi_i = menage.members.foyer_fiscal('isf_ifi', period)
         isf_ifi = menage.sum(isf_ifi_i, role = FoyerFiscal.DECLARANT_PRINCIPAL)
 
-        return revenus_nets_menage + irpp_economique + isf_ifi
\ No newline at end of file
+        return (
+            irpp_economique
+            + isf_ifi
+            )
\ No newline at end of file
-- 
GitLab