Skip to content

Commit

Permalink
Déplace et renomme age_max_etudiant (AL)
Browse files Browse the repository at this point in the history
Bump

Nettoyage

Nettoie description

Synchronise API

Synchro RMI APO

Bump

Synchro RSA

Remove unused import

Retire ref dans index

Lint YAML

Remove use of artifacts

Fix format

Put back publish on master only

Bump

Remove force push to conda

Revert "Remove use of artifacts"

This reverts commit 243fa06.

Ajout event: push pour éviter le problème

Changelog

Start migrating pa/ppa

Fix indent and clean

Homegénéise la PPA

Fix missing date

Try fix

Fix PPA

Fix ppa

Fix ppa

Migrate problematic date

Fix ppa again

Migrate last problematic dates of ppa

Apply suggestions from code review

Fix typo

Bump

Cleaning

Fix entries

Nettoyage

Nettoyage

Nettoyage supplémentaire

Nettoyage et sychro

Typos

Regroup refs

Fix tests

Bump

Migrate taxe_habitation

Fix duplicated key

Fix case

Bump

Nettoyage documentation

Nettoyage

Corrige description

Again

Nettoyage

Nettoyage

Bump

AJoute Profil boursier

Profil bénéficiaire ARS

Profil bénéficiaire AEEH

Profil bénéficiaire AAH

Ajoute la documentation pour indique un profil non modélisé

Refactor pour mettre en avant les profils

Convertit les montants en paramètres

Met à jour le setup et changelog vers la version 155.1.0

Nettoyage

Fix period

Bump

Fix quotes

Nettoyage

Fix entry

Minor cleaning

Bump

Rebuild conda on master

bump

Full command param

Mise à jour CHANGELOG.md

Co-authored-by: sandcha <[email protected]>

Revalorisation SMIC

Revalorisation tranches bareme

Plafonnement quotient familial

Update openfisca_france/parameters/impot_revenu/calcul_impot_revenu/plaf_qf/plafond_avantages_procures_par_demi_part/reduc_postplafond_veuf.yaml

Co-authored-by: Mahdi Ben Jelloul <[email protected]>

Update openfisca_france/parameters/impot_revenu/calcul_impot_revenu/plaf_qf/plafond_avantages_procures_par_demi_part/celib.yaml

Co-authored-by: Mahdi Ben Jelloul <[email protected]>

Modifie test utilisant IR 2023

setup et changelog

setup

More refs

Clean

Bump

Bump

Modifie la manière de s'authentifier à Pypi pour la publication de paquets

Met à jour le setup et changelog vers la version 155.1.6

Ajoute des précisions sur la raison de ce changement

Co-authored-by: Benoit Courty <[email protected]>

Met à jour PSS pour 2024

changelog

Update last_value_still_valid_on

bump

Met à jour les montants d'aspa pour 2024

Update openfisca_france/parameters/prestations_sociales/solidarite_insertion/minimum_vieillesse/aspa/montant_maximum_annuel/personnes_seules.yaml

Co-authored-by: Mahdi Ben Jelloul <[email protected]>

Update openfisca_france/parameters/prestations_sociales/solidarite_insertion/minimum_vieillesse/aspa/montant_maximum_annuel/couples.yaml

Co-authored-by: Mahdi Ben Jelloul <[email protected]>

Update openfisca_france/parameters/prestations_sociales/solidarite_insertion/minimum_vieillesse/aspa/plafond_ressources/couples.yaml

Co-authored-by: Mahdi Ben Jelloul <[email protected]>

Update openfisca_france/parameters/prestations_sociales/solidarite_insertion/minimum_vieillesse/aspa/plafond_ressources/personnes_seules.yaml

Co-authored-by: Mahdi Ben Jelloul <[email protected]>

Changelog

bump

Restructure la CRDS sur les prestations familiales

Restructure la CRDS sur la prime d'activité

Remet crds_mini

Bump

Fix lint

fix lint

Supprime ligne blanche

Ajoute les variables de crds dans le cache_blacklist

fix typo

PPV : Article BOSS

Ajout reference

bump

Mets à jour les seuils de rfr pour la csg retraite pour 2024

Bump et changelog

Mets à jour l'abattement pour enfant marié

Update plafond déduction pension alimentaire enfant majeur

Bump et changelog

Modifie la valeur par defaut de la variable "aah_restriction_substantielle_durable_acces_emploi" à False et ajoute des cas de tests

Règle de deconjugalisation du plafond de ressources pour l'aah

fiabilisation abattement cessation activite tests unitaires

fiabilisation abattement cessation activite ajout du test unitaire cessation_activite.yaml

Ajout test période transitoire de déconjugalisation

Ajoute les nouvelles données pour la prise en compte de l'aide AdeFIP Eure et Loire

Modifie la zone de la zone 2 en zone 1 pour la ville de Trilport

Fiabilisation de la base ressource ASS

Ajout abatement assistant maternel et familial et journaliste

Modifie period cheque energie

Revalorise le R0 pour le 01/01/2022

Corrige cas tests ko

Ajout rpns_benifice à la base ressources aide_logement

Ajoute la revalorisation du taux du livret d'épargne populaire au 01/08/2022

Decale la periode de ressources de 12 mois glissants prise en compte pour la CSS d'un mois (M-2 à M-13)

Tentative de correction build iMSA

Correction chemin paramètres abattement AL pour assistant journaliste

Correction default_value pour contrat_de_travail_duree

Définition de la période du chèque énergie à mensuelle

Use Period() instead of .period method

Supprime une ligne commentée inutile

Ajoute la date de journal officiel pour l'entrée 2023-01-01

Corrige une suppression de ligne anormale

Ajoute l'abattement cessation d'activité AAH manquant

Arrangement des formula de aah_base_ressources

Ajout formula déconjugalisation pour aah_plafond_ressources

Corrections par rapport à commit 41ee9b4

Revalorisation des plafonds de loyer

Revalorisation des plafonds d'équivalence de loyer et de charges locatives pour les personnes résidant dans un logement-foyer

Revalorisation des majorations forfaitaires au titre des charges

Revalorisation des mesures du loyer pour les étudiants logeant en résidence universitaire

Revalorisations de la réduction de loyer de solidarité (RLS)

Correction références : format date et ajout article décret

Revalorisations de l'abattement forfaitaire R0 pour 2024-01

Revalorisations des montants forfaitaires de ressources applicables aux étudiants pour 2024-01

Revalorisations pour la réduction de loyer de solidarité, montants et plafonds de ressource (RLS)

Correction formatage YAML dans test

Références législatives pour la réduction de loyer de solidarité, montants et plafonds de ressource (RLS)

Références législatives de l'abattement forfaitaire R0 pour 2024-01

Références législatives des montants forfaitaires de ressources applicables aux étudiants pour 2024-01

Revalorisation janvier 2024 PAJE et CF

Fiabilisation du calcul des ressources pour l eligibilite a la CSS par application des abattements

Revalorisation allocation supplémentaire d'invalidité, plafond de ressource (asi)

Ajout test suite à la revalorisation allocation supplémentaire d'invalidité, plafond de ressource (asi)

Revalorisation allocation de solidarité spécifique, montant de base (asi)

Revalorisation complémentaire santé solidaire, plafond de base (css)

Revalorisation base mensuelle allocation familiale (BAMF) 1er avril 2024

Revalorisation allocation aux adultes handicapés (AAH) 1er avril 2024

Revalorisation prime d'activité (PPA) 1er avril 2024

Revalorisation revenu de solidarité active (RSA) 1er avril 2024, montant de base

Suppression test, suite à la discussion sur les tests sur les revals

Passage de la période de référence de m-2 à m-4 après octobre 2024 pour les aides suivantes : PPA et RSA

Modification CHANGELOG.md et setup.py

Correction indentation

Correction indentation

Correction CHANGELOG.md et setup.py

fix(ppa): prise en compte des statuts apprenti et stagiaire dans le calcul de l eligibilite a la prime d activite
  • Loading branch information
benjello authored and robinguill committed Nov 7, 2024
1 parent 6cf222b commit 52ef7f6
Show file tree
Hide file tree
Showing 54 changed files with 2,347 additions and 326 deletions.
2 changes: 2 additions & 0 deletions .github/workflows/workflow.yml
Original file line number Diff line number Diff line change
Expand Up @@ -248,6 +248,8 @@ jobs:
- name: Update meta.yaml
run: |
python3 -m pip install requests argparse
# Sleep to allow PyPi to update its API
sleep 60
python3 .github/get_pypi_info.py -p OpenFisca-France
- name: Get version
run: echo "PACKAGE_VERSION=$(python3 ./setup.py --version)" >> $GITHUB_ENV
Expand Down
2 changes: 1 addition & 1 deletion openfisca_france/assets/apl/20110914_zonage.csv
Original file line number Diff line number Diff line change
Expand Up @@ -31988,7 +31988,7 @@ CODGEO,LIBCOM_2014,REG,DEP,Zonage
77472,La Trétoire,11,77,2
77473,Treuzy-Levelay,11,77,2
77474,Trilbardou,11,77,1
77475,Trilport,11,77,2
77475,Trilport,11,77,1
77476,Trocy-en-Multien,11,77,2
77477,Ury,11,77,1
77478,Ussy-sur-Marne,11,77,2
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4060,6 +4060,13 @@ def formula(foyer_fiscal, period, parameters):
return ppe


class plus_values_gains_divers(Variable):
value_type = float
entity = FoyerFiscal
label = "Plus-values et gains divers"
definition_period = YEAR


class deficit_exercice(Variable):
value_type = float
entity = FoyerFiscal
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from openfisca_core import periods
from openfisca_core.periods import Period

from openfisca_france.model.base import *

Expand All @@ -18,14 +18,14 @@ class eligibilite_indemnite_inflation_non_salarie(Variable):

def formula(individu, period, parameters):

oct_2021 = periods.period('2021-10')
oct_2021 = Period('2021-10')

# non-salarié
eligibilite_cat_non_sal = (individu('categorie_non_salarie', oct_2021.this_year) != TypesCategorieNonSalarie.non_pertinent)

# revenu d'activité inférieure à € 2000 nets par mois en 2020 (selon déclaration annuelle des revenus)
annee_2020 = periods.period('2020')
jan_sep_2021 = periods.period('month:2021-01:9')
annee_2020 = Period('2020')
jan_sep_2021 = Period('month:2021-01:9')

# chiffre d'affaires. Uniquement pour les régimes microsociaux, on ne tient pas compte de ceux qui y auraient droit (et à l'indemnite inflation) mais préféreraient le régime des bénéfices réels.
rev_net_auto = individu('rpns_auto_entrepreneur_revenus_net', annee_2020, options = [ADD])
Expand Down Expand Up @@ -59,7 +59,7 @@ class eligibilite_indemnite_inflation_salarie_prive(Variable):
def formula(individu, period, parameters):

# éligibilité statut
oct_2021 = periods.period('2021-10')
oct_2021 = Period('2021-10')
eligibilite_activite = individu('activite', oct_2021) == TypesActivite.actif
eligibilite_alternance = individu('alternant', oct_2021) > 0
eligibilite = (eligibilite_activite + eligibilite_alternance) > 0
Expand All @@ -83,7 +83,7 @@ def formula(individu, period, parameters):
tsal = 0

for rp in rev_periods:
per = periods.period(rp)
per = Period(rp)
sal = individu('salaire_net', per, options=[ADD])

if sal > 0:
Expand All @@ -110,7 +110,7 @@ class eligibilite_indemnite_inflation_public(Variable):

def formula(individu, period, parameters):

oct_2021 = periods.period('2021-10')
oct_2021 = Period('2021-10')

# agent public
eligibilite_public = ((individu('categorie_salarie', oct_2021) == TypesCategorieSalarie.public_titulaire_etat)
Expand Down Expand Up @@ -138,7 +138,7 @@ def formula(individu, period, parameters):
tsal = 0

for rp in rev_periods:
per = periods.period(rp)
per = Period(rp)
sal = individu('salaire_net', per, options=[ADD])

if sal > 0:
Expand Down Expand Up @@ -166,8 +166,8 @@ class eligibilite_indemnite_inflation_retraite(Variable):

def formula(individu, period, parameters):

oct_2021 = periods.period('2021-10')
annee_2021 = periods.period('2021')
oct_2021 = Period('2021-10')
annee_2021 = Period('2021')

# bénéficiaire d'une pension de retraite en octobre 2021
eligibilite_retraite = (individu('activite', oct_2021) == TypesActivite.retraite)
Expand Down Expand Up @@ -198,7 +198,7 @@ class eligibilite_indemnite_inflation_prest_soc(Variable):

def formula(individu, period, parameters):

oct_2021 = periods.period('2021-10')
oct_2021 = Period('2021-10')

# pension d'invalidité <= 2000 par mois
eligibilite_pension_invalidite = (individu('pensions_invalidite', oct_2021) <= 2000) * (individu('pensions_invalidite', oct_2021) > 0)
Expand Down Expand Up @@ -228,7 +228,7 @@ class eligibilite_indemnite_inflation_jeune(Variable):

def formula(individu, period, parameters):

oct_2021 = periods.period('2021-10')
oct_2021 = Period('2021-10')

# au moins 16 ans
eligibilite_age = individu('age', oct_2021) >= 16
Expand Down Expand Up @@ -275,7 +275,7 @@ class eligibilite_indemnite_inflation_demandeur_emploi(Variable):

def formula(individu, period, parameters):

oct_2021 = periods.period('2021-10')
oct_2021 = Period('2021-10')

# chômeur en octobre 2021
eligibilite_chomeur = (individu('activite', oct_2021) == TypesActivite.chomeur)
Expand Down
89 changes: 86 additions & 3 deletions openfisca_france/model/prestations/aides_logement.py
Original file line number Diff line number Diff line change
Expand Up @@ -253,6 +253,27 @@ class etat_logement(Variable):
definition_period = MONTH


class assistant_maternel(Variable):
value_type = bool
entity = Individu
label = "Assistant maternel"
definition_period = MONTH


class assistant_familial(Variable):
value_type = bool
entity = Individu
label = "Assistant familial"
definition_period = MONTH


class journaliste(Variable):
value_type = bool
entity = Individu
label = "Journaliste"
definition_period = MONTH


class aide_logement_date_pret_conventionne(Variable):
value_type = date
default_value = date.max
Expand Down Expand Up @@ -568,7 +589,9 @@ def formula_2021_01_01(individu, period, parameters):
period_frais = period.last_year
annee_glissante = Period(('year', period.start, 1)).offset(-1).offset(-1, 'month')

salaire_imposable = individu('salaire_imposable', annee_glissante, options=[ADD])
# salaire imposable pour les journaliste et les assistants mat/fam apres l'aplication de l'abattement forfaitaire
# dans le cas des frais réels déclaré superieur a Zero.
salaire_imposable = individu('al_abattement_forfaitaire_assistants_et_journalistes', annee_glissante, options=[ADD])
chomage_imposable = individu('chomage_imposable', annee_glissante, options=[ADD])
f1tt = individu('f1tt', period.n_2)
f3vj = individu('f3vj', period.n_2)
Expand All @@ -582,13 +605,12 @@ def formula_2021_01_01(individu, period, parameters):

abattement_frais_pro = where(frais_reels > abattement_forfaitaire, frais_reels, abattement_forfaitaire)

rpns = individu('rpns_imposables', period.n_2)
rpns_pvce = individu('rpns_pvce', period.n_2)
rpns_pvct = individu('rpns_pvct', period.n_2)
rpns_mvct = individu('moins_values_court_terme_non_salaries', period.n_2)
rpns_mvlt = individu('moins_values_long_terme_non_salaries', period.n_2)

rpns = rpns + rpns_pvce + rpns_pvct + rpns_mvct + rpns_mvlt
rpns = rpns_pvce + rpns_pvct + rpns_mvct + rpns_mvlt
# TO DO : compléter la formule pour prendre en compte la disposition particulière concernant les indépendants ayant commencé une activité entre N-2 et N.
# Non implémentée car diffile à comprendre ce qui est fait exactement

Expand Down Expand Up @@ -889,6 +911,26 @@ def formula(famille, period, parameters):
return deux_parents * famille.all(condition_ressource_i, role=Famille.PARENT)


class al_abattement_forfaitaire_assistants_et_journalistes(Variable):
value_type = float
entity = Individu
label = "L'application de l'abattement forfaitaire pour les journaliste et les assistants maternels et familials."
definition_period = MONTH

def formula_2019_01(individu, period, parameters):
assistant_maternel = individu('assistant_maternel', period)
assistant_familial = individu('assistant_familial', period)
journaliste = individu('journaliste', period)
salaire_imposable = individu('salaire_imposable', period)
abat = parameters(period).prestations_sociales.aides_logement.allocations_logement.al_assistant_journaliste.abattement

montant_abattement = select([assistant_maternel, assistant_familial, journaliste],
[abat.assistant_maternel, abat.assistant_familial, abat.journaliste],
default=0)

return max_(0, salaire_imposable - montant_abattement)


class aide_logement_base_ressources(Variable):
value_type = float
entity = Famille
Expand All @@ -901,6 +943,7 @@ class aide_logement_base_ressources(Variable):
set_input = set_input_divide_by_period

def formula_2021_01_01(famille, period, parameters):
annee_glissante = Period(('year', period.start, 1)).offset(-1).offset(-1, 'month')
biactivite = famille('aide_logement_biactivite', period)
parametres_ressources = parameters(period).prestations_sociales.aides_logement.allocations_logement.ressources
age_etudiant_max = parameters(period).prestations_sociales.aides_logement.allocations_logement.al_etudiant.age_max
Expand All @@ -915,6 +958,45 @@ def formula_2021_01_01(famille, period, parameters):
demandeur_declarant_principal = famille.demandeur.has_role(FoyerFiscal.DECLARANT_PRINCIPAL)
conjoint_declarant_principal = famille.conjoint.has_role(FoyerFiscal.DECLARANT_PRINCIPAL)

# Ressources N-2
indemnites_journalieres_atexa_i = famille.members('indemnites_journalieres_atexa', period.n_2, options=[ADD])
gains_exceptionnels_i = famille.members('gains_exceptionnels', period.n_2, options=[ADD])
benefice_agricole_i_n_2 = famille.members('rpns_benefice_exploitant_agricole', period.n_2)
benefice_micro_entreprise_i_n_2 = famille.members('rpns_micro_entreprise_benefice', period.n_2)
benefice_auto_entrepreneur_i_n_2 = famille.members('rpns_auto_entrepreneur_benefice', period.n_2, options=[ADD])
rpns_autres_revenus_i_n_2 = famille.members('rpns_autres_revenus', period.n_2)
# En l'absence de benefices TNS en N-2, on recupère les bénéfices de l'année glissante à compter de M-1
benefice_agricole_i_m_12 = famille.members('rpns_benefice_exploitant_agricole', annee_glissante)
benefice_micro_entreprise_i_m_12 = famille.members('rpns_micro_entreprise_benefice', annee_glissante)
benefice_auto_entrepreneur_i_m_12 = famille.members('rpns_auto_entrepreneur_benefice', annee_glissante,
options=[ADD])
rpns_autres_revenus_i_m_12 = famille.members('rpns_autres_revenus', annee_glissante)
benefice_agricole_i = where(benefice_agricole_i_n_2 > 0, benefice_agricole_i_n_2, benefice_agricole_i_m_12)
benefice_micro_entreprise_i = where(benefice_micro_entreprise_i_n_2 > 0, benefice_micro_entreprise_i_n_2,
benefice_micro_entreprise_i_m_12)
benefice_auto_entrepreneur_i = where(benefice_auto_entrepreneur_i_n_2 > 0, benefice_auto_entrepreneur_i_n_2,
benefice_auto_entrepreneur_i_m_12)
rpns_autres_revenus_i = where(rpns_autres_revenus_i_n_2 > 0, rpns_autres_revenus_i_n_2,
rpns_autres_revenus_i_m_12)

ressources_n_2_i = (
indemnites_journalieres_atexa_i
+ gains_exceptionnels_i
+ benefice_agricole_i
+ benefice_micro_entreprise_i
+ benefice_auto_entrepreneur_i
+ rpns_autres_revenus_i
)
ressources_n_2 = famille.sum(ressources_n_2_i, role=Famille.PARENT)
f4ba = famille.demandeur.foyer_fiscal('f4ba', period.n_2)
plus_values_gains_divers = famille.demandeur.foyer_fiscal('plus_values_gains_divers', period.n_2)
deficit_exercice = famille.demandeur.foyer_fiscal('deficit_exercice', period.n_2)
ressources_n_2 += (
f4ba
+ plus_values_gains_divers
- deficit_exercice
)

# Revenus du foyer fiscal
aide_logement_base_revenus_fiscaux = (
famille.demandeur.foyer_fiscal('aide_logement_base_revenus_fiscaux', period.n_2) * demandeur_declarant_principal
Expand All @@ -939,6 +1021,7 @@ def formula_2021_01_01(famille, period, parameters):
+ ressources_patrimoine
+ aide_logement_base_revenus_fiscaux
+ pensions_alimentaires_versees
+ ressources_n_2
)

# Abattement forfaitaire pour double activité
Expand Down
1 change: 1 addition & 0 deletions openfisca_france/model/prestations/autonomie.py
Original file line number Diff line number Diff line change
Expand Up @@ -210,6 +210,7 @@ def formula_2002(individu, period, parameters):
perte_autonomie_personnes_agees = parameters(period).prestations_sociales.prestations_etat_de_sante.perte_autonomie_personnes_agees
smic_brut_horaire = parameters(period).marche_travail.salaire_minimum.smic.smic_b_horaire
seuil_non_versement = perte_autonomie_personnes_agees.apa_institution.seuil_versement_en_part_smic_brut_horaire * smic_brut_horaire

en_couple = individu.famille('en_couple', period)
apa_eligibilite = individu('apa_eligibilite', period)
gir = individu('gir', period) # noqa F841
Expand Down
11 changes: 6 additions & 5 deletions openfisca_france/model/prestations/cheque_energie.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,12 +31,12 @@ class cheque_energie_eligibilite_logement(Variable):
'https://www.legifrance.gouv.fr/affichCodeArticle.do;jsessionid=6A3717E70623B148432581CC8F585C5F.tplgfr31s_1?idArticle=LEGIARTI000006394061&cidTexte=LEGITEXT000006070633&dateTexte=20180316',
]
label = 'Éligibilité du logement occupé au chèque énergie'
definition_period = YEAR
definition_period = MONTH
set_input = set_input_dispatch_by_period

def formula_2017(menage, period, parameters):
statut_occupation_logement = menage('statut_occupation_logement', period.first_month)
residence_saint_martin = menage('residence_saint_martin', period.first_month)
statut_occupation_logement = menage('statut_occupation_logement', period)
residence_saint_martin = menage('residence_saint_martin', period)

return (
not_(residence_saint_martin) * (
Expand Down Expand Up @@ -79,13 +79,14 @@ class cheque_energie(Variable):
value_type = float
reference = 'https://chequeenergie.gouv.fr'
label = 'Montant auquel le ménage peut prétendre au titre du chèque energie'
definition_period = YEAR
definition_period = MONTH
set_input = set_input_divide_by_period

def formula_2017(menage, period):
eligible = menage('cheque_energie_eligibilite_logement', period)
declarant = menage.sum(menage.members('age', period.first_month) * 0 + 1, role = FoyerFiscal.DECLARANT) > 0 # une colocation de personnes à la charge de leurs parents n'est pas éligible aux chèques énergie, par exemple
declarant = menage.sum(menage.members('age', period) * 0 + 1, role = FoyerFiscal.DECLARANT) > 0 # une colocation de personnes à la charge de leurs parents n'est pas éligible aux chèques énergie, par exemple
montant = menage('cheque_energie_montant', period.this_year)

return declarant * eligible * montant


Expand Down
Loading

0 comments on commit 52ef7f6

Please sign in to comment.