From 1a965ad1fe27acb1c6e619dea16aa7b07691d953 Mon Sep 17 00:00:00 2001 From: Mael Date: Mon, 25 Feb 2019 11:17:12 +0100 Subject: [PATCH] =?UTF-8?q?:gear:=20Affichage=20des=20valeurs=20des=20tran?= =?UTF-8?q?ches=20du=20bar=C3=A8me=20marginal?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- source/engine/mecanisms/barème.js | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/source/engine/mecanisms/barème.js b/source/engine/mecanisms/barème.js index 6e296ba30..24641037f 100644 --- a/source/engine/mecanisms/barème.js +++ b/source/engine/mecanisms/barème.js @@ -1,7 +1,7 @@ import { val } from 'Engine/traverse-common-functions' import { decompose } from 'Engine/mecanisms/utils' import { mecanismVariations } from 'Engine/mecanisms' -import { has, evolve, sum } from 'ramda' +import { has, evolve, sum, pluck } from 'ramda' import { defaultNode, rewriteNode, E } from 'Engine/evaluation' import Barème from 'Engine/mecanismViews/Barème' @@ -57,17 +57,25 @@ export default (recurse, k, v) => { let e = E(cache, situationGate, parsedRules) let { assiette, multiplicateur } = node.explanation, - trancheValues = node.explanation.tranches.map( - ({ de: min, à: max, taux }) => + tranches = node.explanation.tranches.map(tranche => { + let { de: min, à: max, taux } = tranche + let value = e.val(assiette) < min * e.val(multiplicateur) ? 0 : (Math.min(e.val(assiette), max * e.val(multiplicateur)) - min * e.val(multiplicateur)) * e.val(taux) - ), - nodeValue = sum(trancheValues) - return rewriteNode(node, nodeValue, explanation, e.missingVariables()) + return { ...tranche, value } + }), + nodeValue = sum(pluck('value', tranches)) + + return rewriteNode( + node, + nodeValue, + { ...explanation, tranches }, + e.missingVariables() + ) } return {