Location: PHPKode > projects > EmploiNet : a timetable web manager > EmploiNet/v0.8.0/edt/ModifRapide/modifie_bis1.php3
<?
// Conversion du format hh:mm en hh.mm
   function convertHeure($h)
		{
			$h1 = explode(":",$h);
			$x = 0.0 + $h1[0];
			$y = 0.0 + $h1[1];
			if($y==15) 
				$x+=0.25;
			else if($y==30) 
				$x+=0.5;
			else if($y==45) 
				$x+=0.75;
			else $x+=0;
			return $x;
		}
// Formate l'heure au format hh:mm a partir du format hh.mm
   function formateHeure($h)
		{
			$ecart=$h-floor($h);
			if($ecart==0.25) 
				$min=15;
			else if($ecart==0.5) 
				$min=30;
			else if($ecart==0.75) 
				$min=45;
			else $min=0;
			return date("H:i:s",mktime(floor($h),$min,0,1,1,2000));
		}

// Fonctions permettant de vérifier si le professeur assure effectivement cette matiere dans ce type de cours

   function validite_matiere_type_prof($id_mat,$id_type,$id_prof)
   {
	   	if($id_prof==-1)
			return 1;
      	$requete="SELECT * 
				  FROM assurer 
				  WHERE id_professeur=$id_prof 
				    AND id_matiere=$id_mat 
					AND id_type_seance=$id_type";
      	$result_final=mysql_query($requete);
      	$nb=mysql_num_rows($result_final);
        return($nb);
   }

// Fonction permettant de vérifier que la salle est libre   
   function salle_libre($id_salle,$heure_debut,$heure_fin,$id_planifie,$id_jour,$id_semaine)
   {
	   if($id_salle==-1)
		   return 0;
	   $request="SELECT distinct p.id_planifie 
				 FROM planifie p
      			 WHERE p.id_salle=$id_salle
      			   AND ((p.heure_debut>=\"$heure_debut\" AND p.heure_debut<\"$heure_fin\")
      					OR 
						(p.heure_fin<=\"$heure_fin\" AND p.heure_fin>\"$heure_debut\"))
       			   AND p.jour_semaine=$id_jour
      			   AND p.semaine=$id_semaine
      			   AND p.id_planifie!=$id_planifie";

      	$requete2=mysql_query($request);
      	$nb=mysql_num_rows($requete2);
     	return($nb);
   }

// Fonction permettant de verifier que la promotion n'a pas de cours prévu dans cet intervalle

   function creneau_libre($id_semaine,$id_jour,$id_planifie,$heure_debut,$heure_fin,$id_promo,$id_groupe)

   {

      	$requete1="SELECT distinct p.id_planifie

      				FROM planifie p, planifiepromotion pp, promotion pr, planifiegroupe pg, groupe g, associer a

      				WHERE p.semaine=$id_semaine

      				  AND p.jour_semaine=$id_jour

      				  AND p.id_planifie!=$id_planifie

      				  AND ((p.heure_debut>=\"$heure_debut\" AND p.heure_debut<\"$heure_fin\") 

      				  	   OR

      					   (p.heure_fin>\"$heure_debut\" AND p.heure_fin<=\"$heure_fin\"))

      				  AND ((pp.id_planifie=p.id_planifie AND pp.id_promotion=$id_promo)

      				       OR 

      					   (pg.id_planifie=p.id_planifie AND pg.id_groupe=g.id_groupe AND a.id_promotion=$id_promo";

		if($id_groupe==-1)

			$requete1=$requete1." AND a.id_groupe=g.id_groupe))";

		else

			$requete1=$requete1." AND a.id_groupe=$id_groupe))";

      	$result_requete1=mysql_query($requete1);

      	$nb=mysql_num_rows($result_requete1);

      	return($nb);

   }

   

// Fonction permettant de verifier que le professeur est libre

   function professeur_libre($heure_debut,$heure_fin,$id_prof,$id_planifie,$id_jour,$id_semaine)

   {

	   	if($id_prof==-1)

			return 0;

      	$requete="SELECT id_planifie

      			  FROM planifie

      			  WHERE id_professeur=$id_prof

      			  AND id_planifie!=$id_planifie

      			  AND jour_semaine=$id_jour

       			  AND semaine=$id_semaine

      			  AND ((heure_debut>=\"$heure_debut\" AND heure_debut<\"$heure_fin\") 

      				   OR

      				   (heure_fin>\"$heure_debut\" AND heure_fin<=\"$heure_fin\"))";

      	$result_requete=mysql_query($requete);

      	$nb=mysql_num_rows($result_requete);

      	return $nb;

   }

   

// Verifie que le quota d'heures est respecté pour la semaine

   function verifie_Planification($id_matiere,$id_type,$id_semaine,$id_planifie,$intervalle)

   {
		$request=mysql_query("SELECT r.nb_heures
				  				FROM reparti r
				  				WHERE r.id_type_seance=$id_type
				    			  AND r.id_matiere=$id_matiere
								  AND r.semaine=$id_semaine");
		$result=mysql_fetch_array($request);
		$request2="SELECT p.heure_debut,p.heure_fin
					FROM planifie p
					WHERE p.id_type_seance=$id_type
					  AND p.id_matiere=$id_matiere
					  AND p.semaine=$id_semaine
					  AND p.id_planifie!=$id_planifie";
		$result2=mysql_query($request2);
		$total=0;
		while($un_cours=mysql_fetch_array($result2))
		{
			$total=$total+convertHeure($un_cours[1])-convertHeure($un_cours[0]);
		}
		$total=$total+$intervalle;
		if($total<=$result[0])
			return 1;
		else
			return 0;
   }
?>
Return current item: EmploiNet : a timetable web manager