/**
 * Generates the attendance report after completion of class giving details of
 * attendee list and duration of class. 
 *
 * @param integer $courseid the course id in which the class is scheduled.
 * @param integer $class_id id of the class for which attenadnce report is generated.
 * @param integer $id id of the course.
 * @param string $errormsg error message if there is any error in generating the attendance report.
 * will be used in next version
 * @param string $attendancexmlch_dur total duration of class.
 * @param string $attendancexmlch_attlist attendee's details for attendance report.
 */
function wiziq_getattendancereport($courseid, $coursecontext, $class_id, $id, &$errormsg,
                                   &$attendancexmlch_dur, &$attendancexmlch_attlist) {
    global $CFG, $wiziq_secretacesskey, $wiziq_access_key, $wiziq_webserviceurl, $USER;
    $wiziq_secretacesskey = $CFG->wiziq_secretacesskey;
    $wiziq_access_key = $CFG->wiziq_access_key;
    $wiziq_webserviceurl = $CFG->wiziq_webserviceurl;
    require_once("authbase.php");
    $wiziq_authbase = new wiziq_authbase($wiziq_secretacesskey, $wiziq_access_key);
    $method = "get_attendance_report";
    $requestparameters["signature"]=$wiziq_authbase->wiziq_generatesignature($method,
                                                                             $requestparameters);
    $requestparameters["class_id"] = $class_id;
    $wiziq_httprequest=new wiziq_httprequest();
    try {
        $xmlreturn=$wiziq_httprequest->wiziq_do_post_request(
                                           $wiziq_webserviceurl.'?method=get_attendance_report',
                                           $requestparameters);
        libxml_use_internal_errors(true);
        $attendancexml = new SimpleXMLElement($xmlreturn);
        $attendancexml_status = $attendancexml->attributes();
        if ($attendancexml_status == 'ok') {
            $attendancexmlch = $attendancexml->get_attendance_report;
            $attendancexmlch_status = $attendancexmlch->attributes();
            if ($attendancexmlch_status == 'true') {
                $attendancexmlch_dur = $attendancexmlch->class_duration;
                $attendancexmlch_attlist = $attendancexmlch->attendee_list;
            }
        } else if ($attendancexml_status=="fail") {
            $att = 'msg';
            $attribute = (string)$attendancexml->error->attributes()->$att;
            $url = new moodle_url('/mod/wiziq/index.php',
            array('id' => $id));
            $params = array(
                'objectid' => $class_id,
                'relateduserid' => $USER->id,
                'courseid' => $courseid,
                'context' => $coursecontext,
                'other' => array(
                    'sesskey' => sesskey(),
                    'error' => $attribute
                )
            );
            $event = \mod_wiziq\event\wiziq_classattendance::create($params);
            $event->trigger();
            print_error('1', '', '', $attribute);
        }
    } catch (Exception $e) {
        if (property_exists($e, 'errorcode')) {
            print_error($e->a);
        } else {
            $errormsg = get_string('errorinservice', 'wiziq');
            $params = array(
                'objectid' => $class_id,
                'relateduserid' => $USER->id,
                'courseid' => $courseid,
                'context' => $coursecontext,
                'other' => array(
                    'sesskey' => sesskey(),
                    'error' => $errormsg
                )
            );
            $event = \mod_wiziq\event\wiziq_classattendance::create($params);
            $event->trigger();
            print_error($errormsg);
        }
    }
}
        array('class_id' => $class_id, 'course' => $id), '*', IGNORE_MULTIPLE);
require_course_login($course);

$coursecontext = context_course::instance($course->id);
$noerror = get_string('noerror','wiziq');
$params = array(
    'objectid' => $class_id,
    'relateduserid' => $USER->id,
    'courseid' => $id,
    'context' => $coursecontext,
    'other' => array(
        'sesskey' => $sesskey,
        'error' => $noerror
    )
);
$event = \mod_wiziq\event\wiziq_classattendance::create($params);
$event->trigger();

$PAGE->set_url('/mod/wiziq/attendancereport.php',
        array('id' => $id, 'classid'=>$class_id, 'sesskey' => sesskey()));
$pagetitle = new stdClass();
$pagetitle->name =  get_string('attendance_report', 'wiziq');
$PAGE->set_title(format_string($pagetitle->name));
$wiziq_attendancereport = get_string('wiziq_attendancereport', 'wiziq');
$att_rep_title = $wiziq_attendancereport." ".$wiziqclass->name;
$PAGE->set_heading(format_string($att_rep_title));
$PAGE->set_context($coursecontext);
$PAGE->set_pagelayout('incourse');
$course_number = $course->id;
wiziq_getattendancereport($id, $coursecontext, $class_id, $id, $errormsg,
        $attendancexmlch_dur, $attendancexmlch_attlist);