From f12db266d19568b2063fdda002d3e84c1a48bac2 Mon Sep 17 00:00:00 2001 From: Jalil Arfaoui <jalil@arfaoui.net> Date: Mon, 10 Feb 2025 23:56:56 +0100 Subject: [PATCH] =?UTF-8?q?feat(=C3=A9conomie-collaborative):=20prend=20en?= =?UTF-8?q?=20compte=20le=20taux=20de=20cotisation=20Alsace-Moselle?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../location-de-meublé/courte-durée.publicodes | 5 ++++- .../location-de-meublé.publicodes | 16 ++++++++++++++ site/source/locales/rules-en.yaml | 12 ++++++++++ .../économie-collaborative.test.ts | 22 ++++++++++++++----- 4 files changed, 49 insertions(+), 6 deletions(-) diff --git a/modele-social/règles/économie-collaborative/location-de-meublé/courte-durée.publicodes b/modele-social/règles/économie-collaborative/location-de-meublé/courte-durée.publicodes index 49376cbc3..553807210 100644 --- a/modele-social/règles/économie-collaborative/location-de-meublé/courte-durée.publicodes +++ b/modele-social/règles/économie-collaborative/location-de-meublé/courte-durée.publicodes @@ -38,4 +38,7 @@ location de logement meublé . courte durée: taux de cotisation: titre: Taux de cotisation au régime général description: Taux de cotisation pour la location d’un logement meublé de courte durée au régime général - valeur: 47.42% + variations: + - si: zone géographique . Alsace-Moselle + alors: 48.72% + - sinon: 47.42% diff --git a/modele-social/règles/économie-collaborative/location-de-meublé/location-de-meublé.publicodes b/modele-social/règles/économie-collaborative/location-de-meublé/location-de-meublé.publicodes index eb5d0f40c..c3e79e141 100644 --- a/modele-social/règles/économie-collaborative/location-de-meublé/location-de-meublé.publicodes +++ b/modele-social/règles/économie-collaborative/location-de-meublé/location-de-meublé.publicodes @@ -19,3 +19,19 @@ location de logement meublé: revenu net: formule: location de logement meublé . courte durée . recettes - cotisations + + zone géographique: + question: Quelle est votre zone géographique ? + une possibilité: + possibilités: + - Alsace-Moselle + - autre + choix obligatoire: oui + par défaut: "'autre'" + avec: + Alsace-Moselle: + titre: Bas-Rhin, Haut-Rhin ou Moselle + valeur: zone géographique = 'Alsace-Moselle' + autre: + titre: Autre département + valeur: zone géographique = 'autre' diff --git a/site/source/locales/rules-en.yaml b/site/source/locales/rules-en.yaml index 7a65784cb..e9a040978 100644 --- a/site/source/locales/rules-en.yaml +++ b/site/source/locales/rules-en.yaml @@ -7119,6 +7119,18 @@ location de logement meublé: seuil de professionalisation: titre.en: '[automatic] professionalization threshold' titre.fr: seuil de professionalisation + zone géographique: + avec: + Alsace-Moselle: + titre.en: '[automatic] Bas-Rhin, Haut-Rhin or Moselle' + titre.fr: Bas-Rhin, Haut-Rhin ou Moselle + autre: + titre.en: '[automatic] Other department' + titre.fr: Autre département + question.en: '[automatic] What is your geographical area?' + question.fr: Quelle est votre zone géographique ? + titre.en: '[automatic] geographical area' + titre.fr: zone géographique titre.en: '[automatic] rental of furnished accommodation' titre.fr: location de logement meublé location de logement meublé . courte durée: diff --git a/site/test/modele-social/économie-collaborative.test.ts b/site/test/modele-social/économie-collaborative.test.ts index c228d6873..a75d32317 100644 --- a/site/test/modele-social/économie-collaborative.test.ts +++ b/site/test/modele-social/économie-collaborative.test.ts @@ -4,10 +4,7 @@ import { beforeEach, describe, expect, it } from 'vitest' import { Situation } from '@/domaine/Situation' -const situationParDéfaut = { - date: '01/01/2024à', - "location de logement meublé . date de début d'activité": '01/01/2022', -} satisfies Situation +const situationParDéfaut = {} satisfies Situation describe('Économie collaborative', () => { describe('Location de meublé', () => { @@ -22,12 +19,27 @@ describe('Économie collaborative', () => { ...situationParDéfaut, 'location de logement meublé . courte durée . recettes': '40000 €/an', }) + expect(e).toEvaluate( 'location de logement meublé . cotisations', 7587.2 ) }) + it('prend en compte le taux de cotisation spécial pour le Bas-Rhin, le Haut-Rhin et la Moselle', () => { + const e = engine.setSituation({ + ...situationParDéfaut, + 'location de logement meublé . courte durée . recettes': '40000 €/an', + 'location de logement meublé . zone géographique': 'Alsace-Moselle', + }) + + const cotisations = e.evaluate( + 'location de logement meublé . cotisations' + ).nodeValue + + expect(cotisations).toEqual(7_587.2) + }) + it('applique le régime général jusqu’à 77 700 €', () => { const e = engine.setSituation({ ...situationParDéfaut, @@ -35,7 +47,7 @@ describe('Économie collaborative', () => { }) expect(e).toBeApplicable('location de logement meublé . cotisations') }) - it('n’appliquelm leblance pas le régime général si plus de 77 700 €', () => { + it('n’applique pas le régime général si plus de 77 700 €', () => { const e = engine.setSituation({ ...situationParDéfaut, 'location de logement meublé . courte durée . recettes': '77701 €/an',