1
0
Fork 0
mirror of https://github.com/betagouv/mon-entreprise synced 2025-02-10 01:05:02 +00:00
mon-entreprise/source/components/PaySlipSections.js
Maxime Quandalle 57bb595884
😷 Page Coronavirus et intégration du chômage partiel (#926)
Suite à la crise du coronavirus le gouvernement a élargi le dispositif
d'activité partielle et encouragé son recours massif.

Ce commit contient les modifications suivantes :

* Intégration de l'activité partielle sur le simulateur salarié ;
* Création d'une page /coronavirus incluant un simulateur spécifique pour le
  chômage partiel ainsi que des informations générale sur les dispositifs
  gouvernementaux. Référencement de cette page sur la page d'accueil et sur
  le simulateur salarié ;
* Grosse refacto du calcul de la CSG/CRDS pour y inclure le calcul des revenus
  de remplacement. Corrige aussi des erreurs pour la CSG des salariés
  bénéficiant de la DFS, et intègre l'exonération de CSG à Mayotte ;
* Légères modifications de la fenêtre « prochaines question » ;
* Affichage d'un placeholder sur les inputs des questions.

Co-authored-by: Johan Girod <johangirod@gmail.com>
2020-03-22 23:14:51 +01:00

113 lines
3.4 KiB
JavaScript

import Value from 'Components/Value'
import React from 'react'
import { Trans } from 'react-i18next'
import { useSelector } from 'react-redux'
import { defaultUnitSelector } from 'Selectors/analyseSelectors'
import RuleLink from './RuleLink'
export let SalaireBrutSection = ({ getRule }) => {
let avantagesEnNature = getRule(
'contrat salarié . rémunération . avantages en nature'
),
indemnitésSalarié = getRule('contrat salarié . CDD . indemnités salarié'),
remboursementDeFrais = getRule('contrat salarié . frais professionnels'),
heuresSupplémentaires = getRule(
'contrat salarié . rémunération . heures supplémentaires'
),
salaireDeBase = getRule('contrat salarié . rémunération . brut de base'),
rémunérationBrute = getRule('contrat salarié . rémunération . brut'),
chômagePartielIndemnité = getRule(
'contrat salarié . activité partielle . indemnités'
),
chômagePartielAbsence = getRule(
'contrat salarié . activité partielle . retrait activité partielle'
),
primes = getRule('contrat salarié . rémunération . primes')
return (
<div className="payslip__salarySection">
<h4 className="payslip__salaryTitle">
<Trans>Salaire</Trans>
</h4>
<Line rule={salaireDeBase} />
{!!avantagesEnNature?.nodeValue && (
<Line
rule={getRule(
'contrat salarié . rémunération . avantages en nature . montant'
)}
/>
)}
{chômagePartielIndemnité?.nodeValue && (
<>
<Line rule={chômagePartielAbsence} />
<Line rule={chômagePartielIndemnité} />
</>
)}
{!!heuresSupplémentaires?.nodeValue && (
<Line rule={heuresSupplémentaires} />
)}
{!!primes?.nodeValue && <Line rule={primes} />}
{!!remboursementDeFrais?.nodeValue && (
<Line rule={remboursementDeFrais} />
)}
{!!indemnitésSalarié?.nodeValue && <Line rule={indemnitésSalarié} />}
{rémunérationBrute.nodeValue !== salaireDeBase.nodeValue && (
<Line rule={rémunérationBrute} />
)}
</div>
)
}
export let Line = ({ rule, ...props }) => {
const defaultUnit = useSelector(defaultUnitSelector)
return (
<>
<RuleLink {...rule} />
<Value
{...rule}
nilValueSymbol="—"
defaultUnit={defaultUnit}
{...props}
/>
</>
)
}
export let SalaireNetSection = ({ getRule }) => {
let avantagesEnNature = getRule(
'contrat salarié . rémunération . avantages en nature . montant'
)
let impôt = getRule('impôt')
let netImposable = getRule('contrat salarié . rémunération . net imposable')
const retenueTitresRestaurant = getRule(
'contrat salarié . frais professionnels . titres-restaurant . montant'
)
return (
<div className="payslip__salarySection">
<h4 className="payslip__salaryTitle">
<Trans>Salaire net</Trans>
</h4>
{netImposable && <Line rule={netImposable} />}
{(avantagesEnNature.nodeValue || retenueTitresRestaurant.nodeValue) && (
<Line
rule={getRule('contrat salarié . rémunération . net de cotisations')}
/>
)}
{!!avantagesEnNature.nodeValue && (
<Line negative rule={avantagesEnNature} />
)}
{!!retenueTitresRestaurant.nodeValue && (
<Line negative rule={retenueTitresRestaurant} />
)}
<Line rule={getRule('contrat salarié . rémunération . net')} />
{!!impôt && (
<>
<Line negative rule={impôt} />
<Line
rule={getRule('contrat salarié . rémunération . net après impôt')}
/>
</>
)}
</div>
)
}