Ajoute un bloc DGFiP

pull/1727/head
Maxime Quandalle 2021-06-22 16:09:11 +02:00
parent 4bbd147598
commit 038ae38a07
6 changed files with 89 additions and 46 deletions

View File

@ -17,7 +17,7 @@ import { useSelector } from 'react-redux'
import { targetUnitSelector } from 'Selectors/simulationSelectors'
import CotisationsForfaitaires from './IndépendantCotisationsForfaitaires'
import CotisationsRégularisation from './IndépendantCotisationsRégularisation'
import PLExplanation from './PLExplanation'
import InstitutionsPartenaires from './InstitutionsPartenaires'
import { DistributionSection } from './SalaryExplanation'
export default function IndépendantExplanation() {
@ -32,9 +32,7 @@ export default function IndépendantExplanation() {
<WhenNotApplicable dottedName="dirigeant . indépendant . cotisations et contributions . début activité">
<CotisationsRégularisation />
</WhenNotApplicable>
<Condition expression="entreprise . activité . libérale réglementée">
<PLExplanation />
</Condition>
<InstitutionsPartenaires />
<Condition expression="dirigeant . rémunération . nette après impôt > 0 €/an">
<section>
<h2>Répartition du revenu</h2>

View File

@ -1,8 +1,9 @@
import Value, { Condition } from 'Components/EngineValue'
import Value, { Condition, WhenNotApplicable } from 'Components/EngineValue'
import { FromBottom } from 'Components/ui/animate'
import Emoji from 'Components/utils/Emoji'
import { useEngine } from 'Components/utils/EngineContext'
import assuranceMaladieSrc from 'Images/assurance-maladie.svg'
import dgfipSrc from 'Images/logo-dgfip.svg'
import * as logosSrc from 'Images/logos-caisses-retraite'
import urssafSrc from 'Images/Urssaf.svg'
import { DottedName } from 'modele-social'
@ -11,49 +12,60 @@ import { useSelector } from 'react-redux'
import { targetUnitSelector } from 'Selectors/simulationSelectors'
import styled from 'styled-components'
export default function PLExplanation() {
export default function InstitutionsPartenaires() {
const unit = useSelector(targetUnitSelector)
return (
<section>
<Trans i18nKey="simulateurs.explanation.pamc">
<FromBottom>
<h2>Vos institutions partenaires</h2>
<div className="ui__ box-container">
<FromBottom>
<h2>
<Trans i18nKey="simulateurs.explanation.institutions.titre">
Vos institutions partenaires
</Trans>
</h2>
<div className="ui__ full-width box-container">
<Condition expression="entreprise . activité . libérale réglementée">
<CotisationsUrssaf rule="dirigeant . indépendant . PL . cotisations Urssaf" />
<CaisseRetraite />
<Condition expression="dirigeant . indépendant . PL . PAMC . participation CPAM > 0">
<div className="ui__ card box">
<a
target="_blank"
href="https://www.ameli.fr/assure/droits-demarches/salaries-travailleurs-independants-et-personnes-sans-emploi/emploi-independant-non-salarie/praticien-auxiliaire-medical"
>
<LogoImg src={assuranceMaladieSrc} title="Logo CPAM" />
</a>
<p className="ui__ notice">
</Condition>
<WhenNotApplicable dottedName="entreprise . activité . libérale réglementée">
<CotisationsUrssaf rule="dirigeant . indépendant . cotisations et contributions" />
</WhenNotApplicable>
<ImpôtsDGFIP />
<Condition expression="dirigeant . indépendant . PL . PAMC . participation CPAM > 0">
<div className="ui__ card box">
<a
target="_blank"
href="https://www.ameli.fr/assure/droits-demarches/salaries-travailleurs-independants-et-personnes-sans-emploi/emploi-independant-non-salarie/praticien-auxiliaire-medical"
>
<LogoImg src={assuranceMaladieSrc} title="Logo CPAM" />
</a>
<p className="ui__ notice">
<Trans i18nKey="simulateurs.explanation.institutions.cpam">
En tant que professionnel de santé conventionné, vous
bénéficiez d'une prise en charge d'une partie de vos
cotisations par l'Assurance Maladie.
</p>
<p className="ui__ lead">
<Emoji emoji="🎁" />{' '}
<Value
unit={unit}
displayedUnit="€"
expression="dirigeant . indépendant . PL . PAMC . participation CPAM"
/>
</p>
</div>
</Condition>
</div>
<Condition expression="dirigeant . indépendant . cotisations et contributions . exonérations . ACRE > 0">
<p className="ui__ notice">
{' '}
</Trans>
</p>
<p className="ui__ lead">
<Emoji emoji="🎁" />{' '}
<Value
unit={unit}
displayedUnit="€"
expression="dirigeant . indépendant . PL . PAMC . participation CPAM"
/>
</p>
</div>
</Condition>
</div>
<Condition expression="dirigeant . indépendant . cotisations et contributions . exonérations . ACRE > 0">
<p className="ui__ notice">
<Trans i18nKey="simulateurs.explanation.institutions.notice acre">
Les montants indiqués ci-dessus sont calculés sans prendre en
compte l'exonération de début d'activité ACRE
</p>
</Condition>
</FromBottom>
</Trans>
</Trans>
</p>
</Condition>
</FromBottom>
</section>
)
}
@ -77,6 +89,28 @@ export function CotisationsUrssaf({ rule }: { rule: DottedName }) {
)
}
export function ImpôtsDGFIP() {
const unit = useSelector(targetUnitSelector)
return (
<Condition expression="impôt > 0">
<div className="ui__ card box">
<a target="_blank" href="https://www.impots.gouv.fr">
<LogoImg src={dgfipSrc} title="logo DGFiP" />
</a>
<p className="ui__ notice">
<Trans i18nKey="simulateurs.explanation.institutions.dgfip">
La direction générale des finances publiques (DGFiP) est l'organisme
qui collecte l'impôt sur le revenu.
</Trans>
</p>
<p className="ui__ lead">
<Value unit={unit} displayedUnit="€" expression="impôt . montant" />
</p>
</div>
</Condition>
)
}
function CaisseRetraite() {
const engine = useEngine()
const unit = useSelector(targetUnitSelector)
@ -130,4 +164,5 @@ function CaisseRetraite() {
const LogoImg = styled.img`
padding: 1rem;
height: 5rem;
max-width: 100%;
`

View File

@ -1630,13 +1630,14 @@ simulateurs:
soutien: <0>Listening and support</0><1>An <2>initial listening and
psychological support unit</2> has been set up for company directors
weakened by the crisis.</1><2><0>{emoji('📞')}</0> 08 05 65 50 50</2>
pamc: <0><0>Your partner institutions</0><1><0><0><0></0></0><1>Contributions
collected by Urssaf, which are used to finance social security (health
insurance, family allowances, dependency
care).</1><2><0></0></2></0><1></1><2><0><0><0></0></0><1>As a contracted
health professional, you benefit from having part of your contributions
covered by the Assurance Maladie.</1><2><0></0>
<2></2></2></0></2></1></0>
institutions:
cpam: As a health professional under agreement, you benefit from a part of your
contributions being covered by the Health Insurance.
dgfip: The Directorate General of Public Finances (DGFiP) is the body that
collects income tax.
notice acre: The amounts indicated above are calculated without taking into
account the ACRE start-up exemption
titre: Your partner institutions
inversionFail: >-
The amount entered results in an impossible result. This is due to a
threshold effect in the calculation of contributions.

View File

@ -1204,6 +1204,14 @@ simulateurs:
explanation:
CNAPL: Elle recouvre les cotisations liées à votre retraite et au régime
d'invalidité-décès.
institutions:
cpam: En tant que professionnel de santé conventionné, vous bénéficiez d'une
prise en charge d'une partie de vos cotisations par l'Assurance Maladie.
dgfip: La direction générale des finances publiques (DGFiP) est l'organisme qui
collecte l'impôt sur le revenu.
notice acre: Les montants indiqués ci-dessus sont calculés sans prendre en
compte l'exonération de début d'activité ACRE
titre: Vos institutions partenaires
pamc: <0><0>Vos institutions
partenaires</0><1><0></0><1></1><2><0><0><0></0></0><1>En tant que
professionnel de santé conventionné, vous bénéficiez d'une prise en charge

View File

@ -3,7 +3,7 @@ import Value, { Condition } from 'Components/EngineValue'
import PeriodSwitch from 'Components/PeriodSwitch'
import SimulateurWarning from 'Components/SimulateurWarning'
import Simulation from 'Components/Simulation'
import { CotisationsUrssaf } from 'Components/simulationExplanation/PLExplanation'
import { CotisationsUrssaf } from 'Components/simulationExplanation/InstitutionsPartenaires'
import { SimulationGoal, SimulationGoals } from 'Components/SimulationGoals'
import 'Components/TargetSelection.css'
import { EngineContext, useEngine } from 'Components/utils/EngineContext'

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 12 KiB