Skip to content

Commit

Permalink
Ajoute ascendants (#171)
Browse files Browse the repository at this point in the history
* Ajoute ascendants

* Uncoment exemple note commune
  • Loading branch information
benjello authored Nov 28, 2024
1 parent 3af62b8 commit ea839a5
Show file tree
Hide file tree
Showing 9 changed files with 73 additions and 46 deletions.
5 changes: 5 additions & 0 deletions openfisca_tunisia/entities.py
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,11 @@
'plural': 'enfants',
'label': 'Enfants'
},
{
'key': 'ascendant',
'plural': 'ascendants',
'label': 'Ascendants'
},
{
'key': 'autre',
'plural': 'autres',
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
description: Cotisations sociales des les agents de l’Etat, des établissements publics, des collectivités locales et de certaines entreprises à participations publiques
# metadata:
# order:
# - cotisations_salarie
# - cotisations_employeur
documentation: |-
La C.N.R.P.S a été créée, par la loi n° 75-83 du 31 décembre 1975 portant loi de finances pour la gestion 1976,
en remplacement de la Caisse nationale de retraite (CNR) et de la Caisse de prévoyance sociale (CPS)
créées respectivement par la loi n°59-19 du 5 février 1959 et la loi n° 59-45 du 15 avril 1959.
La C.N.R.P.S assure la gestion des régimes de retraite, de prévoyance sociale et du capital décès.
La couverture sociale concerne les agents de l’Etat, des établissements publics, des collectivités locales
et de certaines entreprises à participations publiques.
description: Prélévements sociaux
metadata:
order:
- rsna
- rsa
- rsaa
- raci
- rtns
- rtfr
- rtte
- re
- salarie_cnrps
- pensionne_cnrps
Original file line number Diff line number Diff line change
@@ -1 +1,13 @@
description: Régime général des agents de l'Etat
description: Cotisations sociales des les agents de l’Etat, des établissements publics, des collectivités locales et de certaines entreprises à participations publiques
metadata:
order:
- cotisations_salarie
- cotisations_employeur
documentation: |-
La C.N.R.P.S a été créée, par la loi n° 75-83 du 31 décembre 1975 portant loi de finances pour la gestion 1976,
en remplacement de la Caisse nationale de retraite (CNR) et de la Caisse de prévoyance sociale (CPS)
créées respectivement par la loi n°59-19 du 5 février 1959 et la loi n° 59-45 du 15 avril 1959.
La C.N.R.P.S assure la gestion des régimes de retraite, de prévoyance sociale et du capital décès.
La couverture sociale concerne les agents de l’Etat, des établissements publics, des collectivités locales
et de certaines entreprises à participations publiques.
2 changes: 1 addition & 1 deletion openfisca_tunisia/variables/mesures.py
Original file line number Diff line number Diff line change
Expand Up @@ -72,5 +72,5 @@ class revenus_du_travail(Variable):

def formula(individu, period):
salaire_imposable = individu('salaire_imposable', period = period, options = [ADD])
contribution_sociale_solidarite = individu('contribution_sociale_solidarite_prelevee_source', period = period, options = [ADD])
contribution_sociale_solidarite = individu('contribution_sociale_solidarite_prelevee_a_la_source', period = period, options = [ADD])
return salaire_imposable - contribution_sociale_solidarite # + beap + bic + bnc TODO
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ def formula_2020_01_01(foyer_fiscal, period, parameters):
bareme_irpp = parameters(period.start).impot_revenu.bareme.copy()
bareme_css = parameters(period.start).prelevements_sociaux.contribution_sociale_solidarite.salarie
bareme_irpp.add_tax_scale(bareme_css)

non_exonere_css = (
revenu_net_imposable
> parameters(period.start).impot_revenu.exoneration.seuil
Expand Down Expand Up @@ -47,11 +46,11 @@ class contribution_sociale_solidarite_nette_a_payer(Variable):
def formula(foyer_fiscal, period, parameters):
return (
foyer_fiscal('contribution_sociale_solidarite', period)
- foyer_fiscal.sum(foyer_fiscal.members('contribution_sociale_solidarite_prelevee_source', period, options = [ADD]))
- foyer_fiscal.sum(foyer_fiscal.members('contribution_sociale_solidarite_prelevee_a_la_source', period, options = [ADD]))
)


class contribution_sociale_solidarite_prelevee_source(Variable):
class contribution_sociale_solidarite_prelevee_a_la_source(Variable):
value_type = float
entity = Individu
label = 'Contribution sociale de solidarité'
Expand All @@ -61,14 +60,11 @@ def formula_2020_01_01(individu, period, parameters):
salaire_imposable = individu('salaire_imposable', period = period)
deduction_famille_annuelle = individu.foyer_fiscal('deduction_famille', period = period.this_year)
irpp_salarie_preleve_a_la_source = individu('irpp_salarie_preleve_a_la_source', period = period)

non_exonere_irpp, revenu_assimile_salaire_apres_abattement = calcule_base_imposable(
salaire_imposable, deduction_famille_annuelle, period, parameters)

bareme_irpp = parameters(period.start).impot_revenu.bareme.copy()
bareme_css = parameters(period.start).prelevements_sociaux.contribution_sociale_solidarite.salarie
bareme_irpp.add_tax_scale(bareme_css)

non_exonere_css = (
(12 * revenu_assimile_salaire_apres_abattement - deduction_famille_annuelle)
> parameters(period.start).impot_revenu.exoneration.seuil
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -432,7 +432,7 @@ def formula_2018_01_01(individu, period):
return (
individu('salaire_imposable', period)
- individu('irpp_salarie_preleve_a_la_source', period)
- individu('contribution_sociale_solidarite_prelevee_source', period)
- individu('contribution_sociale_solidarite_prelevee_a_la_source', period)
)

def formula(individu, period):
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,12 @@ def formula(foyer_fiscal, period, parameters):
TODO: fixme
'''
age = foyer_fiscal.members('age', period = period.first_month)
P = parameters(period.start).impot_revenu.deductions.fam
famille = parameters(period.start).impot_revenu.deductions.fam
# res =+ (
# (ag < 20) +
# (ag < 25)*not_(boursier)*()
# )
condition = (age >= 0) * (age <= P.age)
condition = (age >= 0) * (age <= famille.age)
return foyer_fiscal.sum(condition, role = FoyerFiscal.PERSONNE_A_CHARGE)


Expand All @@ -31,10 +31,11 @@ def formula(foyer_fiscal, period):
'''
TODO: Nombre d'enfants étudiants du supérieur non boursiers
'''
age = foyer_fiscal.members('age', period = period)
# age = foyer_fiscal.members('age', period = period)
etudiant = foyer_fiscal.members('etudiant', period = period)
boursier = foyer_fiscal.members('boursier', period = period)

return 0 * age * not_(boursier)
return foyer_fiscal.sum(etudiant * not_(boursier))


class nb_infirme(Variable):
Expand Down Expand Up @@ -397,6 +398,19 @@ def formula(individu, period, parameters):
)


class irpp_net_a_payer(Variable):
value_type = float
entity = FoyerFiscal
label = 'IRPP net des prélèvements à la source'
definition_period = YEAR

def formula(foyer_fiscal, period, parameters):
return (
foyer_fiscal('irpp', period)
- foyer_fiscal.sum(foyer_fiscal.members('irpp_salarie_preleve_a_la_source', period, options = [ADD]))
)


# Utils

def calcule_base_imposable(salaire_mensuel, deduction_famille_annuelle, period, parameters):
Expand Down
2 changes: 1 addition & 1 deletion tests/fiches_de_paie/salarie_fictif.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,5 +15,5 @@
ugtt: 3
salaire_imposable: 1496.2 # 1702.666 - 139.618 - 17.026 - 46.823 - 3
irpp_salarie_preleve_a_la_source: 241.779
contribution_sociale_solidarite_prelevee_source: 13.458
contribution_sociale_solidarite_prelevee_a_la_source: 13.458
salaire_net_a_payer: 1496.2 - 241.779 - 13.458
38 changes: 19 additions & 19 deletions tests/notes_communes/2018/note_2028_01.yaml
Original file line number Diff line number Diff line change
@@ -1,22 +1,22 @@
# # Note commune 2018/01
# # https://jibaya.tn/docs/note-commune-numero-1-commentaire-des-dispositions-de-larticle-53-de-la-loi-n-2017-66-du-18-decembre-2017-portant-loi-de-finances-pour-lannee-2018-relatives-a-lins-2/
# Note commune 2018/01
# https://jibaya.tn/docs/note-commune-numero-1-commentaire-des-dispositions-de-larticle-53-de-la-loi-n-2017-66-du-18-decembre-2017-portant-loi-de-finances-pour-lannee-2018-relatives-a-lins-2/

# - name: Exemple 6
# period: 2018
# absolute_error_margin: .1
# input:
# bnc_forfaitaire_recettes_brutes:
# 2018: 120_000
# deductions:
# 2018: 3500
# output:
# deductions: 3500
# bnc_forfaitaire_benefice_fiscal: 96_000
# rng: 96_000
# revenu_net_imposable: 92_500
# irpp: 27_975
# contribution_sociale_solidarite: 925
# contribution_sociale_solidarite_nette_a_payer: 925
- name: Exemple 6
period: 2018
absolute_error_margin: .1
input:
bnc_forfaitaire_recettes_brutes:
2018: 120_000
deductions:
2018: 3500
output:
deductions: 3500
bnc_forfaitaire_benefice_fiscal: 96_000
rng: 96_000
revenu_net_imposable: 92_500
irpp: 27_975
contribution_sociale_solidarite: 925
contribution_sociale_solidarite_nette_a_payer: 925

- name: Exemple 7
absolute_error_margin: .1
Expand Down Expand Up @@ -69,7 +69,7 @@
2018-10: 3298.100 / 12
2018-11: 3298.100 / 12
2018-12: 3298.100 / 12
contribution_sociale_solidarite_prelevee_source:
contribution_sociale_solidarite_prelevee_a_la_source:
2018-01: 14.730
2018-02: 14.730
2018-03: 14.730
Expand Down

0 comments on commit ea839a5

Please sign in to comment.