$record->timetaken = $now;
 $record->takenby = $user->id;
 $dbsesslog = $att->get_session_log($sessionid);
 if (array_key_exists($record->studentid, $dbsesslog)) {
     // Already recorded do not save.
     return false;
 }
 $logid = $DB->insert_record('attendance_log', $record, false);
 $record->id = $logid;
 // Update the session to show that a register has been taken, or staff may overwrite records.
 $session = $att->get_session_info($sessionid);
 $session->lasttaken = $now;
 $session->lasttakenby = $USER->id;
 $updaterecord = $DB->update_record('attendance_sessions', $session);
 // Update the users grade.
 $updategrade = $att->update_users_grade(array($USER->id));
 /* create url for link in log screen
  * need to set grouptype to 0 to allow take attendance page to be called
  * from report/log page */
 // 		$params = array(
 // 				'sessionid' => $this->pageparams->sessionid,
 // 				'grouptype' => 0);
 // 		// Log the change.
 // 		$event = \mod_attendance\event\attendance_taken_by_student::create(array(
 // 				'objectid' => $this->id,
 // 				'context' => $this->context,
 // 				'other' => $params));
 // 		$event->
 //      ('course_modules', $this->cm);
 // 		$event->add_record_snapshot('attendance_sessions', $session);
 // 		$event->add_record_snapshot('attendance_log', $record);
$mform->set_data($formdata);
if ($mform->is_cancelled()) {
    redirect($att->url_managetemp());
} else {
    if ($data = $mform->get_data()) {
        $sql = "SELECT s.id, lr.id AS reallogid, lt.id AS templogid\n              FROM {attendance_sessions} s\n              LEFT JOIN {attendance_log} lr ON lr.sessionid = s.id AND lr.studentid = :realuserid\n              LEFT JOIN {attendance_log} lt ON lt.sessionid = s.id AND lt.studentid = :tempuserid\n             WHERE s.attendanceid = :attendanceid AND lt.id IS NOT NULL\n             ORDER BY s.id";
        $params = array('realuserid' => $data->participant, 'tempuserid' => $tempuser->studentid, 'attendanceid' => $att->id);
        $logs = $DB->get_recordset_sql($sql, $params);
        foreach ($logs as $log) {
            if (!is_null($log->reallogid)) {
                // Remove the existing attendance for the real user for this session.
                $DB->delete_records('attendance_log', array('id' => $log->reallogid));
            }
            // Adjust the 'temp user' attendance record to point at the real user.
            $DB->set_field('attendance_log', 'studentid', $data->participant, array('id' => $log->templogid));
        }
        // Delete the temp user.
        $DB->delete_records('attendance_tempusers', array('id' => $tempuser->id));
        $att->update_users_grade(array($data->participant));
        // Update the gradebook after the merge.
        redirect($att->url_managetemp());
    }
}
/** @var mod_attendance_renderer $output */
$output = $PAGE->get_renderer('mod_attendance');
$tabs = new attendance_tabs($att, attendance_tabs::TAB_TEMPORARYUSERS);
echo $output->header();
echo $output->heading(get_string('tempusermerge', 'attendance') . ' : ' . format_string($course->fullname));
echo $output->render($tabs);
$mform->display();
echo $output->footer($course);