Files
resatennis_tyroltenn/www/tyroltenn/creer_resa_spec_suite.php

207 lines
7.5 KiB
PHP
Executable File

<?php
session_start();
header('P3P: CP="NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM"');
if(isset($_SESSION['Admin']) and $_SESSION['Admin']==2 and isset($_SESSION['Club'])) {
$id_club=$_SESSION['Club'];
?>
<html>
<head>
<meta http-equiv="Content-Language" content="fr">
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>LE SERVEUR VOCAL DE RESERVATION DES SALLES DE TENNIS</title>
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body>
<div id="tout">
<?php
include("enTete.php");
include("menu.php");
include("conf.php");
echo "<div id='contenu'>";
echo "<center><h1>Cr&eacute;ation d'une r&eacute;servation sp&eacute;cifique &agrave; la semaine</h1></center><br />";
$motif=$_POST['motif'];
$type=$_POST['type'];
$date_arret=$_POST['date_arret'];
$num_fft=$_POST['num_fft'];
$heure_debut=$_POST['heure_debut'];
$heure_fin=$_POST['heure_fin'];
$min_debut=$_POST['min_debut'];
$min_fin=$_POST['min_fin'];
$ferie=$_POST['ferie'];
$debut=$_POST['date_debut'];
$tournoi_cat=$_POST['tournoi_cat'];
/* Jours fériés fixes */
include("constantes.php");
$dates_feries_fixe=array_keys($feries_fixe);
// Tableau contenant les jours
$tab_jours=array();
for($i=0;$i<7;$i++) {
$nom="jour_".$i;
if(isset($_POST[$nom])) {
array_push($tab_jours, $_POST[$nom]);
}
}
/* calcul des timestamp de début et fin */
$now_tab=getDate(time());
$ts_debut=mktime($heure_debut, $min_debut, 0, $[''], $[''], $['']);
$ts_fin=mktime($heure_fin, $min_fin, 0, $[''], $[''], $['']);
/* Début du planning */
if(strlen($debut)==10) {
list($jour,$mois,$annee)=explode("/",$debut);
$ts_date_debut=mktime(date("H"), date("i"), date("s"), $mois, $jour, $annee);
}
else {
$ts_date_debut=time();
}
// tableaux contenant les terrains
$tab_terrains=$_POST['terrains'];
// id du joueur
$requete="SELECT id_joueur FROM joueur WHERE numero_fft='$num_fft'";
$reponse=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."<br>");
$nb=mysqli_num_rows($reponse);
if($nb>0) {
$joueur=mysqli_fetch_object($reponse);
}
/* Gestion des erreurs */
if(count($tab_jours)==0) {
echo "Vous n'avez coch&eacute; aucune journ&eacute;e.<br />";
echo "Veuillez recommencer en cliquant <a href='creer_resa_spec.php'>ici</a>.";
}
else if(count($tab_terrains)==0) {
echo "Vous n'avez coch&eacute; aucun terrain.<br />";
echo "Veuillez recommencer en cliquant <a href='creer_resa_spec.php'>ici</a>.";
}
else if($nb==0) {
echo "Le num&eacute;ro de licence que vous avez saisi est inconnu de notre site.<br />";
echo "Veuillez recommencer en cliquant <a href='creer_resa_spec.php'>ici</a>.";
}
else if($ts_debut >= $ts_fin) {
echo "Les horaires que vous avez saisi ne sont pas corrects.<br />";
echo "Veuillez recommencer en cliquant <a href='creer_resa_spec.php'>ici</a>.";
}
else if($date_arret=="") {
echo "Vous n'avez pas saisi de date d'arr&ecirc;t.<br />";
echo "Veuillez recommencer en cliquant <a href='creer_resa_spec.php'>ici</a>.";
}
else {
// Jour d'arret des programmations
list($jour,$mois,$annee)=explode("/",$date_arret);
$date_arret_uk="$annee-$mois-$jour";
/* Fériés en BDD */
$annee_arret=$annee;
$annee_debut=date("Y");
if($annee_arret == $annee_debut) {
$requete="SELECT date_ferie FROM feries WHERE YEAR(date_ferie) = '$annee_arret'";
}
else {
$requete="SELECT date_ferie FROM feries WHERE YEAR(date_ferie) >= '$annee_debut' AND YEAR(date_ferie) <= '$annee_arret'";
}
$reponse=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."<br>");
$existe_feries=mysqli_num_rows($reponse);
$dates_variables=array();
if($existe_feries > 0) {
while($ferie=mysqli_fetch_object($reponse)) {
array_push($dates_variables, $ferie->date_ferie);
}
}
// Init au jour courant
$now_ts=$ts_date_debut;
// heures
$heure_debut="$heure_debut:$min_debut:00";
$heure_fin="$heure_fin:$min_fin:00";
/* Tournoi ? */
if($type=='Tournoi') {
list($id_tournoi, $id_categorie)=explode('-', $tournoi_cat);
}
else {
$id_tournoi=0;
$id_categorie=0;
}
// Pour la période aujourd'hui -> date d'arrêt
do {
$date_resa=date("Y-m-d", $now_ts);
$date_fr=date("d/m/Y", $now_ts);
$now_tab=getDate($now_ts);
$controle_ferie=date("d/m", $now_ts);
//trouve le jour demandé (ex mardi)
if(in_array($[''],$tab_jours)) {
$resa_ok=1;
/* Controle si la date est comprise dans les feries et que les résas dans les fériés sont activées */
/* Ferie fixe */
if(in_array($controle_ferie,$dates_feries_fixe) and $ferie != '1') {
$resa_ok=0;
}
/* Ferie variable (date qui change tous les ans */
if(in_array($date_resa,$dates_variables) and $ferie != '1') {
$resa_ok=0;
}
/* Si la résa est OK */
if($resa_ok==1) {
/* Pour chaque terrain */
for($i=0;$i<count($tab_terrains);$i++) {
$reservable=$tab_terrains[$i];
$id_joueur=$joueur->id_joueur;
// COntrole si résa à cette heure la
//$requete="SELECT id_reservation FROM reservation WHERE date_resa='$date_resa' AND heure_resa_deb='$heure_debut' AND id_reservable='$reservable'";
$requete="SELECT id_reservation, heure_resa_deb, heure_resa_fin FROM reservation WHERE date_resa='$date_resa' AND id_reservable='$reservable' AND ((heure_resa_deb >= '$heure_debut' AND heure_resa_deb<'$heure_fin') OR (heure_resa_fin>'$heure_debut' AND heure_resa_fin<='$heure_fin') OR (heure_resa_deb<='$heure_debut' AND heure_resa_fin>='$heure_fin'))";
$res=mysqli_query( $db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."<br />");
$nb=mysqli_num_rows($res);
// ON supprime la reservation
if($nb>0) {
while($res_tab=mysqli_fetch_object($res)) {
$id_resa=$res_tab->id_reservation;
$requete="DELETE FROM reservation WHERE id_reservation='$id_resa'";
$reponse=mysqli_query( $db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."<br />");
}
}
if(is_numeric($type)) {
$requete="INSERT INTO reservation(type,id_tournoi,id_categorie,type_reservation,id_joueur,heure_resa_deb, heure_resa_fin,date_resa,id_reservable,id_rubrique) VALUES('Autre','$id_tournoi','$id_categorie','$motif','$id_joueur','$heure_debut','$heure_fin','$date_resa','$reservable','$type')";
}
else {
$requete="INSERT INTO reservation(type,id_tournoi,id_categorie,type_reservation,id_joueur,heure_resa_deb, heure_resa_fin,date_resa,id_reservable,id_rubrique) VALUES('$type','$id_tournoi','$id_categorie','$motif','$id_joueur','$heure_debut','$heure_fin','$date_resa','$reservable','0')";
}
$res=mysqli_query( $db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."<br />");
}
echo "R&eacute;servation du $date_fr : ajout&eacute;e avec succ&egrave;s<br />";
}
}
// Avance dune journée
$now_ts=$now_ts+(3600*24);
} while($date_resa!=$date_arret_uk);
echo "Les r&eacute;servations ont &eacute;t&eacute;s correctement ajout&eacute;s au planning.<br />";
echo "Cliquez sur retour pour revenir au menu principal.";
}
//mysql_close($db_connection);
echo "<br /><br />";
include("deco_admin_club.php");
include("piedDePage.php");
}
else {
echo("Non autorisé - Redirection vers la page d'identification dans 2 secondes");
sleep(2);
include("admin_login.php");
}
?>