/* @flow */ import type { FicheDePaie } from 'Types/ResultViewTypes' import withColours from 'Components/utils/withColours' import { compose } from 'ramda' import React, { Fragment } from 'react' import { Trans } from 'react-i18next' import { connect } from 'react-redux' import FicheDePaieSelectors from 'Selectors/ficheDePaieSelectors' import Montant from './Montant' import './PaySlip.css' import RuleLink from './RuleLink' type ConnectedPropTypes = ?FicheDePaie & { colours: { lightestColour: string } } const PaySlip = ({ colours: { lightestColour }, ...ficheDePaie }: ConnectedPropTypes) => { if (!Object.values(ficheDePaie).length) { return null } const { salaireBrut, avantagesEnNature, salaireNetDeCotisations, salaireDeBase, salaireChargé, indemnitésSalarié, rémunérationNetteImposable, nombreHeuresTravaillées, salaireNet, réductionsDeCotisations, cotisations, totalCotisations, salaireNetAprèsImpôt, impôt } = ficheDePaie return (
Heures travaillées par mois : {nombreHeuresTravaillées}
{/* Section salaire brut */}

Salaire

{(avantagesEnNature.montant !== 0 || indemnitésSalarié.montant !== 0) && ( <> {salaireDeBase.montant} )} {avantagesEnNature.montant !== 0 && ( <> {avantagesEnNature.montant} )} {indemnitésSalarié.montant !== 0 && ( <> {indemnitésSalarié.montant} )} {salaireBrut.montant}
{/* Section cotisations */}

Cotisations sociales

Part employeur

Part salariale

{cotisations.map(([section, cotisationList]) => (
{section}
{cotisationList.map(cotisation => ( {cotisation.montant.partPatronale} {cotisation.montant.partSalariale} ))}
))}
Réductions
{-réductionsDeCotisations.montant} {0} {/* Total cotisation */}
Total des retenues
{totalCotisations.partPatronale} {totalCotisations.partSalariale} {/* Salaire chargé */} {salaireChargé.montant} {0}
{/* Section salaire net */}

Salaire net

{/* Rémunération nette imposable */} {rémunérationNetteImposable.montant} {/* Salaire net */} {salaireNetDeCotisations.montant} {avantagesEnNature.montant !== 0 ? ( <> {/* Avantages en nature */} {-avantagesEnNature.montant} {/* Salaire net */} {salaireNet.montant} ) : null} {-impôt.montant} {salaireNetAprèsImpôt.montant}

Le simulateur vous aide à comprendre votre bulletin de paie, sans lui être opposable. Pour plus d'informations, rendez vous sur  service-public.fr .

Il ne prend pour l'instant pas en compte les accords et conventions collectives, ni la myriade d'aides aux entreprises. Trouvez votre convention collective ici, et explorez les aides sur  aides-entreprises.fr.

) } export default compose( withColours, connect( FicheDePaieSelectors, {} ) )(PaySlip)