diff --git a/canapEPFL/cible.php b/canapEPFL/cible.php index 807313cdc9547b6751ba8ba3189d6bc1854ee448..ea370a4fa4e29778fcf04e39b8696ca55e706ad6 100644 --- a/canapEPFL/cible.php +++ b/canapEPFL/cible.php @@ -21,7 +21,7 @@ if ($validator->isValid()) { if (isset($_GET['edit'])) { // update data - updatePostulation($pdo, $candidateData); + updatePostulation($pdo, $candidateData, $_FILES); } else { // write infos in DB $candidateId = insertDataIntoDB($pdo, $candidateData); diff --git a/canapEPFL/helpers.php b/canapEPFL/helpers.php index cfece6c06e93f0f6bc7b2e5bd274b2d2a9a049fd..93515cd5c78f2dd7668a415f388001eb697bd578 100644 --- a/canapEPFL/helpers.php +++ b/canapEPFL/helpers.php @@ -316,15 +316,13 @@ function deletePostulation ($pdo, $id, $sciper, $rep1, $rep2) { header('Location: viewpostulation.php'); } -function updatePostulation ($pdo, $posted_data) { - // $id, $posted_data, $main_resp_id, $sec_resp_id - // echo "editing: $id"; - echo "<pre>"; - print_r($posted_data); +function updatePostulation ($pdo, $posted_data, $posted_files) { - // update applicant infos + // echo "<pre>"; // print_r($posted_data); + // update applicant infos + $sqlreq = "UPDATE applicant SET applicant_maturity= :applicant_maturity, @@ -376,136 +374,96 @@ function updatePostulation ($pdo, $posted_data) { $query->bindParam(':applicant_already_applicant_year', $posted_data->anneeCandidature, PDO::PARAM_STR); $query->bindParam(':applicant_scolarity_end', $posted_data->anneeFinScolarite, PDO::PARAM_STR); $query->bindParam(':applicant_application_updated_date', $datetime_now, PDO::PARAM_STR); - - $query->execute(); - // die; - // update responsibles - - die; - $sqlreq = "UPDATE responsible - SET - responsible_name= :main_responsible_name, - responsible_fsname= :main_responsible_fsname, - responsible_gender= :main_responsible_gender, - responsible_street= :main_responsible_street, - responsible_npa= :main_responsible_npa, - responsible_phone= :main_responsible_phone - WHERE responsible_id=:main_responsible_id"; - - $query = $pdo->prepare($sqlreq); - $query->bindParam(':main_responsible_id', $main_resp_id, PDO::PARAM_INT); - $query->bindParam(':main_responsible_name', $posted_data['main_responsible_name'], PDO::PARAM_STR); - $query->bindParam(':main_responsible_fsname', $posted_data['main_responsible_fsname'], PDO::PARAM_STR); - $query->bindParam(':main_responsible_gender', $posted_data['main_responsible_gender'], PDO::PARAM_STR); - $query->bindParam(':main_responsible_street', $posted_data['main_responsible_street'], PDO::PARAM_STR); - $query->bindParam(':main_responsible_npa', $posted_data['main_responsible_npa'], PDO::PARAM_STR); - $query->bindParam(':main_responsible_phone', $posted_data['main_responsible_phone'], PDO::PARAM_STR); $query->execute(); + // update responsibles $sqlreq = "UPDATE responsible SET - responsible_name= :sec_responsible_name, - responsible_fsname= :sec_responsible_fsname, - responsible_gender= :sec_responsible_gender, - responsible_street= :sec_responsible_street, - responsible_npa= :sec_responsible_npa, - responsible_phone= :sec_responsible_phone - WHERE responsible_id=:sec_responsible_id"; + responsible_name= :responsible_name, + responsible_fsname= :responsible_fsname, + responsible_gender= :responsible_gender, + responsible_street= :responsible_street, + responsible_npa= :responsible_npa, + responsible_phone= :responsible_phone + WHERE responsible_id=:responsible_id"; + + if (isset($posted_data->representants[0])) { + $main_rep = $posted_data->representants[0]; + $query = $pdo->prepare($sqlreq); + $query->bindParam(':responsible_id', $main_rep['id'], PDO::PARAM_INT); + $query->bindParam(':responsible_name', $main_rep['nom'], PDO::PARAM_STR); + $query->bindParam(':responsible_fsname', $main_rep['prenom'], PDO::PARAM_STR); + $query->bindParam(':responsible_gender', $main_rep['genre'], PDO::PARAM_STR); + $query->bindParam(':responsible_street', $main_rep['addresse']['rue'], PDO::PARAM_STR); + $query->bindParam(':responsible_npa', $main_rep['addresse']['NPA'], PDO::PARAM_STR); + $query->bindParam(':responsible_phone', $main_rep['telephone'], PDO::PARAM_STR); + $query->execute(); + } - $query = $pdo->prepare($sqlreq); - $query->bindParam(':sec_responsible_id', $sec_resp_id, PDO::PARAM_INT); - $query->bindParam(':sec_responsible_name', $posted_data['sec_responsible_name'], PDO::PARAM_STR); - $query->bindParam(':sec_responsible_fsname', $posted_data['sec_responsible_fsname'], PDO::PARAM_STR); - $query->bindParam(':sec_responsible_gender', $posted_data['sec_responsible_gender'], PDO::PARAM_STR); - $query->bindParam(':sec_responsible_street', $posted_data['sec_responsible_street'], PDO::PARAM_STR); - $query->bindParam(':sec_responsible_npa', $posted_data['sec_responsible_npa'], PDO::PARAM_STR); - $query->bindParam(':sec_responsible_phone', $posted_data['sec_responsible_phone'], PDO::PARAM_STR); - $query->execute(); + if (isset($posted_data->representants[1])) { + $sec_rep = $posted_data->representants[1]; + $query = $pdo->prepare($sqlreq); + $query->bindParam(':responsible_id', $sec_rep['id'], PDO::PARAM_INT); + $query->bindParam(':responsible_name', $sec_rep['nom'], PDO::PARAM_STR); + $query->bindParam(':responsible_fsname', $sec_rep['prenom'], PDO::PARAM_STR); + $query->bindParam(':responsible_gender', $sec_rep['genre'], PDO::PARAM_STR); + $query->bindParam(':responsible_street', $sec_rep['addresse']['rue'], PDO::PARAM_STR); + $query->bindParam(':responsible_npa', $sec_rep['addresse']['NPA'], PDO::PARAM_STR); + $query->bindParam(':responsible_phone', $sec_rep['telephone'], PDO::PARAM_STR); + $query->execute(); + } // update scolarities $sqlreq = "UPDATE scolarity SET scolarity_school=:scolarity_school, scolarity_location=:scolarity_location, scolarity_level=:scolarity_level, scolarity_years=:scolarity_years WHERE fk_applicant_id=:applicant_id AND scolarity_id=:scolarity_id"; - if (isset($posted_data['scolarity_id1'])) { - // at least one is set - for ($i=1; $i <= 5; $i++) { - if (isset($posted_data['scolarity_id'. $i])) { - // update every existing item - $id_school = $posted_data['scolarity_id'. $i]; - $school = $posted_data['scolarity_school'. $i]; - $location = $posted_data['scolarity_location' . $i]; - $level = $posted_data['scolarity_level' . $i]; - $years = $posted_data['scolarity_years' . $i]; - - $query = $pdo->prepare($sqlreq); - $query->bindParam(':applicant_id', $id, PDO::PARAM_INT); - $query->bindParam(':scolarity_id', $id_school, PDO::PARAM_INT); - $query->bindParam(':scolarity_school', $school, PDO::PARAM_STR); - $query->bindParam(':scolarity_location', $location, PDO::PARAM_STR); - $query->bindParam(':scolarity_level', $level, PDO::PARAM_STR); - $query->bindParam(':scolarity_years', $years, PDO::PARAM_STR); - $query->execute(); - } else { - break; - } - } + foreach ($posted_data->scolarite as $scolarity) { + $query = $pdo->prepare($sqlreq); + $query->bindParam(':applicant_id', $posted_data->id, PDO::PARAM_INT); + $query->bindParam(':scolarity_id', $scolarity['id'], PDO::PARAM_INT); + $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->execute(); } + // TODO: si y en a des nouveaux ? // update pro activities $sqlreq = "UPDATE professional_activity SET professional_activity_company=:professional_activity_company, professional_activity_location=:professional_activity_location, professional_activity_activity=:professional_activity_activity, professional_activity_years=:professional_activity_years WHERE fk_applicant_id=:applicant_id AND professional_activity_id=:professional_activity_id"; - if (isset($posted_data['professional_activity_id1'])) { - // at least one is set - for ($i=1; $i <= 3; $i++) { - if (isset($posted_data['professional_activity_id'. $i])) { - // update every existing item - $id_activity = $posted_data['professional_activity_id'. $i]; - $company = $posted_data['professional_activity_company'. $i]; - $location = $posted_data['professional_activity_location' . $i]; - $activity = $posted_data['professional_activity_activity' . $i]; - $years = $posted_data['professional_activity_years' . $i]; - - $query = $pdo->prepare($sqlreq); - $query->bindParam(':applicant_id', $id, PDO::PARAM_INT); - $query->bindParam(':professional_activity_id', $id_activity, PDO::PARAM_INT); - $query->bindParam(':professional_activity_company', $company, PDO::PARAM_STR); - $query->bindParam(':professional_activity_location', $location, PDO::PARAM_STR); - $query->bindParam(':professional_activity_activity', $activity, PDO::PARAM_STR); - $query->bindParam(':professional_activity_years', $years, PDO::PARAM_STR); - $query->execute(); - } else { - break; - } - } + foreach ($posted_data->activitesProfessionnelles as $activity) { + $query = $pdo->prepare($sqlreq); + $query->bindParam(':applicant_id', $posted_data->id, PDO::PARAM_INT); + $query->bindParam(':professional_activity_id', $activity['id'], PDO::PARAM_INT); + $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->execute(); } + // TODO: si y en a des nouveaux ? + // update trainings $sqlreq = "UPDATE training SET training_job=:training_job, training_company=:training_company WHERE fk_applicant_id=:applicant_id AND training_id=:training_id"; - if (isset($posted_data['training_id1'])) { - // at least one is set - for ($i=1; $i <= 4; $i++) { - if (isset($posted_data['training_id'. $i])) { - // update every existing item - $id_training = $posted_data['training_id'. $i]; - $company = $posted_data['training_company'. $i]; - $job = $posted_data['training_job' . $i]; - - $query = $pdo->prepare($sqlreq); - $query->bindParam(':applicant_id', $id, PDO::PARAM_INT); - $query->bindParam(':training_id', $id_training, PDO::PARAM_INT); - $query->bindParam(':training_company', $company, PDO::PARAM_STR); - $query->bindParam(':training_job', $job, PDO::PARAM_STR); - $query->execute(); - } else { - break; - } - } - } +foreach ($posted_data->stages as $training) { + $query = $pdo->prepare($sqlreq); + $query->bindParam(':applicant_id', $posted_data->id, PDO::PARAM_INT); + $query->bindParam(':training_id', $training['id'], PDO::PARAM_INT); + $query->bindParam(':training_company', $training['metier'], PDO::PARAM_STR); + $query->bindParam(':training_job', $training['employeur'], PDO::PARAM_STR); + $query->execute(); +} +die; + +// TODO: files + print_r($posted_files); $i = 1; while (isset($posted_data['file_id'.$i])) { // remplace le fichier sur le serveur @@ -520,7 +478,7 @@ function updatePostulation ($pdo, $posted_data) { } $i++; } - header('Location: viewpostulation.php'); + // header('Location: viewpostulation.php'); } #endregion ?> \ No newline at end of file diff --git a/canapEPFL/models/PersonnalData.php b/canapEPFL/models/PersonnalData.php index bff2aac30eb9639725eaf6a5bdea387e24dfda8b..4d502e0a5d039a3deecf87540d54178a49448d52 100644 --- a/canapEPFL/models/PersonnalData.php +++ b/canapEPFL/models/PersonnalData.php @@ -82,32 +82,49 @@ class PersonnalData { private function setRepresentants () { $rep1 = array("genre"=>$this->postedData['genreRep1'],"nom"=>$this->postedData['nameRep1'],"prenom"=>$this->postedData['surnameRep1'],"addresse"=> array("rue"=>$this->postedData['adrRep1'],"NPA"=>$this->postedData['NPARep1']),"telephone"=>$this->postedData['telRep1']); $rep2 = array("genre"=>$this->postedData['genreRep2'],"nom"=>$this->postedData['nameRep2'],"prenom"=>$this->postedData['surnameRep2'],"addresse"=> array("rue"=>$this->postedData['adrRep2'],"NPA"=>$this->postedData['NPARep2']),"telephone"=>$this->postedData['telRep2']); - if ($rep1) { + if ($this->postedData['idRep1']) { + $rep1['id'] = $this->postedData['idRep1']; + } array_push($this->representants, $rep1); } if ($rep2) { + if ($this->postedData['idRep2']) { + $rep2['id'] = $this->postedData['idRep2']; + } array_push($this->representants, $rep2); } } private function setScolarite () { for ($i = 1; $i <= 5; $i++) { if (array_key_exists('ecole'.$i, $this->postedData)) { - array_push($this->scolarite, array("ecole"=>$this->postedData['ecole'.$i],"lieu"=>$this->postedData['lieuEcole'.$i],"niveau"=>$this->postedData['niveauEcole'.$i],"annees"=>$this->postedData['anneesEcole'.$i])); + if (isset($this->postedData['ecole_id'.$i])) { + array_push($this->scolarite, array("id" => $this->postedData['ecole_id'.$i], "ecole"=>$this->postedData['ecole'.$i],"lieu"=>$this->postedData['lieuEcole'.$i],"niveau"=>$this->postedData['niveauEcole'.$i],"annees"=>$this->postedData['anneesEcole'.$i])); + } else { + array_push($this->scolarite, array("ecole"=>$this->postedData['ecole'.$i],"lieu"=>$this->postedData['lieuEcole'.$i],"niveau"=>$this->postedData['niveauEcole'.$i],"annees"=>$this->postedData['anneesEcole'.$i])); + } } } } private function setActivitesPro () { for ($i = 1; $i <= 3; $i++) { if (array_key_exists('employeurPro'.$i, $this->postedData)) { - array_push($this->activitesProfessionnelles, array("employeur"=>$this->postedData['employeurPro'.$i],"lieu"=>$this->postedData['lieuPro'.$i],"activite"=>$this->postedData['activitePro'.$i],"annees"=>$this->postedData['anneesPro'.$i])); + if (isset($this->postedData['pro_id'.$i])) { + array_push($this->activitesProfessionnelles, array("id" => $this->postedData['pro_id'.$i],"employeur"=>$this->postedData['employeurPro'.$i],"lieu"=>$this->postedData['lieuPro'.$i],"activite"=>$this->postedData['activitePro'.$i],"annees"=>$this->postedData['anneesPro'.$i])); + } else { + array_push($this->activitesProfessionnelles, array("employeur"=>$this->postedData['employeurPro'.$i],"lieu"=>$this->postedData['lieuPro'.$i],"activite"=>$this->postedData['activitePro'.$i],"annees"=>$this->postedData['anneesPro'.$i])); + } } } } private function setStages () { for ($i = 1; $i <= 4; $i++) { if (array_key_exists('activiteStage'.$i, $this->postedData)) { - array_push($this->stages,array("metier"=>$this->postedData['activiteStage'.$i],"employeur"=>$this->postedData['entrepriseStage'.$i])); + if (isset($this->postedData['stage_id'.$i])) { + array_push($this->stages,array("id" => $this->postedData['stage_id'.$i],"metier"=>$this->postedData['activiteStage'.$i],"employeur"=>$this->postedData['entrepriseStage'.$i])); + } else { + array_push($this->stages,array("metier"=>$this->postedData['activiteStage'.$i],"employeur"=>$this->postedData['entrepriseStage'.$i])); + } } } } diff --git a/canapEPFL/templates/formParts/edit/proactivities.php b/canapEPFL/templates/formParts/edit/proactivities.php index 5d22c4bb99f53994b872c926ad3edd8bb8a38704..86413a0e52b8ea3b11adc3b481abff1249b4df31 100644 --- a/canapEPFL/templates/formParts/edit/proactivities.php +++ b/canapEPFL/templates/formParts/edit/proactivities.php @@ -10,6 +10,7 @@ </tr> <?php foreach ($proactivities as $key => $activity) { $i = $key + 1; ?> <tr> + <input type="text" name="pro_id<?= $i ?>" value="<?= $activity['professional_activity_id'] ?>" hidden readonly> <td> <input type="text" name="employeurPro<?= $i ?>" placeholder="Employeur" class="form-control" value="<?php echo $activity['professional_activity_company'] != '' ? $activity['professional_activity_company'] : ''; ?>" data-required/> </td> diff --git a/canapEPFL/templates/formParts/edit/responsibles.php b/canapEPFL/templates/formParts/edit/responsibles.php index f7d91c7c8be99533193d27bc5b2db5044f9b9710..de473892b23f4d2d29b45c262d09e53adbd57078 100644 --- a/canapEPFL/templates/formParts/edit/responsibles.php +++ b/canapEPFL/templates/formParts/edit/responsibles.php @@ -15,6 +15,7 @@ <div class="form-group" id="representants"> <p>Représentant principal:*</p> + <input name="idRep1" value="<?= $main_resp['responsible_id'] ?>" hidden readonly> <label for="genreRep1">Genre *</label> <select name="genreRep1" id="genreRep1" class="custom-select"> <option <?php echo (!isset($main_resp['responsible_gender'])) ? "selected" : ''; ?> disabled> Choisissez un genre</option> @@ -33,6 +34,7 @@ <input type="text" name="telRep1" id="telRep1" class="form-control" placeholder="+41 79 123 45 67" value="<?php echo $main_resp['responsible_phone'] != '' ? $main_resp['responsible_phone'] : ''; ?>"/> <p class="pt-4">Représentant secondaire:</p> + <input name="idRep2" value="<?= $sec_resp['responsible_id'] ?>" readonly hidden> <label for="genreRep2">Genre</label> <select name="genreRep2" id="genreRep2" class="custom-select"> <option <?php echo (!isset($sec_resp['responsible_gender'])) ? "selected" : ''; ?> disabled> Choisissez un genre</option> diff --git a/canapEPFL/templates/formParts/edit/scolarity.php b/canapEPFL/templates/formParts/edit/scolarity.php index 0f26afce4e8dee2962c1c8f9287c4ea24afd0e7f..51c9c0bd4c3cfc01a7c8f44d2302224569ee42e3 100644 --- a/canapEPFL/templates/formParts/edit/scolarity.php +++ b/canapEPFL/templates/formParts/edit/scolarity.php @@ -10,6 +10,7 @@ </tr> <?php foreach ($scolarites as $key => $scolarity) { $i = $key + 1; ?> <tr> + <input type="text" name="ecole_id<?= $i ?>" value="<?= $scolarity['scolarity_id'] ?>" hidden readonly> <td> <input type="text" name="ecole<?= $i ?>" placeholder="Ecole *" class="form-control" value="<?php echo $scolarity['scolarity_school'] != '' ? $scolarity['scolarity_school'] : ''; ?>" data-required/> </td> @@ -25,7 +26,6 @@ </tr> <?php } ?> </table> -<!-- TODO: check ça passe de 3 a 5 --> <button type="button" class="btn btn-primary btn-sm mt-3 mb-2" id="addSch">Ajouter une ligne</button> <div class="form-group mt-3"> diff --git a/canapEPFL/templates/formParts/edit/trainings.php b/canapEPFL/templates/formParts/edit/trainings.php index bb9d8ecf69a3c98f86b4571741990c1ac0d7c071..a3d057cb6554db116cd34ff927bfd37aaebc9c53 100644 --- a/canapEPFL/templates/formParts/edit/trainings.php +++ b/canapEPFL/templates/formParts/edit/trainings.php @@ -8,6 +8,7 @@ </tr> <?php foreach ($trainings as $key => $training) { $i = $key + 1; ?> <tr> + <input type="text" name="stage_id<?= $i ?>" value="<?= $training['training_id'] ?>" hidden readonly> <td> <input type="text" class="form-control" name="activiteStage<?php echo $i ?>" placeholder="Métier" value="<?= $training['training_job'] ?>" > </td>