// //////////////////////////////////////////////////////////////////////////////////////////////////// $tab_periode_eleves = isset($_POST['f_periode_eleves']) ? explode('_', $_POST['f_periode_eleves']) : ''; $tab_eleves_moyennes = isset($_POST['f_eleves_moyennes']) ? explode('x', $_POST['f_eleves_moyennes']) : ''; $rubrique_id = isset($_POST['f_rubrique']) ? Clean::entier($_POST['f_rubrique']) : 0; $periode_id = count($tab_periode_eleves) ? $tab_periode_eleves[0] : 0; // On vérifie les paramètres principaux if (!$periode_id || !$rubrique_id || count($tab_periode_eleves) < 2 || !count($tab_eleves_moyennes) || $_SESSION['USER_PROFIL_TYPE'] != 'professeur' || !$_SESSION['OFFICIEL']['BULLETIN_MOYENNE_SCORES']) { exit('Erreur avec les données transmises !'); } // On passe en revue les données unset($tab_periode_eleves[0]); $tab_eleve_id = array_filter(Clean::map_entier($tab_periode_eleves), 'positif'); $appreciation = 'Moyenne figée reportée par ' . afficher_identite_initiale($_SESSION['USER_NOM'], FALSE, $_SESSION['USER_PRENOM'], TRUE, $_SESSION['USER_GENRE']); $nb_reports = 0; foreach ($tab_eleves_moyennes as $eleve_moyenne) { list($eleve_id, $moyenne) = explode('_', $eleve_moyenne); $eleve_id = (int) $eleve_id; $note = round($moyenne, 1); // $tab_eleve_id contient la liste des élèves dont il faut changer les notes ; ce peut n'être qu'une intersection groupe x classe // $tab_eleves_moyennes contient les moyennes de tous les élèves du groupe ou de la classe if (in_array($eleve_id, $tab_eleve_id)) { DB_STRUCTURE_OFFICIEL::DB_modifier_bilan_officiel_saisie('bulletin', $periode_id, $eleve_id, $rubrique_id, 0, 'eleve', $note, $appreciation); $nb_reports++; } } // On affiche le résultat if (!$nb_reports) { exit('Erreur avec les données transmises !'); } $s = $nb_reports > 1 ? 's' : ''; exit('Note' . $s . ' reportée' . $s . ' pour ' . $nb_reports . ' élève' . $s . '.');
$texte_classe = empty($is_appreciation_groupe) ? '' : ' sur la classe' ; DB_STRUCTURE_OFFICIEL::DB_supprimer_bilan_officiel_saisie( $BILAN_TYPE , $periode_id , $eleve_ou_classe_id , $rubrique_id , $_SESSION['USER_ID'] , $saisie_type ); $ACTION = ($rubrique_id!=0) ? '<button type="button" class="ajouter">Ajouter une appréciation'.$texte_classe.'.</button>' : '<button type="button" class="ajouter">Ajouter l\'appréciation générale'.$texte_classe.'.</button>' ; exit('<div class="hc">'.$ACTION.'</div>'); } if($ACTION=='supprimer_note') { // Il s'agit de la supprimer définitivement et de ne pas la recalculer : on insère une note vide if( ($ACTION=='tamponner') || ($BILAN_TYPE!='bulletin') || (!$rubrique_id) ) { exit('Erreur avec les données transmises !'); } $note = NULL; $appreciation = 'Moyenne effacée par '.afficher_identite_initiale($_SESSION['USER_NOM'],FALSE,$_SESSION['USER_PRENOM'],TRUE,$_SESSION['USER_GENRE']); DB_STRUCTURE_OFFICIEL::DB_modifier_bilan_officiel_saisie( $BILAN_TYPE , $periode_id , $eleve_id , $rubrique_id , 0 /*prof_id*/ , 'eleve' , $note , $appreciation ); exit('<td class="now moyenne">-</td><td class="now"><span class="notnow">'.html($appreciation).' <button type="button" class="modifier">Modifier</button> <button type="button" class="nettoyer">Effacer et recalculer.</button></span></td>'); } // //////////////////////////////////////////////////////////////////////////////////////////////////// // Cas 3 : recalculer une note (soit effacée - NULL - soit figée car reportée manuellement) // //////////////////////////////////////////////////////////////////////////////////////////////////// if($ACTION=='recalculer_note') { if( ($ACTION=='tamponner') || ($BILAN_TYPE!='bulletin') || (!$rubrique_id) ) { exit('Erreur avec les données transmises !'); } $note = calculer_et_enregistrer_moyenne_precise_bulletin( $periode_id , $classe_id , $eleve_id , $rubrique_id , $_SESSION['OFFICIEL']['BULLETIN_ONLY_SOCLE'] , $_SESSION['OFFICIEL']['BULLETIN_RETROACTIF'] ); if($note===FALSE)
function enregistrer_note($BILAN_TYPE, $periode_id, $eleve_id, $rubrique_id, $moyenne) { $note = $_SESSION['OFFICIEL']['BULLETIN_CONVERSION_SUR_20'] ? round($moyenne, 1) : round($moyenne / 5, 1); $appreciation = 'Moyenne figée reportée par ' . afficher_identite_initiale($_SESSION['USER_NOM'], FALSE, $_SESSION['USER_PRENOM'], TRUE, $_SESSION['USER_GENRE']); DB_STRUCTURE_OFFICIEL::DB_modifier_bilan_officiel_saisie($BILAN_TYPE, $periode_id, $eleve_id, $rubrique_id, 0, 'eleve', $note, $appreciation); return array($note, $appreciation); }