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

Ajout du calcul d'eligibilité à l'aide aeeh #1468

Open
wants to merge 19 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
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
from openfisca_france.model.base import *
from openfisca_france.model.caracteristiques_socio_demographiques.logement import TypesLieuResidence


class aeeh_niveau_handicap(Variable):
Expand Down Expand Up @@ -55,7 +56,7 @@ def formula_2006_01_01(famille, period, parameters):
+ (niveau_handicap == 6) * majoration._children['6e_categorie'] * isole
) + (niveau_handicap == 6) * complement_d_allocation._children['6e_categorie_1']

montant_total = famille.sum(montant_par_enfant, role = Famille.ENFANT)
montant_total = famille.sum(montant_par_enfant, role=Famille.ENFANT)

# L'attribution de l'AEEH de base et de ses compléments éventuels ne fait pas obstacle au
# versement des prestations familiales.
Expand Down Expand Up @@ -104,3 +105,53 @@ def formula_2002_04_01(famille, period, parameters):

montant_total = famille.sum(montant_par_enfant, role = Famille.ENFANT)
return montant_total
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Le montant d'aeeh n'est-il pas conditionné au fait d'être éligible ? 🤔
Ajouter la condition en vérifiant qu'il n'y a pas de redondance dans la formule (sur l'âge, ...) ?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

service-public indique des conditions de revenus :

Il ne doit pas percevoir de revenus professionnels supérieurs à 55 % du Smic mensuel brut, soit 855,02 €

Ces conditions n'ont pas été listées comme prioritaires par le métier du CD28. Faut-il néanmoins les ajouter ? 🧐



class besoin_educatif_particulier(Variable):
value_type = bool
entity = Individu
label = "Enfant possède une reconnaissance d’un besoin éducatif particulier"
definition_period = MONTH


class aeeh_eligible(Variable):
value_type = bool
entity = Famille
label = "Éligibilité à l'allocation d'éducation de l'enfant handicapé (AEEH)"
reference = [
"https://www.legifrance.gouv.fr/codes/article_lc/LEGIARTI000006743351/",
"https://www.legifrance.gouv.fr/codes/section_lc/LEGITEXT000006073189/LEGISCTA000006156691/"
]
documentation = """
L’Allocation d’éducation de l’enfant handicapé (AEEH) est une prestation familiale destinée, sous conditions, aux personnes qui ont à leur charge et à domicile un enfant de moins de 21 ans en situation de handicap.
L’attribution de cette aide fait l’objet d’une évaluation préalable.

"""
definition_period = MONTH
set_input = set_input_divide_by_period
calculate_output = calculate_output_add

def formula_2005_12_20(famille, period, parameters):
age = famille.members('age', period)
taux_incapacite = famille.members('taux_incapacite', period)
besoin_educatif_particulier = famille.members('besoin_educatif_particulier', period)

aeeh_parameters = parameters(period).prestations.prestations_familiales.aeeh
residence = famille.members.menage('residence', period)

condition_age = (age < aeeh_parameters.age_maximum_de_l_enfant)
Copy link
Contributor

@sandcha sandcha Jul 23, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Renommer age_maximum_de_l_enfant en age_maximum_enfant ? Cela aurait néanmoins pour effet d'être non rétro compatible (bump majeur à faire). Nous pouvons aussi attendre le moment de l'harmonisation des paramètres des prestations sociales avec les barèmes IPP pour rassembler plusieurs renommages sous le même bump.

condition_taux_incapacite = (
(
taux_incapacite >= aeeh_parameters.taux_incapacite_maximal.taux_incapacite_maximal
) + (
(
taux_incapacite >= aeeh_parameters.taux_incapacite_minimal.taux_incapacite_minimal
) * (
taux_incapacite < aeeh_parameters.taux_incapacite_maximal.taux_incapacite_maximal
) * besoin_educatif_particulier
)
)

condition_residence_FR = False if residence == TypesLieuResidence.non_renseigne else True
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Appliquer une syntaxe vectorielle ?

Suggested change
condition_residence_FR = False if residence == TypesLieuResidence.non_renseigne else True
condition_residence_FR = not_(residence == TypesLieuResidence.non_renseigne)

en important not_ en en-tête du fichier.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@guillett Que conseillerais-tu comme variable pour signifier la résidence en France ?


return condition_age * condition_taux_incapacite * condition_residence_FR
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
taux_incapacite_maximal:
reference: https://www.legifrance.gouv.fr/codes/section_lc/LEGITEXT000006073189/LEGISCTA000006156691/#LEGIARTI000006750709
description: Taux d'incapacité maximal au dessous duquel l'enfant peut prétendre à l'aeeh
values:
2005-12-20:
value: 0.8
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
taux_incapacite_minimal:
reference: https://www.legifrance.gouv.fr/codes/section_lc/LEGITEXT000006073189/LEGISCTA000006156691/#LEGIARTI000006750709
description: Taux d'incapacité minimal à partir duquel l'enfant peut prétendre à l'aeeh
values:
2005-12-20:
value: 0.5
77 changes: 77 additions & 0 deletions tests/formulas/test_aeeh_eligible.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
- name: Éligibilité à l'aide nationale AEEH
period: 2020-10
input:
individus:
p1:
age: 19
taux_incapacite: 0.81
menage:
residence: metropole
output:
aeeh_eligible: True

- name: Éligibilité à l'aide nationale AEEH avec besoin educatif particulier
period: 2020-10
input:
individus:
p1:
age: 19
taux_incapacite: 0.70
besoin_educatif_particulier:
2020-10: True
menage:
residence: metropole
output:
aeeh_eligible: True

- name: Non éligibilité à l'aide nationale AEEH car taux_incapacité trop faible
period: 2020-10
input:
individus:
p1:
age: 19
taux_incapacite: 0.48
besoin_educatif_particulier:
2020-01: False
menage:
residence: metropole
output:
aeeh_eligible: False

- name: Non éligibilité à l'aide nationale AEEH car trop âgé
period: 2020-10
input:
individus:
p1:
age: 29
taux_incapacite: 0.81
menage:
residence: metropole
output:
aeeh_eligible: False

- name: Non éligibilité à l'aide nationale AEEH car résidence hors France
period: 2020-10
input:
individus:
p1:
age: 19
taux_incapacite: 0.81
menage:
residence: non_renseigne
output:
aeeh_eligible: False

- name: Non éligibilité à l'aide nationale AEEH car taux < 80% mais pas besoin educatif
period: 2020-10
input:
individus:
p1:
age: 19
taux_incapacite: 0.78
besoin_educatif_particulier:
2020-01: False
menage:
residence: metropole
output:
aeeh_eligible: False