1
0
Fork 0
mirror of https://github.com/betagouv/mon-entreprise synced 2025-02-13 21:15:01 +00:00

feat(lodeom): déplace le calcul du SMIC mois incomplet dans modele-social

This commit is contained in:
Alice Dahan 2025-01-22 18:47:32 +01:00 committed by liliced
parent f1a1eb5ad2
commit e57199bde2
5 changed files with 230 additions and 21 deletions

View file

@ -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

View file

@ -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 lexoné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 labsence) 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 labsence.
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, cest-à-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

View file

@ -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:

View file

@ -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 lexoné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, cest-à-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 labsence) 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 labsence.
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

View file

@ -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 = (