From 7b8a0786a1da3469e5c5c5dd4c81dbc4efe4295a Mon Sep 17 00:00:00 2001
From: nicrausaz <n.crausaz99@gmail.com>
Date: Tue, 5 Mar 2019 09:27:46 +0100
Subject: [PATCH] insert if new items on edit working

---
 canapEPFL/helpers.php | 72 ++++++++++++++++++++++++++-----------------
 1 file changed, 44 insertions(+), 28 deletions(-)

diff --git a/canapEPFL/helpers.php b/canapEPFL/helpers.php
index 61e30e8..10f5f75 100644
--- a/canapEPFL/helpers.php
+++ b/canapEPFL/helpers.php
@@ -324,6 +324,7 @@ function updatePostulation ($pdo, $posted_data) {
   $sqlreq = "UPDATE applicant
 	SET
 		applicant_maturity= :applicant_maturity,
+    applicant_it_section=:applicant_it_section,
     applicant_gender= :applicant_gender,
 		applicant_address_street= :applicant_address_street,
 		applicant_address_npa= :applicant_address_npa,
@@ -352,6 +353,7 @@ function updatePostulation ($pdo, $posted_data) {
   $query = $pdo->prepare($sqlreq);
   $query->bindParam(':id', $posted_data->id, PDO::PARAM_STR);
   $query->bindParam(':applicant_maturity', $posted_data->maturite, PDO::PARAM_BOOL);
+  $query->bindParam(':applicant_it_section', $posted_data->filiere, PDO::PARAM_BOOL);
   $query->bindParam(':applicant_gender', $posted_data->genreApprenti, PDO::PARAM_STR);
   $query->bindParam(':applicant_address_street', $posted_data->addresseApprentiComplete['rue'], PDO::PARAM_STR);
   $query->bindParam(':applicant_address_npa', $posted_data->addresseApprentiComplete['NPA'], PDO::PARAM_STR);
@@ -412,54 +414,69 @@ function updatePostulation ($pdo, $posted_data) {
   }
 
   // update scolarities
+  $to_add = [];
   $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";
 
   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();
+    if (isset($scolarity['id'])) {
+      $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();
+    } else {
+      array_push($to_add, $scolarity);
+    }
   }
-
-  // TODO: si y en a des nouveaux ?
+  insertScolarities($pdo, $to_add, $posted_data->id);
 
   // update pro activities
+  $to_add = [];
   $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";
 
   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();
+    if (isset($activity['id'])) {
+      $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();
+    } else {
+      array_push($to_add, $activity);
+    }
   }
-
-  // TODO: si y en a des nouveaux ?
+  insertProActivities($pdo, $to_add, $posted_data->id);
 
   // update trainings
+  $to_add = [];
   $sqlreq = "UPDATE training SET training_job=:training_job, training_company=:training_company
   WHERE fk_applicant_id=:applicant_id AND training_id=:training_id";
 
 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();
+  if (isset($training['id'])) {
+    $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();
+  } else {
+    array_push($to_add, $training);
+  }
 }
+insertTrainings($pdo, $to_add, $posted_data->id);
+
 
-echo "<pre>";
 // TODO: files
+echo "<pre>";
 
 foreach ($posted_files as $key => $file) {
   if ($file['name'] != '') {
@@ -472,7 +489,6 @@ foreach ($posted_files as $key => $file) {
 //   if ($_FILES['file'.$i]['name']) {
 //     $file_data = getOneFile($pdo, $posted_data['file_id'.$i], $id);
 //     if (move_uploaded_file($_FILES['file'.$i]['tmp_name'], $file_data['file_path'])) {
-      
 //     } else {
 //       // Le fichier est ouvert
 //       $_SESSION['edit_error']['files'] = "Erreur lors du remplacement du fichier" . $_FILES['file'.$i]['name'] . ", réessayez plus tard.";
-- 
GitLab