Solution pour calcul duree conges en java script et asp

Contenu du snippet

code source pour calcul duree conge avec prise en compte des week-end et des jours ferries ( les jours ferries sont pris en parametre a partir d'une table acces et une connection asp )

Source / Exemple :


jd=document.user.jdebut.value;
md=document.user.mdebut.value;
ad=document.user.adebut.value;
jf=document.user.jfin.value;
mf=document.user.mfin.value;
af=document.user.afin.value;
hd=document.user.temp_debut.value;
hf=document.user.temp_fin.value;
jd=jd-1;
md=md-1;
jf=jf-1;
mf=mf-1;

<% reqferrie="select * from FERRIES"
set rsferrie=conn.execute(reqferrie)%>
okf=true;
date_debut=new Date(ad,md,jd);
date_debut_seconde=date_debut.getTime();
date_fin=new Date(af,mf,jf);
date_fin_seconde=date_fin.getTime();
if ((date_fin.getDay()+1==6)||(date_fin.getDay()+1==7)||(date_debut.getDay()+1==6)||(date_fin.getDay()+1==7))
{
alert("oh c'est le week-end");
document.user.total_cong.value="";
}
else
{
resu=date_fin_seconde-date_debut_seconde;
x=24*3600*1000;
resu=resu/x;
c=resu/7;
nbrsem=(Math.round(c*100))/100; 
alert(nbrsem);

entiere=Math.round(nbrsem)+0.60;
if ((nbrsem < entiere)&&(nbrsem != Math.round(nbrsem)+0.00))
{
reste=(resu%7)/7;
reste=(Math.round(reste*100))/100;
nbrsem=nbrsem-reste;
alert(nbrsem);
}
 
nbrsem=Math.round(nbrsem);

if (nbrsem > 0) 
{week=nbrsem*2;
totalcong=resu-week;

}
else
  {
  j=5;
  ok=false;
  for (i=1;i<6;i++)
  {
     if ((date_debut.getDay()+1==i)&&(resu > j))
       {totalcong=resu-2;
        ok=true;
       }j=j-1;
  }

if (ok==false)
    {
	totalcong=resu;}
    }
alert(totalcong);
total_heure=totalcong*8;

<%rsferrie.movefirst
while (not rsferrie.eof)%>
jferrie=new Date(<%=rsferrie("ANNEE_FERRIE")%>,<%=rsferrie("MOIS_FERRIE")%>-1,<%=rsferrie("JOUR_FERRIE")%>-1);
    jferrietime=jferrie.getTime();
  if ((jferrietime==date_fin_seconde)||(jferrietime==date_debut_seconde))
  {
  alert("oh jour ferrier");
  okf=false;
  }
  else
  { if ((jferrietime >= date_debut_seconde)&&(jferrietime<date_fin))
      {total_heure=total_heure-8;
	  alert("erreur");
	  <%rsferrie.movenext%>
	  }
  }
<%wend%>
if (okf==true)
{
hd=hd-8;
hf=hf-8;
total_heure=total_heure-hd+hf;
document.user.total_cong.value=total_heure;
}
else
document.user.total_cong.value="";
}

Conclusion :


ce code sera mis à jour dans une semaine pour pouvoir prendre le resultat de la requete et de le mettre dans un tableau java script

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.