예제 #1
0
 if ($PROCESSED["count"] == 1 || $PROCESSED["count"] == 2) {
     $query = "\tSELECT b.`course_id`, b.`course_name`, `course_code`\n                                FROM `course_objectives` AS a\n                                JOIN `courses` As b\n                                ON a.`course_id` = b.`course_id`\n                                JOIN `objective_organisation` AS c\n                                ON a.`objective_id` = c.`objective_id`\n                                WHERE a.`objective_id` = " . $db->qstr($PROCESSED["objective_parent"]) . "\n                                AND b.`course_active` = 1\n                                AND c.`organisation_id` = " . $db->qstr($ENTRADA_USER->getActiveOrganisation()) . ($PROCESSED["course_id"] ? " AND a.`course_id` = " . $db->qstr($PROCESSED["course_id"]) : "'1' = '1'");
     $mapped_courses = $db->GetAll($query);
 }
 if ($PROCESSED["count"] == 1 || $PROCESSED["count"] == 3) {
     $query = "\tSELECT c.`event_id`, c.`event_title`, c.`event_start`, d.`objective_name`, e.`course_code`, e.`course_name`, d.`objective_description`\n                                FROM `event_objectives` AS a\n                                JOIN `objective_organisation` AS b\n                                ON a.`objective_id` = b.`objective_id`\n                                JOIN `events` AS c\n                                ON a.`event_id` = c.`event_id`\n                                JOIN `global_lu_objectives` AS d\n                                ON a.`objective_id` = d.`objective_id`\n                                JOIN `courses` AS e\n                                ON c.`course_id` = e.`course_id`\n                                LEFT JOIN `event_audience` AS f\n                                ON c.`event_id` = f.`event_id` " . ($PROCESSED["group_id"] ? " AND f.`audience_type` = 'cohort' " : "") . "\n                                WHERE a.`objective_id` = " . $db->qstr($PROCESSED["objective_parent"]) . "\n                                AND b.`organisation_id` = " . $db->qstr($ENTRADA_USER->getActiveOrganisation()) . ($PROCESSED["year"] ? " AND (IF (c.`event_id` IS NOT NULL, c.`event_start` BETWEEN " . $db->qstr($SEARCH_DURATION["start"]) . " AND " . $db->qstr($SEARCH_DURATION["end"]) . ", '1' = '1'))" : "") . ($PROCESSED["course_id"] ? " AND c.`course_id` = " . $db->qstr($PROCESSED["course_id"]) : "'1' = '1'");
     ($PROCESSED["group_id"] ? " AND f.`audience_value` = " . $db->qstr($PROCESSED["group_id"]) : "") . "\n                                ORDER BY c.`course_id`, c.`event_start` DESC";
     $event_objectives = $db->GetAll($query);
 }
 $query = "\tSELECT a.`objective_id`, a.`objective_name`, a.`objective_parent`\n\n                            FROM `global_lu_objectives` AS a\n                            JOIN `objective_organisation` AS b\n                            ON a.`objective_id` = b.`objective_id`\n\n                            WHERE a.`objective_parent` = " . $db->qstr($objective_info["objective_parent"] != 0 && $PROCESSED["objective_parent"] == $PROCESSED["id"] ? $objective_info["objective_parent"] : $PROCESSED["objective_parent"]) . "\n                            AND a.`objective_active` = '1'\n                            AND b.`organisation_id` = " . $db->qstr($ENTRADA_USER->getActiveOrganisation()) . "\n\n                            GROUP BY a.`objective_id`\n                            ORDER BY a.`objective_id` ASC";
 $child_objectives = $db->GetAll($query);
 if ($child_objectives) {
     $i = 0;
     foreach ($child_objectives as $child) {
         if ($PROCESSED["count"] == 1 || $PROCESSED["count"] == 2) {
             $course_count = array_sum(count_objective_child_courses($child["objective_id"]));
         } else {
             $course_count = 0;
         }
         $child_objectives[$i]["course_count"] = $course_count;
         if ($PROCESSED["count"] == 1 || $PROCESSED["count"] == 3) {
             $event_count = array_sum(count_objective_child_events($child["objective_id"], $SEARCH_DURATION["start"], $SEARCH_DURATION["end"], $PROCESSED["course_id"], $PROCESSED["group_id"]));
         } else {
             $event_count = 0;
         }
         $child_objectives[$i]["event_count"] = $event_count;
         $i++;
     }
 }
 $objective_parents = fetch_objective_parents($PROCESSED["objective_parent"]);
 if ($objective_parents) {
예제 #2
0
function count_objective_child_courses($objective_id = 0, $level = 0)
{
    global $db, $ENTRADA_USER;
    if ($level >= 99) {
        application_log("error", "Recursion depth out of bounds in [count_objective_child_courses].");
        return false;
    }
    $objective_id = (int) $objective_id;
    /* Fetch Objective Mapped Courses */
    $query = "\tSELECT COUNT(DISTINCT a.`course_id`) AS `course_count`\n\t\t\t\tFROM `course_objectives` AS a\n\t\t\t\tJOIN `objective_organisation` AS b\n\t\t\t\tON a.`objective_id` = b.`objective_id`\n\t\t\t\tJOIN `courses` AS c\n\t\t\t\tON a.`course_id` = c.`course_id`\n\t\t\t\tWHERE a.`objective_id` = " . $db->qstr($objective_id) . "\n                AND a.`active` = '1'\n\t\t\t\tAND c.`course_active` = '1'\n\t\t\t\tAND b.`organisation_id` = " . $db->qstr($ENTRADA_USER->getActiveOrganisation());
    $output[$objective_id] = $db->GetOne($query);
    /* Fetch objective children */
    $query = "\tSELECT a.`objective_id`\n\t\t\t\tFROM `global_lu_objectives` AS a\n\t\t\t\tJOIN `objective_organisation` AS b\n\t\t\t\tON a.`objective_id` = b.`objective_id`\n\t\t\t\tWHERE a.`objective_parent` = " . $db->qstr($objective_id) . "\n\t\t\t\tAND a.`objective_active` = '1'\n\t\t\t\tAND b.`organisation_id` = " . $ENTRADA_USER->getActiveOrganisation();
    $children = $db->GetAll($query);
    if ($children) {
        foreach ($children as $child) {
            $child_count = count_objective_child_courses($child["objective_id"], $level++);
            if (is_array($child_count)) {
                $return = array_sum($child_count);
            } else {
                $return = $course_count;
            }
            $output[$child["objective_id"]] = $return;
        }
    }
    return $output;
}