Newer
Older
// 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();
}
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 = isset($addedRepIds[0]) ? $addedRepIds[0] : null;
$sec_rep_id = isset($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
$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();
}
function deletePostulation ($pdo, $id, $sciper, $rep1, $rep2) {
// 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 from server
$filesToRemove = getFilesById($pdo, $id);
foreach ($filesToRemove as $key => $file) {
unlink($file['file_path']);
}
// 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();
echo "delete :$id";
$sqlreq = "DELETE FROM applicant WHERE applicant_id=:id";
$query = $pdo->prepare($sqlreq);
$query->bindParam(':id', $id, 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();
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
echo "<pre>";
print_r($posted_data);
// update applicant data
// -- applicant_birthdate= :applicant_birthdate,
$sqlreq = "UPDATE applicant
SET
applicant_maturity= :applicant_maturity,
applicant_gender= :applicant_gender,
applicant_address_street= :applicant_address_street,
applicant_address_npa= :applicant_address_npa,
applicant_home_phone= :applicant_home_phone,
applicant_personal_phone= :applicant_personal_phone,
applicant_origin= :applicant_origin,
applicant_nationality= :applicant_nationality,
applicant_foreign_authorization= :applicant_foreign_authorization,
applicant_avs= :applicant_avs,
applicant_main_language= :applicant_main_language,
applicant_speaks_french= :applicant_speaks_french,
applicant_speaks_german= :applicant_speaks_german,
applicant_speaks_english= :applicant_speaks_english,
applicant_speaks_other= :applicant_speaks_other,
applicant_has_majority= :applicant_has_majority,
applicant_scolarity_end= :applicant_scolarity_end,
applicant_already_applicant= :applicant_already_applicant,
applicant_already_applicant_year= :applicant_already_applicant_year,
applicant_application_updated_date= :applicant_application_updated_date
WHERE applicant_id=:id";
$query = $pdo->prepare($sqlreq);
$query->bindParam(':id', $id, PDO::PARAM_STR);
$query->bindParam(':applicant_maturity', $posted_data['applicant_maturity'], PDO::PARAM_STR);
$query->bindParam(':applicant_gender', $posted_data['applicant_gender'], PDO::PARAM_STR);
$query->bindParam(':applicant_address_street', $posted_data['applicant_address_street'], PDO::PARAM_STR);
$query->bindParam(':applicant_address_npa', $posted_data['applicant_address_npa'], PDO::PARAM_STR);
$query->bindParam(':applicant_home_phone', $posted_data['applicant_home_phone'], PDO::PARAM_STR);
$query->bindParam(':applicant_personal_phone', $posted_data['applicant_personal_phone'], PDO::PARAM_STR);
$query->bindParam(':applicant_origin', $posted_data['applicant_origin'], PDO::PARAM_STR);
$query->bindParam(':applicant_nationality', $posted_data['applicant_nationality'], PDO::PARAM_STR);
$query->bindParam(':applicant_foreign_authorization', $posted_data['applicant_foreign_authorization'], PDO::PARAM_STR);
$query->bindParam(':applicant_avs', $posted_data['applicant_avs'], PDO::PARAM_STR);
$query->bindParam(':applicant_main_language', $posted_data['applicant_main_language'], PDO::PARAM_STR);
$query->bindParam(':applicant_speaks_french', $posted_data['applicant_speaks_french'], PDO::PARAM_STR);
$query->bindParam(':applicant_speaks_german', $posted_data['applicant_speaks_german'], PDO::PARAM_STR);
$query->bindParam(':applicant_speaks_english', $posted_data['applicant_speaks_english'], PDO::PARAM_STR);
$query->bindParam(':applicant_speaks_other', $posted_data['applicant_speaks_other'], PDO::PARAM_STR);
$query->bindParam(':applicant_has_majority', $posted_data['applicant_has_majority'], PDO::PARAM_STR);
$query->bindParam(':applicant_already_applicant', $posted_data['applicant_already_applicant'], PDO::PARAM_STR);
$query->bindParam(':applicant_already_applicant_year', $posted_data['applicant_already_applicant_year'], PDO::PARAM_STR);
$query->bindParam(':applicant_scolarity_end', $posted_data['applicant_scolarity_end'], PDO::PARAM_STR);
$query->bindParam(':applicant_application_updated_date', date("Y-m-d H:i:s"), PDO::PARAM_STR);
$query->execute();