Commit Graph

32 Commits (94847f29321474ed962193f528d0e6038efcaf3b)

Author SHA1 Message Date
Johan Girod b54b369669 🔨 ajoute la déduction tabac
🐛⚙️ et corrige un bug dans le moteur lorsque plusieurs règles en, remplace une autre
2020-01-07 15:53:32 +01:00
Johan Girod 00b122fa97 ⚙️ ajoute la conversion d'unité
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)
2019-12-16 11:34:04 +01:00
Johan Girod cb6d97e6de 💚 répare les test unitaires 2019-11-12 11:11:39 +01:00
Johan Girod f224272f5c 🔨⚙️🔥 refactore les règles pour une meilleure lisibilité
Et pour faire passer les tests jest au passage.
A noter : il faudra vraiment se pencher sur la notion d'applicable / non applicable
Une variable non applicable a une valeur '0' / 'false', mais une variable
à false n'est pas considérée comme non applicable. Je pense qu'il serait avantageux
de simplifier le modèle en introduisant une symetrie entre applicable si et la valeur
d'une variable.
2019-11-11 18:47:43 +01:00
Johan Girod 41d3e17ce2 wip 2019-11-11 18:47:43 +01:00
Johan Girod cb342ff7aa 🐛 corrections des bugs sur artiste et sportifs 2019-11-11 18:46:41 +01:00
Johan Girod 53f67bb329 🔨 debug les règles pour les sportifs 2019-11-11 18:46:41 +01:00
Johan Girod 66c09a8f64 ⚙️🔥 refactor parseReference pour moins de bugs
note: il y a encore du boulot, mais c'est mieux
2019-11-11 18:46:41 +01:00
Johan Girod 3bb5c1ec67 🔨 décommente les règles pour les sportifs 2019-11-11 18:45:54 +01:00
Johan Girod fa1614b5fe 🔨 ajoute la gestion des missings variables pour les remplacement 2019-11-11 18:45:54 +01:00
Johan Girod ccb8f47a83 ⚙️ ajoute la possibilité de desactiver une branche via un booléen 2019-11-11 18:45:11 +01:00
Johan Girod a63d02601f ⚙️ ajoute la gestion des filtre pour les variables remplacée 2019-11-11 18:44:34 +01:00
Johan Girod bf9c8dd011 ⚙️ supporte les tableaux de contextes pour les remplacement 2019-11-11 18:44:34 +01:00
Johan Girod f52b6b9808 ⚙️ ajoute la possibilité de restreindre le remplacement à un contexte donné 2019-11-11 18:44:34 +01:00
Johan Girod 988597a792 ⚙️ emplèche les boucles infinies dans le remplacement lorsque c'est possible 2019-11-11 18:44:34 +01:00
Johan Girod db3b2a514c ⚙️ ajoute un mécanisme de remplacement de règle
Co-authored-by: Maxime Quandalle <maxime.quandalle@beta.gouv.fr>
2019-11-11 18:44:34 +01:00
Johan Girod b2d0d4624a
🐎 améliore la performance du parsing
A peu près ~50% de gagné lors du parsing
Problème : long temps de blocage de l'UI lors du premier parsing des règles

Il reste encore quelques bugs
2019-09-13 10:23:55 +02:00
Johan Girod a60d86a6d5
remove unecessary abstraction: rewriteNode 2019-09-13 10:23:55 +02:00
Maxime Quandalle 4e4caab3da ⚙️ Ne pas afficher les fonctions désactivées
TODO: Mettre à jour immédiatement la liste des questions suivantes (QuickLinks) ?
2019-09-09 11:33:47 +02:00
Maxime Quandalle 01bb90e61f 🔨 Amélioration du support des stages
- Ajout d'un avertissement (le stage n'est pas un contrat de travail)
- Ajout des traductions
- D'avantage d'utilisation de "rend non applicable"
- Une modification de parentDependency pour prendre un compte que
  "contrat stage" est maintenant un enum CDI | CDD | Stage plutôt qu'un
  boolean true | false.
2019-09-09 11:33:47 +02:00
Maxime Quandalle 89f370b182
Ajout d'une ruleProp "désactive" 2019-09-03 22:45:48 +02:00
Mael 60a8558daf Affichage des unités 2019-07-23 17:03:00 +02:00
Mael 413b6197ef 🐛 On arrête le parsing récursif quand formule d'inversion 2019-07-23 17:03:00 +02:00
Mael 1adce3e514 ⚙️ On abandonne NegatedVariable
C'est illisible dans l'explication, je n'arrive pas à faire mieux que '≠
oui'
2019-07-23 17:03:00 +02:00
Mael 7087b309fe Renommage de fichier 2019-07-12 10:33:02 +02:00
Mael 2834fbd053 Réparation et amélioration d'AnswerList
On affiche les prochaines questions. Super intéressant pour pouvoir
sauter directement à une question précise sans se taper toutes les
questions une par une.
2019-07-12 10:33:02 +02:00
Mael 99993af761 Finalisation de la refacto valeurs 2019-07-12 10:33:02 +02:00
Mael ed4d4a0d7a Mutualisation de <Value>
Remplacement de Montant par Value
Rétablissement des explications simu salarié
Possibilité de définir des objegtifs secondaires qui sont calculés mais
pas affichés par targetSelectuon
2019-07-12 10:33:02 +02:00
Mael 76b60afed7 1er affichage des unités : indemnité km vélo 2019-07-12 10:33:02 +02:00
Mael f234ebc9ac Résolution de la récursion du parse 2019-07-12 10:33:02 +02:00
Mael 9b4a3b9e57 ⚙️ parsedRules passe d'une liste à un object
Comme pendant l'évaluation et son objet cache, parsedRules est construit
au fur et à mesure du parsing sous la forme [dottedName]: parsedRule

Cela nous permet pendant le parsing de faire l'annotation de type et de
faire moins de boulot lors de l'évaluation

Problème :
- (presque fixé) dans l'inversion on produisait des références de variables pour le JSX
=> boucle infinie
- dans chiffre d'affaire, notre implé un peu bizarre fait une référence
de variables a priori circulaire, mais gérée par les variations. Or
pendant le parsing on parcourt évidemment toutes les branches sans les
évaluer. Sachant qu'on implémente ce cache parsedRules surtout pour les
unités, peut on garder la formule ainsi et simplement stocker 'chiffre
d'affaires': 'currently being parsed' pour éviter la boucle infinie ?
2019-07-12 10:33:02 +02:00
Mael 00e920d00f ⚙️ Renommage de treat en parse; reorg
Ce commit n'est pas complet, mais l'idée est lisible
2019-07-12 10:33:02 +02:00