From f63da5be5537e5e9463fda486c5169d7d5efc0c9 Mon Sep 17 00:00:00 2001
From: Johan Girod
Date: Wed, 1 Sep 2021 15:25:33 +0200
Subject: [PATCH] :green_heart: fix lint
---
.../conventions-collectives/bâtiment.yaml | 20 +--
.../experts-comptables.yaml | 4 +-
.../hôtels-cafés-restaurants.yaml | 4 +-
.../conventions-collectives/optique.yaml | 4 +-
.../spectacle-vivant.yaml | 20 +--
.../règles/conventions-collectives/sport.yaml | 96 ++++++-------
modele-social/règles/dirigeant.yaml | 128 ++++++++---------
.../déclaration-revenu-indépendant.yaml | 116 +++++++--------
modele-social/règles/impôt.yaml | 8 +-
modele-social/règles/profession-libérale.yaml | 84 +++++------
modele-social/règles/protection-sociale.yaml | 16 +--
modele-social/règles/salarié.yaml | 136 +++++++++---------
mon-entreprise/package.json | 3 +-
.../source/ATInternetTracking/smarttag.js | 71 ++++++---
.../CurrencyInput/CurrencyInput.tsx | 7 +-
.../source/components/Distribution.tsx | 24 ++--
.../source/components/FindCompany.tsx | 13 +-
.../source/components/SchemeComparaison.tsx | 7 +-
.../source/components/TargetSelection.tsx | 13 +-
.../components/conversation/AnswerList.tsx | 8 +-
.../components/conversation/Question.tsx | 2 +-
.../components/conversation/RuleInput.tsx | 8 +-
.../IndépendantExplanation.tsx | 32 ++---
.../simulationExplanation/PLExplanation.tsx | 3 +-
.../source/components/ui/SocialIcon.tsx | 30 ++--
.../utils/useSearchParamsSimulationSharing.ts | 10 +-
.../source/locales/translateRules.ts | 18 ++-
mon-entreprise/source/locales/ui-en.yaml | 6 +-
mon-entreprise/source/locales/ui-fr.yaml | 9 +-
.../RésultatSimple.tsx | 26 ++--
.../RésultatsParFormulaire.tsx | 16 ++-
.../pages/Gérer/DemandeMobilite/FieldsPDF.tsx | 10 +-
.../DemandeMobilite/demande-mobilité.yaml | 116 +++++++--------
mon-entreprise/source/pages/Gérer/Home.tsx | 5 +-
.../ÉconomieCollaborative/VotreSituation.tsx | 6 +-
.../ÉconomieCollaborative/selectors.js | 16 ++-
mon-entreprise/source/pages/Stats/Stats.tsx | 2 +-
mon-entreprise/source/reducers/rootReducer.ts | 6 +-
.../selectors/companyStatusSelectors.ts | 61 ++++----
mon-entreprise/source/sentry.ts | 8 +-
mon-entreprise/test/real-rules.test.js | 7 +-
publicodes/core/source/AST/index.ts | 18 ++-
publicodes/core/source/format.ts | 61 ++++----
publicodes/core/source/grammarFunctions.js | 28 ++--
publicodes/core/source/mecanisms/recalcul.ts | 2 +-
.../résoudre-référence-circulaire.ts | 135 +++++++++--------
publicodes/core/source/units.ts | 13 +-
publicodes/site/entry.tsx | 3 +-
.../ui-react/source/mecanisms/Replacement.tsx | 5 +-
yarn.lock | 34 ++---
50 files changed, 742 insertions(+), 736 deletions(-)
diff --git a/modele-social/règles/conventions-collectives/bâtiment.yaml b/modele-social/règles/conventions-collectives/bâtiment.yaml
index ef5a56a25..a30282a06 100644
--- a/modele-social/règles/conventions-collectives/bâtiment.yaml
+++ b/modele-social/règles/conventions-collectives/bâtiment.yaml
@@ -24,8 +24,8 @@ contrat salarié . convention collective . BTP . catégorie . ouvrier:
icônes: 👨🔧
formule: catégorie = 'ouvrier'
-? contrat salarié . convention collective . BTP . catégorie . ouvrier . prévoyance complémentaire
-: produit:
+contrat salarié . convention collective . BTP . catégorie . ouvrier . prévoyance complémentaire:
+ produit:
assiette: rémunération . brut de base
plafond: 3 * plafond sécurité sociale
composantes:
@@ -55,8 +55,8 @@ contrat salarié . convention collective . BTP . catégorie . etam:
note: >-
Répartition conventionnelle fixée par l’article 5 de l’Accord du BTP du 13 décembre 1990.
-? contrat salarié . convention collective . BTP . catégorie . etam . prévoyance complémentaire
-: produit:
+contrat salarié . convention collective . BTP . catégorie . etam . prévoyance complémentaire:
+ produit:
assiette: rémunération . brut de base
plafond: 3 * plafond sécurité sociale
composantes:
@@ -77,8 +77,8 @@ contrat salarié . convention collective . BTP . catégorie . cadre:
- règle: statut cadre
par: oui
-? contrat salarié . convention collective . BTP . catégorie . cadre . prévoyance complémentaire
-: barème:
+contrat salarié . convention collective . BTP . catégorie . cadre . prévoyance complémentaire:
+ barème:
assiette: rémunération . brut de base
multiplicateur: plafond sécurité sociale
composantes:
@@ -138,8 +138,8 @@ contrat salarié . convention collective . BTP . congés intempéries:
CIBTP: https://www.cibtp.fr/
Article L3141-30 du Code du Travail: https://www.legifrance.gouv.fr/affichCodeArticle.do;jsessionid=DF6E6424807679A6EDC2915496BEA32D.tplgfr22s_2?idArticle=LEGIARTI000033020675&cidTexte=LEGITEXT000006072050&dateTexte=20200320
-? contrat salarié . convention collective . BTP . congés intempéries . caisse de rattachement
-: question: À quelle caisse l'entreprise est-elle rattachée pour le versement de la cotisation congés intempéries ?
+contrat salarié . convention collective . BTP . congés intempéries . caisse de rattachement:
+ question: À quelle caisse l'entreprise est-elle rattachée pour le versement de la cotisation congés intempéries ?
formule:
une possibilité:
choix obligatoire: oui
@@ -155,8 +155,8 @@ contrat salarié . convention collective . BTP . congés intempéries:
- sud ouest
par défaut: "'idf'"
-? contrat salarié . convention collective . BTP . congés intempéries . caisse de rattachement . idf
-: titre: Île-de-France
+contrat salarié . convention collective . BTP . congés intempéries . caisse de rattachement . idf:
+ titre: Île-de-France
contrat salarié . convention collective . BTP . congés intempéries . caisse de rattachement . nord ouest:
contrat salarié . convention collective . BTP . congés intempéries . caisse de rattachement . grand ouest:
contrat salarié . convention collective . BTP . congés intempéries . caisse de rattachement . centre ouest:
diff --git a/modele-social/règles/conventions-collectives/experts-comptables.yaml b/modele-social/règles/conventions-collectives/experts-comptables.yaml
index 2ceff9b8f..2e53ae7f7 100644
--- a/modele-social/règles/conventions-collectives/experts-comptables.yaml
+++ b/modele-social/règles/conventions-collectives/experts-comptables.yaml
@@ -10,8 +10,8 @@ contrat salarié . convention collective . compta:
Légifrance: https://www.legifrance.gouv.fr/affichIDCC.do?idConvention=KALICONT000005635826
Synthèse Dicotravail: https://www.dicotravail.com/convention-collective/experts-comptables-jo-3020-idcc-787/
-? contrat salarié . convention collective . compta . majoration heures supplémentaires
-: remplace: temps de travail . heures supplémentaires . majoration
+contrat salarié . convention collective . compta . majoration heures supplémentaires:
+ remplace: temps de travail . heures supplémentaires . majoration
formule:
barème:
assiette: temps de travail . heures supplémentaires
diff --git a/modele-social/règles/conventions-collectives/hôtels-cafés-restaurants.yaml b/modele-social/règles/conventions-collectives/hôtels-cafés-restaurants.yaml
index 422ef65df..379cbc551 100644
--- a/modele-social/règles/conventions-collectives/hôtels-cafés-restaurants.yaml
+++ b/modele-social/règles/conventions-collectives/hôtels-cafés-restaurants.yaml
@@ -9,8 +9,8 @@ contrat salarié . convention collective . HCR . montant forfaitaire d'un repas:
règle: rémunération . avantages en nature . nourriture . montant . repas forfaitaire
formule: 3.62 €/repas
-? contrat salarié . convention collective . HCR . majoration heures supplémentaires
-: remplace: temps de travail . heures supplémentaires . majoration
+contrat salarié . convention collective . HCR . majoration heures supplémentaires:
+ remplace: temps de travail . heures supplémentaires . majoration
formule:
barème:
assiette: temps de travail . heures supplémentaires
diff --git a/modele-social/règles/conventions-collectives/optique.yaml b/modele-social/règles/conventions-collectives/optique.yaml
index 43216a8c8..553b2480c 100644
--- a/modele-social/règles/conventions-collectives/optique.yaml
+++ b/modele-social/règles/conventions-collectives/optique.yaml
@@ -25,8 +25,8 @@ contrat salarié . convention collective . optique . prime d'ancienneté:
références:
Légifrance: https://www.legifrance.gouv.fr/affichIDCC.do?idSectionTA=KALISCTA000005736434&cidTexte=KALITEXT000005649634&idConvention=KALICONT000005635912
-? contrat salarié . convention collective . optique . salaire minimum conventionnel
-: unité: €/mois
+contrat salarié . convention collective . optique . salaire minimum conventionnel:
+ unité: €/mois
formule:
variations:
- si: coefficient < 110
diff --git a/modele-social/règles/conventions-collectives/spectacle-vivant.yaml b/modele-social/règles/conventions-collectives/spectacle-vivant.yaml
index 09200b8af..ab9b11e1e 100644
--- a/modele-social/règles/conventions-collectives/spectacle-vivant.yaml
+++ b/modele-social/règles/conventions-collectives/spectacle-vivant.yaml
@@ -85,8 +85,8 @@ contrat salarié . intermittents du spectacle . caisse des congés spectacle:
audiens.org: https://www.audiens.org/files/live/sites/siteAudiens/files/03_documents/entreprise/Fiches-techniques/Conges-Spectacles-Mode-d-emploi-employeur-2019.pdf
Article L3141-30 du Code du Travail: https://www.legifrance.gouv.fr/affichCodeArticle.do;jsessionid=DF6E6424807679A6EDC2915496BEA32D.tplgfr22s_2?idArticle=LEGIARTI000033020675&cidTexte=LEGITEXT000006072050&dateTexte=20200320
-? contrat salarié . intermittents du spectacle . retraite complémentaire techniciens et cadre
-: applicable si:
+contrat salarié . intermittents du spectacle . retraite complémentaire techniciens et cadre:
+ applicable si:
une de ces conditions:
- statut cadre
- technicien
@@ -191,16 +191,16 @@ contrat salarié . intermittents du spectacle . artiste . réduction de taux:
par: FNAL . taux * réduction de taux
formule: 70%
-? contrat salarié . intermittents du spectacle . artiste . réduction de taux . ATMP
-: remplace: ATMP . taux
+contrat salarié . intermittents du spectacle . artiste . réduction de taux . ATMP:
+ remplace: ATMP . taux
formule:
variations:
- si: régime alsace moselle
alors: 1.54%
- sinon: 1.12%
-? contrat salarié . intermittents du spectacle . artiste . nombre jours travaillés
-: question: Pour combien de jours continus l'artiste est-il engagé ?
+contrat salarié . intermittents du spectacle . artiste . nombre jours travaillés:
+ question: Pour combien de jours continus l'artiste est-il engagé ?
par défaut: 5 jours
contrat salarié . intermittents du spectacle . artiste . plafond proratisé:
@@ -222,12 +222,12 @@ contrat salarié . intermittents du spectacle . artiste . acteur de complément:
question: L'artiste est-il un acteur de complément engagé à la journée pour une production cinématographique ?
par defaut: non
-? contrat salarié . intermittents du spectacle . artiste . acteur de complément . nombre jours travaillés
-: remplace: artiste . nombre jours travaillés
+contrat salarié . intermittents du spectacle . artiste . acteur de complément . nombre jours travaillés:
+ remplace: artiste . nombre jours travaillés
formule: 1
-? contrat salarié . intermittents du spectacle . artiste . acteur de complément . assiette forfaitaire
-: applicable si: rémunération . brut < 6% * plafond sécurité sociale temps plein
+contrat salarié . intermittents du spectacle . artiste . acteur de complément . assiette forfaitaire:
+ applicable si: rémunération . brut < 6% * plafond sécurité sociale temps plein
remplace:
- contrat salarié . cotisations . assiette forfaitaire
- règle: nombre jours travaillés
diff --git a/modele-social/règles/conventions-collectives/sport.yaml b/modele-social/règles/conventions-collectives/sport.yaml
index 430e82c3e..f9f193a82 100644
--- a/modele-social/règles/conventions-collectives/sport.yaml
+++ b/modele-social/règles/conventions-collectives/sport.yaml
@@ -17,8 +17,8 @@ contrat salarié . convention collective . sport . cotisations . patronales:
- prévoyance . employeur
- financement du paritarisme
-? contrat salarié . convention collective . sport . cotisations . financement du paritarisme
-: # TODO
+contrat salarié . convention collective . sport . cotisations . financement du paritarisme:
+ # TODO
note: se calcule sur la masse salariale
formule:
produit:
@@ -49,15 +49,15 @@ contrat salarié . convention collective . sport . cotisations . prévoyance:
références:
Article 10.8 de la CCNS (IDCC 2511): https://www.legifrance.gouv.fr/affichIDCCArticle.do;?idArticle=KALIARTI000033304755&cidTexte=KALITEXT000017577657&dateTexte=29990101&categorieLien=id
-? contrat salarié . convention collective . sport . cotisations . régime frais de santé
-: remplace: contrat salarié . complémentaire santé . forfait
+contrat salarié . convention collective . sport . cotisations . régime frais de santé:
+ remplace: contrat salarié . complémentaire santé . forfait
formule:
produit:
assiette: plafond sécurité sociale temps plein
taux: taux
-? contrat salarié . convention collective . sport . cotisations . régime frais de santé . taux
-: formule:
+contrat salarié . convention collective . sport . cotisations . régime frais de santé . taux:
+ formule:
variations:
- si: régime alsace moselle
alors:
@@ -80,8 +80,8 @@ contrat salarié . convention collective . sport . cotisations . prévoyance:
unamens.fr: https://www.umanens.fr/reglementation-couverture-sante-obligatoire/ccn-sport
unamens (notice pdf): https://www.umanens.fr/documents/doc-offres-2018/sport/juin-2019/CCN_SPORT_PLAQ_EMPLOYEUR_2019.pdf
-? contrat salarié . convention collective . sport . cotisations . régime frais de santé . option
-: question: Quel option a été choisi pour le régime des frais de santé ?
+contrat salarié . convention collective . sport . cotisations . régime frais de santé . option:
+ question: Quel option a été choisi pour le régime des frais de santé ?
formule:
une possibilité:
choix obligatoire: oui
@@ -92,15 +92,15 @@ contrat salarié . convention collective . sport . cotisations . prévoyance:
par défaut: "'R1'"
références:
unamens.fr: https://www.umanens.fr/reglementation-couverture-sante-obligatoire/ccn-sport
-? contrat salarié . convention collective . sport . cotisations . régime frais de santé . option . R1
-: formule: option = 'R1'
-? contrat salarié . convention collective . sport . cotisations . régime frais de santé . option . R2
-: formule: option = 'R2'
-? contrat salarié . convention collective . sport . cotisations . régime frais de santé . option . R3
-: formule: option = 'R3'
+contrat salarié . convention collective . sport . cotisations . régime frais de santé . option . R1:
+ formule: option = 'R1'
+contrat salarié . convention collective . sport . cotisations . régime frais de santé . option . R2:
+ formule: option = 'R2'
+contrat salarié . convention collective . sport . cotisations . régime frais de santé . option . R3:
+ formule: option = 'R3'
-? contrat salarié . convention collective . sport . cotisations . formation professionnelle
-: remplace: contrat salarié . formation professionnelle
+contrat salarié . convention collective . sport . cotisations . formation professionnelle:
+ remplace: contrat salarié . formation professionnelle
formule:
somme:
- plan de formation
@@ -110,8 +110,8 @@ contrat salarié . convention collective . sport . cotisations . prévoyance:
références:
Article 8.6 de la CCNS (IDCC2511): https://www.legifrance.gouv.fr/affichIDCCArticle.do;?idArticle=KALIARTI000034406905&cidTexte=KALITEXT000017577657&dateTexte=29990101&categorieLien=id
-? contrat salarié . convention collective . sport . cotisations . formation professionnelle . plan de formation
-: formule:
+contrat salarié . convention collective . sport . cotisations . formation professionnelle . plan de formation:
+ formule:
produit:
assiette: cotisations . assiette
taux:
@@ -122,12 +122,12 @@ contrat salarié . convention collective . sport . cotisations . prévoyance:
alors: 0.90%
plancher: versement minimum
-? contrat salarié . convention collective . sport . cotisations . formation professionnelle . plan de formation . versement minimum
-: applicable si: entreprise . effectif < 10
+contrat salarié . convention collective . sport . cotisations . formation professionnelle . plan de formation . versement minimum:
+ applicable si: entreprise . effectif < 10
formule: 30 €/mois
-? contrat salarié . convention collective . sport . cotisations . formation professionnelle . professionnalisation
-: formule:
+contrat salarié . convention collective . sport . cotisations . formation professionnelle . professionnalisation:
+ formule:
produit:
assiette: cotisations . assiette
taux:
@@ -138,12 +138,12 @@ contrat salarié . convention collective . sport . cotisations . prévoyance:
alors: 0.50%
plancher: versement minimum
-? contrat salarié . convention collective . sport . cotisations . formation professionnelle . professionnalisation . versement minimum
-: applicable si: entreprise . effectif < 10
+contrat salarié . convention collective . sport . cotisations . formation professionnelle . professionnalisation . versement minimum:
+ applicable si: entreprise . effectif < 10
formule: 5 €/mois
-? contrat salarié . convention collective . sport . cotisations . formation professionnelle . CIF CDI
-: applicable si:
+contrat salarié . convention collective . sport . cotisations . formation professionnelle . CIF CDI:
+ applicable si:
toutes ces conditions:
- CDI
- entreprise . effectif >= 20
@@ -152,15 +152,15 @@ contrat salarié . convention collective . sport . cotisations . prévoyance:
assiette: cotisations . assiette
taux: 0.20%
-? contrat salarié . convention collective . sport . cotisations . formation professionnelle . CIF CDD
-: applicable si: CDD
+contrat salarié . convention collective . sport . cotisations . formation professionnelle . CIF CDD:
+ applicable si: CDD
formule:
produit:
assiette: cotisations . assiette
taux: 1%
-? contrat salarié . convention collective . sport . cotisations . assiette franchisée
-: formule:
+contrat salarié . convention collective . sport . cotisations . assiette franchisée:
+ formule:
valeur: cotisations . assiette
abattement: franchise
@@ -178,13 +178,13 @@ contrat salarié . convention collective . sport . exonération cotisation AT:
par: non
formule: oui
-? contrat salarié . convention collective . sport . exonération cotisation AT . refus
-: titre: refus exonération AT
+contrat salarié . convention collective . sport . exonération cotisation AT . refus:
+ titre: refus exonération AT
question: L'employeur a-t'il refusé d'être exonéré de cotisations AT ?
par défaut: non
-? contrat salarié . convention collective . sport . cotisations . assiette forfaitaire
-: applicable si: assiette franchisée < SMIC horaire * 115 heures/mois
+contrat salarié . convention collective . sport . cotisations . assiette forfaitaire:
+ applicable si: assiette franchisée < SMIC horaire * 115 heures/mois
remplace: contrat salarié . cotisations . assiette forfaitaire
formule:
grille:
@@ -203,8 +203,8 @@ contrat salarié . convention collective . sport . exonération cotisation AT:
- montant: 50 * SMIC horaire
plafond: 115 heures
-? contrat salarié . convention collective . sport . primes . nombre de manifestations
-: question: Combien de manifestations rémunérées le joueur a-t'il effectué ?
+contrat salarié . convention collective . sport . primes . nombre de manifestations:
+ question: Combien de manifestations rémunérées le joueur a-t'il effectué ?
#TODO : gérer la période
par défaut: 0 manifestations
@@ -227,8 +227,8 @@ contrat salarié . convention collective . sport . primes . manifestation 1:
applicable si: nombre de manifestations > 0
par défaut: 100 €
-? contrat salarié . convention collective . sport . primes . manifestation 1 . franchise
-: titre: franchise manifestation 1
+contrat salarié . convention collective . sport . primes . manifestation 1 . franchise:
+ titre: franchise manifestation 1
formule:
valeur: manifestation 1
plafond: 70% * plafond journalier sécurité sociale
@@ -238,8 +238,8 @@ contrat salarié . convention collective . sport . primes . manifestation 2:
applicable si: nombre de manifestations > 1
par défaut: 100 €
-? contrat salarié . convention collective . sport . primes . manifestation 2 . franchise
-: titre: franchise manifestation 2
+contrat salarié . convention collective . sport . primes . manifestation 2 . franchise:
+ titre: franchise manifestation 2
formule:
valeur: manifestation 2
plafond: 70% * plafond journalier sécurité sociale
@@ -249,8 +249,8 @@ contrat salarié . convention collective . sport . primes . manifestation 3:
applicable si: nombre de manifestations > 2
par défaut: 100 €
-? contrat salarié . convention collective . sport . primes . manifestation 3 . franchise
-: titre: franchise manifestation 3
+contrat salarié . convention collective . sport . primes . manifestation 3 . franchise:
+ titre: franchise manifestation 3
formule:
valeur: manifestation 3
plafond: 70% * plafond journalier sécurité sociale
@@ -260,8 +260,8 @@ contrat salarié . convention collective . sport . primes . manifestation 4:
applicable si: nombre de manifestations > 3
par défaut: 100 €
-? contrat salarié . convention collective . sport . primes . manifestation 4 . franchise
-: titre: franchise manifestation 4
+contrat salarié . convention collective . sport . primes . manifestation 4 . franchise:
+ titre: franchise manifestation 4
formule:
valeur: manifestation 4
plafond: 70% * plafond journalier sécurité sociale
@@ -271,14 +271,14 @@ contrat salarié . convention collective . sport . primes . manifestation 5:
applicable si: nombre de manifestations > 4
par défaut: 100 €
-? contrat salarié . convention collective . sport . primes . manifestation 5 . franchise
-: titre: franchise manifestation 5
+contrat salarié . convention collective . sport . primes . manifestation 5 . franchise:
+ titre: franchise manifestation 5
formule:
valeur: manifestation 5
plafond: 70% * plafond journalier sécurité sociale
-? contrat salarié . convention collective . sport . primes . autres manifestations
-: question: Quelles primes pour les autres manifestations ?
+contrat salarié . convention collective . sport . primes . autres manifestations:
+ question: Quelles primes pour les autres manifestations ?
applicable si: nombre de manifestations > 5
par défaut: 100 €
diff --git a/modele-social/règles/dirigeant.yaml b/modele-social/règles/dirigeant.yaml
index adaded5c4..9477e1aeb 100644
--- a/modele-social/règles/dirigeant.yaml
+++ b/modele-social/règles/dirigeant.yaml
@@ -227,8 +227,8 @@ dirigeant . auto-entrepreneur . cotisations et contributions . TFC . métiers:
références:
service-public.fr: https://www.service-public.fr/professionnels-entreprises/vosdroits/F32847
-? dirigeant . auto-entrepreneur . cotisations et contributions . TFC . métiers . taux Alsace
-: remplace:
+dirigeant . auto-entrepreneur . cotisations et contributions . TFC . métiers . taux Alsace:
+ remplace:
- règle: taux service
par: 0.65%
- règle: taux vente
@@ -239,8 +239,8 @@ dirigeant . auto-entrepreneur . cotisations et contributions . TFC . métiers:
références:
service-public.fr: https://www.service-public.fr/professionnels-entreprises/vosdroits/F32847
-? dirigeant . auto-entrepreneur . cotisations et contributions . TFC . métiers . taux Moselle
-: remplace:
+dirigeant . auto-entrepreneur . cotisations et contributions . TFC . métiers . taux Moselle:
+ remplace:
- règle: taux service
par: 0.83%
- règle: taux vente
@@ -249,8 +249,8 @@ dirigeant . auto-entrepreneur . cotisations et contributions . TFC . métiers:
références:
service-public.fr: https://www.service-public.fr/professionnels-entreprises/vosdroits/F32847
-? dirigeant . auto-entrepreneur . cotisations et contributions . contribution formation professionnelle
-: titre: Contribution à la formation professionnelle
+dirigeant . auto-entrepreneur . cotisations et contributions . contribution formation professionnelle:
+ titre: Contribution à la formation professionnelle
description: |
En plus des charges sociales, les auto-entrepreneurs sont redevables d’une
contribution à la formation professionnelle leur permettant de bénéficier du
@@ -310,8 +310,8 @@ dirigeant . auto-entrepreneur . cotisations et contributions . cotisations:
economie.gouv.fr: https://www.economie.gouv.fr/entreprises/micro-entreprise-auto-entreprise-charges-sociales
actualité urssaf.fr (2019): https://www.autoentrepreneur.urssaf.fr/portail/accueil/sinformer-sur-le-statut/toutes-les-actualites/nouveautes-2019--ce-qui-change-e.html
-? dirigeant . auto-entrepreneur . cotisations et contributions . cotisations . taux ACRE
-: titre: taux ACRE auto-entrepreneur
+dirigeant . auto-entrepreneur . cotisations et contributions . cotisations . taux ACRE:
+ titre: taux ACRE auto-entrepreneur
applicable si: entreprise . ACRE
remplace:
règle: taux vente restauration hébergement
@@ -356,8 +356,8 @@ dirigeant . auto-entrepreneur . cotisations et contributions . cotisations:
FAQ Urssaf avant 04/2020: https://www.autoentrepreneur.urssaf.fr/portail/accueil/une-question/questions-frequentes.html#quest-ce-qui-change-pour-moi-si
service-public.fr: https://www.service-public.fr/professionnels-entreprises/vosdroits/F32318
-? dirigeant . auto-entrepreneur . cotisations et contributions . cotisations . taux ACRE . prestation de service
-: remplace: taux prestation de service
+dirigeant . auto-entrepreneur . cotisations et contributions . cotisations . taux ACRE . prestation de service:
+ remplace: taux prestation de service
titre: taux prestation de service avec ACRE
variations:
- si:
@@ -553,8 +553,8 @@ dirigeant . indépendant . cotisations et contributions . PSS proratisé:
plafond: 100%
arrondi: oui
-? dirigeant . indépendant . cotisations et contributions . exonérations . ACRE . prorata sur l'année
-: description: |
+dirigeant . indépendant . cotisations et contributions . exonérations . ACRE . prorata sur l'année:
+ description: |
Comme le calcul des cotisations indépendants s'effectue sur l'année entière,
l'exonération est proratisée en fonction de la durée effective de l'ACRE sur l'année courante.
@@ -565,8 +565,8 @@ dirigeant . indépendant . cotisations et contributions . PSS proratisé:
formule: (1 an - entreprise . durée d'activité . en début d'année) / 1 an
-? dirigeant . indépendant . cotisations et contributions . exonérations . ACRE . taux
-: formule:
+dirigeant . indépendant . cotisations et contributions . exonérations . ACRE . taux:
+ formule:
taux progressif:
assiette: assiette des cotisations
multiplicateur: PSS proratisé
@@ -601,8 +601,8 @@ dirigeant . indépendant . conjoint collaborateur . assiette . forfaitaire:
une assiette équivalente à 40% du PASS.
formule: assiette = 'forfaitaire'
-? dirigeant . indépendant . conjoint collaborateur . assiette . revenu avec partage
-: description: |
+dirigeant . indépendant . conjoint collaborateur . assiette . revenu avec partage:
+ description: |
Le conjoint collaborateur et le gérant paieront des cotisations sociales chacun sur une part du revenu professionnel.
**Cette option baisse le montant des cotisations à payer pour le gérant, mais elle diminue également ses contreparties sociales (pension de retraite, indemnité décès, etc)**
formule: assiette = 'revenu avec partage'
@@ -613,8 +613,8 @@ dirigeant . indépendant . conjoint collaborateur . assiette . forfaitaire:
- cotisations et contributions . retraite de base
- cotisations et contributions . retraite complémentaire
- cotisations et contributions . invalidité et décès
-? dirigeant . indépendant . conjoint collaborateur . assiette . revenu sans partage
-: description: Le conjoint collaborateur paiera des cotisations sociales calculées sur une base d'un pourcentage du assiette des cotisations du gérant de l'entreprise (un tiers ou la moitié).
+dirigeant . indépendant . conjoint collaborateur . assiette . revenu sans partage:
+ description: Le conjoint collaborateur paiera des cotisations sociales calculées sur une base d'un pourcentage du assiette des cotisations du gérant de l'entreprise (un tiers ou la moitié).
formule: assiette = 'revenu sans partage'
dirigeant . indépendant . conjoint collaborateur . assiette . pourcentage:
@@ -627,12 +627,12 @@ dirigeant . indépendant . conjoint collaborateur . assiette . pourcentage:
- tiers
- moitié
-? dirigeant . indépendant . conjoint collaborateur . assiette . pourcentage . tiers
-: formule: pourcentage = 'tiers'
+dirigeant . indépendant . conjoint collaborateur . assiette . pourcentage . tiers:
+ formule: pourcentage = 'tiers'
titre: '1/3'
-? dirigeant . indépendant . conjoint collaborateur . assiette . pourcentage . moitié
-: formule: pourcentage = 'moitié'
+dirigeant . indépendant . conjoint collaborateur . assiette . pourcentage . moitié:
+ formule: pourcentage = 'moitié'
titre: '1/2'
dirigeant . indépendant . conjoint collaborateur . cotisations . assiette:
@@ -660,16 +660,16 @@ dirigeant . indépendant . conjoint collaborateur . cotisations:
- invalidité et décès
- indemnités journalières maladie
-? dirigeant . indépendant . conjoint collaborateur . cotisations . assiette retraite
-: le maximum de:
+dirigeant . indépendant . conjoint collaborateur . cotisations . assiette retraite:
+ le maximum de:
- cotisations . assiette
- 5.25% * plafond sécurité sociale temps plein
- 200 heures/an * SMIC horaire
unité: €/an
arrondi: oui
-? dirigeant . indépendant . conjoint collaborateur . cotisations . retraite de base
-: unité: €/an
+dirigeant . indépendant . conjoint collaborateur . cotisations . retraite de base:
+ unité: €/an
barème:
assiette: assiette retraite
multiplicateur: plafond sécurité sociale temps plein
@@ -679,8 +679,8 @@ dirigeant . indépendant . conjoint collaborateur . cotisations:
- taux: 0.6%
arrondi: oui
-? dirigeant . indépendant . conjoint collaborateur . cotisations . retraite complémentaire
-: unité: €/an
+dirigeant . indépendant . conjoint collaborateur . cotisations . retraite complémentaire:
+ unité: €/an
barème:
assiette: retraite complémentaire . assiette
tranches:
@@ -690,8 +690,8 @@ dirigeant . indépendant . conjoint collaborateur . cotisations:
plafond: 4 * plafond sécurité sociale temps plein
arrondi: oui
-? dirigeant . indépendant . conjoint collaborateur . cotisations . retraite complémentaire . assiette
-: titre: assiette retraite complémentaire
+dirigeant . indépendant . conjoint collaborateur . cotisations . retraite complémentaire . assiette:
+ titre: assiette retraite complémentaire
unité: €/an
valeur: assiette retraite
plafond:
@@ -700,22 +700,22 @@ dirigeant . indépendant . conjoint collaborateur . cotisations:
alors: 4 * plafond sécurité sociale temps plein
- sinon: 3 * plafond sécurité sociale temps plein
-? dirigeant . indépendant . conjoint collaborateur . cotisations . invalidité et décès . assiette
-: titre: assiette invalidité et décès
+dirigeant . indépendant . conjoint collaborateur . cotisations . invalidité et décès . assiette:
+ titre: assiette invalidité et décès
formule:
le maximum de:
- cotisations . assiette
- 20% * plafond sécurité sociale temps plein
-? dirigeant . indépendant . conjoint collaborateur . cotisations . invalidité et décès
-: unité: €/an
+dirigeant . indépendant . conjoint collaborateur . cotisations . invalidité et décès:
+ unité: €/an
produit:
assiette: assiette
taux: 1.3%
plafond: plafond sécurité sociale temps plein
arrondi: oui
-? dirigeant . indépendant . conjoint collaborateur . cotisations . indemnités journalières maladie
-: produit:
+dirigeant . indépendant . conjoint collaborateur . cotisations . indemnités journalières maladie:
+ produit:
assiette:
valeur: 40% * plafond sécurité sociale temps plein
unité: €/an
@@ -789,8 +789,8 @@ dirigeant . indépendant . assiette minimale . retraite:
références:
cotisations minimales: https://www.secu-independants.fr/cotisations/calcul-cotisations/cotisations-minimales/
-? dirigeant . indépendant . cotisations et contributions . contributions spéciales
-: description: |
+dirigeant . indépendant . cotisations et contributions . contributions spéciales:
+ description: |
Certains régimes spéciaux peuvent ajouter des contributions additionnelles
(par exemple, la CURPS pour les CPAM)
formule: non
@@ -816,8 +816,8 @@ dirigeant . indépendant . cotisations et contributions . déduction tabac:
Si vous exercez une activité de débit de tabac simultanément à une activité commerciale, vous avez la possibilité d’opter pour le calcul de votre cotisation d’assurance vieillesse sur le seul revenu tiré de votre activité commerciale (en effet, les remises pour débit de tabac sont soumises par ailleurs à un prélèvement vieillesse particulier). Nous attirons cependant votre attention sur le fait qu’en cotisant sur une base moins importante, excluant les revenus de débit de tabac, vos droits à retraite pour l’assurance vieillesse des commerçants en seront diminués.
par défaut: 0 €/an
-? dirigeant . indépendant . cotisations et contributions . déduction tabac . revenus déduits
-: titre: assiette des cotisations (avec déduction tabac)
+dirigeant . indépendant . cotisations et contributions . déduction tabac . revenus déduits:
+ titre: assiette des cotisations (avec déduction tabac)
applicable si: déduction tabac
remplace:
règle: assiette des cotisations
@@ -879,8 +879,8 @@ dirigeant . indépendant . cotisations facultatives . contrats madelin:
- prévoyance
- retraite
-? dirigeant . indépendant . cotisations facultatives . contrats madelin . prévoyance
-: titre: Souscription à un contrat de prévoyance complémentaire Madelin
+dirigeant . indépendant . cotisations facultatives . contrats madelin . prévoyance:
+ titre: Souscription à un contrat de prévoyance complémentaire Madelin
question: Quel est le montant que vous versez pour vos contrats Madelin de prévoyance complémentaire (santé, perte d'emploi subie) ?
unité: €/an
description: |
@@ -912,8 +912,8 @@ dirigeant . indépendant . cotisations facultatives . plafond prévoyance:
Réassurez-moi: https://reassurez-moi.fr/guide/pro/tns/plafond#le_plafond_de_deduction_madelin_pour_une_mutuelle_santenbsp
note: |
Normalement c'est le résultat fiscal qui devrait être utilisé pour l'assiette du plafond, mais on utilise le revenu professionnel pour éviter un cycle.
-? dirigeant . indépendant . cotisations facultatives . contrats madelin . retraite
-: titre: Souscription à une retraite Madelin
+dirigeant . indépendant . cotisations facultatives . contrats madelin . retraite:
+ titre: Souscription à une retraite Madelin
question: Quel est le montant que vous versez pour votre contrat Madelin retraite complémentaire ?
description: |
Si vous cotisez au titre d'un contrat retraite de type loi Madelin,
@@ -925,8 +925,8 @@ dirigeant . indépendant . cotisations facultatives . plafond prévoyance:
Article de loi: https://www.legifrance.gouv.fr/affichCodeArticle.do?idArticle=LEGIARTI000029042287&cidTexte=LEGITEXT000006069577&dateTexte=20140530&fastReqId=1900907951&nbResultRech=1
par défaut: 0 €/an
-? dirigeant . indépendant . cotisations facultatives . plafond retraite complémentaire
-: unité: €/an
+dirigeant . indépendant . cotisations facultatives . plafond retraite complémentaire:
+ unité: €/an
formule:
le maximum de:
- barème:
@@ -981,8 +981,8 @@ dirigeant . indépendant . cotisations et contributions . début activité:
références:
Fiche Urssaf: https://www.urssaf.fr/portail/home/independant/mes-cotisations/les-etapes-de-calcul/le-mode-de-calcul/lajustement-et-la-regularisation.html
-? dirigeant . indépendant . cotisations et contributions . début activité . assiette forfaitaire
-: produit:
+dirigeant . indépendant . cotisations et contributions . début activité . assiette forfaitaire:
+ produit:
assiette: PSS proratisé
taux: 19%
unité: €/an
@@ -1016,8 +1016,8 @@ dirigeant . indépendant . cotisations et contributions . régularisation:
Article L131-6-2 du Code de la sécurité sociale: https://www.legifrance.gouv.fr/codes/article_lc/LEGIARTI000037062224/
Article D131-3 du Code de la sécurité sociale: https://www.legifrance.gouv.fr/codes/id/LEGIARTI000038786941/2021-03-01/?isSuggest=true
-? dirigeant . indépendant . cotisations et contributions . indemnités journalières maladie
-: synonyme: maladie 2
+dirigeant . indépendant . cotisations et contributions . indemnités journalières maladie:
+ synonyme: maladie 2
description: |
Cotisations pour les indemnités journalières des indépendants. Si l'état de
santé des artisans, commerçants, industriels et conjoints collaborateurs
@@ -1061,8 +1061,8 @@ dirigeant . indépendant . cotisations et contributions . maladie:
Le terme "lorsque" laisse entendre qu'en cas de dépassement du seuil 5xPSS, tout le revenu est soumis à 6.5%. Il semblerait qu'une interprétation inverse soit à privilégier : seule la part supérieure à ce seuil est soumise à ce taux, et c'est cette implémentation que nous avons retenue.
-? dirigeant . indépendant . cotisations et contributions . maladie . taux progressif . réduction supplémentaire
-: description: |
+dirigeant . indépendant . cotisations et contributions . maladie . taux progressif . réduction supplémentaire:
+ description: |
La réduction supplémentaire du taux maladie pour les revenu inférieurs à 40% du plafond de la sécurité sociale
non applicable si: situation personnelle . RSA
remplace:
@@ -1080,8 +1080,8 @@ dirigeant . indépendant . cotisations et contributions . maladie:
Taux de cotisations: https://www.secu-independants.fr/cotisations/calcul-cotisations/taux-de-cotisations/
décret formule de calcul: https://www.legifrance.gouv.fr/affichTexte.do?cidTexte=JORFTEXT000036342439&categorieLien=id
-? dirigeant . indépendant . cotisations et contributions . maladie . taux progressif
-: taux progressif:
+dirigeant . indépendant . cotisations et contributions . maladie . taux progressif:
+ taux progressif:
assiette:
nom: assiette
valeur: assiette des cotisations
@@ -1109,8 +1109,8 @@ dirigeant . indépendant . cotisations et contributions . retraite de base:
références:
Cotisation minimale: https://www.secu-independants.fr/cotisations/calcul-des-cotisations/cotisations-minimales/
-? dirigeant . indépendant . cotisations et contributions . retraite complémentaire
-: formule:
+dirigeant . indépendant . cotisations et contributions . retraite complémentaire:
+ formule:
barème:
assiette: assiette des cotisations
tranches:
@@ -1199,8 +1199,8 @@ dirigeant . indépendant . cotisations et contributions . CSG et CRDS . assiette
- dirigeant . indépendant . IJSS . imposable
plancher: 0 €/mois
-? dirigeant . indépendant . cotisations et contributions . formation professionnelle
-: acronyme: CFP
+dirigeant . indépendant . cotisations et contributions . formation professionnelle:
+ acronyme: CFP
produit:
assiette: plafond sécurité sociale temps plein
taux:
@@ -1261,8 +1261,8 @@ dirigeant . indépendant . cotisations et contributions . exonérations . âge:
applicable si: entreprise . date de création < 01/2016
rend non applicable: invalidité et décès
-? dirigeant . indépendant . cotisations et contributions . exonérations . invalidité
-: question: Êtes-vous titulaire d’une pension d’invalidité à titre de travailleur indépendant ?
+dirigeant . indépendant . cotisations et contributions . exonérations . invalidité:
+ question: Êtes-vous titulaire d’une pension d’invalidité à titre de travailleur indépendant ?
description: Les personnes titulaires d’une pension d’invalidité versée par un régime des travailleurs non-salariés non agricoles bénéficient d’une exonération totale des cotisations maladie et retraite complémentaire.
par défaut: non
rend non applicable:
@@ -1271,8 +1271,8 @@ dirigeant . indépendant . cotisations et contributions . exonérations . âge:
- indemnités journalières maladie
- retraite complémentaire
-? dirigeant . indépendant . cotisations et contributions . exonérations . ZFU . taux
-: titre: taux exonération ZFU
+dirigeant . indépendant . cotisations et contributions . exonérations . ZFU . taux:
+ titre: taux exonération ZFU
formule:
taux progressif:
assiette: établissement . ZFU . durée d'implantation en fin d'année
@@ -1310,8 +1310,8 @@ dirigeant . indépendant . cotisations et contributions . exonérations . âge:
- plafond: 9 ans
taux: 0%
-? dirigeant . indépendant . cotisations et contributions . maladie domiciliation fiscale étranger
-: applicable si: situation personnelle . domiciliation fiscale à l'étranger
+dirigeant . indépendant . cotisations et contributions . maladie domiciliation fiscale étranger:
+ applicable si: situation personnelle . domiciliation fiscale à l'étranger
titre: Maladie (domiciliation fiscale à l'étranger)
description: En contrepartie de l'exonération de CSG, les cotisants ont un taux maladie plus elevé. Contrairement aux autres assurés commerçants/artisans ils ne bénéficient pas de la réduction du taux de la cotisation maladie en fonction du revenu déclaré.
remplace: maladie
diff --git a/modele-social/règles/déclaration-revenu-indépendant.yaml b/modele-social/règles/déclaration-revenu-indépendant.yaml
index c0eb282e0..a6e956e7b 100644
--- a/modele-social/règles/déclaration-revenu-indépendant.yaml
+++ b/modele-social/règles/déclaration-revenu-indépendant.yaml
@@ -53,8 +53,8 @@ aide déclaration revenu indépendant 2020 . cotisations payées:
non applicable si: résultat simple
valeur: oui
-? aide déclaration revenu indépendant 2020 . cotisations payées . total charges sociales
-: remplace:
+aide déclaration revenu indépendant 2020 . cotisations payées . total charges sociales:
+ remplace:
règle: dirigeant . indépendant . cotisations et contributions
par:
somme:
@@ -83,8 +83,8 @@ aide déclaration revenu indépendant 2020 . cotisations payées . CSG déductib
3. Puis, "attestation CSG/CRDS"
4. Reportez dans ce champs le total de la colonne "Montant déductible CSG" (dernière ligne)
-? aide déclaration revenu indépendant 2020 . cotisations payées . CSG non déductible
-: question: Quel est le montant total de CSG non déductible payé cette année ?
+aide déclaration revenu indépendant 2020 . cotisations payées . CSG non déductible:
+ question: Quel est le montant total de CSG non déductible payé cette année ?
unité: €/an
description: |
Vous pouvez retrouver ce montant dans votre espace personnel Urssaf. Voici la marche à suivre :
@@ -107,8 +107,8 @@ aide déclaration revenu indépendant 2020 . cotisations payées . CRDS:
3. Puis, "attestation CSG/CRDS"
4. Reportez dans ce champs le total de la colonne "Montant non déductible : CRDS" (dernière ligne)
-? aide déclaration revenu indépendant 2020 . cotisations payées . cotisations obligatoires déductibles
-: remplace: cotisations obligatoires déductibles
+aide déclaration revenu indépendant 2020 . cotisations payées . cotisations obligatoires déductibles:
+ remplace: cotisations obligatoires déductibles
unité: €/an
valeur: cotisations payées . total charges sociales
abattement:
@@ -133,20 +133,20 @@ aide déclaration revenu indépendant 2020 . cotisations payées version simple:
- cotisations payées version simple . cotisations sociales
- cotisations payées version simple . CSG déductible et CFP
-? aide déclaration revenu indépendant 2020 . cotisations payées version simple . CSG déductible et CFP
-: question: Quel est le montant total de CSG déductible et CFP payées cette année ?
+aide déclaration revenu indépendant 2020 . cotisations payées version simple . CSG déductible et CFP:
+ question: Quel est le montant total de CSG déductible et CFP payées cette année ?
unité: €/an
description: |
Indiquez le montant de la part de CSG déductible et de CFP que vous avez payé en 2020 (peu importe l’année à laquelle ces contributions se rapportent).
-? aide déclaration revenu indépendant 2020 . cotisations payées version simple . cotisations sociales
-: question: Quel est le montant de vos cotisations sociales payées cette année ?
+aide déclaration revenu indépendant 2020 . cotisations payées version simple . cotisations sociales:
+ question: Quel est le montant de vos cotisations sociales payées cette année ?
unité: €/an
description: |
Indiquez le montant des cotisations sociales aux régimes obligatoires (maladie-maternité, vieillesse, invalidité-décès, famille) que vous avez payées en 2020 (peu importe l’année à laquelle ces cotisations se rapportent).
aide déclaration revenu indépendant 2020 . régime d'imposition: oui
-? aide déclaration revenu indépendant 2020 . régime d'imposition . déclaration contrôlée
-: titre: régime de la déclaration contrôlée
+aide déclaration revenu indépendant 2020 . régime d'imposition . déclaration contrôlée:
+ titre: régime de la déclaration contrôlée
applicable si: entreprise . activité . libérale
non applicable si:
une de ces conditions:
@@ -178,8 +178,8 @@ aide déclaration revenu indépendant 2020 . régime d'imposition . réel:
- simplifié
- normal
-? aide déclaration revenu indépendant 2020 . régime d'imposition . réel . simplifié
-: description: |
+aide déclaration revenu indépendant 2020 . régime d'imposition . réel . simplifié:
+ description: |
Les entreprises soumises au régime d'imposition réel simplifié doivent tenir une comptabilité classique : un bilan, un compte de résultat et des annexes. Des dispositions particulières s’appliquent pour alléger vos obligations comptables :
- le livre journal n’enregistre journellement que les recettes encaissées et les dépenses payées
@@ -353,8 +353,8 @@ aide déclaration revenu indépendant 2020 . réduction covid . montant:
somme:
- printemps 2020
- automne 2020
-? aide déclaration revenu indépendant 2020 . réduction covid . conjoint collaborateur
-: applicable si: dirigeant . indépendant . conjoint collaborateur
+aide déclaration revenu indépendant 2020 . réduction covid . conjoint collaborateur:
+ applicable si: dirigeant . indépendant . conjoint collaborateur
remplace:
règle: dirigeant . indépendant . conjoint collaborateur . cotisations
par:
@@ -377,23 +377,23 @@ aide déclaration revenu indépendant 2020 . réduction covid . part cotisations
assiette: montant
taux: pourcentage cotisations
-? aide déclaration revenu indépendant 2020 . réduction covid . pourcentage cotisations
-: unité: '%'
+aide déclaration revenu indépendant 2020 . réduction covid . pourcentage cotisations:
+ unité: '%'
valeur: dirigeant . indépendant . cotisations et contributions . cotisations / (dirigeant . indépendant . cotisations et contributions . cotisations + dirigeant . indépendant . cotisations et contributions . CSG et CRDS)
aide déclaration revenu indépendant 2020 . réduction covid . part CSG:
titre: Part réduction Covid sur CSG
valeur: montant - part cotisations
-? aide déclaration revenu indépendant 2020 . réduction covid . part CSG . déductible
-: titre: Part réduction Covid sur CSG/CRDS déductible
+aide déclaration revenu indépendant 2020 . réduction covid . part CSG . déductible:
+ titre: Part réduction Covid sur CSG/CRDS déductible
produit:
assiette: part CSG
taux: dirigeant . indépendant . cotisations et contributions . CSG et CRDS . déductible . taux / taux CSG
arrondi: oui
-? aide déclaration revenu indépendant 2020 . réduction covid . part CSG . non déductible
-: titre: Part réduction Covid sur CSG/CRDS non déductible
+aide déclaration revenu indépendant 2020 . réduction covid . part CSG . non déductible:
+ titre: Part réduction Covid sur CSG/CRDS non déductible
valeur: part CSG - part CSG . déductible
aide déclaration revenu indépendant 2020 . réduction covid . taux CSG:
@@ -403,16 +403,16 @@ aide déclaration revenu indépendant 2020 . réduction covid . taux CSG:
- dirigeant . indépendant . cotisations et contributions . CSG et CRDS . non déductible . taux
- dirigeant . indépendant . cotisations et contributions . CSG et CRDS . déductible . taux
-? aide déclaration revenu indépendant 2020 . réduction covid . montant . printemps 2020
-: applicable si: éligible aide printemps 2020
+aide déclaration revenu indépendant 2020 . réduction covid . montant . printemps 2020:
+ applicable si: éligible aide printemps 2020
formule:
variations:
- si: secteur d'activité = 'S2'
alors: 1800 €/an
- sinon: 2400 €/an
-? aide déclaration revenu indépendant 2020 . réduction covid . montant . automne 2020
-: applicable si: éligible aide automne 2020
+aide déclaration revenu indépendant 2020 . réduction covid . montant . automne 2020:
+ applicable si: éligible aide automne 2020
formule: nombre de mois éligibles * 600 €/an/mois éligibles
aide déclaration revenu indépendant 2020 . réduction covid . secteur d'activité:
@@ -449,22 +449,22 @@ aide déclaration revenu indépendant 2020 . réduction covid . secteur d'activi
- S2
par défaut: non
-? aide déclaration revenu indépendant 2020 . réduction covid . secteur d'activité . S1
-: titre: Secteur dit S1
+aide déclaration revenu indépendant 2020 . réduction covid . secteur d'activité . S1:
+ titre: Secteur dit S1
description: |
Secteurs du tourisme, de l’hôtellerie, de la restauration, du sport, de la culture, du transport aérien et de l’événementiel.
-? aide déclaration revenu indépendant 2020 . réduction covid . secteur d'activité . S1-bis
-: titre: Secteur dit S1 bis
+aide déclaration revenu indépendant 2020 . réduction covid . secteur d'activité . S1-bis:
+ titre: Secteur dit S1 bis
description: |
Secteurs dont l’activité dépend de celle des secteurs 1 et qui ont subi une très forte baisse de leur chiffre d’affaires.
-? aide déclaration revenu indépendant 2020 . réduction covid . secteur d'activité . S2
-: titre: Secteur dit S2
+aide déclaration revenu indépendant 2020 . réduction covid . secteur d'activité . S2:
+ titre: Secteur dit S2
description: Autres secteurs d’activité qui ont fait l’objet d’une interdiction affectant de manière prépondérante la poursuite de leur activité.
-? aide déclaration revenu indépendant 2020 . réduction covid . éligible aide printemps 2020
-: applicable si: secteur d'activité
+aide déclaration revenu indépendant 2020 . réduction covid . éligible aide printemps 2020:
+ applicable si: secteur d'activité
question: Êtes-vous éligibles au dispositif de réduction prévu au titre de la première vague de la crise sanitaire du printemps 2020 ?
par défaut: non
description: |
@@ -499,8 +499,8 @@ aide déclaration revenu indépendant 2020 . réduction covid . secteur d'activi
Votre activité doit avoir débuté avant le 1er juin 2020.
Si vous avez cessé votre activité, la cessation doit être postérieure ou égale au 15 mars 2020.
-? aide déclaration revenu indépendant 2020 . réduction covid . éligible aide automne 2020
-: applicable si: secteur d'activité
+aide déclaration revenu indépendant 2020 . réduction covid . éligible aide automne 2020:
+ applicable si: secteur d'activité
question: Êtes-vous éligibles au dispositif de réduction prévu au titre de la première vague de la crise sanitaire de l'automne 2020 ?
par défaut: non
description: |
@@ -553,15 +553,15 @@ aide déclaration revenu indépendant 2020 . réduction covid . secteur d'activi
Bon à savoir : Les activités de livraison, de retrait de commande ou de vente à emporter ne sont pas prises en compte pour apprécier le respect de la condition d’interdiction.
-? aide déclaration revenu indépendant 2020 . réduction covid . nombre de mois éligibles
-: formule:
+aide déclaration revenu indépendant 2020 . réduction covid . nombre de mois éligibles:
+ formule:
somme:
- S1 et S1bis
- S2
arrondi: oui
-? aide déclaration revenu indépendant 2020 . réduction covid . nombre de mois éligibles . S1 et S1bis
-: applicable si:
+aide déclaration revenu indépendant 2020 . réduction covid . nombre de mois éligibles . S1 et S1bis:
+ applicable si:
toutes ces conditions:
- éligible aide automne 2020
- une de ces conditions:
@@ -574,8 +574,8 @@ aide déclaration revenu indépendant 2020 . réduction covid . secteur d'activi
unité: mois éligibles
plafond: 6 mois éligibles
-? aide déclaration revenu indépendant 2020 . réduction covid . nombre de mois éligibles . S2
-: applicable si:
+aide déclaration revenu indépendant 2020 . réduction covid . nombre de mois éligibles . S2:
+ applicable si:
toutes ces conditions:
- éligible aide automne 2020
- secteur d'activité = 'S2'
@@ -806,39 +806,39 @@ aide déclaration revenu indépendant 2020 . informations résultat par formulai
applicable si: comptabilité . engagement
non applicable si: entreprise . imposition . IR . micro-fiscal
valeur: oui
-? aide déclaration revenu indépendant 2020 . informations résultat par formulaire . réduction Covid
-: description: La réduction de cotisation applicable dans le cas du dispositif Covid
+aide déclaration revenu indépendant 2020 . informations résultat par formulaire . réduction Covid:
+ description: La réduction de cotisation applicable dans le cas du dispositif Covid
valeur: réduction covid . total
-? aide déclaration revenu indépendant 2020 . informations résultat par formulaire . rémunération totale
-: titre: Total rémunération dirigeant
+aide déclaration revenu indépendant 2020 . informations résultat par formulaire . rémunération totale:
+ titre: Total rémunération dirigeant
résumé: '[A]'
description: La rémunération "superbrute" du dirigeant, incluant toutes les cotisations et contributions sociales.
valeur: dirigeant . rémunération . totale
-? aide déclaration revenu indépendant 2020 . informations résultat par formulaire . cotisations déductibles
-: résumé: '[C1]'
+aide déclaration revenu indépendant 2020 . informations résultat par formulaire . cotisations déductibles:
+ résumé: '[C1]'
description: "Cotisations et contributions sociales déductibles pour le calcul de l'assiette sociale"
somme:
- cotisations obligatoires déductibles
- dirigeant . indépendant . cotisations et contributions . CSG et CRDS . déductible
- dirigeant . indépendant . cotisations et contributions . formation professionnelle
-? aide déclaration revenu indépendant 2020 . informations résultat par formulaire . cotisations non déductibles
-: résumé: '[C2]'
+aide déclaration revenu indépendant 2020 . informations résultat par formulaire . cotisations non déductibles:
+ résumé: '[C2]'
description: Cotisations et contributions sociales non déductibles pour le calcul de l'assiette sociale
valeur:
somme:
- dirigeant . indépendant . cotisations et contributions . CSG et CRDS . non déductible
- dirigeant . indépendant . cotisations facultatives . total
-? aide déclaration revenu indépendant 2020 . informations résultat par formulaire . assiette sociale
-: résumé: '[A - C1]'
+aide déclaration revenu indépendant 2020 . informations résultat par formulaire . assiette sociale:
+ résumé: '[A - C1]'
description: Assiette utilisée pour le calcul des cotisations sociales.
valeur: dirigeant . indépendant . assiette des cotisations
-? aide déclaration revenu indépendant 2020 . informations résultat par formulaire . rémunération nette
-: résumé: '[A - C1 - C2]'
+aide déclaration revenu indépendant 2020 . informations résultat par formulaire . rémunération nette:
+ résumé: '[A - C1 - C2]'
description: Le revenu net du dirigeant avant impôt sur le revenu. C'est la rémunération effectivement versée.
valeur: dirigeant . rémunération . nette
@@ -850,8 +850,8 @@ aide déclaration revenu indépendant 2020 . résultat simple . revenu net fisca
description: Résultat avant déduction des charges sociales et exonérations fiscales
valeur: dirigeant . rémunération . totale
-? aide déclaration revenu indépendant 2020 . résultat simple . cotisations obligatoires
-: titre: Cotisations sociales obligatoires déductibles
+aide déclaration revenu indépendant 2020 . résultat simple . cotisations obligatoires:
+ titre: Cotisations sociales obligatoires déductibles
résumé: '[C]'
description: |
À reporter dans :
@@ -881,8 +881,8 @@ aide déclaration revenu indépendant 2020 . résultat simple . CFP:
description: Contribution à la formation professionnelle
valeur: dirigeant . indépendant . cotisations et contributions . formation professionnelle
-? aide déclaration revenu indépendant 2020 . résultat simple . total charges sociales déductible
-: non applicable si: entreprise . imposition . IR . micro-fiscal
+aide déclaration revenu indépendant 2020 . résultat simple . total charges sociales déductible:
+ non applicable si: entreprise . imposition . IR . micro-fiscal
titre: charges sociales obligatoires déductibles fiscalement
résumé: '[B + C + D]'
somme:
diff --git a/modele-social/règles/impôt.yaml b/modele-social/règles/impôt.yaml
index f0011c1f0..bc41dc165 100644
--- a/modele-social/règles/impôt.yaml
+++ b/modele-social/règles/impôt.yaml
@@ -90,8 +90,8 @@ impôt . revenu imposable . abattement contrat court:
références:
Bofip - dispositions spécifiques aux contrats courts: https://bofip.impots.gouv.fr/bofip/11252-PGP.html?identifiant=BOI-IR-PAS-20-20-30-10-20180515
-? impôt . taux neutre d'impôt sur le revenu . barème Guadeloupe Réunion Martinique
-: icônes: 🇬🇵🇷🇪 🇲🇶
+impôt . taux neutre d'impôt sur le revenu . barème Guadeloupe Réunion Martinique:
+ icônes: 🇬🇵🇷🇪 🇲🇶
formule:
grille:
assiette: revenu imposable
@@ -426,8 +426,8 @@ impôt . foyer fiscal . impôt sur le revenu . quotient familial:
unité: €/part/an
formule: revenu imposable / nombre de parts
-? impôt . foyer fiscal . impôt sur le revenu . quotient familial . plafond avantage
-: formule:
+impôt . foyer fiscal . impôt sur le revenu . quotient familial . plafond avantage:
+ formule:
somme:
- produit:
assiette:
diff --git a/modele-social/règles/profession-libérale.yaml b/modele-social/règles/profession-libérale.yaml
index be6f5a293..0552986f9 100644
--- a/modele-social/règles/profession-libérale.yaml
+++ b/modele-social/règles/profession-libérale.yaml
@@ -143,8 +143,8 @@ dirigeant . indépendant . PL . régime général:
- CIPAV = non
- entreprise . activité . libérale réglementée = non
-? dirigeant . indépendant . PL . régime général . taux spécifique retraite complémentaire
-: titre: taux spécifique profession libérale non reglementée
+dirigeant . indépendant . PL . régime général . taux spécifique retraite complémentaire:
+ titre: taux spécifique profession libérale non reglementée
question: Avez-vous opté pour des taux spécifiques de cotisation retraite complémentaire ?
par défaut: non
description: |
@@ -156,8 +156,8 @@ dirigeant . indépendant . PL . régime général:
références:
Guide PL urssaf: https://www.urssaf.fr/portail/files/live/sites/urssaf/files/documents/Diaporama_TI_statuts_hors_AE.pdf
-? dirigeant . indépendant . PL . régime général . taux spécifique retraite complémentaire . montant
-: titre: retraite complémentaire (taux PLNR)
+dirigeant . indépendant . PL . régime général . taux spécifique retraite complémentaire . montant:
+ titre: retraite complémentaire (taux PLNR)
remplace: cotisations et contributions . retraite complémentaire
formule:
barème:
@@ -276,8 +276,8 @@ dirigeant . indépendant . PL . CIPAV . invalidité et décès:
- si: classe de cotisation = 'C'
alors: 380 €/an
-? dirigeant . indépendant . PL . CIPAV . invalidité et décès . classe de cotisation
-: question: Dans quelle classe cotisez-vous pour le régime invalidité-décès de la CIPAV ?
+dirigeant . indépendant . PL . CIPAV . invalidité et décès . classe de cotisation:
+ question: Dans quelle classe cotisez-vous pour le régime invalidité-décès de la CIPAV ?
description: >-
La Cipav gère un régime de prévoyance versant une pension en cas
d'invalidité permanente et un capital décès ainsi qu’une rente pour les
@@ -293,12 +293,12 @@ dirigeant . indépendant . PL . CIPAV . invalidité et décès:
- C
par défaut: "'A'"
-? dirigeant . indépendant . PL . CIPAV . invalidité et décès . classe de cotisation . A
-: titre: classe A
-? dirigeant . indépendant . PL . CIPAV . invalidité et décès . classe de cotisation . B
-: titre: classe B
-? dirigeant . indépendant . PL . CIPAV . invalidité et décès . classe de cotisation . C
-: titre: classe C
+dirigeant . indépendant . PL . CIPAV . invalidité et décès . classe de cotisation . A:
+ titre: classe A
+dirigeant . indépendant . PL . CIPAV . invalidité et décès . classe de cotisation . B:
+ titre: classe B
+dirigeant . indépendant . PL . CIPAV . invalidité et décès . classe de cotisation . C:
+ titre: classe C
dirigeant . indépendant . PL . retraite CNAVPL:
non applicable si:
@@ -360,8 +360,8 @@ dirigeant . indépendant . PL . PAMC:
- dirigeant . indépendant . cotisations et contributions . maladie domiciliation fiscale étranger
formule: oui
-? dirigeant . indépendant . PL . PAMC . proportion recette activité non conventionnée
-: question: |
+dirigeant . indépendant . PL . PAMC . proportion recette activité non conventionnée:
+ question: |
Quel est la part de votre chiffre d'affaires liée à une activité non
conventionnée (estimation) ?
par défaut: 0%
@@ -383,8 +383,8 @@ dirigeant . indépendant . PL . PAMC:
(aide à la télétransmission, indemnisation, indemnisation de la formation
continue, prime à l’installation, ...)
-? dirigeant . indépendant . PL . PAMC . proportion recette activité non conventionnée . notification
-: type: notification
+dirigeant . indépendant . PL . PAMC . proportion recette activité non conventionnée . notification:
+ type: notification
sévérité: avertissement
formule: proportion recette activité non conventionnée > 100%
description: |
@@ -529,8 +529,8 @@ dirigeant . indépendant . PL . PAMC . allocations familiales:
références:
Fiche Urssaf: https://www.urssaf.fr/portail/home/taux-et-baremes/taux-de-cotisations/les-praticiens-et-auxiliaires-me/taux-de-cotisations-medecin-sect.html
-? dirigeant . indépendant . PL . PAMC . allocations familiales . participation CPAM
-: titre: Participation CPAM aux allocations familiales
+dirigeant . indépendant . PL . PAMC . allocations familiales . participation CPAM:
+ titre: Participation CPAM aux allocations familiales
formule:
produit:
assiette: cotisations et contributions . allocations familiales
@@ -546,8 +546,8 @@ dirigeant . indépendant . PL . PAMC . allocations familiales:
- montant: 60%
arrondi: oui
-? dirigeant . indépendant . PL . PAMC . assiette participation chirurgien-dentiste
-: applicable si: métier = 'santé . chirurgien-dentiste'
+dirigeant . indépendant . PL . PAMC . assiette participation chirurgien-dentiste:
+ applicable si: métier = 'santé . chirurgien-dentiste'
titre: assiette participation CPAM (chirurgien dentiste)
remplace: assiette participation CPAM
formule:
@@ -558,8 +558,8 @@ dirigeant . indépendant . PL . PAMC . allocations familiales:
Fiche Urssaf: https://www.urssaf.fr/portail/home/praticien-et-auxiliaire-medical/mes-cotisations/le-calcul-de-mes-cotisations/la-participation-de-la-cpam-a-me/je-suis-chirurgien-dentiste/assiette-de-participation-de-la.html
Texte de loi: https://www.legifrance.gouv.fr/affichTexte.do?cidTexte=JORFTEXT000020429271&categorieLien=id
-? dirigeant . indépendant . PL . PAMC . assiette participation chirurgien-dentiste . taux Urssaf
-: description: |
+dirigeant . indépendant . PL . PAMC . assiette participation chirurgien-dentiste . taux Urssaf:
+ description: |
Le « taux Urssaf » (taux UR) permet de calculer la part de votre
cotisation d’assurance maladie-maternité prise en charge par la CPAM.
@@ -578,8 +578,8 @@ dirigeant . indépendant . PL . PAMC . allocations familiales:
unité: ''
par défaut: 1
-? dirigeant . indépendant . PL . PAMC . assiette participation chirurgien-dentiste . taux Urssaf . notification
-: formule: taux Urssaf >= 100
+dirigeant . indépendant . PL . PAMC . assiette participation chirurgien-dentiste . taux Urssaf . notification:
+ formule: taux Urssaf >= 100
type: notification
sévérité: avertissement
description: Le taux Urssaf doit être inférieur à 100
@@ -848,8 +848,8 @@ dirigeant . indépendant . PL . CARCDSF . retraite complémentaire:
références:
Site CARCDSF: http://www.carcdsf.fr/cotisations-du-praticien/montant-des-cotisations
-? dirigeant . indépendant . PL . CARCDSF . retraite complémentaire . cotisation proportionnelle
-: formule:
+dirigeant . indépendant . PL . CARCDSF . retraite complémentaire . cotisation proportionnelle:
+ formule:
barème:
assiette: assiette des cotisations
multiplicateur: plafond sécurité sociale temps plein
@@ -860,8 +860,8 @@ dirigeant . indépendant . PL . CARCDSF . retraite complémentaire:
plafond: 5
arrondi: oui
-? dirigeant . indépendant . PL . CARCDSF . retraite complémentaire . cotisation forfaitaire
-: formule:
+dirigeant . indépendant . PL . CARCDSF . retraite complémentaire . cotisation forfaitaire:
+ formule:
produit:
assiette: 2960.40 €/an
facteur:
@@ -871,16 +871,16 @@ dirigeant . indépendant . PL . CARCDSF . retraite complémentaire:
- sinon: 100%
arrondi: oui
-? dirigeant . indépendant . PL . CARCDSF . retraite complémentaire . cotisation forfaitaire . réduction applicable
-: formule: assiette des cotisations < 85% * plafond sécurité sociale temps plein
+dirigeant . indépendant . PL . CARCDSF . retraite complémentaire . cotisation forfaitaire . réduction applicable:
+ formule: assiette des cotisations < 85% * plafond sécurité sociale temps plein
description: |
Vous avez la possibilité de bénéficier d'une réduction de cotisation
pour la retraite complémentaire si vous en faites la demande. [En savoir
plus](/documentation/dirigeant/indépendant/PL/CARCDSF/retraite-complémentaire/cotisation-forfaitaire/taux-réduction)
type: notification
-? dirigeant . indépendant . PL . CARCDSF . retraite complémentaire . cotisation forfaitaire . taux réduction
-: applicable si: réduction applicable
+dirigeant . indépendant . PL . CARCDSF . retraite complémentaire . cotisation forfaitaire . taux réduction:
+ applicable si: réduction applicable
description: |
Les affiliés dont les revenus professionnels nets sur l'année N-1 sont inférieurs à 85
% du PASS en vigueur au 1er janvier de l’année considérée (34 966 € en 2020)
@@ -927,18 +927,18 @@ dirigeant . indépendant . PL . CARCDSF . chirurgien-dentiste . PCV:
- proportionnelle
arrondi: oui
-? dirigeant . indépendant . PL . CARCDSF . chirurgien-dentiste . PCV . forfaitaire
-: formule: 1440.60 €/an
-? dirigeant . indépendant . PL . CARCDSF . chirurgien-dentiste . PCV . proportionnelle
-: formule:
+dirigeant . indépendant . PL . CARCDSF . chirurgien-dentiste . PCV . forfaitaire:
+ formule: 1440.60 €/an
+dirigeant . indépendant . PL . CARCDSF . chirurgien-dentiste . PCV . proportionnelle:
+ formule:
produit:
assiette: assiette des cotisations
plafond: 5 * plafond sécurité sociale temps plein
taux: 0.725 %
références:
Site CARCDSF: http://www.carcdsf.fr/cotisations-du-praticien/montant-des-cotisations
-? dirigeant . indépendant . PL . CARCDSF . chirurgien-dentiste . PCV . participation CPAM
-: titre: Participation CPAM à la prestation complémentaire vieillesse
+dirigeant . indépendant . PL . CARCDSF . chirurgien-dentiste . PCV . participation CPAM:
+ titre: Participation CPAM à la prestation complémentaire vieillesse
formule:
somme:
- 2 * forfaitaire
@@ -955,8 +955,8 @@ dirigeant . indépendant . PL . CARCDSF . chirurgien-dentiste . exonération PCV
faites la demande. [En savoir
plus](http://www.carcdsf.fr/cotisations-du-praticien/montant-des-cotisations)
-? dirigeant . indépendant . PL . CARCDSF . chirurgien-dentiste . prix d'une consultation
-: formule: 23 €/consultation
+dirigeant . indépendant . PL . CARCDSF . chirurgien-dentiste . prix d'une consultation:
+ formule: 23 €/consultation
dirigeant . indépendant . PL . CARCDSF . sage-femme:
applicable si: métier = 'santé . sage-femme'
@@ -1074,8 +1074,8 @@ dirigeant . indépendant . PL . CNBF . retraite de base . cotisation forfaitaire
plafond: 5 ans
- montant: 1586 €/an
-? dirigeant . indépendant . PL . CNBF . retraite de base . cotisation proportionnelle
-: formule:
+dirigeant . indépendant . PL . CNBF . retraite de base . cotisation proportionnelle:
+ formule:
produit:
taux: 3.1%
assiette: assiette des cotisations
diff --git a/modele-social/règles/protection-sociale.yaml b/modele-social/règles/protection-sociale.yaml
index f36daf4a3..9292c210e 100644
--- a/modele-social/règles/protection-sociale.yaml
+++ b/modele-social/règles/protection-sociale.yaml
@@ -102,8 +102,8 @@ protection sociale . retraite . trimestres validés . trimestres indépendant:
valeur: barème trimestres générique
plancher: 3
-? protection sociale . retraite . trimestres validés . barème trimestres générique
-: unité: trimestres validés/an
+protection sociale . retraite . trimestres validés . barème trimestres générique:
+ unité: trimestres validés/an
formule:
grille:
unité: trimestres validés/an
@@ -122,8 +122,8 @@ protection sociale . retraite . trimestres validés . trimestres indépendant:
références:
cnav.fr: https://www.legislation.cnav.fr/Pages/bareme.aspx?Nom=salaire_validant_un_trimestre_montant_bar
Article R351-9 du code de la sécurité sociale: https://www.legifrance.gouv.fr/codes/article_lc/LEGIARTI000028751530/2014-03-21
-? protection sociale . retraite . trimestres validés . trimestres auto-entrepreneur
-: applicable si: dirigeant . auto-entrepreneur
+protection sociale . retraite . trimestres validés . trimestres auto-entrepreneur:
+ applicable si: dirigeant . auto-entrepreneur
description: Les seuils de chiffre d'affaires minimum pour la validation des trimestres pour la retraite en auto-entrepreneur. En-dessous du montant minimum, vous n'aurez accès qu'à l'allocation de solidarité.
unité: trimestres validés/an
somme:
@@ -218,15 +218,15 @@ protection sociale . retraite . complémentaire indépendants . valeur du point:
références:
secu-independants.fr: https://www.secu-independants.fr/baremes/prestations-vieillesse-et-invalidite-deces
-? protection sociale . retraite . complémentaire indépendants . total points acquis
-: formule: points acquis * mois cotisés
+protection sociale . retraite . complémentaire indépendants . total points acquis:
+ formule: points acquis * mois cotisés
protection sociale . retraite . complémentaire indépendants . points acquis:
unité: points/an
valeur: dirigeant . indépendant . cotisations et contributions . retraite complémentaire / prix d'achat du point
-? protection sociale . retraite . complémentaire indépendants . prix d'achat du point
-: formule: 17.765 €/point
+protection sociale . retraite . complémentaire indépendants . prix d'achat du point:
+ formule: 17.765 €/point
références:
secu-independants.fr: https://www.secu-independants.fr/baremes/baremes-2018/baremesprestations-maladie-maternite/?reg=ile-de-france-centre&ae=oui
diff --git a/modele-social/règles/salarié.yaml b/modele-social/règles/salarié.yaml
index 797a65e76..7a8046b14 100644
--- a/modele-social/règles/salarié.yaml
+++ b/modele-social/règles/salarié.yaml
@@ -146,8 +146,8 @@ contrat salarié . frais professionnels . titres-restaurant . montant unitaire:
moyenne: 8 €/titre-restaurant
max exonéré: 11.10 €/titre-restaurant
-? contrat salarié . frais professionnels . titres-restaurant . taux participation employeur
-: description: >-
+contrat salarié . frais professionnels . titres-restaurant . taux participation employeur:
+ description: >-
Part du titre-restaurant payée par l'employeur. Doit être de 50% minimum et
de 60% maximum.
question: Quelle est la participation de l'employeur ?
@@ -156,14 +156,14 @@ contrat salarié . frais professionnels . titres-restaurant . montant unitaire:
50%: 50 %
60%: 60 %
-? contrat salarié . frais professionnels . titres-restaurant . contrôle taux employeur min
-: type: notification
+contrat salarié . frais professionnels . titres-restaurant . contrôle taux employeur min:
+ type: notification
sévérité: avertissement
formule: taux participation employeur < 50%
description: La part employeur du titre-restaurant doit être de 50% au minimum
-? contrat salarié . frais professionnels . titres-restaurant . contrôle taux employeur max
-: type: notification
+contrat salarié . frais professionnels . titres-restaurant . contrôle taux employeur max:
+ type: notification
sévérité: avertissement
formule: taux participation employeur > 60%
description: La part employeur du titre-restaurant doit être de 60% au maximum
@@ -172,8 +172,8 @@ contrat salarié . frais professionnels . abonnement transports publics:
icônes: 🚍
valeur: oui
-? contrat salarié . frais professionnels . abonnement transports publics . montant
-: titre: Abonnement aux transports publics
+contrat salarié . frais professionnels . abonnement transports publics . montant:
+ titre: Abonnement aux transports publics
question: Quel montant le salarié dépense-t-il en abonnement aux transports publics chaque mois ?
unité: €/mois
par défaut: 0 €/mois
@@ -193,11 +193,11 @@ contrat salarié . frais professionnels . abonnement transports publics:
Tisséo: 42.50 €/mois
TBM: 42.20 €/mois
-? contrat salarié . frais professionnels . abonnement transports publics . taux de participation employeur
-: valeur: 50%
+contrat salarié . frais professionnels . abonnement transports publics . taux de participation employeur:
+ valeur: 50%
-? contrat salarié . frais professionnels . abonnement transports publics . taux de prise en charge
-: titre: Taux de prise en charge
+contrat salarié . frais professionnels . abonnement transports publics . taux de prise en charge:
+ titre: Taux de prise en charge
valeur:
produit:
assiette:
@@ -206,8 +206,8 @@ contrat salarié . frais professionnels . abonnement transports publics:
- 50%
taux: 2 * taux de participation employeur
-? contrat salarié . frais professionnels . abonnement transports publics . prise en charge
-: titre: Abonnement transports publics, part prise en charge par l'employeur (déductible)
+contrat salarié . frais professionnels . abonnement transports publics . prise en charge:
+ titre: Abonnement transports publics, part prise en charge par l'employeur (déductible)
unité: €/mois
valeur: taux de prise en charge * montant
@@ -224,14 +224,14 @@ contrat salarié . frais professionnels . transports personnels . montant:
- carburant faible émission . montant
- forfait mobilités durables . montant
-? contrat salarié . frais professionnels . transports personnels . part déductible
-: valeur:
+contrat salarié . frais professionnels . transports personnels . part déductible:
+ valeur:
somme:
- carburant faible émission . part déductible
- forfait mobilités durables . part déductible
-? contrat salarié . frais professionnels . transports personnels . proportion déduction
-: titre: Facteur de proportion de la déductibilité
+contrat salarié . frais professionnels . transports personnels . proportion déduction:
+ titre: Facteur de proportion de la déductibilité
valeur:
produit:
assiette:
@@ -242,11 +242,11 @@ contrat salarié . frais professionnels . transports personnels . montant:
références:
Article R3261-14 du code du travail, version 11/05/2020: https://www.legifrance.gouv.fr/codes/id/LEGIARTI000041865023/2020-05-11/
-? contrat salarié . frais professionnels . transports personnels . carburant faible émission
-: valeur: oui
+contrat salarié . frais professionnels . transports personnels . carburant faible émission:
+ valeur: oui
-? contrat salarié . frais professionnels . transports personnels . carburant faible émission . montant
-: titre: Prise en charge du carburant pour véhicule électrique, hybride rechargeable ou hydrogène
+contrat salarié . frais professionnels . transports personnels . carburant faible émission . montant:
+ titre: Prise en charge du carburant pour véhicule électrique, hybride rechargeable ou hydrogène
question: Quel montant l'employeur prend-il en charge des dépenses en carburant pour véhicule électrique, hybride rechargeable ou hydrogènes?
unité: €/an
par défaut: 0 €/an
@@ -266,8 +266,8 @@ contrat salarié . frais professionnels . transports personnels . montant:
Articles R3261-11 à -13 du code du travail, version 11/05/2020: https://www.legifrance.gouv.fr/codes/section_lc/LEGITEXT000006072050/LEGISCTA000018487476/2020-05-11
Article 81 du code des impôts, version en vigueur au 31/12/2020: https://www.legifrance.gouv.fr/codes/id/LEGIARTI000042910732/2020-12-31/
-? contrat salarié . frais professionnels . transports personnels . carburant faible émission . part déductible
-: titre: Prise en charge du carburant pour véhicule électrique, hybride rechargeable ou hydrogène (part déductible)
+contrat salarié . frais professionnels . transports personnels . carburant faible émission . part déductible:
+ titre: Prise en charge du carburant pour véhicule électrique, hybride rechargeable ou hydrogène (part déductible)
unité: €/an
valeur: montant
plafond:
@@ -276,11 +276,11 @@ contrat salarié . frais professionnels . transports personnels . montant:
- valeur: proportion déduction * 500€/an
abattement: abonnement transports publics . prise en charge
-? contrat salarié . frais professionnels . transports personnels . forfait mobilités durables
-: valeur: oui
+contrat salarié . frais professionnels . transports personnels . forfait mobilités durables:
+ valeur: oui
-? contrat salarié . frais professionnels . transports personnels . forfait mobilités durables . montant
-: titre: Prise en charge des frais de transports forfait mobilités durables
+contrat salarié . frais professionnels . transports personnels . forfait mobilités durables . montant:
+ titre: Prise en charge des frais de transports forfait mobilités durables
question: Quel montant l'employeur prend-il en charge dans le cadre du forfait mobilités durables ?
unité: €/an
par défaut: 0 €/an
@@ -312,8 +312,8 @@ contrat salarié . frais professionnels . transports personnels . montant:
Articles R3261-13-1 à -13-2 du code du travail, version 11/05/2020: https://www.legifrance.gouv.fr/codes/section_lc/LEGITEXT000006072050/LEGISCTA000018487476/2020-05-11
Article 81 du code des impôts, version en vigueur au 31/12/2020: https://www.legifrance.gouv.fr/codes/id/LEGIARTI000042910732/2020-12-31/
-? contrat salarié . frais professionnels . transports personnels . forfait mobilités durables . part déductible
-: titre: Prise en charge des frais de transports forfait mobilités durables (part déductible)
+contrat salarié . frais professionnels . transports personnels . forfait mobilités durables . part déductible:
+ titre: Prise en charge des frais de transports forfait mobilités durables (part déductible)
unité: €/an
valeur: montant
plafond:
@@ -377,8 +377,8 @@ contrat salarié . activité partielle . heures travaillées:
20 h/semaine: 86.6666 heures/mois
10 h/semaine: 43.3333 heures/mois
-? contrat salarié . activité partielle . heures travaillées . contrôle temps de travail
-: type: notification
+contrat salarié . activité partielle . heures travaillées . contrôle temps de travail:
+ type: notification
sévérité: avertissement
formule: heures travaillées > temps de travail . temps contractuel
description: >-
@@ -455,8 +455,8 @@ contrat salarié . activité partielle . indemnités . conventionnelle:
Legifrance: https://www.legifrance.gouv.fr/affichIDCCArticle.do?idArticle=KALIARTI000028465400&cidTexte=KALITEXT000028465378&dateTexte=29990101&categorieLien=id
Juritravail: https://www.juritravail.com/Actualite/Hygiene-securite-travail-employeur/Id/327284
-? contrat salarié . activité partielle . indemnités . conventionnelle . part soumise à cotisation
-: applicable si:
+contrat salarié . activité partielle . indemnités . conventionnelle . part soumise à cotisation:
+ applicable si:
toutes ces conditions:
- indemnités . conventionnelle > 0
- indemnités . conventionnelle + indemnités . base > 3.15 * SMIC
@@ -496,8 +496,8 @@ contrat salarié . activité partielle . indemnisation entreprise:
avec:
rémunération . brut de base: 4.5 * SMIC
-? contrat salarié . activité partielle . indemnisation entreprise . taux d'indemnisation
-: description: >-
+contrat salarié . activité partielle . indemnisation entreprise . taux d'indemnisation:
+ description: >-
Depuis le 1er juin, le taux d'indemnisation de l'entreprise passe à 60%.
L'indemnité versée à l'employé reste inchangée et c'est donc l'entreprise
qui devra prendre en charge la différence.
@@ -613,8 +613,8 @@ contrat salarié . déduction forfaitaire spécifique . profession . journaliste
Concerne les journalistes, rédacteurs, photographes, directeurs de journaux
Critiques dramatiques et musicaux.
-? contrat salarié . déduction forfaitaire spécifique . profession . journaliste . réduction de taux
-: applicable si: déduction forfaitaire spécifique . profession = 'journaliste'
+contrat salarié . déduction forfaitaire spécifique . profession . journaliste . réduction de taux:
+ applicable si: déduction forfaitaire spécifique . profession = 'journaliste'
remplace:
- règle: vieillesse . employeur . plafonnée . taux
par: vieillesse . employeur . plafonnée . taux * réduction de taux
@@ -635,29 +635,29 @@ contrat salarié . déduction forfaitaire spécifique . profession . journaliste
par: ATMP . taux minimum * réduction de taux
formule: 80%
-? contrat salarié . déduction forfaitaire spécifique . profession . journaliste . abattement fiscal
-: applicable si: déduction forfaitaire spécifique . profession = 'journaliste'
+contrat salarié . déduction forfaitaire spécifique . profession . journaliste . abattement fiscal:
+ applicable si: déduction forfaitaire spécifique . profession = 'journaliste'
remplace: rémunération . net imposable
titre: net imposable journaliste
formule:
valeur: rémunération . net imposable
abattement: 7650€/an
-? contrat salarié . déduction forfaitaire spécifique . profession . ouvrier du bâtiment
-: icônes: 👷♂️
+contrat salarié . déduction forfaitaire spécifique . profession . ouvrier du bâtiment:
+ icônes: 👷♂️
description: >-
Concerne les ouvriers du bâtiment visés aux paragraphes 1er et 2 de
l’article 1er du décret du 17 novembre 1936, à l’exclusion de ceux qui
travaillent en usine ou en atelier.
-? contrat salarié . déduction forfaitaire spécifique . profession . artiste musicien
-: icônes: 🎼
+contrat salarié . déduction forfaitaire spécifique . profession . artiste musicien:
+ icônes: 🎼
description: >-
Concerne les artistes musiciens, choristes, chefs d’orchestre, régisseurs de
théâtre
-? contrat salarié . déduction forfaitaire spécifique . profession . pilote de ligne ou personnel navigant
-: icônes: ✈
+contrat salarié . déduction forfaitaire spécifique . profession . pilote de ligne ou personnel navigant:
+ icônes: ✈
description: >-
Concerne les pilotes, radios, mécaniciens navigants des compagnies de
transports aériens ; pilotes et mécaniciens employés par les maisons de
@@ -1482,8 +1482,8 @@ contrat salarié . rémunération . primes . fin d'année:
assiette: assiette de vérification du SMIC * temps de travail . quotité de travail / 1 an
facteur: prime de fin d'année en mois
-? contrat salarié . rémunération . primes . fin d'année . prime de fin d'année en mois
-: applicable si: treizième mois
+contrat salarié . rémunération . primes . fin d'année . prime de fin d'année en mois:
+ applicable si: treizième mois
formule: 13 mois - 1 an
note: >
Certaines entreprises proposent une prime de fin d'année sur une base de
@@ -1674,8 +1674,8 @@ contrat salarié . rémunération . avantages en nature . nourriture . montant:
références:
urssaf.fr: https://www.urssaf.fr/portail/home/taux-et-baremes/avantages-en-nature/nourriture.html
-? contrat salarié . rémunération . avantages en nature . nourriture . repas par mois
-: question: >
+contrat salarié . rémunération . avantages en nature . nourriture . repas par mois:
+ question: >
Combien de repas par mois sont payés par l'entreprise ?
par défaut: 21 repas/mois
suggestions:
@@ -1837,8 +1837,8 @@ contrat salarié . rémunération . net imposable:
références:
DSN: https://dsn-info.custhelp.com/app/answers/detail/a_id/2110
-? contrat salarié . rémunération . net imposable . heures supplémentaires et complémentaires défiscalisées
-: unité: €/mois
+contrat salarié . rémunération . net imposable . heures supplémentaires et complémentaires défiscalisées:
+ unité: €/mois
formule:
valeur:
somme:
@@ -1961,8 +1961,8 @@ contrat salarié . cotisations . patronales . réductions de cotisations:
urssaf.fr (cumul réduction générale): https://www.urssaf.fr/portail/home/employeur/beneficier-dune-exoneration/exonerations-generales/la-reduction-generale/les-regles-relatives-au-cumul.html
urssaf.fr (cumul JEI): https://www.urssaf.fr/portail/home/employeur/beneficier-dune-exoneration/exonerations-ou-aides-liees-au-s/jeunes-entreprises-innovantes/regles-de-cumul.html
-? contrat salarié . cotisations . patronales . réductions de cotisations . déduction heures supplémentaires
-: applicable si: entreprise . effectif < 20
+contrat salarié . cotisations . patronales . réductions de cotisations . déduction heures supplémentaires:
+ applicable si: entreprise . effectif < 20
titre: déduction forfaitaire pour heures supplémentaires
formule:
produit:
@@ -1982,8 +1982,8 @@ contrat salarié . cotisations . salariales . réduction heures supplémentaires
références:
Code de la sécurité sociale - Article D241-21: https://www.legifrance.gouv.fr/affichCodeArticle.do?idArticle=LEGIARTI000038056813&cidTexte=LEGITEXT000006073189
-? contrat salarié . cotisations . salariales . réduction heures supplémentaires . taux des cotisations réduites
-: unité: '%'
+contrat salarié . cotisations . salariales . réduction heures supplémentaires . taux des cotisations réduites:
+ unité: '%'
description: le taux effectif des cotisations d'assurance vieillesse à la charge du salarié
formule:
valeur:
@@ -2072,8 +2072,8 @@ contrat salarié . aides employeur . aide à l'embauche d'apprentis:
références:
Fiche service-public.fr: https://www.service-public.fr/professionnels-entreprises/vosdroits/F23556
-? contrat salarié . aides employeur . aide exceptionnelle à l'embauche d'apprentis
-: description: >-
+contrat salarié . aides employeur . aide exceptionnelle à l'embauche d'apprentis:
+ description: >-
Dans le cadre du plan de relance de l'économie de la rentrée 2020, le
gouvernement met en place une aide exceptionnelle au recrutement des
apprentis.
@@ -2135,8 +2135,8 @@ contrat salarié . aides employeur . aide exceptionnelle à l'embauche des jeune
références:
Plan \#1jeune1solution: https://travail-emploi.gouv.fr/le-ministere-en-action/relance-activite/plan-1jeune-1solution/aide-embauche-jeunes
-? contrat salarié . aides employeur . aide à l'embauche senior professionnalisation
-: description: |
+contrat salarié . aides employeur . aide à l'embauche senior professionnalisation:
+ description: |
Les employeurs peuvent obtenir une aide de 2000 € pour l'embauche d'un
demandeur d'emploi de plus de 45 ans en contrat de professionnalisation.
applicable si: professionnalisation . salarié de 45 ans et plus
@@ -2213,8 +2213,8 @@ contrat salarié . temps de travail:
- heures complémentaires
description: En France, la base légale du travail est de 35h/semaine. Mais un grand nombre de dispositions existantes permettent de faire varier ce nombre. Vous pouvez les retrouver sur la page [service-public.fr](https://www.service-public.fr/particuliers/vosdroits/N458) dédiée.
-? contrat salarié . aides employeur . aide à l'embauche des travailleurs handicapés
-: non applicable si: aides employeur . emploi franc
+contrat salarié . aides employeur . aide à l'embauche des travailleurs handicapés:
+ non applicable si: aides employeur . emploi franc
description: >-
Dans le cadre du plan de relance, le gouvernement a décidé de créer une aide
à l’embauche visant à favoriser l’emploi des personnes en situation de
@@ -2360,8 +2360,8 @@ contrat salarié . temps de travail . heures complémentaires:
question: Combien d'heures complémentaires (non récupérées en repos) sont effectuées par mois ?
par défaut: 0 heure/mois
-? contrat salarié . temps de travail . contrôle heures complémentaires 10 pourcents
-: type: notification
+contrat salarié . temps de travail . contrôle heures complémentaires 10 pourcents:
+ type: notification
formule: heures complémentaires > heures complémentaires . seuil légal
description: Sauf disposition conventionnelle, le nombre d'heures complémentaires ne peut être supérieur à un dixième de la durée contractuelle du temps partiel.
@@ -2653,8 +2653,8 @@ contrat salarié . retraite supplémentaire . part déductible:
valeur: retraite supplémentaire . employeur
abattement: plafond d'exonération sociale employeur
-? contrat salarié . retraite supplémentaire . plafond d'exonération sociale employeur
-: formule:
+contrat salarié . retraite supplémentaire . plafond d'exonération sociale employeur:
+ formule:
valeur: 5% * rémunération . brut
plafond: 5% * plafond sécurité sociale
références:
@@ -2929,8 +2929,8 @@ contrat salarié . CSG et CRDS . assiette revenu remplacements:
taux: 98.25%
assiette: rémunération . revenus de remplacement
-? contrat salarié . CSG et CRDS . assiette heures supplémentaires et complémentaires défiscalisées
-: formule:
+contrat salarié . CSG et CRDS . assiette heures supplémentaires et complémentaires défiscalisées:
+ formule:
produit:
assiette: rémunération . net imposable . heures supplémentaires et complémentaires défiscalisées
taux: 98.25%
diff --git a/mon-entreprise/package.json b/mon-entreprise/package.json
index 234c5326b..1fbc42a06 100644
--- a/mon-entreprise/package.json
+++ b/mon-entreprise/package.json
@@ -30,7 +30,7 @@
"@types/mocha": "^8.2.2",
"@types/react": "^17.0.0",
"@types/react-color": "^3.0.1",
- "@types/react-dom": "^17.0.0",
+ "@types/react-dom": "^17.0.9",
"@types/react-helmet": "^6.1.0",
"@types/react-redux": "^7.1.11",
"@types/react-router": "^5.1.2",
@@ -67,7 +67,6 @@
"@rehooks/local-storage": "^2.1.1",
"@sentry/react": "^6.3.5",
"@sentry/tracing": "^6.3.5",
- "@types/react-dom": "^17.0.0",
"classnames": "^2.2.5",
"color-convert": "^1.9.2",
"core-js": "^3.2.1",
diff --git a/mon-entreprise/source/ATInternetTracking/smarttag.js b/mon-entreprise/source/ATInternetTracking/smarttag.js
index 74059e52f..25536cf27 100644
--- a/mon-entreprise/source/ATInternetTracking/smarttag.js
+++ b/mon-entreprise/source/ATInternetTracking/smarttag.js
@@ -82,7 +82,8 @@
: null
}
var c = this,
- b = /(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g,
+ b =
+ /(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g,
d = RegExp(
'^[\\x20\\t\\r\\n\\f]+|((?:^|[^\\\\])(?:\\\\.)*)[\\x20\\t\\r\\n\\f]+$',
'g'
@@ -1506,12 +1507,13 @@
'undefined' !== typeof window &&
'undefined' !== typeof window.location
) {
- h = (c.getConfig('urlPropertyQueryString')
- ? window.location.href
- : window.location.protocol +
- '//' +
- window.location.host +
- window.location.pathname
+ h = (
+ c.getConfig('urlPropertyQueryString')
+ ? window.location.href
+ : window.location.protocol +
+ '//' +
+ window.location.host +
+ window.location.pathname
)
.replace(/[<>]/g, '')
.substring(0, 1600)
@@ -1521,9 +1523,10 @@
c.setContext('page', l)
c.setParam('page_url', h, {
permanent: !0,
- hitType: 'page click publisher selfPromotion onSiteAdsClick onSiteAdsImpression InternalSearch mvtesting richmedia'.split(
- ' '
- ),
+ hitType:
+ 'page click publisher selfPromotion onSiteAdsClick onSiteAdsImpression InternalSearch mvtesting richmedia'.split(
+ ' '
+ ),
})
}
c.plugins.init()
@@ -1641,8 +1644,13 @@
},
c = { search: 's', content: 'c' }
this.atMedium = 'sl'
- this.atTerm = this.atNetwork = this.atVariant = this.atCreation = this.atPlatform = this.atCampaign =
- ''
+ this.atTerm =
+ this.atNetwork =
+ this.atVariant =
+ this.atCreation =
+ this.atPlatform =
+ this.atCampaign =
+ ''
this.format = function () {
var a = 'sec',
h = b(this.atCampaign),
@@ -1693,8 +1701,15 @@
this.Email = function () {
var e = { acquisition: 'erec', retention: 'epr', promotion: 'es' }
this.atMedium = 'email'
- this.atSendTime = this.atRecipientList = this.atRecipientId = this.atLink = this.atSendDate = this.atCreation = this.atCampaign = this.atEmailtype =
- ''
+ this.atSendTime =
+ this.atRecipientList =
+ this.atRecipientId =
+ this.atLink =
+ this.atSendDate =
+ this.atCreation =
+ this.atCampaign =
+ this.atEmailtype =
+ ''
this.format = function () {
var a = e[this.atEmailtype] || e.promotion,
c = b(this.atCampaign),
@@ -1762,8 +1777,13 @@
}
this.Affiliate = function () {
this.atMedium = 'affiliate'
- this.atVariant = this.atCreation = this.atFormat = this.atIdentifier = this.atType = this.atCampaign =
- ''
+ this.atVariant =
+ this.atCreation =
+ this.atFormat =
+ this.atIdentifier =
+ this.atType =
+ this.atCampaign =
+ ''
this.format = function () {
var a = 'al',
f = b(this.atCampaign),
@@ -1813,8 +1833,14 @@
}
this.Display = function () {
this.atMedium = 'display'
- this.atDetailPlacement = this.atGeneralPlacement = this.atChannel = this.atFormat = this.atVariant = this.atCreation = this.atCampaign =
- ''
+ this.atDetailPlacement =
+ this.atGeneralPlacement =
+ this.atChannel =
+ this.atFormat =
+ this.atVariant =
+ this.atCreation =
+ this.atCampaign =
+ ''
this.format = function () {
var a = 'ad',
f = b(this.atCampaign),
@@ -1885,8 +1911,13 @@
}
}
this.Custom = function () {
- this.atCustom4 = this.atCustom3 = this.atCustom2 = this.atCustom1 = this.atCampaign = this.atMedium =
- ''
+ this.atCustom4 =
+ this.atCustom3 =
+ this.atCustom2 =
+ this.atCustom1 =
+ this.atCampaign =
+ this.atMedium =
+ ''
this.format = function () {
var a = ''
;/\d+$/.test(this.atMedium) && (a = /\d+$/.exec(this.atMedium)[0])
diff --git a/mon-entreprise/source/components/CurrencyInput/CurrencyInput.tsx b/mon-entreprise/source/components/CurrencyInput/CurrencyInput.tsx
index 96c02b853..e7159bd21 100644
--- a/mon-entreprise/source/components/CurrencyInput/CurrencyInput.tsx
+++ b/mon-entreprise/source/components/CurrencyInput/CurrencyInput.tsx
@@ -66,11 +66,8 @@ export default function CurrencyInput({
onChangeDebounced?.(event)
}
- const {
- isCurrencyPrefixed,
- thousandSeparator,
- decimalSeparator,
- } = currencyFormat(language)
+ const { isCurrencyPrefixed, thousandSeparator, decimalSeparator } =
+ currencyFormat(language)
// Autogrow the input
const valueLength = currentValue.toString().length
const width = `${5 + (valueLength - 5) * 0.75}em`
diff --git a/mon-entreprise/source/components/Distribution.tsx b/mon-entreprise/source/components/Distribution.tsx
index 6336bb7a3..9e5de7d80 100644
--- a/mon-entreprise/source/components/Distribution.tsx
+++ b/mon-entreprise/source/components/Distribution.tsx
@@ -13,17 +13,19 @@ import RuleLink from './RuleLink'
export default function Distribution() {
const targetUnit = useSelector(targetUnitSelector)
const engine = useContext(EngineContext)
- const distribution = (getCotisationsBySection(
- useEngine().getParsedRules()
- ).map(([section, cotisations]) => [
- section,
- cotisations
- .map((c) => engine.evaluate({ valeur: c, unité: targetUnit }))
- .reduce(
- (acc, evaluation) => acc + ((evaluation?.nodeValue as number) || 0),
- 0
- ),
- ]) as Array<[DottedName, number]>)
+ const distribution = (
+ getCotisationsBySection(useEngine().getParsedRules()).map(
+ ([section, cotisations]) => [
+ section,
+ cotisations
+ .map((c) => engine.evaluate({ valeur: c, unité: targetUnit }))
+ .reduce(
+ (acc, evaluation) => acc + ((evaluation?.nodeValue as number) || 0),
+ 0
+ ),
+ ]
+ ) as Array<[DottedName, number]>
+ )
.filter(([, value]) => value > 0)
.sort(([, a], [, b]) => b - a)
diff --git a/mon-entreprise/source/components/FindCompany.tsx b/mon-entreprise/source/components/FindCompany.tsx
index 910d32dcc..234adbc2e 100644
--- a/mon-entreprise/source/components/FindCompany.tsx
+++ b/mon-entreprise/source/components/FindCompany.tsx
@@ -6,10 +6,8 @@ import { Etablissement, searchDenominationOrSiren } from '../api/sirene'
import { debounce } from '../utils'
export default function Search() {
- const [
- searchResults,
- setSearchResults,
- ] = useState | null>()
+ const [searchResults, setSearchResults] =
+ useState | null>()
const [isLoading, setLoadingState] = useState(false)
const handleSearch = useCallback(
@@ -21,9 +19,10 @@ export default function Search() {
},
[setSearchResults, setLoadingState]
)
- const debouncedHandleSearch = useMemo(() => debounce(300, handleSearch), [
- handleSearch,
- ])
+ const debouncedHandleSearch = useMemo(
+ () => debounce(300, handleSearch),
+ [handleSearch]
+ )
const setEntreprise = useSetEntreprise()
return (
diff --git a/mon-entreprise/source/components/SchemeComparaison.tsx b/mon-entreprise/source/components/SchemeComparaison.tsx
index f17d70ee5..b42fa2f27 100644
--- a/mon-entreprise/source/components/SchemeComparaison.tsx
+++ b/mon-entreprise/source/components/SchemeComparaison.tsx
@@ -39,9 +39,10 @@ export default function SchemeComparaison({
const [conversationStarted, setConversationStarted] = useState(
!!Object.keys(useSelector(situationSelector)).length
)
- const startConversation = useCallback(() => setConversationStarted(true), [
- setConversationStarted,
- ])
+ const startConversation = useCallback(
+ () => setConversationStarted(true),
+ [setConversationStarted]
+ )
const situation = useSelector(situationSelector)
const displayResult =
diff --git a/mon-entreprise/source/components/TargetSelection.tsx b/mon-entreprise/source/components/TargetSelection.tsx
index b35fe696a..5beb4f61d 100644
--- a/mon-entreprise/source/components/TargetSelection.tsx
+++ b/mon-entreprise/source/components/TargetSelection.tsx
@@ -12,13 +12,7 @@ import {
import { SitePathsContext } from 'Components/utils/SitePathsContext'
import { DottedName } from 'modele-social'
import { Names } from 'modele-social/dist/names'
-import {
- ASTNode,
- EvaluatedNode,
- formatValue,
- reduceAST,
- RuleNode,
-} from 'publicodes'
+import { EvaluatedNode, formatValue, reduceAST, RuleNode } from 'publicodes'
import { Fragment, useCallback, useContext, useState } from 'react'
import emoji from 'react-easy-emoji'
import { Trans, useTranslation } from 'react-i18next'
@@ -290,9 +284,8 @@ function AidesGlimpse() {
const aidesNotNul = node.explanation
.map((n) => engine.evaluate(n))
.filter(({ nodeValue }) => nodeValue !== false)
- if (aidesNotNul.length === 1) {
- return (aidesNotNul[0] as ASTNode & { nodeKind: 'reference' })
- .dottedName as DottedName
+ if (aidesNotNul.length === 1 && 'dottedName' in aidesNotNul[0]) {
+ return aidesNotNul[0].dottedName as DottedName
} else {
return acc
}
diff --git a/mon-entreprise/source/components/conversation/AnswerList.tsx b/mon-entreprise/source/components/conversation/AnswerList.tsx
index c9385dad5..8674def27 100644
--- a/mon-entreprise/source/components/conversation/AnswerList.tsx
+++ b/mon-entreprise/source/components/conversation/AnswerList.tsx
@@ -17,11 +17,9 @@ type AnswerListProps = {
export default function AnswerList({ onClose }: AnswerListProps) {
const dispatch = useDispatch()
const engine = useEngine()
- const answeredQuestions = (Object.keys(
- useSelector(situationSelector)
- ) as Array).map((dottedName) =>
- engine.evaluate(engine.getRule(dottedName))
- )
+ const answeredQuestions = (
+ Object.keys(useSelector(situationSelector)) as Array
+ ).map((dottedName) => engine.evaluate(engine.getRule(dottedName)))
const nextSteps = useNextQuestions().map((dottedName) =>
engine.evaluate(engine.getRule(dottedName))
diff --git a/mon-entreprise/source/components/conversation/Question.tsx b/mon-entreprise/source/components/conversation/Question.tsx
index 70bedbfb3..78ca45dd6 100644
--- a/mon-entreprise/source/components/conversation/Question.tsx
+++ b/mon-entreprise/source/components/conversation/Question.tsx
@@ -175,7 +175,7 @@ export default function Question({
}
const choiceElements = Array.isArray(choices)
- ? renderBinaryQuestion((choices as unknown) as typeof binaryQuestion)
+ ? renderBinaryQuestion(choices as unknown as typeof binaryQuestion)
: renderChildren(choices as Choice)
return (
diff --git a/mon-entreprise/source/components/conversation/RuleInput.tsx b/mon-entreprise/source/components/conversation/RuleInput.tsx
index a27e45923..539003793 100644
--- a/mon-entreprise/source/components/conversation/RuleInput.tsx
+++ b/mon-entreprise/source/components/conversation/RuleInput.tsx
@@ -225,9 +225,11 @@ export const buildVariantTree = (
variant
? {
canGiveUp,
- children: (variant.explanation as (ASTNode & {
- nodeKind: 'reference'
- })[]).map(({ dottedName }) =>
+ children: (
+ variant.explanation as (ASTNode & {
+ nodeKind: 'reference'
+ })[]
+ ).map(({ dottedName }) =>
buildVariantTree(engine, dottedName as Name)
),
}
diff --git a/mon-entreprise/source/components/simulationExplanation/IndépendantExplanation.tsx b/mon-entreprise/source/components/simulationExplanation/IndépendantExplanation.tsx
index 46ca70671..4327963e2 100644
--- a/mon-entreprise/source/components/simulationExplanation/IndépendantExplanation.tsx
+++ b/mon-entreprise/source/components/simulationExplanation/IndépendantExplanation.tsx
@@ -130,24 +130,20 @@ const CotisationsSection: Partial>> = {
],
}
-interface DistributionProps {
- disableAnimation: boolean
-}
-
-function Distribution({ disableAnimation }: DistributionProps) {
+function Distribution() {
const targetUnit = useSelector(targetUnitSelector)
const engine = useEngine()
- const distribution = (Object.entries(
- CotisationsSection
- ).map(([section, cotisations]) => [
- section,
- cotisations
- .map((c) => engine.evaluate({ valeur: c, unité: targetUnit }))
- .reduce(
- (acc, evaluation) => acc + ((evaluation?.nodeValue as number) || 0),
- 0
- ),
- ]) as Array<[DottedName, number]>)
+ const distribution = (
+ Object.entries(CotisationsSection).map(([section, cotisations]) => [
+ section,
+ cotisations
+ .map((c) => engine.evaluate({ valeur: c, unité: targetUnit }))
+ .reduce(
+ (acc, evaluation) => acc + ((evaluation?.nodeValue as number) || 0),
+ 0
+ ),
+ ]) as Array<[DottedName, number]>
+ )
.filter(([, value]) => value > 0)
.sort(([, a], [, b]) => b - a)
@@ -162,7 +158,6 @@ function Distribution({ disableAnimation }: DistributionProps) {
dottedName={sectionName}
value={value}
maximum={maximum}
- disableAnimation={disableAnimation}
/>
))}
@@ -175,7 +170,6 @@ type DistributionBranchProps = {
value: number
maximum: number
icon?: string
- disableAnimation: boolean
}
function DistributionBranch({
@@ -183,7 +177,6 @@ function DistributionBranch({
value,
icon,
maximum,
- disableAnimation,
}: DistributionBranchProps) {
const branche = useEngine().getRule(dottedName)
@@ -195,7 +188,6 @@ function DistributionBranch({
icon={icon ?? branche.rawNode.icônes}
description={branche.rawNode.résumé}
unit="€"
- disableAnimation={disableAnimation}
/>
)
}
diff --git a/mon-entreprise/source/components/simulationExplanation/PLExplanation.tsx b/mon-entreprise/source/components/simulationExplanation/PLExplanation.tsx
index bdb77cff5..ba4465ae5 100644
--- a/mon-entreprise/source/components/simulationExplanation/PLExplanation.tsx
+++ b/mon-entreprise/source/components/simulationExplanation/PLExplanation.tsx
@@ -92,7 +92,8 @@ function CaisseRetraite() {
return (
<>
{caisses.map((caisse) => {
- const dottedName = `dirigeant . indépendant . PL . ${caisse}` as DottedName
+ const dottedName =
+ `dirigeant . indépendant . PL . ${caisse}` as DottedName
const { description, références } = engine.getRule(dottedName).rawNode
return (
diff --git a/mon-entreprise/source/components/ui/SocialIcon.tsx b/mon-entreprise/source/components/ui/SocialIcon.tsx
index fa5ae1918..9433843ac 100644
--- a/mon-entreprise/source/components/ui/SocialIcon.tsx
+++ b/mon-entreprise/source/components/ui/SocialIcon.tsx
@@ -3,34 +3,24 @@ import { useContext } from 'react'
export const icons = {
facebook: {
- icon:
- 'M34.1,47V33.3h4.6l0.7-5.3h-5.3v-3.4c0-1.5,0.4-2.6,2.6-2.6l2.8,0v-4.8c-0.5-0.1-2.2-0.2-4.1-0.2 c-4.1,0-6.9,2.5-6.9,7V28H24v5.3h4.6V47H34.1z',
- mask:
- 'M0,0v64h64V0H0z M39.6,22l-2.8,0c-2.2,0-2.6,1.1-2.6,2.6V28h5.3l-0.7,5.3h-4.6V47h-5.5V33.3H24V28h4.6V24 c0-4.6,2.8-7,6.9-7c2,0,3.6,0.1,4.1,0.2V22z',
+ icon: 'M34.1,47V33.3h4.6l0.7-5.3h-5.3v-3.4c0-1.5,0.4-2.6,2.6-2.6l2.8,0v-4.8c-0.5-0.1-2.2-0.2-4.1-0.2 c-4.1,0-6.9,2.5-6.9,7V28H24v5.3h4.6V47H34.1z',
+ mask: 'M0,0v64h64V0H0z M39.6,22l-2.8,0c-2.2,0-2.6,1.1-2.6,2.6V28h5.3l-0.7,5.3h-4.6V47h-5.5V33.3H24V28h4.6V24 c0-4.6,2.8-7,6.9-7c2,0,3.6,0.1,4.1,0.2V22z',
},
twitter: {
- icon:
- 'M48,22.1c-1.2,0.5-2.4,0.9-3.8,1c1.4-0.8,2.4-2.1,2.9-3.6c-1.3,0.8-2.7,1.3-4.2,1.6 C41.7,19.8,40,19,38.2,19c-3.6,0-6.6,2.9-6.6,6.6c0,0.5,0.1,1,0.2,1.5c-5.5-0.3-10.3-2.9-13.5-6.9c-0.6,1-0.9,2.1-0.9,3.3 c0,2.3,1.2,4.3,2.9,5.5c-1.1,0-2.1-0.3-3-0.8c0,0,0,0.1,0,0.1c0,3.2,2.3,5.8,5.3,6.4c-0.6,0.1-1.1,0.2-1.7,0.2c-0.4,0-0.8,0-1.2-0.1 c0.8,2.6,3.3,4.5,6.1,4.6c-2.2,1.8-5.1,2.8-8.2,2.8c-0.5,0-1.1,0-1.6-0.1c2.9,1.9,6.4,2.9,10.1,2.9c12.1,0,18.7-10,18.7-18.7 c0-0.3,0-0.6,0-0.8C46,24.5,47.1,23.4,48,22.1z',
- mask:
- 'M0,0v64h64V0H0z M44.7,25.5c0,0.3,0,0.6,0,0.8C44.7,35,38.1,45,26.1,45c-3.7,0-7.2-1.1-10.1-2.9 c0.5,0.1,1,0.1,1.6,0.1c3.1,0,5.9-1,8.2-2.8c-2.9-0.1-5.3-2-6.1-4.6c0.4,0.1,0.8,0.1,1.2,0.1c0.6,0,1.2-0.1,1.7-0.2 c-3-0.6-5.3-3.3-5.3-6.4c0,0,0-0.1,0-0.1c0.9,0.5,1.9,0.8,3,0.8c-1.8-1.2-2.9-3.2-2.9-5.5c0-1.2,0.3-2.3,0.9-3.3 c3.2,4,8.1,6.6,13.5,6.9c-0.1-0.5-0.2-1-0.2-1.5c0-3.6,2.9-6.6,6.6-6.6c1.9,0,3.6,0.8,4.8,2.1c1.5-0.3,2.9-0.8,4.2-1.6 c-0.5,1.5-1.5,2.8-2.9,3.6c1.3-0.2,2.6-0.5,3.8-1C47.1,23.4,46,24.5,44.7,25.5z',
+ icon: 'M48,22.1c-1.2,0.5-2.4,0.9-3.8,1c1.4-0.8,2.4-2.1,2.9-3.6c-1.3,0.8-2.7,1.3-4.2,1.6 C41.7,19.8,40,19,38.2,19c-3.6,0-6.6,2.9-6.6,6.6c0,0.5,0.1,1,0.2,1.5c-5.5-0.3-10.3-2.9-13.5-6.9c-0.6,1-0.9,2.1-0.9,3.3 c0,2.3,1.2,4.3,2.9,5.5c-1.1,0-2.1-0.3-3-0.8c0,0,0,0.1,0,0.1c0,3.2,2.3,5.8,5.3,6.4c-0.6,0.1-1.1,0.2-1.7,0.2c-0.4,0-0.8,0-1.2-0.1 c0.8,2.6,3.3,4.5,6.1,4.6c-2.2,1.8-5.1,2.8-8.2,2.8c-0.5,0-1.1,0-1.6-0.1c2.9,1.9,6.4,2.9,10.1,2.9c12.1,0,18.7-10,18.7-18.7 c0-0.3,0-0.6,0-0.8C46,24.5,47.1,23.4,48,22.1z',
+ mask: 'M0,0v64h64V0H0z M44.7,25.5c0,0.3,0,0.6,0,0.8C44.7,35,38.1,45,26.1,45c-3.7,0-7.2-1.1-10.1-2.9 c0.5,0.1,1,0.1,1.6,0.1c3.1,0,5.9-1,8.2-2.8c-2.9-0.1-5.3-2-6.1-4.6c0.4,0.1,0.8,0.1,1.2,0.1c0.6,0,1.2-0.1,1.7-0.2 c-3-0.6-5.3-3.3-5.3-6.4c0,0,0-0.1,0-0.1c0.9,0.5,1.9,0.8,3,0.8c-1.8-1.2-2.9-3.2-2.9-5.5c0-1.2,0.3-2.3,0.9-3.3 c3.2,4,8.1,6.6,13.5,6.9c-0.1-0.5-0.2-1-0.2-1.5c0-3.6,2.9-6.6,6.6-6.6c1.9,0,3.6,0.8,4.8,2.1c1.5-0.3,2.9-0.8,4.2-1.6 c-0.5,1.5-1.5,2.8-2.9,3.6c1.3-0.2,2.6-0.5,3.8-1C47.1,23.4,46,24.5,44.7,25.5z',
},
linkedin: {
- icon:
- 'M20.4,44h5.4V26.6h-5.4V44z M23.1,18c-1.7,0-3.1,1.4-3.1,3.1c0,1.7,1.4,3.1,3.1,3.1 c1.7,0,3.1-1.4,3.1-3.1C26.2,19.4,24.8,18,23.1,18z M39.5,26.2c-2.6,0-4.4,1.4-5.1,2.8h-0.1v-2.4h-5.2V44h5.4v-8.6 c0-2.3,0.4-4.5,3.2-4.5c2.8,0,2.8,2.6,2.8,4.6V44H46v-9.5C46,29.8,45,26.2,39.5,26.2z',
- mask:
- 'M0,0v64h64V0H0z M25.8,44h-5.4V26.6h5.4V44z M23.1,24.3c-1.7,0-3.1-1.4-3.1-3.1c0-1.7,1.4-3.1,3.1-3.1 c1.7,0,3.1,1.4,3.1,3.1C26.2,22.9,24.8,24.3,23.1,24.3z M46,44h-5.4v-8.4c0-2,0-4.6-2.8-4.6c-2.8,0-3.2,2.2-3.2,4.5V44h-5.4V26.6 h5.2V29h0.1c0.7-1.4,2.5-2.8,5.1-2.8c5.5,0,6.5,3.6,6.5,8.3V44z',
+ icon: 'M20.4,44h5.4V26.6h-5.4V44z M23.1,18c-1.7,0-3.1,1.4-3.1,3.1c0,1.7,1.4,3.1,3.1,3.1 c1.7,0,3.1-1.4,3.1-3.1C26.2,19.4,24.8,18,23.1,18z M39.5,26.2c-2.6,0-4.4,1.4-5.1,2.8h-0.1v-2.4h-5.2V44h5.4v-8.6 c0-2.3,0.4-4.5,3.2-4.5c2.8,0,2.8,2.6,2.8,4.6V44H46v-9.5C46,29.8,45,26.2,39.5,26.2z',
+ mask: 'M0,0v64h64V0H0z M25.8,44h-5.4V26.6h5.4V44z M23.1,24.3c-1.7,0-3.1-1.4-3.1-3.1c0-1.7,1.4-3.1,3.1-3.1 c1.7,0,3.1,1.4,3.1,3.1C26.2,22.9,24.8,24.3,23.1,24.3z M46,44h-5.4v-8.4c0-2,0-4.6-2.8-4.6c-2.8,0-3.2,2.2-3.2,4.5V44h-5.4V26.6 h5.2V29h0.1c0.7-1.4,2.5-2.8,5.1-2.8c5.5,0,6.5,3.6,6.5,8.3V44z',
},
github: {
- icon:
- 'M32,16c-8.8,0-16,7.2-16,16c0,7.1,4.6,13.1,10.9,15.2 c0.8,0.1,1.1-0.3,1.1-0.8c0-0.4,0-1.4,0-2.7c-4.5,1-5.4-2.1-5.4-2.1c-0.7-1.8-1.8-2.3-1.8-2.3c-1.5-1,0.1-1,0.1-1 c1.6,0.1,2.5,1.6,2.5,1.6c1.4,2.4,3.7,1.7,4.7,1.3c0.1-1,0.6-1.7,1-2.1c-3.6-0.4-7.3-1.8-7.3-7.9c0-1.7,0.6-3.2,1.6-4.3 c-0.2-0.4-0.7-2,0.2-4.2c0,0,1.3-0.4,4.4,1.6c1.3-0.4,2.6-0.5,4-0.5c1.4,0,2.7,0.2,4,0.5c3.1-2.1,4.4-1.6,4.4-1.6 c0.9,2.2,0.3,3.8,0.2,4.2c1,1.1,1.6,2.5,1.6,4.3c0,6.1-3.7,7.5-7.3,7.9c0.6,0.5,1.1,1.5,1.1,3c0,2.1,0,3.9,0,4.4 c0,0.4,0.3,0.9,1.1,0.8C43.4,45.1,48,39.1,48,32C48,23.2,40.8,16,32,16z',
- mask:
- 'M0,0v64h64V0H0z M37.1,47.2c-0.8,0.2-1.1-0.3-1.1-0.8c0-0.5,0-2.3,0-4.4c0-1.5-0.5-2.5-1.1-3 c3.6-0.4,7.3-1.7,7.3-7.9c0-1.7-0.6-3.2-1.6-4.3c0.2-0.4,0.7-2-0.2-4.2c0,0-1.3-0.4-4.4,1.6c-1.3-0.4-2.6-0.5-4-0.5 c-1.4,0-2.7,0.2-4,0.5c-3.1-2.1-4.4-1.6-4.4-1.6c-0.9,2.2-0.3,3.8-0.2,4.2c-1,1.1-1.6,2.5-1.6,4.3c0,6.1,3.7,7.5,7.3,7.9 c-0.5,0.4-0.9,1.1-1,2.1c-0.9,0.4-3.2,1.1-4.7-1.3c0,0-0.8-1.5-2.5-1.6c0,0-1.6,0-0.1,1c0,0,1,0.5,1.8,2.3c0,0,0.9,3.1,5.4,2.1 c0,1.3,0,2.3,0,2.7c0,0.4-0.3,0.9-1.1,0.8C20.6,45.1,16,39.1,16,32c0-8.8,7.2-16,16-16c8.8,0,16,7.2,16,16 C48,39.1,43.4,45.1,37.1,47.2z',
+ icon: 'M32,16c-8.8,0-16,7.2-16,16c0,7.1,4.6,13.1,10.9,15.2 c0.8,0.1,1.1-0.3,1.1-0.8c0-0.4,0-1.4,0-2.7c-4.5,1-5.4-2.1-5.4-2.1c-0.7-1.8-1.8-2.3-1.8-2.3c-1.5-1,0.1-1,0.1-1 c1.6,0.1,2.5,1.6,2.5,1.6c1.4,2.4,3.7,1.7,4.7,1.3c0.1-1,0.6-1.7,1-2.1c-3.6-0.4-7.3-1.8-7.3-7.9c0-1.7,0.6-3.2,1.6-4.3 c-0.2-0.4-0.7-2,0.2-4.2c0,0,1.3-0.4,4.4,1.6c1.3-0.4,2.6-0.5,4-0.5c1.4,0,2.7,0.2,4,0.5c3.1-2.1,4.4-1.6,4.4-1.6 c0.9,2.2,0.3,3.8,0.2,4.2c1,1.1,1.6,2.5,1.6,4.3c0,6.1-3.7,7.5-7.3,7.9c0.6,0.5,1.1,1.5,1.1,3c0,2.1,0,3.9,0,4.4 c0,0.4,0.3,0.9,1.1,0.8C43.4,45.1,48,39.1,48,32C48,23.2,40.8,16,32,16z',
+ mask: 'M0,0v64h64V0H0z M37.1,47.2c-0.8,0.2-1.1-0.3-1.1-0.8c0-0.5,0-2.3,0-4.4c0-1.5-0.5-2.5-1.1-3 c3.6-0.4,7.3-1.7,7.3-7.9c0-1.7-0.6-3.2-1.6-4.3c0.2-0.4,0.7-2-0.2-4.2c0,0-1.3-0.4-4.4,1.6c-1.3-0.4-2.6-0.5-4-0.5 c-1.4,0-2.7,0.2-4,0.5c-3.1-2.1-4.4-1.6-4.4-1.6c-0.9,2.2-0.3,3.8-0.2,4.2c-1,1.1-1.6,2.5-1.6,4.3c0,6.1,3.7,7.5,7.3,7.9 c-0.5,0.4-0.9,1.1-1,2.1c-0.9,0.4-3.2,1.1-4.7-1.3c0,0-0.8-1.5-2.5-1.6c0,0-1.6,0-0.1,1c0,0,1,0.5,1.8,2.3c0,0,0.9,3.1,5.4,2.1 c0,1.3,0,2.3,0,2.7c0,0.4-0.3,0.9-1.1,0.8C20.6,45.1,16,39.1,16,32c0-8.8,7.2-16,16-16c8.8,0,16,7.2,16,16 C48,39.1,43.4,45.1,37.1,47.2z',
},
email: {
- icon:
- 'M17,22v20h30V22H17z M41.1,25L32,32.1L22.9,25H41.1z M20,39V26.6l12,9.3l12-9.3V39H20z',
- mask:
- 'M41.1,25H22.9l9.1,7.1L41.1,25z M44,26.6l-12,9.3l-12-9.3V39h24V26.6z M0,0v64h64V0H0z M47,42H17V22h30V42z',
+ icon: 'M17,22v20h30V22H17z M41.1,25L32,32.1L22.9,25H41.1z M20,39V26.6l12,9.3l12-9.3V39H20z',
+ mask: 'M41.1,25H22.9l9.1,7.1L41.1,25z M44,26.6l-12,9.3l-12-9.3V39h24V26.6z M0,0v64h64V0H0z M47,42H17V22h30V42z',
},
}
diff --git a/mon-entreprise/source/components/utils/useSearchParamsSimulationSharing.ts b/mon-entreprise/source/components/utils/useSearchParamsSimulationSharing.ts
index af49e96b6..f50d4c339 100644
--- a/mon-entreprise/source/components/utils/useSearchParamsSimulationSharing.ts
+++ b/mon-entreprise/source/components/utils/useSearchParamsSimulationSharing.ts
@@ -115,10 +115,12 @@ export const cleanSearchParams = (
export const getRulesParamNames = (
parsedRules: ParsedRules
): [DottedName, ParamName][] =>
- (Object.entries(parsedRules) as [
- DottedName,
- { rawNode: { 'identifiant court'?: ShortName } }
- ][]).map(([dottedName, ruleNode]) => [
+ (
+ Object.entries(parsedRules) as [
+ DottedName,
+ { rawNode: { 'identifiant court'?: ShortName } }
+ ][]
+ ).map(([dottedName, ruleNode]) => [
dottedName,
ruleNode.rawNode['identifiant court'] || dottedName,
])
diff --git a/mon-entreprise/source/locales/translateRules.ts b/mon-entreprise/source/locales/translateRules.ts
index c4c5f9c46..2380a11ec 100644
--- a/mon-entreprise/source/locales/translateRules.ts
+++ b/mon-entreprise/source/locales/translateRules.ts
@@ -41,17 +41,15 @@ export const attributesToTranslate = [
'identifiant court',
]
-const translateProp = (lang: string, translation: Translation) => (
- rule: Rule,
- prop: string
-) => {
- if (prop === 'suggestions' && rule?.suggestions) {
- return translateSuggestion(prop, rule, translation, lang)
+const translateProp =
+ (lang: string, translation: Translation) => (rule: Rule, prop: string) => {
+ if (prop === 'suggestions' && rule?.suggestions) {
+ return translateSuggestion(prop, rule, translation, lang)
+ }
+ let propTrans = translation[prop + '.' + lang]
+ propTrans = propTrans?.replace(/^\[automatic\] /, '')
+ return propTrans ? assoc(prop, propTrans, rule) : rule
}
- let propTrans = translation[prop + '.' + lang]
- propTrans = propTrans?.replace(/^\[automatic\] /, '')
- return propTrans ? assoc(prop, propTrans, rule) : rule
-}
function translateRule(
lang: string,
diff --git a/mon-entreprise/source/locales/ui-en.yaml b/mon-entreprise/source/locales/ui-en.yaml
index 10a3a1929..c0311a0b8 100644
--- a/mon-entreprise/source/locales/ui-en.yaml
+++ b/mon-entreprise/source/locales/ui-en.yaml
@@ -126,6 +126,9 @@ Plafonds des tranches: Wafer ceilings
Plein écran: Fullscreen
Plus d'informations: More information (fr)
Plusieurs associés: Several partners
+"Pour en savoir plus, rendez-vous sur le site <2>aquoiserventlescotisations":
+ urssaf:
+ fr2>: To find out more, visit <2>aquoiserventlescotisations.urssaf.fr2>
Prise en charge du revenu net avec chômage partiel: Net income support with short-time working
Prochaines questions: Next questions
Professionnels de santé: Health Care Professionals
@@ -1357,8 +1360,9 @@ pages:
shortname: PAMC
title: "PAMC: contribution and income simulators"
print-info:
- recover: Find it, as well as other tools to help create and manage a business on <2>mycompanyinfrance.fr2>
date: This simulation was performed on
+ recover: You can find this simulation and other tools to help you create and
+ manage your business on <2>mon-entreprise.fr2>.
title: Would you like to recover this simulation?
profession-libérale:
meta:
diff --git a/mon-entreprise/source/locales/ui-fr.yaml b/mon-entreprise/source/locales/ui-fr.yaml
index 44e263f12..b0995dd0d 100644
--- a/mon-entreprise/source/locales/ui-fr.yaml
+++ b/mon-entreprise/source/locales/ui-fr.yaml
@@ -52,6 +52,10 @@ Passer: Passer
Personnalisez l'intégration: Personnalisez l'intégration
Plus d'informations: Plus d'informations
Plusieurs associés: Plusieurs associés
+"Pour en savoir plus, rendez-vous sur le site <2>aquoiserventlescotisations":
+ urssaf:
+ fr2>: Pour en savoir plus, rendez-vous sur le site
+ <2>aquoiserventlescotisations.urssaf.fr2>
Prochaines questions: Prochaines questions
Professions libérales: Professions libérales
Précédent: Précédent
@@ -1009,8 +1013,9 @@ pages:
shortname: PAMC
title: "PAMC : simulateurs de cotisations et de revenu"
print-info:
- recover: Retrouvez la, ainsi que d'autres outils d'aide à la création et à la gestion d'entreprise, sur <2>mon-entreprise.fr2>
- date: Cette simulation a été effectuée le
+ date: Cette simulation a été effectuée le
+ recover: Retrouvez cette simulation ainsi que d'autres outils d'aide à la
+ création et à la gestion d'entreprise, sur <2>mon-entreprise.fr2>.
title: Vous souhaitez retrouver cette simulation ?
profession-libérale:
meta:
diff --git a/mon-entreprise/source/pages/Gérer/AideDéclarationIndépendant/RésultatSimple.tsx b/mon-entreprise/source/pages/Gérer/AideDéclarationIndépendant/RésultatSimple.tsx
index 545b8232f..3193711f7 100644
--- a/mon-entreprise/source/pages/Gérer/AideDéclarationIndépendant/RésultatSimple.tsx
+++ b/mon-entreprise/source/pages/Gérer/AideDéclarationIndépendant/RésultatSimple.tsx
@@ -45,10 +45,12 @@ export default function ResultatsSimples() {
Vous pouvez reporter les montants suivants dans votre déclaration,
calculés à partir des informations saisies.
- {([
- 'aide déclaration revenu indépendant 2020 . résultat simple . cotisations obligatoires',
- 'aide déclaration revenu indépendant 2020 . résultat simple . total charges sociales déductible',
- ] as const).map((dottedName) => {
+ {(
+ [
+ 'aide déclaration revenu indépendant 2020 . résultat simple . cotisations obligatoires',
+ 'aide déclaration revenu indépendant 2020 . résultat simple . total charges sociales déductible',
+ ] as const
+ ).map((dottedName) => {
const r = engine.getRule(dottedName)
if (engine.evaluate(dottedName).nodeValue === false) {
return null
@@ -114,13 +116,15 @@ export default function ResultatsSimples() {
grid-template-columns: repeat(3, auto);
`}
>
- {([
- 'aide déclaration revenu indépendant 2020 . réduction covid . total',
- 'aide déclaration revenu indépendant 2020 . résultat simple . revenu net fiscal',
- 'aide déclaration revenu indépendant 2020 . résultat simple . CSG déductible',
- 'aide déclaration revenu indépendant 2020 . résultat simple . CFP',
- 'aide déclaration revenu indépendant 2020 . résultat simple . assiette sociale',
- ] as const).map((dottedName) => {
+ {(
+ [
+ 'aide déclaration revenu indépendant 2020 . réduction covid . total',
+ 'aide déclaration revenu indépendant 2020 . résultat simple . revenu net fiscal',
+ 'aide déclaration revenu indépendant 2020 . résultat simple . CSG déductible',
+ 'aide déclaration revenu indépendant 2020 . résultat simple . CFP',
+ 'aide déclaration revenu indépendant 2020 . résultat simple . assiette sociale',
+ ] as const
+ ).map((dottedName) => {
const r = engine.getRule(dottedName)
if (engine.evaluate(dottedName).nodeValue === false) {
return null
diff --git a/mon-entreprise/source/pages/Gérer/AideDéclarationIndépendant/RésultatsParFormulaire.tsx b/mon-entreprise/source/pages/Gérer/AideDéclarationIndépendant/RésultatsParFormulaire.tsx
index 7e8ddab73..7f380f944 100644
--- a/mon-entreprise/source/pages/Gérer/AideDéclarationIndépendant/RésultatsParFormulaire.tsx
+++ b/mon-entreprise/source/pages/Gérer/AideDéclarationIndépendant/RésultatsParFormulaire.tsx
@@ -46,13 +46,15 @@ export default function ResultatsParFormulaire() {
déclaration correcte.{' '}
En cas de doute, référez-vous à votre expert comptable.
- {([
- 'aide déclaration revenu indépendant 2020 . formulaire 2035',
- 'aide déclaration revenu indépendant 2020 . formulaire 2033',
- 'aide déclaration revenu indépendant 2020 . formulaire 2050',
- 'aide déclaration revenu indépendant 2020 . formulaire 2042',
- 'aide déclaration revenu indépendant 2020 . formulaire 2042 PRO C',
- ] as const).map((dottedName) => (
+ {(
+ [
+ 'aide déclaration revenu indépendant 2020 . formulaire 2035',
+ 'aide déclaration revenu indépendant 2020 . formulaire 2033',
+ 'aide déclaration revenu indépendant 2020 . formulaire 2050',
+ 'aide déclaration revenu indépendant 2020 . formulaire 2042',
+ 'aide déclaration revenu indépendant 2020 . formulaire 2042 PRO C',
+ ] as const
+ ).map((dottedName) => (
))}
diff --git a/mon-entreprise/source/pages/Gérer/DemandeMobilite/FieldsPDF.tsx b/mon-entreprise/source/pages/Gérer/DemandeMobilite/FieldsPDF.tsx
index 2337ded79..73b14b3e6 100644
--- a/mon-entreprise/source/pages/Gérer/DemandeMobilite/FieldsPDF.tsx
+++ b/mon-entreprise/source/pages/Gérer/DemandeMobilite/FieldsPDF.tsx
@@ -34,10 +34,12 @@ export default function FieldsPDF({ fields }: FieldsPDFProps) {
{formatValue(engine.evaluate(dottedName)) +
(API === 'commune'
? ` (${
- (engine.evaluate(dottedName).nodeValue as Record<
- string,
- unknown
- >)?.codePostal as string
+ (
+ engine.evaluate(dottedName).nodeValue as Record<
+ string,
+ unknown
+ >
+ )?.codePostal as string
})`
: '')}{' '}
diff --git a/mon-entreprise/source/pages/Gérer/DemandeMobilite/demande-mobilité.yaml b/mon-entreprise/source/pages/Gérer/DemandeMobilite/demande-mobilité.yaml
index ac44fb1e9..c096fab0f 100644
--- a/mon-entreprise/source/pages/Gérer/DemandeMobilite/demande-mobilité.yaml
+++ b/mon-entreprise/source/pages/Gérer/DemandeMobilite/demande-mobilité.yaml
@@ -222,15 +222,15 @@ activité transfrontalière simultanée . activité salariée . profession:
activité transfrontalière simultanée . activité salariée . période:
type: groupe
formule: oui
-? activité transfrontalière simultanée . activité salariée . période . date de début du contrat
-: type: date
-? activité transfrontalière simultanée . activité salariée . période . date de fin connue
-: question: Votre contrat salarié a-t'il une date de fin ?
-? activité transfrontalière simultanée . activité salariée . période . date de fin
-: applicable si: date de fin connue
+activité transfrontalière simultanée . activité salariée . période . date de début du contrat:
type: date
-? activité transfrontalière simultanée . activité salariée . période . vérification
-: titre: Date d'activité salariée non valides
+activité transfrontalière simultanée . activité salariée . période . date de fin connue:
+ question: Votre contrat salarié a-t'il une date de fin ?
+activité transfrontalière simultanée . activité salariée . période . date de fin:
+ applicable si: date de fin connue
+ type: date
+activité transfrontalière simultanée . activité salariée . période . vérification:
+ titre: Date d'activité salariée non valides
formule: date de début du contrat > date de fin
type: notification
description: La date de fin du contrat ne peut être antérieure à la date de début
@@ -246,32 +246,32 @@ activité transfrontalière simultanée . activité salariée . employeur . adre
type: texte
activité transfrontalière simultanée . activité salariée . employeur . ville:
type: texte
-? activité transfrontalière simultanée . activité salariée . employeur . code postal
-: type: texte
+activité transfrontalière simultanée . activité salariée . employeur . code postal:
+ type: texte
activité transfrontalière simultanée . activité salariée . lieu d'exercice:
titre: Lieu effectif d'activité
type: groupe
formule: oui
-? activité transfrontalière simultanée . activité salariée . lieu d'exercice . employeur
-: question: Exercerez-vous effectivement cette activité salariée dans le pays de votre employeur ?
+activité transfrontalière simultanée . activité salariée . lieu d'exercice . employeur:
+ question: Exercerez-vous effectivement cette activité salariée dans le pays de votre employeur ?
description: Votre activité salariée peut-être exercé depuis un autre pays que celui de l'employeur par exemple en cas de télétravail.
-? activité transfrontalière simultanée . activité salariée . lieu d'exercice . lieu de résidence
-: question: Exercerez-vous cette activité salariée dans votre pays de résidence ?
+activité transfrontalière simultanée . activité salariée . lieu d'exercice . lieu de résidence:
+ question: Exercerez-vous cette activité salariée dans votre pays de résidence ?
non applicable si: employeur
-? activité transfrontalière simultanée . activité salariée . lieu d'exercice . pays
-: non applicable si:
+activité transfrontalière simultanée . activité salariée . lieu d'exercice . pays:
+ non applicable si:
une de ces conditions:
- lieu de résidence
- employeur
question: Quel sera le pays dans lequel vous exercerez cette activité salariée ?
API: pays européen
-? activité transfrontalière simultanée . activité salariée . lieu d'exercice . pays . autre
-: applicable si: pays = 'Autre'
+activité transfrontalière simultanée . activité salariée . lieu d'exercice . pays . autre:
+ applicable si: pays = 'Autre'
titre: Nom du pays
type: texte
@@ -280,12 +280,12 @@ activité transfrontalière simultanée . activité salariée . revenus:
type: groupe
formule: oui
-? activité transfrontalière simultanée . activité salariée . revenus . taux horaire
-: type: texte
+activité transfrontalière simultanée . activité salariée . revenus . taux horaire:
+ type: texte
question: Quel est le taux horaire brut (dans la monnaie du pays d'accueil) ?
-? activité transfrontalière simultanée . activité salariée . revenus . nombre d'heures
-: type: nombre
+activité transfrontalière simultanée . activité salariée . revenus . nombre d'heures:
+ type: nombre
unité: heures/semaine
question: Quel est le temps de travail hebdomadaire inscrit au contrat de travail ?
@@ -294,16 +294,16 @@ activité transfrontalière simultanée . activité salariée . revenus . revenu
type: nombre
unité: €/an
-? activité transfrontalière simultanée . activité salariée . revenus . activité substantielle
-: question: >
+activité transfrontalière simultanée . activité salariée . revenus . activité substantielle:
+ question: >
Considérez-vous que votre activité salariée représentera plus de 5% de votre activité professionnelle pour les 12 prochains mois ?
-? activité transfrontalière simultanée . activité salariée . revenus . articulation activité indépendante
-: question: Comment votre activité salariée s'articulera-t-elle avec votre activité indépendante au cours des 12 prochains mois (périodes, revenu, etc.) ?
+activité transfrontalière simultanée . activité salariée . revenus . articulation activité indépendante:
+ question: Comment votre activité salariée s'articulera-t-elle avec votre activité indépendante au cours des 12 prochains mois (périodes, revenu, etc.) ?
type: paragraphe
-? activité transfrontalière simultanée . activité salariée . activité indépendante additionnelle
-: question: >
+activité transfrontalière simultanée . activité salariée . activité indépendante additionnelle:
+ question: >
Exercez-vous également une activité non salariée à l'étranger ?
activité transfrontalière simultanée . part substantielle France:
@@ -336,21 +336,21 @@ activité transfrontalière simultanée . activité non salariée . n°1:
formule: oui
activité transfrontalière simultanée . activité non salariée . n°1 . pays:
API: pays européen
-? activité transfrontalière simultanée . activité non salariée . n°1 . pays . autre
-: applicable si: pays = 'Autre'
+activité transfrontalière simultanée . activité non salariée . n°1 . pays . autre:
+ applicable si: pays = 'Autre'
titre: Nom du pays
type: texte
-? activité transfrontalière simultanée . activité non salariée . n°1 . nom de l'entreprise
-: type: texte
+activité transfrontalière simultanée . activité non salariée . n°1 . nom de l'entreprise:
+ type: texte
activité transfrontalière simultanée . activité non salariée . n°1 . adresse:
type: texte
activité transfrontalière simultanée . activité non salariée . n°1 . ville:
type: texte
-? activité transfrontalière simultanée . activité non salariée . n°1 . code postal
-: type: texte
-? activité transfrontalière simultanée . activité non salariée . n°1 . date de début d'activité
-: type: date
+activité transfrontalière simultanée . activité non salariée . n°1 . code postal:
+ type: texte
+activité transfrontalière simultanée . activité non salariée . n°1 . date de début d'activité:
+ type: date
activité transfrontalière simultanée . activité non salariée . n°2:
titre: activité non salarié n°2
@@ -359,20 +359,20 @@ activité transfrontalière simultanée . activité non salariée . n°2:
formule: oui
activité transfrontalière simultanée . activité non salariée . n°2 . pays:
API: pays européen
-? activité transfrontalière simultanée . activité non salariée . n°2 . pays . autre
-: applicable si: pays = 'Autre'
+activité transfrontalière simultanée . activité non salariée . n°2 . pays . autre:
+ applicable si: pays = 'Autre'
titre: Nom du pays
type: texte
-? activité transfrontalière simultanée . activité non salariée . n°2 . nom de l'entreprise
-: type: texte
+activité transfrontalière simultanée . activité non salariée . n°2 . nom de l'entreprise:
+ type: texte
activité transfrontalière simultanée . activité non salariée . n°2 . adresse:
type: texte
activité transfrontalière simultanée . activité non salariée . n°2 . ville:
type: texte
-? activité transfrontalière simultanée . activité non salariée . n°2 . code postal
-: type: texte
-? activité transfrontalière simultanée . activité non salariée . n°2 . date de début d'activité
-: type: date
+activité transfrontalière simultanée . activité non salariée . n°2 . code postal:
+ type: texte
+activité transfrontalière simultanée . activité non salariée . n°2 . date de début d'activité:
+ type: date
activité transfrontalière simultanée . activité non salariée . n°3:
titre: activité non salarié n°3
@@ -381,23 +381,23 @@ activité transfrontalière simultanée . activité non salariée . n°3:
formule: oui
activité transfrontalière simultanée . activité non salariée . n°3 . pays:
API: pays européen
-? activité transfrontalière simultanée . activité non salariée . n°3 . pays . autre
-: applicable si: pays = 'Autre'
+activité transfrontalière simultanée . activité non salariée . n°3 . pays . autre:
+ applicable si: pays = 'Autre'
titre: Nom du pays
type: texte
-? activité transfrontalière simultanée . activité non salariée . n°3 . nom de l'entreprise
-: type: texte
+activité transfrontalière simultanée . activité non salariée . n°3 . nom de l'entreprise:
+ type: texte
activité transfrontalière simultanée . activité non salariée . n°3 . adresse:
type: texte
activité transfrontalière simultanée . activité non salariée . n°3 . ville:
type: texte
-? activité transfrontalière simultanée . activité non salariée . n°3 . code postal
-: type: texte
-? activité transfrontalière simultanée . activité non salariée . n°3 . date de début d'activité
-: type: date
+activité transfrontalière simultanée . activité non salariée . n°3 . code postal:
+ type: texte
+activité transfrontalière simultanée . activité non salariée . n°3 . date de début d'activité:
+ type: date
-? activité transfrontalière simultanée . activité non salariée . pays centre d'intérêt
-: type: groupe
+activité transfrontalière simultanée . activité non salariée . pays centre d'intérêt:
+ type: groupe
formule: oui
titre: Quel sera votre pays "centre d'intêret" pour les 12 prochains mois ?
non applicable si:
@@ -430,11 +430,11 @@ activité transfrontalière simultanée . activité non salariée . n°3 . ville
circonstances (notamment ses projets), de faire des Pays-Bas le centre
d’intérêt de son activité.
-? activité transfrontalière simultanée . activité non salariée . pays centre d'intérêt . pays
-: API: pays européen
+activité transfrontalière simultanée . activité non salariée . pays centre d'intérêt . pays:
+ API: pays européen
titre: Pays "centre d'intêret"
-? activité transfrontalière simultanée . activité non salariée . pays centre d'intérêt . pays . autre
-: applicable si: pays = 'Autre'
+activité transfrontalière simultanée . activité non salariée . pays centre d'intérêt . pays . autre:
+ applicable si: pays = 'Autre'
titre: Nom du pays
type: texte
commentaires additionnels:
diff --git a/mon-entreprise/source/pages/Gérer/Home.tsx b/mon-entreprise/source/pages/Gérer/Home.tsx
index dac34dcc8..9c3b6a89a 100644
--- a/mon-entreprise/source/pages/Gérer/Home.tsx
+++ b/mon-entreprise/source/pages/Gérer/Home.tsx
@@ -290,9 +290,8 @@ type CompanySectionProps = {
export const CompanySection = ({ company }: CompanySectionProps) => {
const [searchModal, showSearchModal] = useState(false)
const [autoEntrepreneurModal, showAutoEntrepreneurModal] = useState(false)
- const [DirigeantMajoritaireModal, showDirigeantMajoritaireModal] = useState(
- false
- )
+ const [DirigeantMajoritaireModal, showDirigeantMajoritaireModal] =
+ useState(false)
const companyRef = useRef(null)
useEffect(() => {
diff --git a/mon-entreprise/source/pages/Simulateurs/ÉconomieCollaborative/VotreSituation.tsx b/mon-entreprise/source/pages/Simulateurs/ÉconomieCollaborative/VotreSituation.tsx
index 364071b90..c268e76d8 100644
--- a/mon-entreprise/source/pages/Simulateurs/ÉconomieCollaborative/VotreSituation.tsx
+++ b/mon-entreprise/source/pages/Simulateurs/ÉconomieCollaborative/VotreSituation.tsx
@@ -41,9 +41,9 @@ export default function VotreSituation() {
}
const déclarations = déclarationsSelector(state)
- const régimeGénéralDisponible = activitésEffectuéesSelector(
- state
- ).some((activité) => régimeGénéralDisponibleSelector(state, activité))
+ const régimeGénéralDisponible = activitésEffectuéesSelector(state).some(
+ (activité) => régimeGénéralDisponibleSelector(state, activité)
+ )
return (
diff --git a/mon-entreprise/source/pages/Simulateurs/ÉconomieCollaborative/selectors.js b/mon-entreprise/source/pages/Simulateurs/ÉconomieCollaborative/selectors.js
index def769e08..f239f1baa 100644
--- a/mon-entreprise/source/pages/Simulateurs/ÉconomieCollaborative/selectors.js
+++ b/mon-entreprise/source/pages/Simulateurs/ÉconomieCollaborative/selectors.js
@@ -1,12 +1,14 @@
import { hasConditions } from './activitésData'
-const filterActivités = (filter = () => true) => (state) =>
- Object.entries(state)
- .filter(
- ([activitéTitle, activitéData]) =>
- activitéData.effectuée && filter(activitéData, activitéTitle)
- )
- .map(([activité]) => activité)
+const filterActivités =
+ (filter = () => true) =>
+ (state) =>
+ Object.entries(state)
+ .filter(
+ ([activitéTitle, activitéData]) =>
+ activitéData.effectuée && filter(activitéData, activitéTitle)
+ )
+ .map(([activité]) => activité)
export const nextActivitéSelector = (state, currentActivité) =>
filterActivités(
diff --git a/mon-entreprise/source/pages/Stats/Stats.tsx b/mon-entreprise/source/pages/Stats/Stats.tsx
index 2018bc1bf..ace3158ad 100644
--- a/mon-entreprise/source/pages/Stats/Stats.tsx
+++ b/mon-entreprise/source/pages/Stats/Stats.tsx
@@ -22,7 +22,7 @@ import SatisfactionChart from './SatisfactionChart'
import { Page, PageChapter2, PageSatisfaction, StatsStruct } from './types'
import { formatDay, formatMonth, Indicator, Indicators } from './utils'
-const stats = (statsJson as unknown) as StatsStruct
+const stats = statsJson as unknown as StatsStruct
type Period = 'mois' | 'jours'
type Chapter2 = PageChapter2 | 'PAM'
diff --git a/mon-entreprise/source/reducers/rootReducer.ts b/mon-entreprise/source/reducers/rootReducer.ts
index d250d67f1..f493dab0e 100644
--- a/mon-entreprise/source/reducers/rootReducer.ts
+++ b/mon-entreprise/source/reducers/rootReducer.ts
@@ -103,9 +103,9 @@ function simulation(
unfoldedStep: null,
}
case 'BATCH_UPDATE_SITUATION': {
- return (Object.entries(action.situation as any) as Array<
- [Names, unknown]
- >).reduce(
+ return (
+ Object.entries(action.situation as any) as Array<[Names, unknown]>
+ ).reduce(
(newState, [fieldName, value]) =>
simulation(newState, {
type: 'UPDATE_SITUATION',
diff --git a/mon-entreprise/source/selectors/companyStatusSelectors.ts b/mon-entreprise/source/selectors/companyStatusSelectors.ts
index 96007c7ef..e0c5f9368 100644
--- a/mon-entreprise/source/selectors/companyStatusSelectors.ts
+++ b/mon-entreprise/source/selectors/companyStatusSelectors.ts
@@ -97,21 +97,21 @@ const QUESTION_LIST: Array = keys(
mergeAll(flatten(Object.values(LEGAL_STATUS_DETAILS)))
)
-const isCompatibleStatusWith = (answers: any) => (
- statusRequirements: LegalStatusRequirements
-): boolean => {
- const stringify = map((x) => (!isNil(x) ? JSON.stringify(x) : x))
- const answerCompatibility = Object.values(
- mergeWith(
- (answer, statusValue) =>
- isNil(answer) || isNil(statusValue) || answer === statusValue,
- stringify(statusRequirements as any),
- stringify(answers)
+const isCompatibleStatusWith =
+ (answers: any) =>
+ (statusRequirements: LegalStatusRequirements): boolean => {
+ const stringify = map((x) => (!isNil(x) ? JSON.stringify(x) : x))
+ const answerCompatibility = Object.values(
+ mergeWith(
+ (answer, statusValue) =>
+ isNil(answer) || isNil(statusValue) || answer === statusValue,
+ stringify(statusRequirements as any),
+ stringify(answers)
+ )
)
- )
- const isCompatibleStatus = answerCompatibility.every((x) => x !== false)
- return isCompatibleStatus
-}
+ const isCompatibleStatus = answerCompatibility.every((x) => x !== false)
+ return isCompatibleStatus
+ }
const possibleStatus = (
answers: Array | LegalStatusRequirements
): Record =>
@@ -140,24 +140,23 @@ export const nextQuestionSelector = (state: RootState): Question | null => {
).filter(isCompatibleStatusWith(legalStatusRequirements) as any)
const unansweredQuestions = difference(QUESTION_LIST, questionAnswered)
- const shannonEntropyByQuestion = unansweredQuestions.map((question): [
- typeof question,
- number
- ] => {
- const answerPopulation = Object.values(possibleStatusList).map(
- (status: any) => status[question]
- )
- const frequencyOfAnswers = Object.values(
- countBy(
- (x) => x,
- answerPopulation.filter((x) => x !== undefined)
+ const shannonEntropyByQuestion = unansweredQuestions.map(
+ (question): [typeof question, number] => {
+ const answerPopulation = Object.values(possibleStatusList).map(
+ (status: any) => status[question]
)
- ).map((numOccurrence) => numOccurrence / answerPopulation.length)
- const shannonEntropy = -frequencyOfAnswers
- .map((p) => p * Math.log2(p))
- .reduce(add, 0)
- return [question, shannonEntropy]
- })
+ const frequencyOfAnswers = Object.values(
+ countBy(
+ (x) => x,
+ answerPopulation.filter((x) => x !== undefined)
+ )
+ ).map((numOccurrence) => numOccurrence / answerPopulation.length)
+ const shannonEntropy = -frequencyOfAnswers
+ .map((p) => p * Math.log2(p))
+ .reduce(add, 0)
+ return [question, shannonEntropy]
+ }
+ )
const sortedPossibleNextQuestions = sortBy(
([, entropy]) => -entropy,
diff --git a/mon-entreprise/source/sentry.ts b/mon-entreprise/source/sentry.ts
index abf7d7ce8..839f21f54 100644
--- a/mon-entreprise/source/sentry.ts
+++ b/mon-entreprise/source/sentry.ts
@@ -1,9 +1,8 @@
import * as Sentry from '@sentry/react'
import { Integrations } from '@sentry/tracing'
-let branch: string | undefined = process.env.GITHUB_REF?.split('/')?.slice(
- -1
-)?.[0]
+let branch: string | undefined =
+ process.env.GITHUB_REF?.split('/')?.slice(-1)?.[0]
if (branch === 'merge') {
branch = process.env.GITHUB_HEAD_REF
@@ -28,8 +27,7 @@ export const productionMode = ['master', 'next'].includes(branch ?? '')
if (productionMode) {
Sentry.init({
- dsn:
- 'https://92bbc21937b24136a2fe1b1d922b000f@o548798.ingest.sentry.io/5745615',
+ dsn: 'https://92bbc21937b24136a2fe1b1d922b000f@o548798.ingest.sentry.io/5745615',
integrations: [new Integrations.BrowserTracing()],
release,
// Set tracesSampleRate to 1.0 to capture 100%
diff --git a/mon-entreprise/test/real-rules.test.js b/mon-entreprise/test/real-rules.test.js
index 09ca149e1..dffdb19f3 100644
--- a/mon-entreprise/test/real-rules.test.js
+++ b/mon-entreprise/test/real-rules.test.js
@@ -13,11 +13,8 @@ let runExamples = (examples, rule) =>
const situation = Object.entries(ex.situation).reduce(
(acc, [name, value]) => ({
...acc,
- [disambiguateRuleReference(
- engine.parsedRules,
- rule.dottedName,
- name
- )]: value,
+ [disambiguateRuleReference(engine.parsedRules, rule.dottedName, name)]:
+ value,
}),
{}
)
diff --git a/publicodes/core/source/AST/index.ts b/publicodes/core/source/AST/index.ts
index b07baa71d..4a1977cc9 100644
--- a/publicodes/core/source/AST/index.ts
+++ b/publicodes/core/source/AST/index.ts
@@ -295,16 +295,14 @@ const traversePlancherNode: TraverseFunction<'plancher'> = (fn, node) => ({
},
})
-const traverseRésoudreRéférenceCirculaireNode: TraverseFunction<'résoudre référence circulaire'> = (
- fn,
- node
-) => ({
- ...node,
- explanation: {
- ...node.explanation,
- valeur: fn(node.explanation.valeur),
- },
-})
+const traverseRésoudreRéférenceCirculaireNode: TraverseFunction<'résoudre référence circulaire'> =
+ (fn, node) => ({
+ ...node,
+ explanation: {
+ ...node.explanation,
+ valeur: fn(node.explanation.valeur),
+ },
+ })
const traversePlafondNode: TraverseFunction<'plafond'> = (fn, node) => ({
...node,
diff --git a/publicodes/core/source/format.ts b/publicodes/core/source/format.ts
index d54970a27..8016f3c89 100644
--- a/publicodes/core/source/format.ts
+++ b/publicodes/core/source/format.ts
@@ -2,33 +2,35 @@ import { Evaluation, Unit } from './AST/types'
import { simplifyNodeUnit } from './nodeUnits'
import { formatUnit, serializeUnit } from './units'
-export const numberFormatter = ({
- style,
- maximumFractionDigits = 2,
- minimumFractionDigits = 0,
- language,
-}: {
- style?: string
- maximumFractionDigits?: number
- minimumFractionDigits?: number
- language?: string
-}) => (value: number) => {
- // When we format currency we don't want to display a single decimal digit
- // ie 8,1€ but we want to display 8,10€
- const adaptedMinimumFractionDigits =
- style === 'currency' &&
- maximumFractionDigits >= 2 &&
- minimumFractionDigits === 0 &&
- !Number.isInteger(value)
- ? 2
- : minimumFractionDigits
- return Intl.NumberFormat(language, {
+export const numberFormatter =
+ ({
style,
- currency: 'EUR',
- maximumFractionDigits,
- minimumFractionDigits: adaptedMinimumFractionDigits,
- }).format(value)
-}
+ maximumFractionDigits = 2,
+ minimumFractionDigits = 0,
+ language,
+ }: {
+ style?: string
+ maximumFractionDigits?: number
+ minimumFractionDigits?: number
+ language?: string
+ }) =>
+ (value: number) => {
+ // When we format currency we don't want to display a single decimal digit
+ // ie 8,1€ but we want to display 8,10€
+ const adaptedMinimumFractionDigits =
+ style === 'currency' &&
+ maximumFractionDigits >= 2 &&
+ minimumFractionDigits === 0 &&
+ !Number.isInteger(value)
+ ? 2
+ : minimumFractionDigits
+ return Intl.NumberFormat(language, {
+ style,
+ currency: 'EUR',
+ maximumFractionDigits,
+ minimumFractionDigits: adaptedMinimumFractionDigits,
+ }).format(value)
+ }
export const formatCurrency = (
nodeValue: number | undefined,
@@ -168,9 +170,10 @@ export function serializeValue(
{ nodeValue, unit }: { nodeValue: Evaluation; unit?: Unit },
{ format }: { format: formatUnit }
) {
- const serializedUnit = (unit && typeof nodeValue === 'number'
- ? serializeUnit(unit, nodeValue, format)
- : ''
+ const serializedUnit = (
+ unit && typeof nodeValue === 'number'
+ ? serializeUnit(unit, nodeValue, format)
+ : ''
)?.replace(/\s*\/\s*/g, '/')
return `${nodeValue} ${serializedUnit}`.trim()
}
diff --git a/publicodes/core/source/grammarFunctions.js b/publicodes/core/source/grammarFunctions.js
index 043305909..0a812f9f6 100644
--- a/publicodes/core/source/grammarFunctions.js
+++ b/publicodes/core/source/grammarFunctions.js
@@ -2,19 +2,23 @@
The advantage of putting them here is to get prettier's JS formatting, since Nealrey doesn't support it https://github.com/kach/nearley/issues/310 */
import { normalizeDateString } from './date'
-export let binaryOperation = (operationType) => ([A, , operator, , B]) => ({
- [operator]: {
- operationType,
- explanation: [A, B],
- },
-})
+export let binaryOperation =
+ (operationType) =>
+ ([A, , operator, , B]) => ({
+ [operator]: {
+ operationType,
+ explanation: [A, B],
+ },
+ })
-export let unaryOperation = (operationType) => ([operator, , A]) => ({
- [operator]: {
- operationType,
- explanation: [number([{ value: '0' }]), A],
- },
-})
+export let unaryOperation =
+ (operationType) =>
+ ([operator, , A]) => ({
+ [operator]: {
+ operationType,
+ explanation: [number([{ value: '0' }]), A],
+ },
+ })
export let variable = ([firstFragment, nextFragment], _, reject) => {
const fragments = [firstFragment, ...nextFragment].map(({ value }) => value)
diff --git a/publicodes/core/source/mecanisms/recalcul.ts b/publicodes/core/source/mecanisms/recalcul.ts
index bfcecf8f1..1f7443b9b 100644
--- a/publicodes/core/source/mecanisms/recalcul.ts
+++ b/publicodes/core/source/mecanisms/recalcul.ts
@@ -18,7 +18,7 @@ export type RecalculNode = {
const evaluateRecalcul: EvaluationFunction<'recalcul'> = function (node) {
if (this.cache._meta.inRecalcul) {
- return (defaultNode(null) as any) as RecalculNode & EvaluatedNode
+ return defaultNode(null) as any as RecalculNode & EvaluatedNode
}
const amendedSituation = node.explanation.amendedSituation
diff --git a/publicodes/core/source/mecanisms/résoudre-référence-circulaire.ts b/publicodes/core/source/mecanisms/résoudre-référence-circulaire.ts
index 240559222..acfb823cf 100644
--- a/publicodes/core/source/mecanisms/résoudre-référence-circulaire.ts
+++ b/publicodes/core/source/mecanisms/résoudre-référence-circulaire.ts
@@ -14,83 +14,82 @@ export type RésoudreRéférenceCirculaireNode = {
nodeKind: 'résoudre référence circulaire'
}
-export const evaluateRésoudreRéférenceCirculaire: EvaluationFunction<'résoudre référence circulaire'> = function (
- node
-) {
- const originalCache = this.cache
- let inversionNumberOfIterations = 0
+export const evaluateRésoudreRéférenceCirculaire: EvaluationFunction<'résoudre référence circulaire'> =
+ function (node) {
+ const originalCache = this.cache
+ let inversionNumberOfIterations = 0
- const evaluateWithValue = (
- n: number,
- unit: Unit = { numerators: [], denominators: [] }
- ) => {
- inversionNumberOfIterations++
- this.resetCache()
+ const evaluateWithValue = (
+ n: number,
+ unit: Unit = { numerators: [], denominators: [] }
+ ) => {
+ inversionNumberOfIterations++
+ this.resetCache()
- this.parsedSituation[node.explanation.ruleToSolve] = {
- unit: unit,
- nodeKind: 'unité',
- explanation: {
- nodeKind: 'constant',
- nodeValue: n,
- type: 'number',
- } as ConstantNode,
- } as UnitéNode
- return this.evaluate(node.explanation.valeur)
- }
-
- let nodeValue: number | null | undefined = null
-
- const x0 = 0
- let valeur = evaluateWithValue(x0)
-
- const y0 = valeur.nodeValue as number
- const unit = valeur.unit
- const missingVariables = valeur.missingVariables
- let i = 0
- if (y0 !== null) {
- // The `uniroot` function parameter. It will be called with its `min` and
- // `max` arguments, so we can use our cached nodes if the function is called
- // with the already computed x1 or x2.
- const test = (x: number): number => {
- if (x === x0) {
- return y0 - x0
- }
- valeur = evaluateWithValue(x, unit)
- const y = valeur.nodeValue
- i++
- return (y as number) - x
+ this.parsedSituation[node.explanation.ruleToSolve] = {
+ unit: unit,
+ nodeKind: 'unité',
+ explanation: {
+ nodeKind: 'constant',
+ nodeValue: n,
+ type: 'number',
+ } as ConstantNode,
+ } as UnitéNode
+ return this.evaluate(node.explanation.valeur)
}
- const defaultMin = -1_000_000
- const defaultMax = 100_000_000
+ let nodeValue: number | null | undefined = null
- nodeValue = uniroot(test, defaultMin, defaultMax, 0.5, 30, 2)
- }
+ const x0 = 0
+ let valeur = evaluateWithValue(x0)
- this.cache = originalCache
+ const y0 = valeur.nodeValue as number
+ const unit = valeur.unit
+ const missingVariables = valeur.missingVariables
+ let i = 0
+ if (y0 !== null) {
+ // The `uniroot` function parameter. It will be called with its `min` and
+ // `max` arguments, so we can use our cached nodes if the function is called
+ // with the already computed x1 or x2.
+ const test = (x: number): number => {
+ if (x === x0) {
+ return y0 - x0
+ }
+ valeur = evaluateWithValue(x, unit)
+ const y = valeur.nodeValue
+ i++
+ return (y as number) - x
+ }
- if (nodeValue === undefined) {
- nodeValue = null
- this.cache._meta.inversionFail = true
- }
- if (nodeValue !== null) {
- valeur = evaluateWithValue(nodeValue, unit)
- }
- delete this.parsedSituation[node.explanation.ruleToSolve]
+ const defaultMin = -1_000_000
+ const defaultMax = 100_000_000
- return {
- ...node,
- unit,
- nodeValue,
- explanation: {
- ...node.explanation,
- valeur,
- inversionNumberOfIterations,
- },
- missingVariables,
+ nodeValue = uniroot(test, defaultMin, defaultMax, 0.5, 30, 2)
+ }
+
+ this.cache = originalCache
+
+ if (nodeValue === undefined) {
+ nodeValue = null
+ this.cache._meta.inversionFail = true
+ }
+ if (nodeValue !== null) {
+ valeur = evaluateWithValue(nodeValue, unit)
+ }
+ delete this.parsedSituation[node.explanation.ruleToSolve]
+
+ return {
+ ...node,
+ unit,
+ nodeValue,
+ explanation: {
+ ...node.explanation,
+ valeur,
+ inversionNumberOfIterations,
+ },
+ missingVariables,
+ }
}
-}
export default function parseRésoudreRéférenceCirculaire(v, context: Context) {
return {
diff --git a/publicodes/core/source/units.ts b/publicodes/core/source/units.ts
index 55e602370..1e486a277 100644
--- a/publicodes/core/source/units.ts
+++ b/publicodes/core/source/units.ts
@@ -101,13 +101,12 @@ const equals = (a: T, b: T) => {
}
}
-export const removeOnce = (
- element: T,
- eqFn: (a: T, b: T) => boolean = equals
-) => (list: Array): Array => {
- const index = list.findIndex((e) => eqFn(e, element))
- return list.filter((_, i) => i !== index)
-}
+export const removeOnce =
+ (element: T, eqFn: (a: T, b: T) => boolean = equals) =>
+ (list: Array): Array => {
+ const index = list.findIndex((e) => eqFn(e, element))
+ return list.filter((_, i) => i !== index)
+ }
const simplify = (
unit: Unit,
diff --git a/publicodes/site/entry.tsx b/publicodes/site/entry.tsx
index 0fd9db88d..b14af37bd 100644
--- a/publicodes/site/entry.tsx
+++ b/publicodes/site/entry.tsx
@@ -8,8 +8,7 @@ import 'regenerator-runtime/runtime'
import App from './components/App'
Sentry.init({
- dsn:
- 'https://92bbc21937b24136a2fe1b1d922b000f@o548798.ingest.sentry.io/5745615',
+ dsn: 'https://92bbc21937b24136a2fe1b1d922b000f@o548798.ingest.sentry.io/5745615',
integrations: [new Integrations.BrowserTracing()],
// Set tracesSampleRate to 1.0 to capture 100%
diff --git a/publicodes/ui-react/source/mecanisms/Replacement.tsx b/publicodes/ui-react/source/mecanisms/Replacement.tsx
index dd0247410..5922f2410 100644
--- a/publicodes/ui-react/source/mecanisms/Replacement.tsx
+++ b/publicodes/ui-react/source/mecanisms/Replacement.tsx
@@ -2,8 +2,9 @@ import { VariationNode } from 'publicodes/source/mecanisms/variations'
import Explanation from '../Explanation'
export default function Replacement(node: VariationNode) {
- const applicableReplacement = node.explanation.find((ex) => ex.satisfied)
- ?.consequence
+ const applicableReplacement = node.explanation.find(
+ (ex) => ex.satisfied
+ )?.consequence
const replacedNode = node.explanation.slice(-1)[0].consequence
return
}
diff --git a/yarn.lock b/yarn.lock
index e4521d928..136f1edb0 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -3421,9 +3421,9 @@
integrity sha512-eI5Yrz3Qv4KPUa/nSIAi0h+qX0XyewOliug5F2QAtuRg6Kjg6jfmxe1GIwoIRhZspD1A0RP8ANrPwvEXXtRFog==
"@types/prop-types@*":
- version "15.7.4"
- resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.4.tgz#fcf7205c25dff795ee79af1e30da2c9790808f11"
- integrity sha512-rZ5drC/jWjrArrS8BR6SIr4cWpW09RNTYt9AMZo3Jwwif+iacXAqgVjm0B0Bv/S1jhDXKHqRVNCbACkJ89RAnQ==
+ version "15.7.3"
+ resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.3.tgz#2ab0d5da2e5815f94b0b9d4b95d1e5f243ab2ca7"
+ integrity sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw==
"@types/ramda@^0.26.43":
version "0.26.44"
@@ -3449,9 +3449,9 @@
"@types/reactcss" "*"
"@types/react-dom@^17.0.0":
- version "17.0.9"
- resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-17.0.9.tgz#441a981da9d7be117042e1a6fd3dac4b30f55add"
- integrity sha512-wIvGxLfgpVDSAMH5utdL9Ngm5Owu0VsGmldro3ORLXV8CShrL8awVj06NuEXFQ5xyaYfdca7Sgbk/50Ri1GdPg==
+ version "17.0.0"
+ resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-17.0.0.tgz#b3b691eb956c4b3401777ee67b900cb28415d95a"
+ integrity sha512-lUqY7OlkF/RbNtD5nIq7ot8NquXrdFrjSOR6+w9a9RFQevGi1oZO1dcJbXMeONAPKtZ2UrZOEJ5UOCVsxbLk/g==
dependencies:
"@types/react" "*"
@@ -3535,16 +3535,7 @@
dependencies:
"@types/react" "*"
-"@types/react@*":
- version "17.0.19"
- resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.19.tgz#8f2a85e8180a43b57966b237d26a29481dacc991"
- integrity sha512-sX1HisdB1/ZESixMTGnMxH9TDe8Sk709734fEQZzCV/4lSu9kJCPbo2PbTRoZM+53Pp0P10hYVyReUueGwUi4A==
- dependencies:
- "@types/prop-types" "*"
- "@types/scheduler" "*"
- csstype "^3.0.2"
-
-"@types/react@^17.0.0":
+"@types/react@*", "@types/react@^17.0.0":
version "17.0.0"
resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.0.tgz#5af3eb7fad2807092f0046a1302b7823e27919b8"
integrity sha512-aj/L7RIMsRlWML3YB6KZiXB3fV2t41+5RBGYF8z+tAKU43Px8C3cYUZsDvf1/+Bm4FK21QWBrDutu8ZJ/70qOw==
@@ -3582,11 +3573,6 @@
dependencies:
"@types/node" "*"
-"@types/scheduler@*":
- version "0.16.2"
- resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.2.tgz#1a62f89525723dde24ba1b01b092bf5df8ad4d39"
- integrity sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==
-
"@types/sinon-chai@^3.2.5":
version "3.2.5"
resolved "https://registry.yarnpkg.com/@types/sinon-chai/-/sinon-chai-3.2.5.tgz#df21ae57b10757da0b26f512145c065f2ad45c48"
@@ -6494,9 +6480,9 @@ cssstyle@^2.3.0:
cssom "~0.3.6"
csstype@^3.0.2:
- version "3.0.8"
- resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.8.tgz#d2266a792729fb227cd216fb572f43728e1ad340"
- integrity sha512-jXKhWqXPmlUeoQnF/EhTtTl4C9SnrxSH/jZUih3jmO6lBKr99rP3/+FmrMj4EFpOXzMtXHAZkd3x0E6h6Fgflw==
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.2.tgz#ee5ff8f208c8cd613b389f7b222c9801ca62b3f7"
+ integrity sha512-ofovWglpqoqbfLNOTBNZLSbMuGrblAf1efvvArGKOZMBrIoJeu5UsAipQolkijtyQx5MtAzT/J9IHj/CEY1mJw==
csv-loader@^2.1.1:
version "2.1.1"