Skip to main content

Suite Mise à jour Silae Personnalisation de la prime d'ancienneté ne fonctionne plus


Forum|alt.badge.img

Bonjour,

 

En Janvier 2025, nous avions rajouté un élément dans la prime d’ancienneté et celle-ci se calculait très bien.

 

Aujourd’hui ce paramétrage spécifique ne fonctionne plus cad que les absences ne se déduisent plus. c’est assez agaçant quand cela impact un groupe de 10 dossier représentant plus de 500 paies

 

voici le code qui fonctionnait encore très bien sur les paies de janvier 2025, un ticket a été fait mais vu le temps de réponse moyennant 3 semaines en général j’aimerai si possible trouver une solution rapidement.

 

Si quelqu’un arrive à comprendre pourquoi mes absences ne déduisent plus ma prime d’ancienneté

 

begin
//CB - 05/02/2024 - Léna Djilali : #1181949 (prestation) traitement différent par établissement + archivage Init-D01.
//SBL le 07/01/2025 #1621097 Léna Djilali copie dossier 18350

// JPB le 03.03.2017   Ajout de cette variable BANCSAISIE pour pouvoir mettre une saisie dans l'include ou on peut la forcer a -1 pour supprime la D01

BANCSAISIE = 0.0
ForceTauxS = 0

//Bul.SalaireDeBase = Bul.SalaireDeBaseHeuresNormales

If BUL.S41.G01.00.013 <> 10 Then 
    // pas en forfait jour et Absence complete pas de prime d'anciennete
    If BUL.NBHM = 0 Then Return
Endif

//cti 130320 : prise en compte des absences antérieures, quand la Panc n'était pas due, passées sur le mois courant.
HeuresARajouter = 0
MoisAnc = Emp.anciennete + Emp.CcnInt[1]
If  MoisAnc >= 36 Then
    //print " Prime Anc due : Recherche des absenses du mois concernant une période antérieure sans prime d'Anc."
    ii = 0
    Do
        ii = ii + 1
        If ii > Absences_Nombre() Then Exit
        MoisDtDebAbs = DateMonth(Absences_DtDeb(ii))
        MoisDtFinAbs = DateMonth(Absences_DtFin(ii))
        If MoisDtDebAbs < Bul.Mois And MoisDtFinAbs < Bul.Mois Then
            // Absence sur un mois antérieur
            MoisAncAbs = MoisAnc - (Bul.mois - MoisDtDebAbs)
            If MoisAncAbs < 36 Then
                //print " Prime Anc non due : les heures d'absence doivent être rajoutées."
                NbjCal = DiffDays(Absences_DtDeb(ii),Absences_DtFin(ii))
                MoisComplet = False
                Select Case MoisDtDebAbs
                    Case 1,3,5,7,8,9,10,12:
                        If NbjCal = 31 Then MoisComplet = True
                    Case 2:
                        yy = Bul.Annee/4 - Trunc(Bul.Annee/4)
                        If yy = 0 Then 
                            If NbjCal = 29 Then MoisComplet = True
                        Else
                            If NbjCal = 28 Then MoisComplet = True
                        EndIf
                    Default:
                        If NbjCal = 30 Then MoisComplet = True
                EndSelect
                If MoisComplet = True Then xx = Bul.NbHMnContrat Else xx = NbHTTheoriques(Absences_DtDeb(ii),Absences_DtFin(ii))
                HeuresARajouter = HeuresARajouter + xx
                //print ii + " HeuresARajouter : " + xx
            EndIf
        EndIf
    Loop
EndIf

if eta.ccnbool[1] = false then
    If Ste.BaseCalculAnciennete = 1 Then
        TX = Bul.tauxhoraire
        Methode = "salaire de base"
    Else
        TX = Bul.SalminConvh
        Methode = "minimum conventionnel"
    EndIf
    If BUL.S41.G01.00.013 <> "10" Then
    //    TotHres = Bul.NbhmN + HeuresARajouter
        BB = TX * bul.nbhmn
        Select case eta.nominterne
        case "JOUY","ERAGNY","CERGY":            
            ii = 0
            Do
                ii = ii + 1
                If ii > HMnombre() Then Exit
            //    BB = BB + ( TX * HMCoeffv(ii) * HMnbh(ii) )
                BB = BB + (Tx * HMCoeffv(ii) * (HMnbh(ii) - HMnbhchs(ii)))
                Loop
                BB = Round (BB ,  2)
            BB1 = Round ( TX * 151.67 , 2 )
        EndSelect
    Else
        //Forfaits jours
        BB = bul.salairedebase + BUL.MTABSENCES
    EndIf
    // -------------------------------------------------------
    memo = "Prime anciennete sur " + Methode
    call rem( Memo )
    memo = "Base de référence (151.67) " + Methode + " :   " + BB1
    call rem( Memo )
    memo = "Base  pondérée  par  les  heures   travaillées      :   " + BB
    call rem( Memo )
    // -------------------------------------------------------
else
    If Ste.BaseCalculAnciennete = 1 Then
    //    BB = Bul.salairedebase
        BB = Bul.tauxhoraire*bul.nbhmncontrat

    Else
    //    BB = Bul.SalminConv
        BB = Bul.SalminConvH*bul.nbhmncontrat

    EndIf
endif

If BUL.S41.G01.00.013 = 10 then 
    BB = Bul.salairedebase + BUL.MTABSENCES
Endif


//BB = BB + BUL.MTABSENCES
Mois = 0
If Emp.CcnInt[1] <> 0 then Mois = Emp.CcnInt[1]
memo = "Ancienneté en mois acquise dans un autre cabinet      :   " + Emp.CcnInt[1]
call rem( Memo )
memo = "Ancienneté en mois acquise dans ce cabinet      :   " + Emp.anciennete
call rem( Memo )
Mois = Mois + Emp.anciennete
memo = "Ancienneté totale prise en compte pour le calcul de la prime    :   " + Mois
call rem( Memo )

tauxs = 0
if Mois >= 36 then    tauxs = 4
if Mois >= 72 then    tauxs = 7
if Mois >= 108 then    tauxs = 10
if Mois >= 144 then    tauxs = 13
if Mois >= 180 then    tauxs = 16
if Mois >= 216 then    tauxs = 18
if Mois >= 240 then    tauxs = 20

If BANCSAISIE <> 0 Then
    BB = BANCSAISIE
    If BB = -1 Then Tauxs = 0
EndIf

If ForceTauxS <> 0 Then TauxS = ForceTauxS

If Tauxs > 0 And BB <> 0 Then
    Bases = BB
    Exec ("GenereLprime")
    x = Bases * tauxs / 100
    call stockevar("PANC", x )
EndIF 

end

0 commentaires

Soyez le premier à répondre!

Commenter


Gestion des cookies

Nous utilisons des cookies pour améliorer et personnaliser votre expérience. Si vous acceptez ou continuez de naviguer, vous acceptez règles relatives aux cookies. En savoir plus sur nos cookies

 
Paramètres de cookies