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); }
/** * 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); }