Skip to content
Snippets Groups Projects
Commit 094d2945 authored by clallemand's avatar clallemand
Browse files

fix cdhr changement décompo

parent 62c9cf77
No related branches found
No related tags found
No related merge requests found
......@@ -14,7 +14,7 @@ from openfisca_france_reforms.plf_plfss_2025.cdhr import (
contribution_differentielle_hauts_revenus_eligible,
contribution_differentielle_hauts_revenus,
contribution_exceptionnelle_hauts_revenus_majoration,
impots_directs
revenus_nets_apres_impot_menage
)
......@@ -137,4 +137,4 @@ 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(impots_directs)
self.update_variable(revenus_nets_apres_impot_menage)
from openfisca_france.model.base import calculate_output_divide, FoyerFiscal, max_, Variable, YEAR, Menage
from openfisca_france.model.base import calculate_output_divide, FoyerFiscal, max_, Variable, YEAR, Menage, ADD
......@@ -208,70 +208,32 @@ class contribution_differentielle_hauts_revenus(Variable):
return contribution_differentielle_hauts_revenus_eligible * contribution_differentielle_hauts_revenus_montant
class impots_directs(Variable):
class revenus_nets_apres_impot_menage(Variable):
value_type = float
entity = Menage
label = 'Impôts directs'
reference = 'http://fr.wikipedia.org/wiki/Imp%C3%B4t_direct'
label = 'Revenus nets après impôts'
definition_period = YEAR
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
'''
taxe_habitation = menage('taxe_habitation', period)
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)
# On comptabilise ir_pv_immo ici directement, et non pas dans la variable 'impot_revenu_restant_a_payer', car administrativement, cet impôt n'est pas dans l'impot_revenu_restant_a_payer, et n'est déclaré dans le formulaire 2042C que pour calculer le revenu fiscal de référence. On colle à la définition administrative, afin d'avoir une variable 'impot_revenu_restant_a_payer' qui soit comparable à l'IR du simulateur en ligne de la DGFiP
ir_pv_immo_i = menage.members.foyer_fiscal('ir_pv_immo', period)
ir_pv_immo = menage.sum(ir_pv_immo_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)
prelevement_liberatoire_autoentrepreneur_i = menage.members.foyer_fiscal('microsocial', period)
prelevement_liberatoire_autoentrepreneur = menage.sum(prelevement_liberatoire_autoentrepreneur_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 (
taxe_habitation
+ irpp_economique
+ ir_pv_immo
+ isf_ifi
+ prelevement_liberatoire_autoentrepreneur
- contribution_differentielle_hauts_revenus # en négatif car les autres dispositifs sont en négatif
)
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
'''
taxe_habitation = menage('taxe_habitation', period)
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)
# On comptabilise ir_pv_immo ici directement, et non pas dans la variable 'impot_revenu_restant_a_payer', car administrativement, cet impôt n'est pas dans l'impot_revenu_restant_a_payer, et n'est déclaré dans le formulaire 2042C que pour calculer le revenu fiscal de référence. On colle à la définition administrative, afin d'avoir une variable 'impot_revenu_restant_a_payer' qui soit comparable à l'IR du simulateur en ligne de la DGFiP
ir_pv_immo_i = menage.members.foyer_fiscal('ir_pv_immo', period)
ir_pv_immo = menage.sum(ir_pv_immo_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)
prelevement_liberatoire_autoentrepreneur_i = menage.members.foyer_fiscal('microsocial', period)
prelevement_liberatoire_autoentrepreneur = menage.sum(prelevement_liberatoire_autoentrepreneur_i, role = FoyerFiscal.DECLARANT_PRINCIPAL)
return (
taxe_habitation
+ irpp_economique
+ ir_pv_immo
+ isf_ifi
+ prelevement_liberatoire_autoentrepreneur
)
\ No newline at end of file
return revenus_nets_menage + irpp_economique + isf_ifi
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment