<?php
#=
/****************************************************************************
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/utiljs.php");
include("../include/creerlogin.inc.php");
include("../include/insert.inc.php");

$statut=$_REQUEST['statut'];
opensession($statut,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>Traitement du formulaire</title>
<link rel="stylesheet" href="<?php echo "../themes/".$etab_theme."/b2i.css" ?>">
</head>


<?php

function supp_refs($id) {
query("DELETE FROM lien_profs_classes WHERE prof_id=$id;");
query("DELETE FROM lpi WHERE prof_id=$id;");
query("DELETE FROM lrp WHERE prof_id=$id;");
//on ne supprime pas dans reponses pour ne pas brimer les élèves.
}

function supprimer($id) {
supp_refs($id);
query("DELETE FROM profs WHERE prof_id=$id;");
query("DELETE FROM comptes WHERE prof_id=$id;");
}

function enregistrer($prof_id) {
//enregistre un prof :
//si le prof existait déjà ($idprof!=0), c'est une modification
     //enregistre civilité, nom, prénom (table PROFS) et classes (table CLASSES)
//si c'est un nouveau ($idprof==0), c'est une création
     //enregistre les mêmes choses, en créant un PROF_ID et un compte (table COMPTES)

global $etab_id, $sess_ascol,
       $IMPOSE_CHGT_MDP;
//récupération des variables du formulaire en local
$t=$_POST;
foreach ($t as $c => $v) $$c=$v;    //on dispose de toutes les variables du formulaire
//...sauf pour un très vieux PHP. Dans ce cas, on récupère les variables globales
if (!isset($nom)) {
    global $nom,$prenom,$civilite,$discipline,$disc_id,$login,$dnaiss,$mdpinit,
           $pradmin, $prgest, $adminadj;
}
//écriture dans les tables PROFS, COMPTES, préparation de LIENS_PROFS_CLASSES
$dnaiss=normerdatenaiss($dnaiss);
if ($prof_id) {
    //----------------------
    //modification d'un prof
    //----------------------
    //on récupère l'ancien login (méthode peu futée : on aurait pu le stocker et le passer en paramètre)
    $result=query("SELECT login FROM comptes WHERE prof_id=$prof_id;");
    if (mysql_num_rows($result)!=1) {
        alert("Problème avec le compte (login,mdp). \nContactez le sadmin en précisant prof_id=$prof_id.");
        return;
        }
    $row=mysql_fetch_array($result);
    $oldlogin=stripslashes($row["login"]);
    if ($login!=$oldlogin) { // le login a été changé : maj de la table COMPTES
        //le paramètre $conn est n'importe quoi (voir remarques dans la fonction)
        $login=LoginUnique($login); //cherche le login possible avec $login
        query("UPDATE comptes SET login='".secs($login)."' WHERE prof_id=".seci($prof_id));
    }
    if (isset($mdpinit) && ($mdpinit=="on"))   { //demande d 'initialisation du mdp
        $passwd=md5($dnaiss);
        if ($IMPOSE_CHGT_MDP) $chg_mdp=", actif='0' ";
        else $chg_mdp="";
        query("UPDATE comptes SET mdp='$passwd' $chg_mdp WHERE prof_id=".seci($prof_id));
    }

    $iadm=0;
    if ((isset($pradmin)) &&  ($pradmin=="on")) $iadm=1;    //affecte le bit 0
    if ((isset($adminadj)) &&  ($adminadj=="on")) $iadm|=2; //affecte le bit 1

/*************** Partie modifiée par Béa *****************************/

    if ((isset($prgest)) &&  ($prgest=="on"))    $iadm|=4; //affecte le bit 2

/*************** Il y a la même plus bas *****************************/

	//En mode admin-adjoint, ça fout la merde, car on récupère le statut des profs que l'on traite !
	//Idem pour le sess_opt_dem1an plus bas...
	//$_SESSION['sess_statut_prof']=$iadm;

	//l'histoire des techno-maths :
	if (isset($accepte1an) && $accepte1an=='on') $accepte1an=1;
    else $accepte1an=0;

    //$_SESSION['sess_opt_dem1an']=$accepte1an;

    $sql="UPDATE profs
             SET nom='".secs($nom)."', prenom='".secs($prenom)."', civil='".secs($civilite)."',
                 dnaiss='".secs($dnaiss)."', disc_id='".seci($disc_id)."', admin=".seci($iadm).",
                 opt_dem1an=".seci($accepte1an)."
           WHERE prof_id=".seci($prof_id);
    query($sql);

		
    //supprimer les anciennes références (classes et compétences)
    supp_refs($prof_id);

}
else {
    //--------------------------
    //création d'un nouveau prof
    //--------------------------
    $login=LoginUnique(($login) ? $login : $prenom[0].$nom[0]);
    //on ne fabrique plus de faux GEP (ça ne sert à rien pour la bascule)
    //ajouter le prof dans PROFS
    $iadm=0;
    if ((isset($pradmin)) && ($pradmin=='on')) $iadm=1;
    if ((isset($adminadj)) && ($adminadj=='on')) $iadm|=2;

/*************** Partie modifiée par Béa *****************************/

    if ((isset($prgest)) && ($prgest=='on')) $iadm|=4;

/**********************************************************************/
    if (isset($accepte1an) && $accepte1an=='on') $accepte1an=1;
    else $accepte1an=0;

    $sql="INSERT INTO profs
             SET nom='".secs($nom)."', prenom='".secs($prenom)."', civil='".secs($civilite)."', tag=0,
                 dnaiss='".secs($dnaiss)."', disc_id=".seci($disc_id).", etab_id=$etab_id,
                 annee='$sess_ascol', admin=$iadm,
                 opt_dem1an=$accepte1an";
    query($sql);
    $prof_id=mysql_insert_id();

    //rajouter un compte dans COMPTES
    $passwd=md5($dnaiss);
    if ($IMPOSE_CHGT_MDP) $actif=0; else $actif=1;

    $sql="INSERT INTO comptes
                 SET login      = '".secs($login)."',
                     mdp        = '$passwd',
                     statut     = 'Prof',
                     actif      = ".seci($actif).",
                     nbsessions = 0,
                     prof_id   = ".seci($prof_id).",
                     etab_id    = $etab_id";

    query($sql);
    $cpte_id=mysql_insert_id();

    //Mettre à jour l'enregistrement du prof
    $sql="UPDATE profs ".
         "   SET compte_id=".seci($cpte_id ).
         "   WHERE prof_id=".seci($prof_id);
    query($sql);
}

//-----------------------------
//ajouter les nouvelles classes
//-----------------------------
if (isset($CBClasses)) $k=count($CBClasses);
    else $k=0;
for ($i=0; $i<$k; $i++) {
     $classe_id=$CBClasses[$i];
     query("INSERT INTO lien_profs_classes SET prof_id=".seci($prof_id).",classe_id=".seci($classe_id));
}

//---------------------------------
//ajouter les nouvelles compétences
//---------------------------------
if (isset($CBCompetences)) $j=count($CBCompetences);
    else $j=0;
for ($i=0; $i<$j; $i++) {
     $item_id=$CBCompetences[$i];
     query("INSERT INTO lpi
            SET prof_id=".seci($prof_id).", item_id=".seci($item_id));
     }
}


//*******************
//Programme principal
//*******************
//On arrive ici depuis profs_form ou profs_ajout1, après avoir cliqué
//sur l'un des boutons de la page : enregistrer, supprimer, quitter

if ($statut=="Prof")
	print "<body class=\"arialprof\">";
else 
	print "<body class=\"arialadmin\">";

$continuer=true;
if (!isset($id)) $continuer=false;
elseif ($id==-1 && $statut=='Prof') 
	$pid=$sess_mec_id; // c'est le prof lui-même
elseif ($id==0 && $statut=='Admin')
	$pid=0; //rien, on continue, c'est une création
else {
	$pid=@$_SESSION['temp']['prof'][$id];
	if (!isset($pid)) $continuer=false;
	}

if (!$continuer) {
	print "</body></html>\;";
	piratage();
	}

$cible="profs_liste.php";

if (isset($enregistrer)) {
    Enregistrer($pid);
    $message="enregistrée";
    echo "<BR>";
}
elseif (isset($supprimer)) {
    supprimer($pid);
    $message="supprimée";
}
elseif (isset($enreserve)) {
	query("UPDATE profs SET annee=annee-1 WHERE prof_id=$pid");
	$message="mise en réserve";
    js("parent.liste.location.href='$cible'");
	}
elseif (isset($invalider)) {
	query("UPDATE comptes SET actif=-1 WHERE prof_id=$pid");
	$message="désactivée";
    js("parent.liste.location.href='$cible'");
	}
elseif (isset($revalider)) {
	query("UPDATE comptes SET actif=1 WHERE prof_id=$pid");
	$message="réactivée";	
    js("parent.liste.location.href='$cible'");
	}	

//alert("avant de sortir statut=$statut");
if ($statut=="Admin") {
    refresh_frame("liste");
    alert("Fiche bien $message !");
    goto("../admin/profs_form.php?statut=Admin");
}
else {
	$_SESSION['temp']['prof']=array();
    goto("../prof/prof_bas.php");
}
//attention : ce script est appelé par admin et par prof
//l'ancre ci-dessous revient dans tous les cas à la bonne page.

?>
</body>
</html>