<?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/get.inc.php");
include("../include/util.inc.php");
include("../include/utiljs.php");
require_once("../include/define.inc.php");
include("../include/attestations.inc.php");
include("../include/purges.inc.php");
include("../include/insert.inc.php");

connexion("$db");
opensession('Admin',false);


function apure_demandes($etab) {
 //remet à plat la table des demandes, par ex après un changement de stratégie
 //Tient compte de  $etab_nb_validations, de $etab_nbj_vie_demande
 //et de $etab_nb_max_refus
 global $tablang,$MODULE,
        $etab_nb_validations,$etab_nb_max_refus,
        $etab_nbj_vie_demande;

 //récupérer les disciplines une fois pour toutes pour éviter les requêtes (utile partout)
 //ATTENTION, pour Melia il faut commencer à 0 donc :
if ($MODULE=='Melia') $initial=0; else $initial=1;
$res3=query("SELECT libelle,code_langue FROM disciplines ORDER BY disc_id");
for ($i=$initial; list($tablang[$i],$tabcodelang[$i])=mysql_fetch_array($res3) ; $i++);


$mess_ret="Modifications apportées aux items en attente de validation :<br />";
//Préparer les demandes de l'établissement
$sqldem="   SELECT demandes.message_id, 
                TO_DAYS( CURDATE( ))-TO_DAYS( demandes.quand )  AS nbj, 
                demandes.eleve_id, demandes.item_id, demandes.disc_id,
                obtenue,nboui,nbnon,longue,
                nom,prenom 
            FROM demandes,eleves 
            WHERE demandes.eleve_id=eleves.eleve_id 
            AND TO_DAYS( CURDATE( ))-TO_DAYS( demandes.quand )<$etab_nbj_vie_demande 
            AND eleves.etab_id=$etab
            AND active=1 
            ORDER BY quand desc";
$res=query($sqldem);
while (list($mess_id, $nbj, $el_id, $it_id, $disc,$obtenu,$nboui,$nbnon,$longue,
                $nom,$prenom)=mysql_fetch_array($res)) {
    //les demandes déjà obtenues ou inactivées antérieurement ne sont pas modifiées (pas de rétro-activité)
    if ($obtenu || est_inactivee($mess_id,$el_id,$it_id,$disc,$nbj,$nbnon,$nboui,$longue)) 
        continue;
    $elev="$nom $prenom";
    $bilan=$nboui-$nbnon;
    if  ($bilan>=$etab_nb_validations) {
        //l'item est acquis et pas dans resultats on l'écrit
        query("UPDATE demandes set obtenue=1, active=0 WHERE message_id=".seci($mess_id));
        ajout_resultat($el_id,$it_id,$disc,$mess_id,0);
        //Pour Melia on affiche dans quelle langue on a réajusté
        if ($MODULE=='Melia') $langue="en ".$tablang[$disc];  else $langue='';
        $mess_ret.="<br>Item acquis $it_id pour $elev  $langue";
        //On vériife si ça ne donne pas un brevet ?
        calcule_brevets($el_id);
        }
    elseif ($etab_nb_max_refus && $nbnon>=$etab_nb_max_refus) {
            //virer la demande et les réponses associées
            query("UPDATE demandes SET active=0 WHERE message_id=".seci($mess_id));
            $mess_ret.="<br>Trop de refus ou date dépassée : demande annulée pour l'item $it_id pour $elev";
            }

    } //fin while
return $mess_ret;
}


//===========================================================================================================
$source=$_GET['source'];;
if (strpos($source, "?")>0) $source=substr($source,0,strpos($source,"?"));
switch ($source) {
    case "options"   :
         //deuxième passage : traitement du formulaire
         //$style sera celui envoyé par les cas ci-dessous
         //recuprequest() donne priorité aux variables GET et POST sur celles
         //de session. C'est essentiel pour le 2e passage où les variables
         //de session auraient écrasé les variables POST engrangées dans le
         //formulaire (ce qu'a fait opensession).
         $themecourant=$etab_theme;   //on stocke le theme courant pour éviter l'écrasement
         recuprequest(); //rétablit la priorité au POST
         break;
    case "admin_bas" :
         $style="arialadmin";
         //premier passage : on mémorise les 2 scripts suivants
         //les 2 points d'interrogation '?' sont normaux ! Il y a 2 niveaux de paramètres
         $cible1="options.php?source=options&cible2=../admin/admin_ut.php&style=".$style."&etab_id=".$etab_id;
         break;
    default: print "Vous n'êtes pas autorisé à accéder directement à cette page.";
             exit(); //entrée anormale
}

if (!isset($cible2)) {  //premier passage : on affiche le formulaire
    include("../admin/options.form.php");
}
else {
    //traitement du formulaire
    //========================

    if (isset($btn_sauver)) {
       $temps_limite=(int) $_POST['temps_limite'];
       //print $temps_limite.'<br />';
       if (empty($temps_limite) || !is_numeric($temps_limite) || $temps_limite>$SESS_TIMEOUT_MAX)
           $temps_limite=$SESS_TIMEOUT_MAX;
       elseif ($temps_limite<$SESS_TIMEOUT_MIN)
           $temps_limite=$SESS_TIMEOUT_MIN;
       //print $temps_limite.'<br />';
       //Mise à la norme des booléens
       if (isset($chgt_theme)) $chgt_theme=@bool($chgt_theme); else $chgt_theme=0;
       if (isset($theme_eleve_limite)) $theme_eleve_limite=@bool($theme_eleve_limite); else $theme_eleve_limite=0;
       if (isset($alert_message_vide)) $alert_message_vide=@bool($alert_message_vide); else $alert_message_vide=0;
       if (isset($mdp_eleve)) $mdp_eleve=@bool($mdp_eleve);  else  $mdp_eleve=0;
       if (isset($mdp_prof)) $mdp_prof=@bool($mdp_prof);  else $mdp_prof=0;
       if (isset($fiche_profs)) $fiche_profs=@bool($fiche_profs);  else $fiche_profs=0;
       if (isset($stats_profs)) $stats_profs=@bool($stats_profs); else  $stats_profs=0;
       if (isset($pop_profs)) $pop_profs=@bool($pop_profs); else $pop_profs=0;
       if (isset($vouvoyer_elev)) $vouvoyer_elev=@bool($vouvoyer_elev);   else $vouvoyer_elev=0;

       if (isset($pasdaideleve)) $pasdaideleve=@bool($pasdaideleve); else $pasdaideleve=0;
       if (isset($pasdaideprof)) $pasdaideprof=@bool($pasdaideprof); else $pasdaideprof=0;
       if (isset($pasdaideadmin)) $pasdaideadmin=@bool($pasdaideadmin); else $pasdaideadmin=0;	          


       //Garder ce param pour sadmin...
       //$modifs_items_etab=bool($modifs_items_etab);
       if (isset($valid_profs)) $valid_profs=@bool($valid_profs);   else  $valid_profs=0;
       if (isset($result_profs)) $result_profs=@bool($result_profs);  else  $result_profs=0;
       if (isset($groupes_profs)) $groupes_profs=@bool($groupes_profs);  else  $groupes_profs=0;
       if (isset($menus_CSS)) $menus_CSS=@bool($menus_CSS);  else  $menus_CSS=0;

       //quelques addslashes...
       $etab_nom=addslashes($etab_nom);
       $etab_adresse=addslashes($etab_adresse);
       $etab_ville=addslashes($etab_ville);
       $etab_tel_admin=stripslashes($etab_tel_admin);
       $etab_mail_admin=stripslashes($etab_mail_admin);
       
       //Quelques URL arrangées
       if (($URLaideeleve!="") and (strtoupper(substr($URLaideeleve,0,7))!="HTTP://"))  $URLaideeleve="http://".$URLaideeleve;
       if (($URLaideprof!="") and (strtoupper(substr($URLaideprof,0,7))!="HTTP://"))  $URLaideprof="http://".$URLaideprof;
       if (($URLaideadmin!="") and (strtoupper(substr($URLaideadmin,0,7))!="HTTP://"))  $URLaideadmin="http://".$URLaideadmin;

           //print_r($_POST);
           //print "<br>$temps_limite<br>";
       if ($chgt_theme==0) $theme_eleve_limite=0; // inutile de filtrer les themes eleve s'il ne peut changer son thème.

		//sauvegarder des paramètres dans la table _Etablissement
       $sqlsauve="UPDATE etablissements
                  SET nom='".secs($etab_nom)."',
                  adresse='".secs($etab_adresse)."', codepostal='".secs($etab_codepostal)."',
                  ville='".secs($etab_ville)."', mail_admin='".secs($etab_mail_admin)."',
				  tel_admin='".secs($etab_tel_admin)."',
                  theme='".secs($etab_theme)."', menus_CSS=".seci($menus_CSS).",
                  URL_aide_eleve='".secs($URLaideeleve)."',
                  URL_aide_prof='".secs($URLaideprof)."', 
				  URL_aide_admin='".secs($URLaideadmin)."',  
				  pas_aide_eleve=".seci($pasdaideleve).",
				  pas_aide_prof=".seci($pasdaideprof).",
				  pas_aide_admin=".seci($pasdaideadmin).",
                  chgt_theme=".seci($chgt_theme).",
                  theme_eleve_limite=".seci($theme_eleve_limite).",
                  niveau='".secs($etab_niveau)."', nb_validations=".seci($etab_nb_validations).",
                  nbj_vie_demande=".seci($etab_nbj_vie_demande).", nb_max_demandes=".seci($etab_nb_max_demandes).",
                  nb_max_refus=".seci($etab_nb_max_refus).",
                  modele_login_e='".secs($etab_modele_login_e)."',
                  modele_login_p='".secs($etab_modele_login_p)."',
                  alert_message_vide=".seci($alert_message_vide).",
                  mdp_eleve=".seci($mdp_eleve).", mdp_prof=".seci($mdp_prof).",
                  fiche_profs=".seci($fiche_profs).", stats_profs=".seci($stats_profs).",
                  pop_profs=".seci($pop_profs).", vouvoyer_elev=".seci($vouvoyer_elev).",
                  valid_profs=".seci($valid_profs).", result_profs=".seci($result_profs).", 
                  groupes_profs=".seci($groupes_profs).", sess_timeout=".seci($temps_limite)."
                  WHERE etab_id=$etab_id";
       query($sqlsauve);
       //Corriger les demandes en cours en cas de changement de stratégie
       $rapport="<br />";

       // print "old_nb_validations : $old_nb_validations actuel : $etab_nb_validations";
       // print "old_nb_refus : $old_max_refus actuel : $etab_nb_max_refus";


       if (($etab_nb_max_refus!=0 && ($etab_nb_max_refus<$old_max_refus || $old_max_refus==0 )) ||
          ($etab_nbj_vie_demande<$old_nbj_vie_demande) ||
          ($etab_nb_validations<$old_nb_validations))
              $rapport=apure_demandes($etab_id);
       elseif ($etab_nb_validations>$old_nb_validations) {
              //augmentation des nb de validations, on ajuste les réponses...
              //$rapport=abonde_reponses($etab_id,$etab_nb_validations);
            }

       //effectuer éventuellement les modifications des paramètres en mémoire
       //(utile seulement pour une provenance depuis admin -et non install)


getparams_etab($etab_id);

$etab_theme=$themecourant;

session_puts("etab_theme");


       //récupère les variables de session depuis _params et les "sessionnise"


       //on peut envoyer la purée HTML à partir de là
        print "<html><head>\n";
        print "<title>Options de $MODULE</title>\n";
        print "<meta http-equiv=\"content-type\" content=\"text/html; charset=ISO-8859-1\">\n";
        print "<link rel=\"stylesheet\" href=\"../themes/".$etab_theme."/b2i.css\">\n";
        print "</head>";
        print "<body class=\"".$style."\">\n";
        print "<p class=\"sous_titre\">Paramètres généraux de $MODULE</p><hr>\n";
        print "<p align=\"center\">&nbsp;\n";
        print "Les nouveaux param&egrave;tres ont &eacute;t&eacute; sauvegard&eacute;s
              avec succ&egrave;s<br>";
        print $rapport;
        print "</p><form name=\"form1\" method=\"post\" action=\"$cible2\" target=\"_top\">";
        print "<p align=\"center\">";
        print "<input type=\"submit\" class=\"coul\" name=\"envoi\" value=\"Suite\">";
        print "</p></form></body></html>";
    }
    else {
        //il demande de poursuivre sans sauvegarder
        include("../include/utiljs.php");

        if (!strpos($cible2,"?")) $separ="?";
           else $separ="&";
           goto($cible2.$separ."stat=adm".$separ."target = \"_top\"");
    }
} //else traitement du formulaire
?>