From b7dcda5d5ec51dd09c214499ecbee6c3d5d4f369 Mon Sep 17 00:00:00 2001 From: Amine Date: Fri, 20 Dec 2019 09:53:50 +0100 Subject: [PATCH 01/26] =?UTF-8?q?Revalorisation=20les=20bar=C3=A8mes=20Par?= =?UTF-8?q?is=20Solidaire=20et=20CSP=20=C3=A0=20partir=20du=2001/01/2020?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../paris_complement_sante.yaml | 4 ++++ .../paris/personnes_agees/psol.yaml | 6 ++++- .../paris_complement_sante.yaml | 22 ++++++++++++++----- .../paris/personnes_handicapees/psol.yaml | 4 ++++ 4 files changed, 29 insertions(+), 7 deletions(-) diff --git a/openfisca_paris/parameters/paris/personnes_agees/paris_complement_sante.yaml b/openfisca_paris/parameters/paris/personnes_agees/paris_complement_sante.yaml index 6279054..0f95dc2 100644 --- a/openfisca_paris/parameters/paris/personnes_agees/paris_complement_sante.yaml +++ b/openfisca_paris/parameters/paris/personnes_agees/paris_complement_sante.yaml @@ -12,6 +12,8 @@ plafond: value: 915.0 2019-01-01: value: 980.0 + 2020-01-01: + value: 1015.0 en_couple: unit: currency values: @@ -23,6 +25,8 @@ plafond: value: 1453.0 2019-01-01: value: 1553.0 + 2020-01-01: + value: 1608.0 montant: unit: currency values: diff --git a/openfisca_paris/parameters/paris/personnes_agees/psol.yaml b/openfisca_paris/parameters/paris/personnes_agees/psol.yaml index 8f2610c..82f2618 100644 --- a/openfisca_paris/parameters/paris/personnes_agees/psol.yaml +++ b/openfisca_paris/parameters/paris/personnes_agees/psol.yaml @@ -12,6 +12,8 @@ plafond: value: 945.0 2019-01-01: value: 980.0 + 2020-01-01: + value: 1015.0 couple: unit: currency values: @@ -24,4 +26,6 @@ plafond: 2018-04-01: value: 1498.0 2019-01-01: - value: 1553.0 + value: 1553.0 + 2020-01-01: + value: 1608.0 diff --git a/openfisca_paris/parameters/paris/personnes_handicapees/paris_complement_sante.yaml b/openfisca_paris/parameters/paris/personnes_handicapees/paris_complement_sante.yaml index b63ad55..acfa5ad 100644 --- a/openfisca_paris/parameters/paris/personnes_handicapees/paris_complement_sante.yaml +++ b/openfisca_paris/parameters/paris/personnes_handicapees/paris_complement_sante.yaml @@ -2,15 +2,25 @@ plafond: personne_isolee: unit: currency values: - 2012-01-01: 965.0 - 2019-01-01: 965.0 + 2012-01-01: + value: 965.0 + 2019-01-01: + value: 965.0 + 2020-01-01: + value: 1015.0 en_couple: unit: currency values: - 2012-01-01: 1553.0 - 2019-01-01: 1553.0 + 2012-01-01: + value: 1553.0 + 2019-01-01: + value: 1553.0 + 2020-01-01: + value: 1608.0 montant: unit: currency values: - 2012-01-01: 468.0 - 2019-01-01: 468.0 + 2012-01-01: + value: 468.0 + 2019-01-01: + value: 468.0 diff --git a/openfisca_paris/parameters/paris/personnes_handicapees/psol.yaml b/openfisca_paris/parameters/paris/personnes_handicapees/psol.yaml index 149f8b7..c0deaa6 100644 --- a/openfisca_paris/parameters/paris/personnes_handicapees/psol.yaml +++ b/openfisca_paris/parameters/paris/personnes_handicapees/psol.yaml @@ -10,6 +10,8 @@ plafond: value: 915.0 2019-01-01: value: 965.0 + 2020-01-01: + value: 1015.0 couple: unit: currency values: @@ -23,3 +25,5 @@ plafond: value: 1498.0 2019-01-01: value: 1553.0 + 2020-01-01: + value: 1608.0 From 6e44e75319f920d6808a923ed43ec54948ddc017 Mon Sep 17 00:00:00 2001 From: Amine Date: Tue, 18 Feb 2020 16:42:08 +0100 Subject: [PATCH 02/26] =?UTF-8?q?Fiabilisation=20de=20la=20base=20ressourc?= =?UTF-8?q?es=20Paris=20CSP=20handicap=C3=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../paris_complement_sante.py | 17 +-- .../paris_complement_sante.yaml | 102 ++++++++++++- .../paris_complement_sante.yaml | 136 +++++++++++++++++- 3 files changed, 239 insertions(+), 16 deletions(-) diff --git a/openfisca_paris/personnes_handicapees/paris_complement_sante.py b/openfisca_paris/personnes_handicapees/paris_complement_sante.py index d3c37e7..5f705a5 100644 --- a/openfisca_paris/personnes_handicapees/paris_complement_sante.py +++ b/openfisca_paris/personnes_handicapees/paris_complement_sante.py @@ -8,26 +8,23 @@ class paris_complement_sante_ph_eligibilite(Variable): value_type = bool - entity = Famille + entity = Individu definition_period = MONTH label = u"Éligibilité au Complément Santé Paris pour les personnes handicapées" reference = "Article III.1.2.b.3 du règlement municipal du CASVP" - def formula(famille, period, parameters): - - personne_handicapee = famille.members('paris_personne_handicapee', period) - personnes_handicapees = famille.any(personne_handicapee) + def formula(individu, period, parameters): + personne_handicapee = individu('paris_personne_handicapee', period) - base_ressources = famille('paris_base_ressources_couple', period.last_month) + base_ressources = individu('paris_base_ressources_i', period) param_plafond = parameters(period).paris.personnes_handicapees.paris_complement_sante.plafond - en_couple = famille('en_couple', period) - plafond_1 = where(en_couple, param_plafond.en_couple, param_plafond.personne_isolee) + plafond_1 = param_plafond.personne_isolee param_aah = parameters(period).prestations.minima_sociaux plafond_2 = param_aah.aah.montant + param_aah.caah.majoration_vie_autonome - return personnes_handicapees * (base_ressources <= max_(plafond_1, plafond_2)) + return personne_handicapee * (base_ressources <= max_(plafond_1, plafond_2)) class paris_complement_sante_ph_montant(Variable): @@ -55,7 +52,7 @@ class paris_complement_sante_ph(Variable): def formula(famille, period, parameters): - eligibilite = famille('paris_complement_sante_ph_eligibilite', period) + eligibilite = famille.demandeur('paris_complement_sante_ph_eligibilite', period) montant = famille('paris_complement_sante_ph_montant', period) return eligibilite * montant diff --git a/tests/unittests/personnes_agees/paris_complement_sante.yaml b/tests/unittests/personnes_agees/paris_complement_sante.yaml index b0aa177..088416f 100644 --- a/tests/unittests/personnes_agees/paris_complement_sante.yaml +++ b/tests/unittests/personnes_agees/paris_complement_sante.yaml @@ -2,7 +2,7 @@ period: 2019-02 input: paris_personne_agee: [false, true, true] - paris_base_ressources_couple: + paris_base_ressources_couple: 2019-01: [980, 980, 981] output: paris_complement_sante_pa_eligibilite: [false, true, false] @@ -12,7 +12,7 @@ input: paris_personne_agee: [false, true, true] en_couple: [true, true, true] - paris_base_ressources_couple: + paris_base_ressources_couple: 2019-01: [1553, 1553, 1554] output: paris_complement_sante_pa_eligibilite: [false, true, false] @@ -33,3 +33,101 @@ paris_complement_sante_pa_montant: [100, 100] output: paris_complement_sante_pa: [100, 0] + +- name: couple, 2 Personnes âgées, droit à CSP + period: 2020-01 + input: + famille: + parents: ['personne1', 'personne2'] + parisien: true + paris_base_ressources_famille: + 2019-12: 0 + menage: + personne_de_reference: personne1 + conjoint: personne2 + statut_occupation_logement: locataire_vide + logement_conventionne: true + depcom: 75012 + loyer: 599 + charges_locatives: 65 + individus: + personne1: + activite: retraite + date_naissance: 1940-06-05 + retraite_imposable: + 2019-12: 806.51 + personne2: + activite: retraite + date_naissance: 1943-06-05 + retraite_imposable: + 2019-12: 578.06 + foyer_fiscal: + declarants: [personne1, personne2] + output: + paris_complement_sante_pa: 468 + +- name: couple, une PA et une PH, droit à CSP + period: 2020-01 + input: + famille: + parents: ['personne1', 'personne2'] + parisien: true + paris_base_ressources_famille: + 2019-12: 0 + aide_logement: + 2019-12: 170 + menage: + personne_de_reference: personne1 + conjoint: personne2 + statut_occupation_logement: locataire_vide + logement_conventionne: true + depcom: 75012 + loyer: 599 + charges_locatives: 65 + individus: + personne1: + activite: retraite + date_naissance: 1940-06-05 + retraite_imposable: + 2019-12: 806.51 + personne2: + date_naissance: 1963-08-05 + handicap: true + aah: + 2019-12: 723 + foyer_fiscal: + declarants: [personne1, personne2] + output: + paris_complement_sante_pa: 468 + +- name: couple, une PA + une personne non ouvre droit, droit à CSP + period: 2020-01 + input: + famille: + parents: ['personne1', 'personne2'] + parisien: true + paris_base_ressources_famille: + 2019-12: 0 + aide_logement: + 2019-12: 170 + cmu_c: false + menage: + personne_de_reference: personne1 + conjoint: personne2 + statut_occupation_logement: locataire_vide + logement_conventionne: true + depcom: 75012 + loyer: 659 + charges_locatives: 45 + individus: + personne1: + activite: retraite + date_naissance: 1950-06-05 + retraite_imposable: + 2019-12: 1336.38 + personne2: + date_naissance: 1963-08-05 + foyer_fiscal: + declarants: [personne1, personne2] + output: + paris_complement_sante_pa: 468 diff --git a/tests/unittests/personnes_handicapees/paris_complement_sante.yaml b/tests/unittests/personnes_handicapees/paris_complement_sante.yaml index 7f51e2a..0095315 100644 --- a/tests/unittests/personnes_handicapees/paris_complement_sante.yaml +++ b/tests/unittests/personnes_handicapees/paris_complement_sante.yaml @@ -2,8 +2,7 @@ period: 2019-02 input: paris_personne_handicapee: [false, true, true] - paris_base_ressources_couple: - 2019-01: [965, 965, 966] + paris_base_ressources_i: [965, 965, 966] output: paris_complement_sante_ph_eligibilite: [false, true, false] @@ -12,8 +11,7 @@ input: paris_personne_handicapee: [false, true, true] en_couple: [true, true, true] - paris_base_ressources_couple: - 2019-01: [1553, 1553, 1554] + paris_base_ressources_i: [963, 963, 968] output: paris_complement_sante_ph_eligibilite: [false, true, false] @@ -33,3 +31,133 @@ paris_complement_sante_ph_montant: [100, 100] output: paris_complement_sante_ph: [100, 0] + +- name: couple, 2 PH, droit à CSP + period: 2020-01 + input: + famille: + parents: ['personne1', 'personne2'] + parisien: true + paris_base_ressources_famille: + 2019-12: 0 + cmu_c: false + menage: + personne_de_reference: personne1 + conjoint: personne2 + statut_occupation_logement: locataire_vide + logement_conventionne: true + depcom: 75012 + loyer: 700 + charges_locatives: 45 + individus: + personne1: + date_naissance: 1980-08-05 + handicap: true + aah: + 2019-12: 900 + personne2: + date_naissance: 1983-08-05 + handicap: true + aah: + 2019-12: 900 + foyer_fiscal: + declarants: [personne1, personne2] + output: + paris_complement_sante_ph: 468 + +- name: couple, une PH et une PA, droit à CSP/ OK) + period: 2020-01 + input: + famille: + parents: ['personne1', 'personne2'] + parisien: true + paris_base_ressources_famille: + 2019-12: 0 + menage: + personne_de_reference: personne1 + conjoint: personne2 + statut_occupation_logement: locataire_vide + logement_conventionne: true + depcom: 75012 + loyer: 700 + charges_locatives: 45 + individus: + personne1: + date_naissance: 1980-08-05 + handicap: true + aah: + 2019-12: 725 + personne2: + date_naissance: 1953-08-05 + activite: retraite + retraite_imposable: + 2019-12: 2336.38 + foyer_fiscal: + declarants: [personne1, personne2] + output: + paris_complement_sante_ph: 468 + +- name: couple, une PH et une PA, droit à CSP OK + period: 2020-01 + input: + famille: + parents: ['personne1', 'personne2'] + parisien: true + paris_base_ressources_famille: + 2019-12: 0 + menage: + personne_de_reference: personne1 + conjoint: personne2 + statut_occupation_logement: locataire_vide + logement_conventionne: true + depcom: 75012 + loyer: 700 + charges_locatives: 45 + individus: + personne1: + date_naissance: 1980-08-05 + handicap: true + aah: + 2019-12: 725 + personne2: + date_naissance: 1953-08-05 + activite: retraite + retraite_imposable: + 2019-12: 2336.38 + foyer_fiscal: + declarants: [personne1, personne2] + output: + paris_complement_sante_ph: 468 + +- name: couple, une PH et une personne non ouvre droit, droit à CSP OK + period: 2020-01 + input: + famille: + parents: ['personne1', 'personne2'] + parisien: true + paris_base_ressources_famille: + 2019-12: 0 + + menage: + personne_de_reference: personne1 + conjoint: personne2 + statut_occupation_logement: locataire_vide + logement_conventionne: true + depcom: 75012 + loyer: 700 + charges_locatives: 45 + individus: + personne1: + date_naissance: 1980-08-05 + handicap: true + aah: + 2019-12: 725 + personne2: + date_naissance: 1953-08-05 + activite: retraite + salaire_imposable: + 2019-12: 900 + foyer_fiscal: + declarants: [personne1, personne2] + output: + paris_complement_sante_ph: 468 From 8ec30c953f59488d6f12210ef606bb51e73b8072 Mon Sep 17 00:00:00 2001 From: Amine Date: Wed, 4 Mar 2020 16:35:35 +0100 Subject: [PATCH 03/26] Corrige lint --- .../unittests/personnes_handicapees/paris_complement_sante.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/unittests/personnes_handicapees/paris_complement_sante.yaml b/tests/unittests/personnes_handicapees/paris_complement_sante.yaml index 0095315..96a2f78 100644 --- a/tests/unittests/personnes_handicapees/paris_complement_sante.yaml +++ b/tests/unittests/personnes_handicapees/paris_complement_sante.yaml @@ -137,7 +137,6 @@ parisien: true paris_base_ressources_famille: 2019-12: 0 - menage: personne_de_reference: personne1 conjoint: personne2 From 3d426d4bf24e8fb4a15b597332cb6ba39b552f43 Mon Sep 17 00:00:00 2001 From: mtifarine Date: Wed, 25 Mar 2020 18:21:13 +0100 Subject: [PATCH 04/26] Revalorisation de l'aide de logement de Paris --- openfisca_paris/parameters/paris/paris_logement/plafond_pl.yaml | 2 ++ .../parameters/paris/paris_logement/plafond_pl_apd.yaml | 2 ++ openfisca_paris/parameters/paris/plfm/premier_plafond_plfm.yaml | 2 ++ 3 files changed, 6 insertions(+) diff --git a/openfisca_paris/parameters/paris/paris_logement/plafond_pl.yaml b/openfisca_paris/parameters/paris/paris_logement/plafond_pl.yaml index 50101bd..4030756 100644 --- a/openfisca_paris/parameters/paris/paris_logement/plafond_pl.yaml +++ b/openfisca_paris/parameters/paris/paris_logement/plafond_pl.yaml @@ -10,3 +10,5 @@ values: value: 1180.0 2019-01-01: value: 1210.0 + 2020-01-01: + value: 1220.00 diff --git a/openfisca_paris/parameters/paris/paris_logement/plafond_pl_apd.yaml b/openfisca_paris/parameters/paris/paris_logement/plafond_pl_apd.yaml index 1ab3d3d..2247d41 100644 --- a/openfisca_paris/parameters/paris/paris_logement/plafond_pl_apd.yaml +++ b/openfisca_paris/parameters/paris/paris_logement/plafond_pl_apd.yaml @@ -11,3 +11,5 @@ values: value: 1180.0 2019-01-01: value: 1210.0 + 2020-01-01: + value: 1220.0 diff --git a/openfisca_paris/parameters/paris/plfm/premier_plafond_plfm.yaml b/openfisca_paris/parameters/paris/plfm/premier_plafond_plfm.yaml index 29d2b74..27a0d18 100644 --- a/openfisca_paris/parameters/paris/plfm/premier_plafond_plfm.yaml +++ b/openfisca_paris/parameters/paris/plfm/premier_plafond_plfm.yaml @@ -9,3 +9,5 @@ values: value: 1180.0 2019-01-01: value: 1210.0 + 2020-01-01: + value: 1220.0 From 578e9f55e663051e3adc8692557eba2f4afef351 Mon Sep 17 00:00:00 2001 From: mtifarine Date: Wed, 5 Aug 2020 15:40:22 +0200 Subject: [PATCH 05/26] Fiabilisation de la base ressources aides Paris --- openfisca_paris/paris.py | 102 +++++- .../paris_complement_sante.py | 2 +- tests/unittests/paris_solidarite.yaml | 290 +----------------- 3 files changed, 112 insertions(+), 282 deletions(-) diff --git a/openfisca_paris/paris.py b/openfisca_paris/paris.py index 447085a..6ca1761 100644 --- a/openfisca_paris/paris.py +++ b/openfisca_paris/paris.py @@ -11,6 +11,99 @@ class parisien(Variable): definition_period = MONTH label = u"Résident à Paris au moins 3 ans dans les 5 dernières années" +class paris_base_ressources_individu(Variable): + value_type = float + label = u"Base de ressources pour un individu, pour l'ensemble des aides de Paris" + entity = Individu + definition_period = MONTH + + def formula(individu, period, legislation): + # dedommagement_victime_amiante, + # indemnites_journalieres_maladie, + # indemnites_journalieres_maladie_professionnelle, + # indemnites_journalieres_maternite, + # indemnites_volontariat + # indemnites_chomage_partiel + # indemnites_journalieres_maladie + # indemnites_stage + # pensions_alimentaires_percues + # pensions_alimentaires_versees_individu + # salaire_imposable + # indemnite_fin_contrat + # chomage_imposable + # revenus_stage_formation_pro + # remuneration_apprenti + # allocation_securisation_professionnelle + # prime_forfaitaire_mensuelle_reprise_activite + # salarie_regime_alsace_moselle + # tns_autres_revenus + # tns_autres_revenus_chiffre_affaires + # tns_benefice_exploitant_agricole + # tns_micro_entreprise_chiffre_affaires + # tns_micro_entreprise_benefice + # tns_auto_entrepreneur_chiffre_affaires + # tns_auto_entrepreneur_benefice + # pensions_invalidite + # rente_accident_travail + # retraite_imposable + # pensions_alimentaires_percues + # pensions_alimentaires_versees_individu + # prestation_compensatoire + # frais_reels + # revenus_locatifs + # revenus_capital + # plus_values_gains_divers + # gains_exceptionnels + + + last_year = period.last_year + #Salaires + salaire_imposable = individu('salaire_imposable', period) + revenus_stage_formation_pro = individu('revenus_stage_formation_pro', period) + chomage_imposable = individu('chomage_imposable', period) + retraite_imposable = individu('retraite_imposable', period) + + + #indemnites: + indemnites_stage = individu('indemnites_stage', period) + smic = legislation(period).paris.smic_net_mensuel + indemnites_stage_imposable = where((smic >= indemnites_stage), indemnites_stage, 0) + indemnites_journalieres = individu('indemnites_journalieres', period) + indemnites_chomage_partiel = individu('indemnites_chomage_partiel', period) + indemnites_volontariat = individu('indemnites_volontariat', period) + + #pensions + ass = individu('ass', period) + aah = individu('aah', period) + asi = individu('asi', period) + caah = individu('caah', period) + allocation_securisation_professionnelle = individu('allocation_securisation_professionnelle', period) + prestation_compensatoire = individu('prestation_compensatoire', period) + pensions_invalidite = individu('pensions_invalidite', period) + + def revenus_tns(): + revenus_auto_entrepreneur = individu('tns_auto_entrepreneur_benefice', period, options = [ADD]) + + # Les revenus TNS hors AE sont estimés en se basant sur le revenu N-1 + tns_micro_entreprise_benefice = individu('tns_micro_entreprise_benefice', last_year) / 12 + tns_benefice_exploitant_agricole = individu('tns_benefice_exploitant_agricole', last_year) / 12 + tns_autres_revenus = individu('tns_autres_revenus', last_year) / 12 + + return ( + revenus_auto_entrepreneur + tns_micro_entreprise_benefice + tns_benefice_exploitant_agricole + + tns_autres_revenus + ) + + result = ( + ass + aah + asi + caah + + salaire_imposable + indemnites_stage_imposable + revenus_stage_formation_pro + + chomage_imposable + allocation_securisation_professionnelle + indemnites_journalieres + indemnites_chomage_partiel + indemnites_volontariat + + prestation_compensatoire + retraite_imposable+ pensions_invalidite + + revenus_tns() + ) + + return result + class paris_base_ressources_i(Variable): value_type = float label = u"Base de ressources pour un individu, pour l'ensemble des aides de Paris" @@ -26,6 +119,7 @@ def formula(individu, period, legislation): caah = individu('caah', period) salaire_net = individu('salaire_net', period) + print(salaire_net) indemnites_stage = individu('indemnites_stage', period) smic = legislation(period).paris.smic_net_mensuel indemnites_stage_imposable = where((smic >= indemnites_stage), indemnites_stage, 0) @@ -39,6 +133,7 @@ def formula(individu, period, legislation): prestation_compensatoire = individu('prestation_compensatoire', period) retraite_nette = individu('retraite_nette', period) + pensions_invalidite = individu('pensions_invalidite', period) def revenus_tns(): @@ -81,10 +176,9 @@ class paris_base_ressources_couple(Variable): def formula(famille, period): en_couple = famille('en_couple', period) - ressources_demandeur = famille.demandeur('paris_base_ressources_i', period) - ressources_conjoint = famille.conjoint('paris_base_ressources_i', period) + ressources_demandeur = famille.demandeur('paris_base_ressources_individu', period) + ressources_conjoint = famille.conjoint('paris_base_ressources_individu', period) ressources_famille = famille('paris_base_ressources_famille', period) - return where(en_couple, ressources_demandeur + ressources_conjoint + ressources_famille, ressources_demandeur + ressources_famille) @@ -96,7 +190,7 @@ class paris_base_ressources_foyer(Variable): definition_period = MONTH def formula(famille, period): - ressources = famille.members('paris_base_ressources_i', period) + ressources = famille.members('paris_base_ressources_individu', period) ressources_famille = famille('paris_base_ressources_famille', period) return famille.sum(ressources) + ressources_famille diff --git a/openfisca_paris/personnes_handicapees/paris_complement_sante.py b/openfisca_paris/personnes_handicapees/paris_complement_sante.py index 5f705a5..de0dced 100644 --- a/openfisca_paris/personnes_handicapees/paris_complement_sante.py +++ b/openfisca_paris/personnes_handicapees/paris_complement_sante.py @@ -16,7 +16,7 @@ class paris_complement_sante_ph_eligibilite(Variable): def formula(individu, period, parameters): personne_handicapee = individu('paris_personne_handicapee', period) - base_ressources = individu('paris_base_ressources_i', period) + base_ressources = individu('paris_base_ressources_individu', period) param_plafond = parameters(period).paris.personnes_handicapees.paris_complement_sante.plafond plafond_1 = param_plafond.personne_isolee diff --git a/tests/unittests/paris_solidarite.yaml b/tests/unittests/paris_solidarite.yaml index 01b329a..1c39262 100644 --- a/tests/unittests/paris_solidarite.yaml +++ b/tests/unittests/paris_solidarite.yaml @@ -1,297 +1,33 @@ -- name: Couple non éligible pour l'aide PSOL car les parents n'ont pas le statut handicapé - description: Personne handicapée - period: 2016-02 - input: - famille: - parents: [couple1, couple2] - enfants: [enfant1] - parisien: true - en_couple: true - menage: - statut_occupation_logement: locataire_vide - personne_de_reference: couple1 - conjoint: couple2 - enfants: [enfant1] - individus: - couple1: - age: 35 - salaire_net: 500 - couple2: - age: 35 - salaire_net: 10 - enfant1: - age: 8 - handicap: true - foyers_fiscaux: - foyer_fiscal_0: - declarants: - - couple1 - - couple2 - personnes_a_charge: - - enfant1 - output: - paris_logement_psol: 0 - -- name: Personne éligible pour l'aide PSOL car revenus < 900 - description: Personne handicape - period: 2016-02 - absolute_error_margin: 0.005 - input: - age: 55 - parisien: true - statut_occupation_logement: locataire_vide - handicap: true - loyer: 600 - chomage_net: 600 - paris_base_ressources_famille: 0 - output: - paris_logement_psol: 92.35 - -- name: Personne non éligible pour l'aide PSOL car revenus > 900 - description: Personne agée - period: 2016-02 - input: - age: 65 - parisien: true - statut_occupation_logement: locataire_vide - loyer: 600 - salaire_net: 2500 - output: - paris_logement_psol: 0 - -- name: Couple non éligible pour l'aide PSOL - description: Personne agée - period: 2016-02 - input: - famille: - parents: [couple1, couple2] - parisien: true - aspa: 100 - menage: - statut_occupation_logement: locataire_vide - personne_de_reference: couple1 - conjoint: couple2 - individus: - couple1: - age: 65 - handicap: true - salaire_net: 900 - aah: 500 - couple2: - age: 65 - handicap: true - salaire_net: 5 - aah: - 2016-01: 5 - foyers_fiscaux: - foyer_fiscal_0: - declarants: - - couple1 - - couple2 - output: - paris_logement_psol: 0 - -- name: Couple non éligible pour l'aide PSOL car statut handicapé et revenus > 900 - description: Personne handicape - period: 2016-02 - input: - famille: - parents: [couple1, couple2] - parisien: true - menage: - statut_occupation_logement: locataire_vide - personne_de_reference: couple1 - conjoint: couple2 - individus: - couple1: - age: 55 - aah: 900 - salaire_net: 500 - handicap: true - couple2: - age: 65 - handicap: true - aah: 100 - salaire_net: 10 - foyers_fiscaux: - foyer_fiscal_0: - declarants: - - couple1 - - couple2 - output: - paris_logement_psol: 0 - -- name: Personne non éligible pour l'aide PSOL car revenus > 900 - description: Personne handicape - period: 2016-02 - input: - age: 55 - parisien: true - statut_occupation_logement: locataire_vide - handicap: true - aah: 2000 - output: - paris_logement_psol: 0 - -- name: Personne non éligible pour l'aide PSOL car elle est pas une personne âgée - description: Personne handicape - period: 2016-02 - input: - age: 55 - parisien: true - statut_occupation_logement: locataire_vide - handicap: false - aah: 500 - salaire_net: 80 - output: - paris_logement_psol: 0 - -- name: Personne éligible pour l'aide PSOL car elle perçoit < 900 - description: Personne handicape - period: 2016-02 - absolute_error_margin: 0.005 - input: - age: 55 - parisien: true - statut_occupation_logement: locataire_vide - handicap: true - aah: 500 - salaire_net: 80 - paris_base_ressources_famille: 0 - output: - paris_logement_psol: 92.35 - -- name: Personne non éligible pour l'aide PSOL car revenus > 900 - description: Personne handicape - period: 2016-02 - input: - age: 55 - parisien: true - statut_occupation_logement: locataire_vide - handicap: true - aah: 500 - salaire_net: 450 - output: - paris_logement_psol: 0 - -- name: Personne non éligible pour l'aide PSOL car revenus > 900 - description: Personne handicape - period: 2016-02 - input: - age: 55 - parisien: true - statut_occupation_logement: locataire_vide - handicap: true - aah: 800 - salaire_net: 600 - output: - paris_logement_psol: 0 - -- name: Couple non éligible pour l'aide PSOL car pas de statut handicapé - description: Personne handicape - period: 2016-02 - input: - famille: - parents: [couple1, couple2] - parisien: true - menage: - statut_occupation_logement: locataire_vide - personne_de_reference: couple1 - conjoint: couple2 - individus: - couple1: - age: 55 - chomage_net: 100 - couple2: - age: 55 - indemnites_stage: 100 - salaire_net: 100 - foyers_fiscaux: - foyer_fiscal_0: - declarants: - - couple1 - - couple2 - output: - paris_logement_psol: 0 - -- name: Personne éligible pour l'aide PSOL car statut personne âgée - description: Personne agée - period: 2016-02 - input: - age: 65 - parisien: true - statut_occupation_logement: locataire_vide - output: - paris_logement_psol: 100 - -- name: Personne non éligible pour l'aide PSOL car revenus = 900 - description: Personne agée - period: 2016-02 - input: - famille: - parents: [couple1] - parisien: true - menage: - statut_occupation_logement: locataire_vide - personne_de_reference: couple1 - individus: - couple1: - age: 65 - chomage_net: 900 - foyer_fiscal: - declarants: - - couple1 - output: - paris_logement_psol: 0 - -- name: Couple avec revenus inférieurs au plancher pour l'aide PSOL - description: Personne agée - period: 2016-02 - input: - famille: - parents: [couple1, couple2] - parisien: true - aspa: 1242 - menage: - statut_occupation_logement: locataire_vide - personne_de_reference: couple1 - conjoint: couple2 - individus: - couple1: - age: 65 - couple2: - age: 66 - foyers_fiscaux: - foyer_fiscal_0: - declarants: - - couple1 - - couple2 - output: - paris_logement_psol: 188 # 1430 - 1242 - - name: Couple éligible à 100% pour PSOL car les revenus inférieurs au plancher description: Personne agée - period: 2016-02 + period: 2020-06 input: famille: parents: [couple1, couple2] parisien: true - aspa: 100 + rsa: 0 + aspa: 0 + aide_logement: 310.55 + reduction_loyer_solidarite: 59.7 + paris_complement_sante: 468 menage: statut_occupation_logement: locataire_vide + logement_conventionne: true personne_de_reference: couple1 conjoint: couple2 + loyer: 980 individus: couple1: - age: 65 + age: 75 + retraite_imposable: 1052 couple2: age: 55 - indemnites_stage: 100 - salaire_net: 100 + retraite_imposable: 450 foyers_fiscaux: foyer_fiscal_0: declarants: - couple1 - couple2 output: - paris_logement_psol: 188 + paris_logement_psol: 106 + paris_logement: 95 \ No newline at end of file From c5bbc712ae27f0c98fe87968d48e71a1ad3ed324 Mon Sep 17 00:00:00 2001 From: mtifarine Date: Wed, 5 Aug 2020 15:56:13 +0200 Subject: [PATCH 06/26] Fiabilisation de la base ressources aides Paris --- openfisca_paris/paris.py | 10 +++++----- .../personnes_handicapees/paris_complement_sante.py | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/openfisca_paris/paris.py b/openfisca_paris/paris.py index 6ca1761..d00582f 100644 --- a/openfisca_paris/paris.py +++ b/openfisca_paris/paris.py @@ -11,7 +11,7 @@ class parisien(Variable): definition_period = MONTH label = u"Résident à Paris au moins 3 ans dans les 5 dernières années" -class paris_base_ressources_individu(Variable): +class paris_base_ressources_i(Variable): value_type = float label = u"Base de ressources pour un individu, pour l'ensemble des aides de Paris" entity = Individu @@ -104,7 +104,7 @@ def revenus_tns(): return result -class paris_base_ressources_i(Variable): +class paris_base_ressources_individu(Variable): value_type = float label = u"Base de ressources pour un individu, pour l'ensemble des aides de Paris" entity = Individu @@ -176,8 +176,8 @@ class paris_base_ressources_couple(Variable): def formula(famille, period): en_couple = famille('en_couple', period) - ressources_demandeur = famille.demandeur('paris_base_ressources_individu', period) - ressources_conjoint = famille.conjoint('paris_base_ressources_individu', period) + ressources_demandeur = famille.demandeur('paris_base_ressources_i', period) + ressources_conjoint = famille.conjoint('paris_base_ressources_i', period) ressources_famille = famille('paris_base_ressources_famille', period) return where(en_couple, ressources_demandeur + ressources_conjoint + ressources_famille, @@ -190,7 +190,7 @@ class paris_base_ressources_foyer(Variable): definition_period = MONTH def formula(famille, period): - ressources = famille.members('paris_base_ressources_individu', period) + ressources = famille.members('paris_base_ressources_i', period) ressources_famille = famille('paris_base_ressources_famille', period) return famille.sum(ressources) + ressources_famille diff --git a/openfisca_paris/personnes_handicapees/paris_complement_sante.py b/openfisca_paris/personnes_handicapees/paris_complement_sante.py index de0dced..5f705a5 100644 --- a/openfisca_paris/personnes_handicapees/paris_complement_sante.py +++ b/openfisca_paris/personnes_handicapees/paris_complement_sante.py @@ -16,7 +16,7 @@ class paris_complement_sante_ph_eligibilite(Variable): def formula(individu, period, parameters): personne_handicapee = individu('paris_personne_handicapee', period) - base_ressources = individu('paris_base_ressources_individu', period) + base_ressources = individu('paris_base_ressources_i', period) param_plafond = parameters(period).paris.personnes_handicapees.paris_complement_sante.plafond plafond_1 = param_plafond.personne_isolee From c82a1281a7800d405a9e791187733162e2bb5d3a Mon Sep 17 00:00:00 2001 From: mtifarine Date: Wed, 5 Aug 2020 16:28:42 +0200 Subject: [PATCH 07/26] correction des tests --- tests/unittests/paris.yaml | 6 +++--- tests/unittests/paris_logement.yaml | 22 +++++++++++----------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/tests/unittests/paris.yaml b/tests/unittests/paris.yaml index 01baea6..9684e05 100644 --- a/tests/unittests/paris.yaml +++ b/tests/unittests/paris.yaml @@ -13,7 +13,7 @@ ass: 20 aah: 30 caah: 14 - retraite_nette: 50 + retraite_imposable: 50 allocation_securisation_professionnelle: 55 prestation_compensatoire: 60 pensions_invalidite: 65 @@ -22,9 +22,9 @@ indemnites_volontariat: 85 parent2: asi: 25 - salaire_net: 35 + salaire_imposable: 35 indemnites_chomage_partiel: 40 - chomage_net: 45 + chomage_imposable: 45 enfant1: indemnites_stage: 75 foyers_fiscaux: diff --git a/tests/unittests/paris_logement.yaml b/tests/unittests/paris_logement.yaml index 2b73279..78e47d7 100644 --- a/tests/unittests/paris_logement.yaml +++ b/tests/unittests/paris_logement.yaml @@ -15,7 +15,7 @@ individus: parent1: age: 55 - salaire_net: + salaire_imposable: 2016-01: 1000 parent2: age: 55 @@ -277,7 +277,7 @@ parent1: age: 55 handicap: true - chomage_net: + chomage_imposable: 2016-01: 2000 foyer_fiscal: declarants: @@ -360,7 +360,7 @@ individus: parent1: age: 55 - salaire_net: + salaire_imposable: 2016-01: 1000 parent2: age: 55 @@ -399,7 +399,7 @@ individus: parent1: age: 65 - salaire_net: + salaire_imposable: 2016-01: 1000 parent2: age: 55 @@ -431,7 +431,7 @@ individus: parent1: age: 55 - salaire_net: + salaire_imposable: 2016-01: 500 handicap: true aah: @@ -470,7 +470,7 @@ individus: parent1: age: 55 - salaire_net: + salaire_imposable: 2016-01: 1000 parent2: age: 55 @@ -509,11 +509,11 @@ individus: parent1: age: 55 - salaire_net: + salaire_imposable: 2016-01: 1000 parent2: age: 55 - salaire_net: + salaire_imposable: 2016-01: 1000 enfant1: age: 5 @@ -542,7 +542,7 @@ 2016-01: 200 paris_base_ressources_famille: 2016-01: 0 - salaire_net: + salaire_imposable: 2016-01: 850 output: paris_logement: 84 @@ -557,7 +557,7 @@ loyer: 550 aide_logement: 2016-01: 200 - salaire_net: + salaire_imposable: 2016-01: 1450 output: paris_logement: 0 @@ -588,7 +588,7 @@ loyer: 550 apl: 2016-01: 200 - salaire_net: + salaire_imposable: 2016-01: 850 output: paris_logement: 0 From d66f0705889367b20c09f43f2297a04c67508a5a Mon Sep 17 00:00:00 2001 From: mtifarine Date: Thu, 6 Aug 2020 07:31:12 +0200 Subject: [PATCH 08/26] correction des tests --- tests/unittests/paris_logement_famille.yaml | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/tests/unittests/paris_logement_famille.yaml b/tests/unittests/paris_logement_famille.yaml index 51ebccb..bfbd768 100644 --- a/tests/unittests/paris_logement_famille.yaml +++ b/tests/unittests/paris_logement_famille.yaml @@ -16,7 +16,7 @@ individus: parent1: age: 35 - salaire_net: + salaire_imposable: 2015-11: 1000 2015-12: 1000 2016-01: 1000 @@ -37,6 +37,7 @@ - enfant1 - enfant2 output: + aide_logement: 361.46 paris_logement_familles: 63.25 - name: Famille éligible pour l'aide Paris logement car parent monoparental avec trois enfant et ressources < 5000 @@ -55,7 +56,7 @@ individus: parent1: age: 35 - salaire_net: + salaire_imposable: 2015-11: 1000 2015-12: 1000 2016-01: 1000 @@ -95,7 +96,7 @@ individus: parent1: age: 55 - salaire_net: + salaire_imposable: 2016-01: 3580 pensions_alimentaires_percues: 46 enfant1: @@ -169,7 +170,7 @@ individus: parent1: age: 55 - salaire_net: + salaire_imposable: 2016-01: 1900 enfant1: age: 5 @@ -204,7 +205,7 @@ individus: parent1: age: 55 - salaire_net: + salaire_imposable: 2016-01: 1900 enfant1: age: 5 @@ -241,7 +242,7 @@ individus: parent1: age: 55 - salaire_net: + salaire_imposable: 2016-01: 1500 enfant1: age: 5 @@ -313,7 +314,7 @@ individus: parent1: age: 55 - salaire_net: + salaire_imposable: 2016-01: 2900 parent2: age: 55 @@ -351,7 +352,7 @@ individus: parent1: age: 55 - salaire_net: + salaire_imposable: 2016-01: 4000 enfant1: age: 5 @@ -388,7 +389,7 @@ individus: parent1: age: 55 - salaire_net: + salaire_imposable: 2016-01: 4900 parent2: age: 55 @@ -432,7 +433,7 @@ individus: parent1: age: 55 - salaire_net: + salaire_imposable: 2016-01: 2900 parent2: age: 55 From 7d9cb426ac1b0b78714f8805dd43281b7b9b1d93 Mon Sep 17 00:00:00 2001 From: mtifarine Date: Thu, 6 Aug 2020 08:22:59 +0200 Subject: [PATCH 09/26] correction des tests --- tests/unittests/paris_logement.yaml | 2 +- tests/unittests/paris_logement_famille.yaml | 9 +++--- tests/unittests/paris_solidarite_2018.yaml | 34 ++++++++++----------- 3 files changed, 22 insertions(+), 23 deletions(-) diff --git a/tests/unittests/paris_logement.yaml b/tests/unittests/paris_logement.yaml index 78e47d7..5225ef1 100644 --- a/tests/unittests/paris_logement.yaml +++ b/tests/unittests/paris_logement.yaml @@ -487,7 +487,7 @@ - enfant1 - enfant2 output: - aide_logement: 437.1 + aide_logement: 361.46 #437.1 paris_condition_taux_effort: false paris_logement: 0 diff --git a/tests/unittests/paris_logement_famille.yaml b/tests/unittests/paris_logement_famille.yaml index bfbd768..84543f3 100644 --- a/tests/unittests/paris_logement_famille.yaml +++ b/tests/unittests/paris_logement_famille.yaml @@ -37,8 +37,7 @@ - enfant1 - enfant2 output: - aide_logement: 361.46 - paris_logement_familles: 63.25 + paris_logement_familles: 128 #63.25 - name: Famille éligible pour l'aide Paris logement car parent monoparental avec trois enfant et ressources < 5000 description: Paris Logement Famille @@ -185,7 +184,7 @@ - enfant1 - enfant2 output: - paris_logement_familles: 113.25 + paris_logement_familles: 128 #113.25 - name: Famille éligible pour l'aide Paris logement car parent monoparental et revenus > 1600 relative_error_margin: 0.02 @@ -223,7 +222,7 @@ - enfant2 - enfant3 output: - paris_logement_familles: 55.730 + paris_logement_familles: 128 # 55.730 - name: Famille non éligible pour l'aide Paris logement car parent monoparental description: Paris Logement Famille @@ -334,7 +333,7 @@ - enfant2 - enfant3 output: - paris_logement_familles: 55.73 + paris_logement_familles: 84 #55.73 - name: Famille éligible pour l'aide Paris logement car un couple avec deux enfant et ressources < 3000 description: Paris Logement Famille diff --git a/tests/unittests/paris_solidarite_2018.yaml b/tests/unittests/paris_solidarite_2018.yaml index eeb94f0..b257aaf 100644 --- a/tests/unittests/paris_solidarite_2018.yaml +++ b/tests/unittests/paris_solidarite_2018.yaml @@ -15,10 +15,10 @@ individus: couple1: age: 35 - salaire_net: 500 + salaire_imposable: 500 couple2: age: 35 - salaire_net: 10 + salaire_imposable: 10 enfant1: age: 8 handicap: true @@ -41,7 +41,7 @@ statut_occupation_logement: locataire_vide handicap: true loyer: 600 - chomage_net: 600 + chomage_imposable: 600 paris_base_ressources_famille: 0 output: paris_logement_psol: 96 @@ -54,7 +54,7 @@ parisien: true statut_occupation_logement: locataire_vide loyer: 600 - salaire_net: 2500 + salaire_imposable: 2500 output: paris_logement_psol: 0 @@ -74,12 +74,12 @@ couple1: age: 65 handicap: true - salaire_net: 900 + salaire_imposable: 900 aah: 500 couple2: age: 65 handicap: true - salaire_net: 5 + salaire_imposable: 5 aah: 5 foyers_fiscaux: foyer_fiscal_0: @@ -104,13 +104,13 @@ couple1: age: 55 aah: 900 - salaire_net: 500 + salaire_imposable: 500 handicap: true couple2: age: 65 handicap: true aah: 100 - salaire_net: 10 + salaire_imposable: 10 foyers_fiscaux: foyer_fiscal_0: declarants: @@ -139,7 +139,7 @@ statut_occupation_logement: locataire_vide handicap: false aah: 500 - salaire_net: 80 + salaire_imposable: 80 output: paris_logement_psol: 0 @@ -152,7 +152,7 @@ statut_occupation_logement: locataire_vide handicap: true aah: 500 - salaire_net: 80 + salaire_imposable: 80 paris_base_ressources_famille: 0 output: paris_logement_psol: 96 @@ -166,7 +166,7 @@ statut_occupation_logement: locataire_vide handicap: true aah: 500 - salaire_net: 450 + salaire_imposable: 450 output: paris_logement_psol: 0 @@ -179,7 +179,7 @@ statut_occupation_logement: locataire_vide handicap: true aah: 800 - salaire_net: 600 + salaire_imposable: 600 output: paris_logement_psol: 0 @@ -197,11 +197,11 @@ individus: couple1: age: 55 - chomage_net: 100 + chomage_imposable: 100 couple2: age: 55 indemnites_stage: 100 - salaire_net: 100 + salaire_imposable: 100 foyers_fiscaux: foyer_fiscal_0: declarants: @@ -236,7 +236,7 @@ individus: couple1: age: 65 - chomage_net: 915 + chomage_imposable: 915 foyer_fiscal: declarants: - couple1 @@ -285,7 +285,7 @@ individus: couple1: age: 65 - salaire_net: 100 + salaire_imposable: 100 couple2: age: 66 foyers_fiscaux: @@ -315,7 +315,7 @@ couple2: age: 55 indemnites_stage: 100 - salaire_net: 100 + salaire_imposable: 100 foyers_fiscaux: foyer_fiscal_0: declarants: From d0f0951ed06d519fb054628c3ee302acd8bfb6b6 Mon Sep 17 00:00:00 2001 From: mtifarine Date: Mon, 10 Aug 2020 10:23:07 +0200 Subject: [PATCH 10/26] Modification de la base ressource individu --- openfisca_paris/paris.py | 41 +++------------------------------------- 1 file changed, 3 insertions(+), 38 deletions(-) diff --git a/openfisca_paris/paris.py b/openfisca_paris/paris.py index d00582f..8a48281 100644 --- a/openfisca_paris/paris.py +++ b/openfisca_paris/paris.py @@ -18,50 +18,15 @@ class paris_base_ressources_i(Variable): definition_period = MONTH def formula(individu, period, legislation): - # dedommagement_victime_amiante, - # indemnites_journalieres_maladie, - # indemnites_journalieres_maladie_professionnelle, - # indemnites_journalieres_maternite, - # indemnites_volontariat - # indemnites_chomage_partiel - # indemnites_journalieres_maladie - # indemnites_stage - # pensions_alimentaires_percues - # pensions_alimentaires_versees_individu - # salaire_imposable - # indemnite_fin_contrat - # chomage_imposable - # revenus_stage_formation_pro - # remuneration_apprenti - # allocation_securisation_professionnelle - # prime_forfaitaire_mensuelle_reprise_activite - # salarie_regime_alsace_moselle - # tns_autres_revenus - # tns_autres_revenus_chiffre_affaires - # tns_benefice_exploitant_agricole - # tns_micro_entreprise_chiffre_affaires - # tns_micro_entreprise_benefice - # tns_auto_entrepreneur_chiffre_affaires - # tns_auto_entrepreneur_benefice - # pensions_invalidite - # rente_accident_travail - # retraite_imposable - # pensions_alimentaires_percues - # pensions_alimentaires_versees_individu - # prestation_compensatoire - # frais_reels - # revenus_locatifs - # revenus_capital - # plus_values_gains_divers - # gains_exceptionnels - last_year = period.last_year + last_3_months = period.period.last_3_months + #Salaires salaire_imposable = individu('salaire_imposable', period) revenus_stage_formation_pro = individu('revenus_stage_formation_pro', period) chomage_imposable = individu('chomage_imposable', period) - retraite_imposable = individu('retraite_imposable', period) + retraite_imposable = individu('retraite_imposable', last_3_months) / 3 #indemnites: From b3c50d33560da70b43b4651a79a88dae8a467eee Mon Sep 17 00:00:00 2001 From: mtifarine Date: Mon, 10 Aug 2020 10:39:27 +0200 Subject: [PATCH 11/26] Modification de la base ressource individu --- openfisca_paris/paris.py | 52 ---------------------------------------- 1 file changed, 52 deletions(-) diff --git a/openfisca_paris/paris.py b/openfisca_paris/paris.py index 8a48281..25f63bf 100644 --- a/openfisca_paris/paris.py +++ b/openfisca_paris/paris.py @@ -69,58 +69,6 @@ def revenus_tns(): return result -class paris_base_ressources_individu(Variable): - value_type = float - label = u"Base de ressources pour un individu, pour l'ensemble des aides de Paris" - entity = Individu - definition_period = MONTH - - def formula(individu, period, legislation): - last_year = period.last_year - - ass = individu('ass', period) - aah = individu('aah', period) - asi = individu('asi', period) - caah = individu('caah', period) - - salaire_net = individu('salaire_net', period) - print(salaire_net) - indemnites_stage = individu('indemnites_stage', period) - smic = legislation(period).paris.smic_net_mensuel - indemnites_stage_imposable = where((smic >= indemnites_stage), indemnites_stage, 0) - revenus_stage_formation_pro = individu('revenus_stage_formation_pro', period) - - chomage_net = individu('chomage_net', period) - allocation_securisation_professionnelle = individu('allocation_securisation_professionnelle', period) - indemnites_journalieres = individu('indemnites_journalieres', period) - indemnites_chomage_partiel = individu('indemnites_chomage_partiel', period) - indemnites_volontariat = individu('indemnites_volontariat', period) - - prestation_compensatoire = individu('prestation_compensatoire', period) - retraite_nette = individu('retraite_nette', period) - - pensions_invalidite = individu('pensions_invalidite', period) - - def revenus_tns(): - revenus_auto_entrepreneur = individu('rpns_auto_entrepreneur_benefice', period, options = [ADD]) - - # Les revenus TNS hors AE sont estimés en se basant sur le revenu N-1 - tns_micro_entreprise_benefice = individu('rpns_micro_entreprise_benefice', last_year) / 12 - tns_benefice_exploitant_agricole = individu('rpns_benefice_exploitant_agricole', last_year) / 12 - tns_autres_revenus = individu('rpns_autres_revenus', last_year) / 12 - - return revenus_auto_entrepreneur + tns_micro_entreprise_benefice + tns_benefice_exploitant_agricole + tns_autres_revenus - - result = ( - ass + aah + asi + caah - + salaire_net + indemnites_stage_imposable + revenus_stage_formation_pro - + chomage_net + allocation_securisation_professionnelle + indemnites_journalieres + indemnites_chomage_partiel + indemnites_volontariat - + prestation_compensatoire + retraite_nette + pensions_invalidite - + revenus_tns() - ) - - return result - class paris_base_ressources_famille(Variable): value_type = float label = u"Base de ressources liée à une famille (à ajouter aux ressources des individus), pour l'ensemble des aides de Paris" From 317b5425ec5207826e1106b43b9749a4de10ab95 Mon Sep 17 00:00:00 2001 From: mtifarine Date: Mon, 10 Aug 2020 12:45:08 +0200 Subject: [PATCH 12/26] Modification de la base ressource individu --- openfisca_paris/paris.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openfisca_paris/paris.py b/openfisca_paris/paris.py index 25f63bf..0e548b6 100644 --- a/openfisca_paris/paris.py +++ b/openfisca_paris/paris.py @@ -20,7 +20,7 @@ class paris_base_ressources_i(Variable): def formula(individu, period, legislation): last_year = period.last_year - last_3_months = period.period.last_3_months + last_3_months = period.last_3_months #Salaires salaire_imposable = individu('salaire_imposable', period) From 619da49143c18d7fccde3a9e8e627ee7adfa158b Mon Sep 17 00:00:00 2001 From: mtifarine Date: Mon, 10 Aug 2020 13:11:19 +0200 Subject: [PATCH 13/26] Modification de la base ressource individu --- openfisca_paris/paris.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openfisca_paris/paris.py b/openfisca_paris/paris.py index 0e548b6..b4e810e 100644 --- a/openfisca_paris/paris.py +++ b/openfisca_paris/paris.py @@ -26,7 +26,7 @@ def formula(individu, period, legislation): salaire_imposable = individu('salaire_imposable', period) revenus_stage_formation_pro = individu('revenus_stage_formation_pro', period) chomage_imposable = individu('chomage_imposable', period) - retraite_imposable = individu('retraite_imposable', last_3_months) / 3 + retraite_imposable = individu('retraite_imposable', last_3_months, options = [ADD]) / 3 #indemnites: From b88b689a8985a2b7a5133f9860b5972a2ba9b867 Mon Sep 17 00:00:00 2001 From: mtifarine Date: Mon, 10 Aug 2020 13:28:58 +0200 Subject: [PATCH 14/26] Correction des tests --- tests/unittests/paris.yaml | 5 ++++- tests/unittests/paris_solidarite.yaml | 13 +++++++++---- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/tests/unittests/paris.yaml b/tests/unittests/paris.yaml index 9684e05..c70451d 100644 --- a/tests/unittests/paris.yaml +++ b/tests/unittests/paris.yaml @@ -13,7 +13,10 @@ ass: 20 aah: 30 caah: 14 - retraite_imposable: 50 + retraite_imposable: + 2019-01: 50 + 2018-12: 50 + 2018-11: 50 allocation_securisation_professionnelle: 55 prestation_compensatoire: 60 pensions_invalidite: 65 diff --git a/tests/unittests/paris_solidarite.yaml b/tests/unittests/paris_solidarite.yaml index 1c39262..132dc86 100644 --- a/tests/unittests/paris_solidarite.yaml +++ b/tests/unittests/paris_solidarite.yaml @@ -19,15 +19,20 @@ individus: couple1: age: 75 - retraite_imposable: 1052 + retraite_imposable: + 2020-05: 1052 + 2020-04: 1052 + 2020-03: 1052 couple2: age: 55 - retraite_imposable: 450 + retraite_imposable: + 2020-05: 450 + 2020-04: 450 + 2020-03: 450 foyers_fiscaux: foyer_fiscal_0: declarants: - couple1 - couple2 output: - paris_logement_psol: 106 - paris_logement: 95 \ No newline at end of file + paris_logement_psol: 106 \ No newline at end of file From bac62a30a9c91179df0ac5aeec5e3c3cecf4dbe7 Mon Sep 17 00:00:00 2001 From: Mohamed TIFARINE <41685572+mtifarine@users.noreply.github.com> Date: Wed, 29 Sep 2021 16:54:27 +0200 Subject: [PATCH 15/26] Corrige les conditions de la formule Paris logement --- .../paris_logement/aide_pl_apd_couple.yaml | 7 --- .../paris_logement/aide_pl_apd_pers_isol.yaml | 7 --- .../paris/paris_logement/aide_pl_fam.yaml | 7 --- ...f.yaml => plafond_pl_couple_avec_enf.yaml} | 0 ...d.yaml => plafond_pl_couple_sans_enf.yaml} | 6 +-- .../paris/paris_logement/plafond_pl_fam.yaml | 7 --- ...l.yaml => plafond_pl_personne_isolee.yaml} | 3 +- openfisca_paris/paris_logement.py | 45 ++++++++++++------- .../personnes_agees/paris_logement.py | 5 ++- 9 files changed, 38 insertions(+), 49 deletions(-) delete mode 100644 openfisca_paris/parameters/paris/paris_logement/aide_pl_apd_couple.yaml delete mode 100644 openfisca_paris/parameters/paris/paris_logement/aide_pl_apd_pers_isol.yaml delete mode 100644 openfisca_paris/parameters/paris/paris_logement/aide_pl_fam.yaml rename openfisca_paris/parameters/paris/paris_logement/{plafond_pl_avec_enf.yaml => plafond_pl_couple_avec_enf.yaml} (100%) rename openfisca_paris/parameters/paris/paris_logement/{plafond_pl_apd.yaml => plafond_pl_couple_sans_enf.yaml} (82%) delete mode 100644 openfisca_paris/parameters/paris/paris_logement/plafond_pl_fam.yaml rename openfisca_paris/parameters/paris/paris_logement/{plafond_pl.yaml => plafond_pl_personne_isolee.yaml} (87%) diff --git a/openfisca_paris/parameters/paris/paris_logement/aide_pl_apd_couple.yaml b/openfisca_paris/parameters/paris/paris_logement/aide_pl_apd_couple.yaml deleted file mode 100644 index e750f35..0000000 --- a/openfisca_paris/parameters/paris/paris_logement/aide_pl_apd_couple.yaml +++ /dev/null @@ -1,7 +0,0 @@ -description: Montant de l'aide pour un couple -unit: currency -values: - 2012-01-01: - value: 95.0 - 2015-01-01: - value: 95.0 diff --git a/openfisca_paris/parameters/paris/paris_logement/aide_pl_apd_pers_isol.yaml b/openfisca_paris/parameters/paris/paris_logement/aide_pl_apd_pers_isol.yaml deleted file mode 100644 index ba044aa..0000000 --- a/openfisca_paris/parameters/paris/paris_logement/aide_pl_apd_pers_isol.yaml +++ /dev/null @@ -1,7 +0,0 @@ -description: Montant de l'aide pour une personne isolée -unit: currency -values: - 2012-01-01: - value: 84.0 - 2015-01-01: - value: 84.0 diff --git a/openfisca_paris/parameters/paris/paris_logement/aide_pl_fam.yaml b/openfisca_paris/parameters/paris/paris_logement/aide_pl_fam.yaml deleted file mode 100644 index 0f3eac2..0000000 --- a/openfisca_paris/parameters/paris/paris_logement/aide_pl_fam.yaml +++ /dev/null @@ -1,7 +0,0 @@ -description: Montant de l'aide pour un couple avec enfant -unit: currency -values: - 2012-01-01: - value: 116.0 - 2015-01-01: - value: 116.0 diff --git a/openfisca_paris/parameters/paris/paris_logement/plafond_pl_avec_enf.yaml b/openfisca_paris/parameters/paris/paris_logement/plafond_pl_couple_avec_enf.yaml similarity index 100% rename from openfisca_paris/parameters/paris/paris_logement/plafond_pl_avec_enf.yaml rename to openfisca_paris/parameters/paris/paris_logement/plafond_pl_couple_avec_enf.yaml diff --git a/openfisca_paris/parameters/paris/paris_logement/plafond_pl_apd.yaml b/openfisca_paris/parameters/paris/paris_logement/plafond_pl_couple_sans_enf.yaml similarity index 82% rename from openfisca_paris/parameters/paris/paris_logement/plafond_pl_apd.yaml rename to openfisca_paris/parameters/paris/paris_logement/plafond_pl_couple_sans_enf.yaml index 2247d41..8171b82 100644 --- a/openfisca_paris/parameters/paris/paris_logement/plafond_pl_apd.yaml +++ b/openfisca_paris/parameters/paris/paris_logement/plafond_pl_couple_sans_enf.yaml @@ -5,11 +5,11 @@ values: value: 1140.0 2015-01-01: value: 1140.0 - 2017-01-01: - value: 1160.0 2018-01-01: value: 1180.0 2019-01-01: value: 1210.0 2020-01-01: - value: 1220.0 + value: 1220.00 + 2021-10-01: + value: 1240.00 diff --git a/openfisca_paris/parameters/paris/paris_logement/plafond_pl_fam.yaml b/openfisca_paris/parameters/paris/paris_logement/plafond_pl_fam.yaml deleted file mode 100644 index 8c4b0e9..0000000 --- a/openfisca_paris/parameters/paris/paris_logement/plafond_pl_fam.yaml +++ /dev/null @@ -1,7 +0,0 @@ -description: plafond des ressources mensuelles pour un couple avec enfant -unit: currency -values: - 2012-01-01: - value: 1600.0 - 2015-01-01: - value: 1600.0 diff --git a/openfisca_paris/parameters/paris/paris_logement/plafond_pl.yaml b/openfisca_paris/parameters/paris/paris_logement/plafond_pl_personne_isolee.yaml similarity index 87% rename from openfisca_paris/parameters/paris/paris_logement/plafond_pl.yaml rename to openfisca_paris/parameters/paris/paris_logement/plafond_pl_personne_isolee.yaml index 4030756..5b94c39 100644 --- a/openfisca_paris/parameters/paris/paris_logement/plafond_pl.yaml +++ b/openfisca_paris/parameters/paris/paris_logement/plafond_pl_personne_isolee.yaml @@ -1,5 +1,4 @@ -description: plafond des ressources mensuelles pour une personne isolée ou un couple - sans enfant +description: plafond des ressources mensuelles pour une personne isolée unit: currency values: 2012-01-01: diff --git a/openfisca_paris/paris_logement.py b/openfisca_paris/paris_logement.py index 7aa05a4..2414aed 100644 --- a/openfisca_paris/paris_logement.py +++ b/openfisca_paris/paris_logement.py @@ -29,8 +29,9 @@ class paris_logement_pa_ph(Variable): def formula(famille, period, legislation): last_month = period.last_month - plafond_pl = legislation(period).paris.paris_logement.plafond_pl - plafond_pl_avec_enf = legislation(period).paris.paris_logement.plafond_pl_avec_enf + plafond_pl_personne_isolee = legislation(period).paris.paris_logement.plafond_pl_personne_isolee + plafond_pl_couple_sans_enf = legislation(period).paris.paris_logement.plafond_pl_couple_sans_enf + plafond_pl_couple_avec_enf = legislation(period).paris.paris_logement.plafond_pl_couple_avec_enf aide_pers_isol = legislation(period).paris.paris_logement.aide_pers_isol aide_couple_ss_enf = legislation(period).paris.paris_logement.aide_couple_ss_enf aide_couple_avec_enf = legislation(period).paris.paris_logement.aide_couple_avec_enf @@ -42,11 +43,16 @@ def formula(famille, period, legislation): nb_enfants = famille('paris_nb_enfants', period) paris_logement_ph_eligibilite = famille('paris_logement_ph_eligibilite', period) - plafond = select([(nb_enfants >= 1), (nb_enfants < 1)], [plafond_pl_avec_enf, plafond_pl]) + couple_avec_enfant = personnes_couple * (nb_enfants == 1) + couple_sans_enfant = personnes_couple * (nb_enfants == 0) + personne_isolee = not_(personnes_couple) * (nb_enfants == 0) + + plafond = select([couple_avec_enfant, couple_sans_enfant, personne_isolee], + [plafond_pl_couple_avec_enf, plafond_pl_couple_sans_enf, plafond_pl_personne_isolee]) condition_ressource = base_ressources <= plafond - montant_aide = select([personnes_couple * (nb_enfants > 0), personnes_couple, - ((personnes_couple != 1) * (nb_enfants == 0)), ((personnes_couple != 1) * (nb_enfants >= 1))], - [aide_couple_avec_enf, aide_couple_ss_enf, aide_pers_isol, 0]) + + montant_aide = select([couple_avec_enfant, couple_sans_enfant, personne_isolee], + [aide_couple_avec_enf, aide_couple_ss_enf, aide_pers_isol]) result_montant = where((montant_aide > loyer_net), (montant_aide - (montant_aide - loyer_net)), montant_aide) @@ -91,15 +97,15 @@ def formula(famille, period): class paris_logement_fam(Variable): value_type = float - label = u"Paris Logement pour les couples avec enfant(s)" + label = u"Paris Logement pour les couples avec enfant" entity = Famille definition_period = MONTH def formula(famille, period, legislation): last_month = period.last_month - plafond_pl_fam = legislation(period).paris.paris_logement.plafond_pl_fam - aide_pl_fam = legislation(period).paris.paris_logement.aide_pl_fam + plafond_pl_couple_avec_enf = legislation(period).paris.paris_logement.plafond_pl_couple_avec_enf + aide_couple_avec_enf = legislation(period).paris.paris_logement.aide_couple_avec_enf base_ressources = famille('paris_base_ressources_foyer', last_month) loyer_net = famille('paris_logement_charge_nette_mensuelle', period) @@ -108,9 +114,10 @@ def formula(famille, period, legislation): nb_enfants = famille('paris_nb_enfants', period) paris_logement_elig_fam = famille('paris_logement_elig_fam', period) - condition_ressource = base_ressources <= plafond_pl_fam + condition_ressource = base_ressources <= plafond_pl_couple_avec_enf - montant_aide = where(personnes_couple * (nb_enfants > 0), aide_pl_fam, 0) + couple_avec_enfant = personnes_couple * (nb_enfants == 1) + montant_aide = where(couple_avec_enfant, aide_couple_avec_enf, 0) result = where((montant_aide > loyer_net), (montant_aide - (montant_aide - loyer_net)), montant_aide) @@ -145,9 +152,10 @@ class paris_logement_apd(Variable): def formula(famille, period, legislation): last_month = period.last_month - plafond = legislation(period).paris.paris_logement.plafond_pl_apd - aide_pl_apd_pers_isol = legislation(period).paris.paris_logement.aide_pl_apd_pers_isol - aide_pl_apd_couple = legislation(period).paris.paris_logement.aide_pl_apd_couple + plafond_pl_personne_isolee = legislation(period).paris.paris_logement.plafond_pl_personne_isolee + plafond_pl_couple_sans_enf = legislation(period).paris.paris_logement.plafond_pl_couple_sans_enf + aide_pers_isol = legislation(period).paris.paris_logement.aide_pers_isol + aide_couple_ss_enf = legislation(period).paris.paris_logement.aide_couple_ss_enf base_ressources = famille('paris_base_ressources_foyer', last_month) @@ -155,11 +163,18 @@ def formula(famille, period, legislation): loyer_net = famille('paris_logement_charge_nette_mensuelle', period) personnes_couple = famille('en_couple', period) + nb_enfants = famille('paris_nb_enfants', period) paris_logement_elig_apd = famille('paris_logement_elig_apd', period) + couple_sans_enfant = personnes_couple * (nb_enfants == 0) + personne_isolee = not_(personnes_couple) * (nb_enfants == 0) + plafond = select([couple_sans_enfant, personne_isolee], + [plafond_pl_couple_sans_enf, plafond_pl_personne_isolee]) + condition_ressources = (base_ressources - indemnite) <= plafond - montant_aide = where(personnes_couple, aide_pl_apd_couple, aide_pl_apd_pers_isol) + montant_aide = select([couple_sans_enfant, personne_isolee], + [aide_couple_ss_enf, aide_pers_isol]) result = where((montant_aide > loyer_net), (montant_aide - (montant_aide - loyer_net)), montant_aide) diff --git a/openfisca_paris/personnes_agees/paris_logement.py b/openfisca_paris/personnes_agees/paris_logement.py index bcfbecc..23fd38f 100644 --- a/openfisca_paris/personnes_agees/paris_logement.py +++ b/openfisca_paris/personnes_agees/paris_logement.py @@ -62,8 +62,11 @@ def formula(famille, period, parameters): nb_enfants = famille('paris_nb_enfants', period) param_montant = parameters(period).paris.personnes_agees.paris_logement.montant + couple_avec_enfant = en_couple * (nb_enfants == 1) + couple_sans_enfant = en_couple * (nb_enfants == 0) + personne_isolee = not_(en_couple) * (nb_enfants == 0) montant = select( - [not_(en_couple), nb_enfants < 1, nb_enfants >=1], + [personne_isolee , couple_sans_enfant, couple_avec_enfant], [param_montant.personne_isolee, param_montant.couple_sans_enfant, param_montant.couple_avec_enfant] ) charge_logement = famille('paris_logement_charge_nette_mensuelle', period) From ea6a99c7bd2ebc5fc6e125f3830d075708dfd94f Mon Sep 17 00:00:00 2001 From: Mohamed TIFARINE <41685572+mtifarine@users.noreply.github.com> Date: Sun, 12 Dec 2021 22:36:53 +0100 Subject: [PATCH 16/26] Renomme les variables TNS par RPNS --- openfisca_paris/paris.py | 18 +++++++++--------- tests/unittests/paris_logement.yaml | 2 +- tests/unittests/paris_logement_famille.yaml | 6 +++--- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/openfisca_paris/paris.py b/openfisca_paris/paris.py index b4e810e..495a0cf 100644 --- a/openfisca_paris/paris.py +++ b/openfisca_paris/paris.py @@ -46,17 +46,17 @@ def formula(individu, period, legislation): prestation_compensatoire = individu('prestation_compensatoire', period) pensions_invalidite = individu('pensions_invalidite', period) - def revenus_tns(): - revenus_auto_entrepreneur = individu('tns_auto_entrepreneur_benefice', period, options = [ADD]) + def revenus_rpns(): + revenus_auto_entrepreneur = individu('rpns_auto_entrepreneur_benefice', period, options = [ADD]) - # Les revenus TNS hors AE sont estimés en se basant sur le revenu N-1 - tns_micro_entreprise_benefice = individu('tns_micro_entreprise_benefice', last_year) / 12 - tns_benefice_exploitant_agricole = individu('tns_benefice_exploitant_agricole', last_year) / 12 - tns_autres_revenus = individu('tns_autres_revenus', last_year) / 12 + # Les revenus RPNS hors AE sont estimés en se basant sur le revenu N-1 + rpns_micro_entreprise_benefice = individu('rpns_micro_entreprise_benefice', last_year) / 12 + rpns_benefice_exploitant_agricole = individu('rpns_benefice_exploitant_agricole', last_year) / 12 + rpns_autres_revenus = individu('rpns_autres_revenus', last_year) / 12 return ( - revenus_auto_entrepreneur + tns_micro_entreprise_benefice + tns_benefice_exploitant_agricole - + tns_autres_revenus + revenus_auto_entrepreneur + rpns_micro_entreprise_benefice + rpns_benefice_exploitant_agricole + + rpns_autres_revenus ) result = ( @@ -64,7 +64,7 @@ def revenus_tns(): + salaire_imposable + indemnites_stage_imposable + revenus_stage_formation_pro + chomage_imposable + allocation_securisation_professionnelle + indemnites_journalieres + indemnites_chomage_partiel + indemnites_volontariat + prestation_compensatoire + retraite_imposable+ pensions_invalidite - + revenus_tns() + + revenus_rpns() ) return result diff --git a/tests/unittests/paris_logement.yaml b/tests/unittests/paris_logement.yaml index 5225ef1..78e47d7 100644 --- a/tests/unittests/paris_logement.yaml +++ b/tests/unittests/paris_logement.yaml @@ -487,7 +487,7 @@ - enfant1 - enfant2 output: - aide_logement: 361.46 #437.1 + aide_logement: 437.1 paris_condition_taux_effort: false paris_logement: 0 diff --git a/tests/unittests/paris_logement_famille.yaml b/tests/unittests/paris_logement_famille.yaml index 84543f3..07f867a 100644 --- a/tests/unittests/paris_logement_famille.yaml +++ b/tests/unittests/paris_logement_famille.yaml @@ -184,7 +184,7 @@ - enfant1 - enfant2 output: - paris_logement_familles: 128 #113.25 + paris_logement_familles: 113.25 - name: Famille éligible pour l'aide Paris logement car parent monoparental et revenus > 1600 relative_error_margin: 0.02 @@ -222,7 +222,7 @@ - enfant2 - enfant3 output: - paris_logement_familles: 128 # 55.730 + paris_logement_familles: 55.730 - name: Famille non éligible pour l'aide Paris logement car parent monoparental description: Paris Logement Famille @@ -333,7 +333,7 @@ - enfant2 - enfant3 output: - paris_logement_familles: 84 #55.73 + paris_logement_familles: 55.73 - name: Famille éligible pour l'aide Paris logement car un couple avec deux enfant et ressources < 3000 description: Paris Logement Famille From d2aad5ca3b4a2c6dec1339069d03166df122c339 Mon Sep 17 00:00:00 2001 From: Amine Date: Fri, 20 Dec 2019 09:53:50 +0100 Subject: [PATCH 17/26] =?UTF-8?q?Revalorisation=20les=20bar=C3=A8mes=20Par?= =?UTF-8?q?is=20Solidaire=20et=20CSP=20=C3=A0=20partir=20du=2001/01/2020?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../paris_complement_sante.yaml | 4 ++++ .../paris/personnes_agees/psol.yaml | 6 ++++- .../paris_complement_sante.yaml | 22 ++++++++++++++----- .../paris/personnes_handicapees/psol.yaml | 4 ++++ 4 files changed, 29 insertions(+), 7 deletions(-) diff --git a/openfisca_paris/parameters/paris/personnes_agees/paris_complement_sante.yaml b/openfisca_paris/parameters/paris/personnes_agees/paris_complement_sante.yaml index 6279054..0f95dc2 100644 --- a/openfisca_paris/parameters/paris/personnes_agees/paris_complement_sante.yaml +++ b/openfisca_paris/parameters/paris/personnes_agees/paris_complement_sante.yaml @@ -12,6 +12,8 @@ plafond: value: 915.0 2019-01-01: value: 980.0 + 2020-01-01: + value: 1015.0 en_couple: unit: currency values: @@ -23,6 +25,8 @@ plafond: value: 1453.0 2019-01-01: value: 1553.0 + 2020-01-01: + value: 1608.0 montant: unit: currency values: diff --git a/openfisca_paris/parameters/paris/personnes_agees/psol.yaml b/openfisca_paris/parameters/paris/personnes_agees/psol.yaml index 8f2610c..82f2618 100644 --- a/openfisca_paris/parameters/paris/personnes_agees/psol.yaml +++ b/openfisca_paris/parameters/paris/personnes_agees/psol.yaml @@ -12,6 +12,8 @@ plafond: value: 945.0 2019-01-01: value: 980.0 + 2020-01-01: + value: 1015.0 couple: unit: currency values: @@ -24,4 +26,6 @@ plafond: 2018-04-01: value: 1498.0 2019-01-01: - value: 1553.0 + value: 1553.0 + 2020-01-01: + value: 1608.0 diff --git a/openfisca_paris/parameters/paris/personnes_handicapees/paris_complement_sante.yaml b/openfisca_paris/parameters/paris/personnes_handicapees/paris_complement_sante.yaml index b63ad55..acfa5ad 100644 --- a/openfisca_paris/parameters/paris/personnes_handicapees/paris_complement_sante.yaml +++ b/openfisca_paris/parameters/paris/personnes_handicapees/paris_complement_sante.yaml @@ -2,15 +2,25 @@ plafond: personne_isolee: unit: currency values: - 2012-01-01: 965.0 - 2019-01-01: 965.0 + 2012-01-01: + value: 965.0 + 2019-01-01: + value: 965.0 + 2020-01-01: + value: 1015.0 en_couple: unit: currency values: - 2012-01-01: 1553.0 - 2019-01-01: 1553.0 + 2012-01-01: + value: 1553.0 + 2019-01-01: + value: 1553.0 + 2020-01-01: + value: 1608.0 montant: unit: currency values: - 2012-01-01: 468.0 - 2019-01-01: 468.0 + 2012-01-01: + value: 468.0 + 2019-01-01: + value: 468.0 diff --git a/openfisca_paris/parameters/paris/personnes_handicapees/psol.yaml b/openfisca_paris/parameters/paris/personnes_handicapees/psol.yaml index 149f8b7..c0deaa6 100644 --- a/openfisca_paris/parameters/paris/personnes_handicapees/psol.yaml +++ b/openfisca_paris/parameters/paris/personnes_handicapees/psol.yaml @@ -10,6 +10,8 @@ plafond: value: 915.0 2019-01-01: value: 965.0 + 2020-01-01: + value: 1015.0 couple: unit: currency values: @@ -23,3 +25,5 @@ plafond: value: 1498.0 2019-01-01: value: 1553.0 + 2020-01-01: + value: 1608.0 From 660eb76d39ce4d1ab81918ec6b2911aa1234970f Mon Sep 17 00:00:00 2001 From: Amine Date: Tue, 18 Feb 2020 16:42:08 +0100 Subject: [PATCH 18/26] =?UTF-8?q?Fiabilisation=20de=20la=20base=20ressourc?= =?UTF-8?q?es=20Paris=20CSP=20handicap=C3=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../paris_complement_sante.py | 17 +-- .../paris_complement_sante.yaml | 102 ++++++++++++- .../paris_complement_sante.yaml | 136 +++++++++++++++++- 3 files changed, 239 insertions(+), 16 deletions(-) diff --git a/openfisca_paris/personnes_handicapees/paris_complement_sante.py b/openfisca_paris/personnes_handicapees/paris_complement_sante.py index cd55d4b..69c2f5b 100644 --- a/openfisca_paris/personnes_handicapees/paris_complement_sante.py +++ b/openfisca_paris/personnes_handicapees/paris_complement_sante.py @@ -8,26 +8,23 @@ class paris_complement_sante_ph_eligibilite(Variable): value_type = bool - entity = Famille + entity = Individu definition_period = MONTH label = u"Éligibilité au Complément Santé Paris pour les personnes handicapées" reference = "Article III.1.2.b.3 du règlement municipal du CASVP" - def formula(famille, period, parameters): - - personne_handicapee = famille.members('paris_personne_handicapee', period) - personnes_handicapees = famille.any(personne_handicapee) + def formula(individu, period, parameters): + personne_handicapee = individu('paris_personne_handicapee', period) - base_ressources = famille('paris_base_ressources_couple', period.last_month) + base_ressources = individu('paris_base_ressources_i', period) param_plafond = parameters(period).paris.personnes_handicapees.paris_complement_sante.plafond - en_couple = famille('en_couple', period) - plafond_1 = where(en_couple, param_plafond.en_couple, param_plafond.personne_isolee) + plafond_1 = param_plafond.personne_isolee param_aah = parameters(period).prestations_sociales.prestations_etat_de_sante.invalidite plafond_2 = param_aah.aah.montant + param_aah.caah.majoration_vie_autonome - return personnes_handicapees * (base_ressources <= max_(plafond_1, plafond_2)) + return personne_handicapee * (base_ressources <= max_(plafond_1, plafond_2)) class paris_complement_sante_ph_montant(Variable): @@ -55,7 +52,7 @@ class paris_complement_sante_ph(Variable): def formula(famille, period, parameters): - eligibilite = famille('paris_complement_sante_ph_eligibilite', period) + eligibilite = famille.demandeur('paris_complement_sante_ph_eligibilite', period) montant = famille('paris_complement_sante_ph_montant', period) return eligibilite * montant diff --git a/tests/unittests/personnes_agees/paris_complement_sante.yaml b/tests/unittests/personnes_agees/paris_complement_sante.yaml index b0aa177..088416f 100644 --- a/tests/unittests/personnes_agees/paris_complement_sante.yaml +++ b/tests/unittests/personnes_agees/paris_complement_sante.yaml @@ -2,7 +2,7 @@ period: 2019-02 input: paris_personne_agee: [false, true, true] - paris_base_ressources_couple: + paris_base_ressources_couple: 2019-01: [980, 980, 981] output: paris_complement_sante_pa_eligibilite: [false, true, false] @@ -12,7 +12,7 @@ input: paris_personne_agee: [false, true, true] en_couple: [true, true, true] - paris_base_ressources_couple: + paris_base_ressources_couple: 2019-01: [1553, 1553, 1554] output: paris_complement_sante_pa_eligibilite: [false, true, false] @@ -33,3 +33,101 @@ paris_complement_sante_pa_montant: [100, 100] output: paris_complement_sante_pa: [100, 0] + +- name: couple, 2 Personnes âgées, droit à CSP + period: 2020-01 + input: + famille: + parents: ['personne1', 'personne2'] + parisien: true + paris_base_ressources_famille: + 2019-12: 0 + menage: + personne_de_reference: personne1 + conjoint: personne2 + statut_occupation_logement: locataire_vide + logement_conventionne: true + depcom: 75012 + loyer: 599 + charges_locatives: 65 + individus: + personne1: + activite: retraite + date_naissance: 1940-06-05 + retraite_imposable: + 2019-12: 806.51 + personne2: + activite: retraite + date_naissance: 1943-06-05 + retraite_imposable: + 2019-12: 578.06 + foyer_fiscal: + declarants: [personne1, personne2] + output: + paris_complement_sante_pa: 468 + +- name: couple, une PA et une PH, droit à CSP + period: 2020-01 + input: + famille: + parents: ['personne1', 'personne2'] + parisien: true + paris_base_ressources_famille: + 2019-12: 0 + aide_logement: + 2019-12: 170 + menage: + personne_de_reference: personne1 + conjoint: personne2 + statut_occupation_logement: locataire_vide + logement_conventionne: true + depcom: 75012 + loyer: 599 + charges_locatives: 65 + individus: + personne1: + activite: retraite + date_naissance: 1940-06-05 + retraite_imposable: + 2019-12: 806.51 + personne2: + date_naissance: 1963-08-05 + handicap: true + aah: + 2019-12: 723 + foyer_fiscal: + declarants: [personne1, personne2] + output: + paris_complement_sante_pa: 468 + +- name: couple, une PA + une personne non ouvre droit, droit à CSP + period: 2020-01 + input: + famille: + parents: ['personne1', 'personne2'] + parisien: true + paris_base_ressources_famille: + 2019-12: 0 + aide_logement: + 2019-12: 170 + cmu_c: false + menage: + personne_de_reference: personne1 + conjoint: personne2 + statut_occupation_logement: locataire_vide + logement_conventionne: true + depcom: 75012 + loyer: 659 + charges_locatives: 45 + individus: + personne1: + activite: retraite + date_naissance: 1950-06-05 + retraite_imposable: + 2019-12: 1336.38 + personne2: + date_naissance: 1963-08-05 + foyer_fiscal: + declarants: [personne1, personne2] + output: + paris_complement_sante_pa: 468 diff --git a/tests/unittests/personnes_handicapees/paris_complement_sante.yaml b/tests/unittests/personnes_handicapees/paris_complement_sante.yaml index 7f51e2a..0095315 100644 --- a/tests/unittests/personnes_handicapees/paris_complement_sante.yaml +++ b/tests/unittests/personnes_handicapees/paris_complement_sante.yaml @@ -2,8 +2,7 @@ period: 2019-02 input: paris_personne_handicapee: [false, true, true] - paris_base_ressources_couple: - 2019-01: [965, 965, 966] + paris_base_ressources_i: [965, 965, 966] output: paris_complement_sante_ph_eligibilite: [false, true, false] @@ -12,8 +11,7 @@ input: paris_personne_handicapee: [false, true, true] en_couple: [true, true, true] - paris_base_ressources_couple: - 2019-01: [1553, 1553, 1554] + paris_base_ressources_i: [963, 963, 968] output: paris_complement_sante_ph_eligibilite: [false, true, false] @@ -33,3 +31,133 @@ paris_complement_sante_ph_montant: [100, 100] output: paris_complement_sante_ph: [100, 0] + +- name: couple, 2 PH, droit à CSP + period: 2020-01 + input: + famille: + parents: ['personne1', 'personne2'] + parisien: true + paris_base_ressources_famille: + 2019-12: 0 + cmu_c: false + menage: + personne_de_reference: personne1 + conjoint: personne2 + statut_occupation_logement: locataire_vide + logement_conventionne: true + depcom: 75012 + loyer: 700 + charges_locatives: 45 + individus: + personne1: + date_naissance: 1980-08-05 + handicap: true + aah: + 2019-12: 900 + personne2: + date_naissance: 1983-08-05 + handicap: true + aah: + 2019-12: 900 + foyer_fiscal: + declarants: [personne1, personne2] + output: + paris_complement_sante_ph: 468 + +- name: couple, une PH et une PA, droit à CSP/ OK) + period: 2020-01 + input: + famille: + parents: ['personne1', 'personne2'] + parisien: true + paris_base_ressources_famille: + 2019-12: 0 + menage: + personne_de_reference: personne1 + conjoint: personne2 + statut_occupation_logement: locataire_vide + logement_conventionne: true + depcom: 75012 + loyer: 700 + charges_locatives: 45 + individus: + personne1: + date_naissance: 1980-08-05 + handicap: true + aah: + 2019-12: 725 + personne2: + date_naissance: 1953-08-05 + activite: retraite + retraite_imposable: + 2019-12: 2336.38 + foyer_fiscal: + declarants: [personne1, personne2] + output: + paris_complement_sante_ph: 468 + +- name: couple, une PH et une PA, droit à CSP OK + period: 2020-01 + input: + famille: + parents: ['personne1', 'personne2'] + parisien: true + paris_base_ressources_famille: + 2019-12: 0 + menage: + personne_de_reference: personne1 + conjoint: personne2 + statut_occupation_logement: locataire_vide + logement_conventionne: true + depcom: 75012 + loyer: 700 + charges_locatives: 45 + individus: + personne1: + date_naissance: 1980-08-05 + handicap: true + aah: + 2019-12: 725 + personne2: + date_naissance: 1953-08-05 + activite: retraite + retraite_imposable: + 2019-12: 2336.38 + foyer_fiscal: + declarants: [personne1, personne2] + output: + paris_complement_sante_ph: 468 + +- name: couple, une PH et une personne non ouvre droit, droit à CSP OK + period: 2020-01 + input: + famille: + parents: ['personne1', 'personne2'] + parisien: true + paris_base_ressources_famille: + 2019-12: 0 + + menage: + personne_de_reference: personne1 + conjoint: personne2 + statut_occupation_logement: locataire_vide + logement_conventionne: true + depcom: 75012 + loyer: 700 + charges_locatives: 45 + individus: + personne1: + date_naissance: 1980-08-05 + handicap: true + aah: + 2019-12: 725 + personne2: + date_naissance: 1953-08-05 + activite: retraite + salaire_imposable: + 2019-12: 900 + foyer_fiscal: + declarants: [personne1, personne2] + output: + paris_complement_sante_ph: 468 From caeacd4f99f1c608bd277509b43ee5d760b7afa6 Mon Sep 17 00:00:00 2001 From: Amine Date: Wed, 4 Mar 2020 16:35:35 +0100 Subject: [PATCH 19/26] Corrige lint --- .../unittests/personnes_handicapees/paris_complement_sante.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/unittests/personnes_handicapees/paris_complement_sante.yaml b/tests/unittests/personnes_handicapees/paris_complement_sante.yaml index 0095315..96a2f78 100644 --- a/tests/unittests/personnes_handicapees/paris_complement_sante.yaml +++ b/tests/unittests/personnes_handicapees/paris_complement_sante.yaml @@ -137,7 +137,6 @@ parisien: true paris_base_ressources_famille: 2019-12: 0 - menage: personne_de_reference: personne1 conjoint: personne2 From 2e93b444efbc9de0e10b241322998a47d5796482 Mon Sep 17 00:00:00 2001 From: mtifarine Date: Wed, 25 Mar 2020 18:21:13 +0100 Subject: [PATCH 20/26] Revalorisation de l'aide de logement de Paris --- openfisca_paris/parameters/paris/paris_logement/plafond_pl.yaml | 2 ++ .../parameters/paris/paris_logement/plafond_pl_apd.yaml | 2 ++ openfisca_paris/parameters/paris/plfm/premier_plafond_plfm.yaml | 2 ++ 3 files changed, 6 insertions(+) diff --git a/openfisca_paris/parameters/paris/paris_logement/plafond_pl.yaml b/openfisca_paris/parameters/paris/paris_logement/plafond_pl.yaml index 50101bd..4030756 100644 --- a/openfisca_paris/parameters/paris/paris_logement/plafond_pl.yaml +++ b/openfisca_paris/parameters/paris/paris_logement/plafond_pl.yaml @@ -10,3 +10,5 @@ values: value: 1180.0 2019-01-01: value: 1210.0 + 2020-01-01: + value: 1220.00 diff --git a/openfisca_paris/parameters/paris/paris_logement/plafond_pl_apd.yaml b/openfisca_paris/parameters/paris/paris_logement/plafond_pl_apd.yaml index 1ab3d3d..2247d41 100644 --- a/openfisca_paris/parameters/paris/paris_logement/plafond_pl_apd.yaml +++ b/openfisca_paris/parameters/paris/paris_logement/plafond_pl_apd.yaml @@ -11,3 +11,5 @@ values: value: 1180.0 2019-01-01: value: 1210.0 + 2020-01-01: + value: 1220.0 diff --git a/openfisca_paris/parameters/paris/plfm/premier_plafond_plfm.yaml b/openfisca_paris/parameters/paris/plfm/premier_plafond_plfm.yaml index 29d2b74..27a0d18 100644 --- a/openfisca_paris/parameters/paris/plfm/premier_plafond_plfm.yaml +++ b/openfisca_paris/parameters/paris/plfm/premier_plafond_plfm.yaml @@ -9,3 +9,5 @@ values: value: 1180.0 2019-01-01: value: 1210.0 + 2020-01-01: + value: 1220.0 From 162c0436e53aac117cb85c177f780c63ca8cbd62 Mon Sep 17 00:00:00 2001 From: mtifarine Date: Wed, 5 Aug 2020 15:40:22 +0200 Subject: [PATCH 21/26] Fiabilisation de la base ressources aides Paris --- openfisca_paris/paris.py | 96 ++++++++- tests/unittests/paris_solidarite.yaml | 290 ++------------------------ 2 files changed, 108 insertions(+), 278 deletions(-) diff --git a/openfisca_paris/paris.py b/openfisca_paris/paris.py index 447085a..d00582f 100644 --- a/openfisca_paris/paris.py +++ b/openfisca_paris/paris.py @@ -17,6 +17,99 @@ class paris_base_ressources_i(Variable): entity = Individu definition_period = MONTH + def formula(individu, period, legislation): + # dedommagement_victime_amiante, + # indemnites_journalieres_maladie, + # indemnites_journalieres_maladie_professionnelle, + # indemnites_journalieres_maternite, + # indemnites_volontariat + # indemnites_chomage_partiel + # indemnites_journalieres_maladie + # indemnites_stage + # pensions_alimentaires_percues + # pensions_alimentaires_versees_individu + # salaire_imposable + # indemnite_fin_contrat + # chomage_imposable + # revenus_stage_formation_pro + # remuneration_apprenti + # allocation_securisation_professionnelle + # prime_forfaitaire_mensuelle_reprise_activite + # salarie_regime_alsace_moselle + # tns_autres_revenus + # tns_autres_revenus_chiffre_affaires + # tns_benefice_exploitant_agricole + # tns_micro_entreprise_chiffre_affaires + # tns_micro_entreprise_benefice + # tns_auto_entrepreneur_chiffre_affaires + # tns_auto_entrepreneur_benefice + # pensions_invalidite + # rente_accident_travail + # retraite_imposable + # pensions_alimentaires_percues + # pensions_alimentaires_versees_individu + # prestation_compensatoire + # frais_reels + # revenus_locatifs + # revenus_capital + # plus_values_gains_divers + # gains_exceptionnels + + + last_year = period.last_year + #Salaires + salaire_imposable = individu('salaire_imposable', period) + revenus_stage_formation_pro = individu('revenus_stage_formation_pro', period) + chomage_imposable = individu('chomage_imposable', period) + retraite_imposable = individu('retraite_imposable', period) + + + #indemnites: + indemnites_stage = individu('indemnites_stage', period) + smic = legislation(period).paris.smic_net_mensuel + indemnites_stage_imposable = where((smic >= indemnites_stage), indemnites_stage, 0) + indemnites_journalieres = individu('indemnites_journalieres', period) + indemnites_chomage_partiel = individu('indemnites_chomage_partiel', period) + indemnites_volontariat = individu('indemnites_volontariat', period) + + #pensions + ass = individu('ass', period) + aah = individu('aah', period) + asi = individu('asi', period) + caah = individu('caah', period) + allocation_securisation_professionnelle = individu('allocation_securisation_professionnelle', period) + prestation_compensatoire = individu('prestation_compensatoire', period) + pensions_invalidite = individu('pensions_invalidite', period) + + def revenus_tns(): + revenus_auto_entrepreneur = individu('tns_auto_entrepreneur_benefice', period, options = [ADD]) + + # Les revenus TNS hors AE sont estimés en se basant sur le revenu N-1 + tns_micro_entreprise_benefice = individu('tns_micro_entreprise_benefice', last_year) / 12 + tns_benefice_exploitant_agricole = individu('tns_benefice_exploitant_agricole', last_year) / 12 + tns_autres_revenus = individu('tns_autres_revenus', last_year) / 12 + + return ( + revenus_auto_entrepreneur + tns_micro_entreprise_benefice + tns_benefice_exploitant_agricole + + tns_autres_revenus + ) + + result = ( + ass + aah + asi + caah + + salaire_imposable + indemnites_stage_imposable + revenus_stage_formation_pro + + chomage_imposable + allocation_securisation_professionnelle + indemnites_journalieres + indemnites_chomage_partiel + indemnites_volontariat + + prestation_compensatoire + retraite_imposable+ pensions_invalidite + + revenus_tns() + ) + + return result + +class paris_base_ressources_individu(Variable): + value_type = float + label = u"Base de ressources pour un individu, pour l'ensemble des aides de Paris" + entity = Individu + definition_period = MONTH + def formula(individu, period, legislation): last_year = period.last_year @@ -26,6 +119,7 @@ def formula(individu, period, legislation): caah = individu('caah', period) salaire_net = individu('salaire_net', period) + print(salaire_net) indemnites_stage = individu('indemnites_stage', period) smic = legislation(period).paris.smic_net_mensuel indemnites_stage_imposable = where((smic >= indemnites_stage), indemnites_stage, 0) @@ -39,6 +133,7 @@ def formula(individu, period, legislation): prestation_compensatoire = individu('prestation_compensatoire', period) retraite_nette = individu('retraite_nette', period) + pensions_invalidite = individu('pensions_invalidite', period) def revenus_tns(): @@ -84,7 +179,6 @@ def formula(famille, period): ressources_demandeur = famille.demandeur('paris_base_ressources_i', period) ressources_conjoint = famille.conjoint('paris_base_ressources_i', period) ressources_famille = famille('paris_base_ressources_famille', period) - return where(en_couple, ressources_demandeur + ressources_conjoint + ressources_famille, ressources_demandeur + ressources_famille) diff --git a/tests/unittests/paris_solidarite.yaml b/tests/unittests/paris_solidarite.yaml index 01b329a..1c39262 100644 --- a/tests/unittests/paris_solidarite.yaml +++ b/tests/unittests/paris_solidarite.yaml @@ -1,297 +1,33 @@ -- name: Couple non éligible pour l'aide PSOL car les parents n'ont pas le statut handicapé - description: Personne handicapée - period: 2016-02 - input: - famille: - parents: [couple1, couple2] - enfants: [enfant1] - parisien: true - en_couple: true - menage: - statut_occupation_logement: locataire_vide - personne_de_reference: couple1 - conjoint: couple2 - enfants: [enfant1] - individus: - couple1: - age: 35 - salaire_net: 500 - couple2: - age: 35 - salaire_net: 10 - enfant1: - age: 8 - handicap: true - foyers_fiscaux: - foyer_fiscal_0: - declarants: - - couple1 - - couple2 - personnes_a_charge: - - enfant1 - output: - paris_logement_psol: 0 - -- name: Personne éligible pour l'aide PSOL car revenus < 900 - description: Personne handicape - period: 2016-02 - absolute_error_margin: 0.005 - input: - age: 55 - parisien: true - statut_occupation_logement: locataire_vide - handicap: true - loyer: 600 - chomage_net: 600 - paris_base_ressources_famille: 0 - output: - paris_logement_psol: 92.35 - -- name: Personne non éligible pour l'aide PSOL car revenus > 900 - description: Personne agée - period: 2016-02 - input: - age: 65 - parisien: true - statut_occupation_logement: locataire_vide - loyer: 600 - salaire_net: 2500 - output: - paris_logement_psol: 0 - -- name: Couple non éligible pour l'aide PSOL - description: Personne agée - period: 2016-02 - input: - famille: - parents: [couple1, couple2] - parisien: true - aspa: 100 - menage: - statut_occupation_logement: locataire_vide - personne_de_reference: couple1 - conjoint: couple2 - individus: - couple1: - age: 65 - handicap: true - salaire_net: 900 - aah: 500 - couple2: - age: 65 - handicap: true - salaire_net: 5 - aah: - 2016-01: 5 - foyers_fiscaux: - foyer_fiscal_0: - declarants: - - couple1 - - couple2 - output: - paris_logement_psol: 0 - -- name: Couple non éligible pour l'aide PSOL car statut handicapé et revenus > 900 - description: Personne handicape - period: 2016-02 - input: - famille: - parents: [couple1, couple2] - parisien: true - menage: - statut_occupation_logement: locataire_vide - personne_de_reference: couple1 - conjoint: couple2 - individus: - couple1: - age: 55 - aah: 900 - salaire_net: 500 - handicap: true - couple2: - age: 65 - handicap: true - aah: 100 - salaire_net: 10 - foyers_fiscaux: - foyer_fiscal_0: - declarants: - - couple1 - - couple2 - output: - paris_logement_psol: 0 - -- name: Personne non éligible pour l'aide PSOL car revenus > 900 - description: Personne handicape - period: 2016-02 - input: - age: 55 - parisien: true - statut_occupation_logement: locataire_vide - handicap: true - aah: 2000 - output: - paris_logement_psol: 0 - -- name: Personne non éligible pour l'aide PSOL car elle est pas une personne âgée - description: Personne handicape - period: 2016-02 - input: - age: 55 - parisien: true - statut_occupation_logement: locataire_vide - handicap: false - aah: 500 - salaire_net: 80 - output: - paris_logement_psol: 0 - -- name: Personne éligible pour l'aide PSOL car elle perçoit < 900 - description: Personne handicape - period: 2016-02 - absolute_error_margin: 0.005 - input: - age: 55 - parisien: true - statut_occupation_logement: locataire_vide - handicap: true - aah: 500 - salaire_net: 80 - paris_base_ressources_famille: 0 - output: - paris_logement_psol: 92.35 - -- name: Personne non éligible pour l'aide PSOL car revenus > 900 - description: Personne handicape - period: 2016-02 - input: - age: 55 - parisien: true - statut_occupation_logement: locataire_vide - handicap: true - aah: 500 - salaire_net: 450 - output: - paris_logement_psol: 0 - -- name: Personne non éligible pour l'aide PSOL car revenus > 900 - description: Personne handicape - period: 2016-02 - input: - age: 55 - parisien: true - statut_occupation_logement: locataire_vide - handicap: true - aah: 800 - salaire_net: 600 - output: - paris_logement_psol: 0 - -- name: Couple non éligible pour l'aide PSOL car pas de statut handicapé - description: Personne handicape - period: 2016-02 - input: - famille: - parents: [couple1, couple2] - parisien: true - menage: - statut_occupation_logement: locataire_vide - personne_de_reference: couple1 - conjoint: couple2 - individus: - couple1: - age: 55 - chomage_net: 100 - couple2: - age: 55 - indemnites_stage: 100 - salaire_net: 100 - foyers_fiscaux: - foyer_fiscal_0: - declarants: - - couple1 - - couple2 - output: - paris_logement_psol: 0 - -- name: Personne éligible pour l'aide PSOL car statut personne âgée - description: Personne agée - period: 2016-02 - input: - age: 65 - parisien: true - statut_occupation_logement: locataire_vide - output: - paris_logement_psol: 100 - -- name: Personne non éligible pour l'aide PSOL car revenus = 900 - description: Personne agée - period: 2016-02 - input: - famille: - parents: [couple1] - parisien: true - menage: - statut_occupation_logement: locataire_vide - personne_de_reference: couple1 - individus: - couple1: - age: 65 - chomage_net: 900 - foyer_fiscal: - declarants: - - couple1 - output: - paris_logement_psol: 0 - -- name: Couple avec revenus inférieurs au plancher pour l'aide PSOL - description: Personne agée - period: 2016-02 - input: - famille: - parents: [couple1, couple2] - parisien: true - aspa: 1242 - menage: - statut_occupation_logement: locataire_vide - personne_de_reference: couple1 - conjoint: couple2 - individus: - couple1: - age: 65 - couple2: - age: 66 - foyers_fiscaux: - foyer_fiscal_0: - declarants: - - couple1 - - couple2 - output: - paris_logement_psol: 188 # 1430 - 1242 - - name: Couple éligible à 100% pour PSOL car les revenus inférieurs au plancher description: Personne agée - period: 2016-02 + period: 2020-06 input: famille: parents: [couple1, couple2] parisien: true - aspa: 100 + rsa: 0 + aspa: 0 + aide_logement: 310.55 + reduction_loyer_solidarite: 59.7 + paris_complement_sante: 468 menage: statut_occupation_logement: locataire_vide + logement_conventionne: true personne_de_reference: couple1 conjoint: couple2 + loyer: 980 individus: couple1: - age: 65 + age: 75 + retraite_imposable: 1052 couple2: age: 55 - indemnites_stage: 100 - salaire_net: 100 + retraite_imposable: 450 foyers_fiscaux: foyer_fiscal_0: declarants: - couple1 - couple2 output: - paris_logement_psol: 188 + paris_logement_psol: 106 + paris_logement: 95 \ No newline at end of file From b5d74149242ef76b9c11d5df4bb1d81c6a706349 Mon Sep 17 00:00:00 2001 From: mtifarine Date: Wed, 5 Aug 2020 16:28:42 +0200 Subject: [PATCH 22/26] correction des tests --- tests/unittests/paris.yaml | 6 ++-- tests/unittests/paris_logement.yaml | 24 +++++++-------- tests/unittests/paris_logement_famille.yaml | 28 ++++++++--------- tests/unittests/paris_solidarite_2018.yaml | 34 ++++++++++----------- 4 files changed, 46 insertions(+), 46 deletions(-) diff --git a/tests/unittests/paris.yaml b/tests/unittests/paris.yaml index 01baea6..9684e05 100644 --- a/tests/unittests/paris.yaml +++ b/tests/unittests/paris.yaml @@ -13,7 +13,7 @@ ass: 20 aah: 30 caah: 14 - retraite_nette: 50 + retraite_imposable: 50 allocation_securisation_professionnelle: 55 prestation_compensatoire: 60 pensions_invalidite: 65 @@ -22,9 +22,9 @@ indemnites_volontariat: 85 parent2: asi: 25 - salaire_net: 35 + salaire_imposable: 35 indemnites_chomage_partiel: 40 - chomage_net: 45 + chomage_imposable: 45 enfant1: indemnites_stage: 75 foyers_fiscaux: diff --git a/tests/unittests/paris_logement.yaml b/tests/unittests/paris_logement.yaml index 2b73279..5225ef1 100644 --- a/tests/unittests/paris_logement.yaml +++ b/tests/unittests/paris_logement.yaml @@ -15,7 +15,7 @@ individus: parent1: age: 55 - salaire_net: + salaire_imposable: 2016-01: 1000 parent2: age: 55 @@ -277,7 +277,7 @@ parent1: age: 55 handicap: true - chomage_net: + chomage_imposable: 2016-01: 2000 foyer_fiscal: declarants: @@ -360,7 +360,7 @@ individus: parent1: age: 55 - salaire_net: + salaire_imposable: 2016-01: 1000 parent2: age: 55 @@ -399,7 +399,7 @@ individus: parent1: age: 65 - salaire_net: + salaire_imposable: 2016-01: 1000 parent2: age: 55 @@ -431,7 +431,7 @@ individus: parent1: age: 55 - salaire_net: + salaire_imposable: 2016-01: 500 handicap: true aah: @@ -470,7 +470,7 @@ individus: parent1: age: 55 - salaire_net: + salaire_imposable: 2016-01: 1000 parent2: age: 55 @@ -487,7 +487,7 @@ - enfant1 - enfant2 output: - aide_logement: 437.1 + aide_logement: 361.46 #437.1 paris_condition_taux_effort: false paris_logement: 0 @@ -509,11 +509,11 @@ individus: parent1: age: 55 - salaire_net: + salaire_imposable: 2016-01: 1000 parent2: age: 55 - salaire_net: + salaire_imposable: 2016-01: 1000 enfant1: age: 5 @@ -542,7 +542,7 @@ 2016-01: 200 paris_base_ressources_famille: 2016-01: 0 - salaire_net: + salaire_imposable: 2016-01: 850 output: paris_logement: 84 @@ -557,7 +557,7 @@ loyer: 550 aide_logement: 2016-01: 200 - salaire_net: + salaire_imposable: 2016-01: 1450 output: paris_logement: 0 @@ -588,7 +588,7 @@ loyer: 550 apl: 2016-01: 200 - salaire_net: + salaire_imposable: 2016-01: 850 output: paris_logement: 0 diff --git a/tests/unittests/paris_logement_famille.yaml b/tests/unittests/paris_logement_famille.yaml index 51ebccb..84543f3 100644 --- a/tests/unittests/paris_logement_famille.yaml +++ b/tests/unittests/paris_logement_famille.yaml @@ -16,7 +16,7 @@ individus: parent1: age: 35 - salaire_net: + salaire_imposable: 2015-11: 1000 2015-12: 1000 2016-01: 1000 @@ -37,7 +37,7 @@ - enfant1 - enfant2 output: - paris_logement_familles: 63.25 + paris_logement_familles: 128 #63.25 - name: Famille éligible pour l'aide Paris logement car parent monoparental avec trois enfant et ressources < 5000 description: Paris Logement Famille @@ -55,7 +55,7 @@ individus: parent1: age: 35 - salaire_net: + salaire_imposable: 2015-11: 1000 2015-12: 1000 2016-01: 1000 @@ -95,7 +95,7 @@ individus: parent1: age: 55 - salaire_net: + salaire_imposable: 2016-01: 3580 pensions_alimentaires_percues: 46 enfant1: @@ -169,7 +169,7 @@ individus: parent1: age: 55 - salaire_net: + salaire_imposable: 2016-01: 1900 enfant1: age: 5 @@ -184,7 +184,7 @@ - enfant1 - enfant2 output: - paris_logement_familles: 113.25 + paris_logement_familles: 128 #113.25 - name: Famille éligible pour l'aide Paris logement car parent monoparental et revenus > 1600 relative_error_margin: 0.02 @@ -204,7 +204,7 @@ individus: parent1: age: 55 - salaire_net: + salaire_imposable: 2016-01: 1900 enfant1: age: 5 @@ -222,7 +222,7 @@ - enfant2 - enfant3 output: - paris_logement_familles: 55.730 + paris_logement_familles: 128 # 55.730 - name: Famille non éligible pour l'aide Paris logement car parent monoparental description: Paris Logement Famille @@ -241,7 +241,7 @@ individus: parent1: age: 55 - salaire_net: + salaire_imposable: 2016-01: 1500 enfant1: age: 5 @@ -313,7 +313,7 @@ individus: parent1: age: 55 - salaire_net: + salaire_imposable: 2016-01: 2900 parent2: age: 55 @@ -333,7 +333,7 @@ - enfant2 - enfant3 output: - paris_logement_familles: 55.73 + paris_logement_familles: 84 #55.73 - name: Famille éligible pour l'aide Paris logement car un couple avec deux enfant et ressources < 3000 description: Paris Logement Famille @@ -351,7 +351,7 @@ individus: parent1: age: 55 - salaire_net: + salaire_imposable: 2016-01: 4000 enfant1: age: 5 @@ -388,7 +388,7 @@ individus: parent1: age: 55 - salaire_net: + salaire_imposable: 2016-01: 4900 parent2: age: 55 @@ -432,7 +432,7 @@ individus: parent1: age: 55 - salaire_net: + salaire_imposable: 2016-01: 2900 parent2: age: 55 diff --git a/tests/unittests/paris_solidarite_2018.yaml b/tests/unittests/paris_solidarite_2018.yaml index eeb94f0..b257aaf 100644 --- a/tests/unittests/paris_solidarite_2018.yaml +++ b/tests/unittests/paris_solidarite_2018.yaml @@ -15,10 +15,10 @@ individus: couple1: age: 35 - salaire_net: 500 + salaire_imposable: 500 couple2: age: 35 - salaire_net: 10 + salaire_imposable: 10 enfant1: age: 8 handicap: true @@ -41,7 +41,7 @@ statut_occupation_logement: locataire_vide handicap: true loyer: 600 - chomage_net: 600 + chomage_imposable: 600 paris_base_ressources_famille: 0 output: paris_logement_psol: 96 @@ -54,7 +54,7 @@ parisien: true statut_occupation_logement: locataire_vide loyer: 600 - salaire_net: 2500 + salaire_imposable: 2500 output: paris_logement_psol: 0 @@ -74,12 +74,12 @@ couple1: age: 65 handicap: true - salaire_net: 900 + salaire_imposable: 900 aah: 500 couple2: age: 65 handicap: true - salaire_net: 5 + salaire_imposable: 5 aah: 5 foyers_fiscaux: foyer_fiscal_0: @@ -104,13 +104,13 @@ couple1: age: 55 aah: 900 - salaire_net: 500 + salaire_imposable: 500 handicap: true couple2: age: 65 handicap: true aah: 100 - salaire_net: 10 + salaire_imposable: 10 foyers_fiscaux: foyer_fiscal_0: declarants: @@ -139,7 +139,7 @@ statut_occupation_logement: locataire_vide handicap: false aah: 500 - salaire_net: 80 + salaire_imposable: 80 output: paris_logement_psol: 0 @@ -152,7 +152,7 @@ statut_occupation_logement: locataire_vide handicap: true aah: 500 - salaire_net: 80 + salaire_imposable: 80 paris_base_ressources_famille: 0 output: paris_logement_psol: 96 @@ -166,7 +166,7 @@ statut_occupation_logement: locataire_vide handicap: true aah: 500 - salaire_net: 450 + salaire_imposable: 450 output: paris_logement_psol: 0 @@ -179,7 +179,7 @@ statut_occupation_logement: locataire_vide handicap: true aah: 800 - salaire_net: 600 + salaire_imposable: 600 output: paris_logement_psol: 0 @@ -197,11 +197,11 @@ individus: couple1: age: 55 - chomage_net: 100 + chomage_imposable: 100 couple2: age: 55 indemnites_stage: 100 - salaire_net: 100 + salaire_imposable: 100 foyers_fiscaux: foyer_fiscal_0: declarants: @@ -236,7 +236,7 @@ individus: couple1: age: 65 - chomage_net: 915 + chomage_imposable: 915 foyer_fiscal: declarants: - couple1 @@ -285,7 +285,7 @@ individus: couple1: age: 65 - salaire_net: 100 + salaire_imposable: 100 couple2: age: 66 foyers_fiscaux: @@ -315,7 +315,7 @@ couple2: age: 55 indemnites_stage: 100 - salaire_net: 100 + salaire_imposable: 100 foyers_fiscaux: foyer_fiscal_0: declarants: From 661b9d6ab9afd31fc967f792816b6069c8726fb4 Mon Sep 17 00:00:00 2001 From: mtifarine Date: Mon, 10 Aug 2020 10:23:07 +0200 Subject: [PATCH 23/26] Modification de la base ressource individu --- openfisca_paris/paris.py | 93 +-------------------------- tests/unittests/paris.yaml | 5 +- tests/unittests/paris_solidarite.yaml | 13 ++-- 3 files changed, 16 insertions(+), 95 deletions(-) diff --git a/openfisca_paris/paris.py b/openfisca_paris/paris.py index d00582f..b4e810e 100644 --- a/openfisca_paris/paris.py +++ b/openfisca_paris/paris.py @@ -18,50 +18,15 @@ class paris_base_ressources_i(Variable): definition_period = MONTH def formula(individu, period, legislation): - # dedommagement_victime_amiante, - # indemnites_journalieres_maladie, - # indemnites_journalieres_maladie_professionnelle, - # indemnites_journalieres_maternite, - # indemnites_volontariat - # indemnites_chomage_partiel - # indemnites_journalieres_maladie - # indemnites_stage - # pensions_alimentaires_percues - # pensions_alimentaires_versees_individu - # salaire_imposable - # indemnite_fin_contrat - # chomage_imposable - # revenus_stage_formation_pro - # remuneration_apprenti - # allocation_securisation_professionnelle - # prime_forfaitaire_mensuelle_reprise_activite - # salarie_regime_alsace_moselle - # tns_autres_revenus - # tns_autres_revenus_chiffre_affaires - # tns_benefice_exploitant_agricole - # tns_micro_entreprise_chiffre_affaires - # tns_micro_entreprise_benefice - # tns_auto_entrepreneur_chiffre_affaires - # tns_auto_entrepreneur_benefice - # pensions_invalidite - # rente_accident_travail - # retraite_imposable - # pensions_alimentaires_percues - # pensions_alimentaires_versees_individu - # prestation_compensatoire - # frais_reels - # revenus_locatifs - # revenus_capital - # plus_values_gains_divers - # gains_exceptionnels - last_year = period.last_year + last_3_months = period.last_3_months + #Salaires salaire_imposable = individu('salaire_imposable', period) revenus_stage_formation_pro = individu('revenus_stage_formation_pro', period) chomage_imposable = individu('chomage_imposable', period) - retraite_imposable = individu('retraite_imposable', period) + retraite_imposable = individu('retraite_imposable', last_3_months, options = [ADD]) / 3 #indemnites: @@ -104,58 +69,6 @@ def revenus_tns(): return result -class paris_base_ressources_individu(Variable): - value_type = float - label = u"Base de ressources pour un individu, pour l'ensemble des aides de Paris" - entity = Individu - definition_period = MONTH - - def formula(individu, period, legislation): - last_year = period.last_year - - ass = individu('ass', period) - aah = individu('aah', period) - asi = individu('asi', period) - caah = individu('caah', period) - - salaire_net = individu('salaire_net', period) - print(salaire_net) - indemnites_stage = individu('indemnites_stage', period) - smic = legislation(period).paris.smic_net_mensuel - indemnites_stage_imposable = where((smic >= indemnites_stage), indemnites_stage, 0) - revenus_stage_formation_pro = individu('revenus_stage_formation_pro', period) - - chomage_net = individu('chomage_net', period) - allocation_securisation_professionnelle = individu('allocation_securisation_professionnelle', period) - indemnites_journalieres = individu('indemnites_journalieres', period) - indemnites_chomage_partiel = individu('indemnites_chomage_partiel', period) - indemnites_volontariat = individu('indemnites_volontariat', period) - - prestation_compensatoire = individu('prestation_compensatoire', period) - retraite_nette = individu('retraite_nette', period) - - pensions_invalidite = individu('pensions_invalidite', period) - - def revenus_tns(): - revenus_auto_entrepreneur = individu('rpns_auto_entrepreneur_benefice', period, options = [ADD]) - - # Les revenus TNS hors AE sont estimés en se basant sur le revenu N-1 - tns_micro_entreprise_benefice = individu('rpns_micro_entreprise_benefice', last_year) / 12 - tns_benefice_exploitant_agricole = individu('rpns_benefice_exploitant_agricole', last_year) / 12 - tns_autres_revenus = individu('rpns_autres_revenus', last_year) / 12 - - return revenus_auto_entrepreneur + tns_micro_entreprise_benefice + tns_benefice_exploitant_agricole + tns_autres_revenus - - result = ( - ass + aah + asi + caah - + salaire_net + indemnites_stage_imposable + revenus_stage_formation_pro - + chomage_net + allocation_securisation_professionnelle + indemnites_journalieres + indemnites_chomage_partiel + indemnites_volontariat - + prestation_compensatoire + retraite_nette + pensions_invalidite - + revenus_tns() - ) - - return result - class paris_base_ressources_famille(Variable): value_type = float label = u"Base de ressources liée à une famille (à ajouter aux ressources des individus), pour l'ensemble des aides de Paris" diff --git a/tests/unittests/paris.yaml b/tests/unittests/paris.yaml index 9684e05..c70451d 100644 --- a/tests/unittests/paris.yaml +++ b/tests/unittests/paris.yaml @@ -13,7 +13,10 @@ ass: 20 aah: 30 caah: 14 - retraite_imposable: 50 + retraite_imposable: + 2019-01: 50 + 2018-12: 50 + 2018-11: 50 allocation_securisation_professionnelle: 55 prestation_compensatoire: 60 pensions_invalidite: 65 diff --git a/tests/unittests/paris_solidarite.yaml b/tests/unittests/paris_solidarite.yaml index 1c39262..132dc86 100644 --- a/tests/unittests/paris_solidarite.yaml +++ b/tests/unittests/paris_solidarite.yaml @@ -19,15 +19,20 @@ individus: couple1: age: 75 - retraite_imposable: 1052 + retraite_imposable: + 2020-05: 1052 + 2020-04: 1052 + 2020-03: 1052 couple2: age: 55 - retraite_imposable: 450 + retraite_imposable: + 2020-05: 450 + 2020-04: 450 + 2020-03: 450 foyers_fiscaux: foyer_fiscal_0: declarants: - couple1 - couple2 output: - paris_logement_psol: 106 - paris_logement: 95 \ No newline at end of file + paris_logement_psol: 106 \ No newline at end of file From 492b3560ef8b03c232d6c1e85acbc29b14cd213b Mon Sep 17 00:00:00 2001 From: Mohamed TIFARINE <41685572+mtifarine@users.noreply.github.com> Date: Wed, 29 Sep 2021 16:54:27 +0200 Subject: [PATCH 24/26] Corrige les conditions de la formule Paris logement --- .../paris_logement/aide_pl_apd_couple.yaml | 7 --- .../paris_logement/aide_pl_apd_pers_isol.yaml | 7 --- .../paris/paris_logement/aide_pl_fam.yaml | 7 --- ...f.yaml => plafond_pl_couple_avec_enf.yaml} | 0 ...d.yaml => plafond_pl_couple_sans_enf.yaml} | 6 +-- .../paris/paris_logement/plafond_pl_fam.yaml | 7 --- ...l.yaml => plafond_pl_personne_isolee.yaml} | 3 +- openfisca_paris/paris_logement.py | 45 ++++++++++++------- .../personnes_agees/paris_logement.py | 5 ++- 9 files changed, 38 insertions(+), 49 deletions(-) delete mode 100644 openfisca_paris/parameters/paris/paris_logement/aide_pl_apd_couple.yaml delete mode 100644 openfisca_paris/parameters/paris/paris_logement/aide_pl_apd_pers_isol.yaml delete mode 100644 openfisca_paris/parameters/paris/paris_logement/aide_pl_fam.yaml rename openfisca_paris/parameters/paris/paris_logement/{plafond_pl_avec_enf.yaml => plafond_pl_couple_avec_enf.yaml} (100%) rename openfisca_paris/parameters/paris/paris_logement/{plafond_pl_apd.yaml => plafond_pl_couple_sans_enf.yaml} (82%) delete mode 100644 openfisca_paris/parameters/paris/paris_logement/plafond_pl_fam.yaml rename openfisca_paris/parameters/paris/paris_logement/{plafond_pl.yaml => plafond_pl_personne_isolee.yaml} (87%) diff --git a/openfisca_paris/parameters/paris/paris_logement/aide_pl_apd_couple.yaml b/openfisca_paris/parameters/paris/paris_logement/aide_pl_apd_couple.yaml deleted file mode 100644 index e750f35..0000000 --- a/openfisca_paris/parameters/paris/paris_logement/aide_pl_apd_couple.yaml +++ /dev/null @@ -1,7 +0,0 @@ -description: Montant de l'aide pour un couple -unit: currency -values: - 2012-01-01: - value: 95.0 - 2015-01-01: - value: 95.0 diff --git a/openfisca_paris/parameters/paris/paris_logement/aide_pl_apd_pers_isol.yaml b/openfisca_paris/parameters/paris/paris_logement/aide_pl_apd_pers_isol.yaml deleted file mode 100644 index ba044aa..0000000 --- a/openfisca_paris/parameters/paris/paris_logement/aide_pl_apd_pers_isol.yaml +++ /dev/null @@ -1,7 +0,0 @@ -description: Montant de l'aide pour une personne isolée -unit: currency -values: - 2012-01-01: - value: 84.0 - 2015-01-01: - value: 84.0 diff --git a/openfisca_paris/parameters/paris/paris_logement/aide_pl_fam.yaml b/openfisca_paris/parameters/paris/paris_logement/aide_pl_fam.yaml deleted file mode 100644 index 0f3eac2..0000000 --- a/openfisca_paris/parameters/paris/paris_logement/aide_pl_fam.yaml +++ /dev/null @@ -1,7 +0,0 @@ -description: Montant de l'aide pour un couple avec enfant -unit: currency -values: - 2012-01-01: - value: 116.0 - 2015-01-01: - value: 116.0 diff --git a/openfisca_paris/parameters/paris/paris_logement/plafond_pl_avec_enf.yaml b/openfisca_paris/parameters/paris/paris_logement/plafond_pl_couple_avec_enf.yaml similarity index 100% rename from openfisca_paris/parameters/paris/paris_logement/plafond_pl_avec_enf.yaml rename to openfisca_paris/parameters/paris/paris_logement/plafond_pl_couple_avec_enf.yaml diff --git a/openfisca_paris/parameters/paris/paris_logement/plafond_pl_apd.yaml b/openfisca_paris/parameters/paris/paris_logement/plafond_pl_couple_sans_enf.yaml similarity index 82% rename from openfisca_paris/parameters/paris/paris_logement/plafond_pl_apd.yaml rename to openfisca_paris/parameters/paris/paris_logement/plafond_pl_couple_sans_enf.yaml index 2247d41..8171b82 100644 --- a/openfisca_paris/parameters/paris/paris_logement/plafond_pl_apd.yaml +++ b/openfisca_paris/parameters/paris/paris_logement/plafond_pl_couple_sans_enf.yaml @@ -5,11 +5,11 @@ values: value: 1140.0 2015-01-01: value: 1140.0 - 2017-01-01: - value: 1160.0 2018-01-01: value: 1180.0 2019-01-01: value: 1210.0 2020-01-01: - value: 1220.0 + value: 1220.00 + 2021-10-01: + value: 1240.00 diff --git a/openfisca_paris/parameters/paris/paris_logement/plafond_pl_fam.yaml b/openfisca_paris/parameters/paris/paris_logement/plafond_pl_fam.yaml deleted file mode 100644 index 8c4b0e9..0000000 --- a/openfisca_paris/parameters/paris/paris_logement/plafond_pl_fam.yaml +++ /dev/null @@ -1,7 +0,0 @@ -description: plafond des ressources mensuelles pour un couple avec enfant -unit: currency -values: - 2012-01-01: - value: 1600.0 - 2015-01-01: - value: 1600.0 diff --git a/openfisca_paris/parameters/paris/paris_logement/plafond_pl.yaml b/openfisca_paris/parameters/paris/paris_logement/plafond_pl_personne_isolee.yaml similarity index 87% rename from openfisca_paris/parameters/paris/paris_logement/plafond_pl.yaml rename to openfisca_paris/parameters/paris/paris_logement/plafond_pl_personne_isolee.yaml index 4030756..5b94c39 100644 --- a/openfisca_paris/parameters/paris/paris_logement/plafond_pl.yaml +++ b/openfisca_paris/parameters/paris/paris_logement/plafond_pl_personne_isolee.yaml @@ -1,5 +1,4 @@ -description: plafond des ressources mensuelles pour une personne isolée ou un couple - sans enfant +description: plafond des ressources mensuelles pour une personne isolée unit: currency values: 2012-01-01: diff --git a/openfisca_paris/paris_logement.py b/openfisca_paris/paris_logement.py index 7aa05a4..2414aed 100644 --- a/openfisca_paris/paris_logement.py +++ b/openfisca_paris/paris_logement.py @@ -29,8 +29,9 @@ class paris_logement_pa_ph(Variable): def formula(famille, period, legislation): last_month = period.last_month - plafond_pl = legislation(period).paris.paris_logement.plafond_pl - plafond_pl_avec_enf = legislation(period).paris.paris_logement.plafond_pl_avec_enf + plafond_pl_personne_isolee = legislation(period).paris.paris_logement.plafond_pl_personne_isolee + plafond_pl_couple_sans_enf = legislation(period).paris.paris_logement.plafond_pl_couple_sans_enf + plafond_pl_couple_avec_enf = legislation(period).paris.paris_logement.plafond_pl_couple_avec_enf aide_pers_isol = legislation(period).paris.paris_logement.aide_pers_isol aide_couple_ss_enf = legislation(period).paris.paris_logement.aide_couple_ss_enf aide_couple_avec_enf = legislation(period).paris.paris_logement.aide_couple_avec_enf @@ -42,11 +43,16 @@ def formula(famille, period, legislation): nb_enfants = famille('paris_nb_enfants', period) paris_logement_ph_eligibilite = famille('paris_logement_ph_eligibilite', period) - plafond = select([(nb_enfants >= 1), (nb_enfants < 1)], [plafond_pl_avec_enf, plafond_pl]) + couple_avec_enfant = personnes_couple * (nb_enfants == 1) + couple_sans_enfant = personnes_couple * (nb_enfants == 0) + personne_isolee = not_(personnes_couple) * (nb_enfants == 0) + + plafond = select([couple_avec_enfant, couple_sans_enfant, personne_isolee], + [plafond_pl_couple_avec_enf, plafond_pl_couple_sans_enf, plafond_pl_personne_isolee]) condition_ressource = base_ressources <= plafond - montant_aide = select([personnes_couple * (nb_enfants > 0), personnes_couple, - ((personnes_couple != 1) * (nb_enfants == 0)), ((personnes_couple != 1) * (nb_enfants >= 1))], - [aide_couple_avec_enf, aide_couple_ss_enf, aide_pers_isol, 0]) + + montant_aide = select([couple_avec_enfant, couple_sans_enfant, personne_isolee], + [aide_couple_avec_enf, aide_couple_ss_enf, aide_pers_isol]) result_montant = where((montant_aide > loyer_net), (montant_aide - (montant_aide - loyer_net)), montant_aide) @@ -91,15 +97,15 @@ def formula(famille, period): class paris_logement_fam(Variable): value_type = float - label = u"Paris Logement pour les couples avec enfant(s)" + label = u"Paris Logement pour les couples avec enfant" entity = Famille definition_period = MONTH def formula(famille, period, legislation): last_month = period.last_month - plafond_pl_fam = legislation(period).paris.paris_logement.plafond_pl_fam - aide_pl_fam = legislation(period).paris.paris_logement.aide_pl_fam + plafond_pl_couple_avec_enf = legislation(period).paris.paris_logement.plafond_pl_couple_avec_enf + aide_couple_avec_enf = legislation(period).paris.paris_logement.aide_couple_avec_enf base_ressources = famille('paris_base_ressources_foyer', last_month) loyer_net = famille('paris_logement_charge_nette_mensuelle', period) @@ -108,9 +114,10 @@ def formula(famille, period, legislation): nb_enfants = famille('paris_nb_enfants', period) paris_logement_elig_fam = famille('paris_logement_elig_fam', period) - condition_ressource = base_ressources <= plafond_pl_fam + condition_ressource = base_ressources <= plafond_pl_couple_avec_enf - montant_aide = where(personnes_couple * (nb_enfants > 0), aide_pl_fam, 0) + couple_avec_enfant = personnes_couple * (nb_enfants == 1) + montant_aide = where(couple_avec_enfant, aide_couple_avec_enf, 0) result = where((montant_aide > loyer_net), (montant_aide - (montant_aide - loyer_net)), montant_aide) @@ -145,9 +152,10 @@ class paris_logement_apd(Variable): def formula(famille, period, legislation): last_month = period.last_month - plafond = legislation(period).paris.paris_logement.plafond_pl_apd - aide_pl_apd_pers_isol = legislation(period).paris.paris_logement.aide_pl_apd_pers_isol - aide_pl_apd_couple = legislation(period).paris.paris_logement.aide_pl_apd_couple + plafond_pl_personne_isolee = legislation(period).paris.paris_logement.plafond_pl_personne_isolee + plafond_pl_couple_sans_enf = legislation(period).paris.paris_logement.plafond_pl_couple_sans_enf + aide_pers_isol = legislation(period).paris.paris_logement.aide_pers_isol + aide_couple_ss_enf = legislation(period).paris.paris_logement.aide_couple_ss_enf base_ressources = famille('paris_base_ressources_foyer', last_month) @@ -155,11 +163,18 @@ def formula(famille, period, legislation): loyer_net = famille('paris_logement_charge_nette_mensuelle', period) personnes_couple = famille('en_couple', period) + nb_enfants = famille('paris_nb_enfants', period) paris_logement_elig_apd = famille('paris_logement_elig_apd', period) + couple_sans_enfant = personnes_couple * (nb_enfants == 0) + personne_isolee = not_(personnes_couple) * (nb_enfants == 0) + plafond = select([couple_sans_enfant, personne_isolee], + [plafond_pl_couple_sans_enf, plafond_pl_personne_isolee]) + condition_ressources = (base_ressources - indemnite) <= plafond - montant_aide = where(personnes_couple, aide_pl_apd_couple, aide_pl_apd_pers_isol) + montant_aide = select([couple_sans_enfant, personne_isolee], + [aide_couple_ss_enf, aide_pers_isol]) result = where((montant_aide > loyer_net), (montant_aide - (montant_aide - loyer_net)), montant_aide) diff --git a/openfisca_paris/personnes_agees/paris_logement.py b/openfisca_paris/personnes_agees/paris_logement.py index 66a4b1d..7302140 100644 --- a/openfisca_paris/personnes_agees/paris_logement.py +++ b/openfisca_paris/personnes_agees/paris_logement.py @@ -62,8 +62,11 @@ def formula(famille, period, parameters): nb_enfants = famille('paris_nb_enfants', period) param_montant = parameters(period).paris.personnes_agees.paris_logement.montant + couple_avec_enfant = en_couple * (nb_enfants == 1) + couple_sans_enfant = en_couple * (nb_enfants == 0) + personne_isolee = not_(en_couple) * (nb_enfants == 0) montant = select( - [not_(en_couple), nb_enfants < 1, nb_enfants >=1], + [personne_isolee , couple_sans_enfant, couple_avec_enfant], [param_montant.personne_isolee, param_montant.couple_sans_enfant, param_montant.couple_avec_enfant] ) charge_logement = famille('paris_logement_charge_nette_mensuelle', period) From d5346764f8e9dad207b552e2e562e0736b65e2d4 Mon Sep 17 00:00:00 2001 From: Mohamed TIFARINE <41685572+mtifarine@users.noreply.github.com> Date: Sun, 12 Dec 2021 22:36:53 +0100 Subject: [PATCH 25/26] Renomme les variables TNS par RPNS --- openfisca_paris/paris.py | 18 +++++++++--------- tests/unittests/paris_logement.yaml | 2 +- tests/unittests/paris_logement_famille.yaml | 6 +++--- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/openfisca_paris/paris.py b/openfisca_paris/paris.py index b4e810e..495a0cf 100644 --- a/openfisca_paris/paris.py +++ b/openfisca_paris/paris.py @@ -46,17 +46,17 @@ def formula(individu, period, legislation): prestation_compensatoire = individu('prestation_compensatoire', period) pensions_invalidite = individu('pensions_invalidite', period) - def revenus_tns(): - revenus_auto_entrepreneur = individu('tns_auto_entrepreneur_benefice', period, options = [ADD]) + def revenus_rpns(): + revenus_auto_entrepreneur = individu('rpns_auto_entrepreneur_benefice', period, options = [ADD]) - # Les revenus TNS hors AE sont estimés en se basant sur le revenu N-1 - tns_micro_entreprise_benefice = individu('tns_micro_entreprise_benefice', last_year) / 12 - tns_benefice_exploitant_agricole = individu('tns_benefice_exploitant_agricole', last_year) / 12 - tns_autres_revenus = individu('tns_autres_revenus', last_year) / 12 + # Les revenus RPNS hors AE sont estimés en se basant sur le revenu N-1 + rpns_micro_entreprise_benefice = individu('rpns_micro_entreprise_benefice', last_year) / 12 + rpns_benefice_exploitant_agricole = individu('rpns_benefice_exploitant_agricole', last_year) / 12 + rpns_autres_revenus = individu('rpns_autres_revenus', last_year) / 12 return ( - revenus_auto_entrepreneur + tns_micro_entreprise_benefice + tns_benefice_exploitant_agricole - + tns_autres_revenus + revenus_auto_entrepreneur + rpns_micro_entreprise_benefice + rpns_benefice_exploitant_agricole + + rpns_autres_revenus ) result = ( @@ -64,7 +64,7 @@ def revenus_tns(): + salaire_imposable + indemnites_stage_imposable + revenus_stage_formation_pro + chomage_imposable + allocation_securisation_professionnelle + indemnites_journalieres + indemnites_chomage_partiel + indemnites_volontariat + prestation_compensatoire + retraite_imposable+ pensions_invalidite - + revenus_tns() + + revenus_rpns() ) return result diff --git a/tests/unittests/paris_logement.yaml b/tests/unittests/paris_logement.yaml index 5225ef1..78e47d7 100644 --- a/tests/unittests/paris_logement.yaml +++ b/tests/unittests/paris_logement.yaml @@ -487,7 +487,7 @@ - enfant1 - enfant2 output: - aide_logement: 361.46 #437.1 + aide_logement: 437.1 paris_condition_taux_effort: false paris_logement: 0 diff --git a/tests/unittests/paris_logement_famille.yaml b/tests/unittests/paris_logement_famille.yaml index 84543f3..07f867a 100644 --- a/tests/unittests/paris_logement_famille.yaml +++ b/tests/unittests/paris_logement_famille.yaml @@ -184,7 +184,7 @@ - enfant1 - enfant2 output: - paris_logement_familles: 128 #113.25 + paris_logement_familles: 113.25 - name: Famille éligible pour l'aide Paris logement car parent monoparental et revenus > 1600 relative_error_margin: 0.02 @@ -222,7 +222,7 @@ - enfant2 - enfant3 output: - paris_logement_familles: 128 # 55.730 + paris_logement_familles: 55.730 - name: Famille non éligible pour l'aide Paris logement car parent monoparental description: Paris Logement Famille @@ -333,7 +333,7 @@ - enfant2 - enfant3 output: - paris_logement_familles: 84 #55.73 + paris_logement_familles: 55.73 - name: Famille éligible pour l'aide Paris logement car un couple avec deux enfant et ressources < 3000 description: Paris Logement Famille From 1821e01aabbff8193a566a82d8bd073b96278825 Mon Sep 17 00:00:00 2001 From: DURAND-GASSELIN Johan Date: Thu, 20 Jul 2023 11:21:37 +0200 Subject: [PATCH 26/26] =?UTF-8?q?M=C3=A0j=20setup.py=20pour=20pouvoir=20ut?= =?UTF-8?q?iliser=20la=20version=2041.0.0=20du=20core?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index b26834e..3566bc5 100644 --- a/setup.py +++ b/setup.py @@ -23,7 +23,7 @@ packages=find_namespace_packages(), include_package_data=True, install_requires=[ - 'OpenFisca-Core >= 40.0.1, < 41', + 'OpenFisca-Core >= 40.0.1, <= 41.0.0', 'OpenFisca-France >= 149.1.1, < 150', ], extras_require={