- On veut pouvoir afficher un lien vers la règle définissant la [ref] lorsqu'on est dans une formule avec une référence virtuelle
- Si on fait référence dans une règle à une notification sans formule (juste applicable) la règle crash
En attendant une réecriture de l'inlining qui permette d'ajouter le contexte à la référence appelée (référence ou définition),
je préfère désactiver cette logique
Notons que l'aide à l'apprentissage est versée tant que l'apprenti n'est
pas en activité partielle à 100% -- et sans proratisation. Ce qui veut
dire que l'entreprise peut recevoir plus d'aides (en cumulant indemnité
partielle et prime à l'embauche d'apprenti) que son coût total, d'où une
valeur négative dans la case "coût total".
J'ai involontairement mergé un `it.only` dans #1136 qui désactive tous
les tests sauf un — utile en développement mais pas quelque chose que
l'on veut commiter sur `master`. La règle Eslint bloquera désormais ce
code.
Nous utilisions jusqu'à présent le code suivant pour évaluer la situation:
> mapObjIndexed(value => evaluateExpression(value), situation)
c'est à dire une évaluation ligne par ligne. Or si certaines valeurs de
la situation contiennent des références, il faut les évaluer dans le bon
ordre.
Avec cette modification, seul le parsage est fait lorsqu'on appelle
`setSituation` et l'évaluation est faite ultérieurement lorsque c'est
nécessaire avec la même logique que pour les règles.
L'implémentation a pour effet de bord de ne plus supprimer l'utilisation
de true / false dans la situation qui doivent être remplacés par "oui"
et "non".
Grâce aux récentes évolutions de Publicode, ce retour utilisateur
fréquent trouve une solution particulièrement simple et élégante en
remplaçant la valeur littérale du SMIC par une référence vers le SMIC
contractuel. Cela procure les avantages suivants :
- Le montant du SMIC est défini une seule fois dans la base de règles,
et on y fait référence partout où on l'utilise
- Vu que c'est la référence qui est stockée dans la "situation" on peut
répondre à la question "temps partiel" après avoir cliqué sur "SMIC"
dans la case "salaire brut" et le montant correspondant va
automatiquement se recalculer.
A nécessité quelques menues modifications du code qui gère les
références dans la situation pour corriger des bugs.
Fixes#649
Build a dependencies graph and detect cycles:
* Types and guards for nodes of the ParsedRules AST
* Simple visitor framework for the nodes and their `formule` sub-nodes
* Build a directed graph for dependencies using @dagrejs/graphlib
- Refacto la page de présentation des simulateurs
- Ajoute un objet de description des simulateurs existant (qui permet de boostraper un nouveau simulateur très rapidement)
Pour éviter les bugs comme celui corrigé dans caff99f qui était encore
présent dans la règle "contrat salarié . rémunération . brut de base .
équivalent temps plein"
La vérification de la cohérence d'unité n'est pas suffisamment stricte
pour détecter tous les problèmes, issue à venir.
Fixes#1131
L'affichage de l'unité par défaut est intrinsèquement fragile, et ne
permet pas facilement de pouvoir gérer la périodicité (afficher la
valeur pour un trimestre ou pour une année). Je pense qu'il faudrait
introduire un concept de "vue mensuelle" qui multiplie toutes les unités
par "1 mois".
Le mécanisme "allègement" proposaient ces deux paramètres ajoutant
beaucoup de complexité pour une seule utilisation dans la base de règle
qui peut être remplacée par une formule littérale.
Closes#1119