Skip to main content

Bonjour à tous,

Je paramètre une prime proratisée en fonction des absence en jours ouvrés du mois précédent (Nombre de jours d’absence M-1/Nombre jours ouvrés pour le salarié M-1). 

Pour le calcul du nombre d’absences pas de soucis de paramétrage, mais je n’arrive pas à récupérer le nombre de jours ouvrés du salarié sur M-1.

quelqu’un aurait-il une solution à me proposer ?

Aurèlie, 

 

Il faudrait pour cela stocker chaque mois votre variable de jours ouvrés puis ajouter un cumulstockvar pour le mois suivant de cette manière :
 
x = Bul.NbjOuvres

datedeb = DateAddMonths( bul.periode, -1)
datefin = DateAddDays( bul.periode,-1 )
 
Call stockevar("x",x)
xx = cumulstockvar(datedeb,datefin,"x")

Vous avez également un stockvar par défaut de Silae qui pourrait convenir : NBJREELS_JO

Vous pouvez l’utilisé avec la fonction CumulStockvar

Rachid


Merci Beaucoup Rachid, 

ca fonctionne!

Aurélie


Bonjour,

J’ai besoin de paramétrer une prime 5 € par jour travaillé du mois précédent.

Je pense que cela rejoint ce que vous avez fait mais je n’arrive pas du tout à dupliquer votre paramétrage.

Pourriez vous m’aider svp?

Merci


Bonjour,

Voici un extrait de ce que j’ai fait pour que ça fonctionne :

//Jours ouvrés travaillés par le salarié M-1

Nbjouvrés = BUL.NBJTRAVAILLESTHEORIQUE

Call stockevar("Nbjouvrés",Nbjouvrés)

datedeb = DateAddMonths( bul.periode, -1)

datefin = DateAddDays( bul.periode, -1)

Joursouvrés = cumulstockvar(datedeb,datefin,"Nbjouvrés")

// Abs M-1 régularisées sur M

Reg = Bul.NbPaniers - Bul.NbjTravailles

// Déduction absence y compris CP M-1 (pour cette partie là, il doit y avoir mieux à faire mais comme ça , ça fonctionne)

            If bul.mois = 1 then Abs = CalculeDureeAbsences(date(1,12,bul.Annee-1),date(31,12,bul.Annee-1),"", 1)

            If bul.mois = 2 then Abs = CalculeDureeAbsences(date(1,1,bul.Annee),date(31,1,bul.Annee),"", 1)

            If bul.mois = 3 then Abs = CalculeDureeAbsences(date(1,2,Bul.Annee),date(28,2,Bul.Annee),"", 1)

            If bul.mois = 4 then Abs = CalculeDureeAbsences(date(1,3,bul.Annee),date(31,3,Bul.Annee),"", 1)

            If bul.mois = 5 then Abs = CalculeDureeAbsences(date(1,4,Bul.Annee),date(30,4,bul.Annee),"", 1)

            If bul.mois = 6 then Abs = CalculeDureeAbsences(date(1,5,Bul.Annee),date(31,5,Bul.Annee),"", 1)

            If bul.mois = 7 then Abs = CalculeDureeAbsences(date(1,6,Bul.Annee),date(30,6,Bul.Annee),"", 1)

            If bul.mois = 8 then Abs = CalculeDureeAbsences(date(1,7,Bul.Annee),date(31,7,Bul.Annee),"", 1)

            If bul.mois = 9 then Abs = CalculeDureeAbsences(date(1,8,Bul.Annee),date(31,8,Bul.Annee),"", 1)

            If bul.mois = 10 then Abs = CalculeDureeAbsences(date(1,9,Bul.Annee),date(30,9,Bul.Annee),"", 1)

            If bul.mois = 11 then Abs = CalculeDureeAbsences(date(1,10,Bul.Annee),date(31,10,Bul.Annee),"", 1)

            If bul.mois = 12 then Abs =

CalculeDureeAbsences(date(1,11,Bul.Annee),date(30,11,Bul.Annee),"", 1)

MethodeCalcul = 3

Bases = 5

Tauxs = Joursouvrés-abs+Reg

Exec ("GenereLprime")
 

Sur le premier mois d’application de votre paramétrage, vous serez obligé de faire une gestion manuelle de votre prime (la variable n’étant pas stockée sur le mois précédent)

J’espère vous avoir aidé.

Aurélie


Super merci .

 

Finalement je me suis contenté de :

Begin

Nbjouvrés = BUL.NBJTRAVAILLES
Call stockevar("Nbjouvrés",Nbjouvrés)
datedeb = DateAddMonths( bul.periode, -1)
datefin = DateAddDays( bul.periode, -1)
Joursouvrés = cumulstockvar(datedeb,datefin,"Nbjouvrés")


Exec("Lprime_D02.CP")
methodeCalcul = 2
Bases = Joursouvrés
Tauxs = 5
Liblong = "Indemnité journalière PM-G"
Exec ("GenereLprime")
 
end
 

et j’obtiens ce que je veux.


Commenter