function stats_report_student_course_list

7.x stats.module stats_report_student_course_list()
6.x stats.module stats_report_student_course_list()
4.x stats.module stats_report_student_course_list()
5.x stats.module stats_report_student_course_list()

This report shows a list of all of a student's courses which FlightPath is aware of.

Return value

unknown

File

modules/stats/stats.module, line 1353
This module displays statistics and reports for FlightPath

Code

function stats_report_student_course_list() {

  $rtn = "";

  $student_cwid = trim(addslashes(@$_REQUEST ["student_cwid"]));
  $student_pidm = 0;
  $rtn .= stats_draw_student_cwid_form("stats/reports/student-course-list", $student_cwid);

  if ($student_cwid == "") {
    return $rtn;
  }

  // If we have the banner_integration module installed, then get the pidm from banner too
  if (function_exists("banner_integration_get_pidm_for_cwid")) {
    $student_pidm = banner_integration_get_pidm_for_cwid($student_cwid);
  }
  $student_name = fp_get_student_name($student_cwid);
  $student = new Student($student_cwid);


  $rtn .= "
  
  <style>
    .zebra-even {
      background-color: white;
    }
    .zebra-odd {
      background-color: #ddd;
    }
  </style>
  
      <h2>$student_name ($student_cwid)
      ";
  if ($student_pidm > 0) {
    $rtn .= "<br>PIDM: $student_pidm";
  }
  $rtn .= "</h2>  
		  <table border='0' cellspacing='0' cellpadding='6'>
		    <tr>
		      <th>Subject</th>
		      <th>Number</th>
		      <th>Grade</th>
		      <th>Hours</th>
		      <th>Term</th>
		      <th>Transfer?</th>
		    </tr>";


  // So that we can sort our list of courses, we will add them to 
  // 2 arrays, one for local courses, one for transfer.
  $local_array = array();
  $transfer_array = array();

  $pol = "even";

  $local_hours = 0;
  $transfer_hours = 0;



  while ($student->list_courses_taken->has_more()) {
    $course = $student->list_courses_taken->get_next();

    $subjectID = $course->subject_id;
    $courseNum = $course->course_num;
    $grade = $course->grade;
    $hours = $course->get_hours_awarded();

    $rnd = mt_rand(0, 9999);

    if (is_object($course->course_transfer)) {
      $subjectID = $course->course_transfer->subject_id;
      $courseNum = $course->course_transfer->course_num;
      $grade = $course->course_transfer->grade;
      $hours = $course->course_transfer->get_hours_awarded();

      $transfer_hours += $hours;

    }
    else {
      // local course
      $local_hours += $hours;
    }

    $html_line = "
              <td>$subjectID</td>
              <td>$courseNum</td>
              <td>$grade</td>
              <td>$hours</td>
              <td>$course->term_id</td>
              <td>" . (($course->bool_transfer) ? "T" : "") . "</td>
            ";

    if ($course->bool_transfer) {
      // The $rnd makes sure this is unique, in case a course is showing as repeated in the same term.
      $transfer_array ["$course->term_id~$subjectID~$courseNum~$rnd"] = $html_line;
    }
    else {
      // The $rnd makes sure this is unique, in case a course is showing as repeated in the same term.
      $local_array ["$course->term_id~$subjectID~$courseNum~$rnd"] = $html_line;
    }


  }


  // Okay, now let's sort our arrays and display them.
  ksort($transfer_array);
  ksort($local_array);

  foreach ($local_array as $line) {
    $rtn .= "<tr class='zebra-$pol'>$line</tr>";
    $pol = ($pol == "even") ? "odd" : "even";
  }

  foreach ($transfer_array as $line) {
    $rtn .= "<tr class='zebra-$pol'>$line</tr>";
    $pol = ($pol == "even") ? "odd" : "even";
  }



  $rtn .= "</table>
    <hr>
    ";

  $rtn .= "<p>" . count($local_array) . " local courses, with $local_hours hours.</p>";
  $rtn .= "<p>" . count($transfer_array) . " transfer courses, with $transfer_hours hours.</p>";



  return $rtn;


}