Rubrique « CALCUL PRIME PRESENCE ET FIDELITE EC1 » (code 1398) (RUB_GAIN=0 : retenue, info ou technique selon usage). Inactive à ce jour. Une seule variante de formule définie.
Explication
Cette regle calcule la prime de presence et de fidelite pour les salaries de l'etablissement 120. Le montant depend de l'anciennete du salarie, de sa qualification, du temps de travail de l'etablissement et du nombre de jours d'absence sur la periode.
La regle commence par determiner l'anciennete en annees, calculee entre la date d'entree du salarie et la date du jour. Si la date d'entree n'est pas renseignee, l'anciennete est consideree comme nulle.
Ensuite, deux baremes distincts sont appliques selon la qualification conventionnelle du salarie. Un bareme specifique est reserve au personnel soignant : infirmiers diplomes d'Etat (IDE, IDE cadre, IDE psy) et aides-soignants (y compris niveau 3). Pour tous les autres salaries de l'etablissement, un bareme general s'applique avec des montants differents.
Dans les deux cas, la grille d'anciennete fonctionne par paliers identiques : aucune prime pendant la premiere annee, puis un montant croissant pour les tranches 1 a 3 ans, 3 a 5 ans, 5 a 9 ans, et au-dela de 9 ans. Le montant annuel correspondant a la tranche est divise par 3, puis ajuste au prorata du temps de travail du salarie par rapport a l'horaire de reference de l'etablissement (heures de base / heures etablissement).
Enfin, une condition d'assiduite s'applique a tous : si le salarie a cumule plus de 3 jours d'absence sur la periode, la prime est annulee et ramenee a zero, quelle que soit son anciennete ou sa qualification. Cette regle ne s'applique qu'a l'etablissement 120 ; ailleurs, aucune prime n'est calculee par cette formule.
Si code_etablissement = 120 alors
Ancienneté = Arrondi(((datecourante+1)-
Evaluer( // test si la date 'entre' est renseignée
// si date 'entre' est inférieure à 1/1/1900
// alors date 'entre' non renseigné
Max(date_entree;coderdate(1;1;1900))=CoderDate(1;1;1900)
// si date non renseigne alors age = 0
:DateCourante;date_entree))/365;0.01;-1)
Si Qualif_conv = 'I.D.E.' ou Qualif_conv = 'IDE CADRE' ou Qualif_conv = 'IDE PSY' ou Qualif_conv = 'AIDE SOIGNANT(E)' ou Qualif_conv = 'AIDE SOIGNANT(E) NIVEAU 3' alors
Si Ancienneté <= 1 alors prime = 0
Sinonsi Ancienneté > 1 et Ancienneté <= 3 alors
prime = Montant_1à3ans_IDE / 3 * Hrs_Base / Hrs_Etab
Sinonsi Ancienneté > 3 et Ancienneté <= 5 alors
prime = Montant_3à5ans_IDE / 3 * Hrs_Base / Hrs_Etab
Sinonsi Ancienneté > 5 et Ancienneté <= 9 alors
prime = Montant_5à9ans_IDE / 3 * Hrs_Base / Hrs_Etab
Sinonsi Ancienneté > 9 alors
prime = Montant_9ans_IDE / 3 * Hrs_Base / Hrs_Etab
Finsi
SinonSi Ancienneté <= 1 alors prime = 0
Sinonsi Ancienneté > 1 et Ancienneté <= 3 alors
prime = Montant_1à3ans / 3 * Hrs_Base / Hrs_Etab
Sinonsi Ancienneté > 3 et Ancienneté <= 5 alors
prime = Montant_3à5ans / 3 * Hrs_Base / Hrs_Etab
Sinonsi Ancienneté > 5 et Ancienneté <= 9 alors
prime = Montant_5à9ans / 3 * Hrs_Base / Hrs_Etab
Sinonsi Ancienneté > 9 alors
prime = Montant_9ans / 3 * Hrs_Base / Hrs_Etab
Finsi
Si Nb_Jrs_Abs > 3 alors prime = 0
Finsi
Finsi
Narration structurée
Arbre des cas et actions extrait du code par le parseur CEGI.
Résumé : Formule contenant 2 branche(s) conditionnelle(s).
Instruction non interprétée
Si (((((`Qualif_conv` égal à « I.D.E. ») ou (`Qualif_conv` égal à « IDE CADRE »)) ou (`Qualif_conv` égal à « IDE PSY »)) ou (`Qualif_conv` égal à « AIDE SOIGNANT(E) »)) ou (`Qualif_conv` égal à « AIDE SOIGNANT(E) NIVEAU 3 »))
Alors :
Si (`Ancienneté` inférieur ou égal à 1)
Alors :
Affecter à `prime` la valeur de 0
Sinon, si ((`Ancienneté` supérieur à 1) et (`Ancienneté` inférieur ou égal à 3)) :
Affecter à `prime` la valeur de (((`Montant_1à3ans_IDE` divisé par 3) multiplié par `Hrs_Base`) divisé par `Hrs_Etab`)
Sinon, si ((`Ancienneté` supérieur à 3) et (`Ancienneté` inférieur ou égal à 5)) :
Affecter à `prime` la valeur de (((`Montant_3à5ans_IDE` divisé par 3) multiplié par `Hrs_Base`) divisé par `Hrs_Etab`)
Sinon, si ((`Ancienneté` supérieur à 5) et (`Ancienneté` inférieur ou égal à 9)) :
Affecter à `prime` la valeur de (((`Montant_5à9ans_IDE` divisé par 3) multiplié par `Hrs_Base`) divisé par `Hrs_Etab`)
Sinon, si (`Ancienneté` supérieur à 9) :
Affecter à `prime` la valeur de (((`Montant_9ans_IDE` divisé par 3) multiplié par `Hrs_Base`) divisé par `Hrs_Etab`)
Sinon, si (`Ancienneté` inférieur ou égal à 1) :
Affecter à `prime` la valeur de 0
Sinon, si ((`Ancienneté` supérieur à 1) et (`Ancienneté` inférieur ou égal à 3)) :
Affecter à `prime` la valeur de (((`Montant_1à3ans` divisé par 3) multiplié par `Hrs_Base`) divisé par `Hrs_Etab`)
Sinon, si ((`Ancienneté` supérieur à 3) et (`Ancienneté` inférieur ou égal à 5)) :
Affecter à `prime` la valeur de (((`Montant_3à5ans` divisé par 3) multiplié par `Hrs_Base`) divisé par `Hrs_Etab`)
Sinon, si ((`Ancienneté` supérieur à 5) et (`Ancienneté` inférieur ou égal à 9)) :
Affecter à `prime` la valeur de (((`Montant_5à9ans` divisé par 3) multiplié par `Hrs_Base`) divisé par `Hrs_Etab`)
Sinon, si (`Ancienneté` supérieur à 9) :
Affecter à `prime` la valeur de (((`Montant_9ans` divisé par 3) multiplié par `Hrs_Base`) divisé par `Hrs_Etab`)