Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Synchro presta #2167

Open
wants to merge 26 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
82 changes: 43 additions & 39 deletions openfisca_france/model/prestations/aides_logement.py
Original file line number Diff line number Diff line change
Expand Up @@ -1220,59 +1220,63 @@ def formula(famille, period, parameters):
al_nb_pac = famille('al_nb_personnes_a_charge', period)
residence_dom = famille.demandeur.menage('residence_dom', period)

TF_metropole = (
al.al_loc2.tf.personnes_isolees * (not_(couple)) * (al_nb_pac == 0)
+ al.al_loc2.tf.couples_sans_enfant * (couple) * (al_nb_pac == 0)
+ al.al_loc2.tf.personnes_seules_couples_avec_1_enfant * (al_nb_pac == 1)
+ al.al_loc2.tf.personnes_seules_couples_avec_2_enfants * (al_nb_pac == 2)
+ al.al_loc2.tf.personnes_seules_couples_avec_3_enfants * (al_nb_pac == 3)
+ al.al_loc2.tf.personnes_seules_couples_avec_4_enfants * (al_nb_pac >= 4)
+ al.al_loc2.tf.variation_tf_par_enfant_supplementaire * (al_nb_pac > 4) * (al_nb_pac - 4)
metropole = al.al_loc2.tf.metropole
tf_metropole = (
metropole.personnes_isolees * (not_(couple)) * (al_nb_pac == 0)
+ metropole.couples_sans_enfant * (couple) * (al_nb_pac == 0)
+ metropole.personnes_seules_couples_avec_1_enfant * (al_nb_pac == 1)
+ metropole.personnes_seules_couples_avec_2_enfants * (al_nb_pac == 2)
+ metropole.personnes_seules_couples_avec_3_enfants * (al_nb_pac == 3)
+ metropole.personnes_seules_couples_avec_4_enfants * (al_nb_pac >= 4)
+ metropole.variation_tf_par_enfant_supplementaire * (al_nb_pac > 4) * (al_nb_pac - 4)
)

TF_dom = (
al.al_loc2.tf.dom.personnes_isolees * (not_(couple)) * (al_nb_pac == 0)
+ al.al_loc2.tf.dom.couples_sans_enfant * (couple) * (al_nb_pac == 0)
+ al.al_loc2.tf.dom.personnes_seules_couples_avec_1_enfant * (al_nb_pac == 1)
+ al.al_loc2.tf.dom.personnes_seules_couples_avec_2_enfants * (al_nb_pac == 2)
+ al.al_loc2.tf.dom.personnes_seules_couples_avec_3_enfants * (al_nb_pac == 3)
+ al.al_loc2.tf.dom.personnes_seules_couples_avec_4_enfants * (al_nb_pac == 4)
+ al.al_loc2.tf.dom.personnes_seules_couples_avec_5_enfants * (al_nb_pac == 5)
+ al.al_loc2.tf.dom.personnes_seules_couples_avec_6_enfants * (al_nb_pac >= 6)
dom = al.al_loc2.tf.dom
tf_dom = (
dom.personnes_isolees * (not_(couple)) * (al_nb_pac == 0)
+ dom.couples_sans_enfant * (couple) * (al_nb_pac == 0)
+ dom.personnes_seules_couples_avec_1_enfant * (al_nb_pac == 1)
+ dom.personnes_seules_couples_avec_2_enfants * (al_nb_pac == 2)
+ dom.personnes_seules_couples_avec_3_enfants * (al_nb_pac == 3)
+ dom.personnes_seules_couples_avec_4_enfants * (al_nb_pac == 4)
+ dom.personnes_seules_couples_avec_5_enfants * (al_nb_pac == 5)
+ dom.personnes_seules_couples_avec_6_enfants * (al_nb_pac >= 6)
)

return where(residence_dom, TF_dom, TF_metropole)
return where(residence_dom, tf_dom, tf_metropole)

def formula_2023_01_01(famille, period, parameters):
al = parameters(period).prestations_sociales.aides_logement.allocations_logement
couple = famille('al_couple', period)
al_nb_pac = famille('al_nb_personnes_a_charge', period)
residence_dom = famille.demandeur.menage('residence_dom', period)

TF_metropole = (
al.al_loc2.tf.personnes_isolees * (not_(couple)) * (al_nb_pac == 0)
+ al.al_loc2.tf.couples_sans_enfant * (couple) * (al_nb_pac == 0)
+ al.al_loc2.tf.personnes_seules_couples_avec_1_enfant * (al_nb_pac == 1)
+ al.al_loc2.tf.personnes_seules_couples_avec_2_enfants * (al_nb_pac == 2)
+ al.al_loc2.tf.personnes_seules_couples_avec_3_enfants * (al_nb_pac == 3)
+ al.al_loc2.tf.personnes_seules_couples_avec_4_enfants * (al_nb_pac >= 4)
+ al.al_loc2.tf.variation_tf_par_enfant_supplementaire * (al_nb_pac > 4) * (al_nb_pac - 4)
metropole = al.al_loc2.tf.metropole
tf_metropole = (
metropole.personnes_isolees * (not_(couple)) * (al_nb_pac == 0)
+ metropole.couples_sans_enfant * (couple) * (al_nb_pac == 0)
+ metropole.personnes_seules_couples_avec_1_enfant * (al_nb_pac == 1)
+ metropole.personnes_seules_couples_avec_2_enfants * (al_nb_pac == 2)
+ metropole.personnes_seules_couples_avec_3_enfants * (al_nb_pac == 3)
+ metropole.personnes_seules_couples_avec_4_enfants * (al_nb_pac >= 4)
+ metropole.variation_tf_par_enfant_supplementaire * (al_nb_pac > 4) * (al_nb_pac - 4)
)

TF_dom = (
al.al_loc2.tf.dom.personnes_isolees * (not_(couple)) * (al_nb_pac == 0)
+ al.al_loc2.tf.dom.couples_sans_enfant * (couple) * (al_nb_pac == 0)
+ al.al_loc2.tf.dom.personnes_seules_couples_avec_1_enfant * (al_nb_pac == 1)
+ al.al_loc2.tf.dom.personnes_seules_couples_avec_2_enfants * (al_nb_pac == 2)
+ al.al_loc2.tf.dom.personnes_seules_couples_avec_3_enfants * (al_nb_pac == 3)
+ al.al_loc2.tf.dom.personnes_seules_couples_avec_4_enfants * (al_nb_pac == 4)
+ al.al_loc2.tf.dom.personnes_seules_couples_avec_5_enfants * (al_nb_pac == 5)
+ al.al_loc2.tf.dom.personnes_seules_couples_avec_6_enfants * (al_nb_pac == 6)
+ al.al_loc2.tf.dom.personnes_seules_couples_avec_7_enfants * (al_nb_pac >= 7)
+ al.al_loc2.tf.dom.majoration_par_pac_supplementaire * (al_nb_pac > 7) * (al_nb_pac - 7)
dom = al.al_loc2.tf.dom
tf_dom = (
dom.personnes_isolees * (not_(couple)) * (al_nb_pac == 0)
+ dom.couples_sans_enfant * (couple) * (al_nb_pac == 0)
+ dom.personnes_seules_couples_avec_1_enfant * (al_nb_pac == 1)
+ dom.personnes_seules_couples_avec_2_enfants * (al_nb_pac == 2)
+ dom.personnes_seules_couples_avec_3_enfants * (al_nb_pac == 3)
+ dom.personnes_seules_couples_avec_4_enfants * (al_nb_pac == 4)
+ dom.personnes_seules_couples_avec_5_enfants * (al_nb_pac == 5)
+ dom.personnes_seules_couples_avec_6_enfants * (al_nb_pac == 6)
+ dom.personnes_seules_couples_avec_7_enfants * (al_nb_pac >= 7)
+ dom.majoration_par_pac_supplementaire * (al_nb_pac > 7) * (al_nb_pac - 7)
)

return where(residence_dom, TF_dom, TF_metropole)
return where(residence_dom, tf_dom, tf_metropole)


class aide_logement_taux_loyer(Variable):
Expand Down Expand Up @@ -1370,7 +1374,7 @@ class crds_logement(Variable):

def formula(famille, period, parameters):
aide_logement_montant_brut = famille('aide_logement_montant_brut_crds', period)
crds = parameters(period).prestations_sociales.prestations_familiales.prestations_generales.af.crds
crds = parameters(period).prelevements_sociaux.contributions_sociales.crds.taux_global
return -aide_logement_montant_brut * crds


Expand Down
6 changes: 3 additions & 3 deletions openfisca_france/model/prestations/logement_social.py
Original file line number Diff line number Diff line change
Expand Up @@ -144,7 +144,7 @@ class logement_social_plafond_ressources(Variable):
]

def formula(famille, period, parameters):
logement_social = parameters(period).prestations_sociales.aides_logement.logement_social.plai
plai = parameters(period).prestations_sociales.aides_logement.logement_social.plai

categorie_menage = famille('logement_social_categorie_menage', period)
zone_logement_social = famille.demandeur.menage('zone_logement_social', period)
Expand All @@ -153,8 +153,8 @@ def formula(famille, period, parameters):
# On détermine le nombre de personnes à charge supplémentaires au-dessus de 4
personnes_a_charge_supplementaires = (personnes_a_charge > 4) * (personnes_a_charge - 4)

plafond_ressources_par_categorie = logement_social.plafond_ressources.par_categorie_de_menage[categorie_menage]
par_personne_supplementaire = logement_social.plafond_ressources.par_personne_supplementaire[zone_logement_social]
plafond_ressources_par_categorie = plai.par_categorie_de_menage[categorie_menage]
par_personne_supplementaire = plai.par_personne_supplementaire[zone_logement_social]

return plafond_ressources_par_categorie[zone_logement_social] + (personnes_a_charge_supplementaires * par_personne_supplementaire)

Expand Down
20 changes: 12 additions & 8 deletions openfisca_france/model/prestations/prestations_familiales/paje.py
Original file line number Diff line number Diff line change
Expand Up @@ -122,6 +122,8 @@ def formula_2004(famille, period, parameters):

# Avant réforme d'avril 2014 (enfants nés avant avril 2014)
def plafond_avant_avril_2014():
if period.start >= Instant((2018, 1, 1)):
return 0
plafond_de_base = paje.paje_plaf.ne_adopte_avant_04_2014.plafond_ressources_0_enfant
maj_plafond_2_premiers_enfants = paje.paje_plaf.ne_adopte_avant_04_2014.majorations_enfants.premier_2eme_enfant * plafond_de_base
maj_plafond_par_enfant_sup = paje.paje_plaf.ne_adopte_avant_04_2014.majorations_enfants.troisieme_plus_enfant * plafond_de_base
Expand All @@ -137,17 +139,19 @@ def plafond_avant_avril_2014():

# A partir de la réforme de 2014 et jusqu'à la réforme de 2018 (enfants nés entre le 1er avril 2014 et le 1er avril 2018)
def plafond_taux_plein_2014_2018():
if period.start < Instant((2014, 4, 1)) or period.start >= Instant((2021, 4, 1)):
return plafond_apres_ajustement_2014_2018(0, 0, 0)
plafond_de_base = paje.paje_plaf.ne_adopte_04_2014_et_03_2018.taux_plein.plafond_ressources_0_enfant
maj_plafond_seul_biactif = paje.paje_plaf.ne_adopte_04_2014_et_03_2018.taux_plein.biactifs_parents_isoles
maj_plafond_par_enfant = plafond_de_base * paje.paje_plaf.ne_adopte_04_2014_et_03_2018.majorations_enfants.majoration_enfant_supp

return plafond_apres_ajustement_2014_2018(plafond_de_base, maj_plafond_par_enfant, maj_plafond_seul_biactif)

def plafond_taux_partiel_2014_2018():
if period.start < Instant((2014, 4, 1)) or period.start >= Instant((2021, 4, 1)):
return plafond_apres_ajustement_2014_2018(0, 0, 0)
plafond_de_base = paje.paje_plaf.ne_adopte_04_2014_et_03_2018.taux_partiel.plafond_ressources_0_enfant
maj_plafond_seul_biactif = paje.paje_plaf.ne_adopte_04_2014_et_03_2018.taux_partiel.biactifs_parents_isoles
maj_plafond_par_enfant = plafond_de_base * paje.paje_plaf.ne_adopte_04_2014_et_03_2018.majorations_enfants.majoration_enfant_supp

return plafond_apres_ajustement_2014_2018(plafond_de_base, maj_plafond_par_enfant, maj_plafond_seul_biactif)

def plafond_apres_ajustement_2014_2018(plafond_de_base, maj_plafond_par_enfant, maj_plafond_seul_biactif):
Expand Down Expand Up @@ -447,15 +451,15 @@ def formula_2017_04_01(famille, period, parameters):
# Les plafonds de ressource

seuil_revenus_1 = (
(nombre_enfants == 1) * paje.plaf_cmg.premier_plafond_ne_adopte_avant_04_2014.enfant
+ (nombre_enfants >= 2) * paje.plaf_cmg.premier_plafond_ne_adopte_avant_04_2014.deux_enfants
+ max_(nombre_enfants - 2, 0) * paje.plaf_cmg.premier_plafond_ne_adopte_avant_04_2014.majoration_enfant_supp
(nombre_enfants == 1) * paje.plaf_cmg.premier_plafond_ne_adopte_apres_04_2014.enfant
+ (nombre_enfants >= 2) * paje.plaf_cmg.premier_plafond_ne_adopte_apres_04_2014.deux_enfants
+ max_(nombre_enfants - 2, 0) * paje.plaf_cmg.premier_plafond_ne_adopte_apres_04_2014.majoration_enfant_supp
)

seuil_revenus_2 = (
(nombre_enfants == 1) * paje.plaf_cmg.deuxieme_plafond_ne_adopte_avant_04_2014.enfant
+ (nombre_enfants >= 2) * paje.plaf_cmg.deuxieme_plafond_ne_adopte_avant_04_2014.deux_enfants
+ max_(nombre_enfants - 2, 0) * paje.plaf_cmg.deuxieme_plafond_ne_adopte_avant_04_2014.majoration_enfant_supp
(nombre_enfants == 1) * paje.plaf_cmg.deuxieme_plafond_ne_adopte_apres_04_2014.enfant
+ (nombre_enfants >= 2) * paje.plaf_cmg.deuxieme_plafond_ne_adopte_apres_04_2014.deux_enfants
+ max_(nombre_enfants - 2, 0) * paje.plaf_cmg.deuxieme_plafond_ne_adopte_apres_04_2014.majoration_enfant_supp
)

# Si vous bénéficiez du PreParE taux partiel (= vous travaillez entre 50 et 80% de la durée du travail fixée
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ def formula(famille, period, parameters):
couple = famille('al_couple', period)
zone_apl = famille.demandeur.menage('zone_apl', period)

plafond_ressources = rls.plafond_ressources.par_zone[zone_apl]
plafond_ressources = rls.plafond_ressources[zone_apl]

plafond_personne_seule = plafond_ressources.personnes_seules
plafond_couple = plafond_ressources.couples
Expand Down Expand Up @@ -69,7 +69,7 @@ def formula(famille, period, parameters):
couple = famille('al_couple', period)
zone_apl = famille.demandeur.menage('zone_apl', period)

montant = rls.montant.par_zone[zone_apl]
montant = rls.montant[zone_apl]

montant_personne_seule = montant.personnes_seules
montant_couple = montant.couples
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
description: Revalorisation du salaire de référence pour le calcul FNE des Allocations chômage pour les personnes en préretraite
description: Revalorisation du salaire de référence pour le calcul FNE des allocations chômage pour les personnes en préretraite
metadata:
short_label: Revalorisation FNE
label_en: Indexation of reference wage for FNE early retirement benefit
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
description: Majoration forfaitaire comptabilisée pour tous dans le calcul des aides au logement au titre des charges du logement
metadata:
documentation_start: true
short_label: Majoration forfaitaire pour les charges du logement
label_en: Lump sum extra allowance for charges
order:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -88,11 +88,15 @@ metadata:
title: Arrêté du 27/09/2019, art. 16
href: https://www.legifrance.gouv.fr/loda/article_lc/LEGIARTI000039160757/2019-10-08
2020-10-01:
title: Arrêté du 27/09/2019, art. 16
href: https://www.legifrance.gouv.fr/loda/article_lc/LEGIARTI000042378438/2020-10-01
- title: Arrêté du 25/09/2020, art. 1
href: https://www.legifrance.gouv.fr/jorf/id/JORFTEXT000042376745
- title: Arrêté du 27/09/2019, art. 16
href: https://www.legifrance.gouv.fr/loda/article_lc/LEGIARTI000042378438/2020-10-01
2021-10-01:
title: Arrêté du 27/09/2019, art. 16
href: https://www.legifrance.gouv.fr/loda/article_lc/LEGIARTI000046206205/2021-10-01/
- title: Arrêté du 23/09/2021, art. 1
href: https://www.legifrance.gouv.fr/jorf/id/JORFTEXT000044126838
- title: Arrêté du 27/09/2019, art. 16
href: https://www.legifrance.gouv.fr/loda/article_lc/LEGIARTI000046206205/2021-10-01/
2022-07-01:
title: Arrêté du 27/09/2019, article 16, 2°
href: https://www.legifrance.gouv.fr/loda/article_lc/LEGIARTI000046206205/2022-07-01
Expand All @@ -115,10 +119,9 @@ metadata:
2015-10-01: "2015-10-21"
2017-10-01: "2017-09-29"
2019-10-01: "2019-10-01"
2020-10-01: "2020-09-30"
2021-10-01: "2021-09-30"
notes:
2015-10-01:
- title: Idem en 2016
documentation: |-
Notes :
(1) Également applicable aux personnes âgées ou handicapées adultes hébergées à titre onéreux chez des particuliers.
(2) Les majorations sont les mêmes dans le cas général que dans le cas des colocataires ou des propriétaires.
documentation: Les majorations sont les mêmes dans le cas général que dans le cas des colocataires ou des propriétaires.
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,8 @@ values:
value: 26.46
2014-10-01:
value: 26.61
2015-10-01:
value: 26.63
2017-10-01:
value: 26.83
2019-10-01:
Expand Down Expand Up @@ -77,20 +79,26 @@ metadata:
title: Arrêté du 28/12/2012, art. 7
2014-10-01:
title: Arrêté du 27/10/2014, art. 4
2015-10-01:
title: Arrêté du 16/10/2015, art. 1
2017-10-01:
title: Arrêté du 28/09/2017, art. 5
href: https://www.legifrance.gouv.fr/eli/arrete/2017/9/28/TERL1725443A/jo/article_5
2019-10-01:
title: Arrêté du 27/09/2019, art. 16
href: https://www.legifrance.gouv.fr/loda/article_lc/LEGIARTI000039160757/2019-10-08
2020-10-01:
title: Arrêté du 27/09/2019, art. 16
href: https://www.legifrance.gouv.fr/loda/article_lc/LEGIARTI000042378438/2020-10-01
- title: Arrêté du 25/09/2020, art. 1
href: https://www.legifrance.gouv.fr/jorf/id/JORFTEXT000042376745
- title: Arrêté du 27/09/2019, art. 16
href: https://www.legifrance.gouv.fr/loda/article_lc/LEGIARTI000042378438/2020-10-01
2021-10-01:
title: Arrêté du 27/09/2019, art. 16
href: https://www.legifrance.gouv.fr/loda/article_lc/LEGIARTI000046206205/2021-10-01/
- title: Arrêté du 23/09/2021, art. 1
href: https://www.legifrance.gouv.fr/jorf/id/JORFTEXT000044126838
- title: Arrêté du 27/09/2019, art. 16
href: https://www.legifrance.gouv.fr/loda/article_lc/LEGIARTI000046206205/2021-10-01/
2022-07-01:
title: Arrêté du 27/09/2019, art. 16
title: Arrêté du 27/09/2019, article 16, 2°
href: https://www.legifrance.gouv.fr/loda/article_lc/LEGIARTI000046206205/2022-07-01
official_journal_date:
1994-07-01: "1994-11-16"
Expand All @@ -108,9 +116,12 @@ metadata:
2012-01-01: "2011-12-31"
2013-01-01: "2012-12-30"
2014-10-01: "2014-10-28"
2015-10-01: "2015-10-21"
2017-10-01: "2017-09-29"
2019-10-01: "2019-10-01"
documentation: |-
Notes :
(1) Également applicable aux personnes âgées ou handicapées adultes hébergées à titre onéreux chez des particuliers.
(2) Les majorations sont les mêmes dans le cas général que dans le cas des colocataires ou des propriétaires.
2020-10-01: "2020-09-30"
2021-10-01: "2021-09-30"
notes:
2015-10-01:
- title: Idem en 2016
documentation: Également applicable aux personnes âgées ou handicapées adultes hébergées à titre onéreux chez des particuliers.
Original file line number Diff line number Diff line change
Expand Up @@ -88,11 +88,15 @@ metadata:
title: Arrêté du 27/09/2019, art. 16
href: https://www.legifrance.gouv.fr/loda/article_lc/LEGIARTI000039160757/2019-10-08
2020-10-01:
title: Arrêté du 27/09/2019, art. 16
href: https://www.legifrance.gouv.fr/loda/article_lc/LEGIARTI000042378438/2020-10-01
- title: Arrêté du 25/09/2020, art. 1
href: https://www.legifrance.gouv.fr/jorf/id/JORFTEXT000042376745
- title: Arrêté du 27/09/2019, art. 16
href: https://www.legifrance.gouv.fr/loda/article_lc/LEGIARTI000042378438/2020-10-01
2021-10-01:
title: Arrêté du 27/09/2019, art. 16
href: https://www.legifrance.gouv.fr/loda/article_lc/LEGIARTI000046206205/2021-10-01/
- title: Arrêté du 23/09/2021, art. 1
href: https://www.legifrance.gouv.fr/jorf/id/JORFTEXT000044126838
- title: Arrêté du 27/09/2019, art. 16
href: https://www.legifrance.gouv.fr/loda/article_lc/LEGIARTI000046206205/2021-10-01/
2022-07-01:
title: Arrêté du 27/09/2019, article 16, 2°
href: https://www.legifrance.gouv.fr/loda/article_lc/LEGIARTI000046206205/2022-07-01
Expand All @@ -115,10 +119,8 @@ metadata:
2015-10-01: "2015-10-21"
2017-10-01: "2017-09-29"
2019-10-01: "2019-10-01"
2020-10-01: "2020-09-30"
2021-10-01: "2021-09-30"
notes:
2015-10-01:
- title: Idem en 2016
documentation: |-
Notes :
(1) Également applicable aux personnes âgées ou handicapées adultes hébergées à titre onéreux chez des particuliers.
(2) Les majorations sont les mêmes dans le cas général que dans le cas des colocataires ou des propriétaires.
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
description: Mesure du loyer autres, dont les étudiants en chambres réhabilitées de résidences universitaires, allocations logement (AL)
description: Mesure du loyer autres, dont les étudiants en chambres réhabilitées de résidences universitaires
metadata:
short_label: Autres
label_en: Measure of rent for students living in university residences
Expand Down
Loading
Loading