Skip to content

Ajoute l'aide permis de conduire de region Nouvelle Aquitaine #181

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 8 commits into from
Sep 18, 2023
16 changes: 16 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,21 @@
# Changelog

## [6.3.0] - 2023-09-11

_Pour les changements détaillés et les discussions associées, consultez la pull request [#181](https://github.com/openfisca/openfisca-france-local/pull/181)_

### Added

- Ajoute la variable `nouvelle_aquitaine_aide_permis`

### Changed

- Créé un dossier pour les pour les paramètres de la `carte solidaire` de la région Nouvelle Aquitaine

### Removed

- Retire la compatibilité avec `openfisca-france` v153.0.1 et inférieur

## [6.2.0] - 2023-09-05

_Pour les changements détaillés et les discussions associées, consultez la pull request [#180](https://github.com/openfisca/openfisca-france-local/pull/180)_
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
age:
minimum_inclusif:
values:
2022-01-01:
value: 17
maximum_inclusif:
values:
2022-01-01:
value: 25

montant_en_fonction_du_quotient_familial:
metadata:
type: single_amount
brackets:
- threshold:
2022-01-01:
value: 0
amount:
2022-01-01:
value: 1200
- threshold:
2022-01-01:
value: 9700
amount:
2022-01-01:
value: 800
- threshold:
2022-01-01:
value: 12001
amount:
2022-01-01:
value: 400
- threshold:
2022-01-01:
value: 15001
amount:
2022-01-01:
value: 0

montant_en_fonction_du_quotient_familial_pour_alternants:
metadata:
type: single_amount
brackets:
- threshold:
2022-01-01:
value: 0
amount:
2022-01-01:
value: 700
- threshold:
2022-01-01:
value: 9700
amount:
2022-01-01:
value: 300
- threshold:
2022-01-01:
value: 12001
amount:
2022-01-01:
value: 0

metadata:
reference:
2022-01-01:
href: https://les-aides.nouvelle-aquitaine.fr/amenagement-du-territoire/aide-au-passage-du-permis-de-conduire-b
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
values:
2009-01-01:
value: 870
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
values:
2009-01-01:
value: 80
87 changes: 87 additions & 0 deletions openfisca_france_local/regions/nouvelle-aquitaine/aide_permis.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@

from openfisca_france.model.base import (
Variable, Individu, MONTH, TypesActivite, select, not_)
from openfisca_france.model.caracteristiques_socio_demographiques.logement import (TypesCodeInseeRegion)
from openfisca_france.model.prestations.education import TypesScolarite, TypesClasse


class eligibilite_age_nouvelle_aquitaine_aide_permis(Variable):
value_type = float
entity = Individu
definition_period = MONTH
label = "Éligibilité d'âge de l'aide au permis de la région Nouvelle-Aquitaine"

def formula(individu, period, parameters):
modalites_age = parameters(period).regions.nouvelle_aquitaine.aide_permis.age
age = individu('age', period)
age_minimum = modalites_age.minimum_inclusif
age_maximum = modalites_age.maximum_inclusif
return (age >= age_minimum) * (age <= age_maximum)


class eligibilite_profile_nouvelle_aquitaine_aide_permis(Variable):
value_type = float
entity = Individu
definition_period = MONTH
label = "Éligibilité de situation de l'aide au permis de la région Nouvelle-Aquitaine"

def formula(individu, period):
est_chomeur = individu('activite', period) == TypesActivite.chomeur

est_lyceen = individu('scolarite', period) == TypesScolarite.lycee
annee_etude = individu('annee_etude', period)
eligibilite_annee_etude = ((annee_etude == TypesClasse.cap_2) + (annee_etude == TypesClasse.terminale)) * (est_lyceen)

est_alternant = individu('alternant', period)

en_service_civique = individu('service_civique', period)

return est_chomeur + eligibilite_annee_etude + en_service_civique + est_alternant


class montant_nouvelle_aquitaine_aide_permis(Variable):
value_type = float
entity = Individu
definition_period = MONTH
label = "Montant de l'aide au permis de la région Nouvelle-Aquitaine"

def formula(individu, period, parameters):
modalites_montants = parameters(period).regions.nouvelle_aquitaine.aide_permis
rfr = individu.foyer_fiscal('rfr', period.n_2)
nbptr = individu.foyer_fiscal('nbptr', period.n_2)
quotient_familial = rfr / nbptr

est_alternant = individu('alternant', period)

calcul_montant_alternants = modalites_montants.montant_en_fonction_du_quotient_familial_pour_alternants.calc
calcul_montant = modalites_montants.montant_en_fonction_du_quotient_familial.calc
return select([est_alternant, not_(est_alternant)],
[calcul_montant_alternants(quotient_familial), calcul_montant(quotient_familial)])


class nouvelle_aquitaine_aide_permis(Variable):
value_type = float
entity = Individu
definition_period = MONTH
reference = 'https://les-aides.nouvelle-aquitaine.fr/amenagement-du-territoire/aide-au-passage-du-permis-de-conduire-b'
label = "Éligibilité et montant associé de l'aide au permis de la région Nouvelle-Aquitaine"
documentation = '''
La modélisation de cette aide ne correspond pas à la réalité.
Les conditions décrites dans le paragraphe `Diplômé de la filière professionnelle ou agricole en insertion professionnelle` sont modélisées en fonction des profils susceptibles d'être intéressés lors d'une simulation avec Aides-Jeunes.

De plus, les profils décrits dans les paragraphes suivants ne sont pas modélisés :
- En insertion professionnelle suivi par une mission locale
- Scolarisé en établissement régional d’enseignement adapté (EREA)
'''

def formula(individu, period):
region_residence = individu.menage('region', period)
eligibilite_geographique = sum([region_residence == TypesCodeInseeRegion.nouvelle_aquitaine])

eligibilite_age = individu('eligibilite_age_nouvelle_aquitaine_aide_permis', period)

eligibilite_profile = individu('eligibilite_profile_nouvelle_aquitaine_aide_permis', period)

montant = individu('montant_nouvelle_aquitaine_aide_permis', period)

return montant * eligibilite_geographique * eligibilite_age * eligibilite_profile
4 changes: 2 additions & 2 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

setup(
name='OpenFisca-France-Local',
version='6.2.0',
version='6.3.0',
author='OpenFisca Team',
author_email='[email protected]',
classifiers=[
Expand All @@ -25,7 +25,7 @@
include_package_data=True,
install_requires=[
'OpenFisca-Core >= 40.0.1, < 42',
'OpenFisca-France >= 149.1.1, < 154',
'OpenFisca-France >= 153.0.1, < 154',
'pandas >= 1.5.3, <2.0'
],
extras_require={
Expand Down
48 changes: 48 additions & 0 deletions tests/regions/nouvelle-aquitaine/aide_permis.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
- period: 2023-08
name: Éligibilité d'age et de résidence et de profil
input:
age: [16, 17, 25, 26, 17, 17, 17, 17, 17, 17]
depcom: [19272, 19272, 19272, 19272, 38185, 19272, 19272, 19272, 19272, 19272]
scolarite: ['lycee','lycee','lycee','lycee','lycee', 'inconnue', 'inconnue', 'inconnue','inconnue','inconnue']
annee_etude: [cap_2, cap_2, cap_2, cap_2, cap_2, cap_2, cap_2, cap_2, cap_2, cap_2]
activite: ['inactif','inactif','inactif','inactif','inactif','actif', 'chomeur', 'inactif','inactif','inactif']
service_civique: [False, False, False, False, False, False, False, False, True, False]
alternant: [False, False, False, False, False, False, False, False, False, True]
output:
nouvelle_aquitaine_aide_permis: [0, 1200, 1200,0, 0, 0, 1200, 0, 1200, 700]

- period: 2023-08
name: Éligibilité de classe du lycée
input:
age: [18, 18, 18, 18, 18, 18, 18]
depcom: [19272, 19272, 19272, 19272, 19272, 19272, 19272, ]
scolarite: [lycee, lycee, lycee, lycee, lycee, lycee, lycee, ]
annee_etude: [cap_1, cap_2, seconde, premiere, terminale, bts_1, bts_2]
output:
nouvelle_aquitaine_aide_permis: [0, 1200, 0, 0, 1200, 0, 0]

- period: 2023-08
name: Montants
input:
age: [17, 17, 17, 17]
depcom: [19272, 19272, 19272, 19272]
service_civique: [true, true, true, true]
rfr:
2021: [9699, 12000, 12001, 15001]
nbptr:
2021: [1, 1, 1, 1]
output:
nouvelle_aquitaine_aide_permis: [1200, 800, 400, 0]

- period: 2023-08
name: Montants pour alternants
input:
age: [17, 17, 17, 17]
depcom: [19272, 19272, 19272, 19272]
alternant: [True, True, True, True]
rfr:
2021: [9699, 9700, 12000, 12001]
nbptr:
2021: [1, 1, 1, 1]
output:
nouvelle_aquitaine_aide_permis: [700, 300, 300, 0]