⚙️ améliore la résolution des noms dans les règles
Lorsque l'on cherche un nom de règle, on laisse la possibilité à une règle de se référencer elle même, mais alors cette résolution est la dernière à être envisagée. Dans l'exemple : ```yaml b: 5 a . b: b ``` `a . b` référence bien `b` qui vaut `5` Et dans celui ci : ``` a: 0 a . b: remplace:a par: b * 5 valeur: 2 ``` `a . b` remplace `a` en la multipliant par sa propre valeur (ici 2) fix #1081, fix #1083pull/1300/head
parent
2669b7783d
commit
08e5b734ba
|
@ -1595,13 +1595,12 @@ contrat salarié . plafond sécurité sociale . renonciation proratisation:
|
|||
du plafond de la sécurité sociale (applicable pour les salariés à temps
|
||||
partiel), notamment afin d'augmenter le montant des cotisations vieillesse.
|
||||
par défaut: non
|
||||
|
||||
contrat salarié . plafond sécurité sociale . renonciation proratisation . plafond sécurité sociale:
|
||||
applicable si: temps de travail . quotité de travail < 100%
|
||||
remplace:
|
||||
- règle: plafond sécurité sociale
|
||||
par: plafond sécurité sociale temps plein
|
||||
|
||||
|
||||
contrat salarié . SMIC contractuel:
|
||||
description: >
|
||||
Valeur du SMIC pro-ratisé pour prendre en compte le temps partiel et utilisé pour la détermination du salaire minimum
|
||||
|
|
|
@ -451,7 +451,7 @@ Notifications affichées : contrat salarié . convention collective . contrôle
|
|||
`;
|
||||
|
||||
exports[`calculate simulations-salarié: CCN spectacle vivant 1`] = `
|
||||
"[3834,0,2500,1938,1856]
|
||||
"[3923,0,2500,1938,1856]
|
||||
Notifications affichées : contrat salarié . CDD . information, contrat salarié . convention collective . contrôle décharge"
|
||||
`;
|
||||
|
||||
|
|
|
@ -30,11 +30,11 @@ export function disambiguateRuleReference<R extends Record<string, RuleNode>>(
|
|||
contextName = '',
|
||||
partialName: string
|
||||
): keyof R {
|
||||
const possibleDottedName = [
|
||||
contextName,
|
||||
...ruleParents(contextName),
|
||||
'',
|
||||
].map((x) => (x ? x + ' . ' + partialName : partialName))
|
||||
const possibleDottedName = [contextName, ...ruleParents(contextName), '']
|
||||
.map((x) => (x ? x + ' . ' + partialName : partialName))
|
||||
// Rules can reference themselves, but it should be the last thing to check
|
||||
.sort((a, b) => (a === contextName ? 1 : b === contextName ? -1 : 0))
|
||||
|
||||
const dottedName = possibleDottedName.find((name) => name in rules)
|
||||
if (!dottedName) {
|
||||
syntaxError(
|
||||
|
|
|
@ -305,13 +305,18 @@ chaine de charactère:
|
|||
- situation:
|
||||
chaine de charactère: "'je t'y vois'"
|
||||
valeur attendue: je t'y vois
|
||||
# TODO
|
||||
# expression sur plusieurs lignes:
|
||||
# formule: >
|
||||
# salaire de base
|
||||
# + 2000
|
||||
# = 3000
|
||||
# exemples:
|
||||
# - situation:
|
||||
# salaire de base: 1000
|
||||
# - valeur attendue: true
|
||||
|
||||
|
||||
a: oui
|
||||
b: 5
|
||||
a . b: b + 5
|
||||
a . c: b + 5
|
||||
désambiguation du nom de règle 1:
|
||||
formule: a . b
|
||||
exemples:
|
||||
- valeur attendue: 10
|
||||
|
||||
désambiguation du nom de règle 2:
|
||||
formule: a . c
|
||||
exemples:
|
||||
- valeur attendue: 15
|
|
@ -204,30 +204,7 @@ convention hôtels cafés restaurants . frais de repas:
|
|||
remplace: frais de repas
|
||||
formule: 6 €/repas
|
||||
|
||||
frais de repas non remplacé:
|
||||
remplacement d'un nom de variable identique:
|
||||
formule: frais de repas
|
||||
exemples:
|
||||
- valeur attendue: 5
|
||||
|
||||
# Note: this would produce an infinite loop
|
||||
# frais de repas remplacé:
|
||||
# formule: convention hôtels cafés restaurants . frais de repas
|
||||
# exemples:
|
||||
# - nom: par défaut
|
||||
# valeur attendue: 5
|
||||
|
||||
|
||||
frais de repas2:
|
||||
formule: 5 €/repas
|
||||
|
||||
convention hôtels cafés restaurants2:
|
||||
formule: oui
|
||||
|
||||
convention hôtels cafés restaurants2 . remplaçeur:
|
||||
remplace: frais de repas2
|
||||
formule: 6 €/repas
|
||||
|
||||
frais de repas2 remplacé:
|
||||
formule: frais de repas2
|
||||
exemples:
|
||||
- valeur attendue: 6
|
||||
|
|
Loading…
Reference in New Issue