|
Création 7 cumuls
|
|
CPJCAL - Nb jours calendaires :
Unité : Nombre
RAZ : Mois de bascule
Report : Aucun
Explication
: Ce cumul est alimenté via la fonction personnalisée
DROICP - Droit CP mensuel
et est utilisé dans la fonction personnalisée
DRCPAN - Droit CP annuel
pour recalculer annuellement le nombre de jours de CP acquis sur la période d'acquisition (ou lors d'une sortie).
|
|
CPABSM - Jrs abs hors mal mensuel :
Unité : Montant
RAZ : Tous les mois
Report : Rubrique - 1040 "ABS. AUTORISEE SS MAINT." en Montant
1040J "ABS. AUTORISEE SS MAINT. FORFAIT JOUR" en Montant
1045 "ABS. NON AUTORISEE SS MAINT." en Montant
1045J "ABS. NON AUTORISEE SS MAINT. FORF JOUR" en Montant
1135 "ABS. CONGE PARENT. ED. SS MAINT." en Montant
1135J "ABS. CONGE PARENT. ED. SS MAINT. FORF JR" en Montant
3080 "ABS. CONGES SANS SOLDE SS MAINT." en Montant
3080J "ABS. CONGES SANS SOLDE SS MAINT. FORF JR" en Montant
Explication
: Ce cumul doit être alimenté par les rubriques d'absence non assimilée qui n'ouvrent pas droit à acquisition des CP. Ce cumul est utilisé dans la fonction personnalisée
DROICP - Droit CP Mensuel
, pour compter le nombre de jours calendaires d'absence non assimilée à partir des périodes saisies pour chaque rubrique qui alimente ce cumul.
Lors de l'exécution du script, l'alimentation du cumul est réalisée en prenant en compte toutes les rubriques d'absences datées (PMRUBR.LBMT = "D") qui proratisent le PMSS (PMELPA.DIVI = 1) et qui possèdent un motif de suspension du contrat de travail en DSN (Sauf motif 602 et 507) (PMRUBR.CMSC <> "" ).
Requête utilisée :
SELECT * FROM PMELPA JOIN PMRUBR ON PMELPA.NORU = PMRUBR.NORU
WHERE DIVI = 1 AND LBMT = 'D' AND (CMSC <> '' AND CMSC NOT IN ('602','507'))
CPABSA - Jrs abs hors maladie annuel :
Unité : Jour
RAZ : Mois bascule
Report : Aucun
Explication
: Ce cumul est alimenté par la fonction personnalisée
DROICP - Droit CP Mensuel
et est utilisé dans la fonction personnalisée
DRCPAN - Droit CP annuel
pour recalculer annuellement le nombre de jours de CP acquis sur la période d'acquisition (ou lors d'une sortie).
CPJAHM - CP Acquis hors mal :
Unité : Jour
RAZ : Mois bascule
Report : Aucun
Explication
: Ce cumul est alimenté par la fonction personnalisée
DROICP - Droit CP Mensuel
et est utilisé dans la fonction personnalisée
DRCPAN - Droit CP annuel
pour recalculer annuellement le nombre de jours de CP acquis sur la période d'acquisition (ou lors d'une sortie).
De plus, ce cumul pourra être utilisé pour connaitre le nombre de CP Acquis au titre des périodes d'arrêts maladie pendant la période d'acquisition (Juin à mai).
|
|
CPMALM - Jrs abs maladie mensuel :
Unité : Montant
RAZ : Tous les mois
Report : Rubrique - 1050 "ABS. MALADIE SS MAINT. du XX/XX au XX/XX" en Montant
1050J "ABS. MALADIE SS MAINT. FORFAIT JOUR" en Montant
1060 "ABS. MALADIE MAINT." en Montant
1060J "ABS. MALADIE MAINT. FORFAIT JOUR" en Montant
1201 "Abs. Maladie du XX/XX au XX/XX" en Montant
1201J "Abs. Maladie FORFAIT JOUR" en Montant
Explication
: Ce cumul doit être alimenté par les rubriques d'absence maladie non professionnelle qui ouvrent droit à acquisition des CP.
Ce cumul est utilisé une première fois pour alimenter le cumul
CPMTN0 - Base CP En cours
, via le rubrique
3080K1 - Calcul base CP Maladie
. Puis, dans un second temps, ce cumul est utilisé dans la fonction personnalisée
DROICP - Droit CP Mensuel
, pour compter le nombre de jours calendaires d'absence maladie à partir des périodes saisies pour chaque rubrique qui alimente ce même cumul.
Lors de l'exécution du script, l'alimentation du cumul est réalisée en prenant en compte toutes les rubriques d'absence datées (PMRUBR.LBMT = "D") dont le libellé contient MALA et ne contient pas PRO (pour ignorer les rubriques d'absence maladie professionnelle). Seules les rubriques n'ayant pas de motif de suspension de contrat DSN sont prises en compte.
Requête utilisée :
SELECT * FROM PMELPA JOIN PMRUBR ON PMELPA.NORU = PMRUBR.NORU
WHERE LBMT = 'D' AND UPPER(LIBE) LIKE '%MALA%' AND SENS = 'R' AND UPPER(LIBE) NOT LIKE '%PRO%' AND CMSC = '' AND SUSP = 0
CPMALA - Jrs abs maladie annuel :
Unité : Jour
RAZ : Mois de bascule
Report : Aucun
Explication
: Ce cumul est alimenté par la fonction personnalisée
DROICP - Droit CP Mensuel
et est utilisé dans la fonction personnalisée
DRCPAN - Droit CP annuel
pour recalculer annuellement le nombre de jours de CP acquis sur la période d'acquisition (ou lors d'une sortie).
CPJAMA - CP Acquis maladie :
Unité : Jour
RAZ : Mois bascule
Report : Aucun
Explication
: Ce cumul est alimenté par la fonction personnalisée
DROICP - Droit CP Mensuel
et est utilisé dans la fonction personnalisée
DRCPAN - Droit CP annuel
pour recalculer annuellement le nombre de jours de CP acquis sur la période d'acquisition (ou lors d'une sortie).
|
|
Modification 1 cumul
|
|
CPMTN0 "BASE CP EN COURS"
Report rubriques à COCHER :
3080K1 "Calcul base CP maladie"
Report rubriques à DECOCHER :
1061 "MALADIE 100%"
1061J "MALADIE 100% FORFAIT JOUR"
1062 "MALADIE 75 % "
1062J "MALADIE 75 % FORFAIT JOUR"
1063 " MALADIE 50 %"
1063J "MALADIE 50 % FORFAIT JOUR"
Explication
: Le calcul du 1/10ème est impacté par cette réforme car il convient de prendre en compte uniquement 80% du salaire théorique pendant les périodes d'arrêt maladie.
Maintenant, seules les rubriques d'absence maladie et la rubrique
3080K1 - Calcul base CP Maladie
doivent alimenter le cumul
CPMTN0
. Les rubriques de maintien ne sont plus à prendre en compte.
Lors de l'exécution du script, la modification du cumul CPMTN0 est réalisée en supprimant le report des rubriques qui sont en gain, dont le libellé contient MAL, ne contient pas PRO (pour ignorer les rubriques de maintien maladie professionnelle) et qui est associée à une autre rubrique.
Requête utilisée :
DELETE FROM PMLIRT WHERE NMCU = 'CPMTN0' AND NORU IN (SELECT PMELPA.NORU FROM PMELPA JOIN PMRUBR ON PMELPA.NORU = PMRUBR.NORU WHERE UPPER(LIBE) LIKE '%MAL%' AND UPPER(LIBE) NOT LIKE '%PRO%' AND SENS = 'G' AND PMELPA.NORU IN(SELECT NORU FROM PMASRU))
|
|
Création 3 Fonction Personnalisée
|
|
DROICP - Calcul droit CP En cours
// Version du 29/05/2024 //Cette fonction permet de calculer l'acquisition des CP avec prise en compte // des absences maladie
// 1- On calcul le nombre de jours d'absence non assimilé UnCumul est une chaîne = "CPABSM" UneDate est une Date tDatesAbsenceDéjàDécomptées est un tableau associatif de booléens NombreJoursMaladie , NombreJoursAbsence sont des réels
// On remet à z&ero pour effacer les éventuels reports fait en amont tCumuls [ UnCumul ]= 0
// On balaye le tbaleau des éléments variables // Pour chaque élément variable, on le traite si l'élément est daté et si la rubrique se reporte sur l'un des cumuls d'absence à traiter POUR ind = 1 À ftCAELVA ..Occurrence CAELVA = ftCAELVA [ ind ] SI CAELVA . CMSA <> "S" _ET_ CAELVA . DTDB <> "" _ET_ CAELVA . DTFI <> "" _ET_ CAELVA . DTDB <= CAELVA . DTFI ... _ET_ HLitRecherchePremier ( "PMLIRT" , "KLIRT" , [ UnCumul , CAELVA . NORU ]) ALORS // On décompte les jours ouvrés sur la période d'absence de cet élément variable // en prenant garde à ce qu'une même journée ne soit pas décomptée 2 fois, au travers de 2 éléments dont les périodes se recrouvreraient en tout ou partie UneDate = CAELVA . DTDB
TANTQUE UneDate <= CAELVA . DTFI SI PAS tDatesAbsenceDéjàDécomptées [ UneDate ] ALORS tDatesAbsenceDéjàDécomptées [ UneDate ]= Vrai SI CAELVA . NBRE > 0 ALORS NombreJoursAbsence ++ SINON NombreJoursAbsence -- FIN UneDate ..Jour++ FIN FIN FIN
tCumuls [ UnCumul ]+= NombreJoursAbsence
// On revient sur l'enregistrement courant CAELVA = ftCAELVA [ fIndiceftCAELVA ]
// 2 - On calcul le nombre de jours d'Absence maladie UnCumul = "CPMALM" tDatesAbsenceMaladieDéjàDécomptées est un tableau associatif de booléens
// On remet à z&ero pour effacer les éventuels reports fait en amont tCumuls [ UnCumul ]= 0
// On balaye le tbaleau des éléments variables // Pour chaque élément variable, on le traite si l'élément est daté et si la rubrique se reporte sur l'un des cumuls d'absence à traiter POUR ind = 1 À ftCAELVA ..Occurrence CAELVA = ftCAELVA [ ind ] SI CAELVA . CMSA <> "S" _ET_ CAELVA . DTDB <> "" _ET_ CAELVA . DTFI <> "" _ET_ CAELVA . DTDB <= CAELVA . DTFI ... _ET_ HLitRecherchePremier ( "PMLIRT" , "KLIRT" , [ UnCumul , CAELVA . NORU ]) ALORS // On décompte les jours ouvrés sur la période d'absence de cet élément variable // en prenant garde à ce qu'une même journée ne soit pas décomptée 2 fois, au travers de 2 éléments dont les périodes se recrouvreraient en tout ou partie UneDate = CAELVA . DTDB
TANTQUE UneDate <= CAELVA . DTFI SI PAS tDatesAbsenceMaladieDéjàDécomptées [ UneDate ] ALORS tDatesAbsenceMaladieDéjàDécomptées [ UneDate ]= Vrai SI CAELVA . NBRE > 0 ALORS NombreJoursMaladie ++ SINON NombreJoursMaladie -- FIN UneDate ..Jour++ FIN FIN FIN
tCumuls [ UnCumul ]+= NombreJoursMaladie
// On revient sur l'enregistrement courant CAELVA = ftCAELVA [ fIndiceftCAELVA ]
// 3 - On calcul l'acquisition CP
NombrejoursCalendaire , NombreJoursBulletin sont des réels NombreJoursPrésence , NombreSemaine , NombreMois sont des réels DroitCP , DroitCPHorsMaladie , DroitCPMaladie , DroitCPTotal sont des réels
DroitCP = CG . DROICP
// On calcul le nombre de jours calendaire du bulletin // et mise à jours du cumul //NombrejoursCalendaire = DateDifférence(PremierJourDuMois(CAENBU.DTDB),DernierJourDuMois(CAENBU.DTDB))+1 NombrejoursCalendaire = Val ( Droite ( DernierJourDuMois ( CAENBU . DTFI ), 2 ))
//tCumuls["CPJCAL"] += NombrejoursCalendaire //NombrejoursCalendaire = CU.CPJCAL
NombreJoursBulletin = DateDifférence ( CAENBU . DTDB , CAENBU . DTFI )+ 1 tCumuls [ "CPJCAL" ] += NombreJoursBulletin
//Calcul acquisition CP Hors Maladie NombreJoursPrésence = NombreJoursBulletin - NombreJoursAbsence - NombreJoursMaladie
DroitCPHorsMaladie = Arrondi ( NombreJoursPrésence / NombrejoursCalendaire * DroitCP , 2 )
//Calcul acquisition CP Maladie DroitCPMaladie = Arrondi ( NombreJoursMaladie / NombrejoursCalendaire * DroitCP * 0.8 , 2 )
//Calcul acquisition CP Total DroitCPTotal = DroitCPMaladie + DroitCPHorsMaladie
//Affichage ligne commentaire, pour explication du calcul Commentaireinfo est une chaîne Commentaireinfo = "[VR]" SI DroitCPHorsMaladie <> 0 _ET_ ( NombreJoursAbsence <> 0 OU NombreJoursMaladie <> 0 ) ALORS Commentaireinfo += RC + "CP Hors maladie : " + DroitCPHorsMaladie Commentaireinfo += RC + " ( " + NombreJoursPrésence + " / " + NombrejoursCalendaire + " * " + DroitCP + " )" FIN
SI DroitCPMaladie <> 0 ALORS Commentaireinfo += RC + "CP maladie : " + DroitCPMaladie Commentaireinfo += RC + " ( " + NombreJoursMaladie + " / " + NombrejoursCalendaire + " * " + DroitCP + " * 0.8)" FIN fCommentaireCalcul = Commentaireinfo
//Mise à jours des cumuls tCumuls [ "CPJAHM" ] += DroitCPHorsMaladie tCumuls [ "CPJAMA" ] += DroitCPMaladie tCumuls [ "CPABSA" ] += NombreJoursAbsence tCumuls [ "CPMALA" ] += NombreJoursMaladie
RENVOYER ( DroitCPTotal )
Explication
: Cette fonction permet de calculer le nombre de jours acquis en cours mensuellement. Pour cela, la fonction est décomposée en plusieurs étapes :
1- Calcul du nombre de jours d'absence non assimilée à partir des rubriques alimentant le cumul
CPABSM - Jrs abs hors mal mensuel
.
2- Calcul du nombre de jours d'absence maladie à partir des rubriques alimentant le cumul
CPMALM - Jrs abs maladie mensuel.
3- Calcul du nombre de jours calendaires à partir de la date de début et de fin du bulletin.
4- Calcul du nombre de CP Acquis hors maladie : nombre de jours présence / nombre de jours du mois * DroitCP
5- Calcul du nombre de CP Acquis maladie : nombre de jours maladie / nombre de jours du mois * DroitCP
6- Calcul du nombre de CP Acquis en cours : CP Acquis hors maladie + CP Acquis maladie
7- Mise à jour des cumuls suivants :
|
|
Création 3 Rubriques
|
|
3080K1 - Calcul base CP maladie
Création par copie de la rubrique
0159-Droit à cp congés payés mensuel
Calcul :
Unité : Montant
Montant : Fonction Perso // Nom= CPMALB
Cumul : CPMTN0
3080KC - Droit à CP congés payés mensuel
Création par copie de la rubrique
0159-Droit à cp congés payés mensuel
Calcul / Sens : Gain
Unité : Jour
Base : Fonction personnalisée // Nom : FP.DROICP
Code calcul 00
Profils / Pour tous les salarié présent (sauf intéressement)
Cumul / CPJAN0 en nombre
3080KR - Recalcul Droit congés payés
Création par copie de la rubrique
3080KC-Droit à CP congés payés mensuel
Calcul / Alimentation Base : Fonction personnalisée // Nom : FP.DRCPAN
Cumul / CPJAN0
|
|
Modification 2 Rubriques
|
|
0159 - Droit à cp congés payés mensuel
Suspendre
0160 - Arrondi jrs cp acquis en cours à fin Mai
Suspendre
|