From 4d118c37c164ed8c7245edbdc272c5e2f7caad73 Mon Sep 17 00:00:00 2001 From: Shamzic Date: Fri, 29 Nov 2024 13:22:43 +0100 Subject: [PATCH] =?UTF-8?q?feat:=20ajoute=20l'aide=20=C3=A0=20l'alimentati?= =?UTF-8?q?on=20pour=20les=20=C3=A9tudiants=20=C3=A9loign=C3=A9s?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 12 +++++ openfisca_france/model/base/localisation.py | 25 +++++++++++ .../aide_alimentation_etudiants_eloignes.py | 45 +++++++++++++++++++ .../montant_etudiant_drom_boursier.yaml | 12 +++++ .../montant_etudiant_drom_non_boursier.yaml | 12 +++++ .../montant_etudiant_standard_boursier.yaml | 12 +++++ ...ontant_etudiant_standard_non_boursier.yaml | 9 ++++ .../prestations_sociales/index.yaml | 1 + pyproject.toml | 2 +- .../aide_alimentation_etudiants_eloignes.yaml | 8 ++++ 10 files changed, 137 insertions(+), 1 deletion(-) create mode 100644 openfisca_france/model/base/localisation.py create mode 100644 openfisca_france/model/prestations/aide_alimentation_etudiants_eloignes.py create mode 100644 openfisca_france/parameters/prestations_sociales/aide_alimentation_etudiants_eloignes/montant_etudiant_drom_boursier.yaml create mode 100644 openfisca_france/parameters/prestations_sociales/aide_alimentation_etudiants_eloignes/montant_etudiant_drom_non_boursier.yaml create mode 100644 openfisca_france/parameters/prestations_sociales/aide_alimentation_etudiants_eloignes/montant_etudiant_standard_boursier.yaml create mode 100644 openfisca_france/parameters/prestations_sociales/aide_alimentation_etudiants_eloignes/montant_etudiant_standard_non_boursier.yaml create mode 100644 tests/prestations/aide_alimentation_etudiants_eloignes.yaml diff --git a/CHANGELOG.md b/CHANGELOG.md index 4a7225fdec..6150020669 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,17 @@ # Changelog +### 169.8.0 [2395](https://github.com/openfisca/openfisca-france/pull/2395) + +* Évolution du système socio-fiscal. +* Périodes concernées : à partir du 01/02/2025. +* Zones impactées : + - `model/prestations/aide_alimentation_etudiants_eloignes.py` + - `model/base/localisation.py` + - `parameters/prestations_sociales/aide_alimentation_etudiants_eloignes/` +* Détails : + - Ajoute l'aide financière pour les étudiants éloignés des restaurants universitaires + - Date d'entrée en vigueur au 01/02/2025 + ### 169.7.1 [2394](https://github.com/openfisca/openfisca-france/pull/2394) * Évolution du système socio-fiscal. diff --git a/openfisca_france/model/base/localisation.py b/openfisca_france/model/base/localisation.py new file mode 100644 index 0000000000..5d51716a0f --- /dev/null +++ b/openfisca_france/model/base/localisation.py @@ -0,0 +1,25 @@ +from openfisca_core.model_api import Variable +from openfisca_france.entities import Individu +from openfisca_core.periods import MONTH +from numpy.core.defchararray import startswith + +drom_codes = [ + b'971', # Guadeloupe + b'972', # Martinique + b'973', # Guyane + b'974', # La Réunion + b'976' # Mayotte + ] + + +class localisation_DROM_aide_alimentation_etudiants_eloignes(Variable): + value_type = bool + entity = Individu + definition_period = MONTH + label = "Indique si l'individu réside dans un des DROM concernés par les montants spéciaux pour l'aide alimentaire étudiants éloignés" + + def formula(individu, period): + depcom = individu.menage('depcom', period) + eligibilite_geographique = sum([startswith(depcom, code_departement) for code_departement in drom_codes]) + + return eligibilite_geographique > 0 diff --git a/openfisca_france/model/prestations/aide_alimentation_etudiants_eloignes.py b/openfisca_france/model/prestations/aide_alimentation_etudiants_eloignes.py new file mode 100644 index 0000000000..d9b048efe0 --- /dev/null +++ b/openfisca_france/model/prestations/aide_alimentation_etudiants_eloignes.py @@ -0,0 +1,45 @@ +from openfisca_core.model_api import Variable, select +from openfisca_france.entities import Individu +from openfisca_core.periods import MONTH + + +class aide_alimentation_etudiants_eloignes(Variable): + value_type = float + entity = Individu + definition_period = MONTH + label = 'Aide financière pour les étudiants éloignés des restaurants universitaires, avec des montants majorés pour les DROM.' + reference = [ + 'https://www.legifrance.gouv.fr/loda/id/JORFTEXT000050660003', + 'https://www.legifrance.gouv.fr/loda/id/JORFTEXT000050659996', + ] + + def formula(individu, period, parameters): + etudiant = individu('etudiant', period) + boursier = individu('boursier', period) + resident_drom = individu('localisation_DROM_aide_alimentation_etudiants_eloignes', period) + + non_boursier = ~boursier + resident_hors_drom = ~resident_drom + + P = parameters(period).prestations_sociales.aide_alimentation_etudiants_eloignes + montant_standard_boursier = P.montant_etudiant_standard_boursier + montant_standard_non_boursier = P.montant_etudiant_standard_non_boursier + montant_drom_boursier = P.montant_etudiant_drom_boursier + montant_drom_non_boursier = P.montant_etudiant_drom_non_boursier + + conditions = [ + resident_drom & boursier, + resident_drom & non_boursier, + resident_hors_drom & boursier, + resident_hors_drom & non_boursier, + ] + + montants = [ + montant_drom_boursier, + montant_drom_non_boursier, + montant_standard_boursier, + montant_standard_non_boursier, + ] + + montant = select(conditions, montants, default=0) + return etudiant * montant diff --git a/openfisca_france/parameters/prestations_sociales/aide_alimentation_etudiants_eloignes/montant_etudiant_drom_boursier.yaml b/openfisca_france/parameters/prestations_sociales/aide_alimentation_etudiants_eloignes/montant_etudiant_drom_boursier.yaml new file mode 100644 index 0000000000..da519d238c --- /dev/null +++ b/openfisca_france/parameters/prestations_sociales/aide_alimentation_etudiants_eloignes/montant_etudiant_drom_boursier.yaml @@ -0,0 +1,12 @@ +description: Montant pour un étudiant éloigné boursier en DROM +values: + 2025-02-01: + value: 50 +metadata: + short_label: Montant étudiant éloigné boursier en DROM + reference: + 2025-02-01: + title: "Arrêté du 21 novembre 2024 fixant les montants de l'aide financière prévue à l'article L. 822-1-1 du code de l'éducation" + href: https://www.legifrance.gouv.fr/loda/id/JORFTEXT000050660003 + official_journal_date: + 2025-02-01: "2024-11-26" diff --git a/openfisca_france/parameters/prestations_sociales/aide_alimentation_etudiants_eloignes/montant_etudiant_drom_non_boursier.yaml b/openfisca_france/parameters/prestations_sociales/aide_alimentation_etudiants_eloignes/montant_etudiant_drom_non_boursier.yaml new file mode 100644 index 0000000000..9e40949c5a --- /dev/null +++ b/openfisca_france/parameters/prestations_sociales/aide_alimentation_etudiants_eloignes/montant_etudiant_drom_non_boursier.yaml @@ -0,0 +1,12 @@ +description: Montant pour un étudiant éloigné non boursier en DROM +values: + 2025-02-01: + value: 30 +metadata: + short_label: Montant étudiant éloigné non boursier en DROM + reference: + 2025-02-01: + title: "Arrêté du 21 novembre 2024 fixant les montants de l'aide financière prévue à l'article L. 822-1-1 du code de l'éducation" + href: https://www.legifrance.gouv.fr/loda/id/JORFTEXT000050660003 + official_journal_date: + 2025-02-01: "2024-11-26" diff --git a/openfisca_france/parameters/prestations_sociales/aide_alimentation_etudiants_eloignes/montant_etudiant_standard_boursier.yaml b/openfisca_france/parameters/prestations_sociales/aide_alimentation_etudiants_eloignes/montant_etudiant_standard_boursier.yaml new file mode 100644 index 0000000000..0dce6b4f38 --- /dev/null +++ b/openfisca_france/parameters/prestations_sociales/aide_alimentation_etudiants_eloignes/montant_etudiant_standard_boursier.yaml @@ -0,0 +1,12 @@ +description: Montant standard pour un étudiant éloigné boursier hors DROM +values: + 2025-02-01: + value: 40 +metadata: + short_label: Montant standard étudiant éloigné boursier hors DROM + reference: + 2025-02-01: + title: "Arrêté du 21 novembre 2024 fixant les montants de l'aide financière prévue à l'article L. 822-1-1 du code de l'éducation" + href: https://www.legifrance.gouv.fr/loda/id/JORFTEXT000050660003 + official_journal_date: + 2025-02-01: "2024-11-26" diff --git a/openfisca_france/parameters/prestations_sociales/aide_alimentation_etudiants_eloignes/montant_etudiant_standard_non_boursier.yaml b/openfisca_france/parameters/prestations_sociales/aide_alimentation_etudiants_eloignes/montant_etudiant_standard_non_boursier.yaml new file mode 100644 index 0000000000..adfc734d80 --- /dev/null +++ b/openfisca_france/parameters/prestations_sociales/aide_alimentation_etudiants_eloignes/montant_etudiant_standard_non_boursier.yaml @@ -0,0 +1,9 @@ +description: Montant pour un étudiant éloigné non boursier hors DROM +values: + 2025-02-01: + value: 20 +metadata: + reference: + 2025-02-01: + title: "Arrêté du 21 novembre 2024 fixant les montants de l'aide financière prévue à l'article L. 822-1-1 du code de l'éducation" + href: https://www.legifrance.gouv.fr/loda/id/JORFTEXT000050660003 diff --git a/openfisca_france/parameters/prestations_sociales/index.yaml b/openfisca_france/parameters/prestations_sociales/index.yaml index a311365977..70c14de8ee 100644 --- a/openfisca_france/parameters/prestations_sociales/index.yaml +++ b/openfisca_france/parameters/prestations_sociales/index.yaml @@ -9,3 +9,4 @@ metadata: - solidarite_insertion - transport - education + - aides_alimentation_etudiants_eloignes diff --git a/pyproject.toml b/pyproject.toml index c51ffb0fe0..faacf1a88f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "OpenFisca-France" -version = "169.7.1" +version = "169.8.0" description = "OpenFisca Rules as Code model for France." readme = "README.md" keywords = ["microsimulation", "tax", "benefit", "rac", "rules-as-code", "france"] diff --git a/tests/prestations/aide_alimentation_etudiants_eloignes.yaml b/tests/prestations/aide_alimentation_etudiants_eloignes.yaml new file mode 100644 index 0000000000..5ad5ce79f4 --- /dev/null +++ b/tests/prestations/aide_alimentation_etudiants_eloignes.yaml @@ -0,0 +1,8 @@ +- name: "Aide alimentation étudiants éloignés" + period: 2025-02 + input: + etudiant: [true, true, true, true, true, false, false, false, false] + boursier: [true, true, false, true, false, true, false, true, false] + depcom: [97605, 97105, 97411, 75056, 69123, 97601, 97105, 97411, 75056] + output: + aide_alimentation_etudiants_eloignes: [50, 50, 30, 40, 20, 0, 0, 0, 0]