<?php
#=
/****************************************************************************
Copyright 2002-2005, Daniel Deycard, Jacques Messines, Alain Pomirol
(CATICE Académie de Bordeaux)

This file is part of Gibii/Melia.

Gibii 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 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; 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("./dedoub.inc.php");
connecte($host,$user,$mdp,$db);
opensession('Sadmin',false);
if ($sess_login=='admstats') {
	aneantir_session();
	goto("./index.php");
	}
set_time_limit(0);
?>

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
<title>Affichage des doublons</title>
<style type="text/css" media="screen">
    tr.meilleurchoix {
        background: #CCFFCC;
        color: Red;
        }
</style>
<script  langage="javascript">
  function changeaction() {
    document.formchx.action=location.pathname + '?passe=1';
    document.formchx.submit();
    }
</script>
<link rel="stylesheet" href="../include/general.css">
</head>
<body class="arial_sadmin" bgcolor="white" text="black" link="white" vlink="white" alink="blue">

<?php

function post($s,$def) {
$valeur=@$_POST[$s];
if (!isset($valeur)) $valeur=$def;
return $valeur;
}
function rien() {
print "<br /><strong>Pas de groupes d'homonymes.</strong>";
}
//******************************************************************************
//print_r($_POST);

$PHP_SELF=basename($_SERVER['PHP_SELF']).'?passe=2'; //pour les passages ultérieurs

if (isset($_GET['passe']) && $_GET['passe']==2) $passe=2; else $passe=1;

$individu=post('individu','e');
$Tous=post('Tous','');
$alphabetic=post('alphabetic','');
$paquet=post('paquet','');
$alphapac=post('alphapac','');
$cetab=post('cetab',0);

if ($individu=='e') {
    $echecked="checked=\"checked\"";
    $pchecked='';
    $messelprof="des élèves";
    $table="eleves";
    $champ="eleve_id";
    }
else {
    $pchecked="checked=\"checked\"";
    $echecked='';
    $messelprof="des professeurs";
    $table="profs";
    $champ="prof_id";
    }

print "<p class='titre'>Traitement des doublons<br /></p>\n";
print "<hr>";
retour("../sadmin/choix_verif.form.php");
if ($passe==1) blabla();

print "<form method=\"post\" name=\"formchx\" action=\"$PHP_SELF\">\n";

print "<table>";
print "<tr><td>Individus à traiter : </td>";
print "<td><input type=\"radio\" name=\"individu\" value='e' $echecked onclick=\"changeaction();\" />les élèves &nbsp;&nbsp;&nbsp;&nbsp;";
print "<input type=\"radio\" name=\"individu\" value='p' $pchecked onclick=\"changeaction();\" />les professeurs\n";
print "</td></tr>\n";

//TRAITEMENTS PAR PAQUETS ======================================================
print "<tr><td>&nbsp;<br /></td>";
if ($Tous=="Tous") $dis="disabled"; else $dis="";
print "<td>&nbsp;<br /><input type=\"submit\" name=\"Tous\" value=\"Tous\" $dis />\n";
print "</td></tr>\n";

print "<tr><td>noms commençant par :</td>
       <td>\n";
foreach(range('A', 'Z') as $i) {
    if ($i==$alphabetic) $dis='disabled'; else $dis='';
    print "<input type=\"submit\" name=\"alphabetic\" value=\"$i\" $dis>";
    }
print "</td></tr>";

print "<tr><td>noms commençant par :</td>";

print "<td>\n";
$tablet=array('A B C D', 'E F G H','I J K L','M N O P','Q R S T','U V W X Y Z');
foreach($tablet as $j) {
    //print "j='$j', alphapac='$alphapac'<br>";
    if ($j==$alphapac) $dis='disabled'; else $dis='';
    print "<input type=\"submit\" name=\"alphapac\" value=\"$j\" $dis>";
    }
print "</td><tr>";

print "<tr><td>un seul établissement : </td>";
print "<td>\n";
comboetabs(1);
print "</td></tr>";
print "</table>";
print "</form>";


if ($passe==1) {
    if (isset($_GET['coches']) && $_GET['coches']==0) {
        //on revient de dedoub_traite alors qu'aucune case n'a été cochée
        rien();
        }
    //sinon, c'est le premier passage dans cette page
    exit();
    }
//============================================================================


//Préparer le  Where alphabétique
if ($alphabetic) {
    $wherealpha=" and e.nom LIKE '".$alphabetic."%' ";
    }
else $wherealpha="";

//Et les WHERE des paquets de lettres
if ($alphapac) {
    $al=strlen($alphapac);
    $wherealphapac=" AND SUBSTRING(e.nom,1,1) IN (\"".str_replace(' ','","',$alphapac)."\")" ;
    }
else $wherealphapac="";


//requête de base : on cherche les "classes d'homonymes", c'est à dire
//les triplets (nom,prenom,dnaiss) identiques (donc les problèmes...)
query("UPDATE $table SET tag=0 WHERE tag IS NULL");
$req="SELECT e.nom,e.prenom,e.dnaiss,e.$champ,e.annee,e.etab_id,
                    c.precdate,e.ident_nat,
                    c.compte_id,c.login,c.etab_id
            FROM $table AS e
            LEFT JOIN comptes AS c
              ON e.compte_id=c.compte_id
            WHERE (e.tag<>-1) ".$wherealpha.$wherealphapac."
            ORDER BY e.nom, e.prenom, e.dnaiss, c.login ASC";
//bizarrement, e.tag<>-1 n'implique pas e.tag IS NULL
$res1=query($req);
print "<hr />\n";
print "<form method=\"post\" name=\"form1\" action=\"dedoub_traite.php\">";
//Passer le type d'individu à traiter ?  e ou p
$buffer="<input type=\"hidden\" name=\"individu\" value=\"$individu\">";
$buffer.="<table width='70%' align='center' border=0><tr><td>";
$buffer.="<br /><p align='center'><input type=\"submit\" name=\"ok\" value=\"Traiter automatiquement les éléments cochés\" disabled=\"disabled\"/></p>";
$buffer.="</td><td>";
$buffer.="</td></tr></table>";
$buffer.="<br />";

$Nom=$Prenom=$Dnaiss='';
$idoub=1;$nbgroupes=0;
$deid=$dan=$detab_id=$dcid=$dlogin=$dcetab_id=array(); //etab_id y est deux fois, au cas où l'un serait mauvais
$buffer_full=true;
while (list($nom,$prenom,$dnaiss,$eid,$an,$etab,$precdate,$ident_nat,$cid,$login,$etab2)
        =mysql_fetch_array($res1)) {
    //au moins 2 individus avec même (nom,prénom,dnaiss)
    if ($Nom!=$nom || $Prenom!=$prenom || $Dnaiss!=$dnaiss) {
        //fin d'une "classe" de doublons
        if ($idoub>1) {
            if (!$cetab || in_array($cetab,$detab_id)) {
                if ($buffer_full) {
                    print $buffer;$buffer='';
                    $buffer_full=false;
                    }
                $coche=!a_cheval();   //si risque de "à cheval" on ne cochera pas)
                traiter_doublons();
                afficher_doublons(1,$coche); //passe=1
                $nbgroupes++;
                }
            $idoub=1;
            $deid=$dan=$detab_id=$dprecdate=$dident_nat=$dcid=$dlogin=array();  //on vide
            }
        $Nom=$nom;$Prenom=$prenom;$Dnaiss=$dnaiss;
        }
    else {
        $idoub++;
        //conserver le nouvel individu ("paramètres" pour le traitement des doublons)
        }
    $deid[$idoub]=$eid;$dan[$idoub]=$an;$detab_id[$idoub]=$etab;
    $dprecdate[$idoub]=$precdate;$dident_nat[$idoub]=$ident_nat;
    $dcid[$idoub]=$cid;$dlogin[$idoub]=$login;$dcetab_id[$idoub]=$etab2;
    
    }

mysql_free_result($res1);

if ($buffer_full) rien();
else {
    print "<br /><br /><hr />Groupes d'homonymes : $nbgroupes<br /><p>";
    print "</form>";
    }

?>
<script  langage="javascript">
    if (document.form1.ok) document.form1.ok.disabled='';

</script>

</body>
</html>