diff --git a/site/cypress/integration/mon-entreprise/reduction-generale.ts b/site/cypress/integration/mon-entreprise/reduction-generale.ts index 801207394..56859585a 100755 --- a/site/cypress/integration/mon-entreprise/reduction-generale.ts +++ b/site/cypress/integration/mon-entreprise/reduction-generale.ts @@ -38,15 +38,15 @@ describe('Réduction générale', { testIsolation: false }, function () { }) it('should allow to change time period', function () { - cy.contains('Montant mensuel').click() + cy.contains('Réduction mensuelle').click() cy.get(inputSelector).first().type('{selectall}2000') - cy.contains('Montant annuel').click() + cy.contains('Réduction annuelle').click() cy.get(inputSelector).first().should('have.value', '24 000 €') }) it('should display values for the réduction générale', function () { - cy.contains('Montant mensuel').click() + cy.contains('Réduction mensuelle').click() cy.get(inputSelector).first().type('{selectall}1900') cy.get( @@ -64,7 +64,7 @@ describe('Réduction générale', { testIsolation: false }, function () { }) it('should display a warning for a salary too high', function () { - cy.contains('Montant mensuel').click() + cy.contains('Réduction mensuelle').click() cy.get(inputSelector).first().type('{selectall}3000') cy.get('div[id="simulator-legend"]').should( diff --git a/site/source/locales/ui-en.yaml b/site/source/locales/ui-en.yaml index 097c6eb8c..f98b77c3d 100644 --- a/site/source/locales/ui-en.yaml +++ b/site/source/locales/ui-en.yaml @@ -274,6 +274,9 @@ Revenu disponible: Disposable income Revenu du dirigeant par statut: Executive income by status Revenu net mensuel après impôts: Net monthly income after tax Règles de calculs: Calculation rules +Réduction annuelle: Annual discount +Réduction mensuelle: Monthly discount +Réduction mois par mois: Monthly discount Régime d'imposition: Taxation system Réinitialiser: Reset Réinitialiser la situation enregistrée: Reset registered situation diff --git a/site/source/locales/ui-fr.yaml b/site/source/locales/ui-fr.yaml index b8b8fe1cf..509b14971 100644 --- a/site/source/locales/ui-fr.yaml +++ b/site/source/locales/ui-fr.yaml @@ -290,6 +290,9 @@ Revenu disponible: Revenu disponible Revenu du dirigeant par statut: Revenu du dirigeant par statut Revenu net mensuel après impôts: Revenu net mensuel après impôts Règles de calculs: Règles de calculs +Réduction annuelle: Réduction annuelle +Réduction mensuelle: Réduction mensuelle +Réduction mois par mois: Réduction mois par mois Régime d'imposition: Régime d'imposition Réinitialiser: Réinitialiser Réinitialiser la situation enregistrée: Réinitialiser la situation enregistrée 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 f7343eaa7..9db46aa71 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 @@ -1,3 +1,4 @@ +import { useCallback, useState } from 'react' import { Trans, useTranslation } from 'react-i18next' import { styled } from 'styled-components' @@ -18,16 +19,37 @@ import { Body } from '@/design-system/typography/paragraphs' import EffectifSwitch from './components/EffectifSwitch' export default function RéductionGénéraleSimulation() { + const { t } = useTranslation() + const [monthByMonth, setMonthByMonth] = useState(false) + const periods = [ + { + label: t('Réduction mensuelle'), + unit: '€/mois', + }, + { + label: t('Réduction annuelle'), + unit: '€/an', + }, + { + label: t('Réduction mois par mois'), + unit: '€', + }, + ] + const onPeriodSwitch = useCallback((unit: string) => { + setMonthByMonth(unit === '€') + }, []) + return ( <> }> - + } /> @@ -45,6 +67,7 @@ const StyledLi = styled(Li)` } ` function RéductionGénéraleSimulationGoals({ + monthByMonth, toggles = ( <> @@ -53,6 +76,7 @@ function RéductionGénéraleSimulationGoals({ ), legend, }: { + monthByMonth: boolean toggles?: React.ReactNode legend: string }) { @@ -60,81 +84,89 @@ function RéductionGénéraleSimulationGoals({ return ( - {/* TODO: remplacer "salarié . cotisations . assiette" par "salarié . rémunération . brut" - lorsqu'elle n'incluera plus les frais professionnels. */} - + {monthByMonth ? ( +
+ Réduction générale mensuelle +
+ ) : ( + <> + {/* TODO: remplacer "salarié . cotisations . assiette" par "salarié . rémunération . brut" + lorsqu'elle n'incluera plus les frais professionnels. */} + - - - - - La réduction générale n'est pas cumulable avec l'exonération Jeune - Entreprise Innovante (JEI). - - - - + + + + + La réduction générale n'est pas cumulable avec l'exonération + Jeune Entreprise Innovante (JEI). + + + + - - - - - La réduction générale ne s'applique pas sur les gratifications de - stage. - - - - + + + + + La réduction générale ne s'applique pas sur les gratifications + de stage. + + + + - - - - - La RGCP concerne uniquement les salaires inférieurs à 1,6 SMIC. - C'est-à-dire, pour 2024, une rémunération totale qui ne dépasse - pas 2 827,07 € bruts par mois. - - - - + + + + + La RGCP concerne uniquement les salaires inférieurs à 1,6 + SMIC. C'est-à-dire, pour 2024, une rémunération totale qui ne + dépasse pas 2 827,07 € bruts par mois. + + + + - - - - - + - - - - - - - + + + + + + + + + + + + + )}
) }