mirror of
https://github.com/betagouv/mon-entreprise
synced 2025-03-12 23:15:07 +00:00
feat(économie-collaborative): renvoie vers AE ou TI si loyer net au-dessus du plafond RG
#2916 https://github.com/betagouv/mon-entreprise/issues/2916
This commit is contained in:
parent
6687db3667
commit
4808d242b9
5 changed files with 92 additions and 7 deletions
|
@ -1,9 +1,13 @@
|
|||
location de logement:
|
||||
location de logement . meublé:
|
||||
avec:
|
||||
plafond de loyer autorisé pour le régime général: 77700 €/an
|
||||
|
||||
location de logement . meublé . loyer:
|
||||
location de logement . meublé . loyer . net:
|
||||
titre: Loyer net
|
||||
unité: €/an
|
||||
|
||||
|
||||
location de logement . meublé . cotisations:
|
||||
titre: Cotisations dues pour la location d’un logement meublé
|
||||
|
@ -11,7 +15,8 @@ location de logement . meublé . cotisations:
|
|||
produit:
|
||||
- assiette
|
||||
- taux de cotisation
|
||||
non applicable si: loyer . net > 77700 €
|
||||
unité: €/an
|
||||
non applicable si: loyer . net > plafond de loyer autorisé pour le régime général
|
||||
|
||||
avec:
|
||||
assiette:
|
||||
|
|
|
@ -0,0 +1,14 @@
|
|||
import { PropsWithChildren } from 'react'
|
||||
|
||||
import { Message } from '@/design-system'
|
||||
import { SmallBody } from '@/design-system/typography/paragraphs'
|
||||
|
||||
export default function AvertissementDansObjectifDeSimulateur({
|
||||
children,
|
||||
}: PropsWithChildren) {
|
||||
return (
|
||||
<Message type="error">
|
||||
<SmallBody>{children}</SmallBody>
|
||||
</Message>
|
||||
)
|
||||
}
|
|
@ -7100,6 +7100,37 @@ impôt . taux personnalisé:
|
|||
question.fr: Quel est votre taux de prélèvement à la source ?
|
||||
titre.en: personalized rate
|
||||
titre.fr: taux personnalisé
|
||||
location de logement:
|
||||
titre.en: '[automatic] housing rental'
|
||||
titre.fr: location de logement
|
||||
location de logement . meublé:
|
||||
avec:
|
||||
plafond de loyer autorisé pour le régime général:
|
||||
titre.en: '[automatic] authorized rent ceiling for the general scheme'
|
||||
titre.fr: plafond de loyer autorisé pour le régime général
|
||||
titre.en: '[automatic] furnished'
|
||||
titre.fr: meublé
|
||||
location de logement . meublé . cotisations:
|
||||
avec:
|
||||
assiette:
|
||||
titre.en: '[automatic] plate'
|
||||
titre.fr: assiette
|
||||
taux de cotisation:
|
||||
description.en: '[automatic] Contribution rates for short-term furnished
|
||||
accommodation under the general scheme'
|
||||
description.fr:
|
||||
Taux de cotisation pour la location d’un logement meublé de
|
||||
courte durée au régime général
|
||||
titre.en: '[automatic] General scheme contribution rates'
|
||||
titre.fr: Taux de cotisation au régime général
|
||||
titre.en: '[automatic] Contributions payable for renting furnished accommodation'
|
||||
titre.fr: Cotisations dues pour la location d’un logement meublé
|
||||
location de logement . meublé . loyer:
|
||||
titre.en: '[automatic] rent'
|
||||
titre.fr: loyer
|
||||
location de logement . meublé . loyer . net:
|
||||
titre.en: '[automatic] Net rent'
|
||||
titre.fr: Loyer net
|
||||
plafond sécurité sociale:
|
||||
avec:
|
||||
N-1:
|
||||
|
|
|
@ -1,19 +1,53 @@
|
|||
import { Trans, useTranslation } from 'react-i18next'
|
||||
|
||||
import AvertissementDansObjectifDeSimulateur from '@/components/AvertissementDansObjectifDeSimulateur'
|
||||
import Value from '@/components/EngineValue/Value'
|
||||
import { WhenApplicable } from '@/components/EngineValue/WhenApplicable'
|
||||
import { WhenNotApplicable } from '@/components/EngineValue/WhenNotApplicable'
|
||||
import SimulateurWarning from '@/components/SimulateurWarning'
|
||||
import Simulation, {
|
||||
SimulationGoal,
|
||||
SimulationGoals,
|
||||
} from '@/components/Simulation'
|
||||
import { useEngine } from '@/components/utils/EngineContext'
|
||||
|
||||
export default function LocationDeMeublé() {
|
||||
const engine = useEngine()
|
||||
const { t } = useTranslation()
|
||||
|
||||
return (
|
||||
<Simulation>
|
||||
<SimulateurWarning simulateur="location-de-logement-meublé" />
|
||||
<SimulationGoals legend="Montant de votre loyer net">
|
||||
<SimulationGoal dottedName="location de logement . meublé . loyer . net" />
|
||||
<SimulationGoal
|
||||
dottedName="location de logement . meublé . cotisations"
|
||||
small
|
||||
dottedName="location de logement . meublé . loyer . net"
|
||||
displayedUnit="€/an"
|
||||
/>
|
||||
|
||||
<WhenNotApplicable
|
||||
dottedName="location de logement . meublé . cotisations"
|
||||
engine={engine}
|
||||
>
|
||||
<AvertissementDansObjectifDeSimulateur>
|
||||
<Trans>
|
||||
Vous dépassez le plafond autorisé (
|
||||
<Value expression="location de logement . meublé . plafond de loyer autorisé pour le régime général" />
|
||||
) pour déclarer vos revenus de l’économie collaborative avec un
|
||||
statut social au régime général. Vous devez vous orienter vers les
|
||||
statuts d’autoentrepreneur ou de travailleur indépendant.
|
||||
</Trans>
|
||||
{t('')}
|
||||
</AvertissementDansObjectifDeSimulateur>
|
||||
</WhenNotApplicable>
|
||||
<WhenApplicable
|
||||
dottedName="location de logement . meublé . cotisations"
|
||||
engine={engine}
|
||||
>
|
||||
<SimulationGoal
|
||||
dottedName="location de logement . meublé . cotisations"
|
||||
small
|
||||
/>
|
||||
</WhenApplicable>
|
||||
</SimulationGoals>
|
||||
</Simulation>
|
||||
)
|
||||
|
|
|
@ -12,7 +12,7 @@ describe('Économie collaborative', () => {
|
|||
|
||||
it('applique correctement l’abattement et le taux de cotisation', () => {
|
||||
const e = engine.setSituation({
|
||||
'location de logement . meublé . loyer . net': '40000 €',
|
||||
'location de logement . meublé . loyer . net': '40000 €/an',
|
||||
})
|
||||
expect(e).toEvaluate(
|
||||
'location de logement . meublé . cotisations',
|
||||
|
@ -22,14 +22,15 @@ describe('Économie collaborative', () => {
|
|||
|
||||
it('applique le régime général jusqu’à 77 700 €', () => {
|
||||
const e = engine.setSituation({
|
||||
'location de logement . meublé . loyer . net': '77700 €',
|
||||
'location de logement . meublé . loyer . net': '77700 €/an',
|
||||
})
|
||||
expect(e).toBeApplicable('location de logement . meublé . cotisations')
|
||||
})
|
||||
it('n’applique pas le régime général si plus de 77 700 €', () => {
|
||||
const e = engine.setSituation({
|
||||
'location de logement . meublé . loyer . net': '77701 €',
|
||||
'location de logement . meublé . loyer . net': '77701 €/an',
|
||||
})
|
||||
|
||||
expect(e).not.toBeApplicable(
|
||||
'location de logement . meublé . cotisations'
|
||||
)
|
||||
|
|
Loading…
Add table
Reference in a new issue