From 4b6d5796d343273575dd0f9473c05be2aca5a8f5 Mon Sep 17 00:00:00 2001 From: Alice Dahan Date: Tue, 15 Oct 2024 16:44:24 +0200 Subject: [PATCH] =?UTF-8?q?feat:=20calcule=20la=20RGCP=20mois=20par=20mois?= =?UTF-8?q?=20=C3=A0=20la=20saisie?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../reduction-generale/RéductionGénérale.tsx | 24 ++++++++++++++++++- .../RéductionGénéraleMoisParMois.tsx | 23 +++++++++++++++--- 2 files changed, 43 insertions(+), 4 deletions(-) diff --git a/site/source/pages/simulateurs/reduction-generale/RéductionGénérale.tsx b/site/source/pages/simulateurs/reduction-generale/RéductionGénérale.tsx index bf5b5d445..e50f034f6 100644 --- a/site/source/pages/simulateurs/reduction-generale/RéductionGénérale.tsx +++ b/site/source/pages/simulateurs/reduction-generale/RéductionGénérale.tsx @@ -23,6 +23,7 @@ import EffectifSwitch from './components/EffectifSwitch' import RéductionGénéraleMoisParMois from './RéductionGénéraleMoisParMois' import { getInitialRéductionGénéraleMoisParMois, + getRéductionGénéraleFromRémunération, MonthState, reevaluateRéductionGénéraleMoisParMois, rémunérationBruteDottedName, @@ -114,10 +115,31 @@ function RéductionGénéraleSimulationGoals({ ) }, [engine, situation]) + const onRémunérationChange = ( + monthIndex: number, + rémunérationBrute: number + ) => { + setData((previousData) => { + const updatedData = [...previousData] + updatedData[monthIndex] = { + rémunérationBrute, + réductionGénérale: getRéductionGénéraleFromRémunération( + engine, + rémunérationBrute + ), + } + + return updatedData + }) + } + return ( {monthByMonth ? ( - + ) : ( <> void }) { const engine = useEngine() const { t, i18n } = useTranslation() @@ -33,7 +40,12 @@ export default function RéductionGénéraleMoisParMois({ t('décembre'), ] - const onRémunérationChange = () => {} + const onRémunérationChange = ( + monthIndex: number, + rémunérationBrute: RémunérationBruteInput + ) => { + onChange(monthIndex, rémunérationBrute.valeur) + } // TODO: enlever les 4 premières props après résolution de #3123 const ruleInputProps = { @@ -87,7 +99,12 @@ export default function RéductionGénéraleMoisParMois({ )}-${monthIndex}`} aria-label={`${engine.getRule(rémunérationBruteDottedName) ?.title} (${monthName})`} - onChange={onRémunérationChange} + onChange={(rémunérationBrute?: PublicodesExpression) => + onRémunérationChange( + monthIndex, + rémunérationBrute as RémunérationBruteInput + ) + } value={data[monthIndex].rémunérationBrute} />