<?php 
include "../authentification/authcheck.php";
if ($_SESSION['droits']<>1) { header("Location: ../index.php");};
require_once('../Connections/conn_cahier_de_texte.php'); 

require_once('../inc/functions_inc.php');
if(isset($_SESSION['cdt_envole'])) require_once('../inc/functions_envole.inc.php');


function supprime_cours_calendar()
	{
	extract(calendar_settings());
	$conn_webcalendar = mysql_pconnect($db_host, $db_login, $db_password) or die(mysql_error());
	mysql_select_db($db_database, $conn_webcalendar) or die(mysql_error());
	
	echo "<ul>";
	$query_verif1 = "SELECT count(*) FROM `webcal_entry` WHERE `cal_name` NOT LIKE 'C -%'";
	$result_verif1 = mysql_query ($query_verif1,$conn_webcalendar) or die(mysql_error());
	$row_verif1 = mysql_fetch_row($result_verif1);
	echo "<li>Nombre d'entr&eacute;es non concern&eacute;es par la suppression : ".$row_verif1[0]."</li>";

	$query_verif3 = "SELECT count(*) FROM `webcal_entry` WHERE `cal_name` LIKE 'C -%'";
	$result_verif3 = mysql_query ($query_verif3,$conn_webcalendar) or die(mysql_error());
	$row_verif3 = mysql_fetch_row($result_verif3);
	echo "<li>Nombre d'entr&eacute;es &agrave; supprimer : ".$row_verif3[0]."</li>";
	
	$query_delete1 = "DELETE FROM `webcal_entry_user` WHERE `cal_id` IN (SELECT `cal_id` FROM `webcal_entry` WHERE `cal_name` LIKE 'C -%');";
	$result_delete1 = mysql_query ($query_delete1,$conn_webcalendar) or die(mysql_error());
	echo "<li>Suppression...</li>";

	$query_delete2 = "DELETE FROM `webcal_entry` WHERE `cal_name` LIKE 'C -%';";
	$result_delete2 = mysql_query ($query_delete2,$conn_webcalendar) or die(mysql_error());

	$query_verif2 = "SELECT count(*) FROM `webcal_entry` WHERE `cal_name` NOT LIKE 'C -%'";
	$result_verif2 = mysql_query ($query_verif2,$conn_webcalendar) or die(mysql_error());
	$row_verif2 = mysql_fetch_row($result_verif2);
	echo "<li>Nombre d'entr&eacute;es restantes apr&egrave;s la suppression : ".$row_verif2[0]."</li>";	
	echo "</ul>";
	}

function user_search_ldap($login)
	{
	$ldap_server = "localhost";
	$ldap_port = "389";
	$ldap_login = "";
	$ldap_pwd = "";
	$ldap_base = "o=gouv,c=fr";	
	$ldap_attr = array('sn','codecivilite');
	$output = array();
	
	//echo "connexion...";
	$ds = @ldap_connect ($ldap_server, $ldap_port);
	if($ds)
		{
		//echo "ok<br/>options...";
		@ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3);
		//echo "ok<br/>identification anonyme...";
		$r = @ldap_bind ($ds);
		if($r)
			{
			//echo "ok<br/>recherche...";
			$sr = @ldap_search($ds,$ldap_base,"(uid=" . $login . ")",$ldap_attr);
			if($sr)
				{
				//echo "ok<br/>r�cup�ration des donn�es...";
				$info = @ldap_get_entries($ds,$sr);
				if($info['count']>0)
					{
					$output["lastname"] = $info[0]["sn"][0];
					$output["civilite"] = $info[0]["codecivilite"][0];
					//echo "ok<br/>";
					}
				@ldap_free_result($sr);
				}
			}
		@ldap_close($ds);
		}
	return $output;
	}
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-15" />
<title>Nettoyage de WebCalendar</title>
<style>
body {background:#ffdd99; color:#3333CC; font-size:16px; font-family:verdana, sans-serif;}
</style>
</head>
<body>

<?php
if(!isset($_POST["go"]))
	{
	echo '
	<h2>Proc&eacute;dure de nettoyage des emplois du temps pr&eacute;sents dans WebCalendar avant r&eacute;insertion d&rsquo;apr&egrave;s le contenu du CDT</h2>
	<p>Dans WebCalendar, tous les cours commen&ccedil;ant par "C -" seront effac&eacute;s avant d&rsquo;&ecirc;tre r&eacute;inser&eacute;s.</p>
	<p>&Ecirc;tes-vous certain de vouloir lancer cette proc&eacute;dure ?</p>
	<p>
	<form method="post">
	<input type="submit" name="go" value="Lancer la proc&eacute;dure..."/>
	</form>
	</p>';
	}
elseif(isset($_SESSION['cdt_envole']))
	{
	$ar_civil = array(0=>"M./Mme",1=>"M.",2=>"Mme",3=>"Mme","."=>"M.","M"=>"Mme","L"=>"Mme");
	$old_id = 0;
	$n = 0;
	$total_ok = 0;
	$total_ko = 0;

	echo "<h2>Suppression des emplois du temps actuellement dans le calendar avant r&eacute;insertion</h2>";
	supprime_cours_calendar();
	
	//recherche des informations concernant les emplois du temps
	mysql_select_db($database_conn_cahier_de_texte, $conn_cahier_de_texte) or die(mysql_error());
	
	$query_num = "SELECT count(*) FROM cdt_emploi_du_temps GROUP BY prof_ID;";
	$result_num = mysql_query($query_num, $conn_cahier_de_texte) or die(mysql_error());
	$nombre_profs = mysql_num_rows($result_num);
	
	$query_cours = "SELECT * FROM cdt_emploi_du_temps, cdt_classe, cdt_matiere, cdt_prof
				WHERE cdt_emploi_du_temps.matiere_ID=cdt_matiere.ID_matiere 
				AND cdt_emploi_du_temps.classe_ID=cdt_classe.ID_classe 
				AND cdt_emploi_du_temps.prof_ID=cdt_prof.ID_prof
				ORDER BY cdt_emploi_du_temps.prof_ID;";
	$result_cours = mysql_query($query_cours, $conn_cahier_de_texte) or die(mysql_error());

	
	while($row_cours = mysql_fetch_assoc($result_cours))
		{
		$prof_id = $row_cours["ID_prof"]; 
		if($prof_id!=$old_id) //nouveau prof � traiter
			{
			set_time_limit(120); 
			flush();
			$user_infos = user_search_ldap($row_cours["nom_prof"]);
			$ldap_civilite = $user_infos["civilite"];
			$ldap_nom = $user_infos["lastname"];
			//correspond � la variable $_SESSION['nom_prof_webcal'] pour imposer la forme civilit�+nom � la vue des �l�ves
			$nom_webcal = $ar_civil[$ldap_civilite]." ".strtoupper($ldap_nom);
			
			echo ($old_id!=0 ? "</ul>" : "")."<h2>Enseignant n�".++$n."/".$nombre_profs." - ".$row_cours["nom_prof"]." (".$nom_webcal.") :</h2><ul>";
			$old_id = $prof_id;
			}
		
		$nom_classe = mysql_real_escape_string(trim($row_cours['nom_classe']));
		$nom_matiere = mysql_real_escape_string(trim($row_cours['nom_matiere']));
		
		echo "<li>Cours de ".$nom_matiere." en ".$nom_classe." le ".$row_cours['jour_semaine']." (semaines ".$row_cours['semaine'].") � ".$row_cours['heure_debut']." pendant ".$row_cours['duree']." : ";
		
		//v�rification du format de l'heure
		if (preg_match("/^[0-9]{1,2}h[0-9]{0,2}$/",trim($row_cours['heure_debut'])) && preg_match("/^[0-9]{1,2}h[0-9]{0,2}$/",trim($row_cours['duree'])))
			{
			//type de groupe � rep�rer en pr�fixe dans la description
			$prefix = webcal_prefix(trim($row_cours['groupe']));

			//construction du tableau des dates du cours � modifier
			$array_dates = jours_cours(trim($row_cours['jour_semaine']),trim($row_cours['semaine']));
		
			//formatage des param�tres
			$heure = GetSQLValueString(webcal_heure(trim($row_cours['heure_debut'])),"int");
			$duree = GetSQLValueString(webcal_duree(trim($row_cours['duree'])),"int");
			$h = substr($heure,0,-4);
			$m = substr($heure,-4,2);
			$heure_fin = date('H',mktime($h,$m,0,0,0,0)+$duree*60)."h".date('i',mktime($h,$m,0,0,0,0)+$duree*60);
			$modifdate = GetSQLValueString(date("Ymd"),"int");
			$modifheure = GetSQLValueString(date('His'),"int");
			$user_p = GetSQLValueString(trim($row_cours["nom_prof"]),"text");
			$titre_p = GetSQLValueString("C - ".$nom_classe,"text");
			$texte_p = GetSQLValueString($prefix.$nom_matiere,"text"); 
			$user_c = GetSQLValueString(strtolower("Meta_classe_".$nom_classe),"text");
			$titre_c = GetSQLValueString("C - ".$nom_matiere,"text");
			$texte_c = GetSQLValueString($prefix.$nom_webcal,"text");
		
			//construction du tableau des vacances
			$array_vacances = jours_vacances();
			
			$n_p = 0;
			$n_c = 0;
			$m_p = 0;
			$m_c = 0;
			foreach ($array_dates as $date)
				{
				$date = GetSQLValueString($date,"int");
				if(!in_array($date,$array_vacances))
					{
					//insertion pour l'enseignant
					$rapport = ajout_calendar($user_p,$titre_p,$texte_p,$date,$heure,$duree,$modifdate,$modifheure,"cours");
					if($rapport['entry']==1)
						{
						$n_p++;
						$total_ok++;
						}
					else
						{
						$m_p++;
						$total_ko++;
						}
				
					//insertion pour la classe
					$rapport = ajout_calendar($user_c,$titre_c,$texte_c,$date,$heure,$duree,$modifdate,$modifheure,"cours");
					if($rapport['entry']==1)
						{
						$n_c++;
						$total_ok++;
						}
					else
						{
						$m_c++;
						$total_ko++;
						}
					}
				}
			
			echo $n_p." insertions / ".$m_p." &eacute;checs pour l&rsquo;enseignant et ".$n_c." insertions / ".$m_c." &eacute;checs pour la classe</li>";
			}
		else
			{
			echo "\"Heure d&eacute;but\" et/ou \"Dur&eacute;e\" sont dans un format non valide, cours non ins&eacute;r&eacute; dans WebCalendar</li>";
			}
		}
		
	mysql_free_result($result_cours);
	
	echo "
	</ul>
	<h2>Fin du traitement</h2>
	<ul>
	<li>Nombre total d&rsquo;insertions effectu&eacute;es : ".$total_ok."</li>
	<li>Nombre total d&rsquo;insertions en &eacute;chec : ".$total_ko."</li>
	</ul>";
	}
?>
</body>
</html>