From 3b9329cd947a9d65d956b9c2ea9bf69e7c090b43 Mon Sep 17 00:00:00 2001 From: Johan Girod Date: Fri, 10 May 2019 19:12:21 +0200 Subject: [PATCH] =?UTF-8?q?:hammer:=20ajoute=20les=20limites=20inf=C3=A9ri?= =?UTF-8?q?eure=20pour=20l'activation=20de=20la=20retraite=20des=20salari?= =?UTF-8?q?=C3=A9=20et=20des=20auto?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- source/components/SchemeComparaison.js | 79 +++++++++++---- .../rémunération-dirigeant.yaml | 22 ++--- source/règles/base.yaml | 97 ++++++++++++++----- 3 files changed, 146 insertions(+), 52 deletions(-) diff --git a/source/components/SchemeComparaison.js b/source/components/SchemeComparaison.js index afd232092..56c25280b 100644 --- a/source/components/SchemeComparaison.js +++ b/source/components/SchemeComparaison.js @@ -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 = ({
{assimiléSalarié && ( - setSituationBranch(0)} + {...assimiléSalarié.revenuNet} /> )} @@ -203,7 +208,10 @@ const SchemeComparaison = ({
{indépendant && ( - + setSituationBranch(1)} + {...indépendant.revenuNet} + /> )}
@@ -217,31 +225,45 @@ const SchemeComparaison = ({ {plafondAutoEntrepreneurDépassé ? ( 'Plafond de CA dépassé' ) : ( - setSituationBranch(2)} + {...autoEntrepreneur.revenuNet} /> )} )}
-

Retraite (estimation)

+

Retraite brute (estimation)

- {assimiléSalarié && ( - + {assimiléSalarié && assimiléSalarié.retraite.montant !== 0 ? ( + setSituationBranch(1)} + {...assimiléSalarié.retraite} + /> + ) : ( + Pas implémenté )}
{indépendant && indépendant.retraite.montant !== 0 ? ( - + setSituationBranch(1)} + {...indépendant.retraite} + /> ) : ( Pas implémenté )}
- {autoEntrepreneur && ( - + {autoEntrepreneur && autoEntrepreneur.retraite.montant !== 0 ? ( + setSituationBranch(1)} + {...autoEntrepreneur.retraite} + /> + ) : ( + Pas implémenté )}
@@ -378,7 +400,22 @@ const SchemeComparaison = ({ ) } +const RuleValueLink = withSitePaths( + ({ + lien, + montant, + sitePaths, + onClick + }: RègleAvecMontant & { sitePaths: any, onClick: () => void }) => ( + + + + ) +) + 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) diff --git a/source/components/simulationConfigs/rémunération-dirigeant.yaml b/source/components/simulationConfigs/rémunération-dirigeant.yaml index 495690872..3a9ca6618 100644 --- a/source/components/simulationConfigs/rémunération-dirigeant.yaml +++ b/source/components/simulationConfigs/rémunération-dirigeant.yaml @@ -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 diff --git a/source/règles/base.yaml b/source/règles/base.yaml index af94e95d5..d64361602 100644 --- a/source/règles/base.yaml +++ b/source/règles/base.yaml @@ -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