diff --git a/modele-social/règles/salarié/contrat.publicodes b/modele-social/règles/salarié/contrat.publicodes index 1bf6342cc..344ff64a6 100644 --- a/modele-social/règles/salarié/contrat.publicodes +++ b/modele-social/règles/salarié/contrat.publicodes @@ -470,6 +470,7 @@ salarié . contrat . salaire brut: SMIC: temps de travail . SMIC inversion numérique: - coût total employeur + # - rémunération . brut - rémunération . net . à payer avant impôt - rémunération . net . payé après impôt - équivalent temps plein diff --git a/modele-social/règles/salarié/mois-incomplet.publicodes b/modele-social/règles/salarié/mois-incomplet.publicodes new file mode 100644 index 000000000..3801e7c96 --- /dev/null +++ b/modele-social/règles/salarié/mois-incomplet.publicodes @@ -0,0 +1,99 @@ +salarié . mois incomplet: + experimental: oui + description: | + Gestion des mois incomplets (absence, embauche, départ, etc), notamment pour le + calcul de la réduction générale des cotisations ou de l’exonération Lodeom. + références: + Bulletin Officiel de la Sécurité Sociale: https://boss.gouv.fr/portail/accueil/exonerations/allegements-generaux.html#titre-chapitre-1--la-reduction-general-section-2---determination-du-mon-ii-calcul-du-montant-de-la-reduc-d-determination-de-la-valeur-du-4-determination-de-la-valeur-du + +salarié . mois incomplet . rémunération non impactée par l'absence: + somme: + - rémunération . primes + - rémunération . indemnités CDD + unité: €/mois + +salarié . mois incomplet . rémunération de base mois incomplet: + # TODO: décommenter la formule lorsque "rémunération . brut" n'incluera plus + # les frais professionnels. + # Décommenter aussi la ligne "rémunération . brut" dans "salarié . contrat . salaire brut" + + # valeur: rémunération . brut + # abattement: + # somme: + # - rémunération . heures supplémentaires + # - rémunération . heures complémentaires + # - rémunération non impactée par l'absence + unité: €/mois + description: | + Exclure de cette rémunération : + - le paiement des heures supplémentaires et complémentaires, + - les primes, indemnités de CDD et autres éléments de rémunération non impactés par l'absence. + +salarié . mois incomplet . rémunération équivalente mois complet: + # par défaut: contrat . salaire brut + unité: €/mois + question: Quelle rémunération brute aurait été versée pour un mois complet ? + note: | + Exclure de cette rémunération : + - le paiement des heures supplémentaires et complémentaires, + - les primes, indemnités de CDD et autres éléments de rémunération non impactés par l'absence. + +salarié . mois incomplet . prorata: + produit: + - rémunération de base mois incomplet + - 1 / rémunération équivalente mois complet + unité: '%' + description: | + Le prorata correspond au rapport entre la rémunération du mois incomplet et + la rémunération qui aurait été versée pour un mois complet. + + Plus précisément, ce prorata est le rapport entre : + - la rémunération brute versée pour le mois incomplet, sans les primes (et + autres éléments non impactés par l’absence) ni le paiements des heures + supplémentaires + - et la rémunération équivalente "mois complet" sans les primes et autres + éléments non impactés par l’absence. + références: + Bulletin Officiel de la Sécurité Sociale: https://boss.gouv.fr/portail/accueil/exonerations/allegements-generaux.html#titre-chapitre-1--la-reduction-general-section-2---determination-du-mon-ii-calcul-du-montant-de-la-reduc-d-determination-de-la-valeur-du-4-determination-de-la-valeur-du + +salarié . mois incomplet . SMIC équivalent: + somme: + - SMIC mensuel proratisé + - SMIC heures supplémentaires + - SMIC heures complémentaires + unité: €/mois + références: + Bulletin Officiel de la Sécurité Sociale: https://boss.gouv.fr/portail/accueil/exonerations/allegements-generaux.html#titre-chapitre-1--la-reduction-general-section-2---determination-du-mon-ii-calcul-du-montant-de-la-reduc-d-determination-de-la-valeur-du + + avec: + SMIC mensuel proratisé: + produit: + - SMIC + - prorata + unité: €/mois + description: | + Ce montant correspond au SMIC équivalent au mois incomplet, c’est-à-dire en + tenant compte du prorata du temps de travail et les heures supplémentaires et + complémentaires. + + Ce prorata du temps de travail est en réalité calculé comme un prorata des + rémunérations, entre celle du mois incomplet et celle qui aurait été versée + pour un mois complet. + références: + Bulletin Officiel de la Sécurité Sociale: https://boss.gouv.fr/portail/accueil/exonerations/allegements-generaux.html#titre-chapitre-1--la-reduction-general-section-2---determination-du-mon-ii-calcul-du-montant-de-la-reduc-d-determination-de-la-valeur-du-4-determination-de-la-valeur-du + + SMIC heures supplémentaires: + produit: + - temps de travail . heures supplémentaires + - SMIC . horaire + unité: €/mois + références: + Bulletin Officiel de la Sécurité Sociale: https://boss.gouv.fr/portail/accueil/exonerations/allegements-generaux.html#titre-chapitre-1--la-reduction-general-section-2---determination-du-mon-ii-calcul-du-montant-de-la-reduc-e-prise-en-compte-des-heures-com-1-heures-supplementaires + + SMIC heures complémentaires: + produit: + - temps de travail . heures complémentaires + - SMIC . horaire + unité: €/mois + références: + Bulletin Officiel de la Sécurité Sociale: https://boss.gouv.fr/portail/accueil/exonerations/allegements-generaux.html#titre-chapitre-1--la-reduction-general-section-2---determination-du-mon-ii-calcul-du-montant-de-la-reduc-e-prise-en-compte-des-heures-com-2-heures-complementaires diff --git a/modele-social/règles/salarié/rémunération.publicodes b/modele-social/règles/salarié/rémunération.publicodes index b9f919529..375f2a13f 100644 --- a/modele-social/règles/salarié/rémunération.publicodes +++ b/modele-social/règles/salarié/rémunération.publicodes @@ -323,7 +323,6 @@ salarié . rémunération . indemnités CDD: - primes . ancienneté - primes . activité - indemnités CDD . fin de contrat - références: congés payés . Méthode du dixième: produit: diff --git a/site/source/locales/rules-en.yaml b/site/source/locales/rules-en.yaml index 1f43ddeca..c7581276d 100644 --- a/site/source/locales/rules-en.yaml +++ b/site/source/locales/rules-en.yaml @@ -10984,6 +10984,115 @@ salarié . coût total employeur . aides . emploi franc . éligible: question.fr: Cette embauche est-elle éligible à l'aide emploi-franc ? titre.en: '[automatic] eligible' titre.fr: éligible +salarié . mois incomplet: + description.en: > + [automatic] Management of incomplete months (absence, hiring, departure, + etc.), in particular for calculating + + calculating the general reduction in contributions or the Lodeom exemption. + description.fr: > + Gestion des mois incomplets (absence, embauche, départ, etc), notamment pour + le + + calcul de la réduction générale des cotisations ou de l’exonération Lodeom. + titre.en: '[automatic] incomplete month' + titre.fr: mois incomplet +salarié . mois incomplet . SMIC équivalent: + avec: + SMIC heures complémentaires: + titre.en: '[automatic] SMIC overtime' + titre.fr: SMIC heures complémentaires + SMIC heures supplémentaires: + titre.en: '[automatic] SMIC overtime' + titre.fr: SMIC heures supplémentaires + SMIC mensuel proratisé: + description.en: > + [automatic] This amount corresponds to the SMIC equivalent for an + incomplete month, i.e. taking + + taking into account the pro rata of working time and overtime and + + and overtime. + + + This prorata of working time is in fact calculated as a prorata of remuneration, between that of the incomplete month and that which would have been paid for the full month. + + between the remuneration for the incomplete month and that which would have been paid for a full month. + + for a full month. + description.fr: > + Ce montant correspond au SMIC équivalent au mois incomplet, c’est-à-dire + en + + tenant compte du prorata du temps de travail et les heures supplémentaires et + + complémentaires. + + + Ce prorata du temps de travail est en réalité calculé comme un prorata des + + rémunérations, entre celle du mois incomplet et celle qui aurait été versée + + pour un mois complet. + titre.en: '[automatic] Adjusted monthly minimum wage' + titre.fr: SMIC mensuel proratisé + titre.en: '[automatic] SMIC equivalent' + titre.fr: SMIC équivalent +salarié . mois incomplet . prorata: + description.en: > + [automatic] The prorata corresponds to the ratio between the remuneration + for the incomplete month and the remuneration that would have been paid for + a full month. + + the remuneration that would have been paid for a full month. + + + More precisely, the prorata is the ratio between : + - the gross remuneration paid for the incomplete month, excluding bonuses (and other + other items not affected by the absence) and overtime payments. + + overtime + - and the equivalent "full month" remuneration without bonuses and other + not affected by the absence. + description.fr: | + Le prorata correspond au rapport entre la rémunération du mois incomplet et + la rémunération qui aurait été versée pour un mois complet. + + Plus précisément, ce prorata est le rapport entre : + - la rémunération brute versée pour le mois incomplet, sans les primes (et + autres éléments non impactés par l’absence) ni le paiements des heures + supplémentaires + - et la rémunération équivalente "mois complet" sans les primes et autres + éléments non impactés par l’absence. + titre.en: '[automatic] prorata' + titre.fr: prorata +salarié . mois incomplet . rémunération de base mois incomplet: + description.en: > + [automatic] Exclude from this remuneration : + - payment for overtime and complementary hours, + - bonuses, fixed-term contract allowances and other remuneration not affected by the absence. + description.fr: > + Exclure de cette rémunération : + - le paiement des heures supplémentaires et complémentaires, + - les primes, indemnités de CDD et autres éléments de rémunération non impactés par l'absence. + titre.en: '[automatic] basic remuneration incomplete month' + titre.fr: rémunération de base mois incomplet +salarié . mois incomplet . rémunération non impactée par l'absence: + titre.en: '[automatic] compensation not affected by absence' + titre.fr: rémunération non impactée par l'absence +salarié . mois incomplet . rémunération équivalente mois complet: + note.en: > + [automatic] Exclude from this remuneration : + - payment for overtime and complementary hours, + - bonuses, fixed-term contract allowances and other remuneration not affected by the absence. + note.fr: > + Exclure de cette rémunération : + - le paiement des heures supplémentaires et complémentaires, + - les primes, indemnités de CDD et autres éléments de rémunération non impactés par l'absence. + question.en: '[automatic] What gross salary would have been paid for a full month?' + question.fr: Quelle rémunération brute aurait été versée pour un mois complet ? + titre.en: '[automatic] equivalent remuneration for a full month' + titre.fr: rémunération équivalente mois complet salarié . régimes spécifiques: titre.en: '[automatic] specific regimes' titre.fr: régimes spécifiques diff --git a/site/source/utils/réductionDeCotisations.ts b/site/source/utils/réductionDeCotisations.ts index 60bba8f3c..249cb8d68 100644 --- a/site/source/utils/réductionDeCotisations.ts +++ b/site/source/utils/réductionDeCotisations.ts @@ -596,13 +596,11 @@ const getSMICMensuelAvecOptions = ( ): number => { const contexte = { date, + [rémunérationBruteDottedName]: rémunérationBrute, + [heuresSupplémentairesDottedName]: options.heuresSupplémentaires, + [heuresComplémentairesDottedName]: options.heuresComplémentaires, } as Situation - if (!options.rémunérationETP) { - contexte[heuresSupplémentairesDottedName] = options.heuresSupplémentaires - contexte[heuresComplémentairesDottedName] = options.heuresComplémentaires - } - const SMICMensuel = engine.evaluate({ valeur: 'salarié . temps de travail . SMIC', unité: '€/mois', @@ -613,24 +611,27 @@ const getSMICMensuelAvecOptions = ( return SMICMensuel } - const SMICHoraire = engine.evaluate({ - valeur: 'SMIC . horaire', + // TODO: enlever 'salarié . mois incomplet . rémunération de base mois incomplet' + // du contexte une fois que la formule de cette règle sera décommentée + // (cf TODO dans `mois-incomplet.publicodes`) + // On pourra donc enlever le champ "rémunération des heures sup" du formulaire ! + contexte['salarié . mois incomplet . rémunération de base mois incomplet'] = + rémunérationBrute - + options.rémunérationPrimes - + options.rémunérationHeuresSup + contexte['salarié . mois incomplet . rémunération équivalente mois complet'] = + options.rémunérationETP + if (options.rémunérationPrimes) { + contexte[ + "salarié . mois incomplet . rémunération non impactée par l'absence" + ] = options.rémunérationPrimes + } + const SMIC = engine.evaluate({ + valeur: 'salarié . mois incomplet . SMIC équivalent', contexte, }).nodeValue as number - // On retranche les primes et le paiements des heures supplémentaires à la rémunération versée - // et on la compare à la rémunération équivalente "mois complet" sans les primes - const prorata = - (rémunérationBrute - - options.rémunérationPrimes - - options.rémunérationHeuresSup) / - options.rémunérationETP - // On applique ce prorata au SMIC mensuel et on y ajoute les heures supplémentaires et complémentaires - return ( - SMICMensuel * prorata + - SMICHoraire * - (options.heuresSupplémentaires + options.heuresComplémentaires) - ) + return SMIC } const getSMICCumulés = (