Skip to content

Commit

Permalink
refactor: ajout des exceptions pour l'affichage des questions
Browse files Browse the repository at this point in the history
  • Loading branch information
liliced committed Feb 14, 2025
1 parent cc55dee commit c2deba2
Show file tree
Hide file tree
Showing 11 changed files with 76 additions and 59 deletions.
8 changes: 7 additions & 1 deletion site/source/components/Simulation/index.tsx
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import { DottedName } from 'modele-social'
import React from 'react'
import { useSelector } from 'react-redux'
import { useLocation } from 'react-router-dom'
Expand All @@ -10,6 +11,7 @@ import ShareOrSaveSimulationBanner, {
import { Button } from '@/design-system/buttons'
import { Grid, Spacing } from '@/design-system/layout'
import { H3 } from '@/design-system/typography/heading'
import { RootState } from '@/store/reducers/rootReducer'
import { ilYADesQuestionsSelector } from '@/store/selectors/ilYADesQuestions.selector'
import { firstStepCompletedSelector } from '@/store/selectors/simulationSelectors'

Expand Down Expand Up @@ -48,6 +50,7 @@ type SimulationProps = {
id?: string
customSimulationbutton?: CustomSimulationButton
entrepriseSelection?: boolean
firstStepCompletedExceptions?: DottedName[]
}

export default function Simulation({
Expand All @@ -62,8 +65,11 @@ export default function Simulation({
id,
customSimulationbutton,
entrepriseSelection = true,
firstStepCompletedExceptions,
}: SimulationProps) {
const firstStepCompleted = useSelector(firstStepCompletedSelector)
const firstStepCompleted = useSelector((state: RootState) =>
firstStepCompletedSelector(state, firstStepCompletedExceptions)
)
const ilYADesQuestions = useSelector(ilYADesQuestionsSelector)
const shouldShowFeedback = getShouldAskFeedback(useLocation().pathname)
const showQuestions = showQuestionsFromBeginning || firstStepCompleted
Expand Down
2 changes: 1 addition & 1 deletion site/source/hooks/useZoneLodeom.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { DottedName } from 'modele-social'

import { useEngine } from '@/components/utils/EngineContext'

const zones = ['zone un', 'zone deux']
export const zones = ['zone un', 'zone deux']

export type ZoneLodeom = (typeof zones)[number]

Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import { DottedName } from 'modele-social'
import { useTranslation } from 'react-i18next'
import { useSelector } from 'react-redux'

Expand Down Expand Up @@ -31,8 +32,14 @@ export const CessationActivitéSimulation = () => {

const { t } = useTranslation()

const firstStepCompletedExceptions = [
'entreprise . date de cessation' as DottedName,
'entreprise . imposition' as DottedName,
]

return (
<Simulation
firstStepCompletedExceptions={firstStepCompletedExceptions}
customSimulationbutton={{
href: lien,
title: t('Vos cotisations pour l’année précédente'),
Expand Down
5 changes: 5 additions & 0 deletions site/source/pages/simulateurs/dividendes/Dividendes.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,15 @@ import { Body } from '@/design-system/typography/paragraphs'
import { enregistreLaRéponse } from '@/store/actions/actions'

export default function DividendesSimulation() {
const firstStepCompletedExceptions = [
'impôt . méthode de calcul' as DottedName,
]

return (
<>
<Notifications />
<Simulation
firstStepCompletedExceptions={firstStepCompletedExceptions}
explanations={<DividendesExplanation />}
afterQuestionsSlot={<YearSelectionBanner />}
>
Expand Down
3 changes: 3 additions & 0 deletions site/source/pages/simulateurs/indépendant/Indépendant.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,12 @@ export default function IndépendantSimulation() {
const dispatch = useDispatch()
const year = useYear()

const firstStepCompletedExceptions = ['entreprise . imposition' as DottedName]

return (
<>
<Simulation
firstStepCompletedExceptions={firstStepCompletedExceptions}
explanations={<IndépendantExplanation />}
afterQuestionsSlot={<YearSelectionBanner />}
>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
import { SimulationConfig } from '@/domaine/SimulationConfig'

export const configLocationDeMeublé: SimulationConfig = {
'objectifs exclusifs': [
'location de logement meublé . courte durée . recettes',
],
objectifs: ['location de logement meublé . cotisations'],
'unité par défaut': '€/an',
situation: {},
Expand Down
19 changes: 17 additions & 2 deletions site/source/pages/simulateurs/lodeom/Lodeom.tsx
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import { DottedName } from 'modele-social'
import { useState } from 'react'
import { Trans, useTranslation } from 'react-i18next'

Expand All @@ -9,7 +10,12 @@ import Simulation from '@/components/Simulation'
import { YearSelectionBanner } from '@/components/Simulation/YearSelectionBanner'
import { Emoji } from '@/design-system/emoji'
import { Body } from '@/design-system/typography/paragraphs'
import { useZoneLodeom } from '@/hooks/useZoneLodeom'
import { barèmeLodeomDottedName } from '@/hooks/useBarèmeLodeom'
import {
useZoneLodeom,
zones,
zonesLodeomDottedName,
} from '@/hooks/useZoneLodeom'
import { RégularisationMethod } from '@/utils/réductionDeCotisations'

import BarèmeSwitch from './components/BarèmeSwitch'
Expand Down Expand Up @@ -40,9 +46,18 @@ export default function LodeomSimulation() {
const [régularisationMethod, setRégularisationMethod] =
useState<RégularisationMethod>('progressive')

const firstStepCompletedExceptions = [
zonesLodeomDottedName,
...zones.map((zone) => barèmeLodeomDottedName(zone)),
'entreprise . salariés . effectif' as DottedName,
]

return (
<>
<Simulation afterQuestionsSlot={<YearSelectionBanner />}>
<Simulation
firstStepCompletedExceptions={firstStepCompletedExceptions}
afterQuestionsSlot={<YearSelectionBanner />}
>
<SimulateurWarning
simulateur="lodeom"
informationsComplémentaires={
Expand Down
3 changes: 0 additions & 3 deletions site/source/pages/simulateurs/lodeom/simulationConfig.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
import { SimulationConfig } from '@/domaine/SimulationConfig'

export const configRéductionGénérale: SimulationConfig = {
// TODO: remplacer 'salarié . cotisations . assiette' par 'salarié . rémunération . brut'
// lorsque cette dernière n'incluera plus les frais professionnels.
'objectifs exclusifs': ['salarié . cotisations . assiette'],
objectifs: ['salarié . cotisations . exonérations . lodeom . montant'],
questions: {
"à l'affiche": [
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import { DottedName } from 'modele-social'
import { useState } from 'react'
import { Trans, useTranslation } from 'react-i18next'

Expand All @@ -9,7 +10,10 @@ import Simulation from '@/components/Simulation'
import { YearSelectionBanner } from '@/components/Simulation/YearSelectionBanner'
import { Strong } from '@/design-system/typography'
import { Body } from '@/design-system/typography/paragraphs'
import { RégularisationMethod } from '@/utils/réductionDeCotisations'
import {
réductionGénéraleDottedName,
RégularisationMethod,
} from '@/utils/réductionDeCotisations'

import CongésPayésSwitch from './components/CongésPayésSwitch'
import RéductionGénéraleSimulationGoals from './Goals'
Expand Down Expand Up @@ -43,9 +47,17 @@ export default function RéductionGénéraleSimulation() {
const [régularisationMethod, setRégularisationMethod] =
useState<RégularisationMethod>('progressive')

const firstStepCompletedExceptions = [
'entreprise . salariés . effectif' as DottedName,
`${réductionGénéraleDottedName} . caisse de congés payés` as DottedName,
]

return (
<>
<Simulation afterQuestionsSlot={<YearSelectionBanner />}>
<Simulation
firstStepCompletedExceptions={firstStepCompletedExceptions}
afterQuestionsSlot={<YearSelectionBanner />}
>
<SimulateurWarning
simulateur="réduction-générale"
informationsComplémentaires={
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
import { SimulationConfig } from '@/domaine/SimulationConfig'

export const configRéductionGénérale: SimulationConfig = {
// TODO: remplacer 'salarié . cotisations . assiette' par 'salarié . rémunération . brut'
// lorsque cette dernière n'incluera plus les frais professionnels.
'objectifs exclusifs': ['salarié . cotisations . assiette'],
objectifs: ['salarié . cotisations . exonérations . réduction générale'],
questions: {
"à l'affiche": [
Expand Down
Original file line number Diff line number Diff line change
@@ -1,176 +1,154 @@
// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html

exports[`calculate simulations-dividendes > DFS 1`] = `
"salarié . cotisations . assiette: 1802
salarié . cotisations . exonérations . réduction générale: 575
"salarié . cotisations . exonérations . réduction générale: 575
salarié . cotisations . exonérations . réduction générale . imputation chômage: 73
salarié . cotisations . exonérations . réduction générale . imputation retraite complémentaire: 108
salarié . cotisations . exonérations . réduction générale . imputation sécurité sociale: 467"
`;

exports[`calculate simulations-dividendes > DFS 2`] = `
"salarié . cotisations . assiette: 1802
salarié . cotisations . exonérations . réduction générale: 575
"salarié . cotisations . exonérations . réduction générale: 575
salarié . cotisations . exonérations . réduction générale . imputation chômage: 73
salarié . cotisations . exonérations . réduction générale . imputation retraite complémentaire: 108
salarié . cotisations . exonérations . réduction générale . imputation sécurité sociale: 467"
`;

exports[`calculate simulations-dividendes > DFS 3`] = `
"salarié . cotisations . assiette: 1802
salarié . cotisations . exonérations . réduction générale: 575
"salarié . cotisations . exonérations . réduction générale: 575
salarié . cotisations . exonérations . réduction générale . imputation chômage: 73
salarié . cotisations . exonérations . réduction générale . imputation retraite complémentaire: 108
salarié . cotisations . exonérations . réduction générale . imputation sécurité sociale: 467"
`;

exports[`calculate simulations-dividendes > DFS 4`] = `
"salarié . cotisations . assiette: 1802
salarié . cotisations . exonérations . réduction générale: 575
"salarié . cotisations . exonérations . réduction générale: 575
salarié . cotisations . exonérations . réduction générale . imputation chômage: 73
salarié . cotisations . exonérations . réduction générale . imputation retraite complémentaire: 108
salarié . cotisations . exonérations . réduction générale . imputation sécurité sociale: 467"
`;

exports[`calculate simulations-dividendes > DFS 5`] = `
"salarié . cotisations . assiette: 1802
salarié . cotisations . exonérations . réduction générale: 575
"salarié . cotisations . exonérations . réduction générale: 575
salarié . cotisations . exonérations . réduction générale . imputation chômage: 73
salarié . cotisations . exonérations . réduction générale . imputation retraite complémentaire: 108
salarié . cotisations . exonérations . réduction générale . imputation sécurité sociale: 467"
`;

exports[`calculate simulations-dividendes > JEI 1`] = `
"salarié . cotisations . assiette: 1900
salarié . cotisations . exonérations . réduction générale: null
"salarié . cotisations . exonérations . réduction générale: null
salarié . cotisations . exonérations . réduction générale . imputation chômage: null
salarié . cotisations . exonérations . réduction générale . imputation retraite complémentaire: null
salarié . cotisations . exonérations . réduction générale . imputation sécurité sociale: null"
`;

exports[`calculate simulations-dividendes > effectif 1`] = `
"salarié . cotisations . assiette: 1900
salarié . cotisations . exonérations . réduction générale: 523
"salarié . cotisations . exonérations . réduction générale: 523
salarié . cotisations . exonérations . réduction générale . imputation chômage: 66
salarié . cotisations . exonérations . réduction générale . imputation retraite complémentaire: 98
salarié . cotisations . exonérations . réduction générale . imputation sécurité sociale: 425"
`;

exports[`calculate simulations-dividendes > effectif 2`] = `
"salarié . cotisations . assiette: 1900
salarié . cotisations . exonérations . réduction générale: 530
"salarié . cotisations . exonérations . réduction générale: 530
salarié . cotisations . exonérations . réduction générale . imputation chômage: 66
salarié . cotisations . exonérations . réduction générale . imputation retraite complémentaire: 98
salarié . cotisations . exonérations . réduction générale . imputation sécurité sociale: 431"
`;

exports[`calculate simulations-dividendes > heures complémentaires 1`] = `
"salarié . cotisations . assiette: 1900
salarié . cotisations . exonérations . réduction générale: 483
"salarié . cotisations . exonérations . réduction générale: 483
salarié . cotisations . exonérations . réduction générale . imputation chômage: 61
salarié . cotisations . exonérations . réduction générale . imputation retraite complémentaire: 91
salarié . cotisations . exonérations . réduction générale . imputation sécurité sociale: 392"
`;

exports[`calculate simulations-dividendes > heures supplémentaires 1`] = `
"salarié . cotisations . assiette: 1900
salarié . cotisations . exonérations . réduction générale: 607
"salarié . cotisations . exonérations . réduction générale: 607
salarié . cotisations . exonérations . réduction générale . imputation chômage: 77
salarié . cotisations . exonérations . réduction générale . imputation retraite complémentaire: 114
salarié . cotisations . exonérations . réduction générale . imputation sécurité sociale: 493"
`;

exports[`calculate simulations-dividendes > salaire 1`] = `
"salarié . cotisations . assiette: 100
salarié . cotisations . exonérations . réduction générale: 32
"salarié . cotisations . exonérations . réduction générale: 32
salarié . cotisations . exonérations . réduction générale . imputation chômage: 4
salarié . cotisations . exonérations . réduction générale . imputation retraite complémentaire: 6
salarié . cotisations . exonérations . réduction générale . imputation sécurité sociale: 26"
`;

exports[`calculate simulations-dividendes > salaire 2`] = `
"salarié . cotisations . assiette: 250
salarié . cotisations . exonérations . réduction générale: 80
"salarié . cotisations . exonérations . réduction générale: 80
salarié . cotisations . exonérations . réduction générale . imputation chômage: 10
salarié . cotisations . exonérations . réduction générale . imputation retraite complémentaire: 15
salarié . cotisations . exonérations . réduction générale . imputation sécurité sociale: 65"
`;

exports[`calculate simulations-dividendes > salaire 3`] = `
"salarié . cotisations . assiette: 500
salarié . cotisations . exonérations . réduction générale: 160
"salarié . cotisations . exonérations . réduction générale: 160
salarié . cotisations . exonérations . réduction générale . imputation chômage: 20
salarié . cotisations . exonérations . réduction générale . imputation retraite complémentaire: 30
salarié . cotisations . exonérations . réduction générale . imputation sécurité sociale: 130"
`;

exports[`calculate simulations-dividendes > salaire 4`] = `
"salarié . cotisations . assiette: 750
salarié . cotisations . exonérations . réduction générale: 240
"salarié . cotisations . exonérations . réduction générale: 240
salarié . cotisations . exonérations . réduction générale . imputation chômage: 30
salarié . cotisations . exonérations . réduction générale . imputation retraite complémentaire: 45
salarié . cotisations . exonérations . réduction générale . imputation sécurité sociale: 194"
`;

exports[`calculate simulations-dividendes > salaire 5`] = `
"salarié . cotisations . assiette: 1000
salarié . cotisations . exonérations . réduction générale: 319
"salarié . cotisations . exonérations . réduction générale: 319
salarié . cotisations . exonérations . réduction générale . imputation chômage: 41
salarié . cotisations . exonérations . réduction générale . imputation retraite complémentaire: 60
salarié . cotisations . exonérations . réduction générale . imputation sécurité sociale: 259"
`;

exports[`calculate simulations-dividendes > salaire 6`] = `
"salarié . cotisations . assiette: 1250
salarié . cotisations . exonérations . réduction générale: 399
"salarié . cotisations . exonérations . réduction générale: 399
salarié . cotisations . exonérations . réduction générale . imputation chômage: 51
salarié . cotisations . exonérations . réduction générale . imputation retraite complémentaire: 75
salarié . cotisations . exonérations . réduction générale . imputation sécurité sociale: 324"
`;

exports[`calculate simulations-dividendes > salaire 7`] = `
"salarié . cotisations . assiette: 1500
salarié . cotisations . exonérations . réduction générale: 479
"salarié . cotisations . exonérations . réduction générale: 479
salarié . cotisations . exonérations . réduction générale . imputation chômage: 61
salarié . cotisations . exonérations . réduction générale . imputation retraite complémentaire: 90
salarié . cotisations . exonérations . réduction générale . imputation sécurité sociale: 389"
`;

exports[`calculate simulations-dividendes > salaire 8`] = `
"salarié . cotisations . assiette: 2000
salarié . cotisations . exonérations . réduction générale: 470
"salarié . cotisations . exonérations . réduction générale: 470
salarié . cotisations . exonérations . réduction générale . imputation chômage: 60
salarié . cotisations . exonérations . réduction générale . imputation retraite complémentaire: 88
salarié . cotisations . exonérations . réduction générale . imputation sécurité sociale: 382"
`;

exports[`calculate simulations-dividendes > salaire 9`] = `
"salarié . cotisations . assiette: 2500
salarié . cotisations . exonérations . réduction générale: 204
"salarié . cotisations . exonérations . réduction générale: 204
salarié . cotisations . exonérations . réduction générale . imputation chômage: 26
salarié . cotisations . exonérations . réduction générale . imputation retraite complémentaire: 38
salarié . cotisations . exonérations . réduction générale . imputation sécurité sociale: 165"
`;

exports[`calculate simulations-dividendes > salaire 10`] = `
"salarié . cotisations . assiette: 3000
salarié . cotisations . exonérations . réduction générale: 0
"salarié . cotisations . exonérations . réduction générale: 0
salarié . cotisations . exonérations . réduction générale . imputation chômage: 0
salarié . cotisations . exonérations . réduction générale . imputation retraite complémentaire: 0
salarié . cotisations . exonérations . réduction générale . imputation sécurité sociale: 0"
`;

exports[`calculate simulations-dividendes > stage 1`] = `
"salarié . cotisations . assiette: 1900
salarié . cotisations . exonérations . réduction générale: 523
"salarié . cotisations . exonérations . réduction générale: 523
salarié . cotisations . exonérations . réduction générale . imputation chômage: 66
salarié . cotisations . exonérations . réduction générale . imputation retraite complémentaire: 98
salarié . cotisations . exonérations . réduction générale . imputation sécurité sociale: 425"
`;

exports[`calculate simulations-dividendes > temps partiel 1`] = `
"salarié . cotisations . assiette: 1900
salarié . cotisations . exonérations . réduction générale: 392
"salarié . cotisations . exonérations . réduction générale: 392
salarié . cotisations . exonérations . réduction générale . imputation chômage: 50
salarié . cotisations . exonérations . réduction générale . imputation retraite complémentaire: 74
salarié . cotisations . exonérations . réduction générale . imputation sécurité sociale: 318"
Expand Down

0 comments on commit c2deba2

Please sign in to comment.