function grade_below_threshold_notice($assessment_list)
{
global $db, $AGENT_CONTACTS;
$assessment_list = (array) $assessment_list;
foreach ($assessment_list as $assessment_id => $assessment) {
$mail = new Zend_Mail();
$mail->addHeader("X-Originating-IP", $_SERVER["REMOTE_ADDR"]);
$mail->addHeader("X-Section", "Gradebook Notification System", true);
$mail->clearFrom();
$mail->clearSubject();
$mail->setFrom($AGENT_CONTACTS["agent-notifications"]["email"], APPLICATION_NAME . ' Gradebook System');
$mail->setSubject("Grade Below Threshold Notification");
$message = "<pre>This notification is being sent to inform you that students scored below the assessment threshold.\n\n";
$message .= "Course:\t\t\t" . $assessment["course_name"] . " - " . $assessment["course_code"] . "\n";
$message .= "Assessment:\t\t<a href=\"" . ENTRADA_URL . "/admin/gradebook/assessments?section=grade&id=" . $assessment["course_id"] . "&assessment_id=" . $assessment_id . "\">" . $assessment["assessment_name"] . "</a>\n";
$message .= "Assessment ID:\t\t" . $assessment_id . "\n";
$message .= "Grade Threshold:\t" . $assessment["threshold"] . "%\n\n";
$message .= "The following students scored below the assessment threshold:\n";
$message .= "-------------------------------------------------------------\n\n";
foreach ($assessment["students"] as $proxy_number => $student) {
$query = "\tUPDATE `assessment_grades`\n\t\t\t\t\t\tSET `threshold_notified` = '1'\n\t\t\t\t\t\tWHERE `grade_id` = " . $db->qstr($student["grade_id"]);
$result = $db->Execute($query);
$message .= "Student:\t\t" . $student["student_name"] . " - [" . $student["student_email"] . "] \n";
$message .= "Student Number:\t\t" . $student["student_number"] . "\n";
$message .= "Grade Recieved:\t\t" . $student["assessment_grade"] . "%\n\n";
}
$message .= "</pre>";
$mail->setBodyHtml($message);
$query = "\tSELECT a.`contact_type`, a.`contact_order`, b.`prefix`, b.`firstname`, b.`lastname`, b.`email`, a.`proxy_id`\n\t\t\tFROM " . DATABASE_NAME . ".`course_contacts` AS a \n\t\t\tJOIN " . AUTH_DATABASE . ".`user_data` AS b \n\t\t\tON a.`proxy_id` = b.`id` \n\t\t\tWHERE a.`course_id` = " . $db->qstr($assessment["course_id"]) . "\n\t\t\tORDER BY a.`contact_type` DESC, a.`contact_order` ASC";
$contacts = $db->GetAll($query);
foreach ($contacts as $contact) {
$mail->addTo($contact["email"], (!empty($contact["prefix"]) ? $contact["prefix"] . " " : "") . $contact["firstname"] . " " . $contact["lastname"]);
$contact_proxies[] = $contact["proxy_id"];
}
$sent = true;
try {
$mail->send();
} catch (Exception $e) {
$sent = false;
}
if ($sent) {
application_log("success", "Sent grade below threshold notification to Program Coordinators / Directors [" . implode(",", $contact_proxies) . "].");
$return_value = true;
} else {
application_log("error", "Unable to send grade below threshold notification to Program Coordinators / Directors [" . implode(",", $contact_proxies) . "].");
}
}
}