🔨 ajoute les limites inférieure pour l'activation de la retraite des salarié et des auto

pull/525/head
Johan Girod 2019-05-10 19:12:21 +02:00
parent 47f67a0afc
commit 3b9329cd94
No known key found for this signature in database
GPG Key ID: 9E27B57DA2E8AE12
3 changed files with 146 additions and 52 deletions

View File

@ -1,5 +1,5 @@
/* @flow */
import { startConversation } from 'Actions/actions'
import { setSituationBranch, startConversation } from 'Actions/actions'
import {
defineDirectorStatus,
isAutoentrepreneur
@ -11,10 +11,12 @@ import Simulation from 'Components/Simulation'
// $FlowFixMe
import ComparaisonConfig from 'Components/simulationConfigs/rémunération-dirigeant.yaml'
import withSimulationConfig from 'Components/simulationConfigs/withSimulationConfig'
import withSitePaths from 'Components/utils/withSitePaths'
import { compose, map, tryCatch } from 'ramda'
import React, { useState } from 'react'
import emoji from 'react-easy-emoji'
import { connect } from 'react-redux'
import { Link } from 'react-router-dom'
import { branchAnalyseSelector } from 'Selectors/analyseSelectors'
import { règleAvecMontantSelector } from 'Selectors/regleSelectors'
import Animate from 'Ui/animate'
@ -35,8 +37,9 @@ type Props = OwnProps & {
conversationStarted: boolean,
noUserInput: boolean,
startConversation: () => void,
setSituationBranch: () => void,
setSituationBranch: number => void,
defineDirectorStatus: string => void,
sitePaths: any,
isAutoentrepreneur: boolean => void,
plafondAutoEntrepreneurDépassé: boolean
}
@ -51,6 +54,7 @@ const SchemeComparaison = ({
hideAutoEntrepreneur = false,
hideAssimiléSalarié = false,
/* Injected Props */
sitePaths,
assimiléSalarié,
indépendant,
plafondAutoEntrepreneurDépassé,
@ -58,7 +62,7 @@ const SchemeComparaison = ({
conversationStarted,
defineDirectorStatus,
isAutoentrepreneur,
// setSituationBranch,
setSituationBranch,
startConversation
}: Props) => {
const [showMore, setShowMore] = useState(false)
@ -194,8 +198,9 @@ const SchemeComparaison = ({
<div className="AS">
{assimiléSalarié && (
<Animate.appear className="ui__ plain card">
<AnimatedTargetValue
value={assimiléSalarié.revenuNet.montant}
<RuleValueLink
onClick={() => setSituationBranch(0)}
{...assimiléSalarié.revenuNet}
/>
</Animate.appear>
)}
@ -203,7 +208,10 @@ const SchemeComparaison = ({
<div className="indep">
{indépendant && (
<Animate.appear className="ui__ plain card">
<AnimatedTargetValue value={indépendant.revenuNet.montant} />
<RuleValueLink
onClick={() => setSituationBranch(1)}
{...indépendant.revenuNet}
/>
</Animate.appear>
)}
</div>
@ -217,31 +225,45 @@ const SchemeComparaison = ({
{plafondAutoEntrepreneurDépassé ? (
'Plafond de CA dépassé'
) : (
<AnimatedTargetValue
value={autoEntrepreneur.revenuNet.montant}
<RuleValueLink
onClick={() => setSituationBranch(2)}
{...autoEntrepreneur.revenuNet}
/>
)}
</Animate.appear>
)}
</div>
<T k="comparaisonRégimes.retraite">
<h3 className="legend">Retraite (estimation)</h3>
<h3 className="legend">Retraite brute (estimation)</h3>
</T>
<div className="AS">
{assimiléSalarié && (
<AnimatedTargetValue value={assimiléSalarié.retraite.montant} />
{assimiléSalarié && assimiléSalarié.retraite.montant !== 0 ? (
<RuleValueLink
onClick={() => setSituationBranch(1)}
{...assimiléSalarié.retraite}
/>
) : (
<span className="ui__ notice">Pas implémenté</span>
)}
</div>
<div className="indep">
{indépendant && indépendant.retraite.montant !== 0 ? (
<AnimatedTargetValue value={indépendant.retraite.montant} />
<RuleValueLink
onClick={() => setSituationBranch(1)}
{...indépendant.retraite}
/>
) : (
<span className="ui__ notice">Pas implémenté</span>
)}
</div>
<div className="auto">
{autoEntrepreneur && (
<AnimatedTargetValue value={autoEntrepreneur.retraite.montant} />
{autoEntrepreneur && autoEntrepreneur.retraite.montant !== 0 ? (
<RuleValueLink
onClick={() => setSituationBranch(1)}
{...autoEntrepreneur.retraite}
/>
) : (
<span className="ui__ notice">Pas implémenté</span>
)}
</div>
</>
@ -378,7 +400,22 @@ const SchemeComparaison = ({
)
}
const RuleValueLink = withSitePaths(
({
lien,
montant,
sitePaths,
onClick
}: RègleAvecMontant & { sitePaths: any, onClick: () => void }) => (
<Link onClick={onClick} to={sitePaths.documentation.index + '/' + lien}>
<AnimatedTargetValue value={montant} />
</Link>
)
)
export default (compose(
withSimulationConfig(ComparaisonConfig),
connect(
state => {
const analyse = branchAnalyseSelector(state, {
@ -408,14 +445,18 @@ export default (compose(
() => null
)(),
{
assimiléSalarié: 'Assimilé salarié',
autoEntrepreneur: 'Auto-entrepreneur',
indépendant: 'Indépendant',
autoEntrepreneur: 'Auto-entrepreneur'
assimiléSalarié: 'Assimilé salarié'
}
)
}
},
{ startConversation, defineDirectorStatus, isAutoentrepreneur }
),
withSimulationConfig(ComparaisonConfig)
{
startConversation,
defineDirectorStatus,
isAutoentrepreneur,
setSituationBranch
}
)
)(SchemeComparaison): React$Component<OwnProps>)

View File

@ -15,19 +15,9 @@ questions:
bloquant:
- entreprise . chiffre d'affaires
situation:
période: mois
période: année
branches:
- nom: Auto-entrepreneur
situation:
auto entrepreneur: oui
indépendant: non
contrat salarié: non
- nom: Indépendant
situation:
indépendant: oui
auto entrepreneur: non
contrat salarié: non
- nom: Assimilé salarié
situation:
auto entrepreneur: non
@ -35,3 +25,13 @@ branches:
contrat salarié: oui
contrat salarié . assimilé salarié: oui
contrat salarié . ATMP . taux réduit: oui
- nom: Indépendant
situation:
indépendant: oui
auto entrepreneur: non
contrat salarié: non
- nom: Auto-entrepreneur
situation:
auto entrepreneur: oui
indépendant: non
contrat salarié: non

View File

@ -3040,29 +3040,37 @@
format: euros
période: flexible
- espace: indépendant
- espace: entreprise
nom: rattachement libéral règlementé
description: |
Les entreprises libérales non règlementées créées avant 2019 étaient rattachées aux règlementées pour le calcul des cotisations sociales. Depuis 2019 ce n'est plus le cas, elles sont rattachées aux artisans-commerçants, donc dépendent de la sécurité sociale des indépendants.
Les entreprises libérales non règlementées créées étaient rattachées aux règlementées pour le calcul des cotisations sociales. Depuis 2018 ce n'est plus le cas pour les auto-entrepreneur (2019 pour les entreprise individuelles). Elles sont maintenant rattachées aux artisans-commerçants, donc dépendent de la sécurité sociale des indépendants.
références:
article de loi (chercher "travailleurs indépendants créant leur activité"): https://www.legifrance.gouv.fr/eli/loi/2017/12/30/CPAX1725580L/jo/texte#JORFARTI000036339157
formule:
une de ces conditions:
- entreprise . catégorie d'activité . libérale règlementée
- toutes ces conditions:
- ≠ contrat salarié
- entreprise . catégorie d'activité . libérale règlementée
- toutes ces conditions:
- entreprise . année d'activité != 'première année'
- entreprise . catégorie d'activité = 'libérale'
- indépendant
- toutes ces conditions:
- entreprise . année d'activité != 'première année'
- entreprise . année d'activité != 'deuxième année'
- entreprise . catégorie d'activité = 'libérale'
- auto entrepreneur
période: aucune
période: flexible
format: euros
- espace: indépendant . cotisations et contributions . cotisations
nom: maladie
période: flexible
formule:
variations:
- si: rattachement libéral règlementé
- si: entreprise . rattachement libéral règlementé
alors: libérale règlementée
- sinon: artisans commerçants libéraux
@ -3100,7 +3108,7 @@
titre: Maladie 2
description: Cotisations pour les indémnités journalières des indépendants. Si l'état de santé des artisans, commerçants, industriels et conjoints collaborateurs nécessite un arrêt de travail, une part de leur ancien revenu leur sera versé.
période: flexible
non applicable si: rattachement libéral règlementé
non applicable si: entreprise . rattachement libéral règlementé
formule:
multiplication:
assiette: maladie . assiette
@ -3188,7 +3196,7 @@
période: année
formule:
variations:
- si: rattachement libéral règlementé
- si: entreprise . rattachement libéral règlementé
alors:
multiplication:
assiette: assiette
@ -3232,7 +3240,7 @@
note: Pour les professions libérales, nous avons retenu un des 8 régimes de retraite, celui de la CIPAV, la caisse interprofessionnelle.
formule:
variations:
- si: rattachement libéral règlementé
- si: entreprise . rattachement libéral règlementé
alors:
barème linéaire:
assiette: revenu professionnel
@ -3614,7 +3622,7 @@
CNAV: https://www.lassuranceretraite.fr
OCDE: https://read.oecd-ilibrary.org/social-issues-migration-health/pensions-at-a-glance-2017_pension_glance-2017-en#page135
INSEE: https://www.insee.fr/fr/statistiques/fichier/3549496/REVPMEN18_F1.21_niv-pauv-pers-agees.pdf
non applicable si: indépendant . rattachement libéral règlementé
non applicable si: entreprise . rattachement libéral règlementé
format: euros
@ -3644,19 +3652,67 @@
format: euros
période: flexible
formule:
le maximum de:
- minimum contributif
- multiplication:
plafond: plafond sécurité sociale temps plein
taux: 50%
assiette: revenu annuel moyen
multiplication:
plafond: plafond sécurité sociale temps plein
taux: taux de la pension
assiette: revenu moyen
références:
service-public.fr: https://www.service-public.fr/particuliers/vosdroits/F21552
- espace: protection sociale . retraite
nom: revenu annuel moyen
- nom: taux de la pension
espace: protection sociale . retraite . base
description: Le taux appliqué, avec décote ou surcote en fonction du nombre de trimestre cotisé.
période: aucune
formule:
variations:
- si:
une de ces conditions:
- toutes ces conditions:
- auto entrepreneur
- entreprise . chiffre d'affaires < seuil de CA pour ouverture des droits
- toutes ces conditions:
- contrat salarié
- revenu moyen < revenu minimum pour ouverture des droits
alors: 0%
- sinon: 50%
note: On ne prends pas en compte la décote du taux suite aux trimestres manquant. On considère donc que le cotisant part à taux plein, donc à 67 ans (ou avant si tous les trimestres sont validés).
références:
service-public.fr: https://www.service-public.fr/particuliers/vosdroits/F19666
- nom: seuil de CA pour ouverture des droits
espace: protection sociale . retraite . base
période: annuel
format: euros
période: flexible
description: Le CA minimum pour l'ouverture des droits à la retraite. En deça de ce montant, vous n'aurez accès qu'à l'allocation de solidarité.
formule:
variations:
- si: entreprise . catégorie d'activité = 'libérale'
alors: 2880
- si:
une de ces conditions:
- entreprise . catégorie d'activité . service ou vente = 'vente de biens'
- entreprise . catégorie d'activité . restauration ou hébergement
alors: 4137
- sinon: 2412
références:
auto-entrepreneur: https://www.service-public.fr/professionnels-entreprises/vosdroits/F23369
allocation de solidarité: https://www.service-public.fr/particuliers/vosdroits/F16871
- nom: revenu minimum pour ouverture des droits
espace: protection sociale . retraite . base
période: annuel
format: euros
description: Le revenu minimum pour l'ouverture des droits à la retraite. En deça de ce montant, vous n'aurez accès qu'au minimum contributif ou à l'allocation de solidarité.
formule: contrat salarié . SMIC horaire * 150
références:
service-public.fr: https://www.service-public.fr/particuliers/vosdroits/F1761
allocation de solidarité: https://www.service-public.fr/particuliers/vosdroits/F16871
minimum contributif: https://www.service-public.fr/particuliers/vosdroits/F15522
- espace: protection sociale . retraite
nom: revenu moyen
format: euros
période: année
formule:
le maximum de :
- indépendant . revenu net de cotisations
@ -3721,9 +3777,6 @@
- espace: protection sociale . retraite
nom: complémentaire indépendant
formule: points acquis * valeur du point