| Server IP : 195.130.67.5 / Your IP : 216.73.217.154 Web Server : Microsoft-IIS/10.0 System : Windows NT WEBSERVER1 10.0 build 17763 (Windows Server 2016) i586 User : IUSR ( 0) PHP Version : 7.4.19 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /Old Sites/modip/infosystem_v7/application/controllers/ |
Upload File : |
<?php
function generate_unit_questionnaire_codes($id_unit) {
if(!permission_exists("generate_unit_questionnaire_codes", $id_unit)) {
$_SESSION['error_message']="Δεν έχετε τα απαραίτητα δικαιώματα να προβάλετε αυτή τη σελίδα.";
default_page();
return;
}
$eval_method=strip($_GET['eval_method']);
if ($eval_method!=1 && $eval_method!=2) $eval_method=1;
$unit_course_assignments_d=query("SELECT ca.id FROM __course_assignments ca
INNER JOIN __classes cl ON ca.id_class=cl.id
INNER JOIN __courses co ON co.id=cl.id_course
WHERE cl.semester='".current_semester()."'
AND co.id_unit='".$id_unit."'");
if(mysql_num_rows($unit_course_assignments_d)==0) {
$_SESSION['error_message']="Δεν υπάρχουν αναθέσεις μαθημάτων στο ".unit_id_to_name($id_unit)." για το ".semester_id_to_text(current_semester(),1).".";
default_page();
return;
}
if(!evaluation_period_is_open(current_semester())) {
$_SESSION['error_message']="Δε μπορείτε να παράξετε κωδικούς εκτός της περιόδου Αξιολόγησης.";
default_page();
return;
}
$unset_questionnaire_codes_d=query("SELECT ca.id FROM __course_assignments ca
INNER JOIN __classes cl ON ca.id_class=cl.id
INNER JOIN __courses co ON co.id=cl.id_course
WHERE cl.semester='".current_semester()."'
AND ca.questionnaire_code=0
AND ca.teaches=1
AND co.id_unit='".$id_unit."'");
$i=0;
while($unset_questionnaire_codes_i=mysql_fetch_array($unset_questionnaire_codes_d)) {
$random_number=rand(0,999);
while(mysql_num_rows(query("SELECT questionnaire_code FROM __course_assignments ca INNER JOIN __classes cl ON ca.id_class = cl.id AND cl.semester='".current_semester()."' WHERE questionnaire_code='".$random_number."'"))){
$random_number=rand(0,999);
}
query("UPDATE __course_assignments
SET questionnaire_code='".$random_number."', eval_method=".$eval_method."
WHERE id='".$unset_questionnaire_codes_i['id']."'");
$i++;
}
if($i==0) {
$_SESSION['error_message']="Έχουν ήδη παράχθεί όλοι οι κωδικοί ερωτηματολογίων αυτού του εξαμήνου για το ".unit_id_to_name($id_unit).".";
view_questionnaire_codes($id_unit, current_semester());
return;
} else {
if ($i==1) $_SESSION['success_message']="Παρήχθη επιτυχώς 1 κωδικός ερωτηματολογίου για το ".unit_id_to_name($id_unit).".";
else $_SESSION['success_message']="Παρήχθησαν επιτυχώς ".$i." κωδικοί ερωτηματολογίων για το ".unit_id_to_name($id_unit).".";
}
view_questionnaire_codes($id_unit, current_semester());
}
function generate_questionnaire_codes() {
if(!permission_exists("generate_questionnaire_codes", NULL)) {
$_SESSION['error_message']="Δεν έχετε τα απαραίτητα δικαιώματα να προβάλετε αυτή τη σελίδα.";
default_page();
return;
}
$all_course_assignments_d=query("SELECT ca.id FROM __course_assignments ca
INNER JOIN __classes cl ON ca.id_class=cl.id
WHERE cl.semester='".current_semester()."'");
if(mysql_num_rows($all_course_assignments_d)==0) {
$_SESSION['error_message']="Δεν υπάρχουν αναθέσεις μαθημάτων στο ".semester_id_to_text(current_semester(),1).".";
default_page();
return;
}
$unset_questionnaire_codes_d=query("SELECT ca.id FROM __course_assignments ca
INNER JOIN __classes cl ON ca.id_class=cl.id
INNER JOIN __courses co ON co.id=cl.id_course
WHERE cl.semester='".current_semester()."'
AND ca.questionnaire_code=0
AND ca.teaches=1");
$units_with_unset_questionnaire_codes_d=query("SELECT DISTINCT co.id_unit
FROM __course_assignments ca
INNER JOIN __classes cl ON ca.id_class=cl.id
INNER JOIN __courses co ON co.id=cl.id_course
WHERE cl.semester='".current_semester()."'
AND ca.questionnaire_code=0
AND ca.teaches=1");
$units_with_unset_questionnaire_codes=mysql_num_rows($units_with_unset_questionnaire_codes_d);
$i=0;
while($unset_questionnaire_codes_i=mysql_fetch_array($unset_questionnaire_codes_d)) {
$random_number_i=mysql_fetch_array(query("SELECT FLOOR( 1 + RAND() *998 ) AS questionnaire_code
FROM __course_assignments
WHERE questionnaire_code NOT IN (
SELECT ca.questionnaire_code
FROM __course_assignments ca
INNER JOIN __classes cl ON ca.id_class = cl.id
AND cl.semester='".current_semester()."'
)
LIMIT 1"));
query("UPDATE __course_assignments
SET questionnaire_code='".$random_number_i['questionnaire_code']."'
WHERE id='".$unset_questionnaire_codes_i['id']."'");
$i++;
}
if($i==0) {
$_SESSION['error_message']="Έχουν ήδη παράχθεί όλοι οι κωδικοί ερωτηματολογίων αυτού του εξαμήνου για όλο το ίδρυμα.";
default_page();
return;
} else {
if ($i==1) $_SESSION['success_message']="Παρήχθη επιτυχώς 1 κωδικός ερωτηματολογίου σε 1 μονάδα του ιδρύματος.";
else $_SESSION['success_message']="Παρήχθησαν επιτυχώς ".$i." κωδικοί ερωτηματολογίων σε ".$units_with_unset_questionnaire_codes." μονάδ".($units_with_unset_questionnaire_codes==1?"α":"ες")." του ιδρύματος.";
}
default_page();
}
function update_no_evaluation_reason_submit() {
$id_course_assignment=strip($_POST['id_course_assignment']);
if(!permission_exists("update_no_evaluation_reason", $id_course_assignment)) {
$_SESSION['error_message']="Δεν έχετε τα απαραίτητα δικαιώματα να προβάλετε αυτή τη σελίδα.";
default_page();
return;
}
$semester=course_assignment_to_semester($id_course_assignment);
$id_unit=course_assignment_to_unit($id_course_assignment);
if ($semester==current_semester() && !evaluation_moderation_period_is_open($semester)){
$_SESSION['error_message']="Η αιτιολογία μπορεί να τροποποιηθεί μόνο κατά την περίοδο ελέγχου της αξιολόγησης";
manage_unit_evaluations($id_unit, $semester);
return;
}
$reason=strip($_POST['reason']);
if (strlen($reason)<8 || strlen(preg_replace('/\s+/', ' ', $reason))<6){
$_SESSION['error_message']="Μη έγκυρη αιτιολόγηση.";
return;
}
$no_changes=mysql_num_rows(query("SELECT * FROM __answer_stats WHERE no_eval_reason='".$reason."' AND id_course_assignment='".$id_course_assignment."'"));
if($no_changes>0) {
$_SESSION['error_message']="Δεν κάνατε κάποια τροποποίηση στην αιτιολόγηση μη πραγματοποίησης αξιολόγησης της ανάθεσης.";
manage_unit_evaluations($id_unit, $semester);
return;
}
query("UPDATE __answer_stats SET no_eval_reason='".$reason."' WHERE id_course_assignment='".$id_course_assignment."'");
if(mysql_affected_rows()>0) $_SESSION['success_message']="Η αιτιολόγηση μη πραγματοποίησης αξιολόγησης της ανάθεσης έχει ενημερωθεί επιτυχώς.";
else $_SESSION['error_message']="Δεν πραγματοποιήθηκαν αλλαγές.";
calculate_obligations();
manage_unit_evaluations($id_unit, $semester);
}
function print_unit_questionnaire_tokens($id_unit){
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL ^ E_DEPRECATED);
if(!permission_exists("generate_unit_questionnaire_codes", $id_unit)) {
$_SESSION['error_message']="Δεν έχετε τα απαραίτητα δικαιώματα να προβάλετε αυτή τη σελίδα.";
default_page();
return;
}
require_once("lib/pdf/mpdf.php");
$time_start = microtime(true);
$i=1;
$_SESSION['title']="Εκτύπωση κουπονιών ".unit_id_to_name_gen($id_unit)." - <b>".semester_id_to_text(current_semester())."</b>";
$_SESSION['content']="<ol style='margin-left:15px;'>";
$mathimata=query("
SELECT DISTINCT concat( u.last_name, ' ', u.first_name ) AS name, co.title, co.coursecode, ca.questionnaire_code, cl.registered
FROM __course_assignments ca
INNER JOIN __relations r ON ca.relation_chain = r.relation_chain
INNER JOIN __users u ON u.id = r.id_user
INNER JOIN __classes cl ON cl.id = ca.id_class
INNER JOIN __courses co ON co.id = cl.id_course
WHERE co.id_unit =".$id_unit."
AND ca.teaches=1
AND ca.eval_method=2
AND cl.semester=".current_semester()."
AND ca.questionnaire_code<>0".
// " LIMIT 16 OFFSET 32".
"");
while($mathima=mysql_fetch_assoc($mathimata)) {
$html= "
<html>
<head>
<title>ΚΟΥΠΟΝΙΑ ΜΑΘΗΜΑΤΟΣ: ".$mathima["title"]." - ".$mathima["name"]."</title>
<meta http-equiv='content-type' content='text/html; charset=UTF-8' />
<style>
body{
font-family:Verdana;
}
table{
page-break-inside: avoid;
}
td{
valign: middle;
padding:5px;
}
@page {
margin: 0pt 20pt 0pt 20pt;
}
.container{
border:1px solid #000000;
margin-bottom:17pt;
width:740px;
height:190px;
}
.code{
font-family: Courier New;
}
.tahoma{
font-family:Tahoma;
}
.small{
font-variant:small-caps;
}
.borderleft{
border-left:1px solid #000000;
}
.text8{
font-size:8pt;
}
.text9{
font-size:9pt;
}
.text10{
font-size:10pt;
}
.text11{
font-size:11pt;
}
.text12{
font-size:12pt;
}
.text13{
font-size:13pt;
}
.text14{
font-size:14pt;
}
.text15{
font-size:15pt;
}
.bottomline{
border-bottom:1px solid #000000;
}
.right{
text-align:right;
}
.margintop{
margin-top:5px;
}
</style>
</head>
<body>
";
$kouponia=query("SELECT token FROM lime_tokens_".$mathima["questionnaire_code"]." WHERE usesleft>0 ORDER BY tid");
while($kouponi=mysql_fetch_array($kouponia)) {
$html.= "
<div class='container'>
<table width='100%' border=0 cellspacing=0 cellpadding=0>
<tr>
<td rowspan=5 width=70px height=190px style='padding:0'><img src='themes/".CURRENT_TEMPLATE."/images/shared/label_".current_semester().".jpg' width='70px' height='190px'></td>
<td align=right class='small text13 borderleft bottomline'><b>".strip_intonation(get_setting('institute_name'))." -</b></td><td align=left class='small text13 bottomline'><b>".strip_intonation(unit_id_to_name($id_unit))."</b></td>
</tr>
<tr>
<td class='right text9 borderleft' width='170'>
<b>Μάθημα:</b>
</td>
<td class='text12'>".$mathima["title"]."
</td>
</tr>
<tr>
<td class='right text9 borderleft'><b>Διδάσκων:</b></td><td class='text12'>".$mathima["name"]."</td>
</tr>
<tr>
<td class='right text9 borderleft'><b>URL ερωτηματολογίου:</b></td><td class='code text13'>".SURVEY_URL."?sid=".$mathima["questionnaire_code"]."</td>
</tr>
<tr>
<td class='right text9 borderleft'><b>Κωδικός κουπονιού:</b></td><td class='code text15'>".$kouponi["token"]."</td>
</tr>
</table>
</div>
";
}
$html.= "
</body>
</html>";
$filename=greeklish($mathima["name"])."-".greeklish($mathima["title"]).".pdf";
//name transformations
$filename = strtolower($filename);
$filename = str_replace("/", "-", $filename);
$filename = str_replace("\\", "-", $filename);
$filename = str_replace("_-_", "-", $filename);
$filename = str_replace("__", "_", $filename);
$filename = str_replace("__.", ".", $filename);
$filename = str_replace("_.", ".", $filename);
$filename = str_replace("--", "-", $filename);
$filename = str_replace("-.", ".", $filename);
$filename = str_replace("_-", "-", $filename);
$filename = preg_replace(array('~[^0-9a-zA-Z_\-.]~i'), '', $filename);
$mpdf=new mPDF();
$mpdf->WriteHTML($html);
$mpdf->Output("files/kouponia/".$filename,'F');
$i++;
$_SESSION['content'].= "<li><b>Created file: </b>".$_SERVER['DOCUMENT_ROOT']."/files/kouponia/".$filename."</li>";
}
$_SESSION['content'].="</ol>";
$time_end = microtime(true);
$time = $time_end - $time_start;
if (mysql_num_rows($mathimata)==0){
$_SESSION['content'].= "Δεν υπάρχουν αναθέσεις μαθημάτων που αξιολογούνται ηλεκτρονικά με χρήση κουπονιών";
}else{
$_SESSION['content'].= "<br /><br /><pre><h2>Operation Complete</h2>Files created: <b>". ($i-1) ."</b></pre>";
$_SESSION['content'].= "<pre>Total execution script time: <b>". $time ."</b> seconds.</pre>";
}
}
function generate_questionnaire_tokens($id_course_assignment){
if(!permission_exists("generate_questionnaire_tokens", $id_course_assignment)) {
$_SESSION['error_message']="Δεν έχετε τα απαραίτητα δικαιώματα να προβάλετε αυτή τη σελίδα.";
default_page();
return;
}
require_once("../".SURVEY_FOLDER."/admin/remotecontrol/lsrc.client.php");
$testclient = new lsrcClient();
$testclient->user = SURVEY_ADMIN_USERNAME;
$testclient->pass = SURVEY_ADMIN_PASSWORD;
$testclient->limeUrl = SURVEY_URL;
$questionnaire_code=course_assignment_to_questionnaire_code($id_course_assignment);
$diloseis=course_assignment_to_registrations($id_course_assignment);
$kouponia=mysql_num_rows(query("SELECT token FROM lime_tokens_".$questionnaire_code." WHERE usesleft>0"));
$testclient->prepare($questionnaire_code);
if ($kouponia>=$diloseis) $limit=0;
else $limit=$diloseis-$kouponia;
for ($i=1; $i<=$limit; $i++){
$tokens=sRandomChars(10);
$sReturn = $testclient->InsertToken($tokens);
}
$_SESSION['success_message']="Παρήχθησαν ".$limit." κουπόνια για το ηλ. ερωτηματολόγιο της ανάθεσης ".course_assignment_to_course_name($id_course_assignment)." - ".user_id_to_fullname(course_assignment_owner($id_course_assignment)).".";
view_questionnaire_codes(course_assignment_to_unit($id_course_assignment), current_semester());
}
?>