Browse Source

Fix ticket mysql delete error see #1482

jmontoyaa 8 years ago
parent
commit
e82059c382
2 changed files with 13 additions and 2 deletions
  1. 5 0
      main/inc/lib/course.lib.php
  2. 8 2
      main/inc/lib/sessionmanager.lib.php

+ 5 - 0
main/inc/lib/course.lib.php

@@ -2332,6 +2332,11 @@ class CourseManager
             $sql = "DELETE FROM $table_stats_uploads WHERE c_id = $courseId";
             Database::query($sql);
 
+            // Update ticket
+            $ticket = Database::get_main_table(TABLE_TICKET_TICKET);
+            $sql = "UPDATE $ticket SET course_id = NULL WHERE course_id = $courseId";
+            Database::query($sql);
+
             // Delete the course from the database
             $sql = "DELETE FROM $table_course WHERE code = '" . $codeFiltered . "'";
             Database::query($sql);

+ 8 - 2
main/inc/lib/sessionmanager.lib.php

@@ -1538,6 +1538,7 @@ class SessionManager
         $tbl_item_properties = Database::get_course_table(TABLE_ITEM_PROPERTY);
         $tbl_student_publication = Database::get_course_table(TABLE_STUDENT_PUBLICATION);
         $tbl_student_publication_assignment = Database :: get_course_table(TABLE_STUDENT_PUBLICATION_ASSIGNMENT);
+        $ticket = Database::get_main_table(TABLE_TICKET_TICKET);
         $em = Database::getManager();
 
         $userId = api_get_user_id();
@@ -1596,7 +1597,11 @@ class SessionManager
         Database::query("DELETE FROM $tbl_item_properties WHERE session_id IN ($id_checked)");
         Database::query("DELETE FROM $tbl_url_session WHERE session_id IN($id_checked)");
 
-        Database::query("DELETE FROM $tbl_session WHERE id IN ($id_checked)");
+        $sql = "UPDATE $ticket SET session_id = NULL WHERE session_id IN ($id_checked)";
+        Database::query($sql);
+
+        $sql = "DELETE FROM $tbl_session WHERE id IN ($id_checked)";
+        Database::query($sql);
 
         $extraFieldValue = new ExtraFieldValue('session');
         $extraFieldValue->deleteValuesByItem($id_checked);
@@ -1627,7 +1632,8 @@ class SessionManager
     {
         $tbl_session = Database::get_main_table(TABLE_MAIN_SESSION);
         $id_promotion = intval($id_promotion);
-        $sql = "UPDATE $tbl_session SET promotion_id=0
+        $sql = "UPDATE $tbl_session 
+                SET promotion_id = 0
                 WHERE promotion_id = $id_promotion";
         if (Database::query($sql)) {
             return true;