Rubrique « PRIME DE FIN D'ANNEE » (code 6935) (RUB_GAIN=0 : retenue, info ou technique selon usage). Actuellement active, variante en vigueur depuis le 2024-11-01. 7 variantes successives au fil du temps. La formule actuelle (3017 octets) référence 29 variable(s) et 2 fonction(s).
Explication
Cette règle calcule le montant de la prime de fin d'année versée au salarié, en fonction de son ancienneté et de son salaire de base moyen sur l'année écoulée.
Si un montant a été saisi manuellement (forçage), c'est ce montant-là qui est retenu et le calcul s'arrête.
La prime n'est versée que dans deux situations : soit au mois de novembre (paie habituelle de fin d'année), soit lors d'un solde de tout compte dans le cas précis d'un départ ou d'une mise à la retraite. Dans tous les autres cas (autre mois, autre motif de fin de contrat), aucune prime n'est calculée.
Certains salariés sont exclus du dispositif : les vacataires, les bénéficiaires d'une allocation d'étude, ainsi que toute personne marquée comme exclue de la prime dans son dossier.
Le calcul prend en compte les absences déductibles (en jours et en heures converties) ainsi que les absences injustifiées sur la période du 1er décembre de l'année précédente au 30 novembre de l'année en cours.
L'ancienneté est mesurée à partir de la date de début de contrat si elle est connue, sinon à partir de la date d'entrée dans l'entreprise. Le salaire de référence correspond au salaire annuel moyen ramené au nombre de mois travaillés sur la période.
Le pourcentage de prime appliqué dépend des tranches d'ancienneté : 59 % entre 1 et 5 ans, 64 % entre 5 et 10 ans, 73 % entre 10 et 15 ans, 80 % entre 15 et 20 ans, 85 % entre 20 et 25 ans, et 100 % au-delà de 25 ans. Les salariés ayant moins d'un an d'ancienneté n'ont pas de taux défini ici.
Note : le code fourni est tronqué à la fin, donc la formule finale appliquant le pourcentage au salaire et la règle exacte de proratisation en cas de départ à la retraite ne sont pas entièrement visibles.
si montant_force <> 0 alors prime = montant_force
quitter
finsi
//Exclusion STC
si mois_paye <> 11 et motif_fin_ct <> 3 alors
quitter
finsi
si mois_paye <> 11 et motif_fin_ct <> 6 alors
quitter
finsi
// Exclusion vacataire, allocation étude et ex HPJC
Si lot_paye = 'VAC' ou code_type_particulier = 'AE' ou exclusion_prime = 1
alors quitter
finsi
// Exclusion vacataire, allocation étude et ex HPJC
Si lot_paye = 'VAC' ou code_type_particulier = 'AE' ou exclusion_prime = 1
alors quitter
finsi
// Absences : periode du 01/12/N-1 au 30/11/N
// Absences deductibles
Absence_deductible_jours = Abs_deductible_jour
Absence_deductible_heures = Abs_deducitble_heures / (5.05* (hrs_contrat / hrs_etab))
Tot_absences_deductible = Absence_deductible_jours + Absence_deductible_heures
//Absences injustifiées
nb_Absence_injustifiee = cumul_Abs_injustif
//Ancienneté
si date_debut_contrat <> 0 alors
ancienneté = periode(date_debut_contrat;date_paye)/365
sinon ancienneté = periode(date_entree_entreprise;date_paye)/365
finsi
//Salaire base annuel : faire une moyenne
date_deb_periode = CoderDate(1;12;Année_paye-1)
nb_mois_moyenne = periode(date_paye;date_deb_periode)/365*12
salaire_base = salaire_base_annuel / nb_mois_moyenne
// Calcul prime
si ancienneté >= 1 et ancienneté < 5 alors
Pourcentage_prime = 59
finsi
si ancienneté >= 5 et ancienneté < 10 alors
Pourcentage_prime= 64
finsi
si ancienneté >= 10 et ancienneté < 15 alors
Pourcentage_prime = 73
finsi
si ancienneté >= 15 et ancienneté < 20 alors
Pourcentage_prime = 80
finsi
si ancienneté >= 20 et ancienneté < 25 alors
Pourcentage_prime = 85
finsi
si ancienneté >= 25 alors
Pourcentage_prime = 100
finsi
//condition en cas de STC ; proratisation uniquement si départ à la retraite ou mise en retraite
si motif_fin_ct = 3 ou motif_fin_ct = 6
alors Fin_Avenant = 0
finsi
si mois_paye = 11 ou (Date_fin_contrat >=date_déb
Narration structurée
Arbre des cas et actions extrait du code par le parseur CEGI.
Résumé : Formule contenant 13 branche(s) conditionnelle(s), 7 affectation(s).
Si (`montant_force` différent de 0)
Alors :
Affecter à `prime` la valeur de `montant_force`
Sortir de la formule sans calcul
Si ((`mois_paye` différent de 11) et (`motif_fin_ct` différent de 3))
Alors :
Sortir de la formule sans calcul
Si ((`mois_paye` différent de 11) et (`motif_fin_ct` différent de 6))
Alors :
Sortir de la formule sans calcul
Si (((`lot_paye` égal à « VAC ») ou (`code_type_particulier` égal à « AE »)) ou (`exclusion_prime` égal à 1))
Alors :
Sortir de la formule sans calcul
Si (((`lot_paye` égal à « VAC ») ou (`code_type_particulier` égal à « AE »)) ou (`exclusion_prime` égal à 1))
Alors :
Sortir de la formule sans calcul
Affecter à `Absence_deductible_jours` la valeur de `Abs_deductible_jour`
Affecter à `Absence_deductible_heures` la valeur de (`Abs_deducitble_heures` divisé par (5.05 multiplié par (`hrs_contrat` divisé par `hrs_etab`)))
Affecter à `Tot_absences_deductible` la valeur de (`Absence_deductible_jours` plus `Absence_deductible_heures`)
Affecter à `nb_Absence_injustifiee` la valeur de `cumul_Abs_injustif`
Si (`date_debut_contrat` différent de 0)
Alors :
Affecter à `ancienneté` la valeur de (calculer une période(`date_debut_contrat`, `date_paye`) divisé par 365)
Sinon :
Affecter à `ancienneté` la valeur de (calculer une période(`date_entree_entreprise`, `date_paye`) divisé par 365)
Affecter à `date_deb_periode` la valeur de construire une date(1, 12, (`Année_paye` moins 1))
Affecter à `nb_mois_moyenne` la valeur de ((calculer une période(`date_paye`, `date_deb_periode`) divisé par 365) multiplié par 12)
Affecter à `salaire_base` la valeur de (`salaire_base_annuel` divisé par `nb_mois_moyenne`)
Si ((`ancienneté` supérieur ou égal à 1) et (`ancienneté` inférieur à 5))
Alors :
Affecter à `Pourcentage_prime` la valeur de 59
Si ((`ancienneté` supérieur ou égal à 5) et (`ancienneté` inférieur à 10))
Alors :
Affecter à `Pourcentage_prime` la valeur de 64
Si ((`ancienneté` supérieur ou égal à 10) et (`ancienneté` inférieur à 15))
Alors :
Affecter à `Pourcentage_prime` la valeur de 73
Si ((`ancienneté` supérieur ou égal à 15) et (`ancienneté` inférieur à 20))
Alors :
Affecter à `Pourcentage_prime` la valeur de 80
Si ((`ancienneté` supérieur ou égal à 20) et (`ancienneté` inférieur à 25))
Alors :
Affecter à `Pourcentage_prime` la valeur de 85
Si (`ancienneté` supérieur ou égal à 25)
Alors :
Affecter à `Pourcentage_prime` la valeur de 100
Si ((`motif_fin_ct` égal à 3) ou (`motif_fin_ct` égal à 6))