pv_project/site/agenda-cap-actions.php
2025-07-17 10:15:19 +02:00

437 lines
18 KiB
PHP

<?php
include('include/entete.php');
include('include/entete_cap.php');
include('config/config.inc.php');
include('config/lib.inc.php');
/************************************************
ACTIONS POUR LES CAPITAINES
************************************************/
if(isset($_SESSION['cap_num']) && !empty($_SESSION['cap_num'])){
//RESERVATION
if(isset($_POST['myAction']) && $_POST['myAction']=='R3S'){
foreach($_POST as $cle=>$val){
$$cle=$val;
//echo $cle.' => '.$val.'<br />';
}
$idCoLy = $_POST['idCoLy'];
$maCleDeCryptage = getCleDeCryptage();
$etaCoLy = crypter($maCleDeCryptage,$etaCoLy);
$nomCoLy = crypter($maCleDeCryptage,$nomCoLy);
$prenomCoLy = crypter($maCleDeCryptage,$prenomCoLy);
$fonctionCoLy = crypter($maCleDeCryptage,$fonctionCoLy);
$telCoLy = crypter($maCleDeCryptage,$telCoLy);
$emlCoLy = crypter($maCleDeCryptage,$emlCoLy);
$adresse1CoLy = crypter($maCleDeCryptage,$adresse1CoLy);
$adresse2CoLy = crypter($maCleDeCryptage,$adresse2CoLy);
$cpCoLy = crypter($maCleDeCryptage,$cpCoLy);
$villeCoLy = crypter($maCleDeCryptage,$villeCoLy);
$commentCoLy = crypter($maCleDeCryptage,$commentCoLy);
$db = connect_base();
//Trouve le CFA associé
$query="
SELECT * FROM capitaines
INNER JOIN eta ON id_eta=num_eta
WHERE id_cap=:id_cap";
$queryRequest = $db->prepare( $query );
$queryRequest->bindParam( ':id_cap', $_SESSION['cap_num'], PDO::PARAM_INT );
$queryRequest->execute();
$count = $queryRequest->rowCount();
if($count==1){
$dataEta=$queryRequest->fetchAll();
$chxNumEta = $dataEta[0]['num_eta'];
/*
//Vérifie si le créneau existe
$query="
SELECT * FROM capitaines
INNER JOIN eta ON id_eta=num_eta
INNER JOIN agenda ON id_cap = numCap
WHERE id_cap=:id_cap
AND jour=:jour AND creneau=:creneau";;
$queryRequest = $db->prepare( $query );
$queryRequest->bindParam( ':id_cap', $_SESSION['cap_num'], PDO::PARAM_INT );
$queryRequest->bindParam( ':jour', $myDay, PDO::PARAM_STR );
$queryRequest->bindParam( ':creneau', $myCreneau, PDO::PARAM_STR );
$queryRequest->execute();
$count = $queryRequest->rowCount();
//Crée le créneau vide s'il n'existe pas pour le premier jour qui est libre par défaut)
if($count==0 && $myDay=='2019-01-17'){
$numCoLy = 0;
$statut = 'libre';
$userLastUpdate = 'cap';
$dateLastUpdate = date('Y-m-d');
$queryCreate="
INSERT INTO agenda (numCap, numCoLy, numEta, jour, creneau, statut, dateLastUpdate,userLastUpdate)
VALUES (:numCap,:numCoLy,:numEta,:jour,:creneau,:statut,:dateLastUpdate,:userLastUpdate)";
$queryRequestC = $db->prepare( $queryCreate );
$queryRequestC->bindParam( ':numCap', $_SESSION['cap_num'], PDO::PARAM_INT );
$queryRequestC->bindParam( ':numCoLy', $numCoLy, PDO::PARAM_INT );
$queryRequestC->bindParam( ':numEta', $chxNumEta, PDO::PARAM_INT );
$queryRequestC->bindParam( ':jour', $myDay, PDO::PARAM_STR );
$queryRequestC->bindParam( ':creneau', $myCreneau, PDO::PARAM_STR );
$queryRequestC->bindParam( ':statut', $statut, PDO::PARAM_STR );
$queryRequestC->bindParam( ':dateLastUpdate', $dateLastUpdate, PDO::PARAM_STR );
$queryRequestC->bindParam( ':userLastUpdate', $userLastUpdate, PDO::PARAM_STR );
$queryRequestC->execute();
}
*/
//Vérifie si le créneau est libre ou si l'on est en modification de fiche établissement
$query="
SELECT * FROM capitaines
INNER JOIN eta ON id_eta=num_eta
INNER JOIN agenda ON id_cap = numCap
WHERE id_cap=:id_cap
AND jour=:jour AND creneau=:creneau
AND (numCoLy=0 || numCoLy=:numCoLy)";
$queryRequest = $db->prepare( $query );
$queryRequest->bindParam( ':id_cap', $_SESSION['cap_num'], PDO::PARAM_INT );
$queryRequest->bindParam( ':jour', $myDay, PDO::PARAM_STR );
$queryRequest->bindParam( ':creneau', $myCreneau, PDO::PARAM_STR );
$queryRequest->bindParam( ':numCoLy', $idCoLy, PDO::PARAM_INT );
$queryRequest->execute();
$count = $queryRequest->rowCount();
//Insertion d'un créneau et réservation
if($count==1){
$data=$queryRequest->fetchAll();
$dateCreate = date('Y-m-d');
$chxNumEta = $data[0]['num_eta'];
$eta = decrypter($maCleDeCryptage,$data[0]['nom_eta']);
$capitaine = decrypter($maCleDeCryptage,$data[0]['nom_cap']);
$capitaine = mb_strtoupper($capitaine).' '.decrypter($maCleDeCryptage,$data[0]['prenom_cap']);
/**********************/
if(!empty($chxNumEta)){
if(empty($idCoLy)){
//Insertion de l'établissement
$query="
INSERT INTO collegelycee (etaCoLy, nomCoLy, prenomCoLy, fonctionCoLy, telCoLy, emlCoLy, adresse1CoLy, adresse2CoLy, cpCoLy, villeCoLy, nbClasses, nbEleves, commentCoLy, dateCreate, chxNumEta)
VALUES (:etaCoLy, :nomCoLy, :prenomCoLy, :fonctionCoLy, :telCoLy, :emlCoLy, :adresse1CoLy, :adresse2CoLy, :cpCoLy, :villeCoLy, :nbClasses, :nbEleves, :commentCoLy, :dateCreate, :chxNumEta)";
$queryRequest = $db->prepare( $query );
$queryRequest->bindParam( ':etaCoLy', $etaCoLy, PDO::PARAM_STR );
$queryRequest->bindParam( ':nomCoLy', $nomCoLy, PDO::PARAM_STR );
$queryRequest->bindParam( ':prenomCoLy', $prenomCoLy, PDO::PARAM_STR );
$queryRequest->bindParam( ':fonctionCoLy', $fonctionCoLy, PDO::PARAM_STR );
$queryRequest->bindParam( ':telCoLy', $telCoLy, PDO::PARAM_STR );
$queryRequest->bindParam( ':emlCoLy', $emlCoLy, PDO::PARAM_STR );
$queryRequest->bindParam( ':adresse1CoLy', $adresse1CoLy, PDO::PARAM_STR );
$queryRequest->bindParam( ':adresse2CoLy', $adresse2CoLy, PDO::PARAM_STR );
$queryRequest->bindParam( ':cpCoLy', $cpCoLy, PDO::PARAM_STR );
$queryRequest->bindParam( ':villeCoLy', $villeCoLy, PDO::PARAM_STR );
$queryRequest->bindParam( ':nbClasses', $nbClasses, PDO::PARAM_INT );
$queryRequest->bindParam( ':nbEleves', $nbEleves, PDO::PARAM_INT );
$queryRequest->bindParam( ':commentCoLy', $commentCoLy, PDO::PARAM_STR );
$queryRequest->bindParam( ':dateCreate', $dateCreate, PDO::PARAM_STR );
$queryRequest->bindParam( ':chxNumEta', $chxNumEta, PDO::PARAM_INT );
$queryRequest->execute();
$idCoLy=$db->lastInsertId();
//Affectation au créneau
$numCoLy = $idCoLy;
$statut = 'reserve';
$userLastUpdate = 'cap';
$query="
UPDATE agenda
SET numCoLy=:numCoLy, statut=:statut, dateLastUpdate='".date('Y-m-d')."',userLastUpdate=:userLastUpdate
WHERE numCap=:numCap AND jour=:jour AND creneau=:creneau";
$queryRequest = $db->prepare( $query );
$queryRequest->bindParam( ':numCap', $_SESSION['cap_num'], PDO::PARAM_INT );
$queryRequest->bindParam( ':numCoLy', $numCoLy, PDO::PARAM_INT );
$queryRequest->bindParam( ':jour', $myDay, PDO::PARAM_STR );
$queryRequest->bindParam( ':creneau', $myCreneau, PDO::PARAM_STR );
$queryRequest->bindParam( ':statut', $statut, PDO::PARAM_STR );
$queryRequest->bindParam( ':userLastUpdate', $userLastUpdate, PDO::PARAM_STR );
$queryRequest->execute();
//Envoi d'un email au collège ou lycée
require 'config/class.phpmailer.php';
require 'config/phpmailer.settings.php';
$to=$_POST['emlCoLy'];
$objet="Votre évènement DECIDAY !";
$adresseCL = $_POST['adresse1CoLy'];
if(!empty($adresse2CoLy)) $adresseCL .= '<br />'.$_POST['adresse2CoLy'];
$adresseCL .= '<br />'.$_POST['cpCoLy'].' '.$_POST['villeCoLy'];
$creneauCL = "";
$creneauCL = getCreneau($myCreneau);
$affich='';
$affich.='<table cellpadding="3" style="font-family:ARIAL; width:600px;">';
$affich.='<tr>';
$affich.='<td colspan="2"><img src="" /></td>';
$affich.='</tr>'."\n";
$affich.='<tr>';
$affich.='<td colspan="2"><img src="cid:bando" alt="" width="600" height="150" border="0" /></td>';
$affich.='</tr>'."\n";
$affich.='<tr>';
$affich.='<td colspan="2">&nbsp;</td>';
$affich.='</tr>'."\n";
$affich.='<tr>';
$affich.='<td colspan="2">Bonjour,</td>';
$affich.='</tr>'."\n";
$affich.='<tr>';
$affich.='<td colspan="2">&nbsp;</td>';
$affich.='</tr>'."\n";
$affich.='<tr>';
$affich.='<td colspan="2">Dans le cadre de l\'évènement Déciday !, un créneau a été réservé pour la venue d\'un trinôme au sein de votre établissement. Vos élèves pourront donc <b>découvrir la filière, préparer leur projet d\'orientation professionnelle</b> et <b>rencontrer un professionnel</b>.</td>';
$affich.='</tr>'."\n";
$affich.='<tr>';
$affich.='<td colspan="2">&nbsp;</td>';
$affich.='</tr>'."\n";
$affich.='<tr>';
$affich.='<td colspan="2">Récapitulatif de cette rencontre : </td>';
$affich.='</tr>'."\n";
$affich.='<tr>';
$affich.='<td colspan="2">&nbsp;</td>';
$affich.='</tr>'."\n";
$affich.='<tr>';
$affich.='<td align="right"><b>Jour : </b></td><td>'.MysqlToDateFr($myDay).'</td>';
$affich.='</tr>'."\n";
$affich.='<tr>';
$affich.='<td align="right"><b>Créneau : </b></td><td>'.$creneauCL.'</td>';
$affich.='</tr>'."\n";
$affich.='<tr>';
$affich.='<td colspan="2">&nbsp;</td>';
$affich.='</tr>'."\n";
$affich.='<tr>';
$affich.='<td align="right"><b>Votre établissement : </b></td><td>'.$_POST['etaCoLy'].'</td>';
$affich.='</tr>'."\n";
$affich.='<tr>';
$affich.='<td align="right"><b>Nombre de classes : </b></td><td>'.$nbClasses.'</td>';
$affich.='</tr>'."\n";
$affich.='<tr>';
$affich.='<td align="right"><b>Nombre d\'élèves : </b></td><td>'.$nbEleves.'</td>';
$affich.='</tr>'."\n";
$affich.='<tr>';
$affich.='<td colspan="2">&nbsp;</td>';
$affich.='</tr>'."\n";
$affich.='<tr>';
$affich.='<td align="right"><b>Votre interlocuteur : </b></td><td>'.$capitaine.'</td>';
$affich.='</tr>'."\n";
$affich.='<tr>';
$affich.='<td align="right"><b>Etablissement : </b></td><td>'.$eta.'</td>';
$affich.='</tr>'."\n";
$affich.='<tr>';
$affich.='<td colspan="2">&nbsp;</td>';
$affich.='</tr>'."\n";
$affich.='<tr>';
$affich.='<td colspan="2"><b>Votre interlocuteur vous contactera pour définir les modalités de votre intervention.</b></td>';
$affich.='</tr>'."\n";
$affich.='<tr>';
$affich.='<td colspan="2">&nbsp;</td>';
$affich.='</tr>'."\n";
$affich.='<tr>';
$affich.='<td colspan="2" align="center"><table style="width:200px;background-color: #674B64;border: 1px solid #371B34;padding: 4px 6px;"><tr><td align="center"><a href="http://www.deciday.fr" style="color: #FFF;text-decoration: none;text-transform: uppercase; font-family:ARIAL;"><strong>Votre site <br />Déciday !</strong></a></td></tr></table></td>';
$affich.='</tr>'."\n";
$affich.='<tr>';
$affich.='<td colspan="2">&nbsp;</td>';
$affich.='</tr>'."\n";
$affich.='<tr>';
$affich.='<td colspan="2">Cordialement.</td>';
$affich.='</tr>'."\n";
$affich.='<tr>';
$affich.='<td colspan="2">&nbsp;</td>';
$affich.='</tr>'."\n";
$affich.='<tr>';
$affich.='<td colspan="2">L\'équipe DECIDAY.</td>';
$affich.='</tr>'."\n";
$affich.='</table>';
$mail->IsHTML(true);
$mail->AddEmbeddedImage('images/bandeau-contact.jpg', 'bando', 'bandeau-contact.jpg');
$mail->Subject = utf8_decode($objet);
$mail->Body = utf8_decode($affich);
$mail->AddAddress($to);
$mail->AltBody = "/-------//--------/";
$mail->send();
$_SESSION['msg']='Le créneau a bien été réservé. Un email a été envoyé sur l\'email de l\'établissement pour l\'en informer.';
}else{
//Modification de l'établissement
$query="
UPDATE collegelycee SET etaCoLy=:etaCoLy, nomCoLy=:nomCoLy, prenomCoLy=:prenomCoLy, fonctionCoLy=:fonctionCoLy, telCoLy=:telCoLy, emlCoLy=:emlCoLy, adresse1CoLy=:adresse1CoLy, adresse2CoLy=:adresse2CoLy, cpCoLy=:cpCoLy, villeCoLy=:villeCoLy, nbClasses=:nbClasses, nbEleves=:nbEleves, commentCoLy=:commentCoLy WHERE idCoLy=:idCoLy";
$queryRequest = $db->prepare( $query );
$queryRequest->bindParam( ':etaCoLy', $etaCoLy, PDO::PARAM_STR );
$queryRequest->bindParam( ':nomCoLy', $nomCoLy, PDO::PARAM_STR );
$queryRequest->bindParam( ':prenomCoLy', $prenomCoLy, PDO::PARAM_STR );
$queryRequest->bindParam( ':fonctionCoLy', $fonctionCoLy, PDO::PARAM_STR );
$queryRequest->bindParam( ':telCoLy', $telCoLy, PDO::PARAM_STR );
$queryRequest->bindParam( ':emlCoLy', $emlCoLy, PDO::PARAM_STR );
$queryRequest->bindParam( ':adresse1CoLy', $adresse1CoLy, PDO::PARAM_STR );
$queryRequest->bindParam( ':adresse2CoLy', $adresse2CoLy, PDO::PARAM_STR );
$queryRequest->bindParam( ':cpCoLy', $cpCoLy, PDO::PARAM_STR );
$queryRequest->bindParam( ':villeCoLy', $villeCoLy, PDO::PARAM_STR );
$queryRequest->bindParam( ':nbClasses', $nbClasses, PDO::PARAM_INT );
$queryRequest->bindParam( ':nbEleves', $nbEleves, PDO::PARAM_INT );
$queryRequest->bindParam( ':commentCoLy', $commentCoLy, PDO::PARAM_STR );
$queryRequest->bindParam( ':idCoLy', $idCoLy, PDO::PARAM_INT );
$queryRequest->execute();
$_SESSION['msg']='La fiche de l\'établissement a été mise à jour.';
}
}
/***************************/
}else{
$_SESSION['msg']='Le créneau n\'a pas pu être réservé car il n\'est pas disponible.';
}
header('location:agenda-cap.php');
exit();
}else{
$_SESSION['msg']='Erreur : CFA Inconnu';
}
}
//BLOCAGE OU DEBLOCAGE
if(isset($_POST['myAction']) && ($_POST['myAction']=='BL0' || $_POST['myAction']=='D3B')){
foreach($_POST as $cle=>$val){
$$cle=$val;
//echo $cle.' => '.$val.'<br />';
}
$db = connect_base();
$query="
SELECT * FROM capitaines
INNER JOIN eta ON id_eta=num_eta
INNER JOIN agenda ON id_cap = numCap
WHERE id_cap=:id_cap
AND jour=:jour AND creneau=:creneau";
$queryRequest0 = $db->prepare( $query );
$queryRequest0->bindParam( ':id_cap', $_SESSION['cap_num'], PDO::PARAM_INT );
$queryRequest0->bindParam( ':jour', $myDay, PDO::PARAM_STR );
$queryRequest0->bindParam( ':creneau', $myCreneau, PDO::PARAM_STR );
$queryRequest0->execute();
$count = $queryRequest0->rowCount();
$data0=$queryRequest0->fetchAll();
/*if(empty($count)){
$query="
SELECT * FROM capitaines
INNER JOIN eta ON id_eta=num_eta
WHERE id_cap=:id_cap";
$queryRequest = $db->prepare( $query );
$queryRequest->bindParam( ':id_cap', $_SESSION['cap_num'], PDO::PARAM_INT );
$queryRequest->execute();
$data=$queryRequest->fetchAll();
$numEta = $data[0]['num_eta'];
$numCoLy = 0;
if($_POST['myAction']=='BL0') $statut = 'bloque'; else $statut = 'libre';
$userLastUpdate = 'cap';
if(!empty($numEta)){
$query="
INSERT INTO agenda (numCap, numCoLy, numEta, jour, creneau, statut, dateLastUpdate,userLastUpdate)
VALUES (:numCap, :numCoLy, :numEta, :jour, :creneau, :statut, '".date('Y-m-d')."',:userLastUpdate)";
$queryRequest = $db->prepare( $query );
$queryRequest->bindParam( ':numCap', $_SESSION['cap_num'], PDO::PARAM_INT );
$queryRequest->bindParam( ':numCoLy', $numCoLy, PDO::PARAM_INT );
$queryRequest->bindParam( ':numEta', $numEta, PDO::PARAM_INT );
$queryRequest->bindParam( ':jour', $myDay, PDO::PARAM_STR );
$queryRequest->bindParam( ':creneau', $myCreneau, PDO::PARAM_STR );
$queryRequest->bindParam( ':statut', $statut, PDO::PARAM_STR );
$queryRequest->bindParam( ':userLastUpdate', $userLastUpdate, PDO::PARAM_STR );
$queryRequest->execute();
}
if($statut == 'bloque') $_SESSION['msg']='Le créneau a été bloqué.';
else $_SESSION['msg']='Le créneau a été débloqué.';
}else{*/
if(!empty($count)){
$msgPlus = "";
//Suppression de la réservation si déblocage de créneau
if($data0[0]['numCoLy']>0){
//echo $data0[0]['num_eta'];
//echo '<pre>';print_r($data0);echo '</pre>';
$query="DELETE FROM collegelycee WHERE idCoLy=:idCoLy AND chxNumEta=:chxNumEta";
$queryRequest = $db->prepare( $query );
$queryRequest->bindParam( ':idCoLy', $data0[0]['numCoLy'], PDO::PARAM_INT );
$queryRequest->bindParam( ':chxNumEta', $data0[0]['num_eta'], PDO::PARAM_INT );
$queryRequest->execute();
$msgPlus = " Pensez à prévenir cet établissement que sa réservation a été annulée.";
//$data10=$queryRequest->fetchAll();
//echo '<pre>';print_r($data10);echo '</pre>';
//exit();
};
$numCoLy = 0;
if($_POST['myAction']=='BL0') $statut = 'bloque'; else $statut = 'libre';
$userLastUpdate = 'cap';
$query="
UPDATE agenda
SET numCoLy=:numCoLy, statut=:statut, dateLastUpdate='".date('Y-m-d')."',userLastUpdate=:userLastUpdate
WHERE numCap=:numCap AND jour=:jour AND creneau=:creneau";
$queryRequest = $db->prepare( $query );
$queryRequest->bindParam( ':numCap', $_SESSION['cap_num'], PDO::PARAM_INT );
$queryRequest->bindParam( ':numCoLy', $numCoLy, PDO::PARAM_INT );
$queryRequest->bindParam( ':jour', $myDay, PDO::PARAM_STR );
$queryRequest->bindParam( ':creneau', $myCreneau, PDO::PARAM_STR );
$queryRequest->bindParam( ':statut', $statut, PDO::PARAM_STR );
$queryRequest->bindParam( ':userLastUpdate', $userLastUpdate, PDO::PARAM_STR );
$queryRequest->execute();
if($statut == 'bloque') $_SESSION['msg']='Le créneau a été rendu indisponible.'.$msgPlus;
else $_SESSION['msg']='Le créneau été rendu disponible.';
}else $_SESSION['msg']='Le créneau n\'a pas pu être rendu disponible.';
header('location:agenda-cap.php');
exit();
}
}
header('location:index.php?err=1');
exit();
?>