You are here

function course_course_enrollment_delete in Course 7.2

Same name and namespace in other branches
  1. 7 course.module \course_course_enrollment_delete()

Implements hook_course_enrollment_delete().

Clean up after an enrollment deletion.

File

./course.module, line 1459
course.module Core functionality for Courses.

Code

function course_course_enrollment_delete(CourseEnrollment $enrollment) {
  $report = course_report_load($enrollment->nid, $enrollment->uid);

  // Delete the enrollment.
  $enrollment
    ->delete();

  // Also delete the course report. (Maybe not necessary?)
  $report
    ->delete();

  // Find all course objects in this course and delete the fulfillment.
  $coids = array();
  $result = db_query("SELECT coid FROM {course_outline} WHERE nid = :nid", array(
    ':nid' => $enrollment->nid,
  ));
  while ($row = $result
    ->fetch()) {
    $coids[] = $row->coid;
  }
  if (count($coids)) {
    $sql = "SELECT cofid FROM {course_outline_fulfillment} WHERE coid IN (:coids) AND uid = :uid";
    $cofid = db_query($sql, array(
      ':coids' => $coids,
      ':uid' => $enrollment->uid,
    ))
      ->fetchAllKeyed(0, 0);
    entity_delete_multiple('course_object_fulfillment', $cofid);
  }
}