OpenFisca-France 172.0.2__py3-none-any.whl → 172.0.4__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/model/prelevements_obligatoires/impot_revenu/ir.py +5 -5
- openfisca_france/model/prelevements_obligatoires/prelevements_sociaux/cotisations_sociales/base.py +9 -12
- openfisca_france/model/prelevements_obligatoires/prelevements_sociaux/cotisations_sociales/exonerations.py +4 -4
- openfisca_france/model/prelevements_obligatoires/prelevements_sociaux/cotisations_sociales/preprocessing.py +24 -37
- openfisca_france/model/prelevements_obligatoires/prelevements_sociaux/cotisations_sociales/stage.py +4 -4
- openfisca_france/model/prelevements_obligatoires/prelevements_sociaux/cotisations_sociales/travail_fonction_publique.py +15 -18
- openfisca_france/model/prelevements_obligatoires/prelevements_sociaux/cotisations_sociales/travail_prive.py +6 -6
- openfisca_france/model/revenus/activite/salarie.py +5 -7
- openfisca_france/parameters/taxation_capital/prelevements_sociaux/index.yaml +0 -1
- {openfisca_france-172.0.2.dist-info → openfisca_france-172.0.4.dist-info}/METADATA +2 -1
- {openfisca_france-172.0.2.dist-info → openfisca_france-172.0.4.dist-info}/RECORD +14 -14
- {openfisca_france-172.0.2.dist-info → openfisca_france-172.0.4.dist-info}/WHEEL +0 -0
- {openfisca_france-172.0.2.dist-info → openfisca_france-172.0.4.dist-info}/licenses/LICENSE.AGPL.txt +0 -0
- {openfisca_france-172.0.2.dist-info → openfisca_france-172.0.4.dist-info}/top_level.txt +0 -0
|
@@ -645,7 +645,7 @@ class revenu_categoriel_plus_values(Variable):
|
|
|
645
645
|
return f3wb + pre_result
|
|
646
646
|
|
|
647
647
|
|
|
648
|
-
class
|
|
648
|
+
class revenu_categoriel_tspr(Variable):
|
|
649
649
|
value_type = float
|
|
650
650
|
entity = FoyerFiscal
|
|
651
651
|
label = 'Revenu catégoriel - Traitements, salaires, pensions et rentes'
|
|
@@ -653,10 +653,10 @@ class revenu_categoriel_deductions(Variable):
|
|
|
653
653
|
definition_period = YEAR
|
|
654
654
|
|
|
655
655
|
def formula(foyer_fiscal, period, parameters):
|
|
656
|
-
|
|
656
|
+
tspr_i = foyer_fiscal.members('traitements_salaires_pensions_rentes', period)
|
|
657
657
|
indu_plaf_abat_pen = foyer_fiscal('indu_plaf_abat_pen', period)
|
|
658
658
|
|
|
659
|
-
traitements_salaires_pensions_rentes = foyer_fiscal.sum(
|
|
659
|
+
traitements_salaires_pensions_rentes = foyer_fiscal.sum(tspr_i)
|
|
660
660
|
|
|
661
661
|
return traitements_salaires_pensions_rentes + indu_plaf_abat_pen
|
|
662
662
|
|
|
@@ -1193,13 +1193,13 @@ class revenu_categoriel(Variable):
|
|
|
1193
1193
|
'''
|
|
1194
1194
|
Revenus Categoriels
|
|
1195
1195
|
'''
|
|
1196
|
-
|
|
1196
|
+
rev_cat_tspr = foyer_fiscal('revenu_categoriel_tspr', period)
|
|
1197
1197
|
rev_cat_rvcm = foyer_fiscal('revenu_categoriel_capital', period)
|
|
1198
1198
|
rev_cat_rfon = foyer_fiscal('revenu_categoriel_foncier', period)
|
|
1199
1199
|
rev_cat_rpns = foyer_fiscal('revenu_categoriel_non_salarial', period)
|
|
1200
1200
|
rev_cat_pv = foyer_fiscal('revenu_categoriel_plus_values', period)
|
|
1201
1201
|
|
|
1202
|
-
return
|
|
1202
|
+
return rev_cat_tspr + rev_cat_rvcm + rev_cat_rfon + rev_cat_rpns + rev_cat_pv
|
|
1203
1203
|
|
|
1204
1204
|
|
|
1205
1205
|
###############################################################################
|
openfisca_france/model/prelevements_obligatoires/prelevements_sociaux/cotisations_sociales/base.py
CHANGED
|
@@ -236,11 +236,8 @@ cotisations_salarie_by_categorie_salarie = {
|
|
|
236
236
|
}
|
|
237
237
|
|
|
238
238
|
|
|
239
|
-
# TODO: Rename bareme_by_type_sal_name to bareme_by_categorie_salarie
|
|
240
|
-
|
|
241
|
-
|
|
242
239
|
def apply_bareme_for_relevant_type_sal(
|
|
243
|
-
|
|
240
|
+
bareme_by_categorie_salarie,
|
|
244
241
|
bareme_name,
|
|
245
242
|
categorie_salarie,
|
|
246
243
|
base,
|
|
@@ -248,7 +245,7 @@ def apply_bareme_for_relevant_type_sal(
|
|
|
248
245
|
round_base_decimals = DEFAULT_ROUND_BASE_DECIMALS,
|
|
249
246
|
):
|
|
250
247
|
'''Apply bareme corresponding to bareme_name to the relevant categorie_salarie.'''
|
|
251
|
-
assert
|
|
248
|
+
assert bareme_by_categorie_salarie is not None
|
|
252
249
|
assert bareme_name is not None
|
|
253
250
|
assert categorie_salarie is not None
|
|
254
251
|
assert base is not None
|
|
@@ -260,15 +257,15 @@ def apply_bareme_for_relevant_type_sal(
|
|
|
260
257
|
if categorie_salarie_type == TypesCategorieSalarie.non_pertinent:
|
|
261
258
|
continue
|
|
262
259
|
|
|
263
|
-
if
|
|
260
|
+
if bareme_by_categorie_salarie._name == 'cotisations_employeur_after_preprocessing':
|
|
264
261
|
cotisations_by_categorie_salarie = cotisations_employeur_by_categorie_salarie
|
|
265
|
-
elif
|
|
262
|
+
elif bareme_by_categorie_salarie._name == 'cotisations_salarie_after_preprocessing':
|
|
266
263
|
cotisations_by_categorie_salarie = cotisations_salarie_by_categorie_salarie
|
|
267
264
|
else:
|
|
268
265
|
NameError()
|
|
269
266
|
|
|
270
267
|
try:
|
|
271
|
-
categorie_salarie_baremes =
|
|
268
|
+
categorie_salarie_baremes = bareme_by_categorie_salarie[categorie_salarie_type.name]
|
|
272
269
|
except KeyError as e:
|
|
273
270
|
# FIXME: dirty fix since public_titulaire_militaire does not exist
|
|
274
271
|
if categorie_salarie_type.name == 'public_titulaire_militaire':
|
|
@@ -278,7 +275,7 @@ def apply_bareme_for_relevant_type_sal(
|
|
|
278
275
|
if bareme_name in cotisations_by_categorie_salarie[categorie_salarie_type.name]:
|
|
279
276
|
bareme = categorie_salarie_baremes[bareme_name]
|
|
280
277
|
else:
|
|
281
|
-
KeyError(f'{bareme_name} not in {
|
|
278
|
+
KeyError(f'{bareme_name} not in {bareme_by_categorie_salarie._name} for {categorie_salarie_type.name}')
|
|
282
279
|
continue
|
|
283
280
|
|
|
284
281
|
yield bareme.calc(
|
|
@@ -331,9 +328,9 @@ def apply_bareme(individu, period, parameters, cotisation_type = None, bareme_na
|
|
|
331
328
|
def compute_cotisation(individu, period, parameters, cotisation_type = None, bareme_name = None):
|
|
332
329
|
assert cotisation_type is not None
|
|
333
330
|
if cotisation_type == 'employeur':
|
|
334
|
-
|
|
331
|
+
bareme_by_categorie_salarie_name = parameters(period).cotsoc.cotisations_employeur
|
|
335
332
|
elif cotisation_type == 'salarie':
|
|
336
|
-
|
|
333
|
+
bareme_by_categorie_salarie_name = parameters(period).cotsoc.cotisations_salarie
|
|
337
334
|
assert bareme_name is not None
|
|
338
335
|
|
|
339
336
|
assiette_cotisations_sociales = individu('assiette_cotisations_sociales', period, options = [ADD])
|
|
@@ -341,7 +338,7 @@ def compute_cotisation(individu, period, parameters, cotisation_type = None, bar
|
|
|
341
338
|
categorie_salarie = individu('categorie_salarie', period.first_month)
|
|
342
339
|
|
|
343
340
|
cotisation = apply_bareme_for_relevant_type_sal(
|
|
344
|
-
|
|
341
|
+
bareme_by_categorie_salarie = bareme_by_categorie_salarie_name,
|
|
345
342
|
bareme_name = bareme_name,
|
|
346
343
|
base = assiette_cotisations_sociales,
|
|
347
344
|
plafond_securite_sociale = plafond_securite_sociale,
|
|
@@ -176,13 +176,13 @@ class exoneration_cotisations_employeur_jei(Variable):
|
|
|
176
176
|
categorie_salarie = individu('categorie_salarie', period)
|
|
177
177
|
smic_proratise = individu('smic_proratise', period)
|
|
178
178
|
|
|
179
|
-
|
|
179
|
+
bareme_by_categorie_salarie_name = parameters(period).cotsoc.cotisations_employeur
|
|
180
180
|
bareme_names = ['vieillesse_deplafonnee', 'vieillesse_plafonnee', 'maladie', 'famille']
|
|
181
181
|
|
|
182
182
|
exoneration = smic_proratise * 0.0
|
|
183
183
|
for bareme_name in bareme_names:
|
|
184
184
|
exoneration += apply_bareme_for_relevant_type_sal(
|
|
185
|
-
|
|
185
|
+
bareme_by_categorie_salarie = bareme_by_categorie_salarie_name,
|
|
186
186
|
bareme_name = bareme_name,
|
|
187
187
|
categorie_salarie = categorie_salarie,
|
|
188
188
|
base = assiette_allegement,
|
|
@@ -220,14 +220,14 @@ class exoneration_cotisations_employeur_jei(Variable):
|
|
|
220
220
|
|
|
221
221
|
# Cette formule ne tient pas compte du montant maximal d'exonération dont chaque établissement peut bénéficier et qui est de 5 PSS (231 840 € en 2024)
|
|
222
222
|
|
|
223
|
-
|
|
223
|
+
bareme_by_categorie_salarie_name = parameters(period).cotsoc.cotisations_employeur
|
|
224
224
|
bareme_names = ['vieillesse_deplafonnee', 'vieillesse_plafonnee', 'maladie', 'famille']
|
|
225
225
|
plafond_part_remuneration = parameters(period).prelevements_sociaux.reductions_cotisations_sociales.jei.plafond_part_remuneration
|
|
226
226
|
|
|
227
227
|
exoneration = smic_proratise * 0.0
|
|
228
228
|
for bareme_name in bareme_names:
|
|
229
229
|
exoneration += apply_bareme_for_relevant_type_sal(
|
|
230
|
-
|
|
230
|
+
bareme_by_categorie_salarie = bareme_by_categorie_salarie_name,
|
|
231
231
|
bareme_name = bareme_name,
|
|
232
232
|
categorie_salarie = categorie_salarie,
|
|
233
233
|
base = min_(assiette_allegement, plafond_part_remuneration * smic_proratise),
|
|
@@ -50,47 +50,34 @@ def build_pat(parameters):
|
|
|
50
50
|
'construction_plus_de_50_salaries',
|
|
51
51
|
]
|
|
52
52
|
# Autres thématiques
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
commun.metadata['order'] += regime_general.famille.employeur.metadata['order']
|
|
68
|
-
commun.children.update(regime_general.penibilite.children)
|
|
69
|
-
if regime_general.penibilite.metadata is not None and regime_general.penibilite.metadata.get('order') is not None:
|
|
70
|
-
commun.metadata['order'] += regime_general.penibilite.metadata['order']
|
|
71
|
-
commun.children.update(regime_general.cnav.employeur.children)
|
|
72
|
-
if regime_general.cnav.employeur.metadata is not None and regime_general.cnav.employeur.metadata.get('order') is not None:
|
|
73
|
-
commun.metadata['order'] += regime_general.cnav.employeur.metadata['order']
|
|
74
|
-
commun.children.update(regime_general.mmid.employeur.children)
|
|
75
|
-
if regime_general.mmid.employeur.metadata is not None and regime_general.mmid.employeur.metadata.get('order') is not None:
|
|
76
|
-
commun.metadata['order'] += regime_general.mmid.employeur.metadata['order']
|
|
53
|
+
thematiques = [
|
|
54
|
+
chomage.ags.employeur,
|
|
55
|
+
chomage.asf.employeur,
|
|
56
|
+
chomage.chomage.employeur,
|
|
57
|
+
regime_general.csa.employeur,
|
|
58
|
+
regime_general.famille.employeur,
|
|
59
|
+
regime_general.penibilite,
|
|
60
|
+
regime_general.cnav.employeur,
|
|
61
|
+
regime_general.mmid.employeur,
|
|
62
|
+
]
|
|
63
|
+
for thematique in thematiques:
|
|
64
|
+
if thematique.metadata is not None and thematique.metadata.get('order') is not None:
|
|
65
|
+
commun.metadata['order'] += thematique.metadata['order']
|
|
66
|
+
commun.children.update(thematique.children)
|
|
77
67
|
|
|
78
68
|
# Fnal (avec renommage)
|
|
79
69
|
commun.children.update(autres.fnal.children)
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
'fnal_contribution_plus_de_10_salaries',
|
|
88
|
-
'fnal_contribution_moins_de_20_salaries',
|
|
89
|
-
'fnal_contribution_plus_de_20_salaries',
|
|
90
|
-
'fnal_contribution_moins_de_50_salaries',
|
|
91
|
-
'fnal_contribution_plus_de_50_salaries',
|
|
92
|
-
'fnal_cotisation',
|
|
70
|
+
fnal_keys = [
|
|
71
|
+
'contribution_plus_de_10_salaries',
|
|
72
|
+
'contribution_moins_de_20_salaries',
|
|
73
|
+
'contribution_plus_de_20_salaries',
|
|
74
|
+
'contribution_moins_de_50_salaries',
|
|
75
|
+
'contribution_plus_de_50_salaries',
|
|
76
|
+
'cotisation',
|
|
93
77
|
]
|
|
78
|
+
for key in fnal_keys:
|
|
79
|
+
commun.children[f'fnal_{key}'] = commun.children.pop(key)
|
|
80
|
+
commun.metadata['order'] += [f'fnal_{key}' for key in fnal_keys]
|
|
94
81
|
|
|
95
82
|
commun.children.update(autres.fin_syndic.children) # À harmoniser !
|
|
96
83
|
if autres.fin_syndic.metadata is not None and autres.fin_syndic.metadata.get('order') is not None:
|
openfisca_france/model/prelevements_obligatoires/prelevements_sociaux/cotisations_sociales/stage.py
CHANGED
|
@@ -84,10 +84,10 @@ class exoneration_cotisations_employeur_stagiaire(Variable):
|
|
|
84
84
|
stagiaire = individu('stagiaire', period)
|
|
85
85
|
categorie_salarie = individu('categorie_salarie', period)
|
|
86
86
|
|
|
87
|
-
|
|
87
|
+
bareme_by_categorie_salarie_name = parameters(period).cotsoc.cotisations_employeur
|
|
88
88
|
exoneration = sum(
|
|
89
89
|
apply_bareme_for_relevant_type_sal(
|
|
90
|
-
|
|
90
|
+
bareme_by_categorie_salarie = bareme_by_categorie_salarie_name,
|
|
91
91
|
bareme_name = bareme_name,
|
|
92
92
|
categorie_salarie = categorie_salarie,
|
|
93
93
|
base = stage_gratification_reintegration,
|
|
@@ -124,13 +124,13 @@ class exoneration_cotisations_salarie_stagiaire(Variable):
|
|
|
124
124
|
stagiaire = individu('stagiaire', period)
|
|
125
125
|
categorie_salarie = individu('categorie_salarie', period)
|
|
126
126
|
|
|
127
|
-
|
|
127
|
+
bareme_by_categorie_salarie_name = parameters(period).cotsoc.cotisations_salarie
|
|
128
128
|
bareme_names = ['agff', 'chomage', 'asf']
|
|
129
129
|
|
|
130
130
|
exoneration = plafond_securite_sociale * 0.0
|
|
131
131
|
for bareme_name in bareme_names:
|
|
132
132
|
exoneration += apply_bareme_for_relevant_type_sal(
|
|
133
|
-
|
|
133
|
+
bareme_by_categorie_salarie = bareme_by_categorie_salarie_name,
|
|
134
134
|
bareme_name = bareme_name,
|
|
135
135
|
categorie_salarie = categorie_salarie,
|
|
136
136
|
base = stage_gratification_reintegration,
|
|
@@ -16,11 +16,11 @@ class ati_atiacl(Variable):
|
|
|
16
16
|
remuneration_principale = individu('remuneration_principale', period)
|
|
17
17
|
categorie_salarie = individu('categorie_salarie', period)
|
|
18
18
|
plafond_securite_sociale = individu('plafond_securite_sociale', period)
|
|
19
|
-
|
|
19
|
+
cotsoc = parameters(period).cotsoc
|
|
20
20
|
|
|
21
21
|
# ATI : pour les fonctionnaires d'Etat, hors militaires
|
|
22
22
|
cotisation_etat_hors_militaires = apply_bareme_for_relevant_type_sal(
|
|
23
|
-
|
|
23
|
+
bareme_by_categorie_salarie = cotsoc.cotisations_employeur,
|
|
24
24
|
bareme_name = 'ati',
|
|
25
25
|
base = remuneration_principale,
|
|
26
26
|
plafond_securite_sociale = plafond_securite_sociale,
|
|
@@ -28,7 +28,7 @@ class ati_atiacl(Variable):
|
|
|
28
28
|
)
|
|
29
29
|
# ATIACL : pour les fonctionnaires territoriaux et hospitaliers
|
|
30
30
|
cotisation_collectivites_locales = apply_bareme_for_relevant_type_sal(
|
|
31
|
-
|
|
31
|
+
bareme_by_categorie_salarie =cotsoc.cotisations_employeur,
|
|
32
32
|
bareme_name = 'atiacl',
|
|
33
33
|
base = remuneration_principale,
|
|
34
34
|
plafond_securite_sociale = plafond_securite_sociale,
|
|
@@ -93,7 +93,7 @@ class contribution_exceptionnelle_solidarite(Variable):
|
|
|
93
93
|
)
|
|
94
94
|
# Ces déductions sont négatives
|
|
95
95
|
cotisation = apply_bareme_for_relevant_type_sal(
|
|
96
|
-
|
|
96
|
+
bareme_by_categorie_salarie = parameters.cotsoc.cotisations_salarie,
|
|
97
97
|
bareme_name = 'excep_solidarite',
|
|
98
98
|
base = assujettis * min_(
|
|
99
99
|
remuneration_brute + supplement_familial_traitement + primes_fonction_publique + deduction,
|
|
@@ -134,11 +134,11 @@ class fonds_emploi_hospitalier(Variable):
|
|
|
134
134
|
remuneration_principale = individu('remuneration_principale', period)
|
|
135
135
|
categorie_salarie = individu('categorie_salarie', period)
|
|
136
136
|
plafond_securite_sociale = individu('plafond_securite_sociale', period)
|
|
137
|
-
|
|
137
|
+
cotsoc = parameters(period).cotsoc
|
|
138
138
|
|
|
139
139
|
# Que pour fonctionnaires hospitaliers
|
|
140
140
|
cotisation = apply_bareme_for_relevant_type_sal(
|
|
141
|
-
|
|
141
|
+
bareme_by_categorie_salarie = cotsoc.cotisations_employeur,
|
|
142
142
|
bareme_name = 'feh',
|
|
143
143
|
base = remuneration_principale,
|
|
144
144
|
plafond_securite_sociale = plafond_securite_sociale,
|
|
@@ -158,10 +158,10 @@ class ircantec_salarie(Variable):
|
|
|
158
158
|
assiette_cotisations_sociales = individu('assiette_cotisations_sociales', period)
|
|
159
159
|
plafond_securite_sociale = individu('plafond_securite_sociale', period)
|
|
160
160
|
categorie_salarie = individu('categorie_salarie', period)
|
|
161
|
-
|
|
161
|
+
cotsoc = parameters(period).cotsoc
|
|
162
162
|
|
|
163
163
|
ircantec = apply_bareme_for_relevant_type_sal(
|
|
164
|
-
|
|
164
|
+
bareme_by_categorie_salarie = cotsoc.cotisations_salarie,
|
|
165
165
|
bareme_name = 'ircantec',
|
|
166
166
|
base = assiette_cotisations_sociales,
|
|
167
167
|
plafond_securite_sociale = plafond_securite_sociale,
|
|
@@ -182,10 +182,10 @@ class ircantec_employeur(Variable):
|
|
|
182
182
|
assiette_cotisations_sociales = individu('assiette_cotisations_sociales', period)
|
|
183
183
|
plafond_securite_sociale = individu('plafond_securite_sociale', period)
|
|
184
184
|
categorie_salarie = individu('categorie_salarie', period)
|
|
185
|
-
|
|
185
|
+
cotsoc = parameters(period).cotsoc
|
|
186
186
|
|
|
187
187
|
ircantec = apply_bareme_for_relevant_type_sal(
|
|
188
|
-
|
|
188
|
+
bareme_by_categorie_salarie = cotsoc.cotisations_employeur,
|
|
189
189
|
bareme_name = 'ircantec',
|
|
190
190
|
base = assiette_cotisations_sociales,
|
|
191
191
|
plafond_securite_sociale = plafond_securite_sociale,
|
|
@@ -206,8 +206,8 @@ class pension_salarie(Variable):
|
|
|
206
206
|
traitement_indiciaire_brut = individu('traitement_indiciaire_brut', period)
|
|
207
207
|
nouvelle_bonification_indiciaire = individu('nouvelle_bonification_indiciaire', period)
|
|
208
208
|
categorie_salarie = individu('categorie_salarie', period)
|
|
209
|
-
|
|
210
|
-
sal =
|
|
209
|
+
cotsoc = parameters(period).cotsoc
|
|
210
|
+
sal = cotsoc.cotisations_salarie
|
|
211
211
|
|
|
212
212
|
terr_or_hosp = (
|
|
213
213
|
(categorie_salarie == TypesCategorieSalarie.public_titulaire_territoriale) | (categorie_salarie == TypesCategorieSalarie.public_titulaire_hospitaliere)
|
|
@@ -244,8 +244,7 @@ class pension_employeur(Variable):
|
|
|
244
244
|
)
|
|
245
245
|
etat = (categorie_salarie == TypesCategorieSalarie.public_titulaire_etat)
|
|
246
246
|
militaire = (categorie_salarie == TypesCategorieSalarie.public_titulaire_militaire)
|
|
247
|
-
|
|
248
|
-
pat = _P.cotsoc.cotisations_employeur
|
|
247
|
+
pat = parameters(period).cotsoc.cotisations_employeur
|
|
249
248
|
|
|
250
249
|
montant = (
|
|
251
250
|
etat * pat['public_titulaire_etat']['pension'].calc(remuneration_principale)
|
|
@@ -281,8 +280,7 @@ class rafp_salarie(Variable):
|
|
|
281
280
|
|
|
282
281
|
parametres_rafp = parameters(period).prelevements_sociaux.cotisations_secteur_public.rafp
|
|
283
282
|
taux_plafond_tib = parametres_rafp.rafp_plaf_assiette
|
|
284
|
-
|
|
285
|
-
bareme_rafp_salarie = _P.cotsoc.cotisations_salarie.public_titulaire_etat['rafp']
|
|
283
|
+
bareme_rafp_salarie = parameters(period).cotsoc.cotisations_salarie.public_titulaire_etat['rafp']
|
|
286
284
|
|
|
287
285
|
base_imposable = primes_fonction_publique + supplement_familial_traitement + indemnite_residence + avantage_en_nature
|
|
288
286
|
assiette = (min_(base_imposable, taux_plafond_tib * traitement_indiciaire_brut) + gipa) * eligible
|
|
@@ -317,8 +315,7 @@ class rafp_employeur(Variable):
|
|
|
317
315
|
|
|
318
316
|
parametres_rafp = parameters(period).prelevements_sociaux.cotisations_secteur_public.rafp
|
|
319
317
|
taux_plafond_tib = parametres_rafp.rafp_plaf_assiette
|
|
320
|
-
|
|
321
|
-
bareme_rafp_employeur = _P.cotsoc.cotisations_employeur.public_titulaire_etat['rafp']
|
|
318
|
+
bareme_rafp_employeur = parameters(period).cotsoc.cotisations_employeur.public_titulaire_etat['rafp']
|
|
322
319
|
|
|
323
320
|
base_imposable = primes_fonction_publique + supplement_familial_traitement + indemnite_residence + indemnite_compensatrice_csg + avantage_en_nature
|
|
324
321
|
assiette = (min_(base_imposable, taux_plafond_tib * traitement_indiciaire_brut) + gipa) * eligible
|
|
@@ -254,7 +254,7 @@ class agff_employeur(Variable):
|
|
|
254
254
|
parameters = parameters(period).cotsoc
|
|
255
255
|
|
|
256
256
|
cotisation_non_cadre = apply_bareme_for_relevant_type_sal(
|
|
257
|
-
|
|
257
|
+
bareme_by_categorie_salarie = parameters.cotisations_employeur,
|
|
258
258
|
bareme_name = 'agffnc',
|
|
259
259
|
base = assiette_cotisations_sociales,
|
|
260
260
|
plafond_securite_sociale = plafond_securite_sociale,
|
|
@@ -262,7 +262,7 @@ class agff_employeur(Variable):
|
|
|
262
262
|
)
|
|
263
263
|
|
|
264
264
|
cotisation_cadre = apply_bareme_for_relevant_type_sal(
|
|
265
|
-
|
|
265
|
+
bareme_by_categorie_salarie = parameters.cotisations_employeur,
|
|
266
266
|
bareme_name = 'agffc',
|
|
267
267
|
base = assiette_cotisations_sociales,
|
|
268
268
|
plafond_securite_sociale = plafond_securite_sociale,
|
|
@@ -528,7 +528,7 @@ class arrco_salarie(Variable):
|
|
|
528
528
|
* arrco_tranche_a_taux_salarie
|
|
529
529
|
)
|
|
530
530
|
|
|
531
|
-
|
|
531
|
+
prive = (
|
|
532
532
|
(categorie_salarie == TypesCategorieSalarie.prive_non_cadre)
|
|
533
533
|
+ (categorie_salarie == TypesCategorieSalarie.prive_cadre)
|
|
534
534
|
)
|
|
@@ -537,7 +537,7 @@ class arrco_salarie(Variable):
|
|
|
537
537
|
cotisation_minimale
|
|
538
538
|
* (arrco_tranche_a_taux_salarie == 0)
|
|
539
539
|
+ cotisation_entreprise
|
|
540
|
-
) *
|
|
540
|
+
) * prive
|
|
541
541
|
|
|
542
542
|
|
|
543
543
|
class arrco_employeur(Variable):
|
|
@@ -569,13 +569,13 @@ class arrco_employeur(Variable):
|
|
|
569
569
|
* arrco_tranche_a_taux_employeur
|
|
570
570
|
)
|
|
571
571
|
|
|
572
|
-
|
|
572
|
+
prive = (
|
|
573
573
|
(categorie_salarie == TypesCategorieSalarie.prive_non_cadre)
|
|
574
574
|
+ (categorie_salarie == TypesCategorieSalarie.prive_cadre)
|
|
575
575
|
)
|
|
576
576
|
return (
|
|
577
577
|
cotisation_minimale * (arrco_tranche_a_taux_employeur == 0) + cotisation_entreprise
|
|
578
|
-
) *
|
|
578
|
+
) * prive
|
|
579
579
|
|
|
580
580
|
|
|
581
581
|
class chomage_salarie(Variable):
|
|
@@ -214,7 +214,7 @@ class apprentissage_contrat_debut(Variable):
|
|
|
214
214
|
class arrco_tranche_a_taux_employeur(Variable):
|
|
215
215
|
value_type = float
|
|
216
216
|
entity = Individu
|
|
217
|
-
label = "Taux ARRCO tranche A employeur
|
|
217
|
+
label = "Taux ARRCO tranche A employeur propre à l'entreprise"
|
|
218
218
|
definition_period = MONTH
|
|
219
219
|
set_input = set_input_dispatch_by_period
|
|
220
220
|
|
|
@@ -222,7 +222,7 @@ class arrco_tranche_a_taux_employeur(Variable):
|
|
|
222
222
|
class arrco_tranche_a_taux_salarie(Variable):
|
|
223
223
|
value_type = float
|
|
224
224
|
entity = Individu
|
|
225
|
-
label = "Taux ARRCO tranche A salarié
|
|
225
|
+
label = "Taux ARRCO tranche A salarié propre à l'entreprise"
|
|
226
226
|
definition_period = MONTH
|
|
227
227
|
set_input = set_input_dispatch_by_period
|
|
228
228
|
|
|
@@ -246,7 +246,7 @@ class avantage_en_nature_valeur_reelle(Variable):
|
|
|
246
246
|
class indemnites_compensatrices_conges_payes(Variable):
|
|
247
247
|
value_type = float
|
|
248
248
|
entity = Individu
|
|
249
|
-
label = '
|
|
249
|
+
label = 'Indemnités compensatrices de congés payés'
|
|
250
250
|
definition_period = MONTH
|
|
251
251
|
set_input = set_input_divide_by_period
|
|
252
252
|
|
|
@@ -254,7 +254,7 @@ class indemnites_compensatrices_conges_payes(Variable):
|
|
|
254
254
|
class indemnite_fin_contrat_due(Variable):
|
|
255
255
|
value_type = bool
|
|
256
256
|
entity = Individu
|
|
257
|
-
label = '
|
|
257
|
+
label = 'Indemnité de fin de contrat due'
|
|
258
258
|
definition_period = MONTH
|
|
259
259
|
set_input = set_input_divide_by_period
|
|
260
260
|
|
|
@@ -266,7 +266,7 @@ class TypesContratDeTravail(Enum):
|
|
|
266
266
|
forfait_heures_semaines = 'Convention de forfait heures sur la semaine'
|
|
267
267
|
forfait_heures_mois = 'Convention de forfait heures sur le mois'
|
|
268
268
|
forfait_heures_annee = 'Convention de forfait heures sur l’année'
|
|
269
|
-
forfait_jours_annee = 'Convention de forfait
|
|
269
|
+
forfait_jours_annee = 'Convention de forfait jours sur l’année'
|
|
270
270
|
sans_objet = 'Non renseigné'
|
|
271
271
|
|
|
272
272
|
|
|
@@ -964,12 +964,10 @@ class indemnites_forfaitaires(Variable):
|
|
|
964
964
|
|
|
965
965
|
|
|
966
966
|
class salaire_de_base(Variable):
|
|
967
|
-
# Salaire brut sans les primes et les heures supplémentaires - généralement la première ligne du bulletin de paye.
|
|
968
967
|
value_type = float
|
|
969
968
|
entity = Individu
|
|
970
969
|
label = 'Salaire de base'
|
|
971
970
|
set_input = set_input_divide_by_period
|
|
972
|
-
reference = 'https://www.insee.fr/fr/metadonnees/definition/c1937'
|
|
973
971
|
definition_period = MONTH
|
|
974
972
|
unit = 'currency'
|
|
975
973
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: OpenFisca-France
|
|
3
|
-
Version: 172.0.
|
|
3
|
+
Version: 172.0.4
|
|
4
4
|
Summary: OpenFisca Rules as Code model for France.
|
|
5
5
|
Author-email: OpenFisca Team <contact@openfisca.fr>
|
|
6
6
|
Project-URL: Homepage, https://github.com/openfisca/openfisca-france
|
|
@@ -22,6 +22,7 @@ Description-Content-Type: text/markdown
|
|
|
22
22
|
License-File: LICENSE.AGPL.txt
|
|
23
23
|
Requires-Dist: numpy<2,>=1.24.3
|
|
24
24
|
Requires-Dist: openfisca-core[web-api]<44,>=43
|
|
25
|
+
Requires-Dist: setuptools
|
|
25
26
|
Provides-Extra: dev
|
|
26
27
|
Requires-Dist: autopep8<3.0,>=2.0.2; extra == "dev"
|
|
27
28
|
Requires-Dist: Flake8-pyproject<2.0.0,>=1.2.3; extra == "dev"
|
|
@@ -40,7 +40,7 @@ openfisca_france/model/prelevements_obligatoires/impot_revenu/__init__.py,sha256
|
|
|
40
40
|
openfisca_france/model/prelevements_obligatoires/impot_revenu/charges_deductibles.py,sha256=dXVJgd_dlJHxvgF_5JMWp9KBv-ovX4ubo43a32jTYG8,28152
|
|
41
41
|
openfisca_france/model/prelevements_obligatoires/impot_revenu/contribution_differentielle_hauts_revenus.py,sha256=j9WUufMZ0khZclkc9UpSPL2p4dzM_mZqnELDMwCr08E,19328
|
|
42
42
|
openfisca_france/model/prelevements_obligatoires/impot_revenu/credits_impot.py,sha256=d5gk7S7wgGI2VEYA6sStSwkivpo1-EBxAxWKR-EHMKA,128524
|
|
43
|
-
openfisca_france/model/prelevements_obligatoires/impot_revenu/ir.py,sha256=
|
|
43
|
+
openfisca_france/model/prelevements_obligatoires/impot_revenu/ir.py,sha256=xelAmdde8MTx8nfnev21aNxGJQrBJ7Aq9o3dEcJ6YCw,185912
|
|
44
44
|
openfisca_france/model/prelevements_obligatoires/impot_revenu/plus_values_immobilieres.py,sha256=5gNB5ntU9I9XVeKhYyq94miM4Uv72HruO1Nu_jIPkn4,4754
|
|
45
45
|
openfisca_france/model/prelevements_obligatoires/impot_revenu/reductions_impot_deplafonnees.py,sha256=TdC7EhYY5kw6wO3W4_Hmrz6SaA26Tc5H-93O9J4DPno,39211
|
|
46
46
|
openfisca_france/model/prelevements_obligatoires/impot_revenu/reductions_impot_iom.py,sha256=Q8hoXmUfuQLqzWA0S1CIaP3M7fAVcKtBVkoj3xJiae0,139248
|
|
@@ -62,15 +62,15 @@ openfisca_france/model/prelevements_obligatoires/prelevements_sociaux/contributi
|
|
|
62
62
|
openfisca_france/model/prelevements_obligatoires/prelevements_sociaux/cotisations_sociales/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
63
63
|
openfisca_france/model/prelevements_obligatoires/prelevements_sociaux/cotisations_sociales/allegements.py,sha256=73WoA1N5VyKewDmo2cd7XGAV1crpUQawWMULcmgkLyA,27311
|
|
64
64
|
openfisca_france/model/prelevements_obligatoires/prelevements_sociaux/cotisations_sociales/apprentissage.py,sha256=eXMAn8G40C2D1pUEs8c7Dj2iL7nvIVd_WCACGzNdrUk,11196
|
|
65
|
-
openfisca_france/model/prelevements_obligatoires/prelevements_sociaux/cotisations_sociales/base.py,sha256=
|
|
65
|
+
openfisca_france/model/prelevements_obligatoires/prelevements_sociaux/cotisations_sociales/base.py,sha256=eekvxzcmuZC924jEI5P0Yu_YznLiaLcupVB378XFmoY,13165
|
|
66
66
|
openfisca_france/model/prelevements_obligatoires/prelevements_sociaux/cotisations_sociales/chomage.py,sha256=BUI1fCE9frrtRvO1cCU3pOMRnWEvNK2m9uxAdZBGQ7A,2219
|
|
67
67
|
openfisca_france/model/prelevements_obligatoires/prelevements_sociaux/cotisations_sociales/contrat_professionnalisation.py,sha256=8ideXZBZOWimNzDZ0mJN8GdUYsj-hlLKNEBKT7pIYS0,6274
|
|
68
|
-
openfisca_france/model/prelevements_obligatoires/prelevements_sociaux/cotisations_sociales/exonerations.py,sha256=
|
|
69
|
-
openfisca_france/model/prelevements_obligatoires/prelevements_sociaux/cotisations_sociales/preprocessing.py,sha256=
|
|
70
|
-
openfisca_france/model/prelevements_obligatoires/prelevements_sociaux/cotisations_sociales/stage.py,sha256=
|
|
71
|
-
openfisca_france/model/prelevements_obligatoires/prelevements_sociaux/cotisations_sociales/travail_fonction_publique.py,sha256=
|
|
68
|
+
openfisca_france/model/prelevements_obligatoires/prelevements_sociaux/cotisations_sociales/exonerations.py,sha256=8HR0fqyFiQk6KpxsxIB9l3ooEjwFaLp_nBJqvz_JO3U,39059
|
|
69
|
+
openfisca_france/model/prelevements_obligatoires/prelevements_sociaux/cotisations_sociales/preprocessing.py,sha256=6KrKqrIM24iPT7yAmGUEMWAQOAEyRmRelS2DKOw84-g,23047
|
|
70
|
+
openfisca_france/model/prelevements_obligatoires/prelevements_sociaux/cotisations_sociales/stage.py,sha256=XB-TO4w0M0mrBz20PuO2496TTjPEvv6Y78w93lVt4-U,7316
|
|
71
|
+
openfisca_france/model/prelevements_obligatoires/prelevements_sociaux/cotisations_sociales/travail_fonction_publique.py,sha256=X40rRp-OrWL7UOamK4b7WshPJhDnXyXw4A9o9wnqs3s,16394
|
|
72
72
|
openfisca_france/model/prelevements_obligatoires/prelevements_sociaux/cotisations_sociales/travail_non_salarie.py,sha256=Qmvr-UruYGlj3Ay8WDT49uXUbwSanSVpeXCn7PpE4PU,24851
|
|
73
|
-
openfisca_france/model/prelevements_obligatoires/prelevements_sociaux/cotisations_sociales/travail_prive.py,sha256=
|
|
73
|
+
openfisca_france/model/prelevements_obligatoires/prelevements_sociaux/cotisations_sociales/travail_prive.py,sha256=DYqKr_DD0gsCarRRE84i4dUfc_a0YrJER90Ud0V_GnI,47171
|
|
74
74
|
openfisca_france/model/prelevements_obligatoires/prelevements_sociaux/cotisations_sociales/travail_totaux.py,sha256=vHJWfH0s0BYqbup9pcZisAI3cKGXlmBTdLYzWJOxgNA,9967
|
|
75
75
|
openfisca_france/model/prelevements_obligatoires/taxe_habitation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
76
76
|
openfisca_france/model/prelevements_obligatoires/taxe_habitation/taxe_habitation.py,sha256=-VDWVv6weZqQhPov1SA35Xl8w09AHV9ZXYPBdKimk_U,29326
|
|
@@ -141,7 +141,7 @@ openfisca_france/model/revenus/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5
|
|
|
141
141
|
openfisca_france/model/revenus/autres.py,sha256=LttEzxate9Crynjp3SOlHr-CUGDXEUTjzszzp2U7z_U,5109
|
|
142
142
|
openfisca_france/model/revenus/activite/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
143
143
|
openfisca_france/model/revenus/activite/non_salarie.py,sha256=vpN7zsbmy0R_yCMRW3OVJYM1yYerUZOJiz3a0e8uwSg,69607
|
|
144
|
-
openfisca_france/model/revenus/activite/salarie.py,sha256=
|
|
144
|
+
openfisca_france/model/revenus/activite/salarie.py,sha256=pUAwBMeCvPCfqIZAdfgb5Q4_dQTXuYdfkz36ErS5xMg,68085
|
|
145
145
|
openfisca_france/model/revenus/capital/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
146
146
|
openfisca_france/model/revenus/capital/financier.py,sha256=GLLYxCO2oCF2byjBSsgbYLa8b5MksS_DFU2d61fIpp0,24673
|
|
147
147
|
openfisca_france/model/revenus/capital/foncier.py,sha256=FlFTItVvqhpH4VadqSVq5Iu80OHksSJofMDyMG4sdKk,4752
|
|
@@ -3809,7 +3809,7 @@ openfisca_france/parameters/taxation_capital/prelevement_forfaitaire/partir_2018
|
|
|
3809
3809
|
openfisca_france/parameters/taxation_capital/prelevement_forfaitaire/partir_2018/taux_prelevement_produits_assurance_vie_non_eligibles_prelevement_forfaitaire_unique.yaml,sha256=jQKS6UhRKdJY4DqZVGHCjozAfWALA88NU14sOo9-cSU,2324
|
|
3810
3810
|
openfisca_france/parameters/taxation_capital/prelevements_sociaux/contribution_sociale_cnav.yaml,sha256=D2qF3_ffWeGIEUhGkhB5sYUt0O3kpfO97l0J5T0rARk,1059
|
|
3811
3811
|
openfisca_france/parameters/taxation_capital/prelevements_sociaux/contribution_sociale_permanente_cnaf.yaml,sha256=UFd5NW8Upb9xTcOiJK_BDowH96TB7xFd0PAXqL89z38,895
|
|
3812
|
-
openfisca_france/parameters/taxation_capital/prelevements_sociaux/index.yaml,sha256=
|
|
3812
|
+
openfisca_france/parameters/taxation_capital/prelevements_sociaux/index.yaml,sha256=4UpOLsbicNE_YnoZniUMPurSesKEgKtSdiGW9GKLAU8,385
|
|
3813
3813
|
openfisca_france/parameters/taxation_capital/prelevements_sociaux/prelevement_social_exceptionnel_cnav.yaml,sha256=lKLqiHMuwJOPVlHKnQzVoGZAZdFWWBcrkyCYQilY9Lo,795
|
|
3814
3814
|
openfisca_france/parameters/taxation_capital/prelevements_sociaux/caps/index.yaml,sha256=RWIF6C6R3fGAjx906sqfv5J5lhnjajqYTsZVTWewhZE,645
|
|
3815
3815
|
openfisca_france/parameters/taxation_capital/prelevements_sociaux/caps/produits_de_placement.yaml,sha256=2YJn94R_UtupyhJpe1lY-2DtHfxo97UEht0BmtkbZps,864
|
|
@@ -4129,8 +4129,8 @@ openfisca_france/scripts/performance/measure_spiral_performances.py,sha256=cQIxE
|
|
|
4129
4129
|
openfisca_france/scripts/performance/measure_tests_performance.py,sha256=HYgSJy-OMZay2AZt6ztntgdUbW_RL2xMr-iHcK-zoVY,1869
|
|
4130
4130
|
openfisca_france/situation_examples/__init__.py,sha256=BTRmrqk9lsjfhtPXsYcsWqXFEYyFpgLcxNs6oJsy8zk,262
|
|
4131
4131
|
openfisca_france/situation_examples/couple.json,sha256=Ot1x4wl3IS-2-10X3V7ZUokkOMXi96s-xK7A0gNvRF4,862
|
|
4132
|
-
openfisca_france-172.0.
|
|
4133
|
-
openfisca_france-172.0.
|
|
4134
|
-
openfisca_france-172.0.
|
|
4135
|
-
openfisca_france-172.0.
|
|
4136
|
-
openfisca_france-172.0.
|
|
4132
|
+
openfisca_france-172.0.4.dist-info/licenses/LICENSE.AGPL.txt,sha256=2N5ReRelkdqkR9a-KP-y-shmcD5P62XoYiG-miLTAzo,34519
|
|
4133
|
+
openfisca_france-172.0.4.dist-info/METADATA,sha256=Dlqwcnws1_YmcJfyuTWw6oy6F17vA7DKMjvffDKihkU,20878
|
|
4134
|
+
openfisca_france-172.0.4.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
4135
|
+
openfisca_france-172.0.4.dist-info/top_level.txt,sha256=1LbD6QJWehKGIcjtaJ45tbQOSDiFEXOlIdgWRI_jaHU,17
|
|
4136
|
+
openfisca_france-172.0.4.dist-info/RECORD,,
|
|
File without changes
|
{openfisca_france-172.0.2.dist-info → openfisca_france-172.0.4.dist-info}/licenses/LICENSE.AGPL.txt
RENAMED
|
File without changes
|
|
File without changes
|