Merge pull request #472 from betagouv/doc-formation-pro

:doc: Documentation de fiche formation pro
pull/449/head
Mael 2019-02-22 12:55:04 +01:00 committed by GitHub
commit 99303348bd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 44 additions and 31 deletions

View File

@ -79,6 +79,13 @@ export let evaluateArrayWithFilter = (evaluationFilter, reducer, start) => (
return rewriteNode(node, nodeValue, explanation, missingVariables)
}
export let defaultNode = nodeValue => ({
nodeValue,
// eslint-disable-next-line
jsx: nodeValue => <span className="value">{nodeValue}</span>,
isDefault: true
})
export let parseObject = (recurse, objectShape, value) => {
let recurseOne = key => defaultValue => {
if (!value[key] && !defaultValue)

View File

@ -48,7 +48,8 @@ import {
collectNodeMissing,
mergeAllMissing,
mergeMissing,
bonus
bonus,
defaultNode
} from './evaluation'
import {
findRuleByName,
@ -68,12 +69,6 @@ import { trancheValue } from './mecanisms/barème'
import buildSelectionView from './mecanismViews/Selection'
import uniroot from './uniroot'
let constantNode = constant => ({
nodeValue: constant,
// eslint-disable-next-line
jsx: nodeValue => <span className="value">{nodeValue}</span>
})
let decompose = (recurse, k, v) => {
let subProps = dissoc('composantes')(v),
explanation = v.composantes.map(c => ({
@ -583,8 +578,8 @@ export let mecanismSum = (recurse, k, v) => {
export let mecanismReduction = (recurse, k, v) => {
let objectShape = {
assiette: false,
abattement: constantNode(0),
franchise: constantNode(0),
abattement: defaultNode(0),
franchise: defaultNode(0)
}
let effect = ({ assiette, abattement, franchise, décote }) => {
@ -650,9 +645,9 @@ export let mecanismProduct = (recurse, k, v) => {
let objectShape = {
assiette: false,
taux: constantNode(1),
facteur: constantNode(1),
plafond: constantNode(Infinity)
taux: defaultNode(1),
facteur: defaultNode(1),
plafond: defaultNode(Infinity)
}
let effect = ({ assiette, taux, facteur, plafond }) => {
let mult = (base, rate, facteur, plafond) =>
@ -684,7 +679,7 @@ export let mecanismProduct = (recurse, k, v) => {
</span>
<span className="value">{makeJsx(explanation.assiette)}</span>
</li>
{explanation.taux.explanation && (
{!explanation.taux.isDefault && (
<li key="taux">
<span className="key">
<Trans>taux</Trans>:{' '}
@ -692,7 +687,7 @@ export let mecanismProduct = (recurse, k, v) => {
<span className="value">{makeJsx(explanation.taux)}</span>
</li>
)}
{explanation.facteur.explanation && (
{!explanation.facteur.isDefault && (
<li key="facteur">
<span className="key">
<Trans>facteur</Trans>:{' '}
@ -700,7 +695,7 @@ export let mecanismProduct = (recurse, k, v) => {
<span className="value">{makeJsx(explanation.facteur)}</span>
</li>
)}
{explanation.plafond.explanation && (
{!explanation.plafond.isDefault && (
<li key="plafond">
<span className="key">
<Trans>plafond</Trans>:{' '}
@ -800,7 +795,7 @@ export let mecanismScale = (recurse, k, v) => {
let tranches = desugarScale(recurse)(v['tranches']),
objectShape = {
assiette: false,
multiplicateur: constantNode(1)
multiplicateur: defaultNode(1)
}
let effect = ({ assiette, multiplicateur: multiplicateur, tranches }) => {
@ -831,7 +826,7 @@ export let mecanismScale = (recurse, k, v) => {
export let mecanismContinuousScale = (recurse, k, v) => {
let objectShape = {
assiette: false,
multiplicateur: constantNode(1)
multiplicateur: defaultNode(1)
}
let effect = ({ assiette, multiplicateur, points }) => {
if (anyNull([assiette, multiplicateur])) return null

View File

@ -2124,6 +2124,12 @@
collecteur: OPCA
branche: formation
# TODO majoration pour les entreprises de travail temporaire
#
description: Cette contribution obligatoire est à verser à l'OPCA désigné par la branche conventionnelle de l'entreprise, ou à défaut à un OPCA interprofessionnel.
note: |
Une part supplémentaire peut-être obligatoire en fonction des accords collectifs d'une entreprise.
> Par exemple pour la convention collective Syntec, un supplément de 0.025% est obligatoire.
période: flexible
formule:
@ -2135,6 +2141,8 @@
taux: 0.55%
- sinon:
taux: 1%
références:
fiche Ministère du travail: https://travail-emploi.gouv.fr/formation-professionnelle/entreprises-et-formation/article/participation-financiere-des-entreprises-au-developpement-de-la-formation
- espace: contrat salarié
nom: maladie

View File

@ -84,18 +84,21 @@
valeur attendue: 1
# TODO implémenter les taux variables
# - nom: mon taux
# format: pourcentage
# - test: Multiplication simple
# formule:
# multiplication:
# assiette: mon assiette
# taux: mon taux
# This should work, but with the use of objectShape & co, the short circuits are not performed
#- test: Multiplication complète
# formule:
# multiplication:
# assiette: mon assiette
# facteur: mon facteur
# plafond: mon plafond
# taux: 0.5%
#
# exemples:
# - nom: exemple
# situation:
# mon assiette: 100
# mon taux: 3%
# valeur attendue: 3
# exemples:
# - nom: Assiette manquante
# situation:
# mon facteur: 0
# mon plafond: 100
# valeur attendue: 0
# variables manquantes: []