2019-01-14 17:53:18 +00:00
|
|
|
|
/* @flow */
|
2019-01-15 17:36:04 +00:00
|
|
|
|
import { setSituationBranch } from 'Actions/actions'
|
2019-01-15 18:04:29 +00:00
|
|
|
|
import {
|
2019-02-01 12:31:57 +00:00
|
|
|
|
defineDirectorStatus,
|
|
|
|
|
isAutoentrepreneur
|
2019-01-15 18:04:29 +00:00
|
|
|
|
} from 'Actions/companyStatusActions'
|
2018-12-11 12:50:53 +00:00
|
|
|
|
import React from 'react'
|
|
|
|
|
import { connect } from 'react-redux'
|
2019-02-15 14:45:35 +00:00
|
|
|
|
import { règleAvecMontantSelector } from 'Selectors/regleSelectors'
|
2019-02-12 14:59:01 +00:00
|
|
|
|
import { noUserInputSelector } from '../selectors/analyseSelectors'
|
2019-01-08 19:43:57 +00:00
|
|
|
|
import './ComparativeTargets.css'
|
2019-02-15 14:45:35 +00:00
|
|
|
|
|
|
|
|
|
import type { RègleAvecMontant } from 'Types/RegleTypes'
|
2019-01-04 18:24:49 +00:00
|
|
|
|
|
2019-01-15 17:01:53 +00:00
|
|
|
|
const connectRègles = (situationBranchName: string) =>
|
2019-01-15 17:36:04 +00:00
|
|
|
|
connect(
|
2019-01-24 18:06:30 +00:00
|
|
|
|
state => {
|
2019-02-01 12:31:57 +00:00
|
|
|
|
return ({
|
2019-01-24 18:06:30 +00:00
|
|
|
|
revenuDisponible:
|
2019-02-12 14:59:01 +00:00
|
|
|
|
!noUserInputSelector(state) &&
|
2019-01-24 18:06:30 +00:00
|
|
|
|
règleAvecMontantSelector(state, {
|
|
|
|
|
situationBranchName
|
2019-05-02 16:49:45 +00:00
|
|
|
|
})('revenu net'),
|
|
|
|
|
retraite:
|
|
|
|
|
!noUserInputSelector(state) &&
|
|
|
|
|
règleAvecMontantSelector(state, {
|
|
|
|
|
situationBranchName
|
|
|
|
|
})('protection sociale . retraite')
|
2019-02-01 12:31:57 +00:00
|
|
|
|
}: {
|
2019-05-02 16:49:45 +00:00
|
|
|
|
revenuDisponible: boolean | RègleAvecMontant,
|
|
|
|
|
retraite: boolean | RègleAvecMontant
|
2019-02-01 12:31:57 +00:00
|
|
|
|
})
|
2019-01-24 18:06:30 +00:00
|
|
|
|
},
|
2019-01-15 18:04:29 +00:00
|
|
|
|
{
|
|
|
|
|
setSituationBranch,
|
2019-01-30 17:38:17 +00:00
|
|
|
|
isAutoentrepreneur,
|
2019-01-15 18:04:29 +00:00
|
|
|
|
defineDirectorStatus
|
|
|
|
|
}
|
2019-01-15 17:36:04 +00:00
|
|
|
|
)
|
2019-01-14 17:53:18 +00:00
|
|
|
|
|
2019-05-03 15:18:06 +00:00
|
|
|
|
const ComparativeTargets = () => (
|
|
|
|
|
<div className="ui__ full-width">
|
|
|
|
|
<div className="comparaison-grid ">
|
|
|
|
|
<h2 className="AS">
|
|
|
|
|
☂ Assimilé salarié
|
|
|
|
|
<small>Le régime tout compris</small>
|
|
|
|
|
</h2>
|
|
|
|
|
<h2 className="indep">
|
|
|
|
|
👩🔧 Indépendant
|
|
|
|
|
<small>La protection à la carte</small>
|
|
|
|
|
</h2>
|
|
|
|
|
<h2 className="auto">
|
|
|
|
|
🚶♂️ Auto-entrepreneur
|
|
|
|
|
<small>Pour les petites activités</small>
|
|
|
|
|
</h2>
|
|
|
|
|
|
|
|
|
|
<div className="legend">Sécurité sociale</div>
|
|
|
|
|
<div className="AS">Régime général</div>
|
|
|
|
|
<div className="indep-et-auto">
|
|
|
|
|
Sécurité sociale des indépendants (SSI)
|
2019-05-02 16:49:45 +00:00
|
|
|
|
</div>
|
2019-05-03 15:18:06 +00:00
|
|
|
|
|
|
|
|
|
<div className="legend">Retraite</div>
|
|
|
|
|
<div className="green AS">++</div>
|
|
|
|
|
<div className="green indep">+</div>
|
|
|
|
|
<div className="red auto">−</div>
|
|
|
|
|
|
|
|
|
|
<div className="legend">Assurance maladie</div>
|
|
|
|
|
<div className="green AS">++</div>
|
|
|
|
|
<div className="green indep-et-auto">+</div>
|
|
|
|
|
|
|
|
|
|
<div className="legend">Indémnités journalières</div>
|
|
|
|
|
<div className="green AS">++</div>
|
|
|
|
|
<div className="indep-et-auto green">+</div>
|
|
|
|
|
|
|
|
|
|
<div className="legend">Accidents du travail </div>
|
|
|
|
|
<div className="AS">Couverts</div>
|
|
|
|
|
<div className="indep-et-auto">Non couverts</div>
|
|
|
|
|
<div className="all">
|
|
|
|
|
<h3>Comparez vos revenus et votre retraite en 1 minute</h3>
|
|
|
|
|
<button className="ui__ cta plain button">Commencer</button>
|
|
|
|
|
</div>
|
|
|
|
|
<div className="legend">Paiment des cotisations</div>
|
|
|
|
|
<div className="AS">Mensuel (à la source)</div>
|
|
|
|
|
<div className="indep">Annuel avec deux ans de décalage</div>
|
|
|
|
|
<div className="auto">Mensuel ou trimestriel</div>
|
|
|
|
|
|
|
|
|
|
<div className="legend">ACCRE</div>
|
|
|
|
|
<div className="AS-et-indep">Une année, plafonné</div>
|
|
|
|
|
<div className="auto">3 années, progressif, non plafonné</div>
|
|
|
|
|
|
|
|
|
|
<div className="legend">Déduction des charges</div>
|
|
|
|
|
<div className="AS-et-indep">Régime réel </div>
|
|
|
|
|
<div className="auto">Abattement forfaitaire </div>
|
|
|
|
|
|
|
|
|
|
<div className="legend">Comptabilité</div>
|
|
|
|
|
<div className="AS">Expert 😩</div>
|
|
|
|
|
<div className="indep">Compliquée 😔</div>
|
|
|
|
|
<div className="auto">Simplifiée 😌</div>
|
|
|
|
|
|
|
|
|
|
<div className="legend">
|
|
|
|
|
Complémentaires retraite et santé déductibles
|
|
|
|
|
</div>
|
|
|
|
|
<div className="AS">Oui (jusqu'à 50%)</div>
|
|
|
|
|
<div className="indep">Oui (Loi Madelin)</div>
|
|
|
|
|
<div className="auto">Non</div>
|
|
|
|
|
|
|
|
|
|
<button className="AS ui__ button">Choisir ce régime</button>
|
|
|
|
|
<button className="indep ui__ button">Choisir ce régime</button>
|
|
|
|
|
<button className="auto ui__ button">Choisir ce régime</button>
|
2019-01-15 16:22:27 +00:00
|
|
|
|
</div>
|
2019-05-03 15:18:06 +00:00
|
|
|
|
</div>
|
2019-01-15 17:01:53 +00:00
|
|
|
|
)
|
2019-01-14 17:53:18 +00:00
|
|
|
|
|
2019-05-03 15:18:06 +00:00
|
|
|
|
// const Indépendant = connectRègles('Indépendant')(
|
|
|
|
|
// ({
|
|
|
|
|
// revenuDisponible,
|
|
|
|
|
// branchIndex,
|
|
|
|
|
// setSituationBranch,
|
|
|
|
|
// defineDirectorStatus,
|
|
|
|
|
// retraite,
|
|
|
|
|
// isAutoentrepreneur
|
|
|
|
|
// }) => (
|
|
|
|
|
// <SchemeCard
|
|
|
|
|
// title="Indépendant"
|
|
|
|
|
// subtitle="La protection à la carte"
|
|
|
|
|
// onAmountClick={() => setSituationBranch(branchIndex)}
|
|
|
|
|
// amount={revenuDisponible.montant}
|
|
|
|
|
// icon="👩🔧"
|
|
|
|
|
// amountDesc={<RuleLink {...revenuDisponible} />}
|
|
|
|
|
// features={[
|
|
|
|
|
// retraite.montant && (
|
|
|
|
|
// <>
|
|
|
|
|
// <RuleLink {...retraite} /> : <Montant>{retraite.montant}</Montant>
|
|
|
|
|
// </>
|
|
|
|
|
// ),
|
|
|
|
|
// 'Régime des indépendants',
|
|
|
|
|
// 'Complémentaire santé et prévoyance non incluses',
|
|
|
|
|
// 'Accidents du travail non couverts',
|
|
|
|
|
// 'Retraite faible (41% du dernier brut)',
|
|
|
|
|
// 'Indemnités journalières plus faibles',
|
|
|
|
|
// 'Montant minimum de cotisations',
|
|
|
|
|
// 'Cotisations en décalage de deux ans'
|
|
|
|
|
// ].filter(Boolean)}
|
|
|
|
|
// onSchemeChoice={() => {
|
|
|
|
|
// defineDirectorStatus('SELF_EMPLOYED')
|
|
|
|
|
// isAutoentrepreneur(false)
|
|
|
|
|
// }}
|
|
|
|
|
// />
|
|
|
|
|
// )
|
|
|
|
|
// )
|
2019-01-14 17:53:18 +00:00
|
|
|
|
|
2019-05-03 15:18:06 +00:00
|
|
|
|
// const AssimiléSalarié = connectRègles('Assimilé salarié')(
|
|
|
|
|
// ({
|
|
|
|
|
// revenuDisponible,
|
|
|
|
|
// branchIndex,
|
|
|
|
|
// setSituationBranch,
|
|
|
|
|
// defineDirectorStatus,
|
|
|
|
|
// retraite
|
|
|
|
|
// }) => (
|
|
|
|
|
// <SchemeCard
|
|
|
|
|
// title="Assimilé salarié"
|
|
|
|
|
// onAmountClick={() => setSituationBranch(branchIndex)}
|
|
|
|
|
// subtitle="Le régime tout compris"
|
|
|
|
|
// amount={revenuDisponible.montant}
|
|
|
|
|
// featured="Le choix de 58% des dirigeants de sociétés"
|
|
|
|
|
// icon="☂"
|
|
|
|
|
// amountDesc={<RuleLink {...revenuDisponible} />}
|
|
|
|
|
// features={[
|
|
|
|
|
// retraite.montant && (
|
|
|
|
|
// <>
|
|
|
|
|
// <RuleLink {...retraite} /> : <Montant>{retraite.montant}</Montant>
|
|
|
|
|
// </>
|
|
|
|
|
// ),
|
|
|
|
|
// 'Régime général',
|
|
|
|
|
// 'Complémentaires santé et prévoyance incluses',
|
|
|
|
|
// 'Accidents du travail couverts',
|
|
|
|
|
// 'Retraite élevée (62 % du dernier brut)',
|
|
|
|
|
// 'Pas de cotisations minimales',
|
|
|
|
|
// "Seuil pour l'activation des droits (4000€/an)",
|
|
|
|
|
// 'Fiches de paie mensuelles',
|
|
|
|
|
// 'Prélèvement des cotisations à la source'
|
|
|
|
|
// ].filter(Boolean)}
|
|
|
|
|
// onSchemeChoice={() => {
|
|
|
|
|
// defineDirectorStatus('SALARIED')
|
|
|
|
|
// isAutoentrepreneur(false)
|
|
|
|
|
// }}
|
|
|
|
|
// />
|
|
|
|
|
// )
|
|
|
|
|
// )
|
|
|
|
|
|
|
|
|
|
// const AutoEntrepreneur = connectRègles('Auto-entrepreneur')(
|
|
|
|
|
// ({
|
|
|
|
|
// revenuDisponible,
|
|
|
|
|
// setSituationBranch,
|
|
|
|
|
// isAutoentrepreneur,
|
|
|
|
|
// retraite,
|
|
|
|
|
// branchIndex,
|
|
|
|
|
// plafondDépassé
|
|
|
|
|
// }) => {
|
|
|
|
|
// return (
|
|
|
|
|
// <SchemeCard
|
|
|
|
|
// title="Auto-entrepreneur"
|
|
|
|
|
// subtitle="Pour les petites activités"
|
|
|
|
|
// onAmountClick={() => setSituationBranch(branchIndex)}
|
|
|
|
|
// disabled={plafondDépassé}
|
|
|
|
|
// amountDesc={<RuleLink {...revenuDisponible} />}
|
|
|
|
|
// icon="🚶♂️"
|
|
|
|
|
// amount={revenuDisponible.montant}
|
|
|
|
|
// features={[
|
|
|
|
|
// retraite.montant && (
|
|
|
|
|
// <>
|
|
|
|
|
// <RuleLink {...retraite} /> : <Montant>{retraite.montant}</Montant>
|
|
|
|
|
// </>
|
|
|
|
|
// ),
|
|
|
|
|
// 'Régime des indépendants',
|
|
|
|
|
// 'Pas de déduction des charges',
|
|
|
|
|
// 'Pas de déduction fiscale pour la mutuelle (Madelin)',
|
|
|
|
|
// "Chiffre d'affaires plafonné",
|
|
|
|
|
// "Durée de l'ACRE plus élevée",
|
|
|
|
|
// 'Comptabilité réduite au minimum'
|
|
|
|
|
// ].filter(Boolean)}
|
|
|
|
|
// onSchemeChoice={() => {
|
|
|
|
|
// defineDirectorStatus('SELF_EMPLOYED')
|
|
|
|
|
// isAutoentrepreneur(true)
|
|
|
|
|
// }}
|
|
|
|
|
// />
|
|
|
|
|
// )
|
|
|
|
|
// }
|
|
|
|
|
// )
|
2019-01-15 17:01:53 +00:00
|
|
|
|
|
2019-01-14 17:53:18 +00:00
|
|
|
|
export default ComparativeTargets
|