From 40423b8b6b8a15869052839cda5caf8ed21255a5 Mon Sep 17 00:00:00 2001 From: Mael Thomas Date: Wed, 10 Aug 2016 16:13:17 +0200 Subject: [PATCH] =?UTF-8?q?Trouver=20les=20variables=20appel=C3=A9es=20et?= =?UTF-8?q?=20non=20calculables?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- containers/Analyse.js | 53 +++++++++++++++++++ model.js | 11 ++-- .../cdd/CIF.WIP.yaml | 2 +- .../cdd/indemnité_fin_contrat.WIP.yaml | 2 +- selectors.js | 5 ++ 5 files changed, 65 insertions(+), 8 deletions(-) diff --git a/containers/Analyse.js b/containers/Analyse.js index 1aa5669ca..3e3631de3 100644 --- a/containers/Analyse.js +++ b/containers/Analyse.js @@ -1,7 +1,60 @@ import React, { Component } from 'react' +import {connect} from 'react-redux' +import {usedVariables} from '../selectors' + +let mapStateToProps = state => ( + { + usedVariables: usedVariables(state) + } +) + + +@connect(mapStateToProps) export default class Analyse extends Component { render() { + let {usedVariables} = this.props, + calculable = usedVariables[5].calculable + + For each of these cases, extract used variables. Regexp, remove accents, list of variables. + check + count all + + + let scalarMult = value => { + let [match, multiple, variable] = value.match(/(?:([0-9])*\s\*\s)?((?:[a-z]|\s|_)+)/g) + } + + let possibilities = { + linear: { + base: 'scalar mult', + limit: 'scalar mult', + historique: null, + // VAR/case: logic predicate + }, + marginalRateTaxScale: { + base: 'scalar mult', + // VAR/case: logic predicate + }, + concerne: 'logic', + 'ne concerne pas': 'logic', + logique: 'logic', // predicates leading to a boolean, + 'logique numérique': 'numeric logic', // predicates leading to a number + + /* + logic = string ? logic predicate -> & the rest + || list of string predicates : || + */ + } + + + + + + + + console.log(calculable); + return (
Analyse
) } } diff --git a/model.js b/model.js index 1e6471970..40925e4dd 100644 --- a/model.js +++ b/model.js @@ -63,17 +63,16 @@ let // Gardons seulement les variables ayant une implémentation : capable de faire un calcul calculable: R.filter(itemIsCalculable)(mergedVariableItems) }} - )(groupedItemsByVariable) - -let calculableItems = + )(groupedItemsByVariable), + mergedItems = R.values(mergedItemsByVariable), + calculableItems = R.pipe( R.values, R.pluck('calculable'), R.unnest - )(mergedItemsByVariable), - mergedItems = R.values(mergedItemsByVariable) + )(mergedItemsByVariable) + -console.log('LA', mergedItems) export { groupedItemsByVariable, calculableItems, diff --git a/parameters/prélèvements-sociaux-activité/cdd/CIF.WIP.yaml b/parameters/prélèvements-sociaux-activité/cdd/CIF.WIP.yaml index 23f5f3ffc..2a703e90c 100644 --- a/parameters/prélèvements-sociaux-activité/cdd/CIF.WIP.yaml +++ b/parameters/prélèvements-sociaux-activité/cdd/CIF.WIP.yaml @@ -12,6 +12,6 @@ - embauche en CDI suivant le CDD # - OU CDD prolongé en CDI - linéaire: + linear: base: assiette cotisations sociales historique: 9.999999 diff --git a/parameters/prélèvements-sociaux-activité/cdd/indemnité_fin_contrat.WIP.yaml b/parameters/prélèvements-sociaux-activité/cdd/indemnité_fin_contrat.WIP.yaml index c365d5c0a..3fdfb4348 100644 --- a/parameters/prélèvements-sociaux-activité/cdd/indemnité_fin_contrat.WIP.yaml +++ b/parameters/prélèvements-sociaux-activité/cdd/indemnité_fin_contrat.WIP.yaml @@ -18,6 +18,6 @@ ne concerne pas : - engagement employeur complément formation professionnelle - contrat jeune vacances (contrat conclu avec un jeune pendant ses vacances scolaires ou universitaires.) -linéaire: +linear: base: salaire brut historique: .1 diff --git a/selectors.js b/selectors.js index 8f9e8dd0f..72b7c901e 100644 --- a/selectors.js +++ b/selectors.js @@ -55,3 +55,8 @@ export let variablesSelector = createSelector( )(selectedTags) )(mergedItems) ) + +export let usedVariables = createSelector( + [variablesSelector], + variables => variables +)