Rubrique « SOLDE HEURES SUPP. NON RECUPEREES » (code 8900) (RUB_GAIN=0 : retenue, info ou technique selon usage). Actuellement active, variante en vigueur depuis le 2019-09-02. 3 variantes successives au fil du temps. La formule actuelle (1473 octets) référence 18 variable(s) et 1 fonction(s).
Explication
Cette règle calcule le solde des heures supplémentaires qui n'ont pas été récupérées par le salarié, et qui doivent donc lui être payées au moment où son contrat prend fin. Elle détermine deux éléments : un taux horaire applicable et le montant total à verser (nombre d'heures multiplié par ce taux).
Le principe général est le suivant : la règle ne s'applique que si la date de fin de contrat tombe dans la période de paye en cours. Le taux horaire utilisé dépend ensuite de l'établissement auquel le salarié est rattaché, car chaque site a sa propre logique de valorisation.
Plusieurs cas particuliers sont prévus. Si un taux horaire a été saisi manuellement (forcé), il est utilisé directement et le calcul s'arrête là. Si le motif de fin de contrat correspond à certaines situations spécifiques (codes TS, 902, 10 ou 12), aucun solde n'est calculé : ces départs ne donnent pas lieu à paiement des heures non récupérées.
Pour le reste, la règle distingue les établissements : le siège utilise le taux horaire standard, l'établissement 12 applique une majoration liée aux absences, les sites de Massy (19 et 20) ont leur propre taux, les établissements 27, 28 et 29 ajoutent une prime d'assiduité au taux fixe, l'établissement 37 utilise le taux fixe seul, le site de Savoie (49) a également son taux dédié, et l'établissement 106 recalcule le taux à partir du salaire mensuel divisé par l'horaire de référence. Enfin, pour l'établissement 30, si le salarié relève d'un cas d'exclusion, le solde est remis à zéro.
Le résultat final est le montant des heures supplémentaires restantes à payer sur le bulletin de solde de tout compte.
si tx_hor_forcé <> 0 alors
taux = tx_hor_forcé
solde = nb_hrs * tx_hor_forcé
quitter
finsi
Si (Motif_fin_ct = 'TS' ou Motif_fin_ct = '902' ou Motif_fin_ct = '10' ou Motif_fin_ct = '12' )
alors quitter
finsi
si Date_fin_contrat >=date_début_paye
et Date_fin_contrat <=date_fin_paye
alors solde = nb_hrs * tx_hor
taux = tx_hor
finsi
si numero_etab = 1 alors
si Date_fin_contrat >=date_début_paye
et Date_fin_contrat <=date_fin_paye
alors solde = nb_hrs * tx_hor_2
taux = tx_hor_2
finsi
finsi
si numero_etab = 1 alors
si Date_fin_contrat >=date_début_paye
et Date_fin_contrat <=date_fin_paye
alors solde = nb_hrs * tx_hor_3
taux = tx_hor_3
finsi
finsi
si numero_etab = 12 alors
si Date_fin_contrat >=date_début_paye
et Date_fin_contrat <=date_fin_paye
alors solde = nb_hrs * taux_horaire12 * taux_majoration_absence
taux = taux_horaire12 * taux_majoration_absence
finsi
finsi
si numero_etab = 19 ou numero_etab = 20 alors
si Date_fin_contrat >=date_début_paye
et Date_fin_contrat <=date_fin_paye
alors solde = nb_hrs * tx_hor_massy
taux = tx_hor_massy
finsi
finsi
si numero_etab = 27 ou numero_etab = 28 ou numero_etab = 29 alors
si Date_fin_contrat >=date_début_paye
et Date_fin_contrat <=date_fin_paye
alors solde = nb_hrs * (tx_hor_fixes+tx_hor_assiduite)
taux = (tx_hor_fixes+tx_hor_assiduite)
finsi
finsi
si numero_etab = 30 alors
si test_exclusion <> 0 alors
solde = 0
finsi
finsi
si numero_etab = 37 alors
si Date_fin_contrat >=date_début_paye
et Date_fin_contrat <=date_fin_paye
alors solde = nb_hrs * tx_hor_fixes
taux = tx_hor_fixes
finsi
finsi
Si numero_etab = 49 alors
si Date_fin_contrat >=date_début_paye
et Date_fin_contrat <=date_fin_paye
alors solde = nb_hrs * tx_hor_Savoie
taux = tx_hor_Savoie
finsi
Finsi
si numero_etab = 106 alors
si Date_fin_contrat >=date_début_paye
et Date_fin_contrat <=date_fin_paye
alors
tx_hor_3 = (salaire_mensuel_fixe / hor
Narration structurée
Arbre des cas et actions extrait du code par le parseur CEGI.
Résumé : Formule contenant 12 branche(s) conditionnelle(s).
Si (`tx_hor_forcé` différent de 0)
Alors :
Affecter à `taux` la valeur de `tx_hor_forcé`
Affecter à `solde` la valeur de (`nb_hrs` multiplié par `tx_hor_forcé`)
Sortir de la formule sans calcul
Si ((((`Motif_fin_ct` égal à « TS ») ou (`Motif_fin_ct` égal à « 902 »)) ou (`Motif_fin_ct` égal à « 10 »)) ou (`Motif_fin_ct` égal à « 12 »))
Alors :
Sortir de la formule sans calcul
Si ((`Date_fin_contrat` supérieur ou égal à `date_début_paye`) et (`Date_fin_contrat` inférieur ou égal à `date_fin_paye`))
Alors :
Affecter à `solde` la valeur de (`nb_hrs` multiplié par `tx_hor`)
Affecter à `taux` la valeur de `tx_hor`
Si (`numero_etab` égal à 1)
Alors :
Si ((`Date_fin_contrat` supérieur ou égal à `date_début_paye`) et (`Date_fin_contrat` inférieur ou égal à `date_fin_paye`))
Alors :
Affecter à `solde` la valeur de (`nb_hrs` multiplié par `tx_hor_2`)
Affecter à `taux` la valeur de `tx_hor_2`
Si (`numero_etab` égal à 1)
Alors :
Si ((`Date_fin_contrat` supérieur ou égal à `date_début_paye`) et (`Date_fin_contrat` inférieur ou égal à `date_fin_paye`))
Alors :
Affecter à `solde` la valeur de (`nb_hrs` multiplié par `tx_hor_3`)
Affecter à `taux` la valeur de `tx_hor_3`
Si (`numero_etab` égal à 12)
Alors :
Si ((`Date_fin_contrat` supérieur ou égal à `date_début_paye`) et (`Date_fin_contrat` inférieur ou égal à `date_fin_paye`))
Alors :
Affecter à `solde` la valeur de ((`nb_hrs` multiplié par `taux_horaire12`) multiplié par `taux_majoration_absence`)
Affecter à `taux` la valeur de (`taux_horaire12` multiplié par `taux_majoration_absence`)
Si ((`numero_etab` égal à 19) ou (`numero_etab` égal à 20))
Alors :
Si ((`Date_fin_contrat` supérieur ou égal à `date_début_paye`) et (`Date_fin_contrat` inférieur ou égal à `date_fin_paye`))
Alors :
Affecter à `solde` la valeur de (`nb_hrs` multiplié par `tx_hor_massy`)
Affecter à `taux` la valeur de `tx_hor_massy`
Si (((`numero_etab` égal à 27) ou (`numero_etab` égal à 28)) ou (`numero_etab` égal à 29))
Alors :
Si ((`Date_fin_contrat` supérieur ou égal à `date_début_paye`) et (`Date_fin_contrat` inférieur ou égal à `date_fin_paye`))
Alors :
Affecter à `solde` la valeur de (`nb_hrs` multiplié par (`tx_hor_fixes` plus `tx_hor_assiduite`))
Affecter à `taux` la valeur de (`tx_hor_fixes` plus `tx_hor_assiduite`)
Si (`numero_etab` égal à 30)
Alors :
Si (`test_exclusion` différent de 0)
Alors :
Affecter à `solde` la valeur de 0
Si (`numero_etab` égal à 37)
Alors :
Si ((`Date_fin_contrat` supérieur ou égal à `date_début_paye`) et (`Date_fin_contrat` inférieur ou égal à `date_fin_paye`))
Alors :
Affecter à `solde` la valeur de (`nb_hrs` multiplié par `tx_hor_fixes`)
Affecter à `taux` la valeur de `tx_hor_fixes`
Si (`numero_etab` égal à 49)
Alors :
Si ((`Date_fin_contrat` supérieur ou égal à `date_début_paye`) et (`Date_fin_contrat` inférieur ou égal à `date_fin_paye`))
Alors :
Affecter à `solde` la valeur de (`nb_hrs` multiplié par `tx_hor_Savoie`)
Affecter à `taux` la valeur de `tx_hor_Savoie`
Si (`numero_etab` égal à 106)
Alors :
Si ((`Date_fin_contrat` supérieur ou égal à `date_début_paye`) et (`Date_fin_contrat` inférieur ou égal à `date_fin_paye`))
Alors :
Affecter à `tx_hor_3` la valeur de (`salaire_mensuel_fixe` divisé par `hor`)