mon-entreprise/source/components/PaySlipSections.js

90 lines
2.5 KiB
JavaScript

import { T } from 'Components'
import Value from 'Components/Value'
import React from 'react'
import RuleLink from './RuleLink'
export let SalaireBrutSection = ({ getRule }) => {
let avantagesEnNature = getRule(
'contrat salarié . rémunération . avantages en nature'
),
indemnitésSalarié = getRule('contrat salarié . indemnités salarié'),
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'),
primes = getRule('contrat salarié . rémunération . primes')
return (
<div className="payslip__salarySection">
<h4 className="payslip__salaryTitle">
<T>Salaire</T>
</h4>
<Line rule={salaireDeBase} />
{!!avantagesEnNature?.nodeValue && (
<Line
rule={getRule(
'contrat salarié . rémunération . avantages en nature . montant'
)}
/>
)}
{!!indemnitésSalarié?.nodeValue && <Line rule={indemnitésSalarié} />}
{!!heuresSupplémentaires?.nodeValue && (
<Line rule={heuresSupplémentaires} />
)}
{!!primes?.nodeValue && <Line rule={primes} />}
{rémunérationBrute.nodeValue !== salaireDeBase.nodeValue && (
<Line rule={rémunérationBrute} />
)}
</div>
)
}
export let Line = ({ rule, ...props }) => (
<>
<RuleLink {...rule} />
<Value {...rule} nilValueSymbol="—" unit="€" {...props} />
</>
)
export let SalaireNetSection = ({ getRule }) => {
let avantagesEnNature = getRule(
'contrat salarié . rémunération . avantages en nature'
)
let impôt = getRule('impôt')
let netImposable = getRule('contrat salarié . rémunération . net imposable')
return (
<div className="payslip__salarySection">
<h4 className="payslip__salaryTitle">
<T>Salaire net</T>
</h4>
{netImposable && <Line rule={netImposable} />}
{avantagesEnNature.nodeValue && (
<>
{/* Salaire net de cotisations */}
<Line
rule={getRule(
'contrat salarié . rémunération . net de cotisations'
)}
/>
{/* Avantages en nature */}
<Line
negative
rule={getRule(
'contrat salarié . rémunération . avantages en nature . montant'
)}
/>
</>
)}
<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>
)
}