Пример #1
0
/**
 * Get list of users attending a given session
 *
 * @access public
 * @param integer Session ID
 * @param array $status Array of statuses to include
 * @return array
 */
function facetoface_get_attendees($sessionid, $status = array(MDL_F2F_STATUS_BOOKED, MDL_F2F_STATUS_WAITLISTED)) {
    global $DB,$USER;

    list($statussql, $statusparams) = $DB->get_in_or_equal($status);

    $sql = "SELECT
            u.id,
            su.id AS submissionid,
            u.firstname,
            u.lastname,
            u.email,
            s.discountcost,
            su.discountcode,
            su.notificationtype,
            f.id AS facetofaceid,
            f.course,
            ss.grade,
            ss.statuscode,
            (
                SELECT MIN(timecreated)
                FROM {facetoface_signups_status} ss2
                WHERE ss2.signupid = ss.signupid AND ss2.statuscode IN (?, ?)
            ) as timesignedup,
            ss.timecreated
        FROM
            {facetoface} f
        JOIN
            {facetoface_sessions} s
         ON s.facetoface = f.id
        JOIN
            {facetoface_signups} su
         ON s.id = su.sessionid
        JOIN
            {facetoface_signups_status} ss
         ON su.id = ss.signupid
        JOIN
            {user} u
         ON u.id = su.userid
        WHERE
            s.id = ?
        AND ss.statuscode {$statussql}
        AND ss.superceded != 1";
        
        if (!is_siteadmin()) {
        if(is_trainingmanager())
        $costcenterid = $DB->get_field('local_costcenter_permissions','costcenterid',array('userid'=>$USER->id));
        else 
        $costcenterid = $DB->get_field('local_userdata','costcenterid',array('userid'=>$USER->id));
        $users_list = $DB->get_fieldset_sql('select userid from {local_userdata} where position='.$costcenterid.'');
        $useridin = implode(',',$users_list);
        if(!empty($users_list))
        $sql .= " AND u.id in($useridin)";
        }
        $sql .=" ORDER BY ss.timecreated ASC";
    $params = array_merge(array(MDL_F2F_STATUS_BOOKED, MDL_F2F_STATUS_WAITLISTED, $sessionid), $statusparams);

    $records = $DB->get_records_sql($sql, $params);

    return $records;
}
Пример #2
0
 *   - Show only attendees who are also the manager's staff
 *   - Show only staff awaiting approval
 *   - Show any staff who have cancelled
 *   - Shouldn't throw an error if there are previously declined attendees
 */
// Allowed actions are actions the user has permissions to do
$allowed_actions = array();
$can_view_session =false;

if(is_siteadmin())
$can_view_session = true;
elseif(is_teammanager())
$can_view_session = true;
elseif(is_reportingmanager())
$can_view_session = true;
elseif(is_trainingmanager())
$can_view_session = true;
elseif(is_odmanager())
$can_view_session = true;
else{
if (!$can_view_session) {
    $return = new moodle_url('/mod/facetoface/view.php', array('f' => $facetoface->id));
    redirect($return);
    die();
}
}
// Available actions are actions that have a point. e.g. view the cancellations page whhen there are no cancellations is not an "available" action, but it maybe be an "allowed" action
$available_actions = array();

$context = context_course::instance($course->id);
$contextmodule = context_module::instance($cm->id);