Begin
If bul.annee >= 2024 then Bul.CCN = Bul.CCT
// AvecHNE = Avec Heures non effectives de nature 30 si false on ne les prend plus
AvecHNE = True
ForceTauxS = 0
ForceBaseS = 0.0
ComplementBase01 = 0.0
Maintien30P = ETA.CcnBoolo11]
MemoMAJHS = ""
Include("INIT-PARAMD01")
Include("INIT-D01")
If Ste.BaseCalculAnciennete = 1 Then
Tx = Bul.TauxHoraire
Ref = "salaire de base"
Else
Tx = Bul.SalMinConvH
Ref = "minimum conventionnel"
EndIf
// #12526 - HAN 10/10/22 - Inclure majo HS
If Bul.Ccn = "M067" Then
If Bul.S41.G01.00.013 <> 10 Then
Bul.TauxHoraireHS = Round(Bul.TauxHoraireHS,4)
Bul.TauxHoraire = Round(Bul.TauxHoraire,4)
If Bul.TauxHoraireHS <> Bul.TauxHoraire Then
MaJHS = Bul.TauxHoraireHS - Bul.TauxHoraire
MaJHS = Round(MaJHS,4)
Tx = Round(Tx,4)
OldTx = Tx
Tx = Tx + MaJHS
Tx = Round(Tx,4)
MemoMAJHS = "Taux horaire conventionnel avec majoration HS : " + Tx + " = " + OldTx + " + " + MaJHS
EndIf
EndIf
EndIf
//Ni 21022023 #37357 changement fonction pour prise en compte évo du coef suite ancienneté dans le grade
//If Tx = 0.0 then Tx = (GarMinConv.An(Emp.Classification) / 12) / 151.67
If Tx = 0.0 then Tx = (Bul.GarminconvAn / 12) / 151.67
If Bul.S41.G01.00.013 = 10 Then
if BUL.FJNBJANCONTIENTJS = true then
FJ = BUL.FJNBJAN - 1
else
FJ = BUL.FJNBJAN
Endif
if FJ > 217 then FJ = 217
DureeTravail = 151.67
If Ste.BaseCalculAnciennete = 1 then
bb1 = bul.salairedebase
BB = bb1 + Bul.MtAbsences
// -------------------------------------------------------
memo = "Prime anciennete sur salaire de base forfait jour"
call rem( Memo )
memo = "Base pondérée par les absences : " + BB
call rem( Memo )
Else
//Modif CP 07072020 supression de la majoration des 30%
if Maintien30P = false then
bb1 = Round( tx * 151.67 , 2 )
memo1 = "Base de référence (217 jours sans JS) minimum conventionnel : " + BB1
else
bb1 = Round( tx * 151.67 , 2 ) * 1.3
memo1 = "Base de référence (217 jours sans JS) minimum conventionnel majoré de 30% : " + BB1
DureeTravail = DureeTravail * 1.3
endif
BB = Round ( bb1 * (FJ / 217) , 2 )
// -------------------------------------------------------
memo = "Prime anciennete sur Minimum conventionnel majoré forfait jour"
call rem( Memo )
call rem( Memo1 )
memo = "Base pondérée par le contrat annuel " + FJ + " jours : " + BB
call rem( Memo )
EndIf
DureeTravail = Round(DureeTravail * (FJ/217), 2)
// -------------------------------------------------------
Else
// Employe horaire
BB = Tx * Bul.NbhmN
DureeTravail = Bul.NbhmN
ii = 0
Do
ii = ii + 1
If ii > HMnombre() Then Exit
BCCumul = True
If AvecHNE = False And HMNature(ii) = 30 Then BCCumul = False
If BCCumul = True Then
HMNbH_Coeff = HMCoeffv(ii) * HMnbh(ii)
BB = BB + Tx * HMNbH_Coeff
DureeTravail = DureeTravail + HMNbH_Coeff
EndIf
Loop
BB = Round (BB , 2)
BB1 = Round ( Tx * 151.67 ,2 )
// -------------------------------------------------------
memo = "Prime anciennete sur " + Ref
call rem( Memo )
If MemoMAJHS <> "" Then Call Rem(MemoMAJHS)
memo = "Base de référence (151.67) " + Ref + " : " + BB1
call rem( Memo )
memo = "Base pondérée par les heures travaillées : " + BB
call rem( Memo )
// -------------------------------------------------------
EndIf
Mois = Emp.Anciennete
Tauxs = 0
DateM063 = Date(12,07,2013)
Select case Bul.CCN
Case "M022":
// Métal Alpes-Maritimes : mois suivant l'acquisition de l'ancienneté
If Mois > 36 then
Tauxs = 3
Bases = BB
If Mois > 48 then
Do
Tauxs = Tauxs + 1
Mois = Mois - 12
If Mois < 48 then exit
If Tauxs > 15 Then Exit
Loop
If Tauxs > 15 then Tauxs = 15
Endif
Endif
Case "M023":
// Métal Ardennes : idem national + 18% à 20 ans
If Mois >= 36 then
Tauxs = 3
Bases = BB
If Mois >= 48 then
Do
Tauxs = Tauxs + 1
Mois = Mois - 12
If Mois < 48 then Exit
If Tauxs > 15 then Exit
Loop
If Tauxs > 15 then Tauxs = 15
Endif
Endif
If Emp.Anciennete >= 240 and BB <> 0 then Tauxs = 18
Case "M035":
// Métal Doubs : mois suivant l'acquisition de l'ancienneté
DateCCN = Date(29,1,2017)
If Bul.Date >= DateCCN and AvenantApplicable(DateCCN) = True then
// Révision CCN
If Mois > 36 then
Tauxs = 3
Bases = BB
If Mois > 48 then
Do
Tauxs = Tauxs + 1
Mois = Mois - 12
If Mois < 48 then exit
If Tauxs > 15 Then Exit
Loop
If Tauxs > 15 then Tauxs = 15
Endif
Endif
Else
If Mois >= 36 and BB <> 0 then
Tauxs = 3
Bases = BB
If Mois >= 48 then
Do
Tauxs = Tauxs + 1
Mois = Mois - 12
If Mois < 48 then Exit
If Tauxs > 15 then Exit
Loop
If Tauxs > 15 then Tauxs = 15
Endif
Endif
Endif
Case "M063":
// Taux pour la CCN M063
if Bul.PeriodeTaux >= DateM063 And Avenantapplicable (DateM063) = True Then
if Mois >= 24 then
Tauxs = 2
Bases = BB
If Mois >= 36 then
do
Tauxs = Tauxs + 1
Mois = Mois - 12
If Mois < 36 then exit
If Tauxs > 15 Then Exit
Loop
If Tauxs > 15 then Tauxs = 15
endif
endif
endif
Case "M108":
// Taux pour CCN Région Vimeu
If Mois >= 36 then
Tauxs = 3
Bases = BB
If Mois >= 72 then
Do
Tauxs = Tauxs + 3
Mois = Mois - 36
If Mois < 72 then Exit
If Tauxs > 15 then Exit
Loop
If Tauxs > 15 then Tauxs = 15
Endif
Endif
Default:
// Autres CCN METAL
If Mois >= 36 then
Tauxs = 3
Bases = BB
If Mois >= 48 then
Do
Tauxs = Tauxs + 1
Mois = Mois - 12
If Mois < 48 then Exit
If Tauxs > 15 then Exit
Loop
If Tauxs > 15 then Tauxs = 15
Endif
Endif
EndSelect
// #60396
TauxSansSAbs = TauxS
If BB = 0 Then TauxS = 0
Bases = Bases + ComplementBase01
If ForceTauxS <> 0 Then TauxS = ForceTauxS
If ForceBaseS <> 0 Then BaseS = ForceBaseS
PrimeAnc = Bases * tauxs / 100
Call Stockevar("_BASEANC",Bases)
Call Stockevar("PANC", PrimeAnc )
If Tauxs > 0 then Exec("GenereLprime")
End