matiere='".$tabmatieres[$j][0]."',"; */ $sql="INSERT INTO notanet SET login='******', ine='".$INE[$m]."', id_mat='".$j."', notanet_mat='".$tabmatieres[$j][0]."',"; // 20130430 if(isset($tab_opt_matiere_eleve[$j])){ //$sql.="mat='".$tab_opt_matiere_eleve[$j]."',"; $sql.="matiere='".$tab_opt_matiere_eleve[$j]."',"; } //if(($moy_NOTANET[$j]!="AB")&&($moy_NOTANET[$j]!="DI")&&($moy_NOTANET[$j]!="NN")){ //if(($moy_NOTANET[$j]!="MS")&&($moy_NOTANET[$j]!="ME")&&($moy_NOTANET[$j]!="MN")&&($moy_NOTANET[$j]!="AB")&&($moy_NOTANET[$j]!="DI")&&($moy_NOTANET[$j]!="NN")){ //if(($moy_NOTANET[$j]!="MS")&&($moy_NOTANET[$j]!="ME")&&($moy_NOTANET[$j]!="MN")&&($moy_NOTANET[$j]!="AB")&&($moy_NOTANET[$j]!="DI")&&($moy_NOTANET[$j]!="NN")&&($moy_NOTANET[$j]!="VA")&&($moy_NOTANET[$j]!="NV")){ if(!in_array($moy_NOTANET[$j],$tab_liste_notes_non_numeriques)) { $sql.="note='".formate_note_notanet($moy_NOTANET[$j])."',"; } else{ $sql.="note='".$moy_NOTANET[$j]."',"; } $sql.="note_notanet='".$note_notanet."',"; $sql.="id_classe='$id_classe_eleve'"; //echo "$sql<br />"; $res_insert=mysqli_query($GLOBALS["mysqli"], $sql); if(!$res_insert){ echo "<span style='color:red'>ERREUR</span> lors de l'insertion des informations dans la table 'notanet'.<br />La fiche brevet ne pourra pas être générée.<br />\n"; } } } } }
function tab_extract_moy($tab_ele,$id_clas) { global $num_eleve, $classe, $tab_mat; global $indice_max_matieres; global $indice_premiere_matiere; global $compteur_champs_notes; // 20130429 global $indice_brevet_pro_lv; $affiche_enregistrements_precedents="y"; //global $affiche_enregistrements_precedents; //echo "\$tab_ele['type_brevet']=".$tab_ele['type_brevet']."<br />"; $tabmatieres=tabmatieres($tab_ele['type_brevet']); //echo "count(\$tabmatieres)=".count($tabmatieres)."<br />"; // $tab_mat est rempli hors de cette fonction // On y récupère (pour chaque matière Notanet) la liste des matières Gepi associées à une matière Notanet $id_matiere=$tab_mat[$tab_ele['type_brevet']]['id_matiere']; $statut_matiere=$tab_mat[$tab_ele['type_brevet']]['statut_matiere']; /* // B2I ET A2: $statut_matiere[114]="imposee"; $statut_matiere[115]="imposee"; $statut_matiere[115]="optionnelle"; */ //$sql="SELECT * FROM notanet_corresp WHERE type_brevet='".$tab_ele['type_brevet']."'"; // Témoin destiné à signaler les élèves pour lesquels une erreur se produit. $temoin_notanet_eleve=""; $info_erreur=""; echo "<p>\n"; echo "<a name='tableau_des_moyennes_eleve_$num_eleve'></a>"; if($tab_ele['no_gep']==""){ echo "<b style='color:red;'>ERREUR:</b> Numéro INE non attribué: ".$tab_ele['nom']." ".$tab_ele['prenom']; echo " <a href='../eleves/visu_eleve.php?ele_login="******"&onglet=bulletins&quitter_la_page=y' target='_blank' title=\"Voir la fiche élève et notamment les bulletins\"><img src='../images/icons/bulletin.png' class='icone16' alt='Bulletins' /></a>"; echo "<br />"; $temoin_notanet_eleve="ERREUR"; $info_erreur="Pas de numéro INE"; echo "INE: <input type='text' name='INE[$num_eleve]' value='' onchange='changement()' />\n"; } else{ echo "<b>".$tab_ele['nom']." ".$tab_ele['prenom']."</b> ".$tab_ele['no_gep']; echo " <a href='../eleves/visu_eleve.php?ele_login="******"&onglet=bulletins&quitter_la_page=y' target='_blank' title=\"Voir la fiche élève et notamment les bulletins.\"><img src='../images/icons/bulletin.png' class='icone16' alt='Bulletins' /></a>"; echo "<br />\n"; $INE=$tab_ele['no_gep']; echo "INE: <input type='text' name='INE[$num_eleve]' value='$INE' onchange='changement()' />\n"; } // Guillemets sur la valeur à cause des apostrophes dans des noms... echo "<input type='hidden' name='nom_eleve[$num_eleve]' value=\"".$tab_ele['nom']." ".$tab_ele['prenom']." ($classe)\" />\n"; echo " <a href='../eleves/modify_eleve.php?eleve_login="******"&quitter_la_page=y' target='_blank' title=\"Modifier les informations élève.\"><img src='../images/edit16.png' class='icone16' alt='Modifier' /></a>"; echo "</p>\n"; // Tableau destiné à présenter à gauche, le tableau des notes, moyennes,... et à droite les commentaires/erreurs et éventuellement les lignes du fichier d'export. //echo "<table border='1'>\n"; echo "<table class='boireaus'>\n"; echo "<tr>\n"; echo "<td valign='top' style='padding-top: 2px; padding-left:2px; vertical-align:top;'>\n"; //$TOT=0; //echo "<table border='1'>\n"; $sql="SELECT DISTINCT num_periode FROM periodes WHERE id_classe='$id_clas' ORDER BY num_periode"; //$sql="SELECT DISTINCT num_periode, verouiller FROM periodes WHERE id_classe='$id_clas' ORDER BY num_periode"; //echo "$sql<br />"; $resultat_periodes=mysqli_query($GLOBALS["mysqli"], $sql); //$tab_ver_per=array(); echo "<table class='boireaus'>\n"; echo "<tr style='font-weight: bold; text-align:center;'>\n"; echo "<th>Id</th>\n"; echo "<th>Matière</th>\n"; echo "<th>Moyenne</th>\n"; while($ligne_periodes=mysqli_fetch_object($resultat_periodes)){ echo "<th>T $ligne_periodes->num_periode</th>\n"; //$tab_ver_per[$ligne_periodes->num_periode]=$ligne_periodes->verouiller; } echo "<th>Moyenne</th>\n"; echo "<th>Correction</th>\n"; if($affiche_enregistrements_precedents=="y") { echo "<th>\n"; echo "Enregistré<br />auparavant"; echo "</th>\n"; } echo "</tr>\n"; // 20130429 $temoin_brevet_pro_lv=0; $total_brevet_pro_lv=0; $liste_matiere_brevet_pro_lv=""; $chaine_total_brevet_pro_lv=""; $type_brevet_ele=""; $sql="SELECT type_brevet FROM notanet_ele_type WHERE login='******'login']."';"; //echo "$sql<br />"; $res_ele_type=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res_ele_type)>0) { $type_brevet_ele=old_mysql_result($res_ele_type, 0, "type_brevet"); } //echo "<tr></td>\$type_brevet_ele=$type_brevet_ele</td></tr>"; $alt=1; for($j=$indice_premiere_matiere;$j<=$indice_max_matieres;$j++){ //================================================================= // 20130429 if(($type_brevet_ele==2)&&($j>$indice_brevet_pro_lv)&&($temoin_brevet_pro_lv>0)&&(!isset($ligne_lv_affichee))) { echo "<tr style='background-color:lightpink;' title=\"Dans le cas du brevet série professionnelle, c'est la moyenne des notes de langue vivante, qu'il faut prendre en compte.\"> <td>$indice_brevet_pro_lv</td> <td>LV</td> <td><input type='text' name='liste_matiere_brevet_pro_lv[$num_eleve]' size='7' value='$liste_matiere_brevet_pro_lv' /></td>"; $sql="SELECT DISTINCT num_periode, verouiller FROM periodes WHERE id_classe='$id_clas' ORDER BY num_periode"; //echo "<td>$sql</td>"; $resultat_periodes=mysqli_query($GLOBALS["mysqli"], $sql); echo " <td colspan='".mysqli_num_rows($resultat_periodes)."'>($chaine_total_brevet_pro_lv)/$temoin_brevet_pro_lv</td>"; $k="0"; echo " <td>".($total_brevet_pro_lv/$temoin_brevet_pro_lv)."</td> <td><input type='text' name='moy_$indice_brevet_pro_lv"."_".$k."[$num_eleve]' id='n".$compteur_champs_notes."' value='".$moy_NOTANET[$indice_brevet_pro_lv]."' size='6' onKeyDown=\"clavier(this.id,event);\" onchange='changement()' autocomplete=\"off\" onfocus=\"javascript:this.select()\" /></td>"; if($affiche_enregistrements_precedents=="y") { echo "<td>\n"; $sql="SELECT note FROM notanet WHERE login='******'login']."' AND matiere='".$liste_matiere_brevet_pro_lv."' AND notanet_mat='".$tabmatieres[$j][0]."' AND id_mat='$indice_brevet_pro_lv';"; $enr=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($enr)>0) { $lig_enr=mysqli_fetch_object($enr); if($moy_NOTANET[$indice_brevet_pro_lv]!=$lig_enr->note) { echo "<a href=\"#tableau_des_moyennes_eleve_$num_eleve\" onclick=\"document.getElementById('n".$compteur_champs_notes."').value='$lig_enr->note'; return false;\"><img src='../images/icons/back.png' width='16' height='16' alt='Rétablir la valeur enregistrée' /></a>"; echo " "; } echo "<span id='note_precedemment_enregistree_$compteur_champs_notes'>".$lig_enr->note."</span>"; } else { echo " "; } echo "</td>\n"; } echo " </tr>\n"; $ligne_lv_affichee="y"; $compteur_champs_notes++; } //================================================================= // Initialisation de la moyenne pour la matière NOTANET courante. $moy_NOTANET[$j]=""; //echo "<tr><td colspan='5'>\$tabmatieres[$j][0]=".$tabmatieres[$j][0]."</td></tr>"; //echo "<tr><td colspan='5'>\$statut_matiere[$j]=".$statut_matiere[$j]."</td></tr>"; // Compteur destiné à repérer des matières pour lesquelles l'élève aurait des notes dans plus d'une option. // On ne sait alors pas quelle valeur retenir $cpt=0; // Témoin de la liste des matières trouvées pour une même matière notanet // Utile pour repérer les matières Notanet associées à deux matières Gepi pour lesquelles l'élève a une note $liste_matieres_gepi=""; //if($tabmatieres[$j][0]!=''){ if(($tabmatieres[$j][0]!='')&&($statut_matiere[$j]!='non dispensee dans l etablissement')){ if($tabmatieres[$j]['socle']=='n') { //$ligne_NOTANET="$INE|$j"; //$temoin_au_moins_une_note="n"; $moyenne=NULL; //echo "<p><b>".$tabmatieres[$j][0]."</b><br />\n"; // Boucle sur les différentes matières Gepi associées à matière Notanet for($k=0;$k<count($id_matiere[$j]);$k++) { $alt=$alt*(-1); if((($type_brevet_ele==2)&&($j!=$indice_brevet_pro_lv))|| ($type_brevet_ele!=2)) { echo "<tr class='lig$alt'>\n"; } else { echo "<tr style='background-color:lightblue;' title=\"Dans le cas du brevet série professionnelle, c'est la moyenne des notes de langue vivante, qu'il faut prendre en compte.\">\n"; } //echo $id_matiere[$j][$k]."<br />\n"; // A FAIRE: REQUETE moyenne pour la matière... si non vide... (test si note!="-" aussi?) //$sql="SELECT round(avg(n.note),1) as moyenne FROM matieres_notes n, j_eleves_classes c WHERE (n.periode='$num_periode' AND n.matiere='$matiere[$j]' AND c.id_classe='$id_classe' AND c.login = n.login AND n.statut ='' AND c.periode='$num_periode')"; echo "<td><span style='color:green;'>$j</span></td>\n"; echo "<td>".$id_matiere[$j][$k]."</td>\n"; $temoin_moyenne=""; //====================================================================== //$sql="SELECT round(avg(note),1) as moyenne FROM matieres_notes WHERE (matiere='".$id_matiere[$j][$k]."' AND login='******' AND statut ='')"; // 20140325 if((isset($tabmatieres[$j]['extraction_moyenne']))&&($tabmatieres[$j]['extraction_moyenne']=="n")) { $sql="SELECT mn.note moyenne FROM notanet_saisie mn WHERE (mn.matiere='".$id_matiere[$j][$k]."' AND mn.login='******'login']."')"; } else { $sql="SELECT round(avg(mn.note),1) as moyenne FROM matieres_notes mn, j_groupes_matieres jgm WHERE (jgm.id_matiere='".$id_matiere[$j][$k]."' AND mn.login='******'login']."' AND mn.statut ='' AND mn.id_groupe=jgm.id_groupe)"; } //echo "$sql<br />\n"; $resultat_moy=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($resultat_moy)>0){ $ligne_moy=mysqli_fetch_object($resultat_moy); //echo "$ligne_moy->moyenne<br />"; $moyenne=$ligne_moy->moyenne; if((isset($tabmatieres[$j]['extraction_moyenne']))&&($tabmatieres[$j]['extraction_moyenne']=="n")) { echo "<td style='font-weight:bold; text-align:center; color:blue; font-style: italic;"; if($moyenne=="") { echo " background-color:red;"; } echo "' title=\"Note saisie\">$moyenne</td>\n"; } else { echo "<td style='font-weight:bold; text-align:center;' title=\"Moyenne des trois trimestres\">$moyenne</td>\n"; } //$cpt++; if($moyenne!=""){ $temoin_moyenne="oui"; } } else{ //echo "X<br />\n"; // On ne passe jamais par là. // Le calcul de la moyenne avec $resultat_moy retourne NULL et on a toujours mysql_num_rows($resultat_moy)=1 echo "<td style='font-weight:bold; text-align:center;'>X</td>\n"; } echo "<!--\$temoin_moyenne=$temoin_moyenne-->\n"; // Cette solution donne les infos, mais ne permet pas de contrôler si tout est OK... //====================================================================== if((isset($tabmatieres[$j]['extraction_moyenne']))&&($tabmatieres[$j]['extraction_moyenne']=="n")) { echo "<td></td><td></td><td></td>\n"; echo "<td style='font-weight:bold; text-align:center;"; if($moyenne=="") { echo " background-color:red;"; } echo "'>$moyenne</td>\n"; if($moyenne=="") { $moyenne_arrondie=""; if($statut_matiere[$j]=='imposee'){ // Si la matière est imposée, alors il y a un problème à régler... $temoin_notanet_eleve="ERREUR"; if($info_erreur==""){ $info_erreur="Pas de moyenne à une matière non optionnelle: <b>".$id_matiere[$j][0]."</b><br />(<i><span style='font-size:xx-small;'>valeurs non numériques autorisées: ".$tabmatieres[$j][-3]."</span></i>)<br />"; } else{ $info_erreur=$info_erreur."Pas de moyenne à une matière non optionnelle: <b>".$id_matiere[$j][0]."</b><br />(<i><span style='font-size:xx-small;'>valeurs non numériques autorisées: ".$tabmatieres[$j][-3]."</span></i>)<br />"; } } } elseif(($moyenne=="DI")||($moyenne=="AB")) { $moyenne_arrondie=$moyenne; } else { $moyenne_arrondie=ceil($moyenne*2)/2; } echo "<td><input type='text' name='moy_$j"."_".$k."[$num_eleve]' id='n".$compteur_champs_notes."' value='".$moyenne_arrondie."' size='6' onKeyDown=\"clavier(this.id,event);\" onchange='changement()' autocomplete=\"off\" onfocus=\"javascript:this.select()\" />"; echo "</td>\n"; $moy_NOTANET[$j]="$moyenne_arrondie"; // Témoin comme quoi, il y a une note pour l'enseignement notanet en cours $cpt++; } else { $total=0; $nbnotes=0; //$sql="SELECT DISTINCT num_periode FROM periodes WHERE id_classe='$id_classe[$i]' ORDER BY num_periode"; $sql="SELECT DISTINCT num_periode, verouiller FROM periodes WHERE id_classe='$id_clas' ORDER BY num_periode"; //echo "<td>$sql</td>"; $resultat_periodes=mysqli_query($GLOBALS["mysqli"], $sql); while($ligne_periodes=mysqli_fetch_object($resultat_periodes)){ //$sql="SELECT * FROM matieres_notes WHERE (matiere='".$id_matiere[$j][$k]."' AND login='******' AND statut ='') ORDER BY periode"; //$sql="SELECT * FROM matieres_notes WHERE (matiere='".$id_matiere[$j][$k]."' AND login='******' AND statut ='' AND periode='$ligne_periodes->num_periode')"; //=================================================================== // SUR LE STATUT... IL FAUDRAIT VOIR CE QUE DONNENT LES dispensés,... // POUR POUVOIR LES CODER DANS L'EXPORT NOTANET //=================================================================== //$sql="SELECT * FROM matieres_notes WHERE (matiere='".$id_matiere[$j][$k]."' AND login='******' AND statut ='' AND periode='$ligne_periodes->num_periode')"; $sql="SELECT mn.* FROM matieres_notes mn, j_groupes_matieres jgm WHERE (jgm.id_matiere='".$id_matiere[$j][$k]."' AND mn.login='******'login']."' AND mn.statut ='' AND mn.periode='$ligne_periodes->num_periode' AND mn.id_groupe=jgm.id_groupe)"; //echo "<!-- $sql -->\n"; //echo "$sql<br />\n"; $resultat_notes=mysqli_query($GLOBALS["mysqli"], $sql); //echo "<!-- mysql_num_rows(\$resultat_notes)=".mysql_num_rows($resultat_notes)." -->\n"; if(mysqli_num_rows($resultat_notes)>0){ if(mysqli_num_rows($resultat_notes)>1){ // 20130429 : A VOIR : Dans le cas brevet professionnel, pour les langues vivantes, si on a 2, c'est bon, mais il faudrait faire la moyenne. // Et comment stocker la liste des matières pour la fiche brevet? Refaire une extraction des listes de matières dans fiches_brevet.php ou stocker dans une table? Ou ajouter un champ dans la table notanet... ou notanet.matiere="AGL1|ESP2" et exploser suivant | dans fiches_brevet.php // 20130429 /* if((($type_brevet_ele==2)&&($j!=$indice_brevet_pro_lv))|| ($type_brevet_ele!=2)) { */ //$infos="Erreur? Il y a plusieurs notes/moyennes pour une même période! "; $infos="<p>Erreur? Il y a plusieurs notes/moyennes pour une même période!<br />"; //$infos.="<br />$sql<br />"; $temoin_notanet_eleve="ERREUR"; if($info_erreur==""){ $info_erreur="Plusieurs notes/moyennes pour une même période."; $info_erreur.="<br />Dans ce cas, la moyenne est la somme des moyennes affichées divisée par le nombre de moyennes.<br />La valeur est correcte, s'il y a le même nombre de moyennes sur chaque trimestre et si on donne le même poids aux différentes moyennes.<br />"; } else{ $info_erreur=$info_erreur." - Plusieurs notes/moyennes pour une même période."; } $chaine_couleur=" bgcolor='red'"; /* } // 20130429 elseif(($type_brevet_ele==2)&&($j==$indice_brevet_pro_lv)) { $chaine_couleur=" bgcolor=' lightpink'"; } else { // On ne passe jamais ici, il me semble... $infos=""; $chaine_couleur=""; } */ } else { $infos=""; $chaine_couleur=""; } // Il ne devrait y avoir qu'une seule valeur: echo "<td$chaine_couleur style='text-align: center;'>\n"; //echo "<!-- ... -->\n"; while($ligne_notes=mysqli_fetch_object($resultat_notes)){ //echo "<td>".$infos.$ligne_notes->note."</td>\n"; //echo $infos.$ligne_notes->note." "; if($infos!="") { echo $infos."<b>".$ligne_notes->note."</b> "; //echo "<div style='font-size:xx-small;'>".$infos."</div>".$ligne_notes->note." "; //echo "<span style='font-size:xx-small;'>".$infos."</span>".$ligne_notes->note." "; } else { echo $ligne_notes->note." "; } // Le test devrait toujours être vrai puisqu'on a exclu les moyennes avec un statut non vide if(($ligne_notes->note!="")&&($ligne_notes->note!="-")){ // PROBLEME: S'il y a plusieurs notes pour une même période, le total est faussé et la moyenne itou... // ... mais cela ne devrait pas arriver, ou alors la base GEPI n'est pas nette. $total=$total+$ligne_notes->note; $nbnotes++; //echo "<!-- \$total=$total\n \$nbnotes=$nbnotes-->\n"; //echo "<\$total=$total\n \$nbnotes=$nbnotes>\n"; //$temoin_au_moins_une_note="y"; //echo "\$temoin_au_moins_une_note=$temoin_au_moins_une_note<br />"; //echo "\$cpt=$cpt<br />"; } } if($ligne_periodes->verouiller=='N') { echo "<img src='../images/icons/ico_attention.png' width='22' height='19' alt=\"ATTENTION: La période n'est pas verrouillée ! Les notes peuvent encore changer !\" title=\"ATTENTION: La période n'est pas verrouillée ! Les notes peuvent encore changer !\" />\n"; } echo "</td>\n"; } else{ if($temoin_moyenne=="oui"){ $chaine_couleur=" bgcolor='yellow'"; } else{ $chaine_couleur=""; } //echo "<td>X</td>\n"; // S'il n'y a pas de moyenne avec statut vide, on cherche si un statut dispensé ou autre est dans la table 'matieres_notes': //$sql="SELECT * FROM matieres_notes WHERE (matiere='".$id_matiere[$j][$k]."' AND login='******' AND periode='$ligne_periodes->num_periode')"; $sql="SELECT mn.* FROM matieres_notes mn, j_groupes_matieres jgm WHERE (jgm.id_matiere='".$id_matiere[$j][$k]."' AND mn.login='******'login']."' AND mn.periode='$ligne_periodes->num_periode' AND mn.id_groupe=jgm.id_groupe)"; $resultat_notes=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($resultat_notes)>0){ $ligne_notes=mysqli_fetch_object($resultat_notes); if($ligne_notes->statut!=""){ $chaine_couleur=" bgcolor='red'"; } echo "<td$chaine_couleur style='text-align:center;'>".$ligne_notes->note." - ".$ligne_notes->statut; } else{ echo "<td$chaine_couleur style='text-align:center;'>X"; } if($ligne_periodes->verouiller=='N') { echo "<img src='../images/icons/ico_attention.png' width='22' height='19' alt=\"ATTENTION: La période n'est pas verrouillée ! Les notes peuvent encore changer !\" title=\"ATTENTION: La période n'est pas verrouillée ! Les notes peuvent encore changer !\" style='float:right' />\n"; } echo "</td>\n"; } } // Initialisation $moyenne_arrondie=""; if($nbnotes>0) { $cpt++; $liste_matieres_gepi.=" ".$id_matiere[$j][$k]; $moyenne=round($total/$nbnotes,1); //echo "<td style='font-weight:bold; text-align:center;'>$total/$nbnotes = $moyenne</td>\n"; echo "<td style='font-weight:bold; text-align:center;'>$moyenne</td>\n"; $moyenne_arrondie=ceil($moyenne*2)/2; // 20130429 if((($type_brevet_ele==2)&&($j!=$indice_brevet_pro_lv))|| ($type_brevet_ele!=2)) { echo "<td><input type='text' name='moy_$j"."_".$k."[$num_eleve]' id='n".$compteur_champs_notes."' value='".$moyenne_arrondie."' size='6' onKeyDown=\"clavier(this.id,event);\" onchange='changement()' autocomplete=\"off\" onfocus=\"javascript:this.select()\" />"; //$compteur_champs_notes++; //echo "<input type='hidden' name='matiere_".$j."_[$num_eleve]' value='".$id_matiere[$j][$k]."' size='6' />"; echo "</td>\n"; //$moy_NOTANET[$j]="$moyenne"; $moy_NOTANET[$j]="$moyenne_arrondie"; } else { $total_brevet_pro_lv+=$moyenne; $temoin_brevet_pro_lv++; echo "<td></td>\n"; if($liste_matiere_brevet_pro_lv!="") {$liste_matiere_brevet_pro_lv.="|";} $liste_matiere_brevet_pro_lv.=$id_matiere[$j][$k]; if($chaine_total_brevet_pro_lv!="") {$chaine_total_brevet_pro_lv.="+";} $chaine_total_brevet_pro_lv.=$moyenne; // Au dernier tour dans la matière LV pour le brevet pro, le contenu est correct: $moy_NOTANET[$j]=ceil(($total_brevet_pro_lv/$temoin_brevet_pro_lv)*2)/2; } } else{ $sql="SELECT 1=1 FROM j_eleves_groupes jeg, j_groupes_matieres jgm WHERE (jgm.id_matiere='".$id_matiere[$j][$k]."' AND jeg.login='******'login']."' AND jgm.id_groupe=jeg.id_groupe);"; $test_ele_matiere=mysqli_query($GLOBALS["mysqli"], $sql); //if((($statut_matiere[$j]=='imposee'))&&($k+1==count($id_matiere[$j]))&&($moy_NOTANET[$j]=="")){ if((($statut_matiere[$j]=='imposee'))&&(mysqli_num_rows($test_ele_matiere)!=0)&&($moy_NOTANET[$j]=="")) { $bgmoy="background-color:red"; } else{ $bgmoy=""; } echo "<td style='font-weight:bold; text-align:center;$bgmoy'>X</td>\n"; // 20130429 if((($type_brevet_ele==2)&&($j!=$indice_brevet_pro_lv))|| ($type_brevet_ele!=2)) { echo "<td><input type='text' name='moy_$j"."_".$k."[$num_eleve]' id='n".$compteur_champs_notes."' value='' size='6' onKeyDown=\"clavier(this.id,event);\" onchange='changement()' autocomplete=\"off\" onfocus=\"javascript:this.select()\" /></td>\n"; } else { echo "<td></td>\n"; } //$compteur_champs_notes++; //echo "<td></td>\n"; } } if($affiche_enregistrements_precedents=="y") { echo "<td>\n"; $sql="SELECT note FROM notanet WHERE login='******'login']."' AND matiere='".$id_matiere[$j][$k]."' AND notanet_mat='".$tabmatieres[$j][0]."' AND id_mat='$j';"; $enr=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($enr)>0) { $lig_enr=mysqli_fetch_object($enr); if($moyenne_arrondie!=$lig_enr->note) { echo "<a href=\"#tableau_des_moyennes_eleve_$num_eleve\" onclick=\"document.getElementById('n".$compteur_champs_notes."').value='$lig_enr->note'; return false;\"><img src='../images/icons/back.png' width='16' height='16' alt='Rétablir la valeur enregistrée' /></a>"; echo " "; } echo "<span id='note_precedemment_enregistree_$compteur_champs_notes'>".$lig_enr->note."</span>"; } else { echo " "; } echo "</td>\n"; } $compteur_champs_notes++; echo "</tr>\n"; } /* if($temoin_notanet_eleve!="ERREUR"){ echo "<tr><td>$ligne_NOTANET</td></tr>\n"; } */ //echo "</p>\n"; //echo "<tr><td>\$cpt=$cpt</td><td>\$statut_matiere[$j]=$statut_matiere[$j]</td></tr>"; if($cpt==0){ // Pas de moyenne trouvée pour cet élève. if($statut_matiere[$j]=='imposee'){ // Si la matière est imposée, alors il y a un problème à régler... $temoin_notanet_eleve="ERREUR"; if($info_erreur==""){ //$info_erreur="Pas de moyenne à une matière non optionnelle: ".$id_matiere[$j][0]; $info_erreur="Pas de moyenne à une matière non optionnelle: <b>".$id_matiere[$j][0]."</b><br />(<i><span style='font-size:xx-small;'>valeurs non numériques autorisées: ".$tabmatieres[$j][-3]."</span></i>)<br />"; //$tabmatieres[$j][-3] } else{ //$info_erreur=$info_erreur." - Pas de moyenne à une matière non optionnelle: ".$id_matiere[$j][0]; $info_erreur=$info_erreur."Pas de moyenne à une matière non optionnelle: <b>".$id_matiere[$j][0]."</b><br />(<i><span style='font-size:xx-small;'>valeurs non numériques autorisées: ".$tabmatieres[$j][-3]."</span></i>)<br />"; } } } } else { // SOCLES B2I ET A2 $note_b2i=""; $note_a2=""; $sql="SELECT * FROM notanet_socles WHERE login='******'login']."';"; $res_soc=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res_soc)>0) { $lig_soc=mysqli_fetch_object($res_soc); $note_b2i=$lig_soc->b2i; $note_a2=$lig_soc->a2; } if($j==114) { $alt=$alt*(-1); echo "<tr class='lig$alt'>\n"; echo "<td><span style='color:green;'>$j</span></td>\n"; echo "<td>".$tabmatieres[$j][0]."</td>\n"; echo "<td> </td>\n"; echo "<td> </td>\n"; echo "<td> </td>\n"; echo "<td> </td>\n"; //if($note_b2i!="") { if(($note_b2i=="MS")||($note_b2i=="ME")||($note_b2i=="MN")||($note_b2i=="AB")) { $moy_NOTANET[$j]=$note_b2i; echo "<td style='font-weight:bold;'>".$note_b2i."</td>\n"; } else { echo "<td style='font-weight:bold; background-color:red;'> </td>\n"; $temoin_notanet_eleve="ERREUR"; } echo "<td><input type='text' name='moy_$j"."_0[$num_eleve]' value='$note_b2i' size='6' onchange='changement()' /></td>\n"; if($affiche_enregistrements_precedents=="y") { echo "<td>\n"; $sql="SELECT note FROM notanet WHERE login='******'login']."' AND notanet_mat='".$tabmatieres[$j][0]."' AND id_mat='$j';"; $enr=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($enr)>0) { $lig_enr=mysqli_fetch_object($enr); echo $lig_enr->note; } else { echo " "; } echo "</td>\n"; } echo "</tr>\n"; } elseif($j==115) { $alt=$alt*(-1); echo "<tr class='lig$alt'>\n"; echo "<td><span style='color:green;'>$j</span></td>\n"; echo "<td>".$tabmatieres[$j][0]."</td>\n"; echo "<td> </td>\n"; echo "<td> </td>\n"; echo "<td> </td>\n"; echo "<td> </td>\n"; //if($note_a2!="") { //if(($note_a2=="MS")||($note_a2=="ME")||($note_a2=="AB")) { if(($note_a2=="MS")||($note_a2=="ME")||($note_a2=="MN")||($note_a2=="AB")) { $moy_NOTANET[$j]=$note_a2; echo "<td style='font-weight:bold;'>".$note_a2."</td>\n"; } // CELA PEUT ETRE OPTIONNEL else { echo "<td style='font-weight:bold; background-color:red;'> </td>\n"; $temoin_notanet_eleve="ERREUR"; } echo "<td><input type='text' name='moy_$j"."_0[$num_eleve]' value='$note_a2' size='6' onchange='changement()' /></td>\n"; if($affiche_enregistrements_precedents=="y") { echo "<td>\n"; $sql="SELECT note FROM notanet WHERE login='******'login']."' AND notanet_mat='".$tabmatieres[$j][0]."' AND id_mat='$j';"; $enr=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($enr)>0) { $lig_enr=mysqli_fetch_object($enr); echo $lig_enr->note; } else { echo " "; } echo "</td>\n"; } echo "</tr>\n"; if($note_a2!="") {$moy_NOTANET[$j]=$note_a2;} } elseif($j==130) { $note_lvr=""; $sql="SELECT * FROM notanet_lvr_ele WHERE login='******'login']."';"; $res_lvr=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res_lvr)>0) { $lig_lvr=mysqli_fetch_object($res_lvr); $note_lvr=$lig_lvr->note; $alt=$alt*(-1); echo "<tr class='lig$alt'>\n"; echo "<td><span style='color:green;'>$j</span></td>\n"; echo "<td>".$tabmatieres[$j][0]."</td>\n"; echo "<td> </td>\n"; echo "<td> </td>\n"; echo "<td> </td>\n"; echo "<td> </td>\n"; //if($note_b2i!="") { if(($note_lvr=="VA")||($note_lvr=="NV")) { $moy_NOTANET[$j]=$note_lvr; echo "<td style='font-weight:bold;'>".$note_lvr."</td>\n"; } else { echo "<td style='font-weight:bold; background-color:red;'> </td>\n"; $temoin_notanet_eleve="ERREUR"; } echo "<td><input type='text' name='moy_$j"."_0[$num_eleve]' value='$note_lvr' size='6' onchange='changement()' /></td>\n"; if($affiche_enregistrements_precedents=="y") { echo "<td>\n"; $sql="SELECT note FROM notanet WHERE login='******'login']."' AND notanet_mat='".$tabmatieres[$j][0]."' AND id_mat='$j';"; $enr=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($enr)>0) { $lig_enr=mysqli_fetch_object($enr); echo $lig_enr->note; } else { echo " "; } echo "</td>\n"; } echo "</tr>\n"; } } } } // 20130429 if(((($type_brevet_ele==2)&&($j!=$indice_brevet_pro_lv))|| ($type_brevet_ele!=2)) &&($cpt>1)) { $temoin_notanet_eleve="ERREUR"; // Un élève a des notes dans deux options d'un même choix NOTANET (par exemple AGL1 et ALL1) if($info_erreur==""){ //$info_erreur="Plusieurs options d'une même matière."; $info_erreur="Plusieurs options d'une même matière: <b>$liste_matieres_gepi</b><br />(<span style='font-size:x-small'><i>il faudra vider le champ de formulaire correspondant à la matière à abandonner</i></span>)<br />"; } else{ //$info_erreur=$info_erreur." - Plusieurs options d'une même matière."; $info_erreur=$info_erreur."Plusieurs options d'une même matière: <b>$liste_matieres_gepi</b><br />(<span style='font-size:x-small'><i>il faudra vider le champ de formulaire correspondant à la matière à abandonner</i></span>)<br />"; } } } echo "</table>\n"; // Pour présenter à côté, le résultat: echo "</td>\n"; echo "<td valign='top' style='vertical-align:top;'>\n"; //echo "\$temoin_notanet_eleve=$temoin_notanet_eleve<br />"; if($temoin_notanet_eleve=="ERREUR"){ echo "<b style='color:red;'>ERREUR:</b> $info_erreur"; } else{ //echo "$INE|TOT|$TOT|<br />\n"; //echo "---"; $TOT=0; echo "<p>\n"; echo "Portion de fichier générée:<br />"; for($j=$indice_premiere_matiere;$j<=$indice_max_matieres;$j++){ // Pour les matières NOTANET existantes: if($tabmatieres[$j][0]!=''){ // Si une moyenne a été extraite // (c'est-à-dire si l'élève a la matière et que l'extraction a réussi (donc pas d'ERREUR)) //echo "\$tabmatieres[$j][-1]=".$tabmatieres[$j][-1]."<br />\n"; //echo "\$moy_NOTANET[$j]=".$moy_NOTANET[$j]."<br />\n"; if($moy_NOTANET[$j]!=""){ $ligne_NOTANET="$INE|".sprintf("%03d",$j); if($tabmatieres[$j]['socle']=="y"){ $ligne_NOTANET=$ligne_NOTANET."|".$moy_NOTANET[$j]."|"; } elseif($tabmatieres[$j][-1]=="POINTS"){ //$ligne_NOTANET=$ligne_NOTANET."|$moy_NOTANET[$j]|"; //$ligne_NOTANET=$ligne_NOTANET."|".formate_note_notanet($moy_NOTANET[$j])."|"; // Pour les brevets dans lesquels certaines notes sont sur 40 ou 60 au lieu de 20: $ligne_NOTANET=$ligne_NOTANET."|".formate_note_notanet($moy_NOTANET[$j]*$tabmatieres[$j][-2])."|"; //$TOT=$TOT+$moy_NOTANET[$j]; //$TOT=$TOT+round($moy_NOTANET[$j]*2)/2; $TOT=$TOT+round($moy_NOTANET[$j]*$tabmatieres[$j][-2]*2)/2; } else{ if($tabmatieres[$j][-1]=="PTSUP"){ $ptsup=$moy_NOTANET[$j]-10; if($ptsup>0){ //$ligne_NOTANET=$ligne_NOTANET."|$ptsup|"; //$ligne_NOTANET=$ligne_NOTANET."|".formate_note_notanet($ptsup)."|"; $ligne_NOTANET=$ligne_NOTANET."|".formate_note_notanet($ptsup*$tabmatieres[$j][-2])."|"; //$TOT=$TOT+$ptsup; //$TOT=$TOT+round($ptsup*2)/2; $TOT=$TOT+round($ptsup*$tabmatieres[$j][-2]*2)/2; } else{ $ligne_NOTANET=$ligne_NOTANET."|".formate_note_notanet(0)."|"; } } else{ //$tabmatieres[$j][-1]="NOTNONCA"; // On ne modifie pas... euh si... une ligne est insérée, mais elle n'intervient pas dans le calcul du TOTal. if($tabmatieres[$j][-1]=="NOTNONCA"){ //$ligne_NOTANET=$ligne_NOTANET."|$moy_NOTANET[$j]|"; $ligne_NOTANET=$ligne_NOTANET."|".formate_note_notanet($moy_NOTANET[$j])."|"; } } } echo colore_ligne_notanet($ligne_NOTANET)."<br />\n"; $tabnotanet[]=$ligne_NOTANET; //$fichtmp=fopen($fich_notanet,"a+"); //fwrite($fichtmp,$ligne_NOTANET."\n"); //fclose($fichtmp); } } } // Dans le cas brevet PRO, il ne faut retenir qu'une seule des deux matières 103 et 104 if(($tab_ele['type_brevet']==2)||($tab_ele['type_brevet']==3)) { $num_matiere_LV1=103; $num_matiere_ScPhy=104; if(($moy_NOTANET[$num_matiere_LV1]!="AB")&&($moy_NOTANET[$num_matiere_LV1]!="DI")&&($moy_NOTANET[$num_matiere_LV1]!="NN")){ if(($moy_NOTANET[$num_matiere_ScPhy]!="AB")&&($moy_NOTANET[$num_matiere_ScPhy]!="DI")&&($moy_NOTANET[$num_matiere_ScPhy]!="NN")) { // Il ne faut retenir qu'une seule des deux notes if($moy_NOTANET[$num_matiere_ScPhy]>$moy_NOTANET[$num_matiere_LV1]) { $TOT-=round($moy_NOTANET[$num_matiere_LV1]*$tabmatieres[$num_matiere_LV1][-2]*2)/2; } else { $TOT-=round($moy_NOTANET[$num_matiere_ScPhy]*$tabmatieres[$num_matiere_ScPhy][-2]*2)/2; } } } } //echo "$INE|TOT|$TOT|<br />\n"; echo colore_ligne_notanet("$INE|TOT|".sprintf("%02.2f",$TOT)."|")."<br />\n"; $tabnotanet[]="$INE|TOT|".sprintf("%02.2f",$TOT)."|"; //$fichtmp=fopen($fich_notanet,"a+"); // PROBLEME: $TOT peut dépasser 100... quel doit être le formatage à gauche quand on est en dessous de 100? //fwrite($fichtmp,"$INE|TOT|$TOT|\n"); //fwrite($fichtmp,"$INE|TOT|".formate_note_notanet($TOT)."|\n"); //fwrite($fichtmp,"$INE|TOT|".sprintf("%02.2f",$TOT)."|\n"); //fclose($fichtmp); echo "</p>\n"; } echo "</td>\n"; echo "</tr>\n"; echo "</table>\n"; }
$classe_ele=""; $sql="SELECT * FROM eleves WHERE login='******';"; $res_ele=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res_ele)>0) { $nom_ele=old_mysql_result($res_ele,0,"nom"); $prenom_ele=old_mysql_result($res_ele,0,"prenom"); } $sql="SELECT c.classe FROM classes c, j_eleves_classes jec WHERE jec.id_classe=c.id AND jec.login='******' ORDER BY periode DESC LIMIT 1;"; $res_clas=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res_clas)>0) { $classe_ele=old_mysql_result($res_clas,0,"classe"); } $lig_notanet[]="$ine|$nom_ele|$prenom_ele|$classe_ele|TOT|".formate_note_notanet($TOT)."|"; } } } } } if (isset($lig_notanet)) { sort($lig_notanet); // Remplissage du fichier for($i=0;$i<count($lig_notanet);$i++) { $fd.=$lig_notanet[$i].$eol; } }