92 lines
2.8 KiB
JavaScript
92 lines
2.8 KiB
JavaScript
import Value from 'Components/Value'
|
|
import React from 'react'
|
|
import { Trans } from 'react-i18next'
|
|
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'),
|
|
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'
|
|
)}
|
|
/>
|
|
)}
|
|
{!!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 }) => (
|
|
<>
|
|
<RuleLink {...rule} />
|
|
<Value {...rule} nilValueSymbol="—" unit="€" {...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>
|
|
)
|
|
}
|