Implemented rounding where law requires it

This commit is contained in:
Denis Merigoux 2022-04-29 21:52:51 +02:00
parent d08dfb17d2
commit 857b2212c1
No known key found for this signature in database
GPG Key ID: EE99DCFA365C3EE3
4 changed files with 56 additions and 13 deletions

View File

@ -338,8 +338,7 @@ RL est exprimé en pourcentage et arrondi à la deuxième décimale.
champ d'application CalculAidePersonnelleLogementLocatif
sous condition date_courante >=@ |2021-10-01|:
définition rapport_loyers égal à
# TODO informatique: faire l'arrondi
loyer_éligible /€ loyer_référence
arrondi_décimal de ((loyer_éligible /€ loyer_référence) *. 100,0) /. 100,0
```
Pour la détermination de TL , les taux progressifs et les tranches successives de RL mentionnés

View File

@ -1845,7 +1845,9 @@ champ d'application CalculAidePersonnelleLogementLocatif:
```catala
champ d'application CalculAidePersonnelleLogement:
définition ressources_ménage état avec_arrondi égal à
arrondi_argent de ((ressources_ménage +€ 50€) *€ 1%) *€ 100,0
# Cette formule arrondit à la centaine d'euros supérieure. Essayer quelques
# exemples pour vous en convaincre, dont 100 et 150.
arrondi_argent de ((ressources_ménage +€ 49,99€) *€ 1%) *€ 100,0
```
5° “ R0 ” est un abattement forfaitaire appliqué aux ressources du ménage. Il est fixé
@ -3067,8 +3069,7 @@ K = 0,95 - R / (cm * N)
```catala
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 à
définition coefficient_prise_en_charge_d832_10 état formule égal à
0,95 -.
(ressources_ménage_arrondies /€
(coefficient_multiplicateur_d832_11 *€ n_nombre_parts_d832_11)
@ -3082,6 +3083,17 @@ où :
1° " K " est le coefficient de prise en charge, arrondi à deux décimales par défaut.
Lorsque le calcul le porte à une valeur supérieure à 0,95, il est considéré comme égal à 0,95 ;
```catala
champ d'application CalculAidePersonnelleLogementAccessionPropriété:
définition coefficient_prise_en_charge_d832_10 état arrondi égal à
# Cette formule implémente bien l'arrondi à deux décimales par défaut,
# à partir d'un arrondi au plus proche à l'unité.
(arrondi_décimal de ((coefficient_prise_en_charge_d832_10 -. 0,005) *. 100,0)) /. 100,0
définition coefficient_prise_en_charge_d832_10 état seuil égal à
si coefficient_prise_en_charge_d832_10 >=. 0,95 alors 0,95 sinon
coefficient_prise_en_charge_d832_10
```
2° " R " représente la limite supérieure de l'intervalle dans lequel se situent les ressources
du ménage, appréciées conformément aux dispositions de la section 2 du chapitre II du titre
II du présent livre et arrondies à la centaine d'euros supérieure ;
@ -3388,7 +3400,6 @@ champ d'application CalculAidePersonnelleLogementAccessionPropriété:
coefficient_multiplicateur_d832_18
alors
mensualité_principale *€ coefficient_multiplicateur_d832_18
# TODO informatique: arrondir à la centaine d'euros supérieure ?
sinon ressources_ménage_arrondies
exception définition ressources_ménage_avec_d832_18 sous condition
@ -3637,8 +3648,7 @@ K = 0,95 - (R - r * N) / (cm * N)
```catala
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)
définition coefficient_prise_en_charge_d832_25 état formule égal à
0,95 -.
((ressources_ménage_arrondies -€
coefficient_r_d832_25 *€ n_nombre_parts_d832_25) /€
@ -3651,6 +3661,18 @@ où :
a) " K " est le coefficient de prise en charge, arrondi à deux décimales par défaut. Lorsque le
calcul le porte à une valeur supérieure à 0,95, il est considéré égal à 0,95 ;
```catala
champ d'application CalculAidePersonnelleLogementFoyer:
définition coefficient_prise_en_charge_d832_25 état arrondi égal à
# Cette formule implémente bien l'arrondi à deux décimales par défaut,
# à partir d'un arrondi au plus proche à l'unité.
(arrondi_décimal de ((coefficient_prise_en_charge_d832_25 -. 0,005) *. 100,0)) /. 100,0
définition coefficient_prise_en_charge_d832_25 état seuil égal à
si coefficient_prise_en_charge_d832_25 >=. 0,95 alors 0,95 sinon
coefficient_prise_en_charge_d832_25
```
b) " R " représente la limite supérieure de l'intervalle dans lequel se situent les ressources
du ménage, appréciées selon les modalités prévues à la section 2 du chapitre II du titre II du
présent livre et arrondies à la centaine d'euros supérieure ;
@ -3696,12 +3718,10 @@ K = 0,90 - R / (cm * N)
```catala
champ d'application CalculAidePersonnelleLogementFoyer:
exception définition coefficient_prise_en_charge_d832_25 sous condition
exception définition coefficient_prise_en_charge_d832_25 état formule
sous condition
condition_2_du_832_25
conséquence égal à
# TODO informatique: faire l'arrondi à deux décimales préconisé par le a)
# TODO informatique: changer ici et partout ailleurs la formule pour
# l'arrondi supérieur parce que la formule actuelle arrondit 100 -> 200
0,90 -.
(ressources_ménage_arrondies /€
(coefficient_multiplicateur_d832_25 *€ n_nombre_parts_d832_25)
@ -3712,6 +3732,24 @@ où :
a) " K " est le coefficient de prise en charge, arrondi à deux décimales par défaut ;
lorsque le calcul le porte à une valeur supérieure à 0,90, il est considéré égal à 0,90 ;
```catala
champ d'application CalculAidePersonnelleLogementFoyer:
exception définition coefficient_prise_en_charge_d832_25 état arrondi
sous condition
condition_2_du_832_25
conséquence égal à
# Cette formule implémente bien l'arrondi à deux décimales par défaut,
# à partir d'un arrondi au plus proche à l'unité.
(arrondi_décimal de ((coefficient_prise_en_charge_d832_25 -. 0,005) *. 100,0)) /. 100,0
définition coefficient_prise_en_charge_d832_25 état seuil
sous condition
condition_2_du_832_25
conséquence égal à
si coefficient_prise_en_charge_d832_25 >=. 0,90 alors 0,90 sinon
coefficient_prise_en_charge_d832_25
```
b) " R " représente la limite supérieure de l'intervalle dans lequel se situent les
ressources du ménage, appréciées selon les modalités prévues à la section 2 du
chapitre II du titre II du présent livre et arrondies à la centaine d'euros supérieure ;

View File

@ -353,6 +353,9 @@ déclaration champ d'application CalculAidePersonnelleLogementFoyer:
contexte condition_2_du_832_25 contenu booléen
interne coefficient_prise_en_charge_d832_25 contenu décimal
état formule
état arrondi
état seuil
interne coefficient_multiplicateur_d832_25 contenu argent
interne coefficient_r_d832_25 contenu argent
interne n_nombre_parts_d832_25 contenu décimal
@ -402,6 +405,9 @@ déclaration champ d'application CalculAidePersonnelleLogementAccessionPropriét
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
état formule
état arrondi
état seuil
interne dépense_nette_minimale_d832_10 contenu argent dépend de argent
état avant_abattement
état après_abattement

View File

@ -30,5 +30,5 @@ champ d'application Exemple1:
assertion calcul.participation_minimale = 44,56 €
assertion calcul.taux_composition_familiale = 2,01%
# TODO: vérifier la participation personnelle, peut-être 705,51€ ?
assertion calcul.participation_personnelle = 706,50
assertion calcul.participation_personnelle = 705,62
```