Bonjour,
J’ai une prime ancienneté, qui déduit les absences. Je souhaite qu’il n’y ai pas proratisation de la prime ancienneté.
J’aimerais également pouvoir dans les variables de paie, pouvoir modifier la base et le %
Aujourd’hui, je ne peux que modifier le montant.
Je dois remonter un dossier depuis janvier, (bulletin fait sur un autre logiciel)
Pourriez-vous m’aider, voici comment je l’ai paramétré.
Begin
// 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.CcnBool[11]
MemoMAJHS = ""
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
If Tx = 0.0 then Tx = (GarMinConv.An(Emp.Classification) / 12) / 151.67
If Bul.S41.G01.00.013 = 10 Then
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
// forfait jour avec majoration de 30% du minimum conv (BF04072014)
if BUL.FJNBJANCONTIENTJS = true then
FJ = BUL.FJNBJAN - 1
else
FJ = BUL.FJNBJAN
Endif
if FJ > 217 then FJ = 217
//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
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
// -------------------------------------------------------
Else
// Employe horaire
ActPart = stockvar("RETENUES_99")
BB = (Tx * Bul.NbhmN)+ActPart
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 BB = BB + ( Tx * HMCoeffv(ii) * HMnbh(ii) )
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 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
Case "M023":
// Métal Ardennes : idem national + 18% à 20 ans
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
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 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
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 and BB <> 0 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 and BB <> 0 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 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
EndSelect
Bases = Bases + ComplementBase01
If ForceTauxS <> 0 Then TauxS = ForceTauxS
If ForceBaseS <> 0 Then BaseS = ForceBaseS
x = Bases * tauxs / 100
Call Stockevar("_BASEANC",Bases)
call stockevar("PANC", x )
If Tauxs > 0 then Exec("GenereLprime")
End
Je vous remercie pour votre aide
Valérie

