Bonjour,
Je débute dans Windev et j'essaie d'écrire une "règle" qui automatiserait l'acquisition de CP (congés payés), sauf que j'ai trois entités différentes (du même Groupe) avec un nombre de jours mensuels de CP acquis différents, selon des cas spécifiques.
J'ai écrit une règle Windev mais je pense que la syntaxe n'est pas bonne.
Sachant que ::ArgReg_N(1)=2.0833 ; ::ArgReg_N(2)=2,5 et ::ArgReg_N(1)=3 (ceux sont les CP acquis/mois pour 3 différentes sociétés du même Groupe/3 cas particuliers).
Mais ma règle ne foncitonne pas, dans tous les cas, cela me génère 2,0833 de CP/mois, mes conditions ne sont pas prises en compte. Je suis quasi sûr que ma syntaxe n'est pas bonne !!!
Merci d'avance pour votre aide; si vous pouviez m'aider à corriger ce qui ne va pas ! MERCI
Voici ma règle:
Code:iNbJourOuvrMois, iNbJourOuvreDuSalarie est un entier //Stockage nbre jours ouvrés du mois iNbJourOuvrMois=::NombreJoursEntre2Dates(::InfoDate(4),::InfoDate(5),1,"1") //Calcul acquisition mensuelle fin de mois ou date sortie (::Date() filtrée dans la condition générique de la règle) //Formule=Acq. mens.*[nbre jrs ouvrés contrat sur mois/(nbre jrs ouvrés mois-absences ouvrées)/nbre jrs ouvrés mois] //L'acquisition de base mensuelle est renseignée dans ::ArgReg_N([1] iNbJourOuvreDuSalarie = ::NombreJoursEntre2Dates(Max(::InfoDate(4),::DateEntrée()),::Date(),1,"1") //Deduction des jours d'absences de la période iNbJourOuvreDuSalarie -= ::Compteur("ABS_N_CP","C") //Permet la prise en compte un prorata de date entrée/date sortie sur mois et abences sur mois, tout en base jrs ouvrés SI iNbJourOuvrMois>0 ET ::InfoContrat (18)=102 OU ::InfoContrat (18)=103 ou ::InfoSalarie(20)="SOP"... ALORS ou ::InfoSalarie(20)="SOD" ::VarExec=::ArgReg_N(1) * (iNbJourOuvreDuSalarie / iNbJourOuvrMois) RENVOYER(::VarExec>0) FIN SI iNbJourOuvrMois > 0 et ::InfoSalarie(20)="AIR" ou ::InfoSalarie(20)="AIW" ALORS ::VarExec=::ArgReg_N(2)*(iNbJourOuvreDuSalarie/iNbJourOuvrMois) RENVOYER(::VarExec>0) FIN SI iNbJourOuvrMois > 0 et ::InfoContrat (18)=102 ou ::InfoContrat (18)=103 ALORS ::VarExec=::ArgReg_N(3)*(iNbJourOuvreDuSalarie/iNbJourOuvrMois) FIN RENVOYER(::VarExec>0)
-----