Big refactoring of the APL code

This commit is contained in:
Denis Merigoux 2022-04-29 20:18:01 +02:00
parent 2c1d52787d
commit 1bf4404bb3
No known key found for this signature in database
GPG Key ID: EE99DCFA365C3EE3
9 changed files with 597 additions and 390 deletions

View File

@ -61,7 +61,7 @@ let wrap_latex
\\usepackage{textcomp}\n\
\\usepackage[hidelinks]{hyperref}\n\
\\usepackage[dvipsnames]{xcolor}\n\
\\usepackage[left=2cm,right=2cm,top=3cm,bottom=3cm]{geometry}\n\
\\usepackage[left=2cm,right=2cm,top=3cm,bottom=3cm,headheight=2cm]{geometry}\n\
\\usepackage[many]{tcolorbox}\n\n\
\\usepackage{fancyhdr}\n\
\\pagestyle{fancy}\n\

View File

@ -301,11 +301,11 @@ let process_data_decl
| Some use ->
Errors.raise_multispanned_error
[
( Some "first use",
( Some "First use:",
Pos.get_position (Desugared.Ast.ScopeVar.get_info use) );
(Some "second use", pos);
(Some "Second use:", pos);
]
"var name \"%a\" already used"
"Variable name \"%a\" already used"
(Utils.Cli.format_with_style [ ANSITerminal.yellow ])
name
| None ->

View File

@ -56,12 +56,8 @@ pour les prestations dues à compter du 1er octobre 2021.
déclaration énumération SituationFamilialeCalculAPL:
-- PersonneSeule
-- Couple
```
```catala
champ d'application CalculAidePersonnelleLogement
sous condition date_courante >=@ |2021-10-01|:
champ d'application CalculAidePersonnelleLogement:
définition situation_familiale_calcul_apl égal à
selon situation_familiale sous forme
-- Célibataire: PersonneSeule
@ -70,6 +66,11 @@ champ d'application CalculAidePersonnelleLogement
-- Concubins: Couple
-- CélibataireSéparéDeFait: PersonneSeule
-- ConcubinageDontSéparéDeFait: Couple
```
```catala
champ d'application CalculAidePersonnelleLogementLocatif
sous condition date_courante >=@ |2021-10-01|:
# Colonne 1
étiquette base définition plafond_loyer_d823_16_2 sous condition
@ -142,7 +143,7 @@ ces dispositions sont applicables pour les prestations dues à
compter du 1er octobre 2021.
```catala
champ d'application CalculAidePersonnelleLogement
champ d'application CalculAidePersonnelleLogementLocatif
sous condition
date_courante >=@ |2021-10-01| et
logement_est_chambre:
@ -187,7 +188,7 @@ ces dispositions sont applicables pour les prestations dues à compter
du 1er octobre 2021.
```catala
champ d'application CalculAidePersonnelleLogement
champ d'application CalculAidePersonnelleLogementLocatif
sous condition date_courante >=@ |2021-10-01|:
définition montant_forfaitaire_charges_d823_16 égal à
54,22€ +€ 12,29€ *€ (entier_vers_décimal de nombre_personnes_à_charge)
@ -209,7 +210,7 @@ II | 2,5 | 3,1
III | 2,5 | 3,1
```catala
champ d'application CalculAidePersonnelleLogement:
champ d'application CalculAidePersonnelleLogementLocatif:
définition plafond_dégressivité_d823_16 égal à
selon zone sous forme
-- Zone1: plafond_loyer_d823_16_2 *€ 3,4
@ -230,7 +231,7 @@ Le montant de minoration forfaitaire prévu au 9e alinéa de l'article D. 823-16
du même code est fixé à 5 euros.
```catala
champ d'application CalculAidePersonnelleLogement:
champ d'application CalculAidePersonnelleLogementLocatif:
définition montant_forfaitaire_d823_16 égal à 5 €
```
@ -242,7 +243,7 @@ est fixé à 10 euros pour les allocations de logement et à 0 euro pour l'aide
personnalisée au logement.
```catala
champ d'application CalculAidePersonnelleLogement:
champ d'application CalculAidePersonnelleLogementLocatif:
définition montant_minimal_aide_d823_16 égal à
selon type_aide sous forme
-- AidePersonnaliséeLogement: 0 €
@ -257,7 +258,7 @@ La participation minimale P0 définie au 2° de l'article D. 823-17 du même cod
défini au 2° de l'article D. 823-16 du même code et du forfait charge ou 35,39 euros.
```catala
champ d'application CalculAidePersonnelleLogement
champ d'application CalculAidePersonnelleLogementLocatif
sous condition date_courante >=@ |2021-10-01|:
définition participation_minimale égal à
si loyer_éligible *€ 8,5% >=€ 35,39 € alors
@ -301,7 +302,7 @@ Majoration par personne à charge | -0,06%
# ou 2,01% ?
# TODO juridique: que se passe-t-il quand il y a 29 personnes à charge et que
# le taux devient négatif?
champ d'application CalculAidePersonnelleLogement
champ d'application CalculAidePersonnelleLogementLocatif
sous condition date_courante >=@ |2021-10-01|:
définition taux_composition_familiale égal à
si nombre_personnes_à_charge = 0 alors
@ -334,7 +335,7 @@ RL entre le loyer retenu dans la limite du plafond L et un loyer de référence
RL est exprimé en pourcentage et arrondi à la deuxième décimale.
```catala
champ d'application CalculAidePersonnelleLogement
champ d'application CalculAidePersonnelleLogementLocatif
sous condition date_courante >=@ |2021-10-01|:
définition rapport_loyers égal à
# TODO informatique: faire l'arrondi
@ -354,7 +355,7 @@ Si RL<45 % | Si 45% < RL < 75% | Si RL >75 %
TL=0 % | TL=0,45 %*(RL-45%) | TL=0,45 %*30 %+0,68 %*(RL-75%)
```catala
champ d'application CalculAidePersonnelleLogement
champ d'application CalculAidePersonnelleLogementLocatif
sous condition date_courante >=@ |2021-10-01|:
# Ici on choisit de mettre des >= pour inclure le résultat sur la crête
# dans la case de droite ; nous avons bien vérifié que sur la crête le
@ -377,7 +378,7 @@ Personne seule ou couple ayant une personne à charge | 357,80
Majoration par personne à charge | 52,08
```catala
champ d'application CalculAidePersonnelleLogement
champ d'application CalculAidePersonnelleLogementLocatif
sous condition date_courante >=@ |2021-10-01|:
définition loyer_référence égal à
si nombre_personnes_à_charge = 0 alors
@ -410,7 +411,7 @@ Personne seule ou couple ayant :
-par personne à charge supplémentaire | 311
```catala
champ d'application CalculAidePersonnelleLogement
champ d'application CalculAidePersonnelleLogementLocatif
sous condition date_courante >=@ |2021-10-01|:
définition abattement_forfaitaire_d823_17 égal à
si nombre_personnes_à_charge = 0 alors
@ -462,7 +463,7 @@ Par personne à
charge supplémentaire | 44,21 | 39,06 | 35,57
```catala
champ d'application CalculAidePersonnelleLogement
champ d'application CalculAidePersonnelleLogementLocatif
sous condition date_courante >=@ |2021-10-01| et colocation:
# Ici l'exception est rapportée au cas de base puisqu'on suppose
@ -510,7 +511,7 @@ Couple sans personne à charge | 54,22
Majoration par personne à charge | 12,29
```catala
champ d'application CalculAidePersonnelleLogement
champ d'application CalculAidePersonnelleLogementLocatif
sous condition date_courante >=@ |2021-10-01| et colocation:
définition montant_forfaitaire_charges_d823_16 égal à
(selon situation_familiale_calcul_apl sous forme
@ -552,12 +553,12 @@ Par personne supplémentaire à charge | 430 | 3
# Ici les montants des mensualités sont en francs car signées avant
# l'avènement de l'euro mais pour le calcul des APL en euros il faut
# que la mensualité plafond soit exprimée en euros. Donc nous convertissons.
champ d'application CalculAidePersonnelleLogement:
champ d'application CalculAidePersonnelleLogementAccessionPropriété:
# TODO juridique: trouver le décret ou la loi qui définit ce taux de
# conversion.
définition taux_francs_vers_euros égal à (1,0 /. 6,55957)
définition calcul_plafond_menusalité_d832_10_3 de date_signature_prêt
définition calcul_plafond_mensualité_d832_10_3 de date_signature_prêt
sous condition
date_signature_prêt >=@ |1992-06-30| et
date_signature_prêt <@ |1994-11-27| et
@ -599,8 +600,8 @@ Par personne supplémentaire à charge | 374 | 3
```catala
champ d'application CalculAidePersonnelleLogement:
définition calcul_plafond_menusalité_d832_10_3 de date_signature_prêt
champ d'application CalculAidePersonnelleLogementAccessionPropriété:
définition calcul_plafond_mensualité_d832_10_3 de date_signature_prêt
sous condition
date_signature_prêt >=@ |1992-06-30| et
date_signature_prêt <@ |1994-11-27| et
@ -643,8 +644,8 @@ Bénéficiaire isolé ou couple ayant une personne à charge | 2 600 |
Par personne supplémentaire à charge | 380 | 335 | 305
```catala
champ d'application CalculAidePersonnelleLogement:
définition calcul_plafond_menusalité_d832_10_3 de date_signature_prêt
champ d'application CalculAidePersonnelleLogementAccessionPropriété:
définition calcul_plafond_mensualité_d832_10_3 de date_signature_prêt
sous condition
date_signature_prêt >=@ |1994-11-27| et
ancienneté_logement sous forme Neuf et
@ -685,8 +686,8 @@ Bénéficiaire isolé ou couple ayant une personne à charge | 2 093 |
Par personne supplémentaire à charge | 306 | 269 | 246
```catala
champ d'application CalculAidePersonnelleLogement:
définition calcul_plafond_menusalité_d832_10_3 de date_signature_prêt
champ d'application CalculAidePersonnelleLogementAccessionPropriété:
définition calcul_plafond_mensualité_d832_10_3 de date_signature_prêt
sous condition
date_signature_prêt >=@ |1994-11-27| et
ancienneté_logement sous forme Ancien et
@ -735,8 +736,8 @@ Bénéficiaire isolé ou couple ayant une personne à charge | 2 945 |
Par personne supplémentaire à charge | 430 | 379 | 346
```catala
champ d'application CalculAidePersonnelleLogement:
définition calcul_plafond_menusalité_d832_10_3 de date_signature_prêt
champ d'application CalculAidePersonnelleLogementAccessionPropriété:
définition calcul_plafond_mensualité_d832_10_3 de date_signature_prêt
sous condition
date_signature_prêt >=@ |1992-06-30| et
date_signature_prêt <@ |1994-11-27| et
@ -778,8 +779,8 @@ Bénéficiaire isolé ou couple ayant une personne à charge | 2 372 |
Par personne supplémentaire à charge | 347 | 379 | 346
```catala
champ d'application CalculAidePersonnelleLogement:
définition calcul_plafond_menusalité_d832_10_3 de date_signature_prêt
champ d'application CalculAidePersonnelleLogementAccessionPropriété:
définition calcul_plafond_mensualité_d832_10_3 de date_signature_prêt
sous condition
date_signature_prêt >=@ |1992-06-30| et
date_signature_prêt <@ |1994-11-27| et
@ -824,8 +825,8 @@ Par personne supplémentaire à charge | 102
```catala
champ d'application CalculAidePersonnelleLogement:
définition calcul_plafond_menusalité_d832_10_3 de date_signature_prêt
champ d'application CalculAidePersonnelleLogementAccessionPropriété:
définition calcul_plafond_mensualité_d832_10_3 de date_signature_prêt
sous condition
date_signature_prêt >=@ |1992-06-30| et
date_signature_prêt <@ |1994-11-27| et
@ -855,8 +856,8 @@ Bénéficiaire isolé ou couple ayant une personne à charge | 2 799 |
Par personne supplémentaire à charge | 409 | 360 | 329
```catala
champ d'application CalculAidePersonnelleLogement:
définition calcul_plafond_menusalité_d832_10_3 de date_signature_prêt
champ d'application CalculAidePersonnelleLogementAccessionPropriété:
définition calcul_plafond_mensualité_d832_10_3 de date_signature_prêt
sous condition
date_signature_prêt >=@ |1994-11-27| et
date_signature_prêt <@ |2000-06-30| et
@ -898,8 +899,8 @@ Bénéficiaire isolé ou couple ayant une personne à charge | 2 255 |
Par personne supplémentaire à charge | 330 | 290 | 265
```catala
champ d'application CalculAidePersonnelleLogement:
définition calcul_plafond_menusalité_d832_10_3 de date_signature_prêt
champ d'application CalculAidePersonnelleLogementAccessionPropriété:
définition calcul_plafond_mensualité_d832_10_3 de date_signature_prêt
sous condition
date_signature_prêt >=@ |1994-11-27| et
date_signature_prêt <@ |2000-06-30| et
@ -942,8 +943,8 @@ Bénéficiaire isolé ou couple ayant une personne à charge | 2 827 |
Par personne supplémentaire à charge | 413 | 364 | 332
```catala
champ d'application CalculAidePersonnelleLogement:
définition calcul_plafond_menusalité_d832_10_3 de date_signature_prêt
champ d'application CalculAidePersonnelleLogementAccessionPropriété:
définition calcul_plafond_mensualité_d832_10_3 de date_signature_prêt
sous condition
date_signature_prêt >=@ |2000-06-30| et
date_signature_prêt <=@ |2001-06-30| et
@ -985,8 +986,8 @@ Bénéficiaire isolé ou couple ayant une personne à charge | 2 277 |
Par personne supplémentaire à charge | 333 | 293 | 268
```catala
champ d'application CalculAidePersonnelleLogement:
définition calcul_plafond_menusalité_d832_10_3 de date_signature_prêt
champ d'application CalculAidePersonnelleLogementAccessionPropriété:
définition calcul_plafond_mensualité_d832_10_3 de date_signature_prêt
sous condition
date_signature_prêt >=@ |2000-06-30| et
date_signature_prêt <=@ |2001-06-30| et
@ -1031,8 +1032,8 @@ Bénéficiaire isolé ou couple ayant une personne à charge | 2 861 |
Par personne supplémentaire à charge | 418 | 368 | 336
```catala
champ d'application CalculAidePersonnelleLogement:
définition calcul_plafond_menusalité_d832_10_3 de date_signature_prêt
champ d'application CalculAidePersonnelleLogementAccessionPropriété:
définition calcul_plafond_mensualité_d832_10_3 de date_signature_prêt
sous condition
date_signature_prêt >=@ |2001-07-01| et
date_signature_prêt <@ |2001-12-31| et
@ -1073,8 +1074,8 @@ Bénéficiaire isolé ou couple ayant une personne à charge | 436,15 |
Par personne supplémentaire à charge | 63,72 | 56,1 | 51,22
```catala
champ d'application CalculAidePersonnelleLogement:
définition calcul_plafond_menusalité_d832_10_3 de date_signature_prêt
champ d'application CalculAidePersonnelleLogementAccessionPropriété:
définition calcul_plafond_mensualité_d832_10_3 de date_signature_prêt
sous condition
date_signature_prêt >=@ |2002-01-01| et
date_signature_prêt <@ |2002-06-30| et
@ -1118,8 +1119,8 @@ Bénéficiaire isolé ou couple ayant une personne à charge | 2 304 |
Par personne supplémentaire à charge | 337 | 297 | 271
```catala
champ d'application CalculAidePersonnelleLogement:
définition calcul_plafond_menusalité_d832_10_3 de date_signature_prêt
champ d'application CalculAidePersonnelleLogementAccessionPropriété:
définition calcul_plafond_mensualité_d832_10_3 de date_signature_prêt
sous condition
date_signature_prêt >=@ |2001-07-01| et
date_signature_prêt <@ |2001-12-31| et
@ -1160,8 +1161,8 @@ Bénéficiaire isolé ou couple ayant une personne à charge | 351,25 |
Par personne supplémentaire à charge | 51,38 | 45,28 | 41,31
```catala
champ d'application CalculAidePersonnelleLogement:
définition calcul_plafond_menusalité_d832_10_3 de date_signature_prêt
champ d'application CalculAidePersonnelleLogementAccessionPropriété:
définition calcul_plafond_mensualité_d832_10_3 de date_signature_prêt
sous condition
date_signature_prêt >=@ |2002-01-01| et
date_signature_prêt <@ |2002-06-30| et
@ -1204,8 +1205,8 @@ Bénéficiaire isolé ou couple ayant une personne à charge | 441,37 |
Par personne supplémentaire à charge | 64,48 | 56,77 | 51,83
```catala
champ d'application CalculAidePersonnelleLogement:
définition calcul_plafond_menusalité_d832_10_3 de date_signature_prêt
champ d'application CalculAidePersonnelleLogementAccessionPropriété:
définition calcul_plafond_mensualité_d832_10_3 de date_signature_prêt
sous condition
date_signature_prêt >=@ |2002-06-30| et
date_signature_prêt <@ |2003-06-30| et
@ -1247,8 +1248,8 @@ Bénéficiaire isolé ou couple ayant une personne à charge | 355,47 |
Par personne supplémentaire à charge | 52 | 45,82 | 41,81
```catala
champ d'application CalculAidePersonnelleLogement:
définition calcul_plafond_menusalité_d832_10_3 de date_signature_prêt
champ d'application CalculAidePersonnelleLogementAccessionPropriété:
définition calcul_plafond_mensualité_d832_10_3 de date_signature_prêt
sous condition
date_signature_prêt >=@ |2002-06-30| et
date_signature_prêt <@ |2003-06-30| et
@ -1291,8 +1292,8 @@ Bénéficiaire isolé ou couple ayant une personne à charge | 446,66 |
Par personne supplémentaire à charge | 65,25 | 57,45 | 52,45
```catala
champ d'application CalculAidePersonnelleLogement:
définition calcul_plafond_menusalité_d832_10_3 de date_signature_prêt
champ d'application CalculAidePersonnelleLogementAccessionPropriété:
définition calcul_plafond_mensualité_d832_10_3 de date_signature_prêt
sous condition
date_signature_prêt >=@ |2003-06-30| et
date_signature_prêt <@ |2005-08-31| et
@ -1334,8 +1335,8 @@ Bénéficiaire isolé ou couple ayant une personne à charge | 359,73 |
Par personne supplémentaire à charge | 52,62 | 46,37 | 42,31
```catala
champ d'application CalculAidePersonnelleLogement:
définition calcul_plafond_menusalité_d832_10_3 de date_signature_prêt
champ d'application CalculAidePersonnelleLogementAccessionPropriété:
définition calcul_plafond_mensualité_d832_10_3 de date_signature_prêt
sous condition
date_signature_prêt >=@ |2003-06-30| et
date_signature_prêt <@ |2005-08-31| et
@ -1378,8 +1379,8 @@ Bénéficiaire isolé ou couple ayant une personne à charge | 454,69 |
Par personne supplémentaire à charge | 66,42 | 58,48 | 53,39
```catala
champ d'application CalculAidePersonnelleLogement:
définition calcul_plafond_menusalité_d832_10_3 de date_signature_prêt
champ d'application CalculAidePersonnelleLogementAccessionPropriété:
définition calcul_plafond_mensualité_d832_10_3 de date_signature_prêt
sous condition
date_signature_prêt >=@ |2005-08-31| et
date_signature_prêt <@ |2006-12-31| et
@ -1421,8 +1422,8 @@ Bénéficiaire isolé ou couple ayant une personne à charge | 366,21 |
Par personne supplémentaire à charge | 53,57 | 47,2 | 43,07
```catala
champ d'application CalculAidePersonnelleLogement:
définition calcul_plafond_menusalité_d832_10_3 de date_signature_prêt
champ d'application CalculAidePersonnelleLogementAccessionPropriété:
définition calcul_plafond_mensualité_d832_10_3 de date_signature_prêt
sous condition
date_signature_prêt >=@ |2005-08-31| et
date_signature_prêt <@ |2006-12-31| et
@ -1465,8 +1466,8 @@ Bénéficiaire isolé ou couple ayant une personne à charge | 467,42 |
Par personne supplémentaire à charge | 68,28 | 60,12 | 54,88
```catala
champ d'application CalculAidePersonnelleLogement:
définition calcul_plafond_menusalité_d832_10_3 de date_signature_prêt
champ d'application CalculAidePersonnelleLogementAccessionPropriété:
définition calcul_plafond_mensualité_d832_10_3 de date_signature_prêt
sous condition
date_signature_prêt >=@ |2006-12-31| et
date_signature_prêt <@ |2007-12-31| et
@ -1508,8 +1509,8 @@ Bénéficiaire isolé ou couple ayant une personne à charge | 376,46 |
Par personne supplémentaire à charge | 55,07 | 48,52 | 44,28
```catala
champ d'application CalculAidePersonnelleLogement:
définition calcul_plafond_menusalité_d832_10_3 de date_signature_prêt
champ d'application CalculAidePersonnelleLogementAccessionPropriété:
définition calcul_plafond_mensualité_d832_10_3 de date_signature_prêt
sous condition
date_signature_prêt >=@ |2006-12-31| et
date_signature_prêt <@ |2007-12-31| et
@ -1552,8 +1553,8 @@ Bénéficiaire isolé ou couple ayant une personne à charge | 480,32 |
Par personne supplémentaire à charge | 70,16 | 61,78 | 56,39
```catala
champ d'application CalculAidePersonnelleLogement:
définition calcul_plafond_menusalité_d832_10_3 de date_signature_prêt
champ d'application CalculAidePersonnelleLogementAccessionPropriété:
définition calcul_plafond_mensualité_d832_10_3 de date_signature_prêt
sous condition
date_signature_prêt >=@ |2007-12-31| et
date_signature_prêt <@ |2008-12-31| et
@ -1595,8 +1596,8 @@ Bénéficiaire isolé ou couple ayant une personne à charge | 386,85 |
Par personne supplémentaire à charge | 56,59 | 49,86 | 45,5
```catala
champ d'application CalculAidePersonnelleLogement:
définition calcul_plafond_menusalité_d832_10_3 de date_signature_prêt
champ d'application CalculAidePersonnelleLogementAccessionPropriété:
définition calcul_plafond_mensualité_d832_10_3 de date_signature_prêt
sous condition
date_signature_prêt >=@ |2007-12-31| et
date_signature_prêt <@ |2008-12-31| et
@ -1639,8 +1640,8 @@ Bénéficiaire isolé ou couple ayant une personne à charge | 494,49 |
Par personne supplémentaire à charge | 72,23 | 63,6 | 58,05
```catala
champ d'application CalculAidePersonnelleLogement:
définition calcul_plafond_menusalité_d832_10_3 de date_signature_prêt
champ d'application CalculAidePersonnelleLogementAccessionPropriété:
définition calcul_plafond_mensualité_d832_10_3 de date_signature_prêt
sous condition
date_signature_prêt >=@ |2008-12-31| et
date_signature_prêt <@ |2009-12-31| et
@ -1682,8 +1683,8 @@ Bénéficiaire isolé ou couple ayant une personne à charge | 398,26 |
Par personne supplémentaire à charge | 58,26 | 51,33 | 46,84
```catala
champ d'application CalculAidePersonnelleLogement:
définition calcul_plafond_menusalité_d832_10_3 de date_signature_prêt
champ d'application CalculAidePersonnelleLogementAccessionPropriété:
définition calcul_plafond_mensualité_d832_10_3 de date_signature_prêt
sous condition
date_signature_prêt >=@ |2008-12-31| et
date_signature_prêt <@ |2009-12-31| et
@ -1726,8 +1727,8 @@ Bénéficiaire isolé ou couple ayant une personne à charge | 496,07 |
Par personne supplémentaire à charge | 72,46 | 63,8 | 58,24
```catala
champ d'application CalculAidePersonnelleLogement:
définition calcul_plafond_menusalité_d832_10_3 de date_signature_prêt
champ d'application CalculAidePersonnelleLogementAccessionPropriété:
définition calcul_plafond_mensualité_d832_10_3 de date_signature_prêt
sous condition
date_signature_prêt >=@ |2009-12-31| et
date_signature_prêt <@ |2010-12-31| et
@ -1769,8 +1770,8 @@ Bénéficiaire isolé ou couple ayant une personne à charge | 399,53 |
Par personne supplémentaire à charge | 58,45 | 51,49 | 46,99
```catala
champ d'application CalculAidePersonnelleLogement:
définition calcul_plafond_menusalité_d832_10_3 de date_signature_prêt
champ d'application CalculAidePersonnelleLogementAccessionPropriété:
définition calcul_plafond_mensualité_d832_10_3 de date_signature_prêt
sous condition
date_signature_prêt >=@ |2009-12-31| et
date_signature_prêt <@ |2010-12-31| et
@ -1813,8 +1814,8 @@ Bénéficiaire isolé ou couple ayant une personne à charge | 501,53 |
Par personne supplémentaire à charge | 73,26 | 64,5 | 58,88
```catala
champ d'application CalculAidePersonnelleLogement:
définition calcul_plafond_menusalité_d832_10_3 de date_signature_prêt
champ d'application CalculAidePersonnelleLogementAccessionPropriété:
définition calcul_plafond_mensualité_d832_10_3 de date_signature_prêt
sous condition
date_signature_prêt >=@ |2010-12-31| et
date_signature_prêt <@ |2011-12-31| et
@ -1856,8 +1857,8 @@ Bénéficiaire isolé ou couple ayant une personne à charge | 403,92 |
Par personne supplémentaire à charge | 59,09 | 52,06 | 47,51
```catala
champ d'application CalculAidePersonnelleLogement:
définition calcul_plafond_menusalité_d832_10_3 de date_signature_prêt
champ d'application CalculAidePersonnelleLogementAccessionPropriété:
définition calcul_plafond_mensualité_d832_10_3 de date_signature_prêt
sous condition
date_signature_prêt >=@ |2010-12-31| et
date_signature_prêt <@ |2011-12-31| et
@ -1900,8 +1901,8 @@ Bénéficiaire isolé ou couple ayant une personne à charge | 506,55 |
Par personne supplémentaire à charge | 73,99 | 65,15 | 459,47
```catala
champ d'application CalculAidePersonnelleLogement:
définition calcul_plafond_menusalité_d832_10_3 de date_signature_prêt
champ d'application CalculAidePersonnelleLogementAccessionPropriété:
définition calcul_plafond_mensualité_d832_10_3 de date_signature_prêt
sous condition
date_signature_prêt >=@ |2011-12-31| et
date_signature_prêt <@ |2012-12-31| et
@ -1946,8 +1947,8 @@ Bénéficiaire isolé ou couple ayant une personne à charge | 407,96 |
Par personne supplémentaire à charge | 59,68 | 52,58 | 347,99
```catala
champ d'application CalculAidePersonnelleLogement:
définition calcul_plafond_menusalité_d832_10_3 de date_signature_prêt
champ d'application CalculAidePersonnelleLogementAccessionPropriété:
définition calcul_plafond_mensualité_d832_10_3 de date_signature_prêt
sous condition
date_signature_prêt >=@ |2011-12-31| et
date_signature_prêt <@ |2012-12-31| et
@ -1992,8 +1993,8 @@ Bénéficiaire isolé ou couple ayant une personne à charge | 517,44 |
Par personne supplémentaire à charge | 75,58 | 66,55 | 60,75
```catala
champ d'application CalculAidePersonnelleLogement:
définition calcul_plafond_menusalité_d832_10_3 de date_signature_prêt
champ d'application CalculAidePersonnelleLogementAccessionPropriété:
définition calcul_plafond_mensualité_d832_10_3 de date_signature_prêt
sous condition
date_signature_prêt >=@ |2012-12-31| et
date_signature_prêt <@ |2014-09-30| et
@ -2035,8 +2036,8 @@ Bénéficiaire isolé ou couple ayant une personne à charge | 416,73 |
Par personne supplémentaire à charge | 60,96 | 53,71 | 49,02
```catala
champ d'application CalculAidePersonnelleLogement:
définition calcul_plafond_menusalité_d832_10_3 de date_signature_prêt
champ d'application CalculAidePersonnelleLogementAccessionPropriété:
définition calcul_plafond_mensualité_d832_10_3 de date_signature_prêt
sous condition
date_signature_prêt >=@ |2012-12-31| et
date_signature_prêt <@ |2014-09-30| et
@ -2079,8 +2080,8 @@ Bénéficiaire isolé ou couple ayant une personne à charge | 520,39 |
Par personne supplémentaire à charge | 76,01 | 66,93 | 61,1
```catala
champ d'application CalculAidePersonnelleLogement:
définition calcul_plafond_menusalité_d832_10_3 de date_signature_prêt
champ d'application CalculAidePersonnelleLogementAccessionPropriété:
définition calcul_plafond_mensualité_d832_10_3 de date_signature_prêt
sous condition
date_signature_prêt >=@ |2014-09-30| et
date_signature_prêt <@ |2015-09-30| et
@ -2122,8 +2123,8 @@ Bénéficiaire isolé ou couple ayant une personne à charge | 419,11 |
Par personne supplémentaire à charge | 61,31 | 54,02 | 49,3
```catala
champ d'application CalculAidePersonnelleLogement:
définition calcul_plafond_menusalité_d832_10_3 de date_signature_prêt
champ d'application CalculAidePersonnelleLogementAccessionPropriété:
définition calcul_plafond_mensualité_d832_10_3 de date_signature_prêt
sous condition
date_signature_prêt >=@ |2014-09-30| et
date_signature_prêt <@ |2015-09-30| et
@ -2166,8 +2167,8 @@ Bénéficiaire isolé ou couple ayant une personne à charge | 520,81 |
Par personne supplémentaire à charge | 76,07 | 66,98 | 61,15
```catala
champ d'application CalculAidePersonnelleLogement:
définition calcul_plafond_menusalité_d832_10_3 de date_signature_prêt
champ d'application CalculAidePersonnelleLogementAccessionPropriété:
définition calcul_plafond_mensualité_d832_10_3 de date_signature_prêt
sous condition
date_signature_prêt >=@ |2015-09-30| et
date_signature_prêt <@ |2017-09-30| et
@ -2209,8 +2210,8 @@ Bénéficiaire isolé ou couple ayant une personne à charge | 419,45 |
Par personne supplémentaire à charge | 61,36 | 54,06 | 49,34
```catala
champ d'application CalculAidePersonnelleLogement:
définition calcul_plafond_menusalité_d832_10_3 de date_signature_prêt
champ d'application CalculAidePersonnelleLogementAccessionPropriété:
définition calcul_plafond_mensualité_d832_10_3 de date_signature_prêt
sous condition
date_signature_prêt >=@ |2015-09-30| et
date_signature_prêt <@ |2017-09-30| et
@ -2253,8 +2254,8 @@ Bénéficiaire isolé ou couple ayant une personne à charge | 524,72 |
Par personne supplémentaire à charge | 76,64 | 67,48 | 61,61
```catala
champ d'application CalculAidePersonnelleLogement:
définition calcul_plafond_menusalité_d832_10_3 de date_signature_prêt
champ d'application CalculAidePersonnelleLogementAccessionPropriété:
définition calcul_plafond_mensualité_d832_10_3 de date_signature_prêt
sous condition
date_signature_prêt >=@ |2017-09-30| et
date_signature_prêt <@ |2019-09-30| et
@ -2296,8 +2297,8 @@ Bénéficiaire isolé ou couple ayant une personne à charge | 422,6 |
Par personne supplémentaire à charge | 61,82 | 54,47 | 49,71
```catala
champ d'application CalculAidePersonnelleLogement:
définition calcul_plafond_menusalité_d832_10_3 de date_signature_prêt
champ d'application CalculAidePersonnelleLogementAccessionPropriété:
définition calcul_plafond_mensualité_d832_10_3 de date_signature_prêt
sous condition
date_signature_prêt >=@ |2017-09-30| et
date_signature_prêt <@ |2019-09-30| et
@ -2340,8 +2341,8 @@ Bénéficiaire isolé ou couple ayant une personne à charge | 526,29 |
Par personne supplémentaire à charge | 76,87 | 67,68 | 61,79
```catala
champ d'application CalculAidePersonnelleLogement:
définition calcul_plafond_menusalité_d832_10_3 de date_signature_prêt
champ d'application CalculAidePersonnelleLogementAccessionPropriété:
définition calcul_plafond_mensualité_d832_10_3 de date_signature_prêt
sous condition
date_signature_prêt >=@ |2019-09-30| et
ancienneté_logement sous forme Neuf et
@ -2382,8 +2383,8 @@ Bénéficiaire isolé ou couple ayant une personne à charge | 423,86 |
Par personne supplémentaire à charge | 62,01 | 54,63 | 49,86
```catala
champ d'application CalculAidePersonnelleLogement:
définition calcul_plafond_menusalité_d832_10_3 de date_signature_prêt
champ d'application CalculAidePersonnelleLogementAccessionPropriété:
définition calcul_plafond_mensualité_d832_10_3 de date_signature_prêt
sous condition
date_signature_prêt >=@ |2019-09-30| et
ancienneté_logement sous forme Ancien et
@ -2429,7 +2430,7 @@ Conformément au I de larticle 3 de larrêté du 23 septembre 2021, ces di
les prestations dues à compter du 1er octobre 2021.
```catala
champ d'application CalculAidePersonnelleLogement sous condition
champ d'application CalculAidePersonnelleLogementAccessionPropriété sous condition
date_courante >=@ |2021-10-01|:
définition montant_forfaitaire_charges_d832_10 égal à
@ -2441,7 +2442,7 @@ champ d'application CalculAidePersonnelleLogement sous condition
Le montant de minoration forfaitaire prévu au 9e alinéa de l'article D. 832-10 du même code est fixé à 5 euros.
```catala
champ d'application CalculAidePersonnelleLogement:
champ d'application CalculAidePersonnelleLogementAccessionPropriété:
définition montant_forfaitaire_d832_10 égal à 5€
```
@ -2451,7 +2452,7 @@ Le seuil de versement prévu au dernier alinéa de l'article D. 832-10 du même
la contribution pour le remboursement de la dette sociale, est fixé à 10 euros.
```catala
champ d'application CalculAidePersonnelleLogement:
champ d'application CalculAidePersonnelleLogementAccessionPropriété:
définition montant_minimal_aide_d832_10 égal à 10€
```
@ -2460,7 +2461,7 @@ champ d'application CalculAidePersonnelleLogement:
Le coefficient « cm » défini au 3° de l'article D. 832-11 du même code est fixé à 22 111,33 euros.
```catala
champ d'application CalculAidePersonnelleLogement:
champ d'application CalculAidePersonnelleLogementAccessionPropriété:
définition coefficient_multiplicateur_d832_11 égal à 22 111,33€
```
@ -2475,7 +2476,7 @@ du contrat de prêt ou de location-accession est postérieure au 30 juin 1992 :
2° 41,60 % pour la tranche de ressources supérieures à 5 600,85 euros.
```catala
champ d'application CalculAidePersonnelleLogement:
champ d'application CalculAidePersonnelleLogementAccessionPropriété:
définition montant_limite_tranches_d832_15_1 égal à 5 600,85 €
définition taux_tranche_inférieure_d832_15_1 égal à 20,80%
définition taux_tranche_supérieure_d832_15_1 égal à 41,60%
@ -2488,13 +2489,13 @@ Dans le cas des copropriétaires prévus à l'article D. 832-16 du même code :
1° Les plafonds de mensualités sont fixés à 75 % des plafonds de mensualités mentionnés aux articles 17 et 18 ;
```catala
champ d'application CalculAidePersonnelleLogement
champ d'application CalculAidePersonnelleLogementAccessionPropriété
sous condition date_courante >=@ |2021-10-01|:
définition plafond_menusalité_d832_10_3 état copropriétaires égal à
définition plafond_mensualité_d832_10_3 état copropriétaires égal à
si copropriété alors
plafond_menusalité_d832_10_3 *€ 75%
plafond_mensualité_d832_10_3 *€ 75%
sinon
plafond_menusalité_d832_10_3
plafond_mensualité_d832_10_3
```
2° Le montant forfaitaire au titre des charges est fixé comme suit (en euros) :
@ -2505,7 +2506,7 @@ Couple sans personne à charge | 54,22
Majoration par personne à charge | 12,29
```catala
champ d'application CalculAidePersonnelleLogement
champ d'application CalculAidePersonnelleLogementAccessionPropriété
sous condition date_courante >=@ |2021-10-01|:
exception définition montant_forfaitaire_charges_d832_10 sous condition
copropriété
@ -2531,7 +2532,7 @@ a) 0,0226 pour les prêts souscrits avant le 1er octobre 1998 ;
b) 0,0234 pour les prêts souscrits à compter de cette dernière date.
```catala
champ d'application CalculAidePersonnelleLogement:
champ d'application CalculAidePersonnelleLogementAccessionPropriété:
définition coefficient_multiplicateur_d832_17_3 égal à
selon ancienneté_logement sous forme
-- Neuf:
@ -2548,7 +2549,7 @@ champ d'application CalculAidePersonnelleLogement:
Pour déterminer le plancher de ressources, le coefficient prévu à l'article D. 832-18 du même code est fixé à 16,25.
```catala
champ d'application CalculAidePersonnelleLogement:
champ d'application CalculAidePersonnelleLogementAccessionPropriété:
définition coefficient_multiplicateur_d832_18 égal à 16,25
```
@ -2573,7 +2574,7 @@ Conformément au I de larticle 3 de larrêté du 23 septembre 2021, ces di
pour les prestations dues à compter du 1er octobre 2021.
```catala
champ d'application CalculAidePersonnelleLogement sous condition
champ d'application CalculAidePersonnelleLogementFoyer sous condition
date_courante >=@ |2021-10-01|:
définition équivalence_loyer_éligible égal à
(selon zone sous forme
@ -2627,7 +2628,7 @@ champ d'application CalculAidePersonnelleLogement sous condition
Le montant de minoration forfaitaire prévu au 8e alinéa de l'article D. 832-24 du même code est fixé à 5 euros.
```catala
champ d'application CalculAidePersonnelleLogement:
champ d'application CalculAidePersonnelleLogementFoyer:
définition montant_forfaitaire_d832_24 égal à 5 €
```
@ -2637,7 +2638,7 @@ Le seuil de versement prévu au dernier alinéa de l'article D. 832-24 du même
contribution pour le remboursement de la dette sociale, est fixé à 10 euros.
```catala
champ d'application CalculAidePersonnelleLogement:
champ d'application CalculAidePersonnelleLogementFoyer:
définition montant_minimal_aide_d823_24 égal à 10 €
```
@ -2649,7 +2650,7 @@ du coefficient de prise en charge « K » sont fixées ainsi :
1° 1 217,26 pour le coefficient « r » défini au c du 1° ;
```catala
champ d'application CalculAidePersonnelleLogement:
champ d'application CalculAidePersonnelleLogementFoyer:
# Attention par homogénéité de la formule du D832-25 il faut que cm soit
# un montant d'argent.
définition coefficient_r_d832_25 égal à 1217,26 €
@ -2658,7 +2659,7 @@ champ d'application CalculAidePersonnelleLogement:
2° 13 393,40 et 21 420,91 pour le coefficient multiplicateur « cm » défini respectivement au d du 1° et au c du 2°.
```catala
champ d'application CalculAidePersonnelleLogement:
champ d'application CalculAidePersonnelleLogementFoyer:
# Attention par homogénéité de la formule du D832-25 il faut que cm soit
# un montant d'argent.
définition coefficient_multiplicateur_d832_25 égal à
@ -2683,7 +2684,7 @@ de charges locatives minimale « E0 », mentionnés à l'article D. 832-26 du m
6° 48,00 % pour la tranche de ressources supérieure à 6 331,29 euros.
```catala
champ d'application CalculAidePersonnelleLogement:
champ d'application CalculAidePersonnelleLogementFoyer:
définition tranches_revenus_d832_26 égal à [
TrancheRevenu { -- haut: Revenu contenu 1948,10€ -- bas: 0€ -- taux: 4%};
TrancheRevenu {
@ -2714,7 +2715,7 @@ II. - Les montants forfaitaires mentionnés aux premier et deuxième alinéas so
fixés respectivement à 45,57 et 76,32.
```catala
champ d'application CalculAidePersonnelleLogement:
champ d'application CalculAidePersonnelleLogementFoyer:
définition montant_forfaitaire_d832_26 égal à
si condition_2_du_832_25 alors 76,32 € sinon 45,57 €
```
@ -2726,7 +2727,7 @@ pour les logements-foyers de jeunes travailleurs et les résidences sociales vis
D. 832-25 du même code pour lesquels ce montant est fixé à 15 euros.
```catala
champ d'application CalculAidePersonnelleLogement:
champ d'application CalculAidePersonnelleLogementFoyer:
définition montant_forfaitaire_d832_27 égal à
si condition_2_du_832_25 alors 15 € sinon 26,68€
```

View File

@ -38,7 +38,9 @@ la résidence principale.
```catala
champ d'application ÉligibilitéAidePersonnelleLogement:
assertion ménage.logement.résidence_principale
règle condition_logement_résidence_principale sous condition
ménage.logement.résidence_principale
conséquence rempli
```
##### Chapitre II : Conditions générales d'attribution
@ -56,6 +58,7 @@ champ d'application ÉligibilitéAidePersonnelleLogement:
# portant toutes sur le logement définies au long des diverses parties
# du code de la construction et de l'habitation. Attention, ne pas oublier
# de modifier cette liste en cas de rajout d'une sous-condition.
condition_logement_résidence_principale et # L821-2
condition_logement_bailleur et # L831-1
condition_logement_prêt et # L831-2
condition_logement_mode_occupation et
@ -125,7 +128,6 @@ champ d'application ÉligibilitéAidePersonnelleLogement:
-- SousLocataire: vrai
-- LocationAccession: vrai # Justifié par L831-2, avec une
# exception à venir
-- ModeOccupation.Autre: faux
conséquence rempli
```
@ -795,13 +797,13 @@ concernés par la réduction de loyer de solidarité définie à l'article L. 44
est fixée par voie réglementaire.
```catala
champ d'application CalculAidePersonnelleLogement:
définition aide_finale_locatif état réduction_loyer_solidarité égal à
champ d'application CalculAidePersonnelleLogementLocatif:
définition aide_finale état réduction_loyer_solidarité égal à
si
aide_finale_locatif -€ réduction_loyer_solidarité *€ fraction_l832_3 >=€
aide_finale -€ réduction_loyer_solidarité *€ fraction_l832_3 >=€
0€
alors
aide_finale_locatif -€ réduction_loyer_solidarité *€ fraction_l832_3
aide_finale -€ réduction_loyer_solidarité *€ fraction_l832_3
sinon 0€
assertion fraction_l832_3 >=. 90% et fraction_l832_3 <=. 98%

View File

@ -1378,17 +1378,175 @@ location-accession, par les règles figurant aux articles R. 842-5
et D. 842-6 à D. 842-13.
```catala
# TODO juridique et informatique: identifier les 5 modes de calculs différents,
# leur donner un nom et les différencier dans l'énumération CatégorieCalculAPL.
champ d'application CalculAidePersonnelleLogement:
définition catégorie_calcul_apl égal à
selon mode_occupation sous forme
-- Locataire: Location
-- SousLocataire: Location
-- RésidentLogementFoyer: LogementFoyer
-- RésidentLogementFoyer: CatégorieCalculAPL.LogementFoyer
-- AccessionPropriétéLocalUsageExclusifHabitation: AccessionPropriété
-- LocationAccession: AccessionPropriété
-- ModeOccupation.Autre: Location # Non éligible aux APL
définition aide_finale égal à
selon catégorie_calcul_apl sous forme
-- Location: locatif.aide_finale
-- LogementFoyer: logement_foyer.aide_finale
-- AccessionPropriété : accession_propriété.aide_finale
```
```catala-metadata
# Maintenant que nous avons déterminé comment calculer l'aide finale
# en fonction du mode d'occupation, il nous faut donner à chacun des modes
# de calcul les paramètres qu'il attend.
# Cependant, nous nous heurtons ici à une limitation de Catala: normalement
# on ne voudrait appeler que le mode de calcul qui correspond au cas
# où l'on se trouve. Cependant, comme chacun des modes de calcul
# est implémenté sous la forme d'un champ d'application Catala, et qu'un
# champ d'application Catala est tout le temps appelé depuis son champ
# d'application parent, nous sommes obligés de faire à chaque fois le
# calcul pour les trois modes alors que seul un mode nous intéresse.
# À noter que ce problème augmente le temps de calcul dans le code compilé,
# et qu'il serait souhaitable d'y remédier. Cependant, ceci nous est bien
# utile car le calcul en mode accession propriété dépend de la valeur de
# l'équivalence de loyer en mode logement foyer (voir 2° du D832-15).
#
# En attendant, cette limitation nous oblige à donner à chaque fois
# des paramètres d'entrée pour les trois modes de calcul, alors que
# seul un des modes aura de "vrais" paramètres. Le code ci-dessous
# donne alors des valeurs par défaut pour les paramètres d'entrée des modes
# de calcul non utilisés, valeurs par défaut qui n'ont aucune influence
# sur le résultat puisque le mode de calcul n'est pas utilisé.
champ d'application CalculAidePersonnelleLogement:
assertion
si catégorie_calcul_apl sous forme Location
alors informations_calcul sous forme InfosLocatif
sinon vrai
assertion
si catégorie_calcul_apl sous forme LogementFoyer
alors informations_calcul sous forme InfosLogementFoyer
sinon vrai
assertion
si catégorie_calcul_apl sous forme AccessionPropriété
alors informations_calcul sous forme InfosAccessionPropriété
sinon vrai
définition locatif.ressources_ménage_arrondies égal à ressources_ménage
définition logement_foyer.ressources_ménage_arrondies égal à
ressources_ménage
définition accession_propriété.ressources_ménage_arrondies égal à
ressources_ménage
définition locatif.nombre_personnes_à_charge égal à
nombre_personnes_à_charge
définition logement_foyer.nombre_personnes_à_charge égal à
nombre_personnes_à_charge
définition accession_propriété.nombre_personnes_à_charge égal à
nombre_personnes_à_charge
définition locatif.zone égal à zone
définition logement_foyer.zone égal à zone
définition accession_propriété.zone égal à zone
définition locatif.date_courante égal à date_courante
définition logement_foyer.date_courante égal à date_courante
définition accession_propriété.date_courante égal à date_courante
définition locatif.situation_familiale_calcul_apl égal à
situation_familiale_calcul_apl
définition logement_foyer.situation_familiale_calcul_apl égal à
situation_familiale_calcul_apl
définition accession_propriété.situation_familiale_calcul_apl égal à
situation_familiale_calcul_apl
définition logement_foyer.mode_occupation égal à
mode_occupation
définition locatif.loyer_principal égal à
selon informations_calcul sous forme
-- InfosLocatif de infos: infos.loyer_principal
-- InfosLogementFoyer: 0 € # Valeur par défaut
-- InfosAccessionPropriété: 0 € # Valeur par défaut
définition locatif.bénéficiaire_aide_adulte_ou_enfant_handicapés égal à
selon informations_calcul sous forme
-- InfosLocatif de infos:
infos.bénéficiaire_aide_adulte_ou_enfant_handicapés
-- InfosLogementFoyer: faux # Valeur par défaut
-- InfosAccessionPropriété: faux # Valeur par défaut
définition locatif.logement_est_chambre égal à
selon informations_calcul sous forme
-- InfosLocatif de infos:
infos.logement_est_chambre
-- InfosLogementFoyer: faux # Valeur par défaut
-- InfosAccessionPropriété: faux # Valeur par défaut
définition locatif.colocation égal à
selon informations_calcul sous forme
-- InfosLocatif de infos:
infos.colocation
-- InfosLogementFoyer: faux # Valeur par défaut
-- InfosAccessionPropriété: faux # Valeur par défaut
définition
locatif.personnes_âgées_ou_handicap_adultes_hébergées_onéreux_particuliers
égal à
selon informations_calcul sous forme
-- InfosLocatif de infos:
infos.personnes_âgées_ou_handicap_adultes_hébergées_onéreux_particuliers
-- InfosLogementFoyer: faux # Valeur par défaut
-- InfosAccessionPropriété: faux # Valeur par défaut
définition locatif.type_aide égal à
selon informations_calcul sous forme
-- InfosLocatif de infos:
infos.type_aide
-- InfosLogementFoyer: AidePersonnaliséeLogement # Valeur par défaut
-- InfosAccessionPropriété: AidePersonnaliséeLogement # Valeur par défaut
définition locatif.réduction_loyer_solidarité égal à
selon informations_calcul sous forme
-- InfosLocatif de infos: infos.réduction_loyer_solidarité
-- InfosLogementFoyer: 0 € # Valeur par défaut
-- InfosAccessionPropriété: 0 € # Valeur par défaut
définition accession_propriété.mensualité_principale égal à
selon informations_calcul sous forme
-- InfosLocatif: 0 € # Valeur par défaut
-- InfosLogementFoyer: 0 € # Valeur par défaut
-- InfosAccessionPropriété de infos: infos.mensualité_principale
définition accession_propriété.type_travaux_logement égal à
selon informations_calcul sous forme
-- InfosLocatif: PasDeTravaux # Valeur par défaut
-- InfosLogementFoyer: PasDeTravaux # Valeur par défaut
-- InfosAccessionPropriété de infos: infos.type_travaux_logement
définition accession_propriété.date_signature_prêt égal à
selon informations_calcul sous forme
-- InfosLocatif: |2010-01-01| # Valeur par défaut
-- InfosLogementFoyer: |2010-01-01| # Valeur par défaut
-- InfosAccessionPropriété de infos: infos.date_signature_prêt
définition accession_propriété.local_habité_première_fois_bénéficiaire égal à
selon informations_calcul sous forme
-- InfosLocatif: faux # Valeur par défaut
-- InfosLogementFoyer: faux # Valeur par défaut
-- InfosAccessionPropriété de infos:
infos.local_habité_première_fois_bénéficiaire
définition accession_propriété.date_entrée_logement égal à
selon informations_calcul sous forme
-- InfosLocatif: |2010-01-01| # Valeur par défaut
-- InfosLogementFoyer: |2010-01-01| # Valeur par défaut
-- InfosAccessionPropriété de infos: infos.date_entrée_logement
définition accession_propriété.copropriété égal à
selon informations_calcul sous forme
-- InfosLocatif: faux # Valeur par défaut
-- InfosLogementFoyer: faux # Valeur par défaut
-- InfosAccessionPropriété de infos: infos.copropriété
définition accession_propriété.situation_r822_11_13_17 égal à
selon informations_calcul sous forme
-- InfosLocatif: faux # Valeur par défaut
-- InfosLogementFoyer: faux # Valeur par défaut
-- InfosAccessionPropriété de infos: infos.situation_r822_11_13_17
définition accession_propriété.type_prêt égal à
selon informations_calcul sous forme
-- InfosLocatif: D331_32 # Valeur par défaut
-- InfosLogementFoyer: D331_32 # Valeur par défaut
-- InfosAccessionPropriété de infos:
infos.InformationsCalculAPLAccessionPropriété.type_prêt
définition accession_propriété.ancienneté_logement égal à
selon informations_calcul sous forme
-- InfosLocatif: Neuf # Valeur par défaut
-- InfosLogementFoyer: Neuf # Valeur par défaut
-- InfosAccessionPropriété de infos:
infos.InformationsCalculAPLAccessionPropriété.ancienneté_logement
```
####### Sous-section 1 : Ouverture et extinction des droits
@ -1516,13 +1674,8 @@ est calculé selon la formule suivante :
" Af = L + C-Pp "
```catala
champ d'application CalculAidePersonnelleLogement:
définition aide_finale sous condition
catégorie_calcul_apl sous forme Location
conséquence égal à
aide_finale_locatif
définition aide_finale_locatif état formule égal à
champ d'application CalculAidePersonnelleLogementLocatif:
définition aide_finale état formule égal à
si loyer_éligible +€ montant_forfaitaire_charges_d823_16 -€
participation_personnelle <€ 0 €
alors 0 € sinon
@ -1539,7 +1692,7 @@ la limite d'un plafond fixé par arrêté en fonction de la zone géographique e
dans le cas où le logement occupé est une chambre, de la composition familiale ;
```catala
champ d'application CalculAidePersonnelleLogement:
champ d'application CalculAidePersonnelleLogementLocatif:
définition loyer_éligible égal à
si loyer_principal >€ plafond_loyer_d823_16_2 alors plafond_loyer_d823_16_2
sinon loyer_principal
@ -1573,22 +1726,22 @@ l'article L. 821-1 du code de la sécurité sociale ou de l'allocation d'éducat
l'enfant handicapé prévue à l'article L. 541-1 du même code.
```catala
champ d'application CalculAidePersonnelleLogement:
définition aide_finale_locatif état diminué égal à
champ d'application CalculAidePersonnelleLogementLocatif:
définition aide_finale état diminué égal à
si loyer_principal >€ plafond_suppression_d823_16 alors
0€
sinon (si loyer_principal >€ plafond_dégressivité_d823_16 alors
aide_finale_locatif -€ (aide_finale_locatif *€
aide_finale -€ (aide_finale *€
(loyer_principal -€ plafond_dégressivité_d823_16) /€
(plafond_suppression_d823_16 -€ plafond_dégressivité_d823_16)
)
# Faire un graphique pour se convaincre que la pente proportionnelle
# a bien cette expression.
sinon aide_finale_locatif)
sinon aide_finale)
exception définition aide_finale_locatif état diminué sous condition
exception définition aide_finale état diminué sous condition
bénéficiaire_aide_adulte_ou_enfant_handicapés
conséquence égal à aide_finale_locatif
conséquence égal à aide_finale
assertion plafond_dégressivité_d823_16 >=€ plafond_loyer_d823_16_2 *€ 2,5
```
@ -1596,10 +1749,10 @@ champ d'application CalculAidePersonnelleLogement:
Le résultat ainsi obtenu est minoré d'un montant fixé forfaitairement par arrêté.
```catala
champ d'application CalculAidePersonnelleLogement:
définition aide_finale_locatif état minoration_forfaitaire égal à
si aide_finale_locatif -€ montant_forfaitaire_d823_16 >=€ 0€ alors
aide_finale_locatif -€ montant_forfaitaire_d823_16
champ d'application CalculAidePersonnelleLogementLocatif:
définition aide_finale état minoration_forfaitaire égal à
si aide_finale -€ montant_forfaitaire_d823_16 >=€ 0€ alors
aide_finale -€ montant_forfaitaire_d823_16
sinon 0€
```
@ -1608,16 +1761,16 @@ sociales qui s'y appliquent, arrondi à l'euro inférieur, puis majoré de ce mo
représentatif.
```catala
champ d'application CalculAidePersonnelleLogement:
définition aide_finale_locatif état contributions_sociales_arrondi égal à
champ d'application CalculAidePersonnelleLogementLocatif:
définition aide_finale état contributions_sociales_arrondi égal à
si
arrondi_argent de (aide_finale_locatif -€
montant_contributions_sociales de aide_finale_locatif -€ 0,5€) +€
montant_contributions_sociales de aide_finale_locatif >=€ 0€
arrondi_argent de (aide_finale -€
contributions_sociales.montant de aide_finale -€ 0,5€) +€
contributions_sociales.montant de aide_finale >=€ 0€
alors
arrondi_argent de (aide_finale_locatif -€
montant_contributions_sociales de aide_finale_locatif -€ 0,5€) +€
montant_contributions_sociales de aide_finale_locatif
arrondi_argent de (aide_finale -€
contributions_sociales.montant de aide_finale -€ 0,5€) +€
contributions_sociales.montant de aide_finale
sinon 0€
```
@ -1626,7 +1779,7 @@ de l'article L. 442-2-1, ce résultat est réduit d'un montant égal à 98 % de
de loyer de solidarité.
```catala
champ d'application CalculAidePersonnelleLogement:
champ d'application CalculAidePersonnelleLogementLocatif:
définition fraction_l832_3 égal à 98%
```
@ -1635,12 +1788,12 @@ un montant fixé par arrêté, selon celle des trois aides dont le ménage bén
n'est pas procédé à son versement.
```catala
champ d'application CalculAidePersonnelleLogement:
définition aide_finale_locatif état montant_minimal égal à
si aide_finale_locatif <€ montant_minimal_aide_d832_10 alors
champ d'application CalculAidePersonnelleLogementLocatif:
définition aide_finale état montant_minimal égal à
si aide_finale <€ montant_minimal_aide_d823_16 alors
0 €
sinon
aide_finale_locatif
aide_finale
```
######## Article D823-17 | LEGIARTI000041419255
@ -1652,10 +1805,10 @@ du ménage, calculée selon la formule suivante :
" Pp = P0 + Tp* (R-R0) "
```catala
champ d'application CalculAidePersonnelleLogement:
champ d'application CalculAidePersonnelleLogementLocatif:
définition participation_personnelle égal à
participation_minimale +€
(ressources_ménage -€ abattement_forfaitaire_d823_17) *€
(ressources_ménage_arrondies -€ abattement_forfaitaire_d823_17) *€
taux_prise_compte_ressources
```
@ -1681,7 +1834,7 @@ Les valeurs du premier taux, les modalités de calcul du second taux et les vale
loyers de référence sont fixées par arrêté ;
```catala
champ d'application CalculAidePersonnelleLogement:
champ d'application CalculAidePersonnelleLogementLocatif:
définition taux_prise_compte_ressources égal à
taux_composition_familiale +. taux_loyer_éligible
```
@ -2067,9 +2220,6 @@ champ d'application ImpayéDépenseLogement:
-- AccessionPropriétéLocalUsageExclusifHabitation: ImpayéPrêt
-- RésidentLogementFoyer: ImpayéPrêt
-- LocationAccession: ImpayéLoyer
-- ModeOccupation.Autre: ImpayéLoyer
# Que faire ici (Autre) ? => Rien puisque pas éligible aux APL...
# Donc on l'assimile à un impayé de loyer mais cela n'a pas d'importance.
-- SousLocataire: ImpayéLoyer
```
@ -2711,8 +2861,8 @@ en accession à la propriété défini à l'article D. 331-32 ;
champ d'application ÉligibilitéAidePersonnelleLogement:
règle caractéristiques_prêt_l831_1_1 de prêt sous condition
prêt.titulaire_prêt sous forme Demandeur et (
prêt.type_prêt sous forme D331_32 ou
prêt.type_prêt sous forme D331_63_64)
prêt.Prêt.type_prêt sous forme D331_32 ou
prêt.Prêt.type_prêt sous forme D331_63_64)
conséquence rempli
```
@ -2747,8 +2897,8 @@ champ d'application ÉligibilitéAidePersonnelleLogement:
règle caractéristiques_prêt_l831_1_1 de prêt sous condition
prêt.titulaire_prêt sous forme
VendeurQuandDemandeurAContratLocationAccession et (
prêt.type_prêt sous forme D331_59_8 ou
prêt.type_prêt sous forme D331_76_1)
prêt.Prêt.type_prêt sous forme D331_59_8 ou
prêt.Prêt.type_prêt sous forme D331_76_1)
conséquence rempli
```
@ -2808,12 +2958,8 @@ les modalités suivantes :
" Af = K × (L + C-L0) "
```catala
champ d'application CalculAidePersonnelleLogement:
définition aide_finale sous condition
catégorie_calcul_apl sous forme AccessionPropriété
conséquence égal à aide_finale_accession_propriété
définition aide_finale_accession_propriété état formule égal à
champ d'application CalculAidePersonnelleLogementAccessionPropriété:
définition aide_finale état formule égal à
si (mensualité_éligible +€ montant_forfaitaire_charges_d832_10 -€
mensualité_minimale) *€ coefficient_prise_en_charge_d832_10 <€ 0 €
alors 0 € sinon
@ -2832,10 +2978,10 @@ prise en compte dans la limite d'un plafond fixé par arrêté en fonction de la
de la composition familiale et de la finalité de l'opération ;
```catala
champ d'application CalculAidePersonnelleLogement:
champ d'application CalculAidePersonnelleLogementAccessionPropriété:
définition mensualité_éligible égal à
si mensualité_principale >€ plafond_menusalité_d832_10_3
alors plafond_menusalité_d832_10_3
si mensualité_principale >€ plafond_mensualité_d832_10_3
alors plafond_mensualité_d832_10_3
sinon mensualité_principale
```
@ -2857,11 +3003,11 @@ la composition familiale ;
Le montant ainsi calculé est minoré d'un montant fixé forfaitairement par arrêté.
```catala
champ d'application CalculAidePersonnelleLogement:
définition aide_finale_accession_propriété état minoration_forfaitaire égal à
si aide_finale_accession_propriété -€ montant_forfaitaire_d832_10 >=€ 0€
champ d'application CalculAidePersonnelleLogementAccessionPropriété:
définition aide_finale état minoration_forfaitaire égal à
si aide_finale -€ montant_forfaitaire_d832_10 >=€ 0€
alors
aide_finale_accession_propriété -€ montant_forfaitaire_d832_10
aide_finale -€ montant_forfaitaire_d832_10
sinon 0€
```
@ -2869,13 +3015,13 @@ Ce résultat est minoré d'un abattement au titre de la dépense nette minimale,
de calcul sont fixées par l'article D. 832-17.
```catala
champ d'application CalculAidePersonnelleLogement:
définition aide_finale_accession_propriété état abattement égal à
si aide_finale_accession_propriété -€
dépense_nette_minimale_d832_10 de aide_finale_accession_propriété >=€ 0€
champ d'application CalculAidePersonnelleLogementAccessionPropriété:
définition aide_finale état abattement égal à
si aide_finale -€
dépense_nette_minimale_d832_10 de aide_finale >=€ 0€
alors
aide_finale_accession_propriété -€
dépense_nette_minimale_d832_10 de aide_finale_accession_propriété
aide_finale -€
dépense_nette_minimale_d832_10 de aide_finale
sinon 0€
```
@ -2884,20 +3030,20 @@ représentatif des contributions sociales qui s'y appliquent, arrondi à l'euro
puis majoré de ce montant représentatif.
```catala
champ d'application CalculAidePersonnelleLogement:
définition aide_finale_accession_propriété
champ d'application CalculAidePersonnelleLogementAccessionPropriété:
définition aide_finale
état contributions_sociales_arrondi
égal à
si
arrondi_argent de (aide_finale_accession_propriété -€
montant_contributions_sociales de aide_finale_accession_propriété -€
arrondi_argent de (aide_finale -€
contributions_sociales.montant de aide_finale -€
0,5€) +€
montant_contributions_sociales de aide_finale_accession_propriété >=€ 0€
contributions_sociales.montant de aide_finale >=€ 0€
alors
arrondi_argent de (aide_finale_accession_propriété -€
montant_contributions_sociales de aide_finale_accession_propriété -€
arrondi_argent de (aide_finale -€
contributions_sociales.montant de aide_finale -€
0,5€) +€
montant_contributions_sociales de aide_finale_accession_propriété
contributions_sociales.montant de aide_finale
sinon 0€
```
@ -2905,11 +3051,11 @@ Lorsque le montant mensuel de l'aide, ainsi calculé, est inférieur à un monta
il n'est pas procédé à son versement.
```catala
champ d'application CalculAidePersonnelleLogement:
définition aide_finale_accession_propriété état montant_minimal égal à
si aide_finale_accession_propriété <€ montant_minimal_aide_d823_16
champ d'application CalculAidePersonnelleLogementAccessionPropriété:
définition aide_finale état montant_minimal égal à
si aide_finale <€ montant_minimal_aide_d832_10
alors 0 €
sinon aide_finale_accession_propriété
sinon aide_finale
```
####### Article D832-11 | LEGIARTI000038878744
@ -2920,11 +3066,11 @@ et les modalités suivantes :
K = 0,95 - R / (cm * N)
```catala
champ d'application CalculAidePersonnelleLogement:
champ d'application CalculAidePersonnelleLogementAccessionPropriété:
# TODO informatique: faire l'arrondi à deux décimales préconisé par le 1°
définition coefficient_prise_en_charge_d832_10 égal à
0,95 -.
((arrondi_argent de ((ressources_ménage +€ 50 €) *€ 1%) *€ 100,0) /€
(ressources_ménage_arrondies /€
(coefficient_multiplicateur_d832_11 *€ n_nombre_parts_d832_11)
)
# Attention: ici coefficient_multiplicateur_d832_11 doit être un montant
@ -2961,7 +3107,7 @@ bénéficiaire isolé ou ménage ayant quatre personnes à charge | 4,3
majoration par personne à charge supplémentaire | 0,5 |
```catala
champ d'application CalculAidePersonnelleLogement:
champ d'application CalculAidePersonnelleLogementAccessionPropriété:
définition n_nombre_parts_d832_11 égal à
si nombre_personnes_à_charge = 0 alors
selon situation_familiale_calcul_apl sous forme
@ -3039,9 +3185,9 @@ l'article D. 832-12 a été établi.
```catala
# Voir l'article 18 de l'arrêté du 27 septembre 2019 qui précise le sens de
# cet alinéa en termes de calcul.
champ d'application CalculAidePersonnelleLogement:
définition plafond_menusalité_d832_10_3 état base égal à
calcul_plafond_menusalité_d832_10_3 de date_signature_prêt
champ d'application CalculAidePersonnelleLogementAccessionPropriété:
définition plafond_mensualité_d832_10_3 état base égal à
calcul_plafond_mensualité_d832_10_3 de date_signature_prêt
```
Le plafond ainsi retenu ne peut, en aucun cas, être inférieur à celui applicable au
@ -3058,18 +3204,18 @@ pour la première fois par le bénéficiaire.
# permet de choisir la date la plus avantageuse pour calculer le plafond
# entre la date de signature du prêt et celle d'entrée dans le logement si
# le local est habité pour la première fois par le bénéficiaire.
champ d'application CalculAidePersonnelleLogement:
exception définition plafond_menusalité_d832_10_3 état base sous condition
champ d'application CalculAidePersonnelleLogementAccessionPropriété:
exception définition plafond_mensualité_d832_10_3 état base sous condition
local_habité_première_fois_bénéficiaire
conséquence égal à
# TODO informatique: refactorer avec des let-bindings locaux.
si
calcul_plafond_menusalité_d832_10_3 de date_signature_prêt <€
calcul_plafond_menusalité_d832_10_3 de date_entrée_logement
calcul_plafond_mensualité_d832_10_3 de date_signature_prêt <€
calcul_plafond_mensualité_d832_10_3 de date_entrée_logement
alors
calcul_plafond_menusalité_d832_10_3 de date_entrée_logement
calcul_plafond_mensualité_d832_10_3 de date_entrée_logement
sinon
calcul_plafond_menusalité_d832_10_3 de date_signature_prêt
calcul_plafond_mensualité_d832_10_3 de date_signature_prêt
```
####### Article D832-15 | LEGIARTI000039621211
@ -3096,23 +3242,23 @@ se situent les ressources ;
# qu'on fait ? Est-ce qu'on prend comme revenu la limite supérieure de
# la tranche sauf pour la dernière ? Ambiguité.
champ d'application CalculAidePersonnelleLogement:
champ d'application CalculAidePersonnelleLogementAccessionPropriété:
définition mensualité_minimale sous condition
type_travaux_logement sous forme SurLocauxNonHabitation
conséquence égal à
# Pour la tranche supérieure
(si ressources_ménage -€ montant_limite_tranches_d832_15_1 *€
(si ressources_ménage_arrondies -€ montant_limite_tranches_d832_15_1 *€
n_nombre_parts_d832_11 >=€ 0€
alors
(ressources_ménage -€ montant_limite_tranches_d832_15_1 *€
(ressources_ménage_arrondies -€ montant_limite_tranches_d832_15_1 *€
n_nombre_parts_d832_11) *€
taux_tranche_supérieure_d832_15_1
sinon 0 €) +€
# Pour la tranche inférieure
(si ressources_ménage -€ montant_limite_tranches_d832_15_1 *€
(si ressources_ménage_arrondies -€ montant_limite_tranches_d832_15_1 *€
n_nombre_parts_d832_11 <=€ 0€
alors
ressources_ménage *€ taux_tranche_inférieure_d832_15_1
ressources_ménage_arrondies *€ taux_tranche_inférieure_d832_15_1
sinon
(montant_limite_tranches_d832_15_1 *€
taux_tranche_inférieure_d832_15_1))
@ -3127,6 +3273,21 @@ charges " E0 ".
```catala
champ d'application CalculAidePersonnelleLogement:
# Ce calcul marche car l'équivalence minimale de loyers ne dépend que
# de la situation familiale et des ressources du ménage. Afin de bien
# avoir le premier alinéa du D832-26 et non le second, il nous faut remettre
# à zéro la condition_2_du_832_25 qui contrôle dans le champ d'application
# CalculAidePersonnelleLogementFoyer comment l'équivalence minimale de loyer
# est calculée.
définition logement_foyer.condition_2_du_832_25 sous condition
catégorie_calcul_apl sous forme AccessionPropriété
conséquence égal à faux
définition accession_propriété.équivalence_minimale_loyer égal à
logement_foyer.équivalence_minimale_loyer
champ d'application CalculAidePersonnelleLogementAccessionPropriété:
définition mensualité_minimale sous condition
type_travaux_logement sous forme SurLogementExistant
conséquence égal à
@ -3167,7 +3328,7 @@ le montant mensuel de l'aide calculé selon les dispositions des deuxième à ne
alinéas du même article.
```catala
champ d'application CalculAidePersonnelleLogement:
champ d'application CalculAidePersonnelleLogementAccessionPropriété:
exception
définition dépense_nette_minimale_d832_10 de aide_calculée_2_9_d832_10
état avant_abattement sous condition
@ -3181,7 +3342,7 @@ Dans les autres cas, cette dépense nette est obtenue en déduisant de la seule
déclarée le montant mensuel de l'aide calculé de la même façon.
```catala
champ d'application CalculAidePersonnelleLogement:
champ d'application CalculAidePersonnelleLogementAccessionPropriété:
définition dépense_nette_minimale_d832_10 de aide_calculée_2_9_d832_10
état avant_abattement égal à
mensualité_principale -€ aide_calculée_2_9_d832_10
@ -3193,7 +3354,7 @@ l'opération, il est appliqué un abattement sur le montant mensuel de l'aide é
différence constatée.
```catala
champ d'application CalculAidePersonnelleLogement:
champ d'application CalculAidePersonnelleLogementAccessionPropriété:
définition dépense_nette_minimale_d832_10 de aide_calculée_2_9_d832_10
état après_abattement égal à
si dépense_nette_minimale_d832_10 de aide_calculée_2_9_d832_10 <=€
@ -3221,18 +3382,18 @@ et R. 822-13 à R. 822-17.
# TODO juridique: vérifier si les ressources mentionnées ici prennent en compte
# les ressources des personnes à charge autre que le bénéficiaire et son
# conjoint.
champ d'application CalculAidePersonnelleLogement:
champ d'application CalculAidePersonnelleLogementAccessionPropriété:
définition ressources_ménage_avec_d832_18 égal à
si ressources_ménage <=€ mensualité_principale *€
si ressources_ménage_arrondies <=€ mensualité_principale *€
coefficient_multiplicateur_d832_18
alors
mensualité_principale *€ coefficient_multiplicateur_d832_18
# TODO informatique: arrondir à la centaine d'euros supérieure ?
sinon ressources_ménage
sinon ressources_ménage_arrondies
exception définition ressources_ménage_avec_d832_18 sous condition
situation_r822_11_13_17
conséquence égal à ressources_ménage
conséquence égal à ressources_ménage_arrondies
```
####### Article D832-19 | LEGIARTI000038878728
@ -3367,8 +3528,8 @@ mensuel de l'aide est calculé selon la formule et les modalités suivantes :
" Af = K × (E-E0) "
```catala
champ d'application CalculAidePersonnelleLogement:
définition aide_finale_logement_foyer état formule égal à
champ d'application CalculAidePersonnelleLogementFoyer:
définition aide_finale état formule égal à
si (équivalence_loyer_éligible -€ équivalence_minimale_loyer) *€
coefficient_prise_en_charge_d832_25 <€ 0 €
alors 0 € sinon
@ -3393,11 +3554,11 @@ les dispositions de l'article D. 832-26.
Le montant ainsi calculé est minoré d'un montant fixé forfaitairement par arrêté.
```catala
champ d'application CalculAidePersonnelleLogement:
définition aide_finale_logement_foyer état minoration_forfaitaire égal à
si aide_finale_logement_foyer -€ montant_forfaitaire_d832_24 >=€ 0€
champ d'application CalculAidePersonnelleLogementFoyer:
définition aide_finale état minoration_forfaitaire égal à
si aide_finale -€ montant_forfaitaire_d832_24 >=€ 0€
alors
aide_finale_logement_foyer -€ montant_forfaitaire_d832_24
aide_finale -€ montant_forfaitaire_d832_24
sinon 0€
```
@ -3405,13 +3566,13 @@ Ce résultat est minoré d'un abattement au titre de la dépense nette minimale,
de calcul sont fixées à l'article D. 832-27.
```catala
champ d'application CalculAidePersonnelleLogement:
définition aide_finale_logement_foyer état abattement égal à
si aide_finale_logement_foyer -€
dépense_nette_minimale_d832_27 de aide_finale_logement_foyer >=€ 0€
champ d'application CalculAidePersonnelleLogementFoyer:
définition aide_finale état abattement égal à
si aide_finale -€
dépense_nette_minimale_d832_27 de aide_finale >=€ 0€
alors
aide_finale_logement_foyer -€
dépense_nette_minimale_d832_27 de aide_finale_logement_foyer
aide_finale -€
dépense_nette_minimale_d832_27 de aide_finale
sinon 0€
```
@ -3420,19 +3581,19 @@ s'y appliquent, arrondi à l'euro inférieur, puis majoré de ce montant représ
```catala
champ d'application CalculAidePersonnelleLogement:
définition aide_finale_logement_foyer état contributions_sociales_arrondi
champ d'application CalculAidePersonnelleLogementFoyer:
définition aide_finale état contributions_sociales_arrondi
égal à
si
arrondi_argent de (aide_finale_logement_foyer -€
montant_contributions_sociales de aide_finale_logement_foyer -€
arrondi_argent de (aide_finale -€
contributions_sociales.montant de aide_finale -€
0,5€) +€
montant_contributions_sociales de aide_finale_logement_foyer >=€ 0€
contributions_sociales.montant de aide_finale >=€ 0€
alors
arrondi_argent de (aide_finale_logement_foyer -€
montant_contributions_sociales de aide_finale_logement_foyer -€
arrondi_argent de (aide_finale -€
contributions_sociales.montant de aide_finale -€
0,5€) +€
montant_contributions_sociales de aide_finale_logement_foyer
contributions_sociales.montant de aide_finale
sinon 0€
```
@ -3440,10 +3601,10 @@ Lorsque le montant mensuel de l'aide, calculé selon les modalités précédente
à un montant fixé par arrêté, il n'est pas procédé à son versement.
```catala
champ d'application CalculAidePersonnelleLogement:
définition aide_finale_logement_foyer état montant_minimal égal à
si aide_finale_logement_foyer <€ montant_minimal_aide_d823_24
alors 0 € sinon aide_finale_logement_foyer
champ d'application CalculAidePersonnelleLogementFoyer:
définition aide_finale état montant_minimal égal à
si aide_finale <€ montant_minimal_aide_d823_24
alors 0 € sinon aide_finale
```
######## Article D832-25 | LEGIARTI000038878710
@ -3457,7 +3618,7 @@ de l'article L. 831-1, et mentionnés au 1° de l'article R. 832-21, le coeffici
selon la formule et les modalités précisées au 2° du présent article.
```catala
champ d'application CalculAidePersonnelleLogement:
champ d'application CalculAidePersonnelleLogementFoyer:
définition condition_2_du_832_25 égal à
selon mode_occupation sous forme
-- RésidentLogementFoyer de logement_foyer: (
@ -3475,13 +3636,12 @@ champ d'application CalculAidePersonnelleLogement:
K = 0,95 - (R - r * N) / (cm * N)
```catala
champ d'application CalculAidePersonnelleLogement:
champ d'application CalculAidePersonnelleLogementFoyer:
définition coefficient_prise_en_charge_d832_25 égal à
# TODO informatique: faire l'arrondi à deux décimales préconisé par le a)
0,95 -.
((arrondi_argent de ((ressources_ménage +€ 50 €) *€ 1%) *€ 100,0 -€
coefficient_r_d832_25 *€ n_nombre_parts_d832_25
) /€
((ressources_ménage_arrondies -€
coefficient_r_d832_25 *€ n_nombre_parts_d832_25) /€
(coefficient_multiplicateur_d832_25 *€ n_nombre_parts_d832_25)
)
```
@ -3510,7 +3670,7 @@ bénéficiaire isolé ou ménage ayant quatre personnes à charge | 4,
majoration par personne à charge supplémentaire | 0,5 |
```catala
champ d'application CalculAidePersonnelleLogement:
champ d'application CalculAidePersonnelleLogementFoyer:
définition n_nombre_parts_d832_25 égal à
si nombre_personnes_à_charge = 0 alors
selon situation_familiale_calcul_apl sous forme
@ -3535,7 +3695,7 @@ champ d'application CalculAidePersonnelleLogement:
K = 0,90 - R / (cm * N)
```catala
champ d'application CalculAidePersonnelleLogement:
champ d'application CalculAidePersonnelleLogementFoyer:
exception définition coefficient_prise_en_charge_d832_25 sous condition
condition_2_du_832_25
conséquence égal à
@ -3543,7 +3703,7 @@ champ d'application CalculAidePersonnelleLogement:
# TODO informatique: changer ici et partout ailleurs la formule pour
# l'arrondi supérieur parce que la formule actuelle arrondit 100 -> 200
0,90 -.
((arrondi_argent de ((ressources_ménage +€ 50 €) *€ 1%) *€ 100,0) /€
(ressources_ménage_arrondies /€
(coefficient_multiplicateur_d832_25 *€ n_nombre_parts_d832_25)
)
```
@ -3569,7 +3729,7 @@ bénéficiaire isolé ou ménage ayant quatre personnes à charge | 4,3
majoration par personne à charge supplémentaire | 0,5 |
```catala
champ d'application CalculAidePersonnelleLogement:
champ d'application CalculAidePersonnelleLogementFoyer:
exception définition n_nombre_parts_d832_25 sous condition
condition_2_du_832_25
conséquence égal à
@ -3600,23 +3760,23 @@ de l'article D. 832-25. Le résultat est majoré du produit d'un montant forfait
nombre de parts " N ", le total étant divisé par douze.
```catala
champ d'application CalculAidePersonnelleLogement:
champ d'application CalculAidePersonnelleLogementFoyer:
définition équivalence_minimale_loyer égal à
(((somme argent pour tranche dans tranches_revenus_d832_26 de
(si ressources_ménage <=€ tranche.bas *€ n_nombre_parts_d832_25
(si ressources_ménage_arrondies <=€ tranche.bas *€ n_nombre_parts_d832_25
alors 0€
sinon
(selon tranche.haut sous forme
-- Revenu de tranche_haut:
(si ressources_ménage >=€ tranche_haut *€ n_nombre_parts_d832_25
(si ressources_ménage_arrondies >=€ tranche_haut *€ n_nombre_parts_d832_25
alors
(tranche_haut -€ tranche.bas) *€
(tranche.taux *. n_nombre_parts_d832_25)
sinon
((ressources_ménage -€ tranche.bas *€ n_nombre_parts_d832_25) *€
((ressources_ménage_arrondies -€ tranche.bas *€ n_nombre_parts_d832_25) *€
tranche.taux))
-- Infini:
(ressources_ménage -€ tranche.bas *€ n_nombre_parts_d832_25) *€
(ressources_ménage_arrondies -€ tranche.bas *€ n_nombre_parts_d832_25) *€
tranche.taux)
))) +€
montant_forfaitaire_d832_26 *€ n_nombre_parts_d832_25) *€ (1,0 /. 12,0)
@ -3660,7 +3820,7 @@ arrêté selon le type de logements-foyer, l'abattement à effectuer sur le mont
l'aide est égal à la différence constatée.
```catala
champ d'application CalculAidePersonnelleLogement:
champ d'application CalculAidePersonnelleLogementFoyer:
définition dépense_nette_minimale_d832_27 de aide_calculée_1_8_d832_24
état avant_abattement égal à
équivalence_loyer_éligible -€ aide_calculée_1_8_d832_24

View File

@ -32,8 +32,6 @@ déclaration énumération TypePrêt:
-- D331_63_64
-- D331_59_8
-- D331_76_1
-- Autre
-- PasDePrêt
déclaration énumération TitulairePrêt:
-- Demandeur
@ -60,7 +58,6 @@ déclaration énumération ModeOccupation:
contenu Propriétaire
-- SousLocataire contenu Location
-- LocationAccession contenu Propriétaire
-- Autre
déclaration énumération ParentOuAutre:
-- DemandeurOuConjointOuParentOuViaPartsSociétés contenu décimal
@ -158,6 +155,7 @@ déclaration champ d'application ÉligibilitéAidePersonnelleLogement:
interne condition_prêt condition dépend de Prêt
interne condition_spécifique_prise_en_compte_revenus_demandeur condition
interne condition_nationalité condition
interne condition_logement_résidence_principale condition
interne condition_logement_mode_occupation condition
interne condition_logement_location_tiers condition
interne condition_logement_bailleur condition
@ -296,37 +294,47 @@ déclaration structure TrancheRevenu:
donnée bas contenu argent
donnée taux contenu décimal
déclaration champ d'application CalculAidePersonnelleLogement:
entrée type_prêt contenu TypePrêt
entrée ancienneté_logement contenu NeufOuAncien
entrée mode_occupation contenu ModeOccupation
déclaration champ d'application ContributionsSocialesAidePersonnelleLogement:
sortie montant contenu argent dépend de argent
déclaration champ d'application CalculAidePersonnelleLogementLocatif:
entrée loyer_principal contenu argent
entrée mensualité_principale contenu argent
entrée ressources_ménage_arrondies contenu argent
entrée bénéficiaire_aide_adulte_ou_enfant_handicapés
contenu booléen
entrée date_courante contenu date
entrée nombre_personnes_à_charge contenu entier
entrée situation_familiale_calcul_apl contenu SituationFamilialeCalculAPL
entrée zone contenu ZoneDHabitation
entrée logement_est_chambre contenu booléen
entrée personnes_âgées_ou_handicap_adultes_hébergées_onéreux_particuliers
contenu booléen
entrée zone contenu ZoneDHabitation
entrée situation_familiale contenu SituationFamiliale
entrée nombre_personnes_à_charge contenu entier
entrée type_aide contenu TypeAidePersonnelleLogement
entrée colocation contenu booléen
entrée type_travaux_logement contenu TypeTravauxLogement
entrée date_signature_prêt contenu date
# TODO informatique: mettre un type option là
entrée local_habité_première_fois_bénéficiaire contenu booléen
# TODO informatique: mettre un type option là
entrée date_entrée_logement contenu date
# TODO informatique: mettre un type option là
entrée copropriété contenu booléen
entrée situation_r822_11_13_17 contenu booléen
entrée ressources_ménage contenu argent
état sans_arrondi
état avec_arrondi
entrée bénéficiaire_aide_adulte_ou_enfant_handicapés condition
entrée réduction_loyer_solidarité contenu argent
interne aide_finale_locatif contenu argent
interne loyer_éligible contenu argent
interne taux_loyer_éligible contenu décimal
interne rapport_loyers contenu décimal
interne loyer_référence contenu argent
interne fraction_l832_3 contenu décimal
interne plafond_dégressivité_d823_16 contenu argent
interne plafond_suppression_d823_16 contenu argent
interne montant_forfaitaire_d823_16 contenu argent
interne montant_minimal_aide_d823_16 contenu argent
interne abattement_forfaitaire_d823_17 contenu argent
interne taux_prise_compte_ressources contenu décimal
sortie montant_forfaitaire_charges_d823_16 contenu argent
sortie plafond_loyer_d823_16_2 contenu argent
sortie participation_minimale contenu argent
sortie taux_composition_familiale contenu décimal
sortie participation_personnelle contenu argent
contributions_sociales champ d'application
ContributionsSocialesAidePersonnelleLogement
sortie aide_finale contenu argent
état formule
état diminué
état minoration_forfaitaire
@ -334,89 +342,146 @@ déclaration champ d'application CalculAidePersonnelleLogement:
état réduction_loyer_solidarité
état montant_minimal
interne aide_finale_accession_propriété contenu argent
état formule
état minoration_forfaitaire
état abattement
état contributions_sociales_arrondi
état montant_minimal
déclaration champ d'application CalculAidePersonnelleLogementFoyer:
entrée mode_occupation contenu ModeOccupation
entrée ressources_ménage_arrondies contenu argent
entrée nombre_personnes_à_charge contenu entier
entrée situation_familiale_calcul_apl contenu SituationFamilialeCalculAPL
entrée zone contenu ZoneDHabitation
entrée date_courante contenu date
interne aide_finale_logement_foyer contenu argent
état formule
état minoration_forfaitaire
état abattement
état contributions_sociales_arrondi
état montant_minimal
contexte condition_2_du_832_25 contenu booléen
interne tranches_revenus_d832_26 contenu collection TrancheRevenu
interne taux_francs_vers_euros contenu décimal
interne catégorie_calcul_apl contenu CatégorieCalculAPL
interne loyer_éligible contenu argent
interne mensualité_éligible contenu argent
interne situation_familiale_calcul_apl contenu SituationFamilialeCalculAPL
interne fraction_l832_3 contenu décimal
interne plafond_dégressivité_d823_16 contenu argent
interne plafond_suppression_d823_16 contenu argent
interne loyer_référence contenu argent
interne rapport_loyers contenu décimal
interne mensualité_minimale contenu argent
interne montant_limite_tranches_d832_15_1 contenu argent
interne taux_tranche_inférieure_d832_15_1 contenu décimal
interne taux_tranche_supérieure_d832_15_1 contenu décimal
interne plafond_menusalité_d832_10_3 contenu argent
état base
état copropriétaires
interne calcul_plafond_menusalité_d832_10_3 contenu argent dépend de date
interne équivalence_minimale_loyer contenu argent
interne coefficient_prise_en_charge_d832_25 contenu décimal
interne coefficient_multiplicateur_d832_25 contenu argent
interne coefficient_r_d832_25 contenu argent
interne n_nombre_parts_d832_25 contenu décimal
interne équivalence_loyer_éligible contenu argent
interne dépense_nette_minimale_d832_10 contenu argent dépend de argent
état avant_abattement
état après_abattement
interne dépense_nette_minimale_d832_27 contenu argent dépend de argent
état avant_abattement
état après_abattement
interne coefficient_multiplicateur_d832_17_3 contenu décimal
interne coefficient_multiplicateur_d832_11 contenu argent
interne coefficient_multiplicateur_d832_25 contenu argent
interne coefficient_r_d832_25 contenu argent
interne n_nombre_parts_d832_11 contenu décimal
interne n_nombre_parts_d832_25 contenu décimal
interne coefficient_prise_en_charge_d832_10 contenu décimal
interne coefficient_prise_en_charge_d832_25 contenu décimal
interne montant_forfaitaire_d832_10 contenu argent
interne montant_forfaitaire_d823_16 contenu argent
interne montant_forfaitaire_d832_24 contenu argent
interne montant_forfaitaire_d832_26 contenu argent
interne montant_forfaitaire_d832_27 contenu argent
interne condition_2_du_832_25 contenu booléen
interne montant_contributions_sociales contenu argent dépend de argent
interne montant_minimal_aide_d832_10 contenu argent
interne montant_minimal_aide_d823_16 contenu argent
interne montant_minimal_aide_d823_24 contenu argent
interne ressources_ménage_avec_d832_18 contenu argent
interne coefficient_multiplicateur_d832_18 contenu décimal
interne abattement_forfaitaire_d823_17 contenu argent
interne taux_prise_compte_ressources contenu décimal
interne taux_loyer_éligible contenu décimal
interne tranches_revenus_d832_26 contenu collection TrancheRevenu
contributions_sociales champ d'application
ContributionsSocialesAidePersonnelleLogement
sortie équivalence_minimale_loyer contenu argent
sortie aide_finale contenu argent
état formule
état minoration_forfaitaire
état abattement
état contributions_sociales_arrondi
état montant_minimal
déclaration champ d'application CalculAidePersonnelleLogementAccessionPropriété:
entrée mensualité_principale contenu argent
entrée ressources_ménage_arrondies contenu argent
entrée nombre_personnes_à_charge contenu entier
entrée situation_familiale_calcul_apl contenu SituationFamilialeCalculAPL
entrée type_travaux_logement contenu TypeTravauxLogement
entrée date_signature_prêt contenu date
entrée local_habité_première_fois_bénéficiaire contenu booléen
entrée date_entrée_logement contenu date
entrée copropriété contenu booléen
entrée situation_r822_11_13_17 contenu booléen
entrée équivalence_minimale_loyer contenu argent
entrée zone contenu ZoneDHabitation
entrée type_prêt contenu TypePrêt
entrée ancienneté_logement contenu NeufOuAncien
entrée date_courante contenu date
interne mensualité_éligible contenu argent
interne mensualité_minimale contenu argent
interne plafond_mensualité_d832_10_3 contenu argent
état base
état copropriétaires
interne calcul_plafond_mensualité_d832_10_3 contenu argent dépend de date
interne n_nombre_parts_d832_11 contenu décimal
interne coefficient_prise_en_charge_d832_10 contenu décimal
interne dépense_nette_minimale_d832_10 contenu argent dépend de argent
état avant_abattement
état après_abattement
interne ressources_ménage_avec_d832_18 contenu argent
interne montant_forfaitaire_charges_d832_10 contenu argent
interne montant_forfaitaire_d832_10 contenu argent
interne montant_minimal_aide_d832_10 contenu argent
interne coefficient_multiplicateur_d832_17_3 contenu décimal
interne coefficient_multiplicateur_d832_11 contenu argent
interne coefficient_multiplicateur_d832_18 contenu décimal
interne montant_limite_tranches_d832_15_1 contenu argent
interne taux_tranche_inférieure_d832_15_1 contenu décimal
interne taux_tranche_supérieure_d832_15_1 contenu décimal
interne taux_francs_vers_euros contenu décimal
contributions_sociales champ d'application
ContributionsSocialesAidePersonnelleLogement
sortie aide_finale contenu argent
état formule
état minoration_forfaitaire
état abattement
état contributions_sociales_arrondi
état montant_minimal
déclaration structure InformationsCalculAPLLocatif:
donnée loyer_principal contenu argent
donnée bénéficiaire_aide_adulte_ou_enfant_handicapés contenu booléen
donnée logement_est_chambre contenu booléen
donnée colocation contenu booléen
donnée personnes_âgées_ou_handicap_adultes_hébergées_onéreux_particuliers
contenu booléen
# TODO informatique et juridique: calculer type_aide!
donnée type_aide contenu TypeAidePersonnelleLogement
donnée réduction_loyer_solidarité contenu argent
déclaration structure InformationsCalculAPLAccessionPropriété:
donnée mensualité_principale contenu argent
donnée date_signature_prêt contenu date
donnée date_entrée_logement contenu date
donnée type_travaux_logement contenu TypeTravauxLogement
donnée local_habité_première_fois_bénéficiaire contenu booléen
donnée copropriété contenu booléen
donnée situation_r822_11_13_17 contenu booléen
donnée type_prêt contenu TypePrêt
donnée ancienneté_logement contenu NeufOuAncien
déclaration énumération InformationsCalculAPL:
-- InfosLocatif contenu InformationsCalculAPLLocatif
-- InfosLogementFoyer
-- InfosAccessionPropriété contenu
InformationsCalculAPLAccessionPropriété
déclaration champ d'application CalculAidePersonnelleLogement:
entrée mode_occupation contenu ModeOccupation
entrée informations_calcul contenu InformationsCalculAPL
entrée ressources_ménage contenu argent
état sans_arrondi
état avec_arrondi
entrée situation_familiale contenu SituationFamiliale
entrée nombre_personnes_à_charge contenu entier
entrée zone contenu ZoneDHabitation
entrée date_courante contenu date
interne catégorie_calcul_apl contenu CatégorieCalculAPL
interne situation_familiale_calcul_apl contenu SituationFamilialeCalculAPL
locatif champ d'application CalculAidePersonnelleLogementLocatif
logement_foyer champ d'application CalculAidePersonnelleLogementFoyer
accession_propriété champ d'application
CalculAidePersonnelleLogementAccessionPropriété
sortie montant_forfaitaire_charges_d823_16 contenu argent
sortie montant_forfaitaire_charges_d832_10 contenu argent
sortie plafond_loyer_d823_16_2 contenu argent
sortie participation_personnelle contenu argent
sortie participation_minimale contenu argent
sortie taux_composition_familiale contenu décimal
sortie aide_finale contenu argent
champ d'application CalculAidePersonnelleLogement:
# Valeur par défaut pour ce plafond quand il n'est pas applicable.
définition calcul_plafond_menusalité_d832_10_3 de date_signature_prêt
sous condition
type_prêt sous forme TypePrêt.Autre
conséquence égal à 0 €
champ d'application ContributionsSocialesAidePersonnelleLogement:
# TODO juridique: mettre ce bout de code à côté des articles de loi qui le
# justifient. (Pas de CSG mais la CRDS pour les APL)
définition montant_contributions_sociales de aide_finale égal à
définition montant de aide_finale égal à
aide_finale *€ 0,5%
déclaration champ d'application OuvertureDroitsRetraite:

View File

@ -1,2 +0,0 @@
[RESULT] Computation successful! Results:
[RESULT] éligible = false

View File

@ -1,2 +0,0 @@
[RESULT] Computation successful! Results:
[RESULT] éligible = true

View File

@ -4,43 +4,26 @@
```catala
déclaration champ d'application Exemple1 :
calcul champ d'application CalculAidePersonnelleLogement
calcul champ d'application CalculAidePersonnelleLogementLocatif
sortie montant contenu argent
champ d'application Exemple1:
définition montant égal à calcul.aide_finale
définition calcul.ancienneté_logement égal à Neuf
définition calcul.mode_occupation égal à Locataire contenu (Location {
-- bailleur: Bailleur {
-- type_bailleur: BailleurPrivé
-- respecte_convention_titre_V: vrai
-- respecte_convention_titre_II: vrai
-- construit_amélioré_conditions_l831_1_4: faux
-- acquisition_aides_état_prêt_titre_II_ou_livre_III: faux
}
})
définition calcul.loyer_principal égal à 700 €
définition calcul.mensualité_principale égal à 0 €
définition calcul.date_courante égal à |2021-10-3|
définition calcul.logement_est_chambre égal à faux
définition calcul.personnes_âgées_ou_handicap_adultes_hébergées_onéreux_particuliers
égal à faux
définition calcul.zone égal à Zone1
définition calcul.situation_familiale égal à Mariés
définition calcul.situation_familiale_calcul_apl égal à Couple
définition calcul.nombre_personnes_à_charge égal à 3
définition calcul.type_aide égal à AidePersonnaliséeLogement
# TODO juridique: trouver articles loi qui calculent le type d'aide
# à partir des caractéristiques du ménage et l'implémenter.
définition calcul.colocation égal à faux
définition calcul.type_travaux_logement égal à SurLogementExistant
définition calcul.local_habité_première_fois_bénéficiaire égal à faux
définition calcul.date_entrée_logement égal à |2020-05-20|
définition calcul.copropriété égal à faux
définition calcul.réduction_loyer_solidarité égal à 0 €
définition calcul.ressources_ménage égal à 35 999 €
définition calcul.situation_r822_11_13_17 égal à faux
définition calcul.type_prêt égal à TypePrêt.Autre
définition calcul.date_signature_prêt égal à |2020-05-03|
définition calcul.ressources_ménage_arrondies égal à 36 000 €
définition calcul.bénéficiaire_aide_adulte_ou_enfant_handicapés égal à faux
assertion montant = 0 €
assertion calcul.montant_forfaitaire_charges_d823_16 = 91,09 €
assertion calcul.plafond_loyer_d823_16_2 = 524,20 €