diff --git a/CHANGELOG.md b/CHANGELOG.md index 2139cd9a65..1d349fddbf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,14 @@ # Changelog +### 155.2.5 [2279](https://github.com/openfisca/openfisca-france/pull/2328) + +* Évolution du système socio-fiscal. +* Périodes concernées : Toujours +* Zones impactées : + - `openfisca_france/model/prestations/minima_sociaux/ppa.py` +* Détails : + - Les apprenants (etudiants, apprentis et stagiaires) ne sont éligibles à la prime d'activité que s'ils ont des revenus professionnels qui dépassent un seuil. Cet aspect était bien pris en compte pour les étudiants, et desormais pour les apprentis et les stagiaires aussi. + ### 155.2.4 [2279](https://github.com/openfisca/openfisca-france/pull/2279) * Évolution du système socio-fiscal. diff --git a/openfisca_france/model/prestations/minima_sociaux/ppa.py b/openfisca_france/model/prestations/minima_sociaux/ppa.py index d80622fdcb..3fca77e1ce 100644 --- a/openfisca_france/model/prestations/minima_sociaux/ppa.py +++ b/openfisca_france/model/prestations/minima_sociaux/ppa.py @@ -19,10 +19,10 @@ def formula(famille, period, parameters): return condition_age -class ppa_plancher_revenu_activite_etudiant(Variable): +class ppa_plancher_revenu_activite_apprenant(Variable): value_type = float entity = Individu - label = "Plancher des revenus d'activité pour être éligible à la PPA en tant qu'étudiant" + label = "Plancher des revenus d'activité pour être éligible à la PPA en tant qu'apprenant (étudiant/stagiaire ou apprenti)" definition_period = MONTH set_input = set_input_divide_by_period @@ -36,7 +36,7 @@ def formula(individu, period, parameters): ) -class ppa_eligibilite_etudiants(Variable): +class ppa_eligibilite_apprenants(Variable): value_type = bool entity = Famille label = 'Eligibilité à la PPA (condition sur tout le trimestre)' @@ -44,7 +44,7 @@ class ppa_eligibilite_etudiants(Variable): 'Article L842-1 du code de la sécurité sociale', 'https://www.legifrance.gouv.fr/affichCodeArticle.do;jsessionid=46068A49B8592A593A05D64D8EDB045A.tplgfr26s_3?idArticle=LEGIARTI000031087527&cidTexte=LEGITEXT000006073189&dateTexte=20181226', 'Article L842-2 du Code de la Sécurité Sociale', - 'https://www.legifrance.gouv.fr/affichCodeArticle.do;jsessionid=F2B88CEFCB83FCAFA4AA31671DAC89DD.tplgfr26s_3?idArticle=LEGIARTI000031087615&cidTexte=LEGITEXT000006073189&dateTexte=20181226' + 'https://www.legifrance.gouv.fr/affichCodeArticle.do;jsessionid=F2B88CEFCB83FCAFA4AA31671DAC89DD.tplgfr26s_3?idArticle=LEGIARTI000031087615&cidTexte=LEGITEXT000006073189&dateTexte=20181226', ] definition_period = MONTH set_input = set_input_dispatch_by_period @@ -52,8 +52,8 @@ class ppa_eligibilite_etudiants(Variable): def formula(famille, period, parameters): ppa_majoree_eligibilite = famille('rsa_majore_eligibilite', period) - etudiant_i = famille.members('etudiant', period) - plancher_etudiant = famille.members('ppa_plancher_revenu_activite_etudiant', period) + apprenant_i = famille.members('etudiant', period) + famille.members('stagiaire', period) + famille.members('apprenti', period) + plancher_apprenant = famille.members('ppa_plancher_revenu_activite_apprenant', period) def condition_ressource(period2, plancher): revenu_activite = famille.members('ppa_revenu_activite_individu', period2) @@ -63,21 +63,21 @@ def condition_ressource(period2, plancher): m_2 = period.offset(-2, 'month') m_3 = period.offset(-3, 'month') - condition_etudiant_i = ( - condition_ressource(m_1, plancher_etudiant) - * condition_ressource(m_2, plancher_etudiant) - * condition_ressource(m_3, plancher_etudiant) + condition_apprenant_i = ( + condition_ressource(m_1, plancher_apprenant) + * condition_ressource(m_2, plancher_apprenant) + * condition_ressource(m_3, plancher_apprenant) ) - condition_non_etudiant_i = ( - not_(etudiant_i) * ( + condition_non_apprenant_i = ( + not_(apprenant_i) * ( condition_ressource(m_1, 0) + condition_ressource(m_2, 0) + condition_ressource(m_3, 0) ) ) - condition_famille = famille.any(condition_non_etudiant_i + condition_etudiant_i, role = Famille.PARENT) + condition_famille = famille.any(condition_non_apprenant_i + condition_apprenant_i, role = Famille.PARENT) return ppa_majoree_eligibilite + condition_famille @@ -506,9 +506,9 @@ def formula_2016_01_01(famille, period, parameters): seuil_non_versement = parameters(period).prestations_sociales.solidarite_insertion.minima_sociaux.ppa.pa_m.montant_minimum_verse # éligibilité étudiants - ppa_eligibilite_etudiants = famille('ppa_eligibilite_etudiants', period) + ppa_eligibilite_apprenants = famille('ppa_eligibilite_apprenants', period) ppa = famille('ppa_fictive', period.last_3_months, options = [ADD]) / 3 - ppa = ppa * ppa_eligibilite_etudiants * (ppa >= seuil_non_versement) + ppa = ppa * ppa_eligibilite_apprenants * (ppa >= seuil_non_versement) return ppa diff --git a/setup.py b/setup.py index f06b60e5a1..bfb7cea89f 100644 --- a/setup.py +++ b/setup.py @@ -9,7 +9,7 @@ setup( name = 'OpenFisca-France', - version = '155.2.4', + version = '155.2.5', author = 'OpenFisca Team', author_email = 'contact@openfisca.fr', classifiers = [ diff --git a/tests/formulas/ppa/ppa.yaml b/tests/formulas/ppa/ppa.yaml index 89c0415152..66c1e84b21 100644 --- a/tests/formulas/ppa/ppa.yaml +++ b/tests/formulas/ppa/ppa.yaml @@ -602,7 +602,7 @@ 2015-10: 900 etudiant: true output: - ppa_eligibilite_etudiants: true + ppa_eligibilite_apprenants: true ppa: 244.21 - name: 'PPA: étudiant non éligible (ressources < plancher)' @@ -614,7 +614,31 @@ 2015-10: 890 etudiant: true output: - ppa_eligibilite_etudiants: false + ppa_eligibilite_apprenants: false + ppa: 0 + +- name: 'PPA: stagiaire non éligible (ressources < plancher)' + period: 2016-01 + input: + salaire_net: + 2015-12: 890 + 2015-11: 890 + 2015-10: 890 + stagiaire: true + output: + ppa_eligibilite_apprenants: false + ppa: 0 + +- name: 'PPA: apprenti non éligible (ressources < plancher)' + period: 2016-01 + input: + salaire_net: + 2015-12: 890 + 2015-11: 890 + 2015-10: 890 + apprenti: true + output: + ppa_eligibilite_apprenants: false ppa: 0 - name: 'PPA: étudiant éligible (majoré)' @@ -627,7 +651,7 @@ etudiant: true rsa_majore_eligibilite: true output: - ppa_eligibilite_etudiants: true + ppa_eligibilite_apprenants: true - name: 'PPA: étudiant non éligible car plancher non atteint pour un mois du trimestre de référence' period: 2016-01 @@ -638,7 +662,31 @@ 2015-10: 900 etudiant: true output: - ppa_eligibilite_etudiants: false + ppa_eligibilite_apprenants: false + ppa: 0 + +- name: 'PPA: stagiaire non éligible car plancher non atteint pour un mois du trimestre de référence' + period: 2016-01 + input: + salaire_net: + 2015-12: 800 + 2015-11: 900 + 2015-10: 900 + stagiaire: true + output: + ppa_eligibilite_apprenants: false + ppa: 0 + +- name: 'PPA: apprenti non éligible car plancher non atteint pour un mois du trimestre de référence' + period: 2016-01 + input: + salaire_net: + 2015-12: 800 + 2015-11: 900 + 2015-10: 900 + apprenti: true + output: + ppa_eligibilite_apprenants: false ppa: 0 - name: "PPA: couple d'étudiants avec enfant: pas de ppa"