<?
include("fonctions_edt.php3");
include("../BarreDeMenu.php3");
include("../date.php3");
include("../Session/security.php");
// Entete
buildHeader("Emploi du temps groupe",true);
// Verification de la session
$autorisation_list[0]=0; // Administrateur
$autorisation_list[1]=1; // Professeur
$autorisation_list[2]=2; // Etudiant
$autorisation_list[3]=3; // Gestionnaire
$user_type = validateSession($id_session);
if ($user_type == -1 || !security($id_session,$autorisation_list)) print("Accès refusé");
else
{
// Barre de menu
buildMenuBar($id_session,$user_type,"index.php3",false);
// Ouverture de la connexion avec la base de donnees
$connection = openConnection($databaseName);
// *************** DECLARATION DES CONSTANTES **************
$first_time = "08:00:00";
$last_time = "20:00:00";
$first_time2 = 8;
$last_time2 = 20;
$jour_de_la_semaine = array("Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi","Dimanche");
// *************** VERIFICATION DES DONNEES ***************
$request = "SELECT groupe.nom, promotion.libelle, diplome.libelle FROM associer, groupe, promotion, diplome WHERE groupe.id_groupe = $id_groupe AND associer.id_groupe = $id_groupe AND promotion.id_promotion = associer.id_promotion AND promotion.id_diplome = diplome.id_diplome";
$result = mysql_query($request);
// *************** AUCUN ETUDIANT NE CORRESPOND AUX CRITERES DU FORMULAIRE ***************
if (mysql_num_rows($result) == 0)
print("<H3>Aucun étudiant ne correspond à ces critères</H3>\n");
// *************** LE GROUPE EXISTE ***************
else
{
$un_groupe = mysql_fetch_row($result);
// Bouton pour acceder a l'emploi du temps de la semaine suivante et precedente + Titre
print("<FORM name=form1 ACTION=\"EmploiGroupe.php3\">\n");
print(" <input type=\"hidden\" name=\"login\" value=\"$login\">\n");
print(" <input type=\"hidden\" name=\"id_session\" value=\"$id_session\">\n");
print(" <input type=\"hidden\" name=\"user_type\" value=\"$user_type\">\n");
print(" <input type=\"hidden\" name=\"user_id\" value=\"$user_id\">\n");
print(" <input type=\"hidden\" name=\"display\" value=\"$display\">\n");
print(" <input type=\"hidden\" name=\"ma_semaine\">\n");
print(" <input type=\"hidden\" name=\"id_groupe\" value=$id_groupe>\n");
print(" <input type=\"hidden\" name=\"id_promotion\" value=$id_promotion>\n");
print(" <table border=0 cellspacing=1 cellpading=0 align=center>\n");
print(" <tr valign=middle align=center>\n");
print(" <td width=40><input type=\"image\" border=0 src=\"../img/PreviousButton.gif\" alt=\"Précédent\" OnClick=\"ma_semaine.value=".($ma_semaine==1?52:$ma_semaine-1)."; submit();\"></td>\n");
print(" <td valign=middle><H3>$un_groupe[2] $un_groupe[1] - $un_groupe[0] - Semaine $ma_semaine</H3></td>\n");
print(" <td width=40><input type=\"image\" border=0 src=\"../img/NextButton.gif\" alt=\"Suivant\" OnClick=\"ma_semaine.value=".($ma_semaine==52?1:$ma_semaine+1)."; submit();\"></td>\n");
print(" </tr>\n");
print(" </table>\n");
print("</FORM>\n");
// *************** ASSOCIATION D'UNE COULEUR A CHAQUE MATIERE ***************
$request = "SELECT DISTINCT(matiere.id_matiere),matiere.nom
FROM matiere,suiviparpromotion
WHERE
suiviparpromotion.id_promotion = $id_promotion
AND matiere.id_matiere = suiviparpromotion.id_matiere
UNION
SELECT DISTINCT(matiere.id_matiere),matiere.nom
FROM matiere,suivipargroupe
WHERE suivipargroupe.id_groupe = $id_groupe
AND matiere.id_matiere = suivipargroupe.id_matiere
ORDER BY matiere.nom";
$result = mysql_query($request);
$color = array("00","66","99","FF");
$color_number = count($color);
$red=0;$blue=0;$green=0;
while ($une_matiere = mysql_fetch_row($result) )
{
$couleur_matiere[$une_matiere[0]] = $color[$red].$color[$green].$color[$blue];
if ($blue < $color_number - 1) $blue++;
else {
if ($green < $color_number - 1 ) {
$green++;
$blue = 0;
}
else {
if ($red < $color_number - 1) {
$red++;
$blue = 0;
$green = 0;
}
}
}
}
// *************** INFORMATION SUR LA DATE ***************
$sem_actu = weekToDay($ma_semaine,$connection);
// *************** DEBUT DE L'EMPLOI DU TEMPS ***************
print("<TABLE ALIGN=\"center\" CELLSPACING=\"0\" class=\"emploi\">\n");
// *************** INSERTION DE LA BARRE DES HEURES DU DEBUT ***************
barre_des_heures($first_time2,$last_time2,7.0);
barre_du_bas($first_time2,$last_time2,5.0);
// *************** PARCOURS DES DIFFERENTS JOURS DE LA SEMAINE ***************
for ($index = 0;$index < 6;$index++)
{
// *************** INSERTION DE LA BARRE DES HEURES INTERMEDIAIRE ***************
if ($index == 2 || $index == 4)
{
barre_du_haut($first_time2,$last_time2,5.0);
barre_des_heures($first_time2,$last_time2,7.0);
barre_du_bas($first_time2,$last_time2,5.0);
}
// *************** MISE A JOUR DE LA FIN DU COURS PRECEDENT ***************
$fin_cours_precedent = $first_time;
// *************** INSERTION DES INFORMATIONS DANS LA PREMIERE CELLULE ***************
$premier = mysql_query("SELECT FROM_DAYS($sem_actu)",$connection);
$result_prem = mysql_fetch_row($premier);
$essai = transformation_date($sem_actu);
print("<TR ALIGN=\"CENTER\" class=\"emploi\"");
print("<TD COLSPAN=\"2\" class=\"joursemaine\"><B>\n");
print("$jour_de_la_semaine[$index] $essai");
print("</B></TD>\n");
// *************** REQUETE SUR LA BASE ***************
$request = "SELECT distinct(p.id_planifie), p.jour_semaine, p.heure_debut, p.heure_fin, p.id_matiere, m.nom, t.type, p.id_professeur, p.id_salle
FROM planifie p, planifiegroupe pg, matiere m, typeseance t
WHERE
p.jour_semaine = ".($index+1)." AND p.semaine = $ma_semaine
AND pg.id_groupe = $id_groupe
AND p.id_planifie = pg.id_planifie
AND m.id_matiere = p.id_matiere
AND t.id_type_seance = p.id_type_seance
UNION
SELECT distinct(p.id_planifie), p.jour_semaine, p.heure_debut, p.heure_fin, p.id_matiere, m.nom, t.type, p.id_professeur, p.id_salle
FROM planifie p, planifiepromotion pp, matiere m, typeseance t
WHERE
p.jour_semaine = ".($index+1)." AND p.semaine = $ma_semaine
AND pp.id_promotion = $id_promotion AND p.id_planifie = pp.id_planifie
AND m.id_matiere = p.id_matiere
AND t.id_type_seance = p.id_type_seance
ORDER BY p.heure_debut";
$result = mysql_query($request);
// Nombre de cours programmes dans la journee
$nb = mysql_num_rows($result);
// Y a-t-il des cours de programmer dans la journee ?
if ($nb == 0)
{
$found = false;
$requete_jours_feries = mysql_query("SELECT * FROM vacances",$connection);
// *************** ON PARCOURT LA LISTE DES JOURS FERIES ***************
while($un_jour = mysql_fetch_row($requete_jours_feries))
{
$req_jour_debut=mysql_query("SELECT to_days(\"$un_jour[1]\")");
$req_jour_fin=mysql_query("SELECT to_days(\"$un_jour[2]\")");
$trans1=mysql_fetch_row($req_jour_debut);
$trans2=mysql_fetch_row($req_jour_fin);
if($sem_actu>=$trans1[0] && $sem_actu<=$trans2[0])
{
print("<TD COLSPAN=\"48\" class=\"edtvacances\">VACANCES</TD>");
$found = true;
break;
}
}
// *************** CE N'EST PAS UN JOUR FERIE ***************
if ($found) print("<TD ALIGN=\"CENTER\" COLSPAN=\"48\"></td>");
}
// *************** IL Y A AU MOINS UN COURS ***************
else
{
$fin_cours_precedent = $first_time;
// *************** PARCOURS DE LA LISTE DES COURS ***************
while ($un_cours = mysql_fetch_row($result))
{
// *************** HEURE ET MINUTE DU DEBUT DU PROCHAIN COURS ***************
$h = explode(":",$un_cours[2]);
$debut_cours_heure = $h[0];
$debut_cours_minute = $h[1];
// *************** HEURE ET MINUTE DE LA FIN DU PROCHAIN COURS ***************
$h = explode(":",$un_cours[3]);
$fin_cours_heure=$h[0];
$fin_cours_minute=$h[1];
// *************** HEURE ET MINUTE DE LA FIN DU COURS PRECEDENT ***************
$h = explode(":",$fin_cours_precedent);
$fin_cours_precedent_heure = $h[0];
$fin_cours_precedent_minute = $h[1];
// *************** MISE A JOUR DE LA FIN DU COURS PRECEDENT ***************
$fin_cours_precedent = $un_cours[3];
// *************** LE PROCHAIN COURS NE COINCIDE PAS AVEC LA FIN DU PRECEDENT ***************
if ($debut_cours_heure != $fin_cours_precedent_heure || $debut_cours_minute != $fin_cours_precedent_minute)
{
$intervalle_heure = $debut_cours_heure - $fin_cours_precedent_heure;
$intervalle_minute = $debut_cours_minute - $fin_cours_precedent_minute;
$taille_cellule_vide = $intervalle_heure*4 + $intervalle_minute / 15;
print("<TD COLSPAN=\"$taille_cellule_vide\"> </TD>\n");
}
// *************** DETERMINATION DE LA TAILLE DE LA CELLULE DU COURS ***************
$taille_cellule = ($fin_cours_heure-$debut_cours_heure)*4+($fin_cours_minute-$debut_cours_minute)/60*4;
// *************** DETERMINATION DE LA COULEUR DE LA MATIERE ***************
$color = $couleur_matiere[$un_cours[4]];
// *************** INSCRIPTION DES INFORMATIONS DU COURS DANS LA CELLULE ***************
if ($un_cours[6] == "Examen") print("<TD COLSPAN=\"$taille_cellule\" class=\"examen\">");
else
{
print("<TD COLSPAN=\"$taille_cellule\" class=\"matiere\" style=\"border-color: #$color;\">");
}
print("$un_cours[5] - $un_cours[6]");
// Un professeur est associe a ce cours
if ($un_cours[7] != -1)
{
$request = "SELECT initiales FROM professeur WHERE id_professeur = ".$un_cours[7];
$result_professeur = mysql_query($request,$connection);
$un_prof = mysql_fetch_row($result_professeur);
print("<BR>$un_prof[0]");
}
// Une salle est associee a ce cours
if ($un_cours[8] != -1)
{
$request = "SELECT numero FROM salle WHERE id_salle = ".$un_cours[8];
$result_salle = mysql_query($request,$connection);
$une_salle = mysql_fetch_row($result_salle);
print("<BR>$une_salle[0]");
}
print("</TD>\n");
}
}
// *************** ON PASSE AU JOUR SUIVANT ***************
$sem_actu++;
print("</TR>\n");
}
// *************** INSERTION DE LA BARRE DES HEURES DE LA FIN ***************
barre_du_haut($first_time2,$last_time2,5.0);
barre_des_heures($first_time2,$last_time2,7.0);
}
print("</TABLE>\n");
}
buildEndOfPage();
?>