1er affichage des unités : indemnité km vélo

pull/481/head
Mael 2019-06-19 11:54:47 +02:00
parent f234ebc9ac
commit 76b60afed7
9 changed files with 40 additions and 22 deletions

View File

@ -35,7 +35,7 @@ export default ({ nodeValue, unit }) => {
{(formats[valueType !== 'number' ? valueType : unitText] ||
numberFormatter('decimal'))(nodeValue)}
 
{unit && unitText}
{unit && unitText !== '€' && unitText}
</div>
)
}

View File

@ -64,7 +64,7 @@ export default compose(
namespaceRules = findRuleByNamespace(flatRules, dottedName)
let displayedRule = analysedExample || analysedRule
console.log(displayedRule)
console.log('dr', displayedRule)
return (
<>
{this.state.viewSource ? (

View File

@ -74,7 +74,6 @@ export default (cache, situationGate, parsedRules, node) => {
...node,
...evaluatedAttributes,
...{ formule: evaluatedFormula },
unit: evaluatedFormula?.explanation?.unit,
nodeValue,
isApplicable,
missingVariables,

View File

@ -745,7 +745,8 @@ export let mecanismMin = (recurse, k, v) => {
explanation,
type: 'numeric',
category: 'mecanism',
name: 'le minimum de'
name: 'le minimum de',
unit: explanation[0].unit
}
}

View File

@ -51,6 +51,7 @@ import {
parseReference,
parseReferenceTransforms
} from './parseReference'
import { inferUnit } from 'Engine/units'
export let parse = (rules, rule, parsedRules) => rawNode => {
let onNodeType = cond([
@ -201,6 +202,12 @@ let mecanismOperation = (k, operatorFunction, symbol) => (recurse, k, v) => {
let explanation = v.explanation.map(recurse)
let unit = inferUnit(
k,
explanation[0].unit || undefined,
explanation[1].unit || undefined
)
let jsx = (nodeValue, explanation) => (
<Node
classes={'inlineExpression ' + k}
@ -223,6 +230,7 @@ let mecanismOperation = (k, operatorFunction, symbol) => (recurse, k, v) => {
jsx,
operator: symbol || k,
// is this useful ? text: rawNode,
explanation
explanation,
unit
}
}

View File

@ -1,3 +1,4 @@
// Reference to a variable
import React from 'react'
import { Trans } from 'react-i18next'
import { evaluateNode, makeJsx, rewriteNode } from './evaluation'
@ -18,8 +19,8 @@ export let parseReference = (rules, rule, parsedRules, filter) => ({
let parsedRule =
parsedRules[dottedName] ||
(console.log('uncached : from `', rule.dottedName, '` to `', dottedName) ||
parseRule(rules, findRuleByDottedName(rules, dottedName), parsedRules))
parseRule(rules, findRuleByDottedName(rules, dottedName), parsedRules)
let evaluate = (cache, situation, parsedRules, node) => {
let dottedName = node.dottedName,
// On va vérifier dans le cache courant, dict, si la variable n'a pas été déjà évaluée
@ -98,7 +99,8 @@ export let parseReference = (rules, rule, parsedRules, filter) => ({
name: partialReference,
category: 'variable',
fragments,
dottedName
dottedName,
unit: parsedRule.unit
}
}

View File

@ -8,6 +8,8 @@ import { evaluateNode, makeJsx, rewriteNode } from './evaluation'
import { parse } from 'Engine/parse'
export default (rules, rule, parsedRules) => {
if (rule.dottedName.includes('distance journalière'))
console.log('trr', rule, parsedRules)
if (parsedRules[rule.dottedName]) return parsedRules[rule.dottedName]
parsedRules[rule.dottedName] = 'being parsed'
@ -116,7 +118,8 @@ export default (rules, rule, parsedRules) => {
// Pas de propriété explanation et jsx ici car on est parti du (mauvais) principe que 'non applicable si' et 'formule' sont particuliers, alors qu'ils pourraient être rangé avec les autres mécanismes
...parsedRoot,
evaluate,
parsed: true
parsed: true,
unit: rule.unit || parsedRoot.formule?.explanation?.unit
}
return parsedRules[rule.dottedName]
}

View File

@ -82,7 +82,6 @@ export let analyseMany = (parsedRules, targetNames) => situationGate => {
// TODO: we should really make use of namespaces at this level, in particular
// setRule in Rule.js needs to get smarter and pass dottedName
let cache = { parseLevel: 0 }
console.log('orang', parsedRules)
let parsedTargets = targetNames.map(t => {
let parsedTarget = findRule(parsedRules, t)

View File

@ -4,6 +4,17 @@
- mois
- année
- nom: contrat salarié
icônes: 📄
question: Activité salariée ?
par défaut: oui
description: |
Le contrat qui lie une entreprise (via son établissement) à un individu, qui est alors son salarié.
Le contrat n'est en fait pas nécessaire dans le droit français, il est possible d'employer quelqu'un sans contrat par exemple dans les cas suivants:
- Particuliers employeurs : Plus de 8 heures par semaine ou de plus de 4 semaines consécutives dans l'année.
- CDI : La signature dun contrat de travail nest pas obligatoire dans certains cas. Cest le cas du Contrat de travail à Durée Indéterminée, considéré comme la forme normale et générale de la relation de travail entre un salarié et un employeur (Art. L1221-2 du Code du travail).
- espace: contrat salarié . indemnité kilométrique vélo
nom: yoyo
formule: distance annuelle * indemnité kilométrique
@ -22,7 +33,7 @@
formule:
le minimum de:
- distance annuelle * indemnité kilométrique
- 200
- plafond d'exonération
références:
fiche URSSAF: https://www.urssaf.fr/portail/home/employeur/calculer-les-cotisations/les-elements-a-prendre-en-compte/les-frais-professionnels/les-frais-de-transport/trajet-domicilelieu-de-travail/prise-en-charge-facultative-des/indemnites-kilometriques-velo.html
fiche service-public: https://www.service-public.fr/professionnels-entreprises/vosdroits/F33808
@ -32,6 +43,12 @@
active: oui
valeur attendue: 200
- espace: contrat salarié . indemnité kilométrique vélo
nom: plafond d'exonération
unité:
formule: 200
- espace: contrat salarié . indemnité kilométrique vélo
nom: indemnité kilométrique
unité: €/km
@ -675,17 +692,6 @@
compensation pour congés non pris: 39.6
valeur attendue: 290
- nom: contrat salarié
icônes: 📄
question: Activité salariée ?
par défaut: oui
description: |
Le contrat qui lie une entreprise (via son établissement) à un individu, qui est alors son salarié.
Le contrat n'est en fait pas nécessaire dans le droit français, il est possible d'employer quelqu'un sans contrat par exemple dans les cas suivants:
- Particuliers employeurs : Plus de 8 heures par semaine ou de plus de 4 semaines consécutives dans l'année.
- CDI : La signature dun contrat de travail nest pas obligatoire dans certains cas. Cest le cas du Contrat de travail à Durée Indéterminée, considéré comme la forme normale et générale de la relation de travail entre un salarié et un employeur (Art. L1221-2 du Code du travail).
- espace: contrat salarié
nom: assimilé salarié
description: |