Skip to main content

Bonjour,

 

Je débute sur Silae et je cherche à créer une prime ancienneté pour l’ensemble du personnel (cadre et non cadre).

 

En suivant des instructions trouvées sur la communauté, j’ai créé le libellé D01 ; qui déclenche bien une prime pour les non cadres.

 

Comment dois-je paramétrer ce libellé pour que la prime se déclenche également sur les cadres svp ?

 

Aussi, existe-t-il un guide ou une procédure qui pourrait me guider dans la création d’autres futures primes ?

 

Merci beaucoup pour votre aide !

Bonjour

Pouvez vous fournir le détail du code que vous avez défni


Bonjour,

 

Voici les éléments :

 

et le calcul :

Begin

ForceTauxS = 0
Include("DOMONLY_INIT-D01")

//    Prime ancienneté basée sur le salaire minimum niveau 1 prorata temporis

If Ste.BaseCalculAnciennete = 1 Then
    Bases = Bul.SalaireDeBase
    //    Affecte le taux horaire des absences
    Call AffecteLibellePrimeEnCours_InclusCalcMajorationTxHAbs(True)
Else
    x = Bul.NbhmN + CumulStockVarAbs(Bul.Periode,Bul.Periode,"CALABSH_98") + CumulStockVarAbs(Bul.Periode,Bul.Periode,"CALABSH_99")
    ii = 0
    Memo1 = ""
    Do
        ii = ii + 1
        Select Case ii
        Case 1:
            Code = "02"
        Case 2:
            Code = "03"
        Case 3:
            Code = "04"
        Case 4:
            Code = "08"
        Case 5:
            Code = "09"
        Case 6:
            Code = "11"
        Default:
            Code = ""
            Exit
        EndSelect
        If Code <> "" Then
            NbH = StockVarAbs("CALABSH_" + Code)
            If NbH <> 0.0 Then
                Maint = StockVarAbs("MAINTIENS_" + Code)
                Ret = StockVarAbs("RETENUES_" + Code)
                Prorata = Maint / Ret
                Prorata = Round(Prorata,4)
                If Prorata > 1 Then Prorata = 1
                If Prorata > 0 Then
                    Memo1 = Memo1 + CHR(10) + "--- Code absence : " + Code + CHR(10)
                    Memo1 = Memo1 + "Nombre d'heure : " + NbH + CHR(10)
                    Memo1 = Memo1 + "Retenu : " + Ret + CHR(10)
                    Memo1 = Memo1 + "Maintien : " + Maint + CHR(10)
                    Memo1 = Memo1 + "Prorata (plafonné à 1) : " + Prorata + " = " + Maint + " / " + Ret + CHR(10)
                    z = NbH * Prorata
                    z = Round(z,2)
                    x = x + z
                    Memo1 = Memo1 + "Réintegration heures : " + z + " = " + NbH + " * " + Prorata
                EndIf
            EndIf
        EndIf
    Loop
    If x > 151.67 Then x = 151.67
    // HAN 30/10/18, Dans SalMinConv en cas d'évolution automatique, rechercher le salminconv.m tien compte de l'évolution. Donc prend la classif C055.03.1.001 qui n'a pas d'évolution.
    //Bases = SalMinConv.M("C055.01.1.001") * x / 151.67
    //Memo = "Base : " + Round(SalMinConv.M("C055.01.1.001"),4) + " (SMC Niv. 1) * " + x + " h / 151.67 h = " + Round(Bases,2)
    Bases = SalMinConv.M("C055.03.1.001") * x / 151.67
    Memo = "Base : " + Round(SalMinConv.M("C055.03.1.001"),4) + " (SMC Niv. 1) * " + x + " h / 151.67 h = " + Round(Bases,2)
    Call Rem(Memo)
    If Memo1 <> "" Then Call Rem(Memo1)
EndIf

Mois = Emp.Anciennete
Tauxs = 0

If Sal.S41.G01.00.015.002 <> "01" then
    //    Non cadres
    If Emp.Anciennete >= 36 then    Tauxs = 3
    If Emp.Anciennete >= 72 then    Tauxs = 6
    If Emp.Anciennete >= 108 then    Tauxs = 9
    If Emp.Anciennete >= 144 then    Tauxs = 12
    If Emp.Anciennete >= 180 then    Tauxs = 15
Endif

If ForceTauxS <> 0 Then TauxS = ForceTauxS

If Tauxs > 0 and Bases <> 0 then
    MethodeCalcul = 1
    X = Bases * Tauxs / 100
    Call Stockevar("PANC", X )
    Exec("GenereLprime")
EndIf

Include("DOMONLY_FIN-D01")

End

 


Bonjour, quelle est votre CCN? si la CCN le prévoit, il faut impérativement mettre le coefficient, l’échelon et toute info concernant la CCN pour que cette prime se déclenche normalement.

que ce soit cadre ou non cadre ce serait la D01.


Bonjour, 

 

La CCN ne prévoit pas cette prime pour les cadres.

 

Merci pour votre aide !


C’est cette ligne qui exclut les cadres

If Sal.S41.G01.00.015.002 <> "01" then


Bonjour Philippe,

 

Merci beaucoup pour votre aide.

Cette ligne exclut donc les cadres, mais que dois-je faire pour les inclure ? 

Si je supprime la ligne, la prime va-t-elle se déclencher pour tout le monde ? Ou dois-je la modifier, et dans ce cas que dois-je inscrire ?

 

 


Vous pouvez supprimer la ligne et celle avec le Endif. Mais il est plus judicieux de voir une des 2 solutions en dessous au cas ou vous devriez revenir en arrière.

2 solutions

soit le 01 mettre une valeur qui n’existe pas (par exemple 999) de ce fait la condition est toujours vrai

soit mettre cette ligne en commentaire avec // ainsi que la ligne Endif 7 lignes plus bas.

 


J’ai testé la première solution :

 

If Sal.S41.G01.00.015.002 <> "999" then
    If Emp.Anciennete >= 36 then    Tauxs = 3
    If Emp.Anciennete >= 72 then    Tauxs = 6
    If Emp.Anciennete >= 108 then    Tauxs = 9
    If Emp.Anciennete >= 144 then    Tauxs = 12
    If Emp.Anciennete >= 180 then    Tauxs = 15
Endif
 

La prime se déclenche sur le non cadre, mais toujours pas sur le cadre.

 

Par contre, je ne comprends pas la deuxième solution que vous proposez 

“soit mettre cette ligne en commentaire avec // ainsi que la ligne Endif 7 lignes plus bas.”


Pour moi ce que vous avez fait est correct.

Il semble donc que le problème ne vient pas du taux mais de la base de calcul.

Quelle base cherchez vous à obtenir


La base est la même que pour les non cadres, le SMC


Commenter