Files
resatennis_tyroltenn/www/tyroltenn/fct_planning_pdf.php

569 lines
20 KiB
PHP
Executable File

<?php
// Calcul du début de la semaine en fonction du numéro de semaine
$numero_semaine=$_GET['semaine'];
$numero_semaine-=1;
$annee=$_GET['annee'];
$id_terrain=$_GET['terrain'];
// fichier conf BDD
include("conf.php");
// Création du fichier PDF
include("fpdf.php");
$pdf=new FPDF("P","mm","A4");
$pdf->SetFont('Arial','',14);
$pdf->Open();
$pdf->AddPage();
// Constantes
define("LARGEUR_COL",25);
// Connexion à la base
$requete="SELECT nom, heure_ouverture, heure_fermeture, id_club FROM reservable WHERE id_reservable='$id_terrain'";
$reponse=mysqli_query( $db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."<br>");
$terrain=mysqli_fetch_object($reponse);
$club=$terrain->id_club;
include("constantes.php");
// du lundi
$ts_debut=mktime (0,0,0,01,(1+($numero_semaine*7)),$annee);
$date_debut=date("Y-m-d", $ts_debut);
$debut_fr=date("d/m/Y",$ts_debut);
list($j,$m,$a)=explode("/", $debut_fr);
list($dbt_h, $dbt_m, $dbt_s)=explode(":", $terrain->heure_ouverture);
$ouverture=mktime($dbt_h, $dbt_m, $dbt_s, $m, $j, $a);
$ts_debut_plan=$ouverture;
// au dimanche
$ts_fin=$ts_debut+(3600*24*6);
$date_fin=date("Y-m-d", $ts_fin);
$fin_fr=date("d/m/Y",$ts_fin);
list($dbt_h, $dbt_m, $dbt_s)=explode(":", $terrain->heure_fermeture);
$fermeture=mktime($dbt_h, $dbt_m, $dbt_s, $m, $j, $a);
list($j,$m,$a)=explode("/", $fin_fr);
$ts_fin_plan=mktime($dbt_h, $dbt_m, $dbt_s, $m, $j, $a);
$requete="SELECT id_reservation, date_resa, heure_resa_deb, heure_resa_fin FROM reservation WHERE id_reservable='$id_terrain' AND date_resa>= '$date_debut' AND date_resa<= '$date_fin' ORDER BY heure_resa_deb ASC, date_resa ASC";
$reponse=mysqli_query( $db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."<br>");
$nb_enr=mysqli_num_rows($reponse);
if($nb_enr>0) {
// on stocke chaque resa dans un tableau
$reservations=array();
while($resa=mysqli_fetch_object($reponse)) {
$resa_tab=array();
$['']=$resa->id_reservation;
list($a, $m, $j)=explode("-", $resa->date_resa);
list($heure_deb, $min_deb, $sec_deb)=explode(":", $resa->heure_resa_deb);
list($heure_fin, $min_fin, $sec_fin)=explode(":", $resa->heure_resa_fin);
$ts_debut=mktime($heure_deb, $min_deb, $sec_deb, $m, $j, $a);
$ts_fin=mktime($heure_fin, $min_fin, $sec_fin, $m, $j, $a);
$['']=$ts_debut;
$['']=$ts_fin;
array_push($reservations, $resa_tab);
}
}
// Affichage des résultats (tableau de la semaine)
$pdf->Cell(210,10,"Planning de reservation du terrain $terrain->nom",0,0,'C');
$pdf->Ln();
$pdf->Cell(210,10,"Semaine du $debut_fr au $fin_fr",0,0,'C');
// Affichage des entetes du tableau
// Impression en paysage
$dates_tab=array();
$pdf->Ln();
$pdf->Cell(20,15,"Horaires",1,0,'C');
for($i=$ts_debut_plan;$i<=$ts_fin_plan;$i+=(3600*24)) {
$jour=date("d", $i)."/".date("m", $i);
array_push($dates_tab, date("Y-m-d", $i));
$pdf->Cell(LARGEUR_COL,15,"$jour",1,0,'C');
}
$requete="SELECT heure_ouverture FROM reservable WHERE id_reservable='$id_terrain'";
$reponse=mysqli_query( $db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."<br>");
$terrain=mysqli_fetch_object($reponse);
list($heure_ouverture, $min_ouverture, $rien)=explode(":",$terrain->heure_ouverture);
$heure_ouverture=(int)$heure_ouverture;
$min_ouverture=(int)$min_ouverture;
$requete="SELECT heure_fermeture FROM reservable WHERE id_reservable='$id_terrain'";
$reponse=mysqli_query( $db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."<br>");
$terrain=mysqli_fetch_object($reponse);
list($heure_fermeture, $min_fermeture, $rien)=explode(":",$terrain->heure_fermeture);
$heure_fermeture=(int)$heure_fermeture;
$min_fermeture=(int)$min_fermeture;
// Affichage des réservations
// Pour chaque demi-heure
$pdf->SetFont('','',8);
/* Affichage de l'en tete du tableau horaires et noms des terrains */
$indice_encours=-1;
$pdf->Ln();
$resa_ok=array();
/* Pour chaqe heure demi-heure */
for ($i=$ouverture;$i<$fermeture;$i+=1800){
$horaire_encours=getdate($i);
if($['']=="0") { $minutes="00"; } else { $minutes="30"; }
$heure="$['']:$minutes";
$pdf->Cell(20,7,$heure,1,0,'C');
/* Pour chaque date */
for ($j=0;$j<count($dates_tab);$j++){
list($a,$m,$jr)=explode("-", $dates_tab[$j]);
/* Heure en cous */
$heures=date("H", $i);
$minutes=date("i", $i);
/* TS correspondant à l'heure et la date en cours */
$ts_now=mktime($heures, $minutes, 0, $m, $jr, $a);
/* controle si une résa existe à cette heure */
$texte=0;
for($cpt=0;$cpt<count($reservations);$cpt++) {
if(($reservations[$cpt][heure_debut] == $ts_now) ) {
$indice_encours=$cpt;
$texte=1;
break;
}
else if(($reservations[$cpt][heure_debut] < $ts_now) and ($ts_now < $reservations[$cpt][heure_fin])) {
$indice_encours=$cpt;
if(! in_array($cpt, $resa_ok)) {
$texte=2;
array_push($resa_ok, $cpt);
}
else {
$texte=0;
}
break;
}
else {
$indice_encours=-1;
}
}
/* Si une réservation a été trouvée */
if($indice_encours > -1) {
$id_resa=$reservations[$indice_encours][id_resa];
$requete="SELECT j.prenom,j.nom, j.visible,j.numero_fft,r.type_reservation, r.id_rubrique,r.id_joueur,r.id_joueur_adverse, r.id_tournoi, r.id_joueur_adverse, r.id_categorie, r.type, r.id_tournoi, r.id_joueur,r.score,r.vainqueur FROM joueur j, reservation r WHERE j.id_joueur = r.id_joueur AND r.id_reservation='$id_resa' ";
//echo $requete;
$result=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."<br>");
$joueur=mysqli_fetch_object($result);
$requete="SELECT nom, prenom FROM joueur WHERE id_joueur='$joueur->vainqueur'";
$result=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."<br>");
$vainqueur=mysqli_fetch_object($result);
/* Si le match reserve concerne un tournoi */
if($joueur->type=='Tournoi') {
$requete1="SELECT j.prenom,j.nom,j.visible FROM joueur j, reservation r WHERE j.id_joueur = r.id_joueur_adverse AND r.id_reservation='$id_resa'";
$result1=mysqli_query($db_connection, $requete1) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."<br>");
$adverse=mysqli_fetch_object($result1);
$requete="SELECT nom FROM tournoi WHERE id_tournoi='$joueur->id_tournoi'";
$result2=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."<br>");
$tournoi=mysqli_fetch_object($result2);
$requete="SELECT nom, type, sexe, age_max FROM categorie WHERE id_categorie='$joueur->id_categorie'";
$result3=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."<br>");
$categorie=mysqli_fetch_object($result3);
/* Adulte homme */
if($categorie->type=='simple' and $categorie->sexe=='m' and $categorie->age_max==0) {
$coul=couleur_hex_dec("#6699FF");
$double=0;
}
/* Adulte Femme */
else if($categorie->type=='simple' and $categorie->sexe=='f' and $categorie->age_max==0) {
$coul=couleur_hex_dec("#FF66FF");
$double=0;
}
/* Jeunes */
else if($categorie->type=='simple' and $categorie->age_max<18) {
$coul=couleur_hex_dec("#FFFF00");
$double=0;
}
/* Doubles */
else if($categorie->type=='double') {
$coul=couleur_hex_dec("#99FF33");
$double=1;
}
if($double==1) {
/* Recherche des 2 équipes */
$requete="SELECT * FROM equipes_double WHERE id_equipe='$joueur->id_equipe'";
$result1=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."<br>");
$equipe1=mysqli_fetch_object($result1);
$requete="SELECT * FROM equipes_double WHERE id_equipe='$joueur->id_joueur_adverse'";
$result1=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."<br>");
$equipe2=mysqli_fetch_object($result1);
/* Recherche du nom/prénom des 4 joueurs */
$requete="SELECT nom, prenom,visible FROM joueur WHERE id_joueur='$equipe1->id_joueur1'";
$result1=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."<br>");
$joueur1=mysqli_fetch_object($result1);
$requete="SELECT nom, prenom,visible FROM joueur WHERE id_joueur='$equipe1->id_joueur2'";
$result1=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."<br>");
$joueur2=mysqli_fetch_object($result1);
$requete="SELECT nom, prenom,visible FROM joueur WHERE id_joueur='$equipe2->id_joueur1'";
$result1=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."<br>");
$joueur3=mysqli_fetch_object($result1);
$requete="SELECT nom, prenom,visible FROM joueur WHERE id_joueur='$equipe2->id_joueur2'";
$result1=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."<br>");
$joueur4=mysqli_fetch_object($result1);
if($joueur->id_joueur==700 and $joueur->id_joueur_adverse==700) {
if($texte==1) {
$pdf->SetFont('','',6);
$joueur="Vainqueur - Qualifi&eacute; / Vainqueur - Qualifi&eacute;";
}
else if($texte==2) {
$pdf->SetFont('','',5);
$joueur="$categorie->nom";
}
else {
$joueur="";
}
}
else if($joueur->id_joueur==700) {
if($texte==1) {
$pdf->SetFont('','',5);
$joueur="Vainqueur - Qualifi&eacute; / ";
if($joueur3->visible=='oui') {
$joueur.=" $joueur3->prenom $joueur3->nom";
}
$joueur.="-";
if($joueur4->visible=='oui') {
$joueur.=" $joueur4->prenom $joueur4->nom";
}
}
else if($texte==2) {
$joueur="$categorie->nom";
}
else {
$joueur="";
}
}
else if($joueur->id_joueur_adverse==700) {
if($texte==1) {
$pdf->SetFont('','',5);
if($joueur1->visible=='oui') {
$joueur="$joueur1->prenom $joueur1->nom";
}
else {
$joueur="";
}
$joueur.=" - ";
if($joueur2->visible=='oui') {
$joueur.=" $joueur2->prenom $joueur2->nom ";
}
$joueur.=" / Vainqueur - Qualifi&eacute;";
}
else if($texte==2) {
$pdf->SetFont('','',5);
$joueur="$categorie->nom";
}
else {
$joueur="";
}
}
else {
if($texte==1) {
$pdf->SetFont('','',5);
if($joueur1->visible=='oui') {
$joueur="$joueur1->prenom $joueur1->nom";
}
else {
$joueur="";
}
$joueur.=" - ";
if($joueur2->visible=='oui') {
$joueur.=" $joueur2->prenom $joueur2->nom ";
}
$joueur.="/";
if($joueur3->visible=='oui') {
$joueur.="$joueur3->prenom $joueur3->nom ";
}
$joueur.=" - ";
if($joueur4->visible=='oui') {
$joueur.="$joueur4->prenom $joueur4->nom";
}
}
else if($texte==2) {
$pdf->SetFont('','',5);
$joueur="$categorie->nom";
}
else {
$joueur="";
}
}
}
else {
if($texte==1) {
$pdf->SetFont('','',5);
$joueur="$joueur->prenom $joueur->nom / $adverse->prenom $adverse->nom";
}
else if($texte==2) {
$pdf->SetFont('','',5);
$joueur="$categorie->nom";
}
else {
$joueur="";
}
}
}
else if($joueur->type=='Cours') {
if($texte==1) {
if($joueur->visible=='oui') {
$joueur="$joueur->prenom $joueur->nom";
}
else {
$joueur="";
}
}
else if($texte==2) {
$joueur="$joueur->type";
}
else {
$joueur="";
}
$requete="SELECT c.couleur_hex FROM couleurs c, rubriques_resa rr WHERE rr.nom='Cours' AND rr.id_couleur=c.id_couleur AND rr.id_club='$club'";
$result1=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."<br>");
$arr_plan=mysqli_fetch_object($result1);
$coul=couleur_hex_dec($arr_plan->couleur_hex);
}
else if($joueur->type=='Entretien') {
if($texte==1) {
if($joueur->visible=='oui') {
$joueur="$joueur->prenom $joueur->nom";
}
else {
$joueur="";
}
}
else if($texte==2) {
$joueur="$joueur->type";
}
else {
$joueur="";
}
$requete="SELECT c.couleur_hex FROM couleurs c, rubriques_resa rr WHERE rr.nom='Entretien' AND rr.id_couleur=c.id_couleur AND rr.id_club='$club'";
$result1=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."<br>");
$arr_plan=mysqli_fetch_object($result1);
$coul=couleur_hex_dec($arr_plan->couleur_hex);
}
else if($joueur->type=='Autre' and $joueur->id_rubrique == 0) {
if($texte==1) {
if($joueur->visible=='oui') {
$joueur="$joueur->prenom $joueur->nom";
}
else {
$joueur="";
}
}
else if($texte==2) {
if($joueur->type_reservation != "") {
if(strlen($joueur->type_reservation) > 20) {
$pdf->SetFont('','',6);
}
$joueur="$joueur->type_reservation";
}
else {
$joueur="$joueur->type";
}
}
else {
$joueur="";
}
$requete="SELECT c.couleur_hex FROM couleurs c, rubriques_resa rr WHERE rr.nom='Autre' AND rr.id_couleur=c.id_couleur AND rr.id_club='$club'";
$result1=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."<br>");
$arr_plan=mysqli_fetch_object($result1);
$coul=couleur_hex_dec($arr_plan->couleur_hex);
}
else if($joueur->type=='Loisir') {
$requete1="SELECT j.prenom,j.nom,j.visible FROM joueur j, reservation r WHERE j.id_joueur = r.id_joueur_adverse AND r.id_reservation='$id_resa'";
$result1=mysqli_query($db_connection, $requete1) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."<br>");
$adverse=mysqli_fetch_object($result1);
if($texte==1) {
$pdf->SetFont('','',6);
if($joueur->visible=='oui') {
$joueur="$joueur->prenom $joueur->nom";
}
else {
$joueur="";
}
$joueur.="/";
if($adverse->visible=='oui') {
$joueur.=" $adverse->prenom $adverse->nom";
}
}
else if($texte==2) {
if($joueur->type_reservation != "") {
$joueur="$joueur->type_reservation";
}
else {
$joueur="$joueur->type";
}
}
else {
$joueur="";
}
$requete="SELECT c.couleur_hex FROM couleurs c, rubriques_resa rr WHERE rr.nom='Loisir' AND rr.id_couleur=c.id_couleur AND rr.id_club='$club'";
$result1=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."<br>");
$arr_plan=mysqli_fetch_object($result1);
$coul=couleur_hex_dec($arr_plan->couleur_hex);
}
else if($joueur->type=='Invite') {
$requete1="SELECT j.prenom,j.nom,j.visible FROM joueur j, reservation r WHERE j.id_joueur = r.id_joueur_adverse AND r.id_reservation='$id_resa'";
$result1=mysqli_query($db_connection, $requete1) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."<br>");
$adverse=mysqli_fetch_object($result1);
if($texte==1) {
$pdf->SetFont('','',6);
if($joueur->visible=='oui') {
$joueur="$joueur->prenom $joueur->nom";
}
else {
$joueur="";
}
$joueur.="/";
if($adverse->visible=='oui') {
$joueur.=" $adverse->prenom $adverse->nom";
}
}
else if($texte==2) {
if($joueur->type_reservation != "") {
$joueur="$joueur->type_reservation";
}
else {
$joueur="$joueur->type";
}
}
else {
$joueur="";
}
$requete="SELECT c.couleur_hex FROM couleurs c, rubriques_resa rr WHERE rr.nom='Invite' AND rr.id_couleur=c.id_couleur AND rr.id_club='$club'";
$result1=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."<br>");
$arr_plan=mysqli_fetch_object($result1);
$coul=couleur_hex_dec($arr_plan->couleur_hex);
}
else if($joueur->type=='Championnat') {
$requete1="SELECT j.prenom,j.nom,j.visible FROM joueur j, reservation r WHERE j.id_joueur = r.id_joueur_adverse AND r.id_reservation='$id_resa'";
$result1=mysqli_query($db_connection, $requete1) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."<br>");
$adverse=mysqli_fetch_object($result1);
if($texte==1) {
$pdf->SetFont('','',6);
if($joueur->visible=='oui') {
$joueur="$joueur->prenom $joueur->nom ";
}
else {
$joueur="";
}
$joueur.="/";
if($adverse->visible=='oui') {
$joueur.=" $adverse->prenom $adverse->nom";
}
}
else if($texte==2) {
$joueur="$joueur->type";
}
else {
$joueur="";
}
$requete="SELECT c.couleur_hex FROM couleurs c, rubriques_resa rr WHERE rr.nom='Championnat' AND rr.id_couleur=c.id_couleur AND rr.id_club='$club'";
$result1=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."<br>");
$arr_plan=mysqli_fetch_object($result1);
$coul=couleur_hex_dec($arr_plan->couleur_hex);
}
/* Rubrique perso */
else if($joueur->id_rubrique != 0 and $joueur->type=='Autre') {
$requete="SELECT * FROM rubriques_resa WHERE id_rubrique='$joueur->id_rubrique'";
$rep=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."<br>");
$rubrique=mysqli_fetch_object($rep);
$requete="SELECT couleur_hex FROM couleurs WHERE id_couleur='$rubrique->id_couleur'";
$rep=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."<br>");
$couleur=mysqli_fetch_object($rep);
$requete1="SELECT j.prenom,j.nom,j.visible FROM joueur j, reservation r WHERE j.id_joueur = r.id_joueur_adverse AND r.id_reservation='$id_resa'";
$result1=mysqli_query($db_connection, $requete1) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."<br>");
$adverse=mysqli_fetch_object($result1);
if($texte==1) {
$pdf->SetFont('','',6);
if($joueur->visible=='oui') {
$joueur="$joueur->prenom $joueur->nom ";
}
else {
$joueur="";
}
$joueur.="/";
if($adverse->visible=='oui') {
$joueur.=" $adverse->prenom $adverse->nom";
}
}
else if($texte==2) {
$joueur="$rubrique->nom";
}
else {
$joueur="";
}
$coul=couleur_hex_dec($couleur->couleur_hex);
}
}
else if($indice_encours == -1) {
$requete="SELECT c.couleur_hex FROM couleurs c, rubriques_resa rr WHERE rr.nom='Libre' AND rr.id_couleur=c.id_couleur AND rr.id_club='$club'";
$result1=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."<br>");
$arr_plan=mysqli_fetch_object($result1);
$coul=couleur_hex_dec($arr_plan->couleur_hex);
$joueur='';
}
$pdf->SetFillColor($[''], $[''],$['']);
$pdf->Cell(LARGEUR_COL,7,$joueur,1,0,'C',1);
$pdf->SetFont('','',8);
}
$pdf->Ln();
}
$pdf->Output();
// fermeture connexion bdd
mysql_close($db_connection);
function date_jour($numero) {
$jour="";
if($numero==7) {
$jour="D.";
}
else if($numero==1) {
$jour="L";
}
else if($numero==2) {
$jour="M";
}
else if($numero==3) {
$jour="M";
}
else if($numero==4) {
$jour="J";
}
else if($numero==5) {
$jour="V";
}
else if($numero==6) {
$jour="S";
}
return $jour;
}
/* Conversion des couleurs - hexa en Dec */
function couleur_hex_dec($hex) {
/* de la forme #RRVVBB */
$couleur=array();
$rouge=substr($hex, 1,2);
$vert=substr($hex, 4,2);
$bleu=substr($hex, 6,2);
/* conversion */
$['']=base_convert($rouge,16,10);
$['']=base_convert($vert,16,10);
$['']=base_convert($bleu,16,10);
return $couleur;
}
?>