Skip to main content
Question

PRIME ANCIENNETE SANS DEDUCTION DES ABSENCES


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