Clearing promotion reference in main session table when promotion is deleted -refs #6215

1.9.x
Yoselyn Castillo 12 years ago
parent d00908f4bc
commit bf9c617f4a
  1. 8
      main/inc/lib/promotion.lib.php
  2. 13
      main/inc/lib/sessionmanager.lib.php

@ -218,8 +218,12 @@ class Promotion extends Model {
}
public function delete($id) {
parent::delete($id);
event_system(LOG_PROMOTION_DELETE, LOG_PROMOTION_ID, $id, api_get_utc_datetime(), api_get_user_id());
if (parent::delete($id)) {
SessionManager::clear_session_ref_promotion($id);
event_system(LOG_PROMOTION_DELETE, LOG_PROMOTION_ID, $id, api_get_utc_datetime(), api_get_user_id());
} else {
return false;
}
}

@ -573,6 +573,17 @@ class SessionManager {
event_system(LOG_SESSION_DELETE, LOG_SESSION_ID, $id_checked, api_get_utc_datetime(), $user_id);
}
public static function clear_session_ref_promotion($id_promotion) {
$tbl_session = Database::get_main_table(TABLE_MAIN_SESSION);
$id_promotion = intval($id_promotion);
$update_sql = "UPDATE $tbl_session SET promotion_id=0 WHERE promotion_id='$id_promotion'";
if (Database::query($update_sql)) {
return true;
} else {
return false;
}
}
/**
* Subscribes users (students) to the given session and optionally (default) unsubscribes previous users
* @author Carlos Vargas from existing code
@ -1709,6 +1720,7 @@ class SessionManager {
foreach ($courses as $course) {
$short_courses[] = $course;
}
}
$courses = null;
@ -1751,6 +1763,7 @@ class SessionManager {
$new_short_courses[] = $course_data['code'];
}
}
$short_courses = $new_short_courses;
$res = self::add_courses_to_session($sid, $short_courses, true);
$short_courses = null;

Loading…
Cancel
Save