diff --git "a/modele-social/r\303\250gles/salari\303\251/cotisations.publicodes" "b/modele-social/r\303\250gles/salari\303\251/cotisations.publicodes" index a37f93c1ea..ba7c760609 100644 --- "a/modele-social/r\303\250gles/salari\303\251/cotisations.publicodes" +++ "b/modele-social/r\303\250gles/salari\303\251/cotisations.publicodes" @@ -309,9 +309,9 @@ salarié . cotisations . exonérations . lodeom . zone un: - barème compétitivité renforcée - barème innovation et croissance une de ces conditions: + - barèmes . barème compétitivité - entreprise . salariés . effectif < 11 - secteurs d'activité éligibles - - barèmes . barème compétitivité description: | Le barème de compétitivité est applicable : - aux employeurs de moins de 11 salariés ; @@ -411,10 +411,113 @@ salarié . cotisations . exonérations . lodeom . zone deux: Fiche Urssaf: https://www.urssaf.fr/accueil/employeur/beneficier-exonerations/exonerations-zonees/exoneration-lodeom.html#ancre-calcul-declaration-a-saint-barth avec: + # Impossible (ou trop compliqué) avec Publicodes de gérer dans la même règle : + # - une valeur calculée par l'engine (avec applicabilité et formule) + # - une valeur choisie par l'usager (depuis une QCM) + # On répète donc les barèmes afin de pouvoir dans certains cas demander à l'usager + # de choisir directement son barème (ex: simulateur Lodéom), et dans d'autres, de + # déduire le barème à partir d'autres paramètres (effectif, secteur éligible...) + # (ex: simulateur salarié) + # /!\ Attention /!\ Penser à modifier les titres, descriptions et références dans + # les 2 règles à chaque évolution + barèmes: + question: Quel barème souhaitez-vous appliquer ? + formule: + une possibilité: + choix obligatoire: oui + possibilités: + - barème moins de 11 salariés + - barème sectoriel + - barème renforcé + avec: + barème moins de 11 salariés: + valeur: barèmes = 'barème moins de 11 salariés' + titre: Barème pour les employeurs de moins de 11 salariés + description: | + L’exonération est applicable aux employeurs occupant moins de 11 salariés. + + Par ailleurs, peuvent également être éligibles à cette exonération les employeurs qui, bien que remplissant + les conditions pour bénéficier du barème sectoriel sans critère d’effectif, choisissent d’opter pour + cette exonération, plus favorable, car elles ont moins de 11 salariés. + références: + Fiche Urssaf: https://www.urssaf.fr/accueil/employeur/beneficier-exonerations/exonerations-zonees/exoneration-lodeom.html#ancre-calcul-declaration-a-saint-barth + Champ d'application du barème réservé aux employeurs de moins de 11 salariés: https://boss.gouv.fr/portail/accueil/exonerations/exonerations-zonees.html#1520 + + barème sectoriel: + valeur: barèmes = 'barème sectoriel' + titre: Barème d'exonération sectorielle + description: | + L’exonération est applicable aux employeurs, quel que soit leur effectif, relevant d’un des secteurs d’activité + éligibles au dispositif d’exonération « Lodeom » : + - 🔬 recherche et développement ; + - 📷 tourisme, y compris les activités de loisirs s’y rapportant ; + - 🛏️ hôtellerie ; + - 🌱 agronutrition ; + - 🌳 environnement ; + - 🔋 énergies renouvelables ; + - 🚜 agriculture (y compris les coopératives agricoles et sociétés d’intérêt collectif agricoles + et leurs unions ainsi que les coopératives maritimes et leurs unions) ; + - 🎣 pêche, cultures marines et aquaculture ; + - 🏗 bâtiment et travaux publics + - 🍴 restauration ; + - 📰 presse ; + - 🎥 production audiovisuelle. + - ⛵ transport fluvial ou maritime pour les employeurs assurant : + - la desserte maritime ou fluviale de plusieurs points de la Guadeloupe, de la Guyane, de la Martinique, de La Réunion, de Saint-Barthélemy ou de Saint-Martin ; + - la liaison entre les ports de ces départements ou collectivités ; + - la liaison entre les ports de la Réunion et de Mayotte. + - ✈️ transport aérien pour les employeurs assurant : + - la liaison entre la métropole et la Guadeloupe, la Guyane, la Martinique, La Réunion, Saint-Martin, Saint-Barthélemy ; + - la liaison entre ces départements ou collectivités et entre la Réunion et Mayotte ; + - la desserte intérieure de ces départements ou collectivités. + références: + Fiche Urssaf: https://www.urssaf.fr/accueil/employeur/beneficier-exonerations/exonerations-zonees/exoneration-lodeom.html#ancre-calcul-declaration-a-saint-barth + Champ d'application du barème réservé aux employeurs de moins de 11 salariés: https://boss.gouv.fr/portail/accueil/exonerations/exonerations-zonees.html#1540 + + barème renforcé: + valeur: barèmes = 'barème renforcé' + titre: Barème d'exonération renforcée + description: | + Pour bénéficier du barème d'exonération renforcée, les employeurs doivent : + - employer moins de 250 salariés, + - réaliser un chiffre d’affaires annuel inférieur à 50 millions d’euros + - et, pour ceux installés à Saint-Martin, être soumis de plein droit ou sur option à + un régime réel d’imposition. + + Par ailleurs, l'employeur doit remplir au moins l’une des conditions suivantes : + - soit relever de l’un des secteurs d’activité éligibles à la réduction d’impôt sur le revenu ouverte aux + contribuables domiciliés en France qui ont réalisés des investissements productifs neufs en outre-mer + (prévue à l’article 199 undecies B du code général des impôts) ; + - soit exercer une des activités suivantes : + - comptabilité ; + - conseil aux entreprises ; + - ingénierie ou études techniques à destination des entreprises ; + - recherche et développement + - technologies de l’information et de la communication. + + L'employeur doit également remplir au moins l’une des conditions suivantes : + - soit relever d'un des secteurs suivants : + - 🔬 recherche et développement ; + - 🖥️ technologies de l’information et de la communication ; + - 📷 tourisme, y compris les activités de loisirs s’y rapportant ; + - 🌱 agronutrition ; + - 🌳 environnement ; + - 🔋 énergies renouvelables ; + - soit bénéficier du régime de « perfectionnement actif ». + références: + Fiche Urssaf: https://www.urssaf.fr/accueil/employeur/beneficier-exonerations/exonerations-zonees/exoneration-lodeom.html#ancre-calcul-declaration-a-saint-barth + Champ d'application du barème réservé aux employeurs de moins de 11 salariés: https://boss.gouv.fr/portail/accueil/exonerations/exonerations-zonees.html#1560 + barème moins de 11 salariés: titre: Barème pour les employeurs de moins de 11 salariés - formule: entreprise . salariés . effectif < 11 - non applicable si: barème compétitivité + formule: + une de ces conditions: + - barèmes . barème moins de 11 salariés + - entreprise . salariés . effectif < 11 + non applicable si: + une de ces conditions: + - barème sectoriel + - barème compétitivité description: | L’exonération est applicable aux employeurs occupant moins de 11 salariés. @@ -427,11 +530,14 @@ salarié . cotisations . exonérations . lodeom . zone deux: barème sectoriel: titre: Barème d'exonération sectorielle + non applicable si: barème compétitivité formule: - toutes ces conditions: - - barème moins de 11 salariés = non - - barème compétitivité = non - - secteurs d'activité éligibles = oui + une de ces conditions: + - barèmes . barème sectoriel + - toutes ces conditions: + - barème moins de 11 salariés = non + - barème compétitivité = non + - secteurs d'activité éligibles = oui description: | L’exonération est applicable aux employeurs, quel que soit leur effectif, relevant d’un des secteurs d’activité éligibles au dispositif d’exonération « Lodeom » : @@ -465,6 +571,7 @@ salarié . cotisations . exonérations . lodeom . zone deux: applicable si: entreprise . salariés . effectif < 250 question: Êtes-vous éligible au barème d'exonération renforcée ? par défaut: non + formule: barèmes . barème renforcé description: | Pour bénéficier du barème d'exonération renforcée, les employeurs doivent : - employer moins de 250 salariés, diff --git a/site/cypress/integration/mon-entreprise/lodeom.ts b/site/cypress/integration/mon-entreprise/lodeom.ts index 0689adba2a..539e9e340c 100755 --- a/site/cypress/integration/mon-entreprise/lodeom.ts +++ b/site/cypress/integration/mon-entreprise/lodeom.ts @@ -16,6 +16,7 @@ describe('Simulateur lodeom', { testIsolation: false }, function () { }) it('should allow to change time period', function () { + cy.contains('Guadeloupe, Guyane, Martinique, La Réunion').click() cy.contains('Barème de compétitivité').click() cy.contains('Exonération annuelle').click() cy.get(inputSelector).first().type('{selectall}42000') @@ -78,7 +79,41 @@ describe('Simulateur lodeom', { testIsolation: false }, function () { ).should('include.text', '978,25 €') }) + it('should allow to select a zone', function () { + cy.contains('Saint-Barthélémy, Saint-Martin').click() + cy.get( + '#salarié___cotisations___exonérations___lodeom___zone_deux___barèmes' + ) + .contains('Barème pour les employeurs de moins de 11 salariés') + .click() + + cy.get( + 'p[id="salarié___cotisations___exonérations___lodeom___montant-value"]' + ).should('include.text', '530,25 €') + + cy.get( + '#salarié___cotisations___exonérations___lodeom___zone_deux___barèmes' + ) + .contains("Barème d'exonération sectorielle") + .click() + + cy.get( + 'p[id="salarié___cotisations___exonérations___lodeom___montant-value"]' + ).should('include.text', '350,35 €') + + cy.get( + '#salarié___cotisations___exonérations___lodeom___zone_deux___barèmes' + ) + .contains("Barème d'exonération renforcée") + .click() + + cy.get( + 'p[id="salarié___cotisations___exonérations___lodeom___montant-value"]' + ).should('include.text', '644 €') + }) + it('should display a custom warning for a remuneration too high', function () { + cy.contains('Guadeloupe, Guyane, Martinique, La Réunion').click() cy.get(inputSelector).first().type('{selectall}6500') cy.get('div[id="simulator-legend"]').should( @@ -271,6 +306,18 @@ describe('Simulateur lodeom', { testIsolation: false }, function () { cy.get('@recapTable').should('include.text', 'code 473') cy.get('@recapTable').should('include.text', 'code 685') + + cy.contains('Saint-Barthélémy, Saint-Martin').click() + + cy.get('@recapTable').should('include.text', 'code 688') + + cy.contains("Barème d'exonération sectorielle").click() + + cy.get('@recapTable').should('include.text', 'code 686') + + cy.contains('Barème pour les employeurs de moins de 11 salariés').click() + + cy.get('@recapTable').should('include.text', 'code 687') }) it('should be RGAA compliant', function () { diff --git a/site/source/hooks/useZoneLodeom.ts b/site/source/hooks/useZoneLodeom.ts new file mode 100644 index 0000000000..1487a5e82e --- /dev/null +++ b/site/source/hooks/useZoneLodeom.ts @@ -0,0 +1,38 @@ +import { useDispatch } from 'react-redux' + +import { useEngine } from '@/components/utils/EngineContext' +import { toOuiNon } from '@/domaine/engine/toOuiNon' +import { batchUpdateSituation } from '@/store/actions/actions' + +const zones = ['zone un', 'zone deux'] + +export type ZoneLodeom = (typeof zones)[number] + +type ReturnType = { + currentZone?: ZoneLodeom + updateZone: (zone: ZoneLodeom) => void +} + +export const useZoneLodeom = (): ReturnType => { + const engine = useEngine() + const dispatch = useDispatch() + const dottedName = 'salarié . cotisations . exonérations . lodeom' + + const currentZone = zones.find((zone) => { + const zoneValue = engine.evaluate(`${dottedName} . ${zone}`).nodeValue + + return !!zoneValue + }) + + const updateZone = (newZone: ZoneLodeom): void => { + const newSituation = zones.reduce((situation, zone) => { + return { + ...situation, + [`${dottedName} . ${zone}`]: toOuiNon(zone === newZone), + } + }, {}) + dispatch(batchUpdateSituation(newSituation)) + } + + return { currentZone, updateZone } +} diff --git a/site/source/locales/rules-en.yaml b/site/source/locales/rules-en.yaml index 190bf1eb5e..017e42de9e 100644 --- a/site/source/locales/rules-en.yaml +++ b/site/source/locales/rules-en.yaml @@ -9693,6 +9693,197 @@ salarié . cotisations . exonérations . lodeom . zone deux: - la desserte intérieure de ces départements ou collectivités. titre.en: '[automatic] Sector exemption scale' titre.fr: Barème d'exonération sectorielle + barèmes: + avec: + barème moins de 11 salariés: + description.en: > + [automatic] The exemption applies to employers with fewer + than 11 employees. + + + In addition, employers may also be eligible for this exemption if, although they meet the conditions + + the conditions to benefit from the sectoral scale without headcount criteria, choose to opt for this + + this more favorable exemption, because they have fewer than 11 employees. + description.fr: > + L’exonération est applicable aux employeurs occupant moins + de 11 salariés. + + + Par ailleurs, peuvent également être éligibles à cette exonération les employeurs qui, bien que remplissant + + les conditions pour bénéficier du barème sectoriel sans critère d’effectif, choisissent d’opter pour + + cette exonération, plus favorable, car elles ont moins de 11 salariés. + titre.en: '[automatic] Scale for employers with fewer than 11 employees' + titre.fr: Barème pour les employeurs de moins de 11 salariés + barème renforcé: + description.en: > + [automatic] To qualify for the enhanced exemption scale, employers + must : + + - have fewer than 250 employees, + + - have annual sales of less than €50 million + + - and, in the case of employers based in Saint-Martin, be subject to an automatic or optional + + a real tax regime. + + + In addition, the employer must meet at least one of the following conditions: + + - either fall within one of the business sectors eligible for the income tax reduction available to + + taxpayers domiciled in France who have made new productive investments in overseas France + + (provided for in article 199 undecies B of the French General Tax Code) ; + + - carry out one of the following activities + - accounting ; + - business consulting ; + - engineering or technical studies for companies; + - research and development + - information and communication technologies. + + The employer must also meet at least one of the following conditions: + + - either belong to one of the following sectors: + - 🔬 research and development; + - 🖥️ information and communication technologies; + - 📷 tourism, including related leisure activities; + - 🌱 agronutrition; + - 🌳 environment ; + - 🔋 renewable energies; + - or benefit from the "inward processing" regime. + description.fr: > + Pour bénéficier du barème d'exonération renforcée, les employeurs + doivent : + + - employer moins de 250 salariés, + + - réaliser un chiffre d’affaires annuel inférieur à 50 millions d’euros + + - et, pour ceux installés à Saint-Martin, être soumis de plein droit ou sur option à + + un régime réel d’imposition. + + + Par ailleurs, l'employeur doit remplir au moins l’une des conditions suivantes : + + - soit relever de l’un des secteurs d’activité éligibles à la réduction d’impôt sur le revenu ouverte aux + + contribuables domiciliés en France qui ont réalisés des investissements productifs neufs en outre-mer + + (prévue à l’article 199 undecies B du code général des impôts) ; + + - soit exercer une des activités suivantes : + - comptabilité ; + - conseil aux entreprises ; + - ingénierie ou études techniques à destination des entreprises ; + - recherche et développement + - technologies de l’information et de la communication. + + L'employeur doit également remplir au moins l’une des conditions suivantes : + + - soit relever d'un des secteurs suivants : + - 🔬 recherche et développement ; + - 🖥️ technologies de l’information et de la communication ; + - 📷 tourisme, y compris les activités de loisirs s’y rapportant ; + - 🌱 agronutrition ; + - 🌳 environnement ; + - 🔋 énergies renouvelables ; + - soit bénéficier du régime de « perfectionnement actif ». + titre.en: '[automatic] Reinforced exemption scale' + titre.fr: Barème d'exonération renforcée + barème sectoriel: + description.en: > + [automatic] The exemption applies to employers, regardless of their + workforce, in one of the following business sectors + + eligible for the "Lodeom" exemption scheme: + + - 🔬 research and development ; + + - 📷 tourism, including related leisure activities; + + - 🛏️ hotels; + + - 🌱 agronutrition ; + + - 🌳 environment ; + + - 🔋 renewable energies; + + - 🚜 agriculture (including agricultural cooperatives and sociétés d'intérêt collectif agricoles + + and their unions as well as maritime cooperatives and their unions); + + - 🎣 fishing, marine cultures and aquaculture; + + - 🏗 construction and public works + + - 🍴 catering ; + + - 📰 press ; + + - 🎥 audiovisual production. + + - ⛵ river or sea transport for employers providing: + - sea or river services to several points in Guadeloupe, French Guiana, Martinique, Réunion, Saint-Barthélemy or Saint-Martin; + - connections between ports in these departments or communities; + - between the ports of Réunion and Mayotte. + - ✈️ air transport for employers providing : + - between mainland France and Guadeloupe, French Guiana, Martinique, Réunion, Saint-Martin or Saint-Barthélemy; + - between these departments or communities and between Réunion and Mayotte; + - domestic services within these departments or communities. + description.fr: > + L’exonération est applicable aux employeurs, quel que soit leur + effectif, relevant d’un des secteurs d’activité + + éligibles au dispositif d’exonération « Lodeom » : + + - 🔬 recherche et développement ; + + - 📷 tourisme, y compris les activités de loisirs s’y rapportant ; + + - 🛏️ hôtellerie ; + + - 🌱 agronutrition ; + + - 🌳 environnement ; + + - 🔋 énergies renouvelables ; + + - 🚜 agriculture (y compris les coopératives agricoles et sociétés d’intérêt collectif agricoles + + et leurs unions ainsi que les coopératives maritimes et leurs unions) ; + + - 🎣 pêche, cultures marines et aquaculture ; + + - 🏗 bâtiment et travaux publics + + - 🍴 restauration ; + + - 📰 presse ; + + - 🎥 production audiovisuelle. + + - ⛵ transport fluvial ou maritime pour les employeurs assurant : + - la desserte maritime ou fluviale de plusieurs points de la Guadeloupe, de la Guyane, de la Martinique, de La Réunion, de Saint-Barthélemy ou de Saint-Martin ; + - la liaison entre les ports de ces départements ou collectivités ; + - la liaison entre les ports de la Réunion et de Mayotte. + - ✈️ transport aérien pour les employeurs assurant : + - la liaison entre la métropole et la Guadeloupe, la Guyane, la Martinique, La Réunion, Saint-Martin, Saint-Barthélemy ; + - la liaison entre ces départements ou collectivités et entre la Réunion et Mayotte ; + - la desserte intérieure de ces départements ou collectivités. + titre.en: '[automatic] Sector exemption scale' + titre.fr: Barème d'exonération sectorielle + question.en: '[automatic] What scale would you like to apply?' + question.fr: Quel barème souhaitez-vous appliquer ? + titre.en: '[automatic] scales' + titre.fr: barèmes titre.en: '[automatic] Saint-Barthélémy, Saint-Martin' titre.fr: Saint-Barthélémy, Saint-Martin salarié . cotisations . exonérations . lodeom . zone un: diff --git a/site/source/locales/ui-en.yaml b/site/source/locales/ui-en.yaml index 5402263f29..be949ed34d 100644 --- a/site/source/locales/ui-en.yaml +++ b/site/source/locales/ui-en.yaml @@ -137,6 +137,7 @@ Graphique statistiques détaillés de la satisfaction, présence d’une alterna Graphique statistiques détaillés du nombre visites par jour, présence d’une alternative accessible après l’image: Graph showing detailed statistics on the number of visits per day, with an alternative accessible after the image +Guadeloupe, Guyane, Martinique, La Réunion: Guadeloupe, French Guiana, Martinique, Reunion Island Habituellement: Usually Impôt: Tax Impôt au barème: Tax scale @@ -278,6 +279,7 @@ Répartition du chiffre d'affaires: Sales breakdown Répondez à quelques questions additionnelles afin de préciser votre résultat.: Answer a few additional questions to clarify your result. Résultat fiscal: Taxable income Réussite: Success +Saint-Barthélémy, Saint-Martin: Saint-Barthélémy, Saint-Martin Saisissez votre domaine d'activité: Enter your field of activity Salaire brut: Gross salary Salaire brut mensuel: Gross monthly salary @@ -377,6 +379,7 @@ Vous êtes dirigeant d'une SAS(U) ? <2>Accéder au simulateur de revenu dédié< with a company director, there are <1>3 possible statuses for you<3>(collaborating spouse, <6>associate spouse or <9>salaried spouse). +Zone de l'entreprise: Company zone accessibility: description: Référentiel Général d'Amélioration de l'Accessibilité (General Accessibility Improvement Reference System) diff --git a/site/source/locales/ui-fr.yaml b/site/source/locales/ui-fr.yaml index 761393d942..6ca8c80352 100644 --- a/site/source/locales/ui-fr.yaml +++ b/site/source/locales/ui-fr.yaml @@ -146,6 +146,7 @@ Graphique statistiques détaillés de la satisfaction, présence d’une alterna Graphique statistiques détaillés du nombre visites par jour, présence d’une alternative accessible après l’image: Graphique statistiques détaillés du nombre visites par jour, présence d’une alternative accessible après l’image +Guadeloupe, Guyane, Martinique, La Réunion: Guadeloupe, Guyane, Martinique, La Réunion Habituellement: Habituellement Impôt: Impôt Impôt au barème: Impôt au barème @@ -293,6 +294,7 @@ Répartition du chiffre d'affaires: Répartition du chiffre d'affaires Répondez à quelques questions additionnelles afin de préciser votre résultat.: Répondez à quelques questions additionnelles afin de préciser votre résultat. Résultat fiscal: Résultat fiscal Réussite: Réussite +Saint-Barthélémy, Saint-Martin: Saint-Barthélémy, Saint-Martin Saisissez votre domaine d'activité: Saisissez votre domaine d'activité Salaire brut: Salaire brut Salaire brut mensuel: Salaire brut mensuel @@ -400,6 +402,7 @@ Vous êtes dirigeant d'une SAS(U) ? <2>Accéder au simulateur de revenu dédié< "Vous êtes marié(e), pacsé(e) ou en union libre avec un chef d’entreprise : il existe <1>3 statuts possibles pour vous (<3>conjoint collaborateur, <6>conjoint associé ou <9>conjoint salarié)." +Zone de l'entreprise: Zone de l'entreprise accessibility: description: Référentiel Général d’Amélioration de l’Accessibilité title: Accessibilité diff --git a/site/source/pages/simulateurs/lodeom/Lodeom.tsx b/site/source/pages/simulateurs/lodeom/Lodeom.tsx index 17e8d71249..5fd575da0e 100644 --- a/site/source/pages/simulateurs/lodeom/Lodeom.tsx +++ b/site/source/pages/simulateurs/lodeom/Lodeom.tsx @@ -7,9 +7,11 @@ import RégularisationSwitch from '@/components/RéductionDeCotisations/Régular import { SelectSimulationYear } from '@/components/SelectSimulationYear' import SimulateurWarning from '@/components/SimulateurWarning' import Simulation from '@/components/Simulation' +import { useZoneLodeom } from '@/hooks/useZoneLodeom' import { RégularisationMethod } from '@/utils/réductionDeCotisations' import BarèmeSwitch from './components/BarèmeSwitch' +import ZoneSwitch from './components/ZoneSwitch' import LodeomSimulationGoals from './Goals' export default function LodeomSimulation() { @@ -39,6 +41,8 @@ export default function LodeomSimulation() { const [régularisationMethod, setRégularisationMethod] = useState('progressive') + const { currentZone } = useZoneLodeom() + return ( <> }> @@ -51,12 +55,17 @@ export default function LodeomSimulation() { )} toggles={ <> + - - + {currentZone === 'zone un' && ( + <> + + + + )} } diff --git "a/site/source/pages/simulateurs/lodeom/components/Bar\303\250meSwitch.tsx" "b/site/source/pages/simulateurs/lodeom/components/Bar\303\250meSwitch.tsx" index 5b7d5b75dd..6cdd75d658 100644 --- "a/site/source/pages/simulateurs/lodeom/components/Bar\303\250meSwitch.tsx" +++ "b/site/source/pages/simulateurs/lodeom/components/Bar\303\250meSwitch.tsx" @@ -1,7 +1,18 @@ +import { DottedName } from 'modele-social' + +import { useZoneLodeom } from '@/hooks/useZoneLodeom' import { SimpleField } from '@/pages/assistants/components/Fields' export default function BarèmeSwitch() { + const { currentZone } = useZoneLodeom() + return ( - + currentZone && ( + + ) ) } diff --git a/site/source/pages/simulateurs/lodeom/components/WarningSalaireTrans.tsx b/site/source/pages/simulateurs/lodeom/components/WarningSalaireTrans.tsx index 55662bd939..976a02c7e5 100644 --- a/site/source/pages/simulateurs/lodeom/components/WarningSalaireTrans.tsx +++ b/site/source/pages/simulateurs/lodeom/components/WarningSalaireTrans.tsx @@ -1,12 +1,16 @@ import { Trans } from 'react-i18next' import { useEngine } from '@/components/utils/EngineContext' +import { useZoneLodeom } from '@/hooks/useZoneLodeom' export default function WarningSalaireTrans() { + const { currentZone } = useZoneLodeom() const engine = useEngine() - const currentBarème = engine.evaluate( - 'salarié . cotisations . exonérations . lodeom . zone un . barèmes' - ).nodeValue + const currentBarème = + currentZone && + engine.evaluate( + `salarié . cotisations . exonérations . lodeom . ${currentZone} . barèmes` + ).nodeValue return ( currentBarème && ( diff --git a/site/source/pages/simulateurs/lodeom/components/ZoneSwitch.tsx b/site/source/pages/simulateurs/lodeom/components/ZoneSwitch.tsx new file mode 100644 index 0000000000..a50b436914 --- /dev/null +++ b/site/source/pages/simulateurs/lodeom/components/ZoneSwitch.tsx @@ -0,0 +1,24 @@ +import { useTranslation } from 'react-i18next' + +import { Radio, ToggleGroup } from '@/design-system' +import { useZoneLodeom } from '@/hooks/useZoneLodeom' + +export default function ZoneSwitch() { + const { currentZone, updateZone } = useZoneLodeom() + const { t } = useTranslation() + + return ( + { + updateZone(value) + }} + aria-label={t("Zone de l'entreprise")} + > + + {t('Guadeloupe, Guyane, Martinique, La Réunion')} + + {t('Saint-Barthélémy, Saint-Martin')} + + ) +} diff --git a/site/source/pages/simulateurs/lodeom/simulationConfig.ts b/site/source/pages/simulateurs/lodeom/simulationConfig.ts index 54b6837719..8451d94f12 100644 --- a/site/source/pages/simulateurs/lodeom/simulationConfig.ts +++ b/site/source/pages/simulateurs/lodeom/simulationConfig.ts @@ -29,6 +29,10 @@ export const configRéductionGénérale: SimulationConfig = { }, ], 'liste noire': [ + 'établissement . commune', + 'salarié . cotisations . exonérations . lodeom . zone un . barème compétitivité renforcée', + 'salarié . cotisations . exonérations . lodeom . zone un . barème innovation et croissance', + 'salarié . cotisations . exonérations . lodeom . zone deux . barème compétitivité', 'entreprise . salariés . effectif . seuil', 'salarié . contrat . CDD . motif', 'salarié . rémunération . primes . activité . base', @@ -41,8 +45,5 @@ export const configRéductionGénérale: SimulationConfig = { dirigeant: 'non', 'entreprise . catégorie juridique': "''", 'entreprise . imposition': 'non', - 'salarié . cotisations . exonérations . lodeom . zone un': "'oui'", - 'salarié . cotisations . exonérations . lodeom . zone un . barèmes': - "'barème compétitivité'", }, }