<?php
#G
#=
/****************************************************************************
Copyright 2002, Daniel Deycard, Jacques Messines, Stéphanie Roussel, Jean-Marie Treins
(CATICE Académie de Bordeaux)

This file is part of GiBii/Melia.

GiBii/Melia is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.

GiBii/Melia is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with GiBii/Melia; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA

****************************************************************************/
include("../include/vars_adm.php");
include("../include/util.inc.php");
include("../include/get.inc.php");
include("../include/suppr.inc.php");

set_time_limit(600);
opensession("Admin",false);

?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
<TITLE>nom1</TITLE>
<BASE TARGET="_self">
<link rel="stylesheet" href="<?php echo "../themes/".$etab_theme."/b2i.css" ?>">

<?php include("../include/utiljs.php"); ?>
<script language='javascript'>
function clicglobal(formulaire, nomchkbx, ouinon)
//formulaire et momchkbx sont des chaînes spécifiant les "name" des objets
//ouinon vaut true ou false
// toutes les cases à cocher spécifiées sont cochées (ou décochées si ouinon==false)
{
 var frm=eval('document.'+formulaire);
 //on ne peut pas invoquer les checkboxes par leur nom du fait des
 //crochets nécessaires à PHP, d'où le test bestial dans la boucle ci-dessous
 for (i=0;i<frm.elements.length; i++) {
     if (frm.elements[i].name==nomchkbx) {
             frm.elements[i].checked=ouinon;
        //alert('name='+frm.elements[i].name+' param='+nomchkbx);
        }
     }
}

function classeestbonne() { //vérifie le formulaire avant envoi
    var frm=document.new_classe;
    if (!frm.nom_classe.value) {
       alert("Le nom de la classe est vide.");
       return false;
       }
       return true;
    }
</script>
</HEAD>
<body class="arialadmin" link="white" vlink="white" alink="white">


<p class="sous_titre" align="center">Traitements des anciens utilisateurs</p><hr>
<p class='avis5'>
Vous trouverez ici les utilisateurs n'ayant pas été incorporés depuis un an ou plus. Vous pouvez au choix, les supprimer <b>définitivement</b>,
 ou bien les <b>restaurer</b> en les remettant dans une classe, grâce aux boutons correspondants.<br />

L'<b>année</b> de référence indiquée est celle du mois de rentrée de leur dernière année scolaire dans cet établissement.
<br /><Span Class= "warning"> ATTENTION</Span>, la suppression des <span class="warning"> utilisateurs</span> de l'année précédente (fond jaune) est désactivée car ils sont susceptibles
d'être importés par un autre établissement scolaire ou bien sont encore référencés dans la table des réponses.
</p><br/>
<?php

function comboclas($id,$monetab,$etab,$classe) {
static $tabclasses=array();
//on ne calcule ce tableau qu'une seule fois car il s'agit des classes de $monetab,
//qui ne change pas d'un appel à l'autre
   if (empty($tabclasses)) {
       $sqlclasses="SELECT * FROM classes WHERE etab_id=$monetab AND divgro='D' ORDER BY divcod;";
       $resultclasses=query ($sqlclasses);
       while ($rowclasses=mysql_fetch_array($resultclasses)) {
           $tabclasses[$rowclasses["classe_id"]]=$rowclasses["divcod"];
           }
       mysql_free_result($resultclasses);
       }

   $combo_classes="<select name=\"newclasse_id[$id]\" size=\"1\">\n";
        //l'option sélectionnée se retrouvera dans $newclasse_id
        //afficher les classes dans une combo-box, avec la classe de l'élève sélectionnée
        // s'il est du bahut
   foreach ($tabclasses as $classe_id => $divcod)  {
       $selected=($classe_id==$classe) ? "selected" : "";
       //if ($selected) echo
       $combo_classes.="<option $selected value='$classe_id'>\n";
       $combo_classes.=$divcod.
           "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;". //pour élargir la combo-box
           "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
       $combo_classes.="</option>\n";
       }
   if ($etab!=$monetab) {
       $combo_classes.= "<option selected value='0'>-- Autre étab --</option>";
       }
   $combo_classes.="</select>";
   return $combo_classes;
}

function restaurel($elevid, $classid, $etabid) {
  //Remettre l'élève dans la classe $classid avec la bonne année scolaire
  if ($classid!=0) {
	$an=ascol();
    $sqlresto="UPDATE eleves
                SET annee=$an, classe_id=".seci($classid).", etab_id=".seci($etabid)."
                WHERE eleve_id=".seci($elevid);
    $resresto=query($sqlresto);
    //Mettre à jour la table comptes !!!!
    $rescompt=query("UPDATE comptes SET etab_id=".seci($etabid)." WHERE eleve_id=".seci($elevid));
    //Refaire le bon lien_eleves_classes !
    $res=query("DELETE FROM lien_eleves_classes WHERE eleve_id=$elevid"); //tous les anciens liens sont inutiles
    query("INSERT INTO lien_eleves_classes SET eleve_id=".seci($elevid).", classe_id=".seci($classid)."");
    return true;
    }
  else return false;
}

function restaurep($profid) {
    //Remettre le prof avec la bonne année scolaire
    $an=ascol();
    $sqlresto="UPDATE profs ".
      " SET annee=$an ".
      " WHERE prof_id=".seci($profid ).";";
    $resresto=query($sqlresto);
    return $resresto;
}

function supprimel($eleve_id) {   //suppression élève
// on supprime l'élève des tables dans lesquelles il n'est plus nécessaire
//Chercher les demandes et virer les réponses correspondantes
$sqlel="SELECT * FROM demandes WHERE eleve_id=$eleve_id ;";
$resel=query($sqlel);
while ($rowel=mysql_fetch_array($resel)) {
    $messagid=$rowel[message_id];
    $sqlrep="DELETE FROM reponses WHERE message_id=$messagid;";
    query($sqlrep);
	}
//Virer le reste
query("DELETE FROM demandes WHERE eleve_id=$eleve_id;");
query("DELETE FROM resultats WHERE eleve_id=$eleve_id;");
suppr_resultats($eleve_id);
query("DELETE FROM eleves WHERE eleve_id=$eleve_id;");
query("DELETE FROM lien_eleves_classes WHERE eleve_id=$eleve_id;");

}


function supprimep($id) {  //Suppression prof
query("DELETE FROM lien_profs_classes WHERE prof_id=$id;");
query("DELETE FROM lpi WHERE prof_id=$id;");
query("DELETE FROM profs WHERE prof_id=$id;");
query("DELETE FROM comptes WHERE prof_id=$id;");
query("DELETE FROM lrp WHERE prof_id=$id;");
}



//Connexion à la base, ça servira dans les deux cas
$conn  = mysql_connect($host, $user, $mdp);
mysql_select_db($db, $conn) or die ("Impossible d'accéder à $db");;


//TOUS les élèves anciens ou ceux du bahut ?
//Par défaut le bahut et on peut changer

if (isset($debutnom) && ($debutnom!="")) {
    $debutnom="%".strtoupper(secs($debutnom))."%";
    $critere="  nom LIKE '$debutnom' ";
    }
else
    if (isset($cetab) && ($cetab>0)) {
        $critere=" etab_id=".seci($cetab);
        $tabetab=getetab($cetab);
        $nomet=$tabetab['nom']."  ".$tabetab['ville']."  ".$tabetab['codepostal'];
        if ($etab_id!=$cetab) print "<font color='red'>ATTENTION, les élèves anciens d'un autre établissement
                                    sont affichés, vous pouvez éventuellement en intégrer mais pas les supprimer.
                                    <b>Choisissez-leur une classe si vous voulez les restaurer !</b>
                                    <br />Pour les professeurs il n'est pas possible de récupérer des anciens comptes  									d'autres établissements.</font>";
        }
    else $critere=" etab_id=$etab_id ";

if (!isset($goelev)) { //Premier passage
   $PHP_SELF=basename($_SERVER['PHP_SELF']);
   print"<form name='formanciens1' method=\"POST\"  action=$PHP_SELF >\n";
   //Choix de l'établissement
   print "<div align='center'><table  width='80%' border='1' cellpadding='5%'><tr><td  align='center'>";
   print "Si vous voulez voir les anciens élèves d'un autre établissement, ";
   comboetabs(1);
   print "</td><td align='center'>";
   print "Si vous voulez les élèves de tous les établissements dont vous connaissez une partie du nom : ";
   print "<input type='text' name='debutnom' size=8> <br> <input class='coul' type='submit' name='btn_debut' value='Rechercher'>";
   print "</td></tr></table></div>";
   print "</form>";

   //trouver tous les anciens élèves
   $sqlelev="select *  from eleves
             WHERE  $critere
              AND annee< $sess_ascol
              ORDER by etab_id, annee ASC, nom, prenom";
   $resultelev=query ($sqlelev);

   //trouver tous les anciens profs
   $sqlprof="select * from profs ".
             "WHERE  etab_id=$etab_id ".
             " AND annee< ($sess_ascol) ORDER by etab_id, annee ASC, nom, prenom  ;";
   $resultprof=query ($sqlprof);

   //Formulaire principal
   print"<form name='formanciens' method=\"POST\" onsubmit=\"return confirm('Vraiment lancer le traitement ?')\" action=$PHP_SELF >\n";

   //Préparation tableau pour élèves
   print "<p class=\"rubrique\" align=\"center\">Anciens élèves </p>\n";
   print "<table border=\"1\" align=\"center\" width=\"95%\">\n";

   print "<tr class=\"rubrique\">\n<td>Etab.</td><td>Action</td>";
   /*print "<font size='-1'><a href='#' title=\"Coche tous les élèves\"
      onclick=\"clicglobal('formelev','CBSup[]',true);\">[Tous]</a>
   &nbsp;&nbsp;&nbsp;<a href='#' title=\"Décoche tous les élèves\"
   onclick=\"clicglobal('formelev','CBSup[]',false);\">[Aucun]</a></font>";
   */

   print "<td>Nom</td><td>Prénom</td><td>D. de Naiss.</td><td>Année</td><td>Classe</td>\n</tr>\n";
   $ijk=0;
   $anact=ascol();
   while($row=mysql_fetch_array($resultelev)) {
        $etabid=$row['etab_id'];
        $nom=$row['nom'];
        $prenom=$row['prenom'];
        $dnaiss=$row['dnaiss'];
        $an=$row['annee'];
        $ind_elev=$row['eleve_id'];
        $classeid=$row['classe_id'];
        if (($an==$anact-1) || ($etabid!=$etab_id)) {
            if ($etabid==$etab_id) $sty="jaune";
            else $sty="";
            $dis="disabled";
            $check="checked";
        }
        else {
              $sty="";
              $dis="";
              $check="checked";
        }

        print "<tr  class=\"$sty\">\n";
        print "<td class='centre'>".getrne($etabid)."</td><td class='centre'><input type='radio' name='radeleve[$ijk]' value='Rien' ".$check." >Ne rien faire&nbsp;&nbsp;\n";
        print "<input type='radio' name='radeleve[$ijk]' value='Supprimer' ".$dis." >Supprimer&nbsp;&nbsp;\n";
        print "<input type='radio' name='radeleve[$ijk]' value='Restaurer'>Restaurer</td>\n";
        print "<td>&nbsp;$nom</td><td>&nbsp;$prenom</td><td class='centre'>$dnaiss</td><td class='centre'>$an</td>\n";
        //afficher les classes
        print "<td class='centre'><p>\n";
        print comboclas($ijk,$etab_id,$etabid,$classeid);
        print "</p>";
        print "</tr>\n";
        print "<input type='hidden' name='eleveid[$ijk]'  value=$ind_elev>";

        $ijk++;
        }
   print "</table>\n";


   //Préparation tableau pour profs
   print "<p class=\"rubrique\" align=\"center\">Anciens professeurs <i>(locaux)</i></p>\n";
   print "<table border=\"1\" align=\"center\" width=\"95%\">\n";
   print "<tr class=\"rubrique\">\n<td>Etab.</td><td>Action</td>";
   print "<td>Nom</td><td>Prénom</td><td>Année</td><td>Discipline</td>\n</tr>\n";
   $ijkl=0;
   while($rowp=mysql_fetch_array($resultprof)) {
        $nom=$rowp['nom'];
        $prenom=$rowp['prenom'];
        $an=$rowp['annee'];
        $ind_prof=$rowp['prof_id'];
        $discipid=$rowp['disc_id'];
        if ($an==ascol()-1) {
            $sty="impaire";
            $dis="disabled";
        }
        else {
              $sty="";
              $dis="";
        }
        print "<tr class=$sty>\n<td class='centre'>".getrne($etab_id)."</td>";
        print "<td class='centre'><input type='radio' name='radprof[$ijkl]' value='Rien' checked>Ne rien faire&nbsp;&nbsp;\n";
        print "<input type='radio' name='radprof[$ijkl]' value='Supprimer' ".$dis." >Supprimer&nbsp;&nbsp;\n";
        print "<input type='radio' name='radprof[$ijkl]' value='Restaurer'>Restaurer</td>\n";
        print "<td>&nbsp;$nom</td><td>&nbsp;$prenom</td><td class='centre'>$an</td>\n";
        //afficher la discipline
        $d=getdisc($discipid);
        if (!$d) $d="&nbsp;";
        print "<td class='centre'>$d</td></tr>\n";
        print "<input type='hidden' name='profid[$ijkl]'  value=$ind_prof>";

        $ijkl++;
        }
   print "</table>\n";      //Fin de la table des profs

   print "<p align=\"center\">\n<input type='submit' class=\"coul\" name=\"goelev\" value=\"Traiter\">\n</p>\n";
   print "</form>\n";
   $mess="";
   $pluriel=($ijk==1) ? "" : "s";
   if ($ijk==0) $mess="Pas d'ancien élève";
     else  $mess="$ijk ancien$pluriel élève$pluriel";
   //if ($ijkl==0) $mess.="\nPas d'ancien professeur";
   if (isset($nomet)) $mess=$nomet." :\n".$mess;
   if ($mess!="") alert($mess);

   } else { //2° passage,  TRAITEMENTS
   //==================================================================

   //Tableau des élèves à supprimer pour export
   $nbsupelev=0;

   //Traitement élèves
   $cont=0;
   $message="";
   while (@$radeleve[$cont]!="") {
         //On traite l'élève en fonction du radio coché
         switch ($radeleve[$cont]) {
            case "Supprimer":
                //export($eleveid[$cont]);
                supprimel($eleveid[$cont]);
                $message.="Elève ".$eleveid[$cont]." supprimé.\n";
                break;
            case "Restaurer":
                //alert("($eleveid[$cont],$newclasse_id[$cont], $etab_id)");
                $ok=restaurel($eleveid[$cont],$newclasse_id[$cont], $etab_id);
                $message.="Elève ".$eleveid[$cont];
				if ($ok) $message.=" restauré.\n";
				else $message.=" non restauré (classe non choisie).\n";
                break;
                }
         $cont++;
         }  //fin élèves

   //Traitement profs
   $cont=0;
   while (@$radprof[$cont]!="") {
         //On traite le prof en fonction du radio coché
         switch ($radprof[$cont]) {
            case "Supprimer":
                supprimep($profid[$cont]);
                $message.="Prof ".$profid[$cont]." supprimé.\n";
                break;
            case "Restaurer":
                restaurep($profid[$cont]);
                $message.="Prof ".$profid[$cont]." restauré.\n";
                break;
                }
         $cont++;
         }  //fin profs

   if (($message!="") and (strlen($message)<120)) alert($message);
        else {
            $message=str_replace("\n","<br />",$message);
            print $message;
            alert("Tout s'est bien passé...");
            }
   goto("admin_bas.php");
}
?>

</BODY>
</HTML>