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: + fr: To find out more, visit <2>aquoiserventlescotisations.urssaf.fr 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.fr 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.fr. 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: + fr: Pour en savoir plus, rendez-vous sur le site + <2>aquoiserventlescotisations.urssaf.fr 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.fr - 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.fr. 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"