diff --git a/site/cypress/integration/mon-entreprise/lodeom.ts b/site/cypress/integration/mon-entreprise/lodeom.ts index a0762c20a..c12c51c86 100755 --- a/site/cypress/integration/mon-entreprise/lodeom.ts +++ b/site/cypress/integration/mon-entreprise/lodeom.ts @@ -96,6 +96,15 @@ describe('Simulateur lodeom', { testIsolation: false }, function () { ).should('include.text', '644 €') }) + it('should not include repartition for zone 2', function () { + cy.get( + 'p[id="salarié___cotisations___exonérations___lodeom___montant___imputation_retraite_complémentaire-value"]' + ).should('not.exist') + cy.get( + 'p[id="salarié___cotisations___exonérations___lodeom___montant___imputation_sécurité_sociale-value"]' + ).should('not.exist') + }) + it('should display a custom warning for a remuneration too high', function () { cy.get(inputSelector).first().type('{selectall}8500') diff --git a/site/source/components/RéductionDeCotisations/MontantAvecRépartition.tsx b/site/source/components/RéductionDeCotisations/Montant.tsx similarity index 84% rename from site/source/components/RéductionDeCotisations/MontantAvecRépartition.tsx rename to site/source/components/RéductionDeCotisations/Montant.tsx index 5e51cfc4a..44ac3fa6b 100644 --- a/site/source/components/RéductionDeCotisations/MontantAvecRépartition.tsx +++ b/site/source/components/RéductionDeCotisations/Montant.tsx @@ -25,9 +25,10 @@ type Props = { warningCondition?: PublicodesExpression warningTooltip?: ReactNode alignment?: 'center' | 'end' + withRépartition?: boolean } -export default function MontantAvecRépartition({ +export default function Montant({ id, dottedName, rémunérationBrute, @@ -38,15 +39,31 @@ export default function MontantAvecRépartition({ warningCondition, warningTooltip, alignment = 'end', + withRépartition = true, }: Props) { const { t } = useTranslation() - const tooltip = ( + const tooltip = withRépartition && ( ) return réduction ? ( - + tooltip ? ( + + + {formatValue( + { + nodeValue: réduction, + }, + { + displayedUnit, + language, + } + )} + + + + ) : ( {formatValue( { @@ -57,9 +74,8 @@ export default function MontantAvecRépartition({ language, } )} - - + ) ) : ( !!warningCondition && !!warningTooltip && ( diff --git a/site/source/components/RéductionDeCotisations/RécapitulatifTrimestre.tsx b/site/source/components/RéductionDeCotisations/RécapitulatifTrimestre.tsx index beaaecc35..ec90480f5 100644 --- a/site/source/components/RéductionDeCotisations/RécapitulatifTrimestre.tsx +++ b/site/source/components/RéductionDeCotisations/RécapitulatifTrimestre.tsx @@ -2,7 +2,7 @@ import { sumAll } from 'effect/Number' import { useTranslation } from 'react-i18next' import { styled } from 'styled-components' -import MontantAvecRépartition from '@/components/RéductionDeCotisations/MontantAvecRépartition' +import Montant from '@/components/RéductionDeCotisations/Montant' import { Grid } from '@/design-system/layout' import { Body } from '@/design-system/typography/paragraphs' import { MonthState, RéductionDottedName } from '@/utils/réductionDeCotisations' @@ -13,6 +13,7 @@ type Props = { data: MonthState[] codeRéduction?: string codeRégularisation?: string + withRépartition?: boolean mobileVersion?: boolean } @@ -27,6 +28,7 @@ export default function RécapitulatifTrimestre({ data, codeRéduction, codeRégularisation, + withRépartition = true, mobileVersion = false, }: Props) { const { t, i18n } = useTranslation() @@ -73,7 +75,7 @@ export default function RécapitulatifTrimestre({ const MontantRéduction = () => { return ( - ) } const MontantRégularisation = () => { return ( - ) } diff --git a/site/source/components/RéductionDeCotisations/RéductionBasique.tsx b/site/source/components/RéductionDeCotisations/RéductionBasique.tsx index 98678417b..c7638e990 100644 --- a/site/source/components/RéductionDeCotisations/RéductionBasique.tsx +++ b/site/source/components/RéductionDeCotisations/RéductionBasique.tsx @@ -24,6 +24,7 @@ type Props = { warnings: ReactNode warningCondition: PublicodesExpression warningMessage: ReactNode + withRépartition?: boolean } export default function RéductionBasique({ @@ -32,6 +33,7 @@ export default function RéductionBasique({ warnings, warningCondition, warningMessage, + withRépartition = true, }: Props) { const engine = useEngine() const currentUnit = useSelector(targetUnitSelector) @@ -63,7 +65,9 @@ export default function RéductionBasique({ round={false} /> - + {withRépartition && ( + + )} ) diff --git a/site/source/components/RéductionDeCotisations/RéductionMois.tsx b/site/source/components/RéductionDeCotisations/RéductionMois.tsx index 5180841fa..db1ff37a4 100644 --- a/site/source/components/RéductionDeCotisations/RéductionMois.tsx +++ b/site/source/components/RéductionDeCotisations/RéductionMois.tsx @@ -4,7 +4,7 @@ import { useTranslation } from 'react-i18next' import { styled } from 'styled-components' import NumberInput from '@/components/conversation/NumberInput' -import MontantAvecRépartition from '@/components/RéductionDeCotisations/MontantAvecRépartition' +import Montant from '@/components/RéductionDeCotisations/Montant' import MonthOptions from '@/components/RéductionDeCotisations/MonthOptions' import RuleLink from '@/components/RuleLink' import { useEngine } from '@/components/utils/EngineContext' @@ -31,6 +31,7 @@ type Props = { onOptionsChange: (monthIndex: number, options: Options) => void warningCondition: PublicodesExpression warningTooltip: ReactNode + withRépartition?: boolean mobileVersion?: boolean } @@ -43,6 +44,7 @@ export default function RéductionMois({ onOptionsChange, warningCondition, warningTooltip, + withRépartition = true, mobileVersion = false, }: Props) { const { t, i18n } = useTranslation() @@ -113,7 +115,7 @@ export default function RéductionMois({ const MontantRéduction = () => { return ( - ) } const MontantRégularisation = () => { return ( - ) } diff --git a/site/source/components/RéductionDeCotisations/RéductionMoisParMois.tsx b/site/source/components/RéductionDeCotisations/RéductionMoisParMois.tsx index 2e267c683..2b843348a 100644 --- a/site/source/components/RéductionDeCotisations/RéductionMoisParMois.tsx +++ b/site/source/components/RéductionDeCotisations/RéductionMoisParMois.tsx @@ -29,6 +29,7 @@ type Props = { warningTooltip: ReactNode codeRéduction?: string codeRégularisation?: string + withRépartition?: boolean } export default function RéductionMoisParMois({ @@ -42,6 +43,7 @@ export default function RéductionMoisParMois({ warningTooltip, codeRéduction, codeRégularisation, + withRépartition = true, }: Props) { const { t } = useTranslation() const isDesktop = useMediaQuery( @@ -118,6 +120,7 @@ export default function RéductionMoisParMois({ }} warningCondition={warningCondition} warningTooltip={warningTooltip} + withRépartition={withRépartition} /> ))} @@ -176,6 +179,7 @@ export default function RéductionMoisParMois({ data={quarters[label]} codeRéduction={codeRéduction} codeRégularisation={codeRégularisation} + withRépartition={withRépartition} /> ))} @@ -203,6 +207,7 @@ export default function RéductionMoisParMois({ }} warningCondition={warningCondition} warningTooltip={warningTooltip} + withRépartition={withRépartition} mobileVersion={true} /> ))} @@ -223,6 +228,7 @@ export default function RéductionMoisParMois({ data={quarters[label]} codeRéduction={codeRéduction} codeRégularisation={codeRégularisation} + withRépartition={withRépartition} mobileVersion={true} /> ))} diff --git a/site/source/pages/simulateurs/lodeom/Goals.tsx b/site/source/pages/simulateurs/lodeom/Goals.tsx index 9e52112ab..1d685cbe5 100644 --- a/site/source/pages/simulateurs/lodeom/Goals.tsx +++ b/site/source/pages/simulateurs/lodeom/Goals.tsx @@ -7,6 +7,7 @@ import RéductionMoisParMois from '@/components/RéductionDeCotisations/Réducti import { SimulationGoals } from '@/components/Simulation' import { useEngine } from '@/components/utils/EngineContext' import useYear from '@/components/utils/useYear' +import { useZoneLodeom } from '@/hooks/useZoneLodeom' import { situationSelector } from '@/store/selectors/simulationSelectors' import { getDataAfterOptionsChange, @@ -40,6 +41,7 @@ export default function LodeomSimulationGoals({ const year = useYear() const situation = useSelector(situationSelector) as SituationType const previousSituation = useRef(situation) + const currentZone = useZoneLodeom() const { t } = useTranslation() const codeRéduction = engine.evaluate( @@ -133,6 +135,7 @@ export default function LodeomSimulationGoals({ code: codeRégularisation, }) } + withRépartition={currentZone === 'zone un'} /> ) : ( } warningCondition={`${lodeomDottedName} = 0`} warningMessage={} + withRépartition={currentZone === 'zone un'} /> )}