Newer
Older
require_once("templates/mailToResp.php");
mail($to, $subject, $message, $headers);
require_once("templates/mailToApp.php");
mail($to, $subject, $message, $headers);
// Crée le dossier annexes
function createFilesFolder ($rootpath, $applicantId) {
$path = $rootpath . $applicantId . "/";
if (!mkdir($path, 0777, true)) {
die('Echec lors de la création du dossier');
}
return $path;
function uploadFile(&$candidateData, $pathAnnexes, $file, $key, $name){
$extension = strtolower(strrchr($file['name'], '.'));
$file['name'] = $name . $extension;
move_uploaded_file($file['tmp_name'], $pathAnnexes . $file['name']);
$candidateData->fichiers[$name] = $file['name'];
unset($candidateData->fichiers[$key]);
}
function uploadAllFiles($pathAnnexes, $postedFiles, $candidateData){
uploadFile($candidateData, $pathAnnexes, $postedFiles['photo'], 'photo', "photo-passeport");
uploadFile($candidateData, $pathAnnexes, $postedFiles['idCard'], 'idCard', "carte-identite");
uploadFile($candidateData, $pathAnnexes, $postedFiles['cv'], 'cv', "curriculum-vitae");
uploadFile($candidateData, $pathAnnexes, $postedFiles['lettre'], 'lettre', "lettre-motivation");
for ($i = 1; $i <= 9; $i++){
if (array_key_exists('certifs'.$i, $postedFiles)){
if (!($postedFiles['certifs'.$i]['name'] == "")) {
uploadFile($candidateData, $pathAnnexes, $postedFiles['certifs'.$i], 'certifs'.$i, "annexe".$i);
if ($candidateData->formation=="polyMecanicien" && isset($postedFiles['gimch'])) {
uploadFile($candidateData, $pathAnnexes, $postedFiles['gimch'], 'gimch', "certificat-gimch");
if ($candidateData->formation=="informaticien" && isset($postedFiles['griTestInput'])) {
uploadFile($candidateData, $pathAnnexes, $postedFiles['griTestInput'], 'griTestInput', "certificat-gri");
$id = insertPersonalInfos($pdo, $candidateData);
insertResponsibles($pdo, $candidateData->representants, $id);
insertScolarities($pdo, $candidateData->scolarite, $id);
insertProActivities($pdo, $candidateData->activitesProfessionnelles, $id);
insertTrainings ($pdo, $candidateData->stages, $id);
}
function insertPersonalInfos ($pdo, $candidateData) {
$sqlreq = "INSERT INTO applicant
(applicant_guest_sciper, applicant_formation, applicant_it_section, applicant_formation_location, applicant_maturity, applicant_gender, applicant_name, applicant_fsname, applicant_address_street, applicant_address_npa, applicant_home_phone, applicant_personal_phone, applicant_mail, applicant_birthdate, applicant_origin, applicant_nationality, applicant_foreign_authorization, applicant_avs, applicant_main_language, applicant_speaks_french, applicant_speaks_german, applicant_speaks_english, applicant_speaks_other, applicant_has_majority, applicant_scolarity_end, applicant_already_applicant, applicant_already_applicant_year, applicant_application_date, applicant_application_status, fk_applicant_main_responsible, fk_applicant_sec_responsible)
VALUES (:applicant_guest_sciper, :applicant_formation, :applicant_it_section, :applicant_formation_location, :applicant_maturity, :applicant_gender, :applicant_name, :applicant_fsname, :applicant_address_street, :applicant_address_npa, :applicant_home_phone, :applicant_personal_phone, :applicant_mail, :applicant_birthdate, :applicant_origin, :applicant_nationality, :applicant_foreign_authorization, :applicant_avs, :applicant_main_language, :applicant_speaks_french, :applicant_speaks_german, :applicant_speaks_english, :applicant_speaks_other, :applicant_has_majority, :applicant_scolarity_end, :applicant_already_applicant, :applicant_already_applicant_year, NOW(), 'new', null, null)";
$query->bindParam(':applicant_guest_sciper', $candidateData->guest_sciper, PDO::PARAM_STR);
$query->bindParam(':applicant_formation', $candidateData->formation, PDO::PARAM_STR);
$query->bindParam(':applicant_it_section', $candidateData->filiere, PDO::PARAM_STR);
$query->bindParam(':applicant_formation_location', $candidateData->lieu, PDO::PARAM_STR);
$query->bindParam(':applicant_maturity', $candidateData->maturite, PDO::PARAM_BOOL);
$query->bindParam(':applicant_gender', $candidateData->genreApprenti, PDO::PARAM_STR);
$query->bindParam(':applicant_name', $candidateData->nomApprenti, PDO::PARAM_STR);
$query->bindParam(':applicant_fsname', $candidateData->prenomApprenti, PDO::PARAM_STR);
$query->bindParam(':applicant_address_street', $candidateData->addresseApprentiComplete['rue'], PDO::PARAM_STR);
$query->bindParam(':applicant_address_npa', $candidateData->addresseApprentiComplete['NPA'], PDO::PARAM_STR);
$query->bindParam(':applicant_home_phone', $candidateData->telFixeApprenti, PDO::PARAM_STR);
$query->bindParam(':applicant_personal_phone', $candidateData->telMobileApprenti, PDO::PARAM_STR);
$query->bindParam(':applicant_mail', $candidateData->mailApprenti, PDO::PARAM_STR);
$query->bindParam(':applicant_birthdate', $candidateData->dateNaissanceApprenti, PDO::PARAM_STR);
$query->bindParam(':applicant_origin', $candidateData->origineApprenti, PDO::PARAM_STR);
$query->bindParam(':applicant_nationality', $candidateData->nationaliteApprenti, PDO::PARAM_STR);
$query->bindParam(':applicant_foreign_authorization', $candidateData->permisEtranger, PDO::PARAM_STR);
$query->bindParam(':applicant_avs', $candidateData->numeroAVS, PDO::PARAM_STR);
$query->bindParam(':applicant_main_language', $candidateData->langueMaternelleApprenti, PDO::PARAM_STR);
// languages
$speaks_fr = in_array("fr", $candidateData->connaissancesLinguistiques);
$speaks_de = in_array("de", $candidateData->connaissancesLinguistiques);
$speaks_en = in_array("en", $candidateData->connaissancesLinguistiques);
$speaks_other = in_array("others", $candidateData->connaissancesLinguistiques);
$query->bindParam(':applicant_speaks_french', $speaks_fr, PDO::PARAM_BOOL);
$query->bindParam(':applicant_speaks_german', $speaks_de, PDO::PARAM_BOOL);
$query->bindParam(':applicant_speaks_english', $speaks_en, PDO::PARAM_BOOL);
$query->bindParam(':applicant_speaks_other', $speaks_other, PDO::PARAM_BOOL);
$query->bindParam(':applicant_has_majority', $candidateData->majeur, PDO::PARAM_BOOL);
$query->bindParam(':applicant_scolarity_end', $candidateData->anneeFinScolarite, PDO::PARAM_STR);
$query->bindParam(':applicant_already_applicant', $candidateData->dejaCandidat, PDO::PARAM_BOOL);
$query->bindParam(':applicant_already_applicant_year', $candidateData->anneeCandidature, PDO::PARAM_STR);
$query->execute();
return $pdo->lastInsertId();
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
}
function insertResponsibles ($pdo, $representants, $applicantId) {
$addedRepIds = [];
// insert responsibles
$sqlreq = "INSERT INTO responsible (responsible_gender, responsible_name, responsible_fsname, responsible_street, responsible_npa, responsible_phone)
VALUES (:responsible_gender, :responsible_name, :responsible_fsname, :responsible_street, :responsible_npa, :responsible_phone)";
foreach ($representants as $rep) {
if ($rep['nom'] != '') {
$query = $pdo->prepare($sqlreq);
$query->bindParam(':responsible_gender', $rep['genre'], PDO::PARAM_STR);
$query->bindParam(':responsible_name', $rep['nom'], PDO::PARAM_STR);
$query->bindParam(':responsible_fsname', $rep['prenom'], PDO::PARAM_STR);
$query->bindParam(':responsible_street', $rep['addresse']['rue'], PDO::PARAM_STR);
$query->bindParam(':responsible_npa', $rep['addresse']['NPA'], PDO::PARAM_STR);
$query->bindParam(':responsible_phone', $rep['telephone'], PDO::PARAM_STR);
$query->execute();
array_push($addedRepIds, $pdo->lastInsertId());
}
}
// link responsibles
$main_rep_id = $addedRepIds[0] ? $addedRepIds[0] : null;
$sec_rep_id = $addedRepIds[1] ? $addedRepIds[1] : null;
$sqlreq = "UPDATE applicant SET fk_applicant_main_responsible=:fk_applicant_main_responsible, fk_applicant_sec_responsible=:fk_applicant_sec_responsible WHERE applicant_id=:applicant_id";
$query = $pdo->prepare($sqlreq);
$query->bindParam(':fk_applicant_main_responsible', $main_rep_id, PDO::PARAM_INT);
$query->bindParam(':fk_applicant_sec_responsible', $sec_rep_id, PDO::PARAM_INT);
$query->bindParam(':applicant_id', $applicantId, PDO::PARAM_INT);
$query->execute();
}
function insertScolarities ($pdo, $scolarities, $applicantId) {
// insert scolarities
$sqlreq = "INSERT INTO scolarity (scolarity_school, scolarity_location, scolarity_level, scolarity_years, applicant_applicant_id)
VALUES (:scolarity_school, :scolarity_location, :scolarity_level, :scolarity_years, :applicant_applicant_id)";
foreach ($scolarities as $scolarity) {
if ($scolarity['ecole'] != '') {
$query = $pdo->prepare($sqlreq);
$query->bindParam(':scolarity_school', $scolarity['ecole'], PDO::PARAM_STR);
$query->bindParam(':scolarity_location', $scolarity['lieu'], PDO::PARAM_STR);
$query->bindParam(':scolarity_level', $scolarity['niveau'], PDO::PARAM_STR);
$query->bindParam(':scolarity_years', $scolarity['annees'], PDO::PARAM_STR);
$query->bindParam(':applicant_applicant_id', $applicantId, PDO::PARAM_INT);
$query->execute();
}
}
}
function insertProActivities ($pdo, $activities, $applicantId) {
// insert professionnal activities
$sqlreq = "INSERT INTO professional_activity (professional_activity_company, professional_activity_location, professional_activity_activity, professional_activity_years, applicant_applicant_id)
VALUES (:professional_activity_company, :professional_activity_location, :professional_activity_activity, :professional_activity_years, :applicant_applicant_id)";
foreach ($activities as $activity) {
if ($activity['employeur'] != '') {
$query = $pdo->prepare($sqlreq);
$query->bindParam(':professional_activity_company', $activity['employeur'], PDO::PARAM_STR);
$query->bindParam(':professional_activity_location', $activity['lieu'], PDO::PARAM_STR);
$query->bindParam(':professional_activity_activity', $activity['activite'], PDO::PARAM_STR);
$query->bindParam(':professional_activity_years', $activity['annees'], PDO::PARAM_STR);
$query->bindParam(':applicant_applicant_id', $applicantId, PDO::PARAM_INT);
$query->execute();
}
}
}
function insertTrainings ($pdo, $trainings, $applicantId) {
// insert training / stages
$sqlreq = "INSERT INTO training (training_job, training_company, applicant_applicant_id)
VALUES (:training_job, :training_company, :applicant_applicant_id)";
foreach ($trainings as $training) {
if ($training['metier'] != '') {
$query = $pdo->prepare($sqlreq);
$query->bindParam(':training_job', $training['metier'], PDO::PARAM_STR);
$query->bindParam(':training_company', $training['employeur'], PDO::PARAM_STR);
$query->bindParam(':applicant_applicant_id', $applicantId, PDO::PARAM_INT);
$query->execute();
}
}
function insertFiles ($pdo, $files, $applicantId, $filesPath) {
// insert files
$userPath = $filesPath . $applicantId . "/";
$sqlreq = "INSERT INTO file (file_name, file_path, applicant_applicant_id)
VALUES (:file_name, :file_path, :applicant_applicant_id)";
foreach ($files as $file) {
$filePath = $userPath . $file;
$query = $pdo->prepare($sqlreq);
$query->bindParam(':file_name', $file, PDO::PARAM_STR);
$query->bindParam(':file_path', $filePath, PDO::PARAM_STR);
$query->bindParam(':applicant_applicant_id', $applicantId, PDO::PARAM_INT);
$query->execute();
}
}
$sqlreq = "SELECT * FROM applicant WHERE applicant_guest_sciper = :sciper AND applicant_application_status != 'deleted'";
$query = $pdo->prepare($sqlreq);
$query->bindParam(':sciper', $sciper, PDO::PARAM_STR);
$query->execute();
function getResponsibleById ($pdo, $id) {
$sqlreq = "SELECT * FROM responsible WHERE responsible_id = :id";
$query = $pdo->prepare($sqlreq);
$query->bindParam(':id', $id, PDO::PARAM_STR);
$query->execute();
return $query->fetchAll();
}
function getScolaritiesById ($pdo, $id) {
$sqlreq = "SELECT * FROM scolarity WHERE applicant_applicant_id = :id";
$query = $pdo->prepare($sqlreq);
$query->bindParam(':id', $id, PDO::PARAM_STR);
$query->execute();
return $query->fetchAll();
}
function getProActivitiesById ($pdo, $id) {
$sqlreq = "SELECT * FROM professional_activity WHERE applicant_applicant_id = :id";
$query = $pdo->prepare($sqlreq);
$query->bindParam(':id', $id, PDO::PARAM_STR);
$query->execute();
return $query->fetchAll();
}
function getTrainingById ($pdo, $id) {
$sqlreq = "SELECT * FROM training WHERE applicant_applicant_id = :id";
$query = $pdo->prepare($sqlreq);
$query->bindParam(':id', $id, PDO::PARAM_STR);
$query->execute();
return $query->fetchAll();
}
function getFilesById ($pdo, $id) {
$sqlreq = "SELECT * FROM file WHERE applicant_applicant_id = :id";
$query = $pdo->prepare($sqlreq);
$query->bindParam(':id', $id, PDO::PARAM_STR);
$query->execute();
return $query->fetchAll();
}
function validFileAccess ($pdo, $id, $sciper) {
$sqlreq = "SELECT file_name, file_path FROM file INNER JOIN applicant ON file.applicant_applicant_id = applicant.applicant_id WHERE applicant.applicant_guest_sciper = :sciper AND file_id = :id";
$query = $pdo->prepare($sqlreq);
$query->bindParam(':id', $id, PDO::PARAM_STR);
$query->bindParam(':sciper', $sciper, PDO::PARAM_STR);
$query->execute();
return $query->fetchAll();
}
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
function deletePostulation ($pdo, $id, $sciper, $rep1, $rep2) {
// TODO: delete related responsibles, files etc...
// delete scolarities
$sqlreq = "DELETE FROM scolarity WHERE applicant_applicant_id=:id";
$query = $pdo->prepare($sqlreq);
$query->bindParam(':id', $id, PDO::PARAM_STR);
$query->execute();
// delete Pro Activities
$sqlreq = "DELETE FROM professional_activity WHERE applicant_applicant_id=:id";
$query = $pdo->prepare($sqlreq);
$query->bindParam(':id', $id, PDO::PARAM_STR);
$query->execute();
// delete trainings
$sqlreq = "DELETE FROM training WHERE applicant_applicant_id=:id";
$query = $pdo->prepare($sqlreq);
$query->bindParam(':id', $id, PDO::PARAM_STR);
$query->execute();
// delete files (DB only)
$sqlreq = "DELETE FROM file WHERE applicant_applicant_id=:id";
$query = $pdo->prepare($sqlreq);
$query->bindParam(':id', $id, PDO::PARAM_STR);
$query->execute();
$sqlreq = "UPDATE applicant
SET
applicant_formation='',
applicant_it_section=null,
applicant_formation_location=null,
applicant_maturity=null,
applicant_gender=null,
applicant_name=null,
applicant_fsname=null,
applicant_address_street=null,
applicant_address_npa=null,
applicant_home_phone=null,
applicant_personal_phone=null,
applicant_mail=null,
applicant_birthdate=null,
applicant_origin=null,
applicant_nationality=null,
applicant_foreign_authorization=null,
applicant_avs=null,
applicant_main_language=null,
applicant_speaks_french=null,
applicant_speaks_german=null,
applicant_speaks_english=null,
applicant_speaks_other=null,
applicant_has_majority=null,
applicant_scolarity_end=null,
applicant_already_applicant=null,
applicant_already_applicant_year=null,
applicant_application_date=null,
applicant_application_status='deleted',
applicant_delete_date=NOW(),
fk_applicant_main_responsible=null,
fk_applicant_sec_responsible=null
WHERE applicant_id = :id AND applicant_guest_sciper = :sciper";
$query = $pdo->prepare($sqlreq);
$query->bindParam(':id', $id, PDO::PARAM_STR);
$query->bindParam(':sciper', $sciper, PDO::PARAM_STR);
$query->execute();
// delete responsibles
$sqlreq = "DELETE FROM responsible WHERE responsible_id=:id1 OR responsible_id=:id2";
$query = $pdo->prepare($sqlreq);
$query->bindParam(':id1', $rep1, PDO::PARAM_STR);
$query->bindParam(':id2', $rep2, PDO::PARAM_STR);
$query->execute();