1
0
Fork 0
mirror of https://github.com/betagouv/mon-entreprise synced 2025-02-09 22:45:01 +00:00
Commit graph

46 commits

Author SHA1 Message Date
Johan Girod
2526499ab7 ⚙️ Ajoute le mécanisme somme pour les variables temporelles 2020-03-18 15:44:37 +01:00
Johan Girod
7b18252798 🔨 Première implémentation des variable temporelle
- Uniquement pour les valeur numérique
- Pour les cas simple applicable / non applicable (pas de cas mixte)
- Pas d'implémentation de mécanisme (addition / barème / etc)
2020-03-18 15:44:09 +01:00
Johan Girod
e4131eee28 ⚙️ 🔥 grosse modification des barèmes
- Il n'y a plus qu'un mécanisme barème dorénavant : c'est le barème marginal de l'impôt
- On peut utiliser des variables publicode pour chaque argument des tranches
- Le mécanisme barème linéaire est remplacé par le mécanisme "grille"
- Le mécanisme barème continu est remplacé par le mécanisme "taux progressif"
- Les vues sont unifiées et simplifiées
- Seule les tranches nécessaires sont évaluée
- Les unités fonctionnent dans les barèmes
- On précise les tranches d'un barème par leur plafond et non plus par leur plafond et seuil

fix #827
2020-02-25 11:16:36 +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
6b7f50fe4a ⚙️ ajoute la comparaison des dates 2019-12-16 11:33:38 +01:00
Johan Girod
e798dd6d02 ⚙️ support les mois au lieu de date complète 2019-12-16 11:33:38 +01:00
Johan Girod
a19843dc21 ⚙️ ajoute le parsing des dates 2019-12-16 11:33:38 +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
716d950733 ⚙️ ajoute la possibilité d'écrire des nombre dans les noms de variables 2019-11-11 18:45:54 +01:00
Maxime Quandalle
648fb249ed ⚙️ Meilleure grammaire pour les unités litérales
Deplacement de la détection de la règle "words" (ie une suite de mots)
du lexer/tokenizer vers le parser. Le lexer se contente de donner les
mots un à un, et une liste de "words" est détectée via une règle Nearley.

Cela permet de corriger l'ambiguité entre unités et noms de variables qui
est dépendante du contexte et ne peut donc pas être levée au niveau du lexer.
2019-10-29 11:40:16 +01:00
Maxime Quandalle
1e7730dd25
Snapshot testing
Ajout de tests de non-regressions des calculs afin d'éviter de déployer
silencieusement des effets de bord non-désirés dans les règles de calculs.

J'ai ajouté Jest pour sa fonction de snapshot testing qui est
particulièrement adaptée pour ce type de cas (voir #717). J'ai essayé
avec mocha-snapshot sans succès.

J'ai eu un petit peu de mal à configurer Jest, car il n'est pas possible
de ré-utiliser la configuration Webpack, qu'il faut alors dupliquer. C'est
pourquoi j'ai limité l'utilisation de Jest aux seuls tests de snapshot.
À voir s'il y a un intérêt à migrer les tests Mocha vers Jest ultérieurement.

Fixes #717
2019-10-22 10:35:31 +02:00
Maxime Quandalle
9be4ff0ca3
⚙️ Support des unités dans les formules litérales
Implémentation de #730
2019-10-17 15:04:06 +02:00
Johan Girod
33cc92a397
⚙️ ajoute l'opération unaire de négation à la grammaire 2019-09-25 10:01:33 +02:00
Johan Girod
59d4054e5d
ajoute des tests pour les expressionsé 2019-09-13 10:23:55 +02: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
37a3f5a139
🔨 meilleure gestion de l'ACRE / année de création
- On utilise la date de création avant 2019 / après 2019 pour savoir si la profession libérale est rattachée à la CIPAV
- On pose directement la question de l'ACRE, ce qui permet de ne pas faire d'approximation par défaut.
2019-09-06 15:31:17 +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
Marc Pasteur
ec0d5304d8 Bout de code inutile dans la grammaire 2019-06-17 14:41:49 +02:00
Mael
bf6455c33c 📝 ⚙️ Documentation de la grammaire 2019-06-04 16:38:10 +02:00
Mael
2e085dd71c Externalisation des fonctions de retraitement de la grammaire 2019-06-04 16:38:10 +02:00
Mael
dc08b0fd0f 🐛 Fin de la réfacto 2019-06-04 16:38:10 +02:00
Mael
bea8df51bc ⚙️ On rejette des interprétations ambigües de la grammaire 2019-06-04 16:38:10 +02:00
Mael
c0b1d6629f ⚙️ Pas d'espace intérieur aux parenthèses; filtres en crochets 2019-06-04 16:38:10 +02:00
Mael
80d3cfd17e Les objets produits par la grammaire sont traités par treatObject
Récursivement
2019-06-04 16:38:09 +02:00
Mael
3b978d061a Réécriture de la grammaire
Elle renvoit un objet qui est une vision prefixe du contenu parsé
2019-06-04 16:38:09 +02:00
Mael
a7d88e8514 Tentative de déplacement de treatString dans grammar.ne 2019-06-04 16:38:09 +02:00
Mael
ced2a37490 ⚙️ Grammaire d'expressions plus complexe
Elle permet des opérations chainées.
On peut maintenant faire formule: 3 + 5 + 6
Ou 3 * (ma variable + 4)
2019-06-04 16:38:09 +02:00
Johan Girod
92e65d444c wip 2019-03-19 16:55:37 +01:00
Mael
49c1e121b4 ⚙️ Périodes en préfixe 2018-11-23 16:01:13 +00:00
Mael
29071e8d8e ⚙️ Noeud variableTransform qui regroupe les filtres et les périodes
Ce n'est pas très propre, mais difficile de faire autrement sans revoir
l'architecture des filtres, du cache, des sélecteurs de la fiche de paie
et du l'explicaiton des cotisations...
2018-11-23 16:01:13 +00:00
Mael
2addd326a1 🔨 Complémentaire moins chère pour le régime Alsace-Moselle 2018-11-08 14:08:27 +00:00
Mael
d0726b616c :cogs: Ajout du type booléen dans la syntaxe 2018-09-05 17:40:19 +02:00
Mael
c5d21fab6b 🐛 🔨 Erreur dans le calcul du net imposable 2018-06-27 17:04:01 +00:00
Laurent Bossavit
54f87924f9 🐛 Un identifiant de variable ne peut commencer par une apostrophe 2017-09-30 10:15:07 +02:00
Laurent Bossavit
38db8d4762 ⚙️ Autorise les apostrophes dans les noms de variables 2017-09-30 10:15:07 +02:00
Laurent Bossavit
da80252ee7 ⚙️ Autorise les décimaux et pourcentages dans les expressions 2017-09-30 10:14:21 +02:00
Laurent Bossavit
d4c74daa52 🐛 Corrige la régression sur la majoration chômage 2017-09-29 14:05:26 +02:00
Laurent Bossavit
1426af4f6b ⚙️ Fournit un opérateur d'inégalité 2017-09-29 14:05:26 +02:00
Laurent Bossavit
d3400df8c3 ⚙️ Remplace les événements et motifs par une comparaison explicite 2017-09-29 14:04:23 +02:00
Laurent Bossavit
bb7d16205f ⚙️ Tentative pour exploiter les composantes 2017-07-04 10:14:57 +02:00
mama
15776d21cb ⚙️ Ajout du mécanisme de négation de variables booléennes
Utilisation du symbole ¬ pour l'instant. Sûrement sujet à évolutions
2017-05-09 15:48:08 +02:00
mama
c16d0fa823 Toute règle peut donner un simulateur sur /simu/:name
Testé sur les règles du CDD, AGIRC, APEC
TODO :
- finir AGIRC APEC
  - !statut cadre
  - assiette cotisations sociales -> indemnités CDD -> espace CDD -> CDD
booléen
2017-05-09 14:47:55 +02:00
Mael Thomas
376e72fc47 [moteur] conciliation des mécanismes existants avec le nouveau parsing d'expressions 2017-03-09 15:19:44 +01:00
Mael Thomas
1a9d112eca [moteur] intégration du nouveau type de noeud 'Variable' dans l'AST 2017-03-08 17:48:53 +01:00
Mael Thomas
c1cfb20bf1 [moteur] Le parser Nearley renvoit maintenant un AST similaire au notre
Il reste à le reparser pour résoudre les variables en fonction de la situation, calculer les nodeValues, ajouter les missingVariables

Puis implémenter les modifieurs de temps

Puis ajouter le prorata à la multiplication

                             \
                              \
                               \\
                                \\
                                 >\/7
                             _.-(6'  \
                            (=___._/` \
                                 )  \ |
                                /   / |
                               /    > /
                              j    < _\
                          _.-' :      ``.
                          \ r=._\        `.
                         <`\\_  \         .`-.
                          \ r-7  `-. ._  ' .  `\
                           \`,      `-.`7  7)   )
                            \/         \|  \'  / `-._
                                       ||    .'
cjr                                     \\  (
10mar02                                  >\  >
                                     ,.-' >.'
                                    <.'_.''
                                      <'
2017-03-07 18:25:25 +01:00
Mael Thomas
578153a3b7 [moteur] 1er jet de la grammaire Nearley.js pour parser les expressions 2017-03-06 17:35:30 +01:00