security_check(); if ($resultat_session == 'c') { header("Location: ../utilisateurs/mon_compte.php?change_mdp=yes"); die(); } else if ($resultat_session == '0') { header("Location: ../logout.php?auto=1"); die(); } if (!checkAccess()) { header("Location: ../logout.php?auto=1"); die(); } //**************** EN-TETE ***************** $titre_page = "Outil d'initialisation de l'année : Importation des élèves - Etape 2"; require_once("../lib/header.inc.php"); //**************** FIN EN-TETE ***************** // On vérifie si l'extension d_base est active //verif_active_dbase(); //debug_var(); // Passer à 'y' pour afficher les requêtes $debug_ele="n"; ?>
Les tables vidées seront : $chaine_tables
\n"; echo "\n"; echo "On vide d'abord les tables suivantes : ";
$j=0;
$k=0;
while ($j < count($liste_tables_del)) {
$sql="SHOW TABLES LIKE '".$liste_tables_del[$j]."';";
//echo "$sql
";
$test = sql_query1($sql);
if ($test != -1) {
if($k>0) {echo ", ";}
$sql="SELECT 1=1 FROM $liste_tables_del[$j];";
$res_test_tab=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($res_test_tab)>0) {
$sql="DELETE FROM $liste_tables_del[$j];";
$del = @mysqli_query($GLOBALS["mysqli"], $sql);
echo "".$liste_tables_del[$j]."";
echo " (".mysqli_num_rows($res_test_tab).")";
}
else {
echo $liste_tables_del[$j];
}
$k++;
}
$j++;
}
// Ménage infos_actions:
$sql="SELECT * FROM infos_actions WHERE titre LIKE 'Nouvel élève%';";
//echo "$sql
";
$test = mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($test)>0) {
echo "
";
echo "Suppression d'anciens messages en page d'accueil invitant à créer de nouveaux comptes élèves.";
$sql="DELETE FROM infos_actions WHERE titre LIKE 'Nouvel élève%';";
$del = mysqli_query($GLOBALS["mysqli"], $sql);
}
$sql="SHOW TABLES LIKE 'edt_corresp';";
//echo "$sql
";
$test = sql_query1($sql);
if ($test != -1) {
$sql="SELECT 1=1 FROM edt_corresp;";
$res_test_tab=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($res_test_tab)>0) {
echo "
";
echo "Suppression des enregistrements susceptibles de changer d'une année sur l'autre dans 'edt_corresp'.";
$sql="DELETE FROM edt_corresp WHERE champ!='matiere' AND champ!='prof' AND champ!='jour' AND champ!='salle';";
$del = mysqli_query($GLOBALS["mysqli"], $sql);
}
}
// Suppression des comptes d'élèves:
echo "
\n";
echo "
On supprime les anciens comptes élèves... ";
$sql="DELETE FROM utilisateurs WHERE statut='eleve';";
$del=mysqli_query($GLOBALS["mysqli"], $sql);
// Liste des comptes scolarité pour associer aux nouvelles classes
$sql="SELECT login FROM utilisateurs WHERE statut='scolarite';";
$res_scol=mysqli_query($GLOBALS["mysqli"], $sql);
$tab_user_scol=array();
if(mysqli_num_rows($res_scol)>0) {
while($lig_scol=mysqli_fetch_object($res_scol)) {$tab_user_scol[]=$lig_scol->login;}
}
// Pour ne pas mettre une info_action par classe si aucune période edt_calendrier n'est encore saisie
$sql="SELECT 1=1 FROM edt_calendrier WHERE classe_concerne_calendrier!=';' AND classe_concerne_calendrier!='';";
$test_cal=mysqli_query($GLOBALS["mysqli"], $sql);
$nb_edt_cal=mysqli_num_rows($test_cal);
// On ne met alors qu'une seule info_action
if($nb_edt_cal==0) {
$info_action_titre="Dates de périodes et de vacances";
$info_action_texte="Pensez à importer les périodes de vacances et saisir ou mettre à jour les dates de périodes et les classes associées dans Emplois du temps/Gestion/Gestion du calendrier. Erreur lors de l'enregistrement d'une période pour la classe $classe";
// 20150810
if($insert_ou_update_classe=="insert") {
$sql="SELECT * FROM edt_calendrier WHERE numero_periode='".$num."';";
$res_cal = mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($res_cal)==1) {
$lig_cal=mysqli_fetch_object($res_cal);
$tab_id_classe_deja=explode(";", $lig_cal->classe_concerne_calendrier);
$chaine_id_classe="";
for($loop=0;$loop Erreur lors de l'enregistrement d'une période pour la classe $classe";
}
}
}
$i++;
}
$sql="update periodes set date_verrouillage='0000-00-00 00:00:00';";
$res=mysqli_query($GLOBALS["mysqli"], $sql);
if($res) {
echo "Réinitialisation des dates de verrouillage de périodes effectuée. Vous venez d'effectuer l'enregistrement des données concernant les classes. S'il n'y a pas eu d'erreurs, vous pouvez aller à l'étape suivante pour enregistrer les données concernant les élèves.";
echo " Remarque sur les périodes : Le nombre de périodes doit correspondre au nombre de bulletins qui sera édité pour chaque élève sur l'année.
Les dates de vacances sont notamment utilisées pour les totaux d'absences.";
$info_action_destinataire=array("administrateur");
$info_action_mode="statut";
enregistre_infos_actions($info_action_titre,$info_action_texte,$info_action_destinataire,$info_action_mode);
}
// On va enregistrer la liste des classes, ainsi que les périodes qui leur seront attribuées
$call_data = mysqli_query($GLOBALS["mysqli"], "SELECT distinct(DIVCOD) classe FROM temp_gep_import2 WHERE DIVCOD!='' ORDER BY DIVCOD");
$nb = mysqli_num_rows($call_data);
$i = "0";
while ($i < $nb) {
$classe = old_mysql_result($call_data, $i, "classe");
// On enregistre la classe
$insert_ou_update_classe="";
// On teste d'abord :
$test = old_mysql_result(mysqli_query($GLOBALS["mysqli"], "SELECT count(*) FROM classes WHERE (classe='$classe')"),0);
if ($test == "0") {
$insert_ou_update_classe="insert";
$reg_classe = mysqli_query($GLOBALS["mysqli"], "INSERT INTO classes SET classe='".mysqli_real_escape_string($GLOBALS["mysqli"], nettoyer_caracteres_nom($classe, "an", " -_", ""))."',nom_complet='".mysqli_real_escape_string($GLOBALS["mysqli"], nettoyer_caracteres_nom($reg_nom_complet[$classe], "an", " '-_", ""))."',suivi_par='".mysqli_real_escape_string($GLOBALS["mysqli"], nettoyer_caracteres_nom($reg_suivi[$classe], "an", " .,'-_", ""))."',formule='".html_entity_decode(mysqli_real_escape_string($GLOBALS["mysqli"], nettoyer_caracteres_nom($reg_formule[$classe], "an", " .,'-_", "")))."', format_nom='cni'");
$id_classe=((is_null($___mysqli_res = mysqli_insert_id($GLOBALS["mysqli"]))) ? false : $___mysqli_res);
for($loop=0;$loop
";
}
else {
echo "Erreur lors de la réinitialisation des dates de verrouillage de périodes.
";
}
// On efface les classes qui ne sont pas réutilisées cette année ainsi que les entrées correspondantes dans j_groupes_classes
$sql="select distinct id_classe from periodes where verouiller='T';";
$res_menage = mysqli_query($GLOBALS["mysqli"], $sql);
$k = 0;
while ($k < mysqli_num_rows($res_menage)) {
$id_classe = old_mysql_result($res_menage, $k);
$res1 = mysqli_query($GLOBALS["mysqli"], "delete from classes where id='".$id_classe."'");
$res2 = mysqli_query($GLOBALS["mysqli"], "delete from j_groupes_classes where id_classe='".$id_classe."'");
$res3 = mysqli_query($GLOBALS["mysqli"], "delete from d_dates_evenements_classes where id_classe='".$id_classe."'");
// 20150810
$sql="SELECT * FROM edt_calendrier WHERE classe_concerne_calendrier LIKE '".$id_classe.";%' OR classe_concerne_calendrier LIKE '%;".$id_classe.";%';";
$res_edt=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($res_edt)>0) {
while($lig_edt=mysqli_fetch_object($res_edt)) {
$sql="UPDATE edt_calendrier SET classe_concerne_calendrier='".preg_replace("/^$id_classe;/", "", preg_replace("/;$id_classe;/", ";", $lig_edt->classe_concerne_calendrier))."' WHERE classe_concerne_calendrier LIKE '".$id_classe.";%' OR classe_concerne_calendrier LIKE '%;".$id_classe.";%';";
$update=mysqli_query($GLOBALS["mysqli"], $sql);
}
}
$k++;
}
// On supprime les groupes qui n'ont plus aucune affectation de classe
$res = mysqli_query($GLOBALS["mysqli"], "delete from groupes g, j_groupes_classes jgc, j_eleves_groupes jeg, j_groupes_professeurs jgp, j_groupes_matieres jgm WHERE (" .
"g.id != jgc.id_groupe and jeg.id_groupe != jgc.id_groupe and jgp.id_groupe != jgc.id_groupe and jgm.id_groupe != jgc.id_groupe)");
$res = mysqli_query($GLOBALS["mysqli"], "delete from periodes where verouiller='T'");
echo "
En collège par exemple, on saisira trois périodes (trimestres).
Cela n'empêchera pas d'éditer six relevés de notes par élève au cours de l'année si vous souhaitez des relevés de notes de demi-période.
Il ne serait en revanche pas possible d'éditer un bulletin fusion de deux périodes.