diff --git a/publicode/rules/artiste-auteur.yaml b/publicode/rules/artiste-auteur.yaml index 609459b41..3c3b1b8b7 100644 --- a/publicode/rules/artiste-auteur.yaml +++ b/publicode/rules/artiste-auteur.yaml @@ -97,8 +97,8 @@ artiste-auteur . cotisations . vieillesse: - nom: plafonnée taux: contrat salarié . vieillesse . taux salarié plafonné - 0.75% plafond: contrat salarié . plafond sécurité sociale - - nom: non plafonnée - taux: contrat salarié . vieillesse . taux salarié non plafonné - 0.4% + - nom: déplafonnée + taux: contrat salarié . vieillesse . taux salarié déplafonné - 0.4% artiste-auteur . cotisations . CSG-CRDS: formule: diff --git a/publicode/rules/conventions-collectives.yaml b/publicode/rules/conventions-collectives.yaml index 665a6337a..2e5ef1883 100644 --- a/publicode/rules/conventions-collectives.yaml +++ b/publicode/rules/conventions-collectives.yaml @@ -537,12 +537,12 @@ contrat salarié . intermittents du spectacle . artiste . réduction de taux: par: maladie . taux salarié * réduction de taux - règle: vieillesse . taux employeur plafonné par: vieillesse . taux employeur plafonné * réduction de taux - - règle: vieillesse . taux employeur non plafonné - par: vieillesse . taux employeur non plafonné * réduction de taux + - règle: vieillesse . taux employeur déplafonné + par: vieillesse . taux employeur déplafonné * réduction de taux - règle: vieillesse . taux salarié plafonné par: vieillesse . taux salarié plafonné * réduction de taux - - règle: vieillesse . taux salarié non plafonné - par: vieillesse . taux salarié non plafonné * réduction de taux + - règle: vieillesse . taux salarié déplafonné + par: vieillesse . taux salarié déplafonné * réduction de taux - règle: allocations familiales . taux par: allocations familiales . taux * réduction de taux - règle: établissement . taux du versement transport diff --git a/publicode/rules/salarié.yaml b/publicode/rules/salarié.yaml index 4aaa98096..7611d63d7 100644 --- a/publicode/rules/salarié.yaml +++ b/publicode/rules/salarié.yaml @@ -436,6 +436,14 @@ contrat salarié . ATMP . taux: alors: 1% - sinon: ATMP . taux collectif ATMP +contrat salarié . ATMP . taux minimum: + description: >- + Le taux minimum existant pour la cotisation ATMP. Utilisé notamment pour le + calcul de la réduction générale de cotisations + formule: 0.69 % + références: + Article D241-2-4: https://www.legifrance.gouv.fr/affichCodeArticle.do?idArticle=LEGIARTI000041460928&cidTexte=LEGITEXT000006073189&dateTexte=20200101 + contrat salarié . ATMP . taux réduit: titre: taux réduit pour activité sans risque question: L'activité de l'établissement ou du salarié est-elle sans aucun risque ? @@ -1203,7 +1211,6 @@ contrat salarié . statut cadre: contrat salarié . plafond sécurité sociale: acronyme: PSS unité: €/mois - formule: plafond sécurité sociale temps plein * temps de travail . quotité de travail contrat salarié . SMIC temps plein: @@ -1780,77 +1787,87 @@ contrat salarié . réduction générale: Dans le cadre du pacte de responsabilité et de solidarité, le dispositif zéro cotisation Urssaf permet à l'employeur d'un salarié au Smic de ne plus payer aucune cotisation, hormis l'assurance chômage. Le montant de l'allègement est égal au produit de la rémunération annuelle brute par un coefficient. Il n'y a pas de formalité particulière à effectuer. références: description: https://www.service-public.fr/professionnels-entreprises/vosdroits/F24542 - calcul: https://www.urssaf.fr/portail/home/employeur/beneficier-dune-exoneration/exonerations-generales/la-reduction-generale.html + urssaf.fr: https://www.urssaf.fr/portail/home/employeur/beneficier-dune-exoneration/exonerations-generales/la-reduction-generale.html + calcul: https://www.urssaf.fr/portail/home/employeur/beneficier-dune-exoneration/exonerations-generales/la-reduction-generale/le-calcul-de-la-reduction.html cumuls: https://www.legisocial.fr/actualites-sociales/2068-comment-declarer-les-cotisations-dallocations-familiales-si-lentreprise-beneficie-du-regime-jei.html - applicable si: cotisations . assiette <= plafond de l'assiette + non applicable si: cotisations . assiette forfaitaire . montant formule: - encadrement: - valeur: assiette - plafond: multiplicateur * écart au plafond de l'assiette - note: Nous utilisons la méthode de calcul officielle de la sécurité sociale. Il serait préférable ici de réduire directement les cotisations concernées, ce qui éviterait au calcul de reposer sur les paramètres `T` publiés chaque année (ils dépendent directement des cotisaitons réduites). + multiplication: + assiette: cotisations . assiette + facteur: coefficient exemples: # Formule de calcul algébrique : (0,2809÷0,6)×(1,6×(1 521,22÷1 530)−1)×1 530 - nom: "Maximale dans le cas d'un SMIC" situation: - cotisations . assiette: 1521.22 - valeur attendue: 488.91 + rémunération . brut: 1521.22 + valeur attendue: 487.55 - nom: 'Salaire proche du SMIC' situation: - cotisations . assiette: 1530 - valeur attendue: 491.74 + rémunération . brut: 1530 + valeur attendue: 490.37 - nom: 'Résiduelle pour un salaire médian' situation: - cotisations . assiette: 2300 - valeur attendue: 87.34 + rémunération . brut: 2300 + valeur attendue: 87.10 - nom: 'Nulle au-dessus du plafond' situation: - cotisations . assiette: 2464 + rémunération . brut: 2464 valeur attendue: 0 -contrat salarié . réduction générale . écart au plafond de l'assiette: - formule: plafond de l'assiette - cotisations . assiette +contrat salarié . réduction générale . coefficient: + formule: + encadrement: + valeur: + multiplication: + assiette: SMIC / cotisations . assiette * 1.6 - 1 + facteur: T / 0.6 + plancher: 0% + plafond: T + références: + urssaf.fr: https://www.urssaf.fr/portail/home/employeur/beneficier-dune-exoneration/exonerations-generales/la-reduction-generale/le-calcul-de-la-reduction/etape-1--determination-du-coeffi.html -contrat salarié . réduction générale . multiplicateur: - formule: paramètre T / 0.6 - -contrat salarié . réduction générale . paramètre T: +contrat salarié . réduction générale . T: + titre: Coefficient T unité: '' formule: - variations: - - si: entreprise . effectif < 20 - alors: 0.3214 - - sinon: 0.3254 + somme: + - T sécurité sociale et chômage + - encadrement: + valeur: retraite complémentaire . taux employeur tranche 1 + plafond: 4.72% + - encadrement: + valeur: contribution d'équilibre général . taux employeur tranche 1 + plafond: 1.29% -contrat salarié . réduction générale . assiette: - titre: Assiette de la réduction générale +contrat salarié . réduction générale . T sécurité sociale et chômage: + unité: '' formule: somme: - - allocations familiales - - FNAL .employeur - - maladie .employeur - - vieillesse .employeur - - part de la cotisation ATMP - - retraite complémentaire .employeur - - contribution d'équilibre général .employeur - - chômage .employeur - références: - changements 2019: https://www.urssaf.fr/portail/home/actualites/toute-lactualite-employeur/la-reduction-generale-des-cotisa.html + - maladie . taux employeur + - allocations familiales . taux + - vieillesse . taux employeur déplafonné + - vieillesse . taux employeur plafonné + - maladie . taux solidarité autonomie + - ATMP . taux minimum + - FNAL . taux + - chômage . taux employeur -contrat salarié . réduction générale . assiette . part de la cotisation ATMP: +contrat salarié . réduction générale . imputation sécurité sociale: formule: multiplication: - assiette: cotisations . assiette - taux: 0.78% - note: En pratique, l'ATMP est toujours supérieure à 0.78% - références: - Code de la sécurité sociale - Article D241-2-4: https://www.legifrance.gouv.fr/affichCodeArticle.do;?cidTexte=LEGITEXT000006073189&idArticle=LEGIARTI000036467594 - Code de la sécurité sociale - Mise à jour du taux: https://www.legifrance.gouv.fr/affichTexteArticle.do;jsessionid=B2573099C91B1ACDA218B214D650C071.tplgfr25s_3?idArticle=JORFARTI000037884643&cidTexte=JORFTEXT000037884638&dateTexte=29990101&categorieLien=id + assiette: réduction générale + facteur: T sécurité sociale et chômage / T -contrat salarié . réduction générale . plafond de l'assiette: - formule: 1.6 * SMIC +contrat salarié . réduction générale . imputation retraite complémentaire: + formule: réduction générale - imputation sécurité sociale contrat salarié . contribution d'équilibre général: - description: Cette cotisation créée en 2019 permet à la fois de compenser les charges résultant des départs à la retraite avant 67 ans et d’honorer les engagements retraite des personnes qui ont cotisé à la GMP, une ancienne cotisation de compensation pour les cadres. + description: >- + Cette cotisation créée en 2019 permet à la fois de compenser les + charges résultant des départs à la retraite avant 67 ans et d’honorer les + engagements retraite des personnes qui ont cotisé à la GMP, une ancienne + cotisation de compensation pour les cadres. + acronyme: CEG cotisation: branche: retraite type de retraite: complémentaire @@ -1863,7 +1880,7 @@ contrat salarié . contribution d'équilibre général: - attributs: dû par: employeur tranches: - - taux: 1.29% + - taux: taux employeur tranche 1 plafond: 1 - taux: 1.62% plafond: 8 @@ -1880,7 +1897,11 @@ contrat salarié . contribution d'équilibre général: références: calcul des cotisations: https://www.agirc-arrco.fr/ce-qui-change-au-1er-janvier-2019/vous-etes-une-entreprise-tiers-declarant/ +contrat salarié . contribution d'équilibre général . taux employeur tranche 1: + formule: 1.29% + contrat salarié . contribution d'équilibre technique: + acronyme: CET cotisation: branche: retraite type de retraite: complémentaire @@ -1893,13 +1914,16 @@ contrat salarié . contribution d'équilibre technique: composantes: - attributs: dû par: employeur - taux: 0.21% + taux: taux employeur - attributs: dû par: salarié taux: 0.14% références: calcul des cotisations: https://www.agirc-arrco.fr/ce-qui-change-au-1er-janvier-2019/vous-etes-une-entreprise-tiers-declarant/ +contrat salarié . contribution d'équilibre technique . taux employeur: + formule: 0.21% + contrat salarié . retraite complémentaire: cotisation: branche: retraite @@ -1927,7 +1951,6 @@ contrat salarié . retraite complémentaire: plafond: 1 - taux: taux salarié tranche 2 plafond: 8 - références: calcul des cotisations: https://www.agirc-arrco.fr/ce-qui-change-au-1er-janvier-2019/vous-etes-une-entreprise-tiers-declarant/ régime des impatriés: https://www.legifrance.gouv.fr/affichTexteArticle.do;jsessionid=D2C4F8F0A5E19693ADF9F440120B748A.tplgfr31s_2?idArticle=JORFARTI000038496272&cidTexte=JORFTEXT000038496102&dateTexte=29990101&categorieLien=id @@ -2264,7 +2287,7 @@ contrat salarié . FNAL: assiette: cotisations . assiette taux: taux variations: - - si: entreprise . effectif < 50 + - si: éligible taux réduit alors: plafond: plafond sécurité sociale - sinon: rien @@ -2275,10 +2298,12 @@ contrat salarié . FNAL: entreprise . effectif: 10 valeur attendue: 1.5 +contrat salarié . FNAL . éligible taux réduit: + formule: entreprise . effectif < 50 contrat salarié . FNAL . taux: formule: variations: - - si: entreprise . effectif < 50 + - si: éligible taux réduit alors: 0.1% - sinon: 0.5% @@ -2342,12 +2367,15 @@ contrat salarié . maladie: taux: taux salarié - attributs: nom: Contribution Solidarité Autonomie - abbréviation: CSA dû par: employeur - références: - - https://www.urssaf.fr/portail/home/employeur/calculer-les-cotisations/les-taux-de-cotisations/la-contribution-solidarite-auton.html - - https://www.service-public.fr/professionnels-entreprises/vosdroits/F32872 - taux: 0.3% + taux: taux solidarité autonomie + +contrat salarié . maladie . taux solidarité autonomie: + acronyme: CSA + formule: 0.3% + références: + - https://www.urssaf.fr/portail/home/employeur/calculer-les-cotisations/les-taux-de-cotisations/la-contribution-solidarite-auton.html + - https://www.service-public.fr/professionnels-entreprises/vosdroits/F32872 contrat salarié . maladie . taux employeur: formule: @@ -2645,8 +2673,8 @@ contrat salarié . vieillesse: dû par: salarié assiette: cotisations . assiette . salariale composantes: - - nom: non plafonnée - taux: taux salarié non plafonné + - nom: déplafonnée + taux: taux salarié déplafonné - nom: plafonnée taux: taux salarié plafonné @@ -2654,8 +2682,8 @@ contrat salarié . vieillesse: - attributs: dû par: employeur composantes: - - nom: non plafonnée - taux: taux employeur non plafonné + - nom: déplafonnée + taux: taux employeur déplafonné - nom: plafonnée taux: taux employeur plafonné plafond: plafond sécurité sociale @@ -2674,11 +2702,11 @@ contrat salarié . vieillesse: contrat salarié . vieillesse . taux salarié plafonné: formule: 6.90% -contrat salarié . vieillesse . taux salarié non plafonné: +contrat salarié . vieillesse . taux salarié déplafonné: formule: 0.4% contrat salarié . vieillesse . taux employeur plafonné: formule: 8.55% -contrat salarié . vieillesse . taux employeur non plafonné: +contrat salarié . vieillesse . taux employeur déplafonné: formule: 1.9% contrat salarié . forfait social: @@ -2724,6 +2752,7 @@ contrat salarié . lodeom . zone un: - établissement . localisation . département = 'Martinique' - établissement . localisation . département = 'Guyane' +# TODO : reformuler comme pour la réduction générale contrat salarié . lodeom . réduction outre-mer: aide: type: réduction de cotisations @@ -2741,7 +2770,19 @@ contrat salarié . lodeom . réduction outre-mer: formule: encadrement: - valeur: contrat salarié . réduction générale . assiette + valeur: + somme: + - allocations familiales + - FNAL .employeur + - maladie .employeur + - vieillesse .employeur + - multiplication: + assiette: cotisations . assiette + taux: ATMP . taux minimum + - retraite complémentaire .employeur + - contribution d'équilibre général .employeur + - chômage .employeur + plafond: variations: - si: @@ -2759,93 +2800,6 @@ contrat salarié . lodeom . réduction outre-mer: note: Nous utilisons la méthode de calcul officielle de la sécurité sociale. Il serait préférable ici de réduire directement les cotisations concernées, ce qui éviterait au calcul de reposer sur les paramètres `T` publiés chaque année (ils dépendent directement des cotisaitons réduites). références: Estimateur URSSAF: https://www.urssaf.fr/portail/home/utile-et-pratique/estimateur-exoneration-lodeom.html?ut= - exemples: - # Barème 1 - - nom: "Maximale dans le cas d'un SMIC" - situation: - zone un: oui - cotisations . assiette: 1521.22 - valeur attendue: 488.92 - - nom: 'Salaire proche du SMIC' - situation: - zone un: oui - cotisations . assiette: 1530 - valeur attendue: 491.74 - - nom: 'Résiduelle pour un salaire médian' - situation: - zone un: oui - cotisations . assiette: 2300 - valeur attendue: 504.50 - - nom: 'Nulle au-dessus du plafond' - situation: - zone un: oui - cotisations . assiette: 3400 - valeur attendue: 0 - - # Barème 2 - - nom: "Maximale dans le cas d'un SMIC" - situation: - zone un: oui - éligible barème compétitivité renforcée: oui - cotisations . assiette: 1521.22 - valeur attendue: 488.92 - - nom: 'Salaire proche du SMIC' - situation: - zone un: oui - éligible barème compétitivité renforcée: oui - cotisations . assiette: 2565 - valeur attendue: 824.39 - - nom: 'Résiduelle pour un salaire médian' - situation: - zone un: oui - éligible barème compétitivité renforcée: oui - cotisations . assiette: 3900 - valeur attendue: 140.11 - - nom: 'Résiduelle pour un salaire médian' - situation: - zone un: oui - éligible barème compétitivité renforcée: oui - cotisations . assiette: 3000 - valeur attendue: 631.85 - - nom: 'Nulle au-dessus du plafond' - situation: - zone un: oui - éligible barème compétitivité renforcée: oui - cotisations . assiette: 4200 - valeur attendue: 0 - - # Barème 3 - - nom: "Barème 3 Maximale dans le cas d'un SMIC" - situation: - zone un: oui - éligible barème innovation et croissance: oui - cotisations . assiette: 1521.22 - valeur attendue: 488.92 - - nom: 'Barème 3' - situation: - zone un: oui - éligible barème innovation et croissance: oui - cotisations . assiette: 2565 - valeur attendue: 824.39 - - nom: 'Barème 3' - situation: - zone un: oui - éligible barème innovation et croissance: oui - cotisations . assiette: 2800 - valeur attendue: 841.11 - - nom: 'Barème 3' - situation: - zone un: oui - éligible barème innovation et croissance: oui - cotisations . assiette: 4000 - valeur attendue: 758.35 - - - nom: 'Barème 3 Nulle au-dessus du plafond' - situation: - zone un: oui - éligible barème innovation et croissance: oui - cotisations . assiette: 5500 - valeur attendue: 0 contrat salarié . lodeom . plafond de l'assiette: formule: borne supérieure * SMIC @@ -2972,9 +2926,7 @@ contrat salarié . cotisations . assiette forfaitaire . montant: - assiette . salariale - règle: assiette . salariale dans: vieillesse - - assiette CSG et CRDS . assiette abattue - - règle: réduction générale - par: non + - règle: assiette CSG et CRDS . assiette abattue - règle: plafond sécurité sociale par: plafond sécurité sociale temps plein sauf dans: diff --git a/source/engine/evaluation.js b/source/engine/evaluation.js index df457a620..22fc0cf4c 100644 --- a/source/engine/evaluation.js +++ b/source/engine/evaluation.js @@ -129,7 +129,7 @@ export let parseObject = (recurse, objectShape, value) => { let recurseOne = key => defaultValue => { if (!value[key] && !defaultValue) throw new Error( - `Il manque une valeur '${key}' dans ${JSON.stringify(value)} ` + `Il manque une clé '${key}' dans ${JSON.stringify(value)} ` ) return value[key] ? recurse(value[key]) : defaultValue } diff --git a/source/engine/mecanisms/encadrement.tsx b/source/engine/mecanisms/encadrement.tsx index 6789c9765..1e8ce411d 100644 --- a/source/engine/mecanisms/encadrement.tsx +++ b/source/engine/mecanisms/encadrement.tsx @@ -3,6 +3,7 @@ import { defaultNode, evaluateNode, makeJsx, + mergeAllMissing, parseObject } from 'Engine/evaluation' import { Node } from 'Engine/mecanismViews/common' @@ -20,7 +21,7 @@ function MecanismEncadrement({ nodeValue, explanation, unit }) { child={ <> {makeJsx(explanation.valeur)} -

+

{!explanation.plancher.isDefault && ( )} {!explanation.plafond.isDefault && ( - - Plafonné à : - {makeJsx(explanation.plafond)} - + <> +
+ + Plafonné à : + {makeJsx(explanation.plafond)} + + )}

@@ -59,7 +63,12 @@ const objectShape = { } const evaluate = (cache, situation, parsedRules, node) => { - let evaluateAttribute = evaluateNode.bind(null, cache, situation, parsedRules) + const evaluateAttribute = evaluateNode.bind( + null, + cache, + situation, + parsedRules + ) const valeur = evaluateAttribute(node.explanation.valeur) let plafond = evaluateAttribute(node.explanation.plafond) if (val(plafond) === false) { @@ -78,15 +87,12 @@ const evaluate = (cache, situation, parsedRules, node) => { ) } } + const nodeValue = Math.max(val(plancher), Math.min(val(plafond), val(valeur))) return { ...node, nodeValue, - missingVariables: { - ...valeur?.missingVariables, - ...plafond?.missingVariables, - ...plancher?.missingVariables - }, + missingVariables: mergeAllMissing([valeur, plafond, plancher]), unit: valeur.unit, explanation: { valeur, @@ -95,7 +101,6 @@ const evaluate = (cache, situation, parsedRules, node) => { } } } - export default (recurse, k, v) => { const explanation = parseObject(recurse, objectShape, v) diff --git a/source/locales/rules-en.yaml b/source/locales/rules-en.yaml index 8a5b4763c..bbffb63f7 100644 --- a/source/locales/rules-en.yaml +++ b/source/locales/rules-en.yaml @@ -362,7 +362,7 @@ contrat salarié . CDD . contrat jeune vacances: description.fr: >- Aussi appelé CDD vendanges. Contrat conclu avec un jeune pendant ses vacances scolaires ou universitaires. - note.en: '[automatic] That''s not a reason for a fixed-term contract.' + note.en: "[automatic] That's not a reason for a fixed-term contract." note.fr: Ce n'est pas un motif de CDD. question.en: Is it a young holiday contract? question.fr: Est-ce un contrat jeune vacances ? @@ -734,7 +734,7 @@ contrat salarié . aides employeur: France. Découvrez-les sur le [portail officiel](http://www.aides-entreprises.fr). résumé.en: Deferred aids available to the employer. - résumé.fr: 'Pour l''employeur, différées dans le temps' + résumé.fr: "Pour l'employeur, différées dans le temps" titre.en: deferred employer aids titre.fr: aides à l'embauche contrat salarié . aides employeur . aide à l'embauche d'apprentis: @@ -826,7 +826,7 @@ contrat salarié . apprentissage . diplôme préparé . niveau supérieur au bac titre.fr: Diplôme d'un niveau supérieur au bac contrat salarié . assiette CSG et CRDS: note.en: '[automatic] This plate is complex, this version is only a simplification.' - note.fr: 'Cette assiette est complexe, cette version n''est qu''une simplification.' + note.fr: "Cette assiette est complexe, cette version n'est qu'une simplification." titre.en: CSG and CRDS base titre.fr: assiette CSG et CRDS contrat salarié . assiette CSG et CRDS . assiette abattue: @@ -1021,12 +1021,12 @@ contrat salarié . convention collective: Néanmoins, cela permet d'obtenir une première estimation, plus précise que le régime général. question.en: 'Which "convention collective" is applicable to the company ? [beta] ' - question.fr: 'Quelle convention collective est applicable à l''entreprise ? [beta] ' + question.fr: "Quelle convention collective est applicable à l'entreprise ? [beta] " titre.en: convention collective titre.fr: convention collective contrat salarié . convention collective . HCR: description.en: 'The company is a hotel, café, restaurant or similar.' - description.fr: 'L''entreprise est un hôtel, café, restaurant ou assimilé.' + description.fr: "L'entreprise est un hôtel, café, restaurant ou assimilé." titre.en: 'hotels, cafés restaurants HCR (beta)' titre.fr: 'hôtels, cafés restaurants HCR (beta)' contrat salarié . convention collective . HCR . majoration heures supplémentaires: @@ -1594,7 +1594,7 @@ contrat salarié . frais professionnels . titres-restaurant . taux participation description.fr: >- Part du titre-restaurant payée par l'employeur. Doit être de 50% minimum et de 60% maximum. - question.en: '[automatic] What is the employer''s paid portion?' + question.en: "[automatic] What is the employer's paid portion?" question.fr: Quelle est la participation de l'employeur ? suggestions.50%.en: '[automatic] 50%' suggestions.50%.fr: 50% @@ -2000,7 +2000,7 @@ contrat salarié . réduction générale . assiette: titre.fr: Assiette de la réduction générale contrat salarié . réduction générale . assiette . part de la cotisation ATMP: note.en: '[automatic] In practice, the ATMP is always higher than 0.78%.' - note.fr: 'En pratique, l''ATMP est toujours supérieure à 0.78%' + note.fr: "En pratique, l'ATMP est toujours supérieure à 0.78%" titre.en: share of ATMP contribution titre.fr: part de la cotisation ATMP contrat salarié . réduction générale . multiplicateur: @@ -2916,15 +2916,15 @@ contrat salarié . vieillesse: description.fr: Cotisation au régime de retraite de base des salariés. titre.en: Basic pension contribution titre.fr: vieillesse -contrat salarié . vieillesse . taux employeur non plafonné: +contrat salarié . vieillesse . taux employeur déplafonné: titre.en: not capped employer rate - titre.fr: taux employeur non plafonné + titre.fr: taux employeur déplafonné contrat salarié . vieillesse . taux employeur plafonné: titre.en: capped employer rate titre.fr: taux employeur plafonné -contrat salarié . vieillesse . taux salarié non plafonné: +contrat salarié . vieillesse . taux salarié déplafonné: titre.en: not capped employee rate - titre.fr: taux salarié non plafonné + titre.fr: taux salarié déplafonné contrat salarié . vieillesse . taux salarié plafonné: titre.en: capped employee rate titre.fr: taux salarié plafonné @@ -3720,7 +3720,7 @@ dirigeant . rattachement CIPAV: note.en: >- [automatic] for the time being, we have only retained the CIPAV for the calculations. - note.fr: 'pour l''instant, nous n''avons retenu que la CIPAV pour les calculs' + note.fr: "pour l'instant, nous n'avons retenu que la CIPAV pour les calculs" titre.en: CIPAV attachment titre.fr: rattachement CIPAV dirigeant . rattachement CIPAV . retraite complémentaire: @@ -4050,7 +4050,7 @@ entreprise . catégorie d'activité . restauration ou hébergement: titre.fr: restauration ou hébergement entreprise . catégorie d'activité . service ou vente: question.en: 'Is it a service activity, or the purchase and sale of goods?' - question.fr: 'Est-ce une activité de prestation de service, ou de l''achat-vente de biens ?' + question.fr: "Est-ce une activité de prestation de service, ou de l'achat-vente de biens ?" titre.en: service or sale titre.fr: service ou vente entreprise . catégorie d'activité . service ou vente . service: @@ -4169,7 +4169,7 @@ entreprise . chiffre d'affaires minimum: titre.en: Minimum turnover titre.fr: chiffre d'affaires minimum entreprise . date de création: - contrôles.0.en: '[automatic] We can''t see that far into the future' + contrôles.0.en: "[automatic] We can't see that far into the future" contrôles.0.fr: Nous ne pouvons voir aussi loin dans le futur contrôles.1.en: >- [automatic] This is a very old company! Are you sure you didn't make a @@ -4386,7 +4386,7 @@ entreprise . établissement bancaire: L'entreprise est un établissement bancaire, financier ou d'assurance. Elle est non assujettie à la TVA. question.en: 'Is it a banking, financial or insurance institution?' - question.fr: 'S''agit-il d''un établissement bancaire, financier, d''assurance ?' + question.fr: "S'agit-il d'un établissement bancaire, financier, d'assurance ?" titre.en: banking institution titre.fr: établissement bancaire impôt: diff --git a/test/regressions/__snapshots__/simulations.jest.js.snap b/test/regressions/__snapshots__/simulations.jest.js.snap index af426dd3d..54199c18b 100644 --- a/test/regressions/__snapshots__/simulations.jest.js.snap +++ b/test/regressions/__snapshots__/simulations.jest.js.snap @@ -198,9 +198,9 @@ exports[`calculate simulations-salarié: aides 1`] = `"[2302,0,0,2000,1561,1524 exports[`calculate simulations-salarié: aides 2`] = `"[12823,0,0,10000,8911,7667]"`; -exports[`calculate simulations-salarié: apprentissage 1`] = `"[1551,0,0,1500,1448,1448]"`; +exports[`calculate simulations-salarié: apprentissage 1`] = `"[1552,0,0,1500,1448,1448]"`; -exports[`calculate simulations-salarié: apprentissage 2`] = `"[1384,167,0,1500,1448,1448]"`; +exports[`calculate simulations-salarié: apprentissage 2`] = `"[1385,167,0,1500,1448,1448]"`; exports[`calculate simulations-salarié: assimilé salarié 1`] = `"[7015,0,0,5000,3943,3318]"`; @@ -214,23 +214,31 @@ exports[`calculate simulations-salarié: avantages 1`] = `"[2667,0,0,2000,1540, exports[`calculate simulations-salarié: avantages 2`] = `"[2677,0,0,2000,1539,1490]"`; -exports[`calculate simulations-salarié: avantages 3`] = `"[2586,0,0,2000,1549,1506]"`; +exports[`calculate simulations-salarié: avantages 3`] = `"[2587,0,0,2000,1549,1506]"`; exports[`calculate simulations-salarié: cadre 1`] = `"[4122,0,0,3000,2348,2171]"`; -exports[`calculate simulations-salarié: cdd 1`] = `"[2508,0,0,2000,1561,1524]"`; +exports[`calculate simulations-salarié: cdd 1`] = `"[2509,0,0,2000,1561,1524]"`; exports[`calculate simulations-salarié: cdd 2`] = `"[2591,0,0,2000,1599,1557]"`; exports[`calculate simulations-salarié: cdd 3`] = `"[3394,0,0,2400,1967,1883]"`; +exports[`calculate simulations-salarié: effectif 1`] = `"[2479,0,0,2000,1561,1524]"`; + +exports[`calculate simulations-salarié: effectif 2`] = `"[2525,0,0,2000,1561,1524]"`; + +exports[`calculate simulations-salarié: effectif 3`] = `"[2539,0,0,2000,1561,1524]"`; + +exports[`calculate simulations-salarié: effectif 4`] = `"[2539,0,0,2000,1561,1524]"`; + exports[`calculate simulations-salarié: frais pro - IKV 1`] = `"[4367,0,0,3200,2530,2320]"`; exports[`calculate simulations-salarié: frais pro - IKV 2`] = `"[4346,0,0,3200,2511,2302]"`; exports[`calculate simulations-salarié: frais pro - IKV 3`] = `"[2774,0,0,2157,1685,1630]"`; -exports[`calculate simulations-salarié: frais pro - titres restaurant 1`] = `"[2518,0,0,2000,1521,1484]"`; +exports[`calculate simulations-salarié: frais pro - titres restaurant 1`] = `"[2519,0,0,2000,1521,1484]"`; exports[`calculate simulations-salarié: frais pro - titres restaurant 2`] = `"[4307,0,0,3000,2134,1949]"`; @@ -240,11 +248,11 @@ exports[`calculate simulations-salarié: heures supplémentaires et complément exports[`calculate simulations-salarié: heures supplémentaires et complémentaires 2`] = `"[3105,0,0,2000,2009,1965]"`; -exports[`calculate simulations-salarié: heures supplémentaires et complémentaires 3`] = `"[2653,0,0,2000,1636,1599]"`; +exports[`calculate simulations-salarié: heures supplémentaires et complémentaires 3`] = `"[2654,0,0,2000,1636,1599]"`; -exports[`calculate simulations-salarié: heures supplémentaires et complémentaires 4`] = `"[2564,0,0,2000,1627,1590]"`; +exports[`calculate simulations-salarié: heures supplémentaires et complémentaires 4`] = `"[2565,0,0,2000,1627,1590]"`; -exports[`calculate simulations-salarié: heures supplémentaires et complémentaires 5`] = `"[3024,0,0,2000,1970,1932]"`; +exports[`calculate simulations-salarié: heures supplémentaires et complémentaires 5`] = `"[3025,0,0,2000,1970,1932]"`; exports[`calculate simulations-salarié: heures supplémentaires et complémentaires 6`] = `"[3336,0,2446,2000,1919,1889]"`; @@ -266,20 +274,60 @@ exports[`calculate simulations-salarié: impôt sur le revenu 7`] = `"[41834,0, exports[`calculate simulations-salarié: impôt sur le revenu 8`] = `"[4076,0,0,3000,2353,2107]"`; -exports[`calculate simulations-salarié: inversions 1`] = `"[2000,0,0,1746,1361,1353]"`; +exports[`calculate simulations-salarié: inversions 1`] = `"[2000,0,0,1746,1360,1353]"`; exports[`calculate simulations-salarié: inversions 2`] = `"[3474,0,0,2554,2000,1898]"`; exports[`calculate simulations-salarié: inversions 3`] = `"[3679,0,0,2706,2120,2000]"`; +exports[`calculate simulations-salarié: lodeom 1`] = `"[1592,0,0,1521,1182,1182]"`; + +exports[`calculate simulations-salarié: lodeom 2`] = `"[2085,0,0,2000,1561,1524]"`; + +exports[`calculate simulations-salarié: lodeom 3`] = `"[3896,0,0,3000,2353,2187]"`; + +exports[`calculate simulations-salarié: lodeom 4`] = `"[5674,0,0,4000,3146,2759]"`; + +exports[`calculate simulations-salarié: lodeom 5`] = `"[7889,0,0,5500,4349,3625]"`; + +exports[`calculate simulations-salarié: lodeom compétitivité renforcée 1`] = `"[1592,0,0,1521,1182,1182]"`; + +exports[`calculate simulations-salarié: lodeom compétitivité renforcée 2`] = `"[2085,0,0,2000,1561,1524]"`; + +exports[`calculate simulations-salarié: lodeom compétitivité renforcée 3`] = `"[3444,0,0,3000,2353,2187]"`; + +exports[`calculate simulations-salarié: lodeom compétitivité renforcée 4`] = `"[5588,0,0,4000,3146,2759]"`; + +exports[`calculate simulations-salarié: lodeom compétitivité renforcée 5`] = `"[7889,0,0,5500,4349,3625]"`; + +exports[`calculate simulations-salarié: lodeom innovation et croissance 1`] = `"[1592,0,0,1521,1182,1182]"`; + +exports[`calculate simulations-salarié: lodeom innovation et croissance 2`] = `"[2085,0,0,2000,1561,1524]"`; + +exports[`calculate simulations-salarié: lodeom innovation et croissance 3`] = `"[3235,0,0,3000,2353,2187]"`; + +exports[`calculate simulations-salarié: lodeom innovation et croissance 4`] = `"[4915,0,0,4000,3146,2759]"`; + +exports[`calculate simulations-salarié: lodeom innovation et croissance 5`] = `"[7889,0,0,5500,4349,3625]"`; + exports[`calculate simulations-salarié: stage 1`] = `"[507,0,0,500,500,500]"`; exports[`calculate simulations-salarié: stage 2`] = `"[2490,0,0,2000,1750,1750]"`; -exports[`calculate simulations-salarié: temps partiel 1`] = `"[2591,0,2188,2000,1561,1524]"`; +exports[`calculate simulations-salarié: taux spécifiques retraite complémentaire 1`] = `"[1606,0,0,1521,1195,1195]"`; + +exports[`calculate simulations-salarié: taux spécifiques retraite complémentaire 2`] = `"[3423,0,0,2500,1979,1880]"`; + +exports[`calculate simulations-salarié: taux spécifiques retraite complémentaire 3`] = `"[1592,0,0,1521,1170,1170]"`; + +exports[`calculate simulations-salarié: taux spécifiques retraite complémentaire 4`] = `"[3382,0,0,2500,1938,1844]"`; + +exports[`calculate simulations-salarié: temps partiel 1`] = `"[2592,0,2188,2000,1561,1524]"`; exports[`calculate simulations-salarié: temps partiel 2`] = `"[2533,0,2500,1857,1448,1428]"`; +exports[`calculate simulations-salarié: temps partiel 3`] = `"[1159,0,1750,1000,770,770]"`; + exports[`calculate simulations-salarié: treizième mois 1`] = `"[3390,0,0,2300,1950,1856]"`; exports[`calculate simulations-salarié: treizième mois 2`] = `"[3800,0,2965,2300,2186,2073]"`; @@ -292,15 +340,15 @@ exports[`calculate simulations-salarié: échelle de salaires 2`] = `"[284,0,0, exports[`calculate simulations-salarié: échelle de salaires 3`] = `"[541,0,0,500,374,374]"`; -exports[`calculate simulations-salarié: échelle de salaires 4`] = `"[798,0,0,750,572,572]"`; +exports[`calculate simulations-salarié: échelle de salaires 4`] = `"[799,0,0,750,572,572]"`; -exports[`calculate simulations-salarié: échelle de salaires 5`] = `"[1055,0,0,1000,770,770]"`; +exports[`calculate simulations-salarié: échelle de salaires 5`] = `"[1056,0,0,1000,770,770]"`; -exports[`calculate simulations-salarié: échelle de salaires 6`] = `"[1312,0,0,1250,968,968]"`; +exports[`calculate simulations-salarié: échelle de salaires 6`] = `"[1313,0,0,1250,968,968]"`; -exports[`calculate simulations-salarié: échelle de salaires 7`] = `"[1569,0,0,1500,1165,1165]"`; +exports[`calculate simulations-salarié: échelle de salaires 7`] = `"[1571,0,0,1500,1165,1165]"`; -exports[`calculate simulations-salarié: échelle de salaires 8`] = `"[2478,0,0,2000,1561,1524]"`; +exports[`calculate simulations-salarié: échelle de salaires 8`] = `"[2479,0,0,2000,1561,1524]"`; exports[`calculate simulations-salarié: échelle de salaires 9`] = `"[3401,0,0,2500,1957,1861]"`; diff --git a/test/regressions/simulations-salarié.yaml b/test/regressions/simulations-salarié.yaml index 2b291c366..82d36590e 100644 --- a/test/regressions/simulations-salarié.yaml +++ b/test/regressions/simulations-salarié.yaml @@ -16,6 +16,16 @@ - contrat salarié . rémunération . brut de base: 100000 - contrat salarié . rémunération . brut de base: 1000000 +effectif: + - contrat salarié . rémunération . brut de base: 2000 + entreprise . effectif: 10 + - contrat salarié . rémunération . brut de base: 2000 + entreprise . effectif: 20 + - contrat salarié . rémunération . brut de base: 2000 + entreprise . effectif: 50 + - contrat salarié . rémunération . brut de base: 2000 + entreprise . effectif: 100 + inversions: - contrat salarié . prix du travail: 2000 - contrat salarié . rémunération . net: 2000 @@ -79,6 +89,9 @@ temps partiel: - contrat salarié . rémunération . brut de base . équivalent temps plein: 2500 contrat salarié . temps de travail . temps partiel: true contrat salarié . temps de travail . temps partiel . heures par semaine: 26 + - contrat salarié . rémunération . brut de base: 1000 + contrat salarié . temps de travail . temps partiel: true + contrat salarié . temps de travail . temps partiel . heures par semaine: 20 treizième mois: - contrat salarié . rémunération . brut de base: 2300 @@ -183,3 +196,63 @@ frais pro - IKV: contrat salarié . frais professionnels . indemnité kilométrique vélo . distance mensuelle: 200 - contrat salarié . rémunération . net après impôt: 1630 contrat salarié . frais professionnels . indemnité kilométrique vélo . distance mensuelle: 30 + +lodeom: + - contrat salarié . rémunération . brut de base: 1521.22 + contrat salarié . lodeom . zone un: true + - contrat salarié . rémunération . brut de base: 2000 + contrat salarié . lodeom . zone un: true + - contrat salarié . rémunération . brut de base: 3000 + contrat salarié . lodeom . zone un: true + - contrat salarié . rémunération . brut de base: 4000 + contrat salarié . lodeom . zone un: true + - contrat salarié . rémunération . brut de base: 5500 + contrat salarié . lodeom . zone un: true + +lodeom compétitivité renforcée: + - contrat salarié . rémunération . brut de base: 1521.22 + contrat salarié . lodeom . zone un: true + contrat salarié . lodeom . éligible barème compétitivité renforcée: true + - contrat salarié . rémunération . brut de base: 2000 + contrat salarié . lodeom . zone un: true + contrat salarié . lodeom . éligible barème compétitivité renforcée: true + - contrat salarié . rémunération . brut de base: 3000 + contrat salarié . lodeom . zone un: true + contrat salarié . lodeom . éligible barème compétitivité renforcée: true + - contrat salarié . rémunération . brut de base: 4000 + contrat salarié . lodeom . zone un: true + contrat salarié . lodeom . éligible barème compétitivité renforcée: true + - contrat salarié . rémunération . brut de base: 5500 + contrat salarié . lodeom . zone un: true + contrat salarié . lodeom . éligible barème compétitivité renforcée: true + +lodeom innovation et croissance: + - contrat salarié . rémunération . brut de base: 1521.22 + contrat salarié . lodeom . zone un: true + contrat salarié . lodeom . éligible barème innovation et croissance: true + - contrat salarié . rémunération . brut de base: 2000 + contrat salarié . lodeom . zone un: true + contrat salarié . lodeom . éligible barème innovation et croissance: true + - contrat salarié . rémunération . brut de base: 3000 + contrat salarié . lodeom . zone un: true + contrat salarié . lodeom . éligible barème innovation et croissance: true + - contrat salarié . rémunération . brut de base: 4000 + contrat salarié . lodeom . zone un: true + contrat salarié . lodeom . éligible barème innovation et croissance: true + - contrat salarié . rémunération . brut de base: 5500 + contrat salarié . lodeom . zone un: true + contrat salarié . lodeom . éligible barème innovation et croissance: true + +taux spécifiques retraite complémentaire: + - contrat salarié . rémunération . brut de base: 1521.22 + contrat salarié . retraite complémentaire . taux employeur tranche 1: 5.59 + contrat salarié . retraite complémentaire . taux salarié tranche 1: 2.28 + - contrat salarié . rémunération . brut de base: 2500 + contrat salarié . retraite complémentaire . taux employeur tranche 1: 5.59 + contrat salarié . retraite complémentaire . taux salarié tranche 1: 2.28 + - contrat salarié . rémunération . brut de base: 1521.22 + contrat salarié . retraite complémentaire . taux employeur tranche 1: 3.94 + contrat salarié . retraite complémentaire . taux salarié tranche 1: 3.93 + - contrat salarié . rémunération . brut de base: 2500 + contrat salarié . retraite complémentaire . taux employeur tranche 1: 3.94 + contrat salarié . retraite complémentaire . taux salarié tranche 1: 3.93