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){
$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"]]);
$results_perm = $query_perm->fetchALL(PDO::FETCH_OBJ);
if ($query_perm->rowCount() >= 1) {
@ -22,10 +22,9 @@ if (isset($_COOKIE['username']) && isset($_COOKIE['pass'])) {
}
if ($showCandidatures){
$query_candidatures = $bdd->prepare($sql);
$query_candidatures->execute(['user' => $_COOKIE["username"]]);
$results_candidatures = $query_candidatures->fetchALL(PDO::FETCH_OBJ);
$query_candidatures = $bdd->prepare($sql);
$query_candidatures->execute(['user' => $_COOKIE["username"]]);
$results_candidatures = $query_candidatures->fetchALL(PDO::FETCH_OBJ);
?>
<html lang="fr">
<head>
@ -41,8 +40,9 @@ if (isset($_COOKIE['username']) && isset($_COOKIE['pass'])) {
<div class="content">
<div class="content_title">Candidatures</div>
<?php
if ($query_candidatures->rowCount() >= 1) {
foreach ($results_candidatures as $result) {
if ($results_perm[0]->name_role == "Etudiant") {
if ($query_candidatures->rowCount() >= 1) {
foreach ($results_candidatures as $result) {
?>
<div class="bubble">
<div class="title_bubble"><?= $result->name_internship; ?></div>
@ -53,17 +53,45 @@ if (isset($_COOKIE['username']) && isset($_COOKIE['pass'])) {
</div>
<?= $result->city_localisation; ?> <?= $result->postal_code_localisation; ?> - <?= $result->email_company; ?>
<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="text_stat">La candidature est actuellement en attente de réponse de 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>
<br>
Est-ce que la réponse de la part de l'entreprise est positive ?
<br>
<button class="button">Oui</button>
<button class="button">Non</button>
<?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
} 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 } ?>
</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>
</div>
</div>
<?php } ?>
<?php
}
} else { //Ici le contenu que le tuteur doit voir
// partie très compliquée :/
} ?>
</div>
</div>
</div>

View File

@ -14,7 +14,7 @@
<div class="bubble">
<div class="title_bubble">Accès refusé</div>
<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>

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; }
}
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"])) {
$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);
$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"]]);
$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 {
$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 = '';
$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);
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);
}
$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.';
move_uploaded_file($_FILES['cv']['tmp_name'], "..".$location_cv);
move_uploaded_file($_FILES['lm']['tmp_name'], "..".$location_lm);
$mail->send();
echo "Email message sent.";
} catch (Exception $e) {
echo "Error in sending email. Mailer Error: {$mail->ErrorInfo}";
$query_insert_candidature = $bdd->prepare('REPLACE INTO candidatures VALUES (NULL, "1", :location_cv, :location_lm, NULL, NULL, :ID_user, :ID_internship);');
$query_insert_candidature->execute(['location_cv' => $location_cv, 'location_lm' => $location_lm, 'ID_user' => $results_user[0]->ID_user, 'ID_internship' => $_POST["ID_internship"]]);
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";
}
} else {echo "POST file incomplet";}
catch (Exception $e) {
echo "zut une erreur";
}
} else {echo "POST file incomplet";}
} else {
header('HTTP/1.0 403 Forbidden');
require "controller/403.php";
}
}
}
}