/**
  * @inheritdoc
  */
 public function __construct($certificate, $course, $coursemodule, $certificateissues = null)
 {
     // If no certificateissues provided, we replace it with some dummy,
     // enough to that the $this->get_pdf() will be able to render something.
     if (empty($certificateissues)) {
         // Create a dummy certificate_issues.
         $certificateissues = new stdClass();
         $certificateissues->timecreated = time();
         $certificateissues->code = certificate_generate_code();
     }
     parent::__construct($certificate, $course, $certificateissues, $coursemodule);
 }
Пример #2
0
/**
 * Inserts preliminary user data when a certificate is viewed.
 * Prevents form from issuing a certificate upon browser refresh.
 *
 * @param stdClass $course
 * @param stdClass $user
 * @param stdClass $certificate
 * @return stdClass the newly created certificate issue
 */
function certificate_prepare_issue($course, $user, $certificate)
{
    global $DB;
    if ($certificate->reissuecert == 0) {
        // Get the last one they received
        if ($certissue = certificate_get_latest_issue($certificate->id, $user->id)) {
            return $certissue;
        }
    } else {
        if ($certissue = $DB->get_record('certificate_issues', array('certificateid' => $certificate->id, 'userid' => $user->id, 'certdate' => '0'))) {
            return $certissue;
        }
    }
    // Create new certificate issue record
    $certissue = new stdClass();
    $certissue->certificateid = $certificate->id;
    $certissue->userid = $user->id;
    $certissue->timecreated = time();
    $certissue->studentname = fullname($user);
    $certissue->code = certificate_generate_code();
    $certissue->classname = $course->fullname;
    $certissue->certdate = 0;
    $certissue->reportgrade = NULL;
    $certissue->id = $DB->insert_record('certificate_issues', $certissue);
    return $certissue;
}
Пример #3
0
/**
 * Inserts preliminary user data when a certificate is viewed.
 * Prevents form from issuing a certificate upon browser refresh.
 *
 * @param stdClass $course
 * @param stdClass $user
 * @param stdClass $certificate
 * @param stdClass $cm
 * @return stdClass the newly created certificate issue
 */
function certificate_get_issue($course, $user, $certificate, $cm)
{
    global $DB;
    // Check if there is an issue already, should only ever be one
    if ($certissue = $DB->get_record('certificate_issues', array('userid' => $user->id, 'certificateid' => $certificate->id))) {
        return $certissue;
    }
    // Create new certificate issue record
    $certissue = new stdClass();
    $certissue->certificateid = $certificate->id;
    $certissue->userid = $user->id;
    $certissue->code = certificate_generate_code();
    $certissue->timecreated = time();
    $certissue->id = $DB->insert_record('certificate_issues', $certissue);
    // Email to the teachers and anyone else
    certificate_email_teachers($course, $certificate, $certissue, $cm);
    certificate_email_others($course, $certificate, $certissue, $cm);
    return $certissue;
}
function certificate_prepare_issue($course, $user)
{
    global $certificate;
    if (record_exists("certificate_issues", "certificateid", $certificate->id, "userid", $user->id)) {
        return get_record("certificate_issues", "certificateid", $certificate->id, "userid", $user->id);
    } else {
        if (certificate_grade_condition()) {
            $timecreated = time();
            $certdate = certificate_generate_date($certificate, $course);
            if (!$certdate) {
                $certdate = $timecreated;
            }
            $code = certificate_generate_code();
            if ($certificate->printgrade == 1) {
                $coursegrade = get_course_grade($course->id);
            } else {
                if ($certificate->printgrade > 1) {
                    $coursegrade = certificate_mod_grade($course, $certificate->printgrade);
                }
            }
            if ($certificate->gradefmt == 1) {
                $gradeinput = $coursegrade->percentage . '%';
            } else {
                if ($certificate->gradefmt == 2) {
                    $gradeinput = $coursegrade->points . ' %%P%%';
                } else {
                    if ($certificate->gradefmt == 3) {
                        $gradeinput = certificate_get_gradeletter($coursegrade->percentage);
                    }
                }
            }
            $studentname = str_replace('\'', '\\\'', certificate_generate_studentname($course, $user));
            insert_record("certificate_issues", array("certificateid" => $certificate->id, "userid" => $user->id, "timecreated" => $timecreated, "studentname" => $studentname, "code" => $code, "classname" => str_replace('\'', '\\\'', $course->fullname), "certdate" => $certdate, "credits" => $certificate->credithours, "grade" => $gradeinput), false);
            certificate_email_teachers($certificate);
        }
    }
}
Пример #5
0
function certificate_prepare_issue($course, $user, $certificate)
{
    if (record_exists('certificate_issues', 'certificateid', $certificate->id, 'userid', $user->id)) {
        return;
    }
    $timecreated = time();
    $code = certificate_generate_code();
    $studentname = fullname($user);
    $newrec = new Object();
    $newrec->certificateid = $certificate->id;
    $newrec->userid = $user->id;
    $newrec->timecreated = $timecreated;
    $newrec->studentname = addslashes($studentname);
    $newrec->code = addslashes($code);
    $newrec->classname = addslashes($course->fullname);
    $certissue = insert_record('certificate_issues', $newrec, false);
    //now assign certification!
    if (!empty($certificate->setcertification)) {
        $profilefield = new stdclass();
        $profilefield->certtype = $certificate->setcertification;
        $profilefield->userid = $user->id;
        $profilefield->courseid = $course->id;
        $profilefield->changeuserid = $user->id;
        $profilefield->timechanged = time();
        insert_record('tao_user_certification_status', $profilefield);
        //now save event
        //get shortname of certification being set:
        $eventdata = new object();
        $eventdata->userid = $user->id;
        $eventdata->course = $course->id;
        $eventdata->certification = $certificate->setcertification;
        $eventdata->certificationid = $certificate->id;
        events_trigger('certification_updated', $eventdata);
    }
}