mirror of
https://github.com/betagouv/mon-entreprise
synced 2025-02-09 05:15:02 +00:00
00b122fa97
Gros changements en perspective : - Supprime la notion de période, au bénéfice de celle d'unité (`période : mensuelle` devient `unité: €/mois`) - Améliore les rapports d'erreur avec des messages plus clair - Ajoute un avertissement lorsque des types ne sont pas compatible - Ajoute la conversion automatique d'unité dans le moteur - Ajoute une notion d'unité par défaut de la simulation, c'est l'unité vers laquelle les règles qui ne spécifient pas d'unité seront converties - Ajoute une notion d'unité par défaut des règles, qui spécifie l'unité de la règle qui prévaut lorsque qu'il n'y a pas d'unité par défaut de la simulation (utile pour les question ou pour s'assurer du bon type d'une règle)
22 lines
588 B
JavaScript
22 lines
588 B
JavaScript
import { evaluateNode } from 'Engine/evaluation'
|
|
import { filter, map, path, pipe, unnest, values } from 'ramda'
|
|
|
|
let getControls = path(['explanation', 'contrôles'])
|
|
export let evaluateControls = (cache, situationGate, parsedRules) =>
|
|
pipe(
|
|
values,
|
|
filter(getControls),
|
|
map(rule =>
|
|
getControls(rule).map(control => ({
|
|
...control,
|
|
evaluated: evaluateNode(
|
|
{ ...cache, contextRule: [rule.dottedName] },
|
|
situationGate,
|
|
parsedRules,
|
|
control.testExpression
|
|
)
|
|
}))
|
|
),
|
|
unnest,
|
|
filter(control => control.evaluated.nodeValue === true)
|
|
)(cache)
|