From 62d9369adaec47575bdd034ccf0c59f8c72e37fd Mon Sep 17 00:00:00 2001 From: Maxime Quandalle Date: Tue, 21 May 2019 15:41:47 +0200 Subject: [PATCH] :gear: :hammer: Gestion du plafond frais pro MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit La déduction forfaitaire de 10% pour les frais professionnels est plafonnée. https://www.service-public.fr/particuliers/vosdroits/F1989 --- source/engine/mecanisms.js | 13 +++++++------ source/règles/base.yaml | 1 + 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/source/engine/mecanisms.js b/source/engine/mecanisms.js index dfcfe1c75..0f8fd61d2 100644 --- a/source/engine/mecanisms.js +++ b/source/engine/mecanisms.js @@ -537,10 +537,11 @@ export let mecanismReduction = (recurse, k, v) => { let objectShape = { assiette: false, abattement: defaultNode(0), + plafond: defaultNode(Infinity), franchise: defaultNode(0) } - let effect = ({ assiette, abattement, franchise, décote }) => { + let effect = ({ assiette, abattement, plafond, franchise, décote }) => { let v_assiette = val(assiette) if (v_assiette == null) return null @@ -550,12 +551,12 @@ export let mecanismReduction = (recurse, k, v) => { ? 0 : décote ? do { - let plafond = val(décote.plafond), + let plafondDécote = val(décote.plafond), taux = val(décote.taux) - v_assiette > plafond + v_assiette > plafondDécote ? v_assiette - : max(0, (1 + taux) * v_assiette - taux * plafond) + : max(0, (1 + taux) * v_assiette - taux * plafondDécote) } : v_assiette @@ -567,9 +568,9 @@ export let mecanismReduction = (recurse, k, v) => { : abattement.category === 'percentage' ? max( 0, - montantFranchiséDécoté - val(abattement) * montantFranchiséDécoté + montantFranchiséDécoté - min(val(plafond), val(abattement) * montantFranchiséDécoté) ) - : max(0, montantFranchiséDécoté - val(abattement)) + : max(0, montantFranchiséDécoté - min(val(plafond), val(abattement))) : montantFranchiséDécoté } diff --git a/source/règles/base.yaml b/source/règles/base.yaml index efaacf142..98fd06022 100644 --- a/source/règles/base.yaml +++ b/source/règles/base.yaml @@ -2586,6 +2586,7 @@ - contrat salarié . rémunération . net imposable - indépendant . revenu professionnel abattement: 10% + plafond: 12502 - nom: impôt sur le revenu espace: impôt