diff --git a/modele-social/règles/salarié/cotisations.publicodes b/modele-social/règles/salarié/cotisations.publicodes
index f9b83f61f..2127c2a6f 100644
--- a/modele-social/règles/salarié/cotisations.publicodes
+++ b/modele-social/règles/salarié/cotisations.publicodes
@@ -586,6 +586,36 @@ salarié . cotisations . exonérations . lodeom . montant:
- lodeom . montant
- chômage . employeur . taux / T
+salarié . cotisations . exonérations . lodeom . code réduction:
+ variations:
+ - si: zone un . barème compétitivité
+ alors: '462'
+ - si: zone un . barème compétitivité renforcée
+ alors: '463'
+ - si: zone un . barème innovation et croissance
+ alors: '473'
+ - si: zone deux . barème moins de 11 salariés
+ alors: '687'
+ - si: zone deux . barème sectoriel
+ alors: '686'
+ - si: zone deux . barème compétitivité
+ alors: '688'
+ description: |
+ Code type de personnel (CTP) à utiliser dans votre déclaration sociale nominative (DSN)
+ pour déclarer l’exonération.
+
+salarié . cotisations . exonérations . lodeom . code régularisation:
+ variations:
+ - si: zone un . barème compétitivité
+ alors: '684'
+ - si: zone un . barème compétitivité renforcée
+ alors: '538'
+ - si: zone un . barème innovation et croissance
+ alors: '685'
+ description: |
+ Code type de personnel (CTP) à utiliser dans votre déclaration sociale nominative (DSN)
+ pour régulariser l’exonération.
+
salarié . cotisations . exonérations . JEI:
question:
variations:
diff --git a/site/cypress/integration/mon-entreprise/lodeom.ts b/site/cypress/integration/mon-entreprise/lodeom.ts
index 9fecbd296..0689adba2 100755
--- a/site/cypress/integration/mon-entreprise/lodeom.ts
+++ b/site/cypress/integration/mon-entreprise/lodeom.ts
@@ -256,6 +256,23 @@ describe('Simulateur lodeom', { testIsolation: false }, function () {
)
})
+ it('should display code in recap table based on scale', function () {
+ cy.contains('Récapitulatif trimestriel').next().as('recapTable')
+
+ cy.get('@recapTable').should('include.text', 'code 462')
+ cy.get('@recapTable').should('include.text', 'code 684')
+
+ cy.contains('Barème de compétitivité renforcée').click()
+
+ cy.get('@recapTable').should('include.text', 'code 463')
+ cy.get('@recapTable').should('include.text', 'code 538')
+
+ cy.contains("Barème d'innovation et croissance").click()
+
+ cy.get('@recapTable').should('include.text', 'code 473')
+ cy.get('@recapTable').should('include.text', 'code 685')
+ })
+
it('should be RGAA compliant', function () {
cy.contains('Exonération mensuelle').click()
checkA11Y()
diff --git a/site/source/locales/rules-en.yaml b/site/source/locales/rules-en.yaml
index 94c155bd6..8bc8fa6ea 100644
--- a/site/source/locales/rules-en.yaml
+++ b/site/source/locales/rules-en.yaml
@@ -9372,6 +9372,32 @@ salarié . cotisations . exonérations . lodeom:
Pour un autre salaire plus élevé, 0% de réduction. Entre les deux, on trace une ligne droite.
titre.en: '[automatic] lodeom'
titre.fr: lodeom
+salarié . cotisations . exonérations . lodeom . code réduction:
+ description.en: >
+ [automatic] Code type de personnel (CTP) to be used in your déclaration
+ sociale nominative (DSN)
+
+ to declare the exemption.
+ description.fr: >
+ Code type de personnel (CTP) à utiliser dans votre déclaration sociale
+ nominative (DSN)
+
+ pour déclarer l’exonération.
+ titre.en: '[automatic] discount code'
+ titre.fr: code réduction
+salarié . cotisations . exonérations . lodeom . code régularisation:
+ description.en: >
+ [automatic] Code type de personnel (CTP) to be used in your déclaration
+ sociale nominative (DSN)
+
+ to regularize the exemption.
+ description.fr: >
+ Code type de personnel (CTP) à utiliser dans votre déclaration sociale
+ nominative (DSN)
+
+ pour régulariser l’exonération.
+ titre.en: '[automatic] regularization code'
+ titre.fr: code régularisation
salarié . cotisations . exonérations . lodeom . montant:
avec:
coefficient:
diff --git a/site/source/locales/ui-en.yaml b/site/source/locales/ui-en.yaml
index 1cb1c5c9f..7e90baa57 100644
--- a/site/source/locales/ui-en.yaml
+++ b/site/source/locales/ui-en.yaml
@@ -517,6 +517,7 @@ choix-statut:
chomagePartiel:
tableCaption: Table showing net salary and cost to the employer with or without
short-time working.
+code {{ code }}: code {{ code }}
codeApe:
catégorie-guichet: <0>Guichet unique categories<1>1>0>
common:
@@ -1454,10 +1455,6 @@ pages:
title: Lodeom exemption
month-by-month:
caption: "Lodeom exemption month by month :"
- recap:
- code:
- "462": code 462(€)
- "684": code 684(€)
shortname: Lodeom exemption
tab:
month: Monthly exemption
@@ -1553,9 +1550,6 @@ pages:
T3: 3rd quarter
T4: 4th quarter
caption: "Quarterly summary :"
- code:
- "671": code 671(€)
- "801": code 801(€)
header-réduction: Calculated reduction
header-régularisation: Calculated regularization
régularisation:
diff --git a/site/source/locales/ui-fr.yaml b/site/source/locales/ui-fr.yaml
index 12a829c6e..6586f80db 100644
--- a/site/source/locales/ui-fr.yaml
+++ b/site/source/locales/ui-fr.yaml
@@ -544,6 +544,7 @@ choix-statut:
chomagePartiel:
tableCaption: Tableau indiquant le salaire net et le coût pour l'employeur avec
ou sans chômage partiel.
+code {{ code }}: code {{ code }}
codeApe:
catégorie-guichet: <0>Catégories du Guichet unique<1>1>0>
common:
@@ -1547,10 +1548,6 @@ pages:
title: Éxonération Lodeom
month-by-month:
caption: "Exonération Lodeom mois par mois :"
- recap:
- code:
- "462": code 462(€)
- "684": code 684(€)
shortname: Éxonération Lodeom
tab:
month: Exonération mensuelle
@@ -1650,9 +1647,6 @@ pages:
T3: 3ème trimestre
T4: 4ème trimestre
caption: "Récapitulatif trimestriel :"
- code:
- "671": code 671(€)
- "801": code 801(€)
header-réduction: Réduction calculée
header-régularisation: Régularisation calculée
régularisation:
diff --git a/site/source/pages/simulateurs/lodeom/Goals.tsx b/site/source/pages/simulateurs/lodeom/Goals.tsx
index 779f67cf9..9e52112ab 100644
--- a/site/source/pages/simulateurs/lodeom/Goals.tsx
+++ b/site/source/pages/simulateurs/lodeom/Goals.tsx
@@ -42,6 +42,13 @@ export default function LodeomSimulationGoals({
const previousSituation = useRef(situation)
const { t } = useTranslation()
+ const codeRéduction = engine.evaluate(
+ 'salarié . cotisations . exonérations . lodeom . code réduction'
+ ).nodeValue as string
+ const codeRégularisation = engine.evaluate(
+ 'salarié . cotisations . exonérations . lodeom . code régularisation'
+ ).nodeValue as string
+
const initializeLodeomMoisParMoisData = useCallback(() => {
const data = getInitialRéductionMoisParMois(lodeomDottedName, year, engine)
setData(data)
@@ -114,14 +121,18 @@ export default function LodeomSimulationGoals({
warnings={}
warningCondition={`${lodeomDottedName} = 0`}
warningTooltip={}
- codeRéduction={t(
- 'pages.simulateurs.lodeom.recap.code.462',
- 'code 462(€)'
- )}
- codeRégularisation={t(
- 'pages.simulateurs.lodeom.recap.code.684',
- 'code 684(€)'
- )}
+ codeRéduction={
+ codeRéduction &&
+ t(`code {{ code }}`, {
+ code: codeRéduction,
+ })
+ }
+ codeRégularisation={
+ codeRégularisation &&
+ t(`code {{ code }}`, {
+ code: codeRégularisation,
+ })
+ }
/>
) : (
}
warningCondition={`${rémunérationBruteDottedName} > 1.6 * SMIC`}
warningTooltip={}
- codeRéduction={t(
- 'pages.simulateurs.réduction-générale.recap.code.671',
- 'code 671(€)'
- )}
- codeRégularisation={t(
- 'pages.simulateurs.réduction-générale.recap.code.801',
- 'code 801(€)'
- )}
+ codeRéduction={t(`code {{ code }}`, {
+ code: '671',
+ })}
+ codeRégularisation={t(`code {{ code }}`, {
+ code: '801',
+ })}
/>
) : (