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> 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> 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', + })} /> ) : (