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

Ajoute les revenus non individualisables dans la base ressources du CF #1303

Merged
merged 6 commits into from
Apr 5, 2019
Merged
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
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 13 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,17 @@
# Changelog

## 41.2.0 [#1303](https://github.com/openfisca/openfisca-france/pull/1303)

* Amélioration de modélisation.
* Périodes concernées : toutes.
* Zones impactées :
- `prestations/prestations_familiales/base_ressources`
- `prestations/prestations_familiales/cf`
* Détails :
- Injecte les revenus fiscaux non individualisables dans la base ressources du CF
- Crée une variable `prestations_familiales_base_ressources_communes` pour mutualiser cette opération pour les différentes bases ressources des prestations familiales
- Renomme `cf_ressources` par `cf_base_ressources` et `cf_ressources_individu` par `cf_base_ressources_individu`.

## 41.1.0 [#1302](https://github.com/openfisca/openfisca-france/pull/1302)

* Revalorisation périodique.
Expand Down Expand Up @@ -49,7 +61,7 @@

* Amélioration technique **non rétrocompatible**
* Détails :
- Met à jour à la syntaxe Core v.29 (suivre le [guide de migration de Core](https://github.com/openfisca/openfisca-core/blob/232bca40e51c9eb5adaf030c70e0db362e84ec66/CHANGELOG.md#2900-843)).
- Met à jour à la syntaxe Core v.29 (suivre le [guide de migration de Core](https://github.com/openfisca/openfisca-core/blob/232bca40e51c9eb5adaf030c70e0db362e84ec66/CHANGELOG.md#2900-843)).

### 38.1.1 [#1291](https://github.com/openfisca/openfisca-france/pull/1291)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -154,43 +154,52 @@ def formula(foyer_fiscal, period):
)


class prestations_familiales_base_ressources(Variable):
class prestations_familiales_base_ressources_communes(Variable):
value_type = float
entity = Famille
label = u"Base ressource des prestations familiales"
label = u"Ressources non individualisables prises en compte pour les prestations familiales"
reference = [
u"Article D521-4 du Code de la sécurité sociale",
u"https://www.legifrance.gouv.fr/affichCodeArticle.do?idArticle=LEGIARTI000030678081&cidTexte=LEGITEXT000006073189&categorieLien=id"
]
definition_period = MONTH

def formula(famille, period):
'''
Base ressource des prestations familiales de la famille
'fam'
'''
# period_legacy = period.start.offset('first-of', 'month').period('year')
annee_fiscale_n_2 = period.n_2

base_ressources_i = famille.members('prestations_familiales_base_ressources_individu', period)
enfant_i = famille.members('est_enfant_dans_famille', period)
enfant_a_charge_i = famille.members('prestations_familiales_enfant_a_charge', period)
ressources_i = (not_(enfant_i) + enfant_a_charge_i) * base_ressources_i
base_ressources_i_total = famille.sum(ressources_i)

demandeur_declarant_principal = famille.demandeur.has_role(FoyerFiscal.DECLARANT_PRINCIPAL)
conjoint_declarant_principal = famille.conjoint.has_role(FoyerFiscal.DECLARANT_PRINCIPAL)

# Revenus du foyer fiscal
rev_coll = (
famille.demandeur.foyer_fiscal('rev_coll', annee_fiscale_n_2)
* demandeur_declarant_principal
+ famille.conjoint.foyer_fiscal('rev_coll', annee_fiscale_n_2)
* conjoint_declarant_principal
)

base_ressources = base_ressources_i_total + rev_coll
return base_ressources
return rev_coll


class prestations_familiales_base_ressources(Variable):
value_type = float
entity = Famille
label = u"Base ressource des prestations familiales"
reference = [
u"Article D521-4 du Code de la sécurité sociale",
u"https://www.legifrance.gouv.fr/affichCodeArticle.do?idArticle=LEGIARTI000030678081&cidTexte=LEGITEXT000006073189&categorieLien=id"
]
definition_period = MONTH

def formula(famille, period):
base_ressources_i = famille.members('prestations_familiales_base_ressources_individu', period)
enfant_i = famille.members('est_enfant_dans_famille', period)
enfant_a_charge_i = famille.members('prestations_familiales_enfant_a_charge', period)
ressources_i = (not_(enfant_i) + enfant_a_charge_i) * base_ressources_i
base_ressources_i_total = famille.sum(ressources_i)

ressources_communes = famille('prestations_familiales_base_ressources_communes', period)

return base_ressources_i_total + ressources_communes


############################################################################
Expand Down
15 changes: 8 additions & 7 deletions openfisca_france/model/prestations/prestations_familiales/cf.py
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ def formula(individu, period, parameters):
return condition_age * est_enfant_dans_famille


class cf_ressources_individu(Variable):
class cf_base_ressources_individu(Variable):
value_type = float
entity = Individu
label = u"Complément familial - Ressources de l'individu prises en compte"
Expand Down Expand Up @@ -164,16 +164,17 @@ def formula_2014_04_01(famille, period, parameters):
return plafond_base * pfam.cf.plafond_cf_majore


class cf_ressources(Variable):
class cf_base_ressources(Variable):
value_type = float
entity = Famille
label = u"Ressources prises en compte pour l'éligibilité au complément familial"
definition_period = MONTH

def formula(famille, period):
cf_ressources_individu_i = famille.members('cf_ressources_individu', period)
ressources = famille.sum(cf_ressources_individu_i)
return ressources
cf_base_ressources_individu_i = famille.members('cf_base_ressources_individu', period)
ressources_i_total = famille.sum(cf_base_ressources_individu_i)
ressources_communes = famille('prestations_familiales_base_ressources_communes', period)
return ressources_i_total + ressources_communes


class cf_eligibilite_base(Variable):
Expand Down Expand Up @@ -222,7 +223,7 @@ class cf_non_majore_avant_cumul(Variable):
def formula(famille, period, parameters):
eligibilite_base = famille('cf_eligibilite_base', period)
eligibilite_dom = famille('cf_eligibilite_dom', period)
ressources = famille('cf_ressources', period)
ressources = famille('cf_base_ressources', period)
plafond = famille('cf_plafond', period)

pfam = parameters(period).prestations.prestations_familiales
Expand Down Expand Up @@ -263,7 +264,7 @@ class cf_majore_avant_cumul(Variable):
def formula_2014_04_01(famille, period, parameters):
eligibilite_base = famille('cf_eligibilite_base', period)
eligibilite_dom = famille('cf_eligibilite_dom', period)
ressources = famille('cf_ressources', period)
ressources = famille('cf_base_ressources', period)
plafond_majore = famille('cf_majore_plafond', period)

pfam = parameters(period).prestations.prestations_familiales
Expand Down
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

setup(
name = "OpenFisca-France",
version = "41.1.0",
version = "41.2.0",
author = "OpenFisca Team",
author_email = "contact@openfisca.fr",
classifiers = [
Expand Down
9 changes: 9 additions & 0 deletions tests/formulas/cf.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
- name: revenus_fonciers_base_ressources_cf
description: Prise en compte des revenus fonciers dans la base ressources du complément familial
period: 2018-01
absolute_error_margin: 1
input:
revenu_categoriel_foncier:
2016: 20000
output:
cf_base_ressources: 20000