Skip to main content

Calcul du nombre de jours ouvrés d'absence


Bonjour,

Je dois proratisé l’acquisition des RTT en fonction des absences sauf codes absence 95, 12, 15, 90,91,92,93 et 97.

Voici ce que j’ai écris :

    CumNbJAbs = 0 
    CumNbJAbs = NbJCalendairesAbsences(Bul.Periode, Bul.Date, "09+15+19+45+44+24+08+26+04+11+20+10+64+05+06+01+13+14+52+33+32+63+65+07+03+02+22+23+27+94+38+96+98+72+70+71+79+96+54+16+88+69+17+98+99+21+62+88+86+87+80+81+25+31+79+39")    
    //Sauf 95-Evénement familial, 12-congés payés, 15-férié chomé, 90-RTT, 91-92-93-Repos compensateur, 97-Représentation des salariés

    If CumNbJAbs >= 2 And CumNbJAbs < 10 Then Call AjouteRTTAcquis ( -0.5 )
    If CumNbJAbs >= 10 Then Call AjouteRTTAcquis ( -1 )

    // --- Si le salarié est entré ce mois ----

    // Entré ce mois : 0.5 JRTT jusqu'au 14 du mois
    // Aucun RTT si entré à partir du 15

    If Bul.EntreCeMois = True Then
        MonJour = DateDay(Sal.DateEntree) 
        MonMois = DateMonth(Sal.DateEntree) 
 
        If MonJour > 14 Then 
            Call AjouteRTTAcquis ( - Bul.RTTJOURSACQUIS + 12 - Bul.Mois )
        Else
            Call AjouteRTTAcquis ( - Bul.RTTJOURSACQUIS + 12 - Bul.Mois +0.5 )
        EndIf
    EndIf
 

Cela fonctionne bien si ce n’est que je souhaite n’enlevé que les jours ouvrés notamment en ce qui concerne les arrêts de travail qui sont actuellement enlevés en calendaire.

Comment puis-je faire ?

Merci pour votre aide

7 commentaires

Yenaa
Formateur certifié
Forum|alt.badge.img+3
  • Formateur certifié
  • April 13, 2025

Bonjour,

Avez-vous essayé avec: 

ChatGPT - Silae- Mentor Codage (Scriptae)


  • Auteur
  • Nouveau
  • April 14, 2025

Bonjour,

C’est parfait, j’ai trouvé ce que je cherchais.

Merci pour le tuyau.

Bonne journée.


  • Auteur
  • Nouveau
  • April 14, 2025

Après tests, ce que ChatGPT me propose ne fonctionne pas. 

Il invente des fonctions qui visiblement n’existe pas.

Il me propose NBJABSENCES ou encore NBJOURSOUVRESABSENCES qui génèrent des messages d’erreurs “Erreur de compilation du profil de primes NONNATURAL ligne 38 : ECHEC_FUNCTIONINCONNUE”

Donc ma question reste entière :

Je dois proratisé l’acquisition des RTT en fonction des absences sauf codes absence 95, 12, 15, 90,91,92,93 et 97.

Voici ce que j’ai écris :

    CumNbJAbs = 0 
    CumNbJAbs = NbJCalendairesAbsences(Bul.Periode, Bul.Date, "09+15+19+45+44+24+08+26+04+11+20+10+64+05+06+01+13+14+52+33+32+63+65+07+03+02+22+23+27+94+38+96+98+72+70+71+79+96+54+16+88+69+17+98+99+21+62+88+86+87+80+81+25+31+79+39")    
    //Sauf 95-Evénement familial, 12-congés payés, 15-férié chomé, 90-RTT, 91-92-93-Repos compensateur, 97-Représentation des salariés

    If CumNbJAbs >= 2 And CumNbJAbs < 10 Then Call AjouteRTTAcquis ( -0.5 )
    If CumNbJAbs >= 10 Then Call AjouteRTTAcquis ( -1 )

    // --- Si le salarié est entré ce mois ----

    // Entré ce mois : 0.5 JRTT jusqu'au 14 du mois
    // Aucun RTT si entré à partir du 15

    If Bul.EntreCeMois = True Then
        MonJour = DateDay(Sal.DateEntree) 
        MonMois = DateMonth(Sal.DateEntree) 
 
        If MonJour > 14 Then 
            Call AjouteRTTAcquis ( - Bul.RTTJOURSACQUIS + 12 - Bul.Mois )
        Else
            Call AjouteRTTAcquis ( - Bul.RTTJOURSACQUIS + 12 - Bul.Mois +0.5 )
        EndIf
    EndIf
 

Cela fonctionne bien si ce n’est que je souhaite n’enlevé que les jours ouvrés notamment en ce qui concerne les arrêts de travail qui sont actuellement enlevés en calendaire.

Comment puis-je faire ?

 


Forum|alt.badge.img+3

Bonjour,

Je me heurte au même problème.

Avez vous trouvé une solution?

 

@Anthony Petit 

existe-t-il une fonction équivalente à NbJCalendairesAbsences(DtDeb, DtFin, "09+11") pour les jours ouvrés.

j’ai bien pensé au stockvar mais ma période n’est pas sur des mois complets.

 

merci d’avance de votre aide

 

Bonne journée


  • Auteur
  • Nouveau
  • May 21, 2025

Bonjour,

 

Je n’ai malheureusement pas de réponse à mon ticket.

Bonne journée


Anthony Petit
Community Manager
Forum|alt.badge.img+3
  • Community Manager
  • May 21, 2025

Bonjour Hervé

Apres rechzerche d'informations, vous pouvez partir sur les cumuls de stockvar en définissant les dates à prendre en compte en amont et en utisant ça : CumulStockVarAbs(DTDEB,DTFIN,"CALABSJO_09")+CumulStockVarAbs(DTDEB,DTFIN,"CALABSJO_11")

En espérant que cela pourra vous aider 


Forum|alt.badge.img+3

Bonjour Anthony

 

Merci beaucoup!

Très bonne journée à vous