OpenFisca-France 168.0.15__py3-none-any.whl → 168.0.16__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of OpenFisca-France might be problematic. Click here for more details.
- {OpenFisca_France-168.0.15.data → OpenFisca_France-168.0.16.data}/data/share/openfisca/openfisca-france/CHANGELOG.md +14 -4
- {OpenFisca_France-168.0.15.dist-info → OpenFisca_France-168.0.16.dist-info}/METADATA +1 -1
- {OpenFisca_France-168.0.15.dist-info → OpenFisca_France-168.0.16.dist-info}/RECORD +9 -9
- {OpenFisca_France-168.0.15.dist-info → OpenFisca_France-168.0.16.dist-info}/WHEEL +1 -1
- openfisca_france/model/prestations/minima_sociaux/ppa.py +19 -8
- openfisca_france/model/prestations/minima_sociaux/rsa.py +144 -94
- {OpenFisca_France-168.0.15.data → OpenFisca_France-168.0.16.data}/data/share/openfisca/openfisca-france/README.md +0 -0
- {OpenFisca_France-168.0.15.dist-info → OpenFisca_France-168.0.16.dist-info}/LICENSE.AGPL.txt +0 -0
- {OpenFisca_France-168.0.15.dist-info → OpenFisca_France-168.0.16.dist-info}/top_level.txt +0 -0
|
@@ -1,22 +1,32 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 168.0.16 [2337](https://github.com/openfisca/openfisca-france/pull/2337)
|
|
4
|
+
|
|
5
|
+
* Évolution du système socio-fiscal.
|
|
6
|
+
* Périodes concernées : À partir du 2024/10/01.
|
|
7
|
+
* Zones impactées :
|
|
8
|
+
- `openfisca_france/model/prestations/minima_sociaux/ppa.py.`
|
|
9
|
+
- `openfisca_france/model/prestations/minima_sociaux/rsa.py.`
|
|
10
|
+
* Détails :
|
|
11
|
+
- Modification de la période de référence pour les aides RSA et PPA
|
|
12
|
+
- Refactoring du code de ces méthodes pour éviter la duplication de code
|
|
13
|
+
|
|
3
14
|
## 168.0.15 [2348](https://github.com/openfisca/openfisca-france/pull/2349)
|
|
4
15
|
|
|
5
16
|
* Évolution du système socio-fiscal changement mineur.
|
|
6
|
-
* Périodes concernées :
|
|
17
|
+
* Périodes concernées : 01/01/2023.
|
|
7
18
|
* Zones impactées : `openfisca_france/parameters/impot_revenu/bareme_ir_depuis_1945/bareme.yaml`.
|
|
8
19
|
* Détails : Ajoute référence 2024 article codifié impôt sur le revenu
|
|
9
|
-
|
|
20
|
+
|
|
10
21
|
## 168.0.14 [2348](https://github.com/openfisca/openfisca-france/pull/2348)
|
|
11
22
|
|
|
12
23
|
* Changement mineur : Modification d'un label
|
|
13
|
-
* Périodes concernées : toutes.
|
|
24
|
+
* Périodes concernées : toutes.
|
|
14
25
|
* Zones impactées : `openfisca_france/model/revenus/activite/salarie.py`.
|
|
15
26
|
* Détails : La variable `contrat_de_travail` et la variable `contrat_de_travail_type` ont le même label, pourtant elles ne représentent pas la même chose. La première concerne les types de durées de travail du contrat (Temps plein, partiel, convention, etc.) ; la seconde, le type de contrat (CDD,CDI). Cette PR change le label de la première et propose de parler de "Type de durée de travail" pour les distinguer.
|
|
16
27
|
|
|
17
28
|
[Service-Public.fr](https://www.service-public.fr/particuliers/vosdroits/F19261) en parle aussi sous cette forme.
|
|
18
29
|
|
|
19
|
-
|
|
20
30
|
## 168.0.13 [2344](https://github.com/openfisca/openfisca-france/pull/2344)
|
|
21
31
|
|
|
22
32
|
* Évolution du système socio-fiscal. | Amélioration technique. Ces changements modifient l'API publique d'OpenFisca France et ajoutent une fonctionnalité : la possibilité de modifier des paramètres actuellement en dur dans les formules.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
OpenFisca_France-168.0.
|
|
2
|
-
OpenFisca_France-168.0.
|
|
1
|
+
OpenFisca_France-168.0.16.data/data/share/openfisca/openfisca-france/CHANGELOG.md,sha256=S28CRva_q--UVjfh3HyJMIJicKuLsftifXIa8V0Xdjc,453183
|
|
2
|
+
OpenFisca_France-168.0.16.data/data/share/openfisca/openfisca-france/README.md,sha256=nIa6V4zevZpj2DX1rcpgs6AATTerCCy4622S1D3-CDI,18642
|
|
3
3
|
openfisca_france/__init__.py,sha256=MHLZ0V8uQHi4lkZ5bPAoLjsWTJe-wJgLfPxFvbCCxHc,126
|
|
4
4
|
openfisca_france/entities.py,sha256=nGl52ncj9wZzFwASKZk4_OHzhqOUuXGBxNmIiwxZU-c,2576
|
|
5
5
|
openfisca_france/france_taxbenefitsystem.py,sha256=UHVqvkqqYk-9RanSPWlVy3uieG77GCSrWCOqVpeN30I,1687
|
|
@@ -117,8 +117,8 @@ openfisca_france/model/prestations/minima_sociaux/aefa.py,sha256=mXOBJgXTl_iA6aa
|
|
|
117
117
|
openfisca_france/model/prestations/minima_sociaux/anciens_ms.py,sha256=PAXVlfd8PNXR_cUyf31BUsVJ8-KTTP3Tx6CD7rRLBEw,10878
|
|
118
118
|
openfisca_france/model/prestations/minima_sociaux/asi_aspa.py,sha256=abhKjQrYylUbi5Q78JL5yx0WoVtjejVWfi13FoHxnvI,20771
|
|
119
119
|
openfisca_france/model/prestations/minima_sociaux/ass.py,sha256=lFizKYXWihH7L5jEQpHvaK-61DmxlcX0r4QoWuuG5YU,11221
|
|
120
|
-
openfisca_france/model/prestations/minima_sociaux/ppa.py,sha256=
|
|
121
|
-
openfisca_france/model/prestations/minima_sociaux/rsa.py,sha256=
|
|
120
|
+
openfisca_france/model/prestations/minima_sociaux/ppa.py,sha256=gIyPvU4gv2x-uZIDFLP92YbueuHB4ubNSMMlfeSDHg8,25064
|
|
121
|
+
openfisca_france/model/prestations/minima_sociaux/rsa.py,sha256=65MdN4QZ1rms0vcTwZlSXis2HpQfK5_vE18PIFGvudw,47257
|
|
122
122
|
openfisca_france/model/prestations/minima_sociaux/cs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
123
123
|
openfisca_france/model/prestations/minima_sociaux/cs/acs.py,sha256=nwihxwsjKAmgPBW3jB2GcCSOxWJuQKgNhTj_gLZ-xAw,2435
|
|
124
124
|
openfisca_france/model/prestations/minima_sociaux/cs/cmu.py,sha256=b-voxJzetykcF0WMA_cLebBQRd53Y9Z-xQGOA3jpvPk,11718
|
|
@@ -4025,8 +4025,8 @@ tests/test_parameters.py,sha256=9ByrtcJpaV32qCE-u4FY4fzCugFUW8utc5_KUAmYKG8,354
|
|
|
4025
4025
|
tests/test_preprocessing.py,sha256=BBMFR4GlFFqu86XfVcrHRbps_SpoWb1QS1lmu3c5bCE,6973
|
|
4026
4026
|
tests/test_scenarios.py,sha256=A7SmVt_iyDTbNTE45WgGQlQZkJ0uJ1ZGUhTV3ziwLUw,1009
|
|
4027
4027
|
tests/test_tax_rates.py,sha256=B_CnSIqCijGYkKW7XVZlF8uot0otNJ-Sq-DKINPATfA,1551
|
|
4028
|
-
OpenFisca_France-168.0.
|
|
4029
|
-
OpenFisca_France-168.0.
|
|
4030
|
-
OpenFisca_France-168.0.
|
|
4031
|
-
OpenFisca_France-168.0.
|
|
4032
|
-
OpenFisca_France-168.0.
|
|
4028
|
+
OpenFisca_France-168.0.16.dist-info/LICENSE.AGPL.txt,sha256=2N5ReRelkdqkR9a-KP-y-shmcD5P62XoYiG-miLTAzo,34519
|
|
4029
|
+
OpenFisca_France-168.0.16.dist-info/METADATA,sha256=6vtXGu8B32AATtvWG9kOTtCjSXDC4_flgqnZJ781v00,20518
|
|
4030
|
+
OpenFisca_France-168.0.16.dist-info/WHEEL,sha256=5Mi1sN9lKoFv_gxcPtisEVrJZihrm_beibeg5R6xb4I,91
|
|
4031
|
+
OpenFisca_France-168.0.16.dist-info/top_level.txt,sha256=hmd7WhmLN_CyB52sP702pN9WlJqO9YMVuzeBRNp3hfs,23
|
|
4032
|
+
OpenFisca_France-168.0.16.dist-info/RECORD,,
|
|
@@ -502,15 +502,11 @@ class ppa(Variable):
|
|
|
502
502
|
# Prime pour l'Activité sur service-public.fr
|
|
503
503
|
reference = 'https://www.service-public.fr/particuliers/vosdroits/F2882'
|
|
504
504
|
|
|
505
|
-
def
|
|
506
|
-
|
|
507
|
-
# éligibilité étudiants
|
|
508
|
-
|
|
509
|
-
ppa_eligibilite_etudiants = famille('ppa_eligibilite_etudiants', period)
|
|
510
|
-
ppa = famille('ppa_fictive', period.last_3_months, options = [ADD]) / 3
|
|
511
|
-
ppa = ppa * ppa_eligibilite_etudiants * (ppa >= seuil_non_versement)
|
|
505
|
+
def formula_2024_10(famille, period, parameters):
|
|
506
|
+
return ppa_base_formula(famille=famille, parameters=parameters, period=period, three_months_of_reference=last_3_months_offset_minus_1(period))
|
|
512
507
|
|
|
513
|
-
|
|
508
|
+
def formula_2016_01_01(famille, period, parameters):
|
|
509
|
+
return ppa_base_formula(famille=famille, parameters=parameters, period=period, three_months_of_reference=period.last_3_months)
|
|
514
510
|
|
|
515
511
|
|
|
516
512
|
class crds_ppa(Variable):
|
|
@@ -576,3 +572,18 @@ class ppa_versee(Variable):
|
|
|
576
572
|
+ famille('ppa', period.last_month) * (remainder == 1)
|
|
577
573
|
+ famille('ppa', period.last_month.last_month) * (remainder == 2)
|
|
578
574
|
)
|
|
575
|
+
|
|
576
|
+
|
|
577
|
+
def last_3_months_offset_minus_1(period) -> Period:
|
|
578
|
+
return period.last_month.last_3_months
|
|
579
|
+
|
|
580
|
+
|
|
581
|
+
def ppa_base_formula(famille, parameters, period, three_months_of_reference):
|
|
582
|
+
seuil_non_versement = parameters(period).prestations_sociales.solidarite_insertion.minima_sociaux.ppa.pa_m.montant_minimum_verse
|
|
583
|
+
# éligibilité étudiants
|
|
584
|
+
|
|
585
|
+
ppa_eligibilite_etudiants = famille('ppa_eligibilite_etudiants', period)
|
|
586
|
+
ppa = famille('ppa_fictive', three_months_of_reference, options = [ADD]) / 3
|
|
587
|
+
ppa = ppa * ppa_eligibilite_etudiants * (ppa >= seuil_non_versement)
|
|
588
|
+
|
|
589
|
+
return ppa
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
from numpy import datetime64, logical_and as and_, logical_or as or_
|
|
2
2
|
|
|
3
3
|
from openfisca_core.periods import Period
|
|
4
|
-
|
|
5
4
|
from openfisca_france.model.base import *
|
|
6
5
|
from openfisca_france.model.prestations.prestations_familiales.base_ressource import nb_enf
|
|
7
6
|
|
|
@@ -79,58 +78,11 @@ class rsa_base_ressources_individu(Variable):
|
|
|
79
78
|
set_input = set_input_divide_by_period
|
|
80
79
|
reference = 'https://www.legifrance.gouv.fr/affichCodeArticle.do?cidTexte=LEGITEXT000006073189&idArticle=LEGIARTI000036393176&dateTexte=&categorieLien=id'
|
|
81
80
|
|
|
82
|
-
def
|
|
83
|
-
|
|
84
|
-
types_revenus_pros = [
|
|
85
|
-
'chomage_net',
|
|
86
|
-
'retraite_nette',
|
|
87
|
-
]
|
|
88
|
-
|
|
89
|
-
possede_ressources_substitution = individu('rsa_has_ressources_substitution', period)
|
|
90
|
-
|
|
91
|
-
# Les revenus pros interrompus au mois M sont neutralisés s'il n'y a pas de revenus de substitution.
|
|
92
|
-
revenus_pro = sum(
|
|
93
|
-
individu(type_revenu, period.last_3_months, options = [ADD]) * not_(
|
|
94
|
-
(individu(type_revenu, period) == 0)
|
|
95
|
-
* (individu(type_revenu, period.last_month) > 0)
|
|
96
|
-
* not_(possede_ressources_substitution)
|
|
97
|
-
)
|
|
98
|
-
for type_revenu in types_revenus_pros
|
|
99
|
-
)
|
|
100
|
-
|
|
101
|
-
types_revenus_non_pros = [
|
|
102
|
-
'allocation_securisation_professionnelle',
|
|
103
|
-
'dedommagement_victime_amiante',
|
|
104
|
-
'gains_exceptionnels',
|
|
105
|
-
'pensions_alimentaires_percues',
|
|
106
|
-
'pensions_invalidite',
|
|
107
|
-
'prestation_compensatoire',
|
|
108
|
-
'prime_forfaitaire_mensuelle_reprise_activite',
|
|
109
|
-
'rsa_base_ressources_patrimoine_individu',
|
|
110
|
-
'rsa_indemnites_journalieres_hors_activite',
|
|
111
|
-
]
|
|
112
|
-
|
|
113
|
-
# Les revenus non-pro interrompus au mois M sont neutralisés dans la limite d'un montant forfaitaire,
|
|
114
|
-
# sans condition de revenu de substitution.
|
|
115
|
-
montant_de_base_du_rsa = parameters(period).prestations_sociales.solidarite_insertion.minima_sociaux.rsa.rsa_m.montant_de_base_du_rsa
|
|
116
|
-
montant_forfaitaire_neutralisation = 3 * montant_de_base_du_rsa
|
|
117
|
-
revenus_non_pros = sum(
|
|
118
|
-
max_(
|
|
119
|
-
0,
|
|
120
|
-
individu(type_revenu, period.last_3_months, options = [ADD])
|
|
121
|
-
- (
|
|
122
|
-
montant_forfaitaire_neutralisation
|
|
123
|
-
* (individu(type_revenu, period) == 0)
|
|
124
|
-
* (individu(type_revenu, period.last_month) > 0)
|
|
125
|
-
)
|
|
126
|
-
)
|
|
127
|
-
for type_revenu in types_revenus_non_pros
|
|
128
|
-
)
|
|
129
|
-
|
|
130
|
-
rentes_viageres = individu.foyer_fiscal('rente_viagere_titre_onereux', period.last_3_months, options = [ADD])
|
|
131
|
-
revenus_foyer_fiscal_projetes = rentes_viageres * individu.has_role(FoyerFiscal.DECLARANT_PRINCIPAL)
|
|
81
|
+
def formula_2024_10(individu, period, parameters):
|
|
82
|
+
return rsa_base_ressources_individu_base_formula(individu= individu, period= period, three_months_of_reference= last_3_months_offset_minus_1(period), parameters=parameters)
|
|
132
83
|
|
|
133
|
-
|
|
84
|
+
def formula_2009_06_01(individu, period, parameters):
|
|
85
|
+
return rsa_base_ressources_individu_base_formula(individu= individu, period= period, three_months_of_reference= period.last_3_months, parameters=parameters)
|
|
134
86
|
|
|
135
87
|
def formula(individu, period, parameters):
|
|
136
88
|
# Revenus professionels
|
|
@@ -193,15 +145,13 @@ class rsa_base_ressources_minima_sociaux(Variable):
|
|
|
193
145
|
definition_period = MONTH
|
|
194
146
|
set_input = set_input_divide_by_period
|
|
195
147
|
|
|
148
|
+
def formula_2024_10(famille, period):
|
|
149
|
+
three_months_of_reference = last_3_months_offset_minus_1(period)
|
|
150
|
+
return calcul_minima_sociaux(famille= famille, period= period, three_months_of_reference=three_months_of_reference)
|
|
151
|
+
|
|
196
152
|
def formula(famille, period):
|
|
197
153
|
three_previous_months = period.last_3_months
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
ass_i = famille.members('ass', three_previous_months, options = [ADD])
|
|
201
|
-
aah_i = famille.members('aah', three_previous_months, options = [ADD])
|
|
202
|
-
asi_i = famille.members('asi', three_previous_months, options = [ADD])
|
|
203
|
-
caah_i = famille.members('caah', three_previous_months, options = [ADD])
|
|
204
|
-
return aspa + famille.sum(ass_i + aah_i + asi_i + caah_i) / 3
|
|
154
|
+
return calcul_minima_sociaux(famille= famille, period= period, three_months_of_reference=three_previous_months)
|
|
205
155
|
|
|
206
156
|
|
|
207
157
|
class rsa_base_ressources_prestations_familiales(Variable):
|
|
@@ -527,43 +477,13 @@ class rsa_revenu_activite_individu(Variable):
|
|
|
527
477
|
definition_period = MONTH
|
|
528
478
|
set_input = set_input_divide_by_period
|
|
529
479
|
|
|
480
|
+
def formula_2024_10(individu, period):
|
|
481
|
+
period_m2_m4 = last_3_months_offset_minus_1(period)
|
|
482
|
+
return rsa_revenu_activite_individu_base_formula(individu= individu, period=period, three_months_of_reference=period_m2_m4)
|
|
483
|
+
|
|
530
484
|
def formula_2009_06(individu, period):
|
|
531
485
|
last_3_months = period.last_3_months
|
|
532
|
-
|
|
533
|
-
# Note Auto-entrepreneurs:
|
|
534
|
-
# D'après les caisses, le revenu pris en compte pour les AE pour le RSA ne prend en compte que
|
|
535
|
-
# l'abattement standard sur le CA, mais pas les cotisations pour charges sociales.
|
|
536
|
-
|
|
537
|
-
types_revenus_activite = [
|
|
538
|
-
'salaire_net',
|
|
539
|
-
'indemnites_chomage_partiel',
|
|
540
|
-
'remuneration_apprenti',
|
|
541
|
-
'indemnites_volontariat',
|
|
542
|
-
'revenus_stage_formation_pro',
|
|
543
|
-
'bourse_recherche',
|
|
544
|
-
'hsup',
|
|
545
|
-
'etr',
|
|
546
|
-
'rpns_auto_entrepreneur_benefice',
|
|
547
|
-
'rsa_indemnites_journalieres_activite',
|
|
548
|
-
]
|
|
549
|
-
|
|
550
|
-
possede_ressource_substitution = individu('rsa_has_ressources_substitution', period)
|
|
551
|
-
|
|
552
|
-
# Les revenus pros interrompus au mois M sont neutralisés s'il n'y a pas de revenus de substitution.
|
|
553
|
-
revenus_moyennes = sum(
|
|
554
|
-
individu(type_revenu, last_3_months, options = [ADD]) * not_(
|
|
555
|
-
(individu(type_revenu, period) == 0)
|
|
556
|
-
* (individu(type_revenu, period.last_month) > 0)
|
|
557
|
-
* not_(possede_ressource_substitution)
|
|
558
|
-
)
|
|
559
|
-
for type_revenu in types_revenus_activite
|
|
560
|
-
) / 3
|
|
561
|
-
|
|
562
|
-
revenus_tns_annualises = 0
|
|
563
|
-
if period.start.date >= date(2017, 1, 1):
|
|
564
|
-
revenus_tns_annualises = individu('ppa_rsa_derniers_revenus_tns_annuels_connus', period.this_year)
|
|
565
|
-
|
|
566
|
-
return revenus_moyennes + revenus_tns_annualises
|
|
486
|
+
return rsa_revenu_activite_individu_base_formula(individu= individu, period=period, three_months_of_reference=last_3_months)
|
|
567
487
|
|
|
568
488
|
|
|
569
489
|
class rsa_montant(Variable):
|
|
@@ -1043,3 +963,133 @@ class rsa_socle_majore(Variable):
|
|
|
1043
963
|
socle = rsa.rsa_m.montant_de_base_du_rsa
|
|
1044
964
|
|
|
1045
965
|
return eligib * socle * taux
|
|
966
|
+
|
|
967
|
+
|
|
968
|
+
def last_3_months_offset_minus_1(period) -> Period:
|
|
969
|
+
return period.last_month.last_3_months
|
|
970
|
+
|
|
971
|
+
|
|
972
|
+
def rsa_revenu_activite_individu_base_formula(individu, period, three_months_of_reference):
|
|
973
|
+
revenus_moyennes = calcul_revenu_moyenne(individu= individu, period=period, three_months_of_reference=three_months_of_reference)
|
|
974
|
+
revenus_tns_annualises = calcul_revenu_tns_annualises(individu=individu, period=period)
|
|
975
|
+
|
|
976
|
+
return revenus_moyennes + revenus_tns_annualises
|
|
977
|
+
|
|
978
|
+
|
|
979
|
+
def rsa_base_ressources_individu_base_formula(individu, period, three_months_of_reference, parameters):
|
|
980
|
+
revenus_pro = calcul_revenu_pro(individu=individu, period= period, three_months_of_reference= three_months_of_reference)
|
|
981
|
+
revenus_non_pros = calcul_revenu_non_pro(individu=individu, period= period, three_months_of_reference= three_months_of_reference, parameters= parameters)
|
|
982
|
+
revenus_foyer_fiscal_projetes = calcul_foyer_fiscal_projetes(individu=individu, three_months_of_reference= three_months_of_reference)
|
|
983
|
+
|
|
984
|
+
return (revenus_pro + revenus_non_pros + revenus_foyer_fiscal_projetes) / 3
|
|
985
|
+
|
|
986
|
+
|
|
987
|
+
def calcul_revenu_pro(individu, period, three_months_of_reference):
|
|
988
|
+
# Revenus professionels
|
|
989
|
+
types_revenus_pros = [
|
|
990
|
+
'chomage_net',
|
|
991
|
+
'retraite_nette',
|
|
992
|
+
]
|
|
993
|
+
|
|
994
|
+
possede_ressources_substitution = individu('rsa_has_ressources_substitution', period)
|
|
995
|
+
|
|
996
|
+
# Les revenus pros interrompus au mois M sont neutralisés s'il n'y a pas de revenus de substitution.
|
|
997
|
+
revenus_pro = sum(
|
|
998
|
+
individu(type_revenu, three_months_of_reference, options = [ADD]) * not_(
|
|
999
|
+
(individu(type_revenu, period) == 0)
|
|
1000
|
+
* (individu(type_revenu, period.last_month) > 0)
|
|
1001
|
+
* not_(possede_ressources_substitution)
|
|
1002
|
+
)
|
|
1003
|
+
for type_revenu in types_revenus_pros
|
|
1004
|
+
)
|
|
1005
|
+
|
|
1006
|
+
return revenus_pro
|
|
1007
|
+
|
|
1008
|
+
|
|
1009
|
+
def calcul_revenu_non_pro(individu, period, three_months_of_reference, parameters):
|
|
1010
|
+
types_revenus_non_pros = [
|
|
1011
|
+
'allocation_securisation_professionnelle',
|
|
1012
|
+
'dedommagement_victime_amiante',
|
|
1013
|
+
'gains_exceptionnels',
|
|
1014
|
+
'pensions_alimentaires_percues',
|
|
1015
|
+
'pensions_invalidite',
|
|
1016
|
+
'prestation_compensatoire',
|
|
1017
|
+
'prime_forfaitaire_mensuelle_reprise_activite',
|
|
1018
|
+
'rsa_base_ressources_patrimoine_individu',
|
|
1019
|
+
'rsa_indemnites_journalieres_hors_activite',
|
|
1020
|
+
]
|
|
1021
|
+
|
|
1022
|
+
# Les revenus non-pro interrompus au mois M sont neutralisés dans la limite d'un montant forfaitaire,
|
|
1023
|
+
# sans condition de revenu de substitution.
|
|
1024
|
+
montant_de_base_du_rsa = parameters(period).prestations_sociales.solidarite_insertion.minima_sociaux.rsa.rsa_m.montant_de_base_du_rsa
|
|
1025
|
+
montant_forfaitaire_neutralisation = 3 * montant_de_base_du_rsa
|
|
1026
|
+
revenus_non_pros = sum(
|
|
1027
|
+
max_(
|
|
1028
|
+
0,
|
|
1029
|
+
individu(type_revenu, three_months_of_reference, options = [ADD])
|
|
1030
|
+
- (
|
|
1031
|
+
montant_forfaitaire_neutralisation
|
|
1032
|
+
* (individu(type_revenu, period) == 0)
|
|
1033
|
+
* (individu(type_revenu, period.last_month) > 0)
|
|
1034
|
+
)
|
|
1035
|
+
)
|
|
1036
|
+
for type_revenu in types_revenus_non_pros
|
|
1037
|
+
)
|
|
1038
|
+
|
|
1039
|
+
return revenus_non_pros
|
|
1040
|
+
|
|
1041
|
+
|
|
1042
|
+
def calcul_foyer_fiscal_projetes(individu, three_months_of_reference):
|
|
1043
|
+
rentes_viageres = individu.foyer_fiscal('rente_viagere_titre_onereux', three_months_of_reference, options = [ADD])
|
|
1044
|
+
revenus_foyer_fiscal_projetes = rentes_viageres * individu.has_role(FoyerFiscal.DECLARANT_PRINCIPAL)
|
|
1045
|
+
return revenus_foyer_fiscal_projetes
|
|
1046
|
+
|
|
1047
|
+
|
|
1048
|
+
def calcul_revenu_moyenne(individu, period, three_months_of_reference):
|
|
1049
|
+
# Note Auto-entrepreneurs:
|
|
1050
|
+
# D'après les caisses, le revenu pris en compte pour les AE pour le RSA ne prend en compte que
|
|
1051
|
+
# l'abattement standard sur le CA, mais pas les cotisations pour charges sociales.
|
|
1052
|
+
|
|
1053
|
+
types_revenus_activite = [
|
|
1054
|
+
'salaire_net',
|
|
1055
|
+
'indemnites_chomage_partiel',
|
|
1056
|
+
'remuneration_apprenti',
|
|
1057
|
+
'indemnites_volontariat',
|
|
1058
|
+
'revenus_stage_formation_pro',
|
|
1059
|
+
'bourse_recherche',
|
|
1060
|
+
'hsup',
|
|
1061
|
+
'etr',
|
|
1062
|
+
'rpns_auto_entrepreneur_benefice',
|
|
1063
|
+
'rsa_indemnites_journalieres_activite',
|
|
1064
|
+
]
|
|
1065
|
+
|
|
1066
|
+
possede_ressource_substitution = individu('rsa_has_ressources_substitution', period)
|
|
1067
|
+
|
|
1068
|
+
# Les revenus pros interrompus au mois M sont neutralisés s'il n'y a pas de revenus de substitution.
|
|
1069
|
+
revenus_moyennes = sum(
|
|
1070
|
+
individu(type_revenu, three_months_of_reference, options = [ADD]) * not_(
|
|
1071
|
+
(individu(type_revenu, period) == 0)
|
|
1072
|
+
* (individu(type_revenu, period.last_month) > 0)
|
|
1073
|
+
* not_(possede_ressource_substitution)
|
|
1074
|
+
)
|
|
1075
|
+
for type_revenu in types_revenus_activite
|
|
1076
|
+
) / 3
|
|
1077
|
+
|
|
1078
|
+
return revenus_moyennes
|
|
1079
|
+
|
|
1080
|
+
|
|
1081
|
+
def calcul_revenu_tns_annualises(individu, period):
|
|
1082
|
+
revenus_tns_annualises = 0
|
|
1083
|
+
if period.start.date >= date(2017, 1, 1):
|
|
1084
|
+
revenus_tns_annualises = individu('ppa_rsa_derniers_revenus_tns_annuels_connus', period.this_year)
|
|
1085
|
+
return revenus_tns_annualises
|
|
1086
|
+
|
|
1087
|
+
|
|
1088
|
+
def calcul_minima_sociaux(famille, period, three_months_of_reference):
|
|
1089
|
+
aspa = famille('aspa', period)
|
|
1090
|
+
|
|
1091
|
+
ass_i = famille.members('ass', three_months_of_reference, options = [ADD])
|
|
1092
|
+
aah_i = famille.members('aah', three_months_of_reference, options = [ADD])
|
|
1093
|
+
asi_i = famille.members('asi', three_months_of_reference, options = [ADD])
|
|
1094
|
+
caah_i = famille.members('caah', three_months_of_reference, options = [ADD])
|
|
1095
|
+
return aspa + famille.sum(ass_i + aah_i + asi_i + caah_i) / 3
|
|
File without changes
|
{OpenFisca_France-168.0.15.dist-info → OpenFisca_France-168.0.16.dist-info}/LICENSE.AGPL.txt
RENAMED
|
File without changes
|
|
File without changes
|