Esempio n. 1
0
function emarking_download_excel_monthly_cost($category, $totalcostdata)
{
    global $DB;
    $headers = [get_string('costbydate', 'mod_emarking')];
    $excelfilename = clean_filename("Costes" . $category);
    emarking_save_data_to_excel($headers, $totalcostdata, $excelfilename, 2);
}
Esempio n. 2
0
/**
 * Exports student opinions on justice for this exam
 *
 * @param unknown $emarking
 */
function emarking_download_excel_perception($emarking, $context)
{
    global $DB;
    list($enrolleduserssql, $params) = get_enrolled_sql($context);
    $csvsql = "\nSELECT\n    u.id,\n\tc.fullname as course,\n        e.name as exam,\n    c.shortname,\n    u.username,\n    u.firstname,\n    u.lastname,\n    u.idnumber,\n    cr.id AS criterion,\n    cr.description,\n    epc.overall_fairness,\n    epc.expectation_reality,\n    ep.comment,\n    d.grade\nFROM {emarking} e\nINNER JOIN {emarking_submission} s ON (e.id = :emarking AND s.emarking = e.id)\nINNER JOIN {emarking_draft} d ON (d.submissionid = s.id)\nINNER JOIN {user} u ON (s.student = u.id)\nINNER JOIN {course} c ON (e.course = c.id)\nLEFT JOIN {emarking_perception} ep ON (s.id = ep.submission)\nLEFT JOIN {emarking_perception_criteria} epc ON (ep.id = epc.perception)\nLEFT JOIN {gradingform_rubric_criteria} cr ON (epc.criterion=cr.id)\nWHERE u.id IN ({$enrolleduserssql})\nORDER BY c.shortname, u.lastname, u.firstname";
    $params['emarking'] = $emarking->id;
    // Get data and generate a list of questions.
    $rows = $DB->get_recordset_sql($csvsql, $params);
    $questions = array();
    foreach ($rows as $row) {
        if (array_search($row->description, $questions) === false && $row->description) {
            $questions[] = $row->description;
        }
    }
    $current = 0;
    $laststudent = 0;
    $headers = array('00course' => get_string('course'), '01exam' => get_string('exam', 'mod_emarking'), '02idnumber' => get_string('idnumber'), '03lastname' => get_string('lastname'), '04firstname' => get_string('firstname'));
    $tabledata = array();
    $data = null;
    $rows = $DB->get_recordset_sql($csvsql, $params);
    $studentname = '';
    $lastrow = null;
    foreach ($rows as $row) {
        $index = 10 + array_search($row->description, $questions);
        $keyquestion = $index . "" . $row->description;
        if (!isset($headers[$keyquestion . "-OF"]) && $row->description) {
            $headers[$keyquestion . "-OF"] = "OF-" . $row->description;
            $headers[$keyquestion . "-ER"] = "ER-" . $row->description;
        }
        if ($laststudent != $row->id) {
            if ($laststudent > 0) {
                $tabledata[$studentname] = $data;
                $current++;
            }
            $data = array('00course' => $row->course, '01exam' => $row->exam, '02idnumber' => $row->idnumber, '03lastname' => $row->lastname, '04firstname' => $row->firstname, '99grade' => $row->grade);
            $laststudent = intval($row->id);
            $studentname = $row->lastname . ',' . $row->firstname;
        }
        if ($row->description) {
            $data[$keyquestion . "-OF"] = $row->overall_fairness;
            $data[$keyquestion . "-ER"] = $row->expectation_reality;
        }
        $lastrow = $row;
    }
    $studentname = $lastrow->lastname . ',' . $lastrow->firstname;
    $tabledata[$studentname] = $data;
    $headers['99grade'] = get_string('grade');
    ksort($tabledata);
    $current = 0;
    $newtabledata = array();
    foreach ($tabledata as $data) {
        foreach ($questions as $q) {
            $index = 10 + array_search($q, $questions);
            if (!isset($data[$index . "" . $q . "-OF"])) {
                $data[$index . "" . $q . "-OF"] = '0.000';
            }
            if (!isset($data[$index . "" . $q . "-ER"])) {
                $data[$index . "" . $q . "-ER"] = '0.000';
            }
        }
        ksort($data);
        $current++;
        $newtabledata[] = $data;
    }
    $tabledata = $newtabledata;
    $excelfilename = clean_filename($emarking->name . "-justice" . ".xls");
    emarking_save_data_to_excel($headers, $tabledata, $excelfilename);
}