function recherche_enfant2($id_parent_tmp, $current_group, $periode_num, $id_racine) { $sql = "SELECT * FROM cn_conteneurs WHERE parent='{$id_parent_tmp}'"; //echo "<!-- $sql -->\n"; $res_enfant = mysqli_query($GLOBALS["mysqli"], $sql); if (mysqli_num_rows($res_enfant) > 0) { while ($lig_conteneur_enfant = mysqli_fetch_object($res_enfant)) { recherche_enfant2($lig_conteneur_enfant->id, $current_group, $periode_num, $id_racine); } } else { $arret = 'no'; $id_conteneur_enfant = $id_parent_tmp; mise_a_jour_moyennes_conteneurs($current_group, $periode_num, $id_racine, $id_conteneur_enfant, $arret); } }
$display_bulletin = 0; } $sql = "UPDATE cn_conteneurs SET display_bulletin = '{$display_bulletin}' WHERE id = '{$id_conteneur}'"; //echo "$sql<br />"; $reg = mysqli_query($GLOBALS["mysqli"], $sql); if (!$reg) { $reg_ok = "no"; } //========================================================== // MODIF: boireaus // // Mise à jour des moyennes du conteneur et des conteneurs parent, grand-parent, etc... // $arret = 'no'; if (!isset($_POST['new_conteneur'])) { mise_a_jour_moyennes_conteneurs($current_group, $periode_num, $id_racine, $id_conteneur, $arret); // La boite courante est mise à jour... // ... mais pas la boite destination. recherche_enfant($id_racine); } //========================================================== if ($reg_ok == 'yes') { if ($new == 'yes') { $msg .= "Nouvel enregistrement réussi."; } else { $msg .= "Les modifications ont été effectuées avec succès."; } } else { $msg .= "Il y a eu un problème lors de l'enregistrement"; } // Pour debug:
/** * Enregistre les notes dans la base * * @param array $donnees Les données à enregistrer * @return bool TRUE si les données ont été enregistrées * @see charge_message() * @see prepare_sql() */ function enregistre_notes($donnees) { $tableau_notes = $_SESSION[PREFIXE]['tableau_notes']; // on recherche les notes maxi pour toutes les évaluations $elv_deja_note = array(); foreach ($_SESSION[PREFIXE]["id_devoir"] as $id_devoir) { $sql_devoir = "SELECT note_sur, id_conteneur FROM cn_devoirs \n\t WHERE id = '" . $id_devoir . "'"; $query_devoir = mysql_query($sql_devoir); $eval = mysql_fetch_object($query_devoir); $notes_max[$id_devoir]['note_sur'] = $eval->note_sur; $notes_max[$id_devoir]['id_conteneur'] = $eval->id_conteneur; mysql_free_result($query_devoir); } unset($id_devoir); // On récupère les données passées en $_POST dans $tableau_notes while (list($key, $val) = each($donnees)) { if (mb_ereg("_note_", $key)) { $index = mb_strstr($key, "_note_", TRUE); $id_eval = mb_strcut(mb_strstr($key, "_note_", FALSE), 6); // $comment = ""; if (is_numeric($val)) { if ($val > $notes_max[$id_eval]['note_sur']) { charge_message("ERREUR : Un élève à une note en dehors du référentiel ! (" . $login . ")"); return FALSE; } $note = $val; $statut = ""; } elseif (empty($val)) { $note = ""; $statut = VIDE; } else { switch ($val) { case "a": case "A": case "abs": case "ABS": case ABSENT: $note = ""; $statut = ABSENT; break; case "d": case "D": case "disp": case "Disp": case DISPENSE: $note = ""; $statut = DISPENSE; break; case "-": case "n": case "N": case "nn": case "NN": case "nN": case "Nn": case NON_NOTE: $note = ""; $statut = NON_NOTE; break; case "": default: $note = ""; $statut = VIDE; } } // On met à jour $tableau_notes $tableau_notes[$index]['notes'][$id_eval]['note_devoir'] = $note; $tableau_notes[$index]['notes'][$id_eval]['statut'] = $statut; } elseif (mb_ereg("_app_", $key) && $val != '') { $index = mb_strstr($key, "_app_", TRUE); $id_eval = mb_strcut(mb_strstr($key, "_app_", FALSE), 5); $val = prepare_sql($val); $tableau_notes[$index]['notes'][$id_eval]['comment_devoir'] = $val; } } // on enregistre $tableau_notes dans la base foreach ($tableau_notes as $ligne_tableau) { foreach ($_SESSION[PREFIXE]["id_devoir"] as $id_eval) { if ($ligne_tableau['notes'][$id_eval]['new_note']) { // on crée une entrée $sql_table = "INSERT INTO cn_notes_devoirs (login, id_devoir, note, comment, statut)\n VALUES ('" . $ligne_tableau['login'] . "',\n '" . $ligne_tableau['notes'][$id_eval]['id_devoir'] . "',\n '" . $ligne_tableau['notes'][$id_eval]['note_devoir'] . "',\n '" . $ligne_tableau['notes'][$id_eval]['comment_devoir'] . "',\n '" . $ligne_tableau['notes'][$id_eval]['statut'] . "')"; } else { // on met à jour $sql_table = "UPDATE cn_notes_devoirs\n SET note = '" . $ligne_tableau['notes'][$id_eval]['note_devoir'] . "',\n statut= '" . $ligne_tableau['notes'][$id_eval]['statut'] . "',\n comment = '" . $ligne_tableau['notes'][$id_eval]['comment_devoir'] . "'\n WHERE login = '******'login'] . "'\n AND id_devoir = '" . $ligne_tableau['notes'][$id_eval]['id_devoir'] . "'"; } $query_table = mysql_query($sql_table); if (!$query_table) { charge_message("ERREUR : Erreur lors de l'enregistrement dans la base ! (" . $index . ")"); charge_message("<strong>Vérifiez vos données puis enregistrez à nouveau</strong>"); return FALSE; } // on met à jour les moyennes de conteneurs $_current_group["eleves"][$_SESSION[PREFIXE]['periode_num']]["list"][] = $ligne_tableau['login']; $arret = 'no'; $sql_conteneur = "SELECT id_conteneur FROM cn_devoirs WHERE id = '" . $ligne_tableau['notes'][$id_eval]['id_devoir'] . "'"; $query_conteneur = mysql_query($sql_conteneur); if (!$query_conteneur) { charge_message("ERREUR : Echec de la mise à jour des conteneurs"); mysql_free_result($query_conteneur); return FALSE; } $conteneur = mysql_fetch_object($query_conteneur); mysql_free_result($query_conteneur); mise_a_jour_moyennes_conteneurs($_current_group, $_SESSION[PREFIXE]['periode_num'], $_SESSION[PREFIXE]['id_racine'], $conteneur->id_conteneur, $arret); } unset($id_eval); } unset($ligne_tableau); // Si on modifie un devoir alors que des notes ont été reportées sur le bulletin, il faut penser à mettre à jour la recopie vers le bulletin. $sql = "SELECT 1=1 FROM matieres_notes \n WHERE periode='" . $_SESSION[PREFIXE]['periode_num'] . "'\n AND id_groupe='" . $_SESSION[PREFIXE]['id_groupe_session'] . "';"; $test_bulletin = mysql_query($sql); if (mysql_num_rows($test_bulletin) > 0) { charge_message("ATTENTION: Des notes sont présentes sur le bulletin.<br />Si vous avez modifié ou ajouté des notes, pensez à mettre à jour la recopie vers le bulletin."); } mysql_free_result($test_bulletin); return TRUE; }
/** Enregistre les données collées dans la base * * Enregistre les données en vérifiant si c'est une mise à jour * * met à jour les moyennes de conteneurs * * @return bool TRUE si les données ont été enregistrées, FALSE sinon * @see charge_message() * @see mise_a_jour_moyennes_conteneurs() */ function enregistre_colle() { // echo $_SESSION[PREFIXE]['eval_colle'].'<br />'; foreach ($_SESSION[PREFIXE]['tableau_colle'] as $eleve) { if (isset($eleve['commentaire'])) { $comment = $eleve['commentaire']; } else { $comment = ''; } if (isset($eleve['note'])) { $note = $eleve['note']; } else { $note = ''; } if (isset($eleve['statut'])) { $statut = $eleve['statut']; } else { $statut = ''; } // On cherche s'il y a déjà un enregistrement $sql = "SELECT 1=1 FROM cn_notes_devoirs \n WHERE login = '******'login'] . "' \n AND id_devoir = '" . $_SESSION[PREFIXE]['eval_colle'] . "'"; $query = mysql_query($sql); if (0 == mysql_num_rows($query)) { // On a pas d'enregistrement, on le crée $sql_table = "INSERT INTO cn_notes_devoirs (login, id_devoir, note, comment, statut)\n\t\t VALUES ('" . $eleve['login'] . "', '" . $_SESSION[PREFIXE]['eval_colle'] . "', '" . $note . "', '" . $comment . "', '" . $statut . "')"; } else { // On a un enregistrement on le met à jour $envoi = ""; if ($note != '' || $statut != '') { $envoi = "note = '" . $eleve['note'] . "', statut= '" . $eleve['statut'] . "'"; } if ($comment != '') { if ($envoi != '') { $envoi .= ', '; } $envoi .= "comment= '" . $eleve['commentaire'] . "'"; } $sql_table = "UPDATE cn_notes_devoirs\n\t\t SET " . $envoi . "\n\t\t WHERE login = '******'login'] . "'\n AND id_devoir = '" . $_SESSION[PREFIXE]['eval_colle'] . "'"; } if (!mysql_query($sql_table)) { charge_message("ERREUR : Echec de l'enregistrement dans la base ! (" . $eleve['nom'] . " " . $eleve['prenom'] . ")"); charge_message("<bold>Collez à nouveau vos données et vérifier les puis enregistrez à nouveau</bold>"); mysql_free_result($sql_table); return FALSE; } // on met à jour les moyennes de conteneurs $_current_group["eleves"][$_SESSION[PREFIXE]['periode_num']]["list"][] = $eleve['login']; $arret = 'no'; $sql_conteneur = "SELECT id_conteneur FROM cn_devoirs WHERE id = '" . $_SESSION[PREFIXE]['eval_colle'] . "'"; $query_conteneur = mysql_query($sql_conteneur); if (!$query_conteneur) { charge_message("ERREUR : Echec de la mise à jour des conteneurs"); mysql_free_result($query_conteneur); return FALSE; } $conteneur = mysql_fetch_object($query_conteneur); mysql_free_result($query_conteneur); mise_a_jour_moyennes_conteneurs($_current_group, $_SESSION[PREFIXE]['periode_num'], $_SESSION[PREFIXE]['id_racine'], $conteneur->id_conteneur, $arret); } return TRUE; }
foreach ($groupe_dest["classes"]["list"] as $tmp_id_classe) { if ($groupe_dest["classe"]["ver_periode"][$tmp_id_classe][$periode_num_dest] == 'N') { foreach ($groupe_dest["eleves"][$periode_num_dest]["telle_classe"][$tmp_id_classe] as $ele_login) { if (isset($tab_note[$ele_login])) { $sql = "INSERT INTO cn_notes_devoirs SET id_devoir='{$id_devoir_dest}', login='******', note='" . $tab_note[$ele_login]['note'] . "', statut='" . $tab_note[$ele_login]['statut'] . "', comment='" . mysqli_real_escape_string($GLOBALS["mysqli"], $tab_note[$ele_login]['comment']) . "';"; $insert = mysqli_query($GLOBALS["mysqli"], $sql); if (!$insert) { $msg .= "Erreur lors de l'enregistrement de la note pour " . civ_nom_prenom($ele_login) . "<br />"; } } } } } // Mise à jour des moyennes $arret = 'no'; mise_a_jour_moyennes_conteneurs($groupe_dest, $periode_num_dest, $id_cn_dest, $id_cn_dest, $arret); if ($msg == "") { $msg = "Devoir copié : <a href='saisie_notes.php?id_groupe={$id_groupe_dest}&periode_num={$periode_num_dest}'>{$lig_dev_src->nom_court}</a>.<br />"; } } } } } } //require('cc_lib.php'); //$themessage = 'Des notes ont été modifiées. Voulez-vous vraiment quitter sans enregistrer ?'; //**************** EN-TETE ***************** $titre_page = "Copie de devoir"; require_once "../lib/header.inc.php"; //**************** FIN EN-TETE ***************** //debug_var();
} $insert_note = mysqli_query($GLOBALS["mysqli"], $sql); if ($insert_note) { $nb_notes++; } } echo " {$nb_notes} note(s) générée(s)"; } } else { echo "<span style='color:red;'>ECHEC</span>"; } echo "<br />"; } echo "Mise à jour des moyennes de conteneurs.<br />"; $arret = 'no'; mise_a_jour_moyennes_conteneurs($current_group_dest, $lig_ccn_src->periode, $id_cahier_notes_dest, $id_cahier_notes_dest, $arret); foreach ($reg_eleves[$lig_ccn_src->periode] as $login_ele) { $sql = "SELECT * FROM cn_notes_conteneurs WHERE login='******' AND id_conteneur='{$id_cahier_notes_dest}' AND statut='y'"; $res_moy_carnet = mysqli_query($GLOBALS["mysqli"], $sql); if (mysqli_num_rows($res_moy_carnet) == 0) { $moy_carnet = "-"; } else { $lig_moy_carnet = mysqli_fetch_object($res_moy_carnet); $moy_carnet = $lig_moy_carnet->note; $sql = "DELETE FROM matieres_notes WHERE id_groupe='" . $id_groupe_dest[$i] . "' AND login='******' AND periode='{$lig_ccn_src->periode}';"; $menage = mysqli_query($GLOBALS["mysqli"], $sql); $sql = "INSERT INTO matieres_notes SET id_groupe='" . $id_groupe_dest[$i] . "', login='******', periode='{$lig_ccn_src->periode}', note='{$moy_carnet}';"; //echo "$sql<br />"; $insert = mysqli_query($GLOBALS["mysqli"], $sql); if ($moy_carnet >= 15) { $sql = "DELETE FROM matieres_appreciations WHERE id_groupe='" . $id_groupe_dest[$i] . "' AND login='******' AND periode='{$lig_ccn_src->periode}';";