Avancement sur la page candidature

This commit is contained in:
Louis DUMONT 2022-03-24 16:49:23 +01:00
parent 18b4abd68a
commit 64e67b530d
6 changed files with 162 additions and 78 deletions

View File

@ -9,7 +9,7 @@ if (isset($_COOKIE['username']) && isset($_COOKIE['pass'])) {
if ($query_check_cookie->rowCount() == 1){ if ($query_check_cookie->rowCount() == 1){
$sql = 'SELECT ID_candidature, progression_candidature, cv_file_path_candidature, lm_file_path_candidature, validation_form_file_path_candidature, internship_agreement_file_path_candidature, name_internship, name_company, email_company, ID_user, username, city_localisation, postal_code_localisation FROM candidatures NATURAL JOIN users INNER JOIN internships ON candidatures.ID_internship=internships.ID_internship INNER JOIN localisations ON internships.ID_localisation=localisations.ID_localisation NATURAL JOIN companies WHERE username=:user ORDER BY offer_date_internship ASC;'; $sql = 'SELECT ID_candidature, progression_candidature, cv_file_path_candidature, lm_file_path_candidature, validation_form_file_path_candidature, internship_agreement_file_path_candidature, name_internship, name_company, email_company, ID_user, username, city_localisation, postal_code_localisation FROM candidatures NATURAL JOIN users INNER JOIN internships ON candidatures.ID_internship=internships.ID_internship INNER JOIN localisations ON internships.ID_localisation=localisations.ID_localisation NATURAL JOIN companies WHERE username=:user ORDER BY offer_date_internship ASC;';
$query_perm = $bdd->prepare('SELECT username, code_permission FROM users NATURAL JOIN roles NATURAL JOIN roles_has_permissions NATURAL JOIN permissions WHERE username=:user;'); $query_perm = $bdd->prepare('SELECT username, code_permission, name_role FROM users NATURAL JOIN roles NATURAL JOIN roles_has_permissions NATURAL JOIN permissions WHERE username=:user;');
$query_perm->execute(['user' => $_COOKIE["username"]]); $query_perm->execute(['user' => $_COOKIE["username"]]);
$results_perm = $query_perm->fetchALL(PDO::FETCH_OBJ); $results_perm = $query_perm->fetchALL(PDO::FETCH_OBJ);
if ($query_perm->rowCount() >= 1) { if ($query_perm->rowCount() >= 1) {
@ -22,10 +22,9 @@ if (isset($_COOKIE['username']) && isset($_COOKIE['pass'])) {
} }
if ($showCandidatures){ if ($showCandidatures){
$query_candidatures = $bdd->prepare($sql);
$query_candidatures = $bdd->prepare($sql); $query_candidatures->execute(['user' => $_COOKIE["username"]]);
$query_candidatures->execute(['user' => $_COOKIE["username"]]); $results_candidatures = $query_candidatures->fetchALL(PDO::FETCH_OBJ);
$results_candidatures = $query_candidatures->fetchALL(PDO::FETCH_OBJ);
?> ?>
<html lang="fr"> <html lang="fr">
<head> <head>
@ -41,8 +40,9 @@ if (isset($_COOKIE['username']) && isset($_COOKIE['pass'])) {
<div class="content"> <div class="content">
<div class="content_title">Candidatures</div> <div class="content_title">Candidatures</div>
<?php <?php
if ($query_candidatures->rowCount() >= 1) { if ($results_perm[0]->name_role == "Etudiant") {
foreach ($results_candidatures as $result) { if ($query_candidatures->rowCount() >= 1) {
foreach ($results_candidatures as $result) {
?> ?>
<div class="bubble"> <div class="bubble">
<div class="title_bubble"><?= $result->name_internship; ?></div> <div class="title_bubble"><?= $result->name_internship; ?></div>
@ -53,17 +53,45 @@ if (isset($_COOKIE['username']) && isset($_COOKIE['pass'])) {
</div> </div>
<?= $result->city_localisation; ?> <?= $result->postal_code_localisation; ?> - <?= $result->email_company; ?> <?= $result->city_localisation; ?> <?= $result->postal_code_localisation; ?> - <?= $result->email_company; ?>
<div class="description"> <div class="description">
<?php if ($result->progression_candidature == 1) { ?> <?php
if ($result->progression_candidature == 0) {echo "Vous avez indiquez que l'entreprise a répondu négativemet à votre demande.<br>Ne perdez pas espoir :)";}
else if ($result->progression_candidature == 1) {?>
<div class="title_in_bubble_status">Status</div> <div class="title_in_bubble_status">Status</div>
<div class="text_stat">La candidature est actuellement en attente de réponse de l'entreprise.</div> <div class="text_stat">La candidature est actuellement en attente de réponse de l'entreprise.</div>
<div class="title_in_bubble_status">Prochaine étape:</div> <div class="title_in_bubble_status">Prochaine étape:</div>
A partir de l'adresse email de l'entreprise, nous vous invitons à la contacter afin de leur adresser votre CV et lettre de motivation. A partir de l'adresse email de l'entreprise, nous vous invitons à la contacter afin de leur adresser votre CV et lettre de motivation.
<br> <br>
<br>
Est-ce que la réponse de la part de l'entreprise est positive ? <?php
<br> $query_perm_step2 = $bdd->prepare('SELECT code_permission FROM users NATURAL JOIN roles NATURAL JOIN roles_has_permissions NATURAL JOIN permissions WHERE code_permission="SFx31" AND username=:user;');
<button class="button">Oui</button> $query_perm_step2->execute(['user' => $_COOKIE["username"]]);
<button class="button">Non</button> if ($query_perm_step2->rowCount() >= 1) {
echo '<br>Est-ce que la réponse de la part de l\'entreprise est positive ?<br>';
echo '<button class="button" onclick="location.href=\'/controller/Manage_candidatures.php/?response=y&ID_candidature='.$result->ID_candidature.'\';">Oui</button>';
echo '<button class="button" onclick="location.href=\'/controller/Manage_candidatures.php/?response=n&ID_candidature='.$result->ID_candidature.'\';">Non</button>';
} else {
echo '<br>Vous n\'avez pas la permission d\'entrer la réponse de l\'entreprise... Veuillez contacter votre pilote ou délégué(e).';
}
?>
<?php
} else if ($result->progression_candidature == 2) { ?>
<div class="title_in_bubble_status">Status</div>
<div class="text_stat">La candidature est actuellement en attendre d'une fiche de validation de sujet de stage complétée et signée par l'entreprise.</div>
<div class="title_in_bubble_status">Prochaine étape:</div>
A partir de l'adresse email de l'entreprise, nous vous invitons à la contacter afin de leur adresser votre CV et lettre de motivation.
<br>
<?php
$query_perm_step2 = $bdd->prepare('SELECT code_permission FROM users NATURAL JOIN roles NATURAL JOIN roles_has_permissions NATURAL JOIN permissions WHERE code_permission="SFx31" AND username=:user;');
$query_perm_step2->execute(['user' => $_COOKIE["username"]]);
if ($query_perm_step2->rowCount() >= 1) {
echo '<br>Est-ce que la réponse de la part de l\'entreprise est positive ?<br>';
echo '<button class="button" onclick="location.href=\'/controller/Manage_candidatures.php/?response=y&ID_candidature='.$result->ID_candidature.'\';">Oui</button>';
echo '<button class="button" onclick="location.href=\'/controller/Manage_candidatures.php/?response=n&ID_candidature='.$result->ID_candidature.'\';">Non</button>';
} else {
echo '<br>Vous n\'avez pas la permission d\'entrer la réponse de l\'entreprise... Veuillez contacter votre pilote ou délégué(e).';
}
?>
<?php } ?> <?php } ?>
</div> </div>
</div> </div>
@ -120,7 +148,11 @@ if (isset($_COOKIE['username']) && isset($_COOKIE['pass'])) {
Vous n'avez aucune candidature en cours &nbsp;<i class="fas fa-wind"></i> Vous n'avez aucune candidature en cours &nbsp;<i class="fas fa-wind"></i>
</div> </div>
</div> </div>
<?php } ?> <?php
}
} else { //Ici le contenu que le tuteur doit voir
// partie très compliquée :/
} ?>
</div> </div>
</div> </div>
</div> </div>

View File

@ -14,7 +14,7 @@
<div class="bubble"> <div class="bubble">
<div class="title_bubble">Accès refusé</div> <div class="title_bubble">Accès refusé</div>
<div class="text_content"> <div class="text_content">
Vous n'avez pas les permissions nécessaires pour accéder à cette page. Vous n'avez pas les permissions nécessaires pour accéder à cette page ou de réaliser cette action.
</div> </div>
</div> </div>
</div> </div>

View File

@ -0,0 +1,48 @@
<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
use PHPMailer\PHPMailer\Exception;
require_once '../assets/vendors/phpmailer/src/Exception.php';
require_once '../assets/vendors/phpmailer/src/PHPMailer.php';
require_once '../assets/vendors/phpmailer/src/SMTP.php';
$mail = new PHPMailer(true);
if (isset($_COOKIE['username']) && isset($_COOKIE['pass'])) {
require "ConnexionBDD.php";
if (!$error) {
$query_check_cookie = $bdd->prepare('SELECT * FROM users NATURAL JOIN roles NATURAL JOIN roles_has_permissions NATURAL JOIN permissions WHERE code_permission="SFx1" AND username=:user AND password_user=:password_user;');
$query_check_cookie->execute(['user' => $_COOKIE['username'], 'password_user' => $_COOKIE['pass']]);
if ($query_check_cookie->rowCount() == 1){
if (isset($_GET["response"]) && isset($_GET["ID_candidature"])) {
$response = $_GET["response"];
$ID_candidature = $_GET["ID_candidature"];
$query_perm_step2 = $bdd->prepare('SELECT code_permission FROM users NATURAL JOIN roles NATURAL JOIN roles_has_permissions NATURAL JOIN permissions WHERE code_permission="SFx31" AND username=:user;');
$query_perm_step2->execute(['user' => $_COOKIE["username"]]);
if ($query_perm_step2->rowCount() >= 1) {
$query_check_user_candidature = $bdd->prepare('SELECT * FROM users NATURAL JOIN candidatures WHERE username=:user AND ID_candidature=:ID_candidature;');
$query_check_user_candidature->execute(['user' => $_COOKIE["username"], 'ID_candidature' => $ID_candidature]);
if ($query_perm_step2->rowCount() >= 1) {
if ($response == "y") {
$query_update_candidature = $bdd->prepare('UPDATE candidatures SET progression_candidature = "2" WHERE ID_candidature=:ID_candidature;');
$query_update_candidature->execute(['ID_candidature' => $ID_candidature]);
} else if ($response == "n") {
$query_update_candidature = $bdd->prepare('UPDATE candidatures SET progression_candidature = "0" WHERE ID_candidature=:ID_candidature;');
$query_update_candidature->execute(['ID_candidature' => $ID_candidature]);
}
echo "<script>location.href='/candidatures.php';</script>";
} else {
echo "<script>location.href='/candidatures.php';</script>";
}
} else {
header('HTTP/1.0 403 Forbidden');
require "controller/403.php";
}
}
}
}
}
?>

View File

@ -28,76 +28,80 @@ if (isset($_COOKIE['username']) && isset($_COOKIE['pass'])) {
if ($result->code_permission == "SFx30"){ $permAlertPilot = true; } if ($result->code_permission == "SFx30"){ $permAlertPilot = true; }
} }
echo $permPostuler.$permAlertPilot; if ($permPostuler) {
if (is_uploaded_file($_FILES['cv']['tmp_name']) && is_uploaded_file($_FILES['lm']['tmp_name']) && isset($_POST["ID_internship"])) {
$query_user = $bdd->prepare('SELECT ID_user, firstname_user, lastname_user, email_user FROM users WHERE username=:user;');
$query_user->execute(['user' => $_COOKIE["username"]]);
$results_user = $query_user->fetchALL(PDO::FETCH_OBJ);
$query_pilots_of_user = $bdd->prepare('SELECT ID_user, firstname_user, lastname_user, email_user FROM users NATURAL JOIN user_belong_promo NATURAL JOIN promotions INNER JOIN roles ON roles.ID_role=users.ID_role WHERE (name_role="Pilote" OR name_role="Délégué(e)") AND ID_promotion=(SELECT ID_promotion FROM users NATURAL JOIN user_belong_promo NATURAL JOIN promotions WHERE username=:user);');
$query_pilots_of_user->execute(['user' => $_COOKIE["username"]]);
$results_pilots_of_user = $query_pilots_of_user->fetchALL(PDO::FETCH_OBJ);
if (is_uploaded_file($_FILES['cv']['tmp_name']) && is_uploaded_file($_FILES['lm']['tmp_name']) && isset($_POST["ID_internship"])) { $location_cv = "/documents/users/".$results_user[0]->ID_user."/"."candidatures/".$_POST["ID_internship"]."/".$_FILES['cv']['name'];
$query_user = $bdd->prepare('SELECT ID_user, firstname_user, lastname_user, email_user FROM users WHERE username=:user;'); $location_lm = "/documents/users/".$results_user[0]->ID_user."/"."candidatures/".$_POST["ID_internship"]."/".$_FILES['lm']['name'];
$query_user->execute(['user' => $_COOKIE["username"]]);
$results_user = $query_user->fetchALL(PDO::FETCH_OBJ);
$query_pilots_of_user = $bdd->prepare('SELECT ID_user, firstname_user, lastname_user, email_user FROM users NATURAL JOIN user_belong_promo NATURAL JOIN promotions INNER JOIN roles ON roles.ID_role=users.ID_role WHERE (name_role="Pilote" OR name_role="Délégué(e)") AND ID_promotion=(SELECT ID_promotion FROM users NATURAL JOIN user_belong_promo NATURAL JOIN promotions WHERE username=:user);');
$query_pilots_of_user->execute(['user' => $_COOKIE["username"]]);
$results_pilots_of_user = $query_pilots_of_user->fetchALL(PDO::FETCH_OBJ);
$location_cv = "/documents/users/".$results_user[0]->ID_user."/"."candidatures/".$_POST["ID_internship"]."/".$_FILES['cv']['name'];
$location_lm = "/documents/users/".$results_user[0]->ID_user."/"."candidatures/".$_POST["ID_internship"]."/".$_FILES['lm']['name'];
try {
if (!is_dir('../documents/')){
mkdir("../documents/", 0700);
}
if (!is_dir('../documents/users')){
mkdir("../documents/users", 0700);
}
if (!is_dir("../documents/users/".$results_user[0]->ID_user."/")){
mkdir("../documents/users/".$results_user[0]->ID_user."/", 0700);
}
if (!is_dir("../documents/users/".$results_user[0]->ID_user."/"."candidatures/")){
mkdir("../documents/users/".$results_user[0]->ID_user."/"."candidatures/", 0700);
}
if (!is_dir("../documents/users/".$results_user[0]->ID_user."/"."candidatures/".$_POST["ID_internship"])){
mkdir("../documents/users/".$results_user[0]->ID_user."/"."candidatures/".$_POST["ID_internship"], 0700);
}
move_uploaded_file($_FILES['cv']['tmp_name'], "..".$location_cv);
move_uploaded_file($_FILES['lm']['tmp_name'], "..".$location_lm);
$query_ID_user = $bdd->prepare('INSERT INTO candidatures VALUES (NULL, "1", :location_cv, :location_lm, NULL, NULL, :ID_user, :ID_internship);');
$query_ID_user->execute(['location_cv' => $location_cv, 'location_lm' => $location_lm, 'ID_user' => $results_user[0]->ID_user, 'ID_internship' => $_POST["ID_internship"]]);
try { try {
$mail->SMTPDebug = SMTP::DEBUG_SERVER; if (!is_dir('../documents/')){
$mail->isSMTP(); mkdir("../documents/", 0700);
$mail->Host = 'smtp.gmail.com'; }
$mail->SMTPAuth = true; if (!is_dir('../documents/users')){
$mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS; mkdir("../documents/users", 0700);
$mail->Port = 587; }
if (!is_dir("../documents/users/".$results_user[0]->ID_user."/")){
$mail->Username = 'teamspeakcompte@gmail.com'; mkdir("../documents/users/".$results_user[0]->ID_user."/", 0700);
$mail->Password = ''; }
if (!is_dir("../documents/users/".$results_user[0]->ID_user."/"."candidatures/")){
$mail->setFrom('teamspeakcompte@gmail.com', 'Ceci Ton Stage'); mkdir("../documents/users/".$results_user[0]->ID_user."/"."candidatures/", 0700);
foreach ($results_pilots_of_user as $result) { }
$mail->addAddress($result->email_user, $result->firstname_user." ".$result->lastname_user); if (!is_dir("../documents/users/".$results_user[0]->ID_user."/"."candidatures/".$_POST["ID_internship"])){
mkdir("../documents/users/".$results_user[0]->ID_user."/"."candidatures/".$_POST["ID_internship"], 0700);
} }
$mail->IsHTML(true); move_uploaded_file($_FILES['cv']['tmp_name'], "..".$location_cv);
$mail->Subject = "CTS - Depot de candidature"; move_uploaded_file($_FILES['lm']['tmp_name'], "..".$location_lm);
$mail->Body = 'Bonjour, nous vous informons d\'un depot de candidature de <b>'.$results_user[0]->firstname_user.' '.$results_user[0]->lastname_user.'</b>.';
//$mail->AltBody = 'Plain text message body for non-HTML email client. Gmail SMTP email body.';
$mail->send(); $query_insert_candidature = $bdd->prepare('REPLACE INTO candidatures VALUES (NULL, "1", :location_cv, :location_lm, NULL, NULL, :ID_user, :ID_internship);');
echo "Email message sent."; $query_insert_candidature->execute(['location_cv' => $location_cv, 'location_lm' => $location_lm, 'ID_user' => $results_user[0]->ID_user, 'ID_internship' => $_POST["ID_internship"]]);
} catch (Exception $e) {
echo "Error in sending email. Mailer Error: {$mail->ErrorInfo}"; if ($permAlertPilot) {
try {
$mail->SMTPDebug = SMTP::DEBUG_SERVER;
$mail->isSMTP();
$mail->Host = 'smtp.gmail.com';
$mail->SMTPAuth = true;
$mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;
$mail->Port = 587;
$mail->Username = 'teamspeakcompte@gmail.com';
$mail->Password = 'wptjusfmrxurmgcf';
$mail->setFrom('teamspeakcompte@gmail.com', 'Ceci Ton Stage');
foreach ($results_pilots_of_user as $result) {
$mail->addAddress($result->email_user, $result->firstname_user." ".$result->lastname_user);
}
$mail->IsHTML(true);
$mail->Subject = "CTS - Depot de candidature";
$mail->Body = 'Bonjour, nous vous informons d\'un depot de candidature de <b>'.$results_user[0]->firstname_user.' '.$results_user[0]->lastname_user.'</b>.';
//$mail->AltBody = 'Plain text message body for non-HTML email client. Gmail SMTP email body.';
$mail->send();
echo "Email message sent.";
} catch (Exception $e) {
echo "Error in sending email. Mailer Error: {$mail->ErrorInfo}";
}
}
echo "<script>location.href='/offres_stages.php';</script>";
} }
//echo "<script>location.href='/offres_stages.php';</script>"; catch (Exception $e) {
} echo "zut une erreur";
catch (Exception $e) { }
echo "zut une erreur"; } else {echo "POST file incomplet";}
} } else {
} else {echo "POST file incomplet";} header('HTTP/1.0 403 Forbidden');
require "controller/403.php";
}
} }
} }
} }