⚙️ Support des unités dans un barème linéaire

pull/638/head
Maxime Quandalle 2019-09-02 17:55:34 +02:00
parent 815f7579ef
commit 9327847360
4 changed files with 39 additions and 33 deletions

View File

@ -21,6 +21,9 @@
.barème table th {
font-weight: 500;
}
.barème table th:first-letter {
text-transform: uppercase;
}
.barème .tranche:nth-child(2n) {
background: #f1f1f1;
}

View File

@ -1,6 +1,7 @@
import classNames from 'classnames'
import { ShowValuesConsumer } from 'Components/rule/ShowValuesContext'
import withLanguage from 'Components/utils/withLanguage'
import { numberFormatter } from 'Components/Value'
import { trancheValue } from 'Engine/mecanisms/barème'
import { identity } from 'ramda'
import React from 'react'
@ -8,7 +9,6 @@ import { Trans } from 'react-i18next'
import { makeJsx } from '../evaluation'
import './Barème.css'
import { Node, NodeValuePointer } from './common'
import { numberFormatter } from 'Components/Value'
export let BarèmeAttributes = ({ explanation, lazyEval = identity }) => (
<>
@ -58,11 +58,13 @@ let Component = withLanguage(function Barème({
<Trans>Tranche de l&apos;assiette</Trans>
</th>
<th>
<Trans>
{explanation.tranches[0].taux != null
? 'Taux'
: 'Montant'}
</Trans>
{unit || (
<Trans>
{explanation.tranches[0].taux != null
? 'Taux'
: 'Montant'}
</Trans>
)}
</th>
{showValues && explanation.tranches[0].taux != null && (
<th>

View File

@ -1,10 +1,8 @@
import { defaultNode, evaluateObject } from 'Engine/evaluation'
import Barème from 'Engine/mecanismViews/Barème'
import variations from 'Engine/mecanisms/variations'
import { defaultNode, evaluateObject, parseObject } from 'Engine/evaluation'
import { decompose } from 'Engine/mecanisms/utils'
import variations from 'Engine/mecanisms/variations'
import Barème from 'Engine/mecanismViews/Barème'
import { val } from 'Engine/traverse-common-functions'
import { inferUnit, parseUnit } from 'Engine/units'
import { parseObject } from 'Engine/evaluation'
import { desugarScale } from './barème'
/* on réécrit en une syntaxe plus bas niveau mais plus régulière les tranches :
`en-dessous de: 1`
@ -61,6 +59,6 @@ export default (recurse, k, v) => {
barème: 'en taux',
type: 'numeric',
unit: explanation.assiette.unit
unit: v['unité'] || explanation.assiette.unit
}
}

View File

@ -4045,28 +4045,28 @@
- nom: barème trimestres générique
espace: protection sociale . retraite . trimestres validés par an
période: aucune
unité: trimestres
formule:
variations:
- si: oui
alors:
barème linéaire:
unité: trimestres
assiette: revenu moyen [annuel]
multiplicateur: SMIC horaire
tranches:
- en-dessous de: 150
montant: 0 trimestres
montant: 0
- de: 150
à: 300
montant: 1 trimestres
montant: 1
- de: 300
à: 450
montant: 2 trimestres
montant: 2
- de: 450
à: 600
montant: 3 trimestres
montant: 3
- au-dessus de: 600
montant: 4 trimestres
montant: 4
références:
cnav.fr: https://www.legislation.cnav.fr/Pages/bareme.aspx?Nom=salaire_validant_un_trimestre_montant_bar
@ -4080,59 +4080,62 @@
- si: entreprise . catégorie d'activité = 'libérale'
alors:
barème linéaire:
unité: trimestres
assiette: entreprise . chiffre d'affaires [annuel]
tranches:
- en-dessous de: 2880
montant: 0 trimestres
montant: 0
- de: 2880
à: 5062
montant: 1 trimestres
montant: 1
- de: 5062
à: 7266
montant: 2 trimestres
montant: 2
- de: 7266
à: 9675
montant: 3 trimestres
montant: 3
- au-dessus de: 9675
montant: 4 trimestres
montant: 4
- si:
une de ces conditions:
- entreprise . catégorie d'activité . service ou vente = 'vente de biens'
- entreprise . catégorie d'activité . restauration ou hébergement
alors:
barème linéaire:
unité: trimestres
assiette: entreprise . chiffre d'affaires [annuel]
tranches:
- en-dessous de: 4137
montant: 0 trimestres
montant: 0
- de: 4137
à: 7286
montant: 1 trimestres
montant: 1
- de: 7286
à: 10426
montant: 2 trimestres
montant: 2
- de: 10426
à: 20740
montant: 3 trimestres
montant: 3
- au-dessus de: 20740
montant: 4 trimestres
montant: 4
- sinon:
barème linéaire:
unité: trimestres
assiette: entreprise . chiffre d'affaires [annuel]
tranches:
- en-dessous de: 2412
montant: 0 trimestres
montant: 0
- de: 2412
à: 4239
montant: 1 trimestres
montant: 1
- de: 4239
à: 6071
montant: 2 trimestres
montant: 2
- de: 6071
à: 12030
montant: 3 trimestres
montant: 3
- au-dessus de: 12030
montant: 4 trimestres
montant: 4
références:
service-public.fr: https://www.service-public.fr/professionnels-entreprises/vosdroits/F23369