<?
include("../BarreDeMenu.php3");
include("../security.php");
// Entete
buildHeader("Gestion des notes");
// Verification de la session
$autorisation_list[0]=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,"gdn/gestionnaire.php3",false);
// Determination du id_user a l'aide du id_session
$user_id = getUserID($id_session);
// Ouverture de la connexion
$connection = openConnection($databaseName);
if (!isset($index)) $index=0;
//***********************************************************************************************
//* Fin de la barre de menu
//***********************************************************************************************
print("<form name=\"form1\" action=\"\" method=post>\n");
print(" <input type=\"hidden\" name=\"login\" value=\"$login\">\n");
print(" <input type=\"hidden\" name=\"choice\" value=\"$choice\">\n");
print(" <input type=\"hidden\" name=\"index\" value=$index>\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");
if($index>=3) print(" <input type=\"hidden\" name=\"matiere\" value=\"\">\n");
if($index>=3) print(" <input type=\"hidden\" name=\"nbre_mat\" value=\"-1\">\n");
if($index>=2) print(" <input type=\"hidden\" name=\"promo\" value=\"$promo\">\n");
if($index>=3) print(" <input type=\"hidden\" name=\"periode\" value=\"$periode\">\n");
// on recherche qui est le gestionnaire :
$result = mysql_query("SELECT id_gestionnaire, nom, prenom, email FROM gestionnaire WHERE id_gestionnaire=$user_id");
$tmp = mysql_fetch_row($result);
$id_gestionnaire = $tmp[0];
$nom_g = $tmp[1];
$prenom_g = $tmp[2];
$email_g = $tmp[3];
//***********************************************************************************************
//******** PREMIERE ETAPE : SELECTION DE LA PROMOTION ET DE LA PERIODE *********
//***********************************************************************************************
if($index<=2){
// liste des promotions que le gestionnaire gère
$result2 = mysql_query("SELECT P.id_promotion, P.sigle FROM promotion P, gerer G WHERE P.id_promotion=G.id_promotion AND G.id_gestionnaire=$id_gestionnaire");
print(" <table align=center border=0 cellspacing=0 cellpading=0 bgcolor=\"#C0C000\">\n");
print(" <tr>\n");
print(" <td>\n");
print(" <font size=3><i>Promotion : </i></font> \n");
print(" </td>\n");
print(" <td>\n");
print(" <SELECT tabindex=-1 NAME=\"promo\" onChange=\"index.value=2;submit();\"> \n");
if(!isset($promo)) print(" <OPTION SELECTED > </option> \n");
for($i=0;$i<mysql_num_rows($result2);$i++){
$temp = mysql_fetch_row($result2);
if(isset($promo) && $temp[0]==$promo)
print(" <OPTION SELECTED VALUE=$temp[0]> $temp[1] \n");
else
print(" <OPTION VALUE=$temp[0]> $temp[1] \n");
}
print(" </SELECT> \n");
print(" </td>\n");
print(" </tr>\n");
if($index==2){
// liste des périodes :
$result3 = mysql_query("SELECT id_periode, numero FROM periode WHERE id_promotion=$promo");
print(" <tr>\n");
print(" <td>\n");
print(" <font size=3><i>Période : </i></font> \n");
print(" </td>\n");
print(" <td>\n");
print(" <SELECT size=1 tabindex=-1 NAME=\"periode\" onChange=\"index.value=3;submit();\"> \n");
print(" <OPTION SELECTED > </option> \n");
for($i=0;$i<mysql_num_rows($result3);$i++){
$temp = mysql_fetch_row($result3);
print(" <OPTION VALUE=$temp[0]> $temp[1] \n");
}
print(" </SELECT> \n");
print(" </td>\n");
print(" </tr>\n");
}
print(" </table> \n");
}// fin index==1 ou 2
//***********************************************************************************************
//******** DEUXIEME ETAPE : VISUALISATION DE TOUTES LES MATIERES IMPLIQUEES *********
//***********************************************************************************************
if($index==3 || $index==4){
$calcul_bulletins = true;
// infos sur la promotion et sur la période :
$result2 = mysql_query("SELECT P.libelle, PE.numero, PE.numero_semaine_debut, nb_semaines, P.sigle FROM promotion P, periode PE WHERE P.id_promotion=$promo AND PE.id_promotion=$promo AND PE.id_periode=$periode");
$tmp = mysql_fetch_row($result2);
if($index==4){ // il faut avertir le(s) prof(s) pour qu'ils remplissent leurs moyennes
if($nbre_mat==-1){
// une seule matiere concernée :
$result__ = mysql_query("SELECT DISTINCT P.nom, P.prenom, P.email, M.nom FROM professeur P, assurer A, matiere M WHERE P.id_professeur=A.id_professeur AND A.id_matiere=M.id_matiere AND M.id_matiere=$matiere");
$nb = mysql_num_rows($result__);
for($j=0;$j<$nb;$j++){
$prof = mysql_fetch_row($result__);
$msg = " <b>Message</b> de " . $prenom_g . " " . $nom_g . ", gestionnaire de la promotion <b>" . $tmp[4] . "</b> à " . $prof[1] . " " . $prof[0] . "; <br>";
$msg .= " <b>Objet :</b> Les moyennes des etudiants en <b>" . $prof[3] . "</b>.<br><br>";
$msg .= " Merci de completer ces moyennes au plus vite afin que je puisse générer les bulletins. <br><br>";
$msg .= " Merci d'avance. <br> " . $prenom_g . " " . $nom_g . ".<br><br> " . $email_g;
//email(liste des parametres qu'il faut mettre);
print(" <font size=1>$prof[2] : <br>$msg</font> \n");
}
}else{
// ici on avertit tous les profs qui n'ont pas rentrés leurs moyennes
$nb = 0;
echo "$nbre_mat";
for($i=0;$i<$nbre_mat;$i++){
$matiere_ = "$" . "matiere_" . $i;
eval( "\$matiere_ = \"$matiere_\";" );
$result__ = mysql_query("SELECT DISTINCT P.nom, P.prenom, P.email, M.nom FROM professeur P, assurer A, matiere M WHERE P.id_professeur=A.id_professeur AND A.id_matiere=M.id_matiere AND M.id_matiere=$matiere_");
$nb += mysql_num_rows($result__);
for($j=0;$j<mysql_num_rows($result__);$j++){
$prof = mysql_fetch_row($result__);
$msg = " <b>Message</b> de " . $prenom_g . " " . $nom_g . ", gestionnaire de la promotion <b>" . $tmp[4] . "</b> à " . $prof[1] . " " . $prof[0] . "; <br>";
$msg .= " <b>Objet :</b> Les moyennes des etudiants en <b>" . $prof[3] . "</b>.<br><br>";
$msg .= " Merci de completer ces moyennes au plus vite afin que je puisse générer les bulletins. <br><br>";
//$msg .= " Merci d'avance. <br> " . $prenom_g . " " . $nom_g . ".<br><br> " . $email_g;
//email(liste des parametres qu'il faut mettre);
print(" <font size=1>$prof[2] : <br>$msg</font> \n");
}
}
}
print(" <br> <b> $nb professeur(s) averti(s) par mail.</b><br><br> \n");
}//fin index==4
print(" <i> <u>Promotion :</u> $tmp[0]</i> <BR> \n");
print(" <i> <u>Période :</u> $tmp[1] (commence sem. $tmp[2] et s'étend sur $tmp[3] sem.)</i> <BR> \n");
print(" <br> <u><i><b>Liste des matières impliquées : </b></i></u> <br><br> \n");
// on recherche toutes les matieres de la promo :
$result2 = mysql_query("SELECT DISTINCT M.id_matiere, M.nom FROM matiere M, suiviparpromotion SPP, suivipargroupe SPG, associer A WHERE ( (M.id_matiere=SPP.id_matiere AND SPP.id_promotion=$promo) OR (M.id_matiere=SPG.id_matiere AND SPG.id_groupe=A.id_groupe AND A.id_promotion=$promo) ) AND M.id_periode=$periode ORDER BY M.nom");
print(" <table align=center border=1 cellspacing=0 cellpading=0 width=520>\n");
print(" <tr>\n");
print(" <td width=180 align=center bgcolor=\"#C0C000\"><i> Libellé </i></td> \n");
print(" <td width=140 align=center bgcolor=\"#C0C000\"><i> Professeur(s) </i></td> \n");
print(" <td width=80 align=center bgcolor=\"#C0C000\"><i> Moyennes ? </i></td> \n");
print(" <td width=120 align=center bgcolor=\"#C0C000\"><i> </i></td> \n");
print(" </tr>\n");
$nbre = 0;
for($i=0;$i<mysql_num_rows($result2);$i++){
$matiere = mysql_fetch_row($result2);
// liste du(des) professeur(s) assurant la matiere :
$result3 = mysql_query("SELECT DISTINCT P.nom FROM professeur P, assurer A WHERE A.id_professeur=P.id_professeur AND A.id_matiere=$matiere[0]");
if(mysql_num_rows($result3)==0) $profs = "??";
for($j=0;$j<mysql_num_rows($result3);$j++){
$tmp = mysql_fetch_row($result3);
if($j==0) $profs = $tmp[0];
else $profs .= " / " . $tmp[0];
}
// ON REGARDE SI TOUTES LES MOYENNES SONT REMPLIES :
// dabord on regarde si la matiere est suivie par la promo entiere ou un groupe slt :
$result4 = mysql_query("SELECT SPG.id_groupe, G.nom FROM suivipargroupe SPG, associer A, groupe G WHERE SPG.id_matiere=$matiere[0] AND SPG.id_groupe=A.id_groupe AND A.id_promotion=$promo AND G.id_groupe=SPG.id_groupe");
if(mysql_num_rows($result4)==0){
// suivi par toute la promotion
$result5 = mysql_query("SELECT COUNT(*) FROM appartient APP, associer ASS WHERE APP.id_groupe=ASS.id_groupe AND ASS.id_promotion=$promo");
$tmp1 = mysql_fetch_row($result5); // $tmp1[0] = nb d'etudiants de la promo
$result6 = mysql_query("SELECT COUNT(M.moyenne) FROM moyenne M, appartient APP, associer ASS WHERE M.id_matiere=$matiere[0] AND M.id_etudiant=APP.id_etudiant AND APP.id_groupe=ASS.id_groupe AND ASS.id_promotion=$promo");
$tmp2 = mysql_fetch_row($result6); // $tmp2[0] = nb d'etudiants de la promo qui ont une moyenne
if($tmp1[0]==$tmp2[0]) $toutes = "oui";
else $toutes = "<b>non</b>";
}else{
// suivi par un groupe
$tmp = mysql_fetch_row($result4); // ==>> $tmp[0] = numero du groupe qui suit la matiere
$matiere[1] .= " (" . $tmp[1] . ")";
$result5 = mysql_query("SELECT COUNT(*) FROM appartient WHERE id_groupe=$tmp[0]");
$tmp1 = mysql_fetch_row($result5); // $tmp1[0] = nb d'etudiants du groupe
$result6 = mysql_query("SELECT COUNT(M.moyenne) FROM moyenne M, appartient APP WHERE M.id_matiere=$matiere[0] AND M.id_etudiant=APP.id_etudiant AND APP.id_groupe=$tmp[0]");
$tmp2 = mysql_fetch_row($result6);// $tmp2[0] = nb d'etudiants du groupe qui ont une moyenne
if($tmp1[0]==$tmp2[0]) $toutes = "oui";
else $toutes = "<b>non</b>";
}
print(" <tr>\n");
print(" <td> <font face=\"arial\" size=2> $matiere[0] - $matiere[1] </font> </td> \n");
print(" <td align=center> <font face=\"arial\" size=2> $profs </font> </td> \n");
print(" <td align=center> <font face=\"arial\" size=2> $toutes </font> </td> \n");
if($toutes!="oui"){
$calcul_bulletins = false;
print(" <td align=center> <input type=hidden name=\"matiere_$nbre\" value=\"$matiere[0]\"><font face=\"arial\" size=1><A href=\"Javascript:document.form1.index.value=4;document.form1.matiere.value=$matiere[0];document.form1.submit();\">avertir le(s) professeur(s)</A></font></td> \n");
$nbre++;
}else
print(" <td> </td> \n");
print(" </tr>\n");
}
print(" </table> \n");
print(" <br><div align=center><font face=\"arial\" size=1><A href=\"Javascript:document.form1.index.value=4;document.form1.nbre_mat.value=$nbre;document.form1.submit();\">avertir tous les professeurs qui n'ont pas effectué leur calcul de moyennes</A></font></div> \n");
if($calcul_bulletins){
print(" <br><div align=center> <input type=button value=\"Envoyer aux etudiants leur bulletin\" > </div>\n");
}
}// fin index==3 ou 4
print("</form> \n");
//***********************************************************************************************
//***********************************************************************************************
//***********************************************************************************************
}
buildEndOfPage();
?>