From 6b8bfb6a3c3c0d91fabc320185c0ef96528fb5e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Thu, 14 Mar 2019 18:06:54 +0100 Subject: [PATCH 01/10] Fixed Testtool Login --- cis/testtool/login.php | 39 ++++++++++++++++++------------ cis/testtool/menu.php | 54 +++++++++++++++++++++--------------------- 2 files changed, 51 insertions(+), 42 deletions(-) diff --git a/cis/testtool/login.php b/cis/testtool/login.php index 5fec6d670..8afb9cc7a 100644 --- a/cis/testtool/login.php +++ b/cis/testtool/login.php @@ -191,7 +191,10 @@ if (isset($_POST['prestudent']) && isset($gebdatum)) // * 1. Sprache über Ablauf Vorgaben ermitteln $ablauf = new Ablauf(); $ablauf->getAblaufVorgabeStudiengang($firstPrio_studiengang_kz); - $rt_sprache = $ablauf->result[0]->sprache; + $rt_sprache = ''; + + if(isset($ablauf->result[0])) + $rt_sprache = $ablauf->result[0]->sprache; // * 2. falls keine Sprache vorhanden -> Sprache über Studienplan ermitteln if (empty($rt_sprache)) @@ -258,8 +261,8 @@ if(isset($_SESSION['prestudent_id']) && !isset($_SESSION['pruefling_id'])) if(!$pruefling->getPruefling($_SESSION['prestudent_id'])) $pruefling->new = true; else - $pruefling->new = false; - + $pruefling->new = false; + $pruefling->studiengang_kz = $_SESSION['studiengang_kz']; $pruefling->semester = $_SESSION['semester']; @@ -272,7 +275,7 @@ if(isset($_SESSION['prestudent_id']) && !isset($_SESSION['pruefling_id'])) $reload_parent=true; } } - + if(isset($_POST['save']) && isset($_SESSION['prestudent_id'])) { $pruefling = new pruefling(); @@ -283,7 +286,7 @@ if(isset($_POST['save']) && isset($_SESSION['prestudent_id'])) $pruefling->new=false; else $pruefling->new=true; - + $pruefling->studiengang_kz = $_SESSION['studiengang_kz']; $pruefling->idnachweis = isset($_POST['idnachweis'])?$_POST['idnachweis']:''; $pruefling->registriert = date('Y-m-d H:i:s'); @@ -328,7 +331,7 @@ if(isset($_POST['save']) && isset($_SESSION['prestudent_id'])) defaultDate: "-6570", maxDate: -5110, yearRange: "-60:+00", - });'; + });'; ?> }); @@ -336,7 +339,7 @@ if(isset($_POST['save']) && isset($_SESSION['prestudent_id'])) parent.menu.location.reload();'; //CRIS: nach reload()ein ; ergänzt - + if($reload) echo ""; ?> @@ -344,8 +347,8 @@ if(isset($_POST['save']) && isset($_SESSION['prestudent_id'])) '.$p->t('testtool/startseite').''; - -//REIHUNGSTEST STARTSEITE (nach Login) + +//REIHUNGSTEST STARTSEITE (nach Login) if (isset($prestudent_id)) { @@ -363,8 +366,14 @@ if(isset($_POST['save']) && isset($_SESSION['prestudent_id'])) if ($typ->typ == 'b') { $ps->getActualInteressenten($prestudent_id, true, 'b'); - $firstPrio_studiengang_kz = array_column($ps->result, 'studiengang_kz'); - $firstPrio_studiengang_kz = array_shift($firstPrio_studiengang_kz); + foreach($ps->result as $row_prio) + { + if(isset($row_prio->studiengang_kz)) + { + $firstPrio_studiengang_kz = $row_prio->studiengang_kz; + break; + } + } } // * sonst STG der session übernehmem else @@ -414,7 +423,7 @@ if(isset($_POST['save']) && isset($_SESSION['prestudent_id'])) echo ''; echo ''; echo '

'; - + if($pruefling->getPruefling($prestudent_id)) { echo '
'; @@ -485,8 +494,8 @@ if(isset($_POST['save']) && isset($_SESSION['prestudent_id'])) echo ''; echo '  '.$p->t('global/geburtsdatum').': '; echo ''; - echo '  '; - echo '
'; + echo '  '; + echo ''; echo '


@@ -496,4 +505,4 @@ if(isset($_POST['save']) && isset($_SESSION['prestudent_id'])) ?> - \ No newline at end of file + diff --git a/cis/testtool/menu.php b/cis/testtool/menu.php index 75d820a59..dd3475ce1 100644 --- a/cis/testtool/menu.php +++ b/cis/testtool/menu.php @@ -91,14 +91,14 @@ if (isset($_SESSION['pruefling_id'])) //content_id fuer Einfuehrung auslesen $qry = "SELECT content_id FROM testtool.tbl_ablauf_vorgaben WHERE studiengang_kz=".$db->db_add_param($_SESSION['studiengang_kz'])." LIMIT 1"; $result = $db->db_query($qry); - + echo ''; echo ''; if ($content_id = $db->db_fetch_object($result)) if($content_id->content_id!='') - echo ''; + echo ''; echo ''; echo '
'.$p->t('testtool/startseite').'
'.$p->t('testtool/einleitung').'
'.$p->t('testtool/einleitung').'
 
'; @@ -130,8 +130,8 @@ if (isset($_SESSION['pruefling_id'])) $qry = " WITH prestudent_data AS ( - SELECT DISTINCT ON (prestudent_id) - prestudent_id, + SELECT DISTINCT ON (prestudent_id) + prestudent_id, studienplan_id, studiengang_kz, typ, @@ -145,7 +145,7 @@ if (isset($_SESSION['pruefling_id'])) public.tbl_studiengang USING (studiengang_kz) JOIN public.tbl_studiengangstyp USING (typ) - WHERE + WHERE tbl_prestudent.person_id = ( SELECT person_id @@ -154,19 +154,19 @@ if (isset($_SESSION['pruefling_id'])) WHERE prestudent_id = ".$db->db_add_param($_SESSION['prestudent_id'])." ) - + -- Filter only future studiensemester (incl. actual one) AND studiensemester_kurzbz IN ( - SELECT + SELECT studiensemester_kurzbz FROM - public.tbl_studiensemester - WHERE + public.tbl_studiensemester + WHERE ende > now() ) - - AND + + AND status_kurzbz = 'Interessent'"; /* If the logged-in prestudents study is a Bachelor-study, filter only Bachelor-studies */ @@ -188,7 +188,7 @@ if (isset($_SESSION['pruefling_id'])) ORDER BY prestudent_id, datum DESC, - tbl_prestudentstatus.insertamum DESC, + tbl_prestudentstatus.insertamum DESC, tbl_prestudentstatus.ext_id DESC ) @@ -200,7 +200,7 @@ if (isset($_SESSION['pruefling_id'])) ". $bezeichnung_mehrsprachig_sel. " FROM ( - (SELECT + (SELECT prestudent_data.semester AS ps_sem, gebiet_id, bezeichnung, @@ -209,11 +209,11 @@ if (isset($_SESSION['pruefling_id'])) tbl_ablauf.semester, tbl_ablauf.reihung, ".$bezeichnung_mehrsprachig. " - FROM + FROM prestudent_data - JOIN + JOIN testtool.tbl_ablauf USING (studiengang_kz) - JOIN + JOIN testtool.tbl_gebiet USING (gebiet_id) WHERE (prestudent_data.semester= 1 AND tbl_ablauf.semester = 1) @@ -224,7 +224,7 @@ if (isset($_SESSION['pruefling_id'])) UNION ( - SELECT + SELECT prestudent_data.semester AS ps_sem, gebiet_id, bezeichnung, @@ -233,18 +233,18 @@ if (isset($_SESSION['pruefling_id'])) tbl_ablauf.semester, tbl_ablauf.reihung, ". $bezeichnung_mehrsprachig. " - FROM + FROM prestudent_data - JOIN + JOIN testtool.tbl_ablauf USING (studienplan_id) - JOIN + JOIN testtool.tbl_gebiet USING (gebiet_id) WHERE (prestudent_data.semester= 1 AND tbl_ablauf.semester = 1) OR (prestudent_data.semester= 3 AND tbl_ablauf.semester IN (1,3)) - ) - + ) + ORDER BY reihung ) temp @@ -255,7 +255,7 @@ if (isset($_SESSION['pruefling_id'])) $result = $db->db_query($qry); $lastsemester = ''; - + while($row = $db->db_fetch_object($result)) { //Jedes Semester in einer eigenen Tabelle anzeigen @@ -267,7 +267,7 @@ if (isset($_SESSION['pruefling_id'])) echo '
'; } $lastsemester = $row->semester; - + echo ''; echo ''; } @@ -276,9 +276,9 @@ if (isset($_SESSION['pruefling_id'])) { //Status der Gebiete Pruefen $gebiet->load($row->gebiet_id); - + $qry = "SELECT extract('epoch' from '".$gebiet->zeit."'-(now()-min(begintime))) as time - FROM testtool.tbl_pruefling_frage JOIN testtool.tbl_frage USING(frage_id) + FROM testtool.tbl_pruefling_frage JOIN testtool.tbl_frage USING(frage_id) WHERE gebiet_id=".$db->db_add_param($row->gebiet_id)." AND pruefling_id=".$db->db_add_param($_SESSION['pruefling_id']); if($result_time = $db->db_query($qry)) { @@ -326,7 +326,7 @@ if (isset($_SESSION['pruefling_id'])) '; } - else + else { echo '
'.$row->semester.'. '.$p->t('testtool/semester').' '.($row->semester!='1'?$p->t('testtool/quereinstieg'):'').'
From 67b7c4f132d36c3fee9fe7bfb48b54cf58228769 Mon Sep 17 00:00:00 2001 From: Manfred Kindl Date: Mon, 18 Mar 2019 11:51:32 +0100 Subject: [PATCH 02/10] =?UTF-8?q?Neue=20Reihungstest-Auswertungsseite=20f?= =?UTF-8?q?=C3=BCr=20FHTW?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vilesci/stammdaten/auswertung_fhtw.php | 2557 ++++++++++++++++++++++++ 1 file changed, 2557 insertions(+) create mode 100644 vilesci/stammdaten/auswertung_fhtw.php diff --git a/vilesci/stammdaten/auswertung_fhtw.php b/vilesci/stammdaten/auswertung_fhtw.php new file mode 100644 index 000000000..4857bba4f --- /dev/null +++ b/vilesci/stammdaten/auswertung_fhtw.php @@ -0,0 +1,2557 @@ +, + * Andreas Oesterreicher , + * Rudolf Hangl and + * Gerald Simane-Sequens . + */ +/** + * Auswertung fuer den Reihungstest + */ +require_once('../../config/vilesci.config.inc.php'); +require_once('../../include/functions.inc.php'); +require_once('../../include/studiengang.class.php'); +require_once('../../include/datum.class.php'); +require_once('../../include/Excel/excel.php'); +require_once('../../include/benutzerberechtigung.class.php'); +require_once('../../include/pruefling.class.php'); +require_once('../../include/log.class.php'); +require_once('../../include/prestudent.class.php'); +require_once('../../include/reihungstest.class.php'); +require_once('../../include/organisationsform.class.php'); +require_once('../../include/mail.class.php'); + +if (!$db = new basis_db()) +{ + die('Fehler beim Oeffnen der Datenbankverbindung'); +} + +$user = get_uid(); +$datum_obj = new datum(); +$rechte = new benutzerberechtigung(); +$rechte->getBerechtigungen($user); +$messageSuccess = ''; +$messageError = ''; + +if (!$rechte->isBerechtigt('lehre/reihungstest') && !$rechte->isBerechtigt('lehre/reihungstestAufsicht')) +{ + die($rechte->errormsg); +} + +// Post-Request für PreStudent Autocomplete +if (isset($_REQUEST['autocomplete']) && $_REQUEST['autocomplete'] == 'prestudent') +{ + $search = trim((isset($_REQUEST['term']) ? $_REQUEST['term'] : '')); + if (is_null($search) || $search == '') + { + exit(); + } + $qry = "SELECT + nachname, vorname, prestudent_id, student_uid, + UPPER(tbl_studiengang.typ || tbl_studiengang.kurzbz) as stg, + get_rolle_prestudent(prestudent_id, null) as status + FROM + public.tbl_person + JOIN public.tbl_prestudent USING(person_id) + JOIN public.tbl_studiengang USING(studiengang_kz) + LEFT JOIN public.tbl_student USING (prestudent_id) + WHERE + lower(nachname) like '%" . $db->db_escape(mb_strtolower($search)) . "%' OR + lower(vorname) like '%" . $db->db_escape(mb_strtolower($search)) . "%' OR + lower(nachname || ' ' || vorname) like '%" . $db->db_escape(mb_strtolower($search)) . "%' OR + lower(vorname || ' ' || nachname) like '%" . $db->db_escape(mb_strtolower($search)) . "%' OR + prestudent_id::text like '%" . $db->db_escape(mb_strtolower($search)) . "%' OR + student_uid::text like '%" . $db->db_escape(mb_strtolower($search)) . "%' + ORDER BY nachname,vorname,stg + LIMIT 10 + "; + if ($result = $db->db_query($qry)) + { + $result_obj = array(); + while ($row = $db->db_fetch_object($result)) + { + $item['vorname'] = html_entity_decode($row->vorname); + $item['nachname'] = html_entity_decode($row->nachname); + $item['stg'] = html_entity_decode($row->stg); + $item['status'] = html_entity_decode($row->status); + $item['prestudent_id'] = html_entity_decode($row->prestudent_id); + $item['student_uid'] = html_entity_decode($row->student_uid); + $result_obj[] = $item; + } + echo json_encode($result_obj); + } + exit; +} + +// Post-Request für prestudentAdd Autocomplete +if (isset($_REQUEST['autocomplete']) && $_REQUEST['autocomplete'] == 'prestudentAdd') +{ + $search = trim((isset($_REQUEST['term']) ? $_REQUEST['term'] : '')); + $studiensemester_kurzbz = trim((isset($_REQUEST['studiensemester_kurzbz']) ? $_REQUEST['studiensemester_kurzbz'] : '')); + if (is_null($search) || $search == '') + { + exit(); + } + $qry = "SELECT + nachname, vorname, prestudent_id, + UPPER(tbl_studiengang.typ || tbl_studiengang.kurzbz) as stg, + 'Interessent' as status + FROM + public.tbl_person + JOIN public.tbl_prestudent USING(person_id) + JOIN public.tbl_studiengang USING(studiengang_kz) + WHERE + (lower(nachname) like '%" . $db->db_escape(mb_strtolower($search)) . "%' OR + lower(vorname) like '%" . $db->db_escape(mb_strtolower($search)) . "%' OR + lower(nachname || ' ' || vorname) like '%" . $db->db_escape(mb_strtolower($search)) . "%' OR + lower(vorname || ' ' || nachname) like '%" . $db->db_escape(mb_strtolower($search)) . "%' OR + prestudent_id::text like '%" . $db->db_escape(mb_strtolower($search)) . "%') + AND get_rolle_prestudent(prestudent_id, " . $db->db_add_param($studiensemester_kurzbz) . ") IN ('Interessent') + ORDER BY nachname,vorname,stg + LIMIT 10 + "; + + if ($result = $db->db_query($qry)) + { + $result_obj = array(); + if ($db->db_num_rows($result) > 0) + { + while ($row = $db->db_fetch_object($result)) + { + $item['vorname'] = html_entity_decode($row->vorname); + $item['nachname'] = html_entity_decode($row->nachname); + $item['stg'] = html_entity_decode($row->stg); + $item['status'] = html_entity_decode($row->status); + $item['prestudent_id'] = html_entity_decode($row->prestudent_id); + $item['student_uid'] = ''; + $result_obj[] = $item; + } + } + else + { + $item['vorname'] = 'Keine Übereinstimmung gefunden'; + $item['nachname'] = ''; + $item['stg'] = ''; + $item['status'] = ''; + $item['prestudent_id'] = ''; + $item['student_uid'] = ''; + $result_obj[] = $item; + } + echo json_encode($result_obj); + } + exit; +} + +// Ajax-Request um ein Gebiet eines PreStudenten zu löschen +$deleteSingleResult = filter_input(INPUT_POST, 'deleteSingleResult', FILTER_VALIDATE_BOOLEAN); +if ($deleteSingleResult) +{ + if (!$rechte->isBerechtigt('lehre/reihungstestAufsicht', null, 'suid')) + { + echo json_encode(array( + 'status' => 'fehler', + 'msg' => $rechte->errormsg + )); + exit(); + } + + if (isset($_POST['prestudent_id']) && isset($_POST['gebiet_id']) && + is_numeric($_POST['prestudent_id']) && is_numeric($_POST['gebiet_id'])) + { + $pruefling = new pruefling(); + $pruefling->getPruefling($_POST['prestudent_id']); + if ($pruefling->pruefling_id == '') + { + echo json_encode(array( + 'status' => 'fehler', + 'msg' => 'Prüfling konnte nicht gefunden/geladen werden' + )); + exit(); + } + + //UNDO Befehl zusammenbauen und Log schreiben + $undo = ''; + $db->db_query('BEGIN;'); + + $qry = "SELECT * FROM testtool.tbl_pruefling_frage WHERE pruefling_id=" . $db->db_add_param($pruefling->pruefling_id, FHC_INTEGER) . " AND + frage_id IN (SELECT frage_id FROM testtool.tbl_frage WHERE gebiet_id=" . $db->db_add_param($_POST['gebiet_id']) . "); + "; + + if ($db->db_query($qry)) + { + while ($row = $db->db_fetch_object()) + { + $undo .= " INSERT INTO testtool.tbl_pruefling_frage(prueflingfrage_id,pruefling_id,frage_id,nummer,begintime,endtime) VALUES (" . + $db->db_add_param($row->prueflingfrage_id, FHC_INTEGER) . ', ' . + $db->db_add_param($row->pruefling_id, FHC_INTEGER) . ', ' . + $db->db_add_param($row->frage_id, FHC_INTEGER) . ', ' . + $db->db_add_param($row->nummer, FHC_INTEGER) . ', ' . + $db->db_add_param($row->begintime) . ', ' . + $db->db_add_param($row->endtime) . ');'; + } + } + else + { + $db->db_query('ROLLBACK'); + echo json_encode(array( + 'status' => 'fehler', + 'msg' => 'Fehler beim Erstellen des UNDO Befehls fuer testtool.tbl_pruefling_frage' + )); + exit(); + } + + $qry = "SELECT * FROM testtool.tbl_antwort + WHERE pruefling_id=" . $db->db_add_param($pruefling->pruefling_id) . " AND + vorschlag_id IN (SELECT vorschlag_id FROM testtool.tbl_vorschlag WHERE frage_id IN + (SELECT frage_id FROM testtool.tbl_frage WHERE gebiet_id=" . $db->db_add_param($_POST['gebiet_id']) . ")); + "; + + if ($db->db_query($qry)) + { + while ($row = $db->db_fetch_object()) + { + $undo .= " INSERT INTO testtool.tbl_antwort(antwort_id,pruefling_id,vorschlag_id) VALUES (" . + $db->db_add_param($row->antwort_id, FHC_INTEGER) . ', ' . + $db->db_add_param($row->pruefling_id, FHC_INTEGER) . ', ' . + $db->db_add_param($row->vorschlag_id, FHC_INTEGER) . ');'; + } + } + else + { + $db->db_query('ROLLBACK'); + echo json_encode(array( + 'status' => 'fehler', + 'msg' => 'Fehler beim Erstellen des UNDO Befehls fuer testtool.tbl_antwort' + )); + exit(); + } + + //Antworten loeschen + $qry = "DELETE FROM testtool.tbl_pruefling_frage where pruefling_id=" . $db->db_add_param($pruefling->pruefling_id, FHC_INTEGER) . " AND + frage_id IN (SELECT frage_id FROM testtool.tbl_frage WHERE gebiet_id=" . $db->db_add_param($_POST['gebiet_id']) . "); + + DELETE FROM testtool.tbl_antwort + WHERE pruefling_id=" . $db->db_add_param($pruefling->pruefling_id) . " AND + vorschlag_id IN (SELECT vorschlag_id FROM testtool.tbl_vorschlag WHERE frage_id IN + (SELECT frage_id FROM testtool.tbl_frage WHERE gebiet_id=" . $db->db_add_param($_POST['gebiet_id']) . "));"; + + if ($result = $db->db_query($qry)) + { + //Log schreiben + $log = new log(); + + $log->new = true; + $log->sql = $qry; + $log->sqlundo = $undo; + $log->executetime = date('Y-m-d H:i:s'); + $log->mitarbeiter_uid = $user; + $log->beschreibung = "Testtool-Antworten-Gebiet " . $_POST['gebiet_id'] . " von Prestudent " . $_POST['prestudent_id'] . " geloescht"; + + if (!$log->save()) + { + $db->db_query('ROLLBACK'); + echo json_encode(array( + 'status' => 'fehler', + 'msg' => 'Fehler beim Schreiben des Log-Eintrags' + )); + exit(); + } + + $db->db_query('COMMIT;'); + echo json_encode(array( + 'status' => 'ok', + 'msg' => $db->db_affected_rows($result) . ' Antworten wurden gelöscht')); + exit(); + } + else + { + $db->db_query('ROLLBACK'); + echo json_encode(array( + 'status' => 'fehler', + 'msg' => 'Fehler beim Loeschen der Daten' + )); + exit(); + } + } + else + { + echo json_encode(array( + 'status' => 'fehler', + 'msg' => 'Fehler bei Parameterübergabe' + )); + exit(); + } +} + +// Ajax-Request um alle Antworten aller Gebiete eines PreStudenten zu löschen +$deleteAllResults = filter_input(INPUT_POST, 'deleteAllResults', FILTER_VALIDATE_BOOLEAN); +if ($deleteAllResults) +{ + if (!$rechte->isBerechtigt('lehre/reihungstestAufsicht', null, 'suid')) + { + echo json_encode(array( + 'status' => 'fehler', + 'msg' => $rechte->errormsg + )); + exit(); + } + + if (isset($_POST['prestudent_id']) && is_numeric($_POST['prestudent_id'])) + { + $pruefling = new pruefling(); + $pruefling->getPruefling($_POST['prestudent_id']); + if ($pruefling->pruefling_id == '') + { + echo json_encode(array( + 'status' => 'fehler', + 'msg' => 'Prüfling konnte nicht gefunden/geladen werden' + )); + exit(); + } + + //UNDO Befehl zusammenbauen und Log schreiben + $undo = ''; + $db->db_query('BEGIN;'); + + $qry = "SELECT * FROM testtool.tbl_pruefling_frage WHERE pruefling_id=" . $db->db_add_param($pruefling->pruefling_id, FHC_INTEGER) . "; + "; + + if ($db->db_query($qry)) + { + while ($row = $db->db_fetch_object()) + { + $undo .= " INSERT INTO testtool.tbl_pruefling_frage(prueflingfrage_id,pruefling_id,frage_id,nummer,begintime,endtime) VALUES (" . + $db->db_add_param($row->prueflingfrage_id, FHC_INTEGER) . ', ' . + $db->db_add_param($row->pruefling_id, FHC_INTEGER) . ', ' . + $db->db_add_param($row->frage_id, FHC_INTEGER) . ', ' . + $db->db_add_param($row->nummer, FHC_INTEGER) . ', ' . + $db->db_add_param($row->begintime) . ', ' . + $db->db_add_param($row->endtime) . ');'; + } + } + else + { + $db->db_query('ROLLBACK'); + echo json_encode(array( + 'status' => 'fehler', + 'msg' => 'Fehler beim Erstellen des UNDO Befehls fuer testtool.tbl_pruefling_frage' + )); + exit(); + } + + $qry = "SELECT * FROM testtool.tbl_antwort + WHERE pruefling_id=" . $db->db_add_param($pruefling->pruefling_id) . "; + "; + + if ($db->db_query($qry)) + { + while ($row = $db->db_fetch_object()) + { + $undo .= " INSERT INTO testtool.tbl_antwort(antwort_id,pruefling_id,vorschlag_id) VALUES (" . + $db->db_add_param($row->antwort_id, FHC_INTEGER) . ', ' . + $db->db_add_param($row->pruefling_id, FHC_INTEGER) . ', ' . + $db->db_add_param($row->vorschlag_id, FHC_INTEGER) . ');'; + } + } + else + { + $db->db_query('ROLLBACK'); + echo json_encode(array( + 'status' => 'fehler', + 'msg' => 'Fehler beim Erstellen des UNDO Befehls fuer testtool.tbl_antwort' + )); + exit(); + } + + //Antworten loeschen + $qry = " DELETE FROM testtool.tbl_pruefling_frage where pruefling_id=".$db->db_add_param($pruefling->pruefling_id)."; + DELETE FROM testtool.tbl_antwort WHERE pruefling_id=".$db->db_add_param($pruefling->pruefling_id).";"; + + if ($result = $db->db_query($qry)) + { + //Log schreiben + $log = new log(); + + $log->new = true; + $log->sql = $qry; + $log->sqlundo = $undo; + $log->executetime = date('Y-m-d H:i:s'); + $log->mitarbeiter_uid = $user; + $log->beschreibung = "Testtool-Antworten aller Gebiete von Prestudent " . $_POST['prestudent_id'] . " geloescht"; + + if (!$log->save()) + { + $db->db_query('ROLLBACK'); + echo json_encode(array( + 'status' => 'fehler', + 'msg' => 'Fehler beim Schreiben des Log-Eintrags' + )); + exit(); + } + + $db->db_query('COMMIT;'); + echo json_encode(array( + 'status' => 'ok', + 'msg' => 'Alle ' . $db->db_affected_rows($result) . ' Antworten wurden gelöscht')); + exit(); + } + else + { + $db->db_query('ROLLBACK'); + echo json_encode(array( + 'status' => 'fehler', + 'msg' => 'Fehler beim Loeschen der Daten' + )); + exit(); + } + } + else + { + echo json_encode(array( + 'status' => 'fehler', + 'msg' => 'Fehler bei Parameterübergabe' + )); + exit(); + } +} + +// Ajax-Request um einen Reihungstest freizuschalten +$rtFreischalten = filter_input(INPUT_POST, 'rtFreischalten', FILTER_VALIDATE_BOOLEAN); +if ($rtFreischalten) +{ + if (!$rechte->isBerechtigt('lehre/reihungstestAufsicht', null, 'su')) + { + echo json_encode(array( + 'status' => 'fehler', + 'msg' => $rechte->errormsg + )); + exit(); + } + + if (isset($_POST['reihungstest_id']) && is_numeric($_POST['reihungstest_id']) + && isset($_POST['art'])) + { + $qry = "UPDATE public.tbl_reihungstest SET freigeschaltet=" . $db->db_add_param($_POST['art'], 'BOOLEAN') . " + WHERE reihungstest_id=" . $db->db_add_param($_POST['reihungstest_id']) . ";"; + + if ($result = $db->db_query($qry)) + { + echo json_encode(array( + 'status' => 'ok', + 'msg' => 'Reihungstest wurde freigeschaltet')); + exit(); + } + else + { + echo json_encode(array( + 'status' => 'fehler', + 'msg' => 'Fehler beim speichern der Daten' + )); + exit(); + } + } +} + +// Informiert die Studiengangsassistenz über das Ende des Tests +$testende = filter_input(INPUT_POST, 'testende', FILTER_VALIDATE_BOOLEAN); +if ($testende) +{ + if (isset($_POST['reihungstest_id']) && is_numeric($_POST['reihungstest_id'])) + { + $reihungstest = new reihungstest($_POST['reihungstest_id']); + // Alle Bachelor-Studiengänge holen, bei denen der Bewerber Interessent ist, die Bewerbung abgeschickt hat und bestätigt wurde + // Mail an alle diese Studiengänge senden + + if (isset($_POST['prestudent_ids'])) + { + // Array mit allen Prestudenten aufbauen + $prestudentArray = array(); + foreach ($_POST['prestudent_ids'] AS $prest) + { + $prestudentrolle = new prestudent($prest); + $prestudentrolle->getLastStatus($prest, $reihungstest->studiensemester_kurzbz, 'Interessent'); + $stg = new studiengang($prestudentrolle->studiengang_kz); + + if ($prestudentrolle->bewerbung_abgeschicktamum != '' + && $prestudentrolle->bestaetigtam != '' + && $prestudentrolle->bestaetigtvon != '' + && $stg->typ == 'b') + { + $prestudentArray[$prestudentrolle->studiengang_kz][$prestudentrolle->orgform_kurzbz][] = $prest; + } + + // Setzt "teilgenommen" (Zum Reihungstest angetreten) auf TRUE + $teilgenommen = new reihungstest(); + $teilgenommen->getPersonReihungstest($prestudentrolle->person_id, $_POST['reihungstest_id']); + + $teilgenommen->new = false; + $teilgenommen->teilgenommen = true; + $teilgenommen->updateamum = date('Y-m-d H:i:s'); + $teilgenommen->updatevon = $user; + + if (!$teilgenommen->savePersonReihungstest()) + { + echo json_encode(array( + 'status' => 'fehler', + 'msg' => 'Fehler beim speichern der Reihungstestteilnahme: '.$teilgenommen->errormsg + )); + exit(); + } + } + } + + $sendError = false; + $empfaengerArray = array(); + foreach ($prestudentArray AS $studiengang_kz => $OrgFormPrestudent) + { + foreach ($OrgFormPrestudent AS $orgForm => $prestudent_id) + { + $empfaenger = getMailEmpfaenger($studiengang_kz, null, $orgForm); + //Pfuschloesung fur BIF Dual + if (CAMPUS_NAME == 'FH Technikum Wien' && $studiengang_kz == 257 && $orgForm == 'DUA') + { + $empfaenger = 'info.bid@technikum-wien.at'; + } + elseif (CAMPUS_NAME == 'FH Technikum Wien' && $studiengang_kz == 257 && $orgForm != 'DUA') + { + $empfaenger = 'info.bif@technikum-wien.at'; + } + $empfaengerArray[] = $empfaenger; + $anzahl = count($OrgFormPrestudent[$orgForm]); + $stg = new studiengang($studiengang_kz); + $mailtext = ' + + Sancho Mail + + + + + + + + + + + + +
+ + + + +
+ sancho_header +
+
'; + $mailtext .= 'Der Reihungstest vom ' . $datum_obj->convertISODate($reihungstest->datum) . ' um ' . $datum_obj->formatDatum($reihungstest->uhrzeit, 'H:i') . ' Uhr ist beendet.'; + $mailtext .= '
Es haben '.$anzahl.' Person(en) aus dem Studiengang '.$stg->kuerzel.'-'.$orgForm.' teilgenommen'; + $mailtext .= '
Sie finden die Auswertung unter dem folgendem Link:'; + $mailtext .= '

Link zur Auswertung'; + + $mailtext .= '
+ + + + +
+ sancho_footer +
+
+ + '; + + $mailtext = wordwrap($mailtext, 70); // Bricht den Code um, da es sonst zu Anzeigefehlern im Mail kommen kann + + $mail = new mail($empfaenger, 'no-reply', 'Reihungstest vom '.$datum_obj->convertISODate($reihungstest->datum).' um '.$datum_obj->formatDatum($reihungstest->uhrzeit, 'H:i').' beendet', 'Bitte sehen Sie sich die Nachricht in HTML Sicht an, um den Link vollständig darzustellen.'); + $mail->setHTMLContent($mailtext); + $mail->addEmbeddedImage(APP_ROOT . 'skin/images/sancho/sancho_header_min_bw.jpg', 'image/jpg', 'header_image', 'sancho_header'); + $mail->addEmbeddedImage(APP_ROOT . 'skin/images/sancho/sancho_footer_min_bw.jpg', 'image/jpg', 'footer_image', 'sancho_footer'); + $mail->setBCCRecievers('kindlm@technikum-wien.at'); + + if (!$mail->send()) + { + $sendError = true; + } + } + } + if ($sendError) + { + echo json_encode(array( + 'status' => 'fehler', + 'msg' => '

Fehler beim Senden einer Nachricht

' + )); + exit(); + } + else + { + $empfaengerArray = array_unique($empfaengerArray); + echo json_encode(array( + 'status' => 'ok', + 'msg' => 'Nachricht erfolgreich verschickt an: ' . implode(',',$empfaengerArray))); + exit(); + } + } +} + +// Fügt einen Teilnehmer zum Reihungstest hinzu +if (isset($_POST['method']) && $_POST['method'] == 'addPerson') +{ + $error = false; + if (!$rechte->isBerechtigt('lehre/reihungstestAufsicht', null, 'sui')) + { + $messageError = $rechte->errormsg; + $error = true; + } + + if (isset($_POST['prestudentToAdd']) && is_numeric($_POST['prestudentToAdd']) + && isset($_POST['reihungstest_id']) && is_numeric($_POST['reihungstest_id']) + && $error == false) + { + $studienplan = ''; + // Load Testdata + $reihungstest = new reihungstest($_POST['reihungstest_id']); + // Studienplan des letzten Interessentenstatus ermitteln + $prestudent = new prestudent($_POST['prestudentToAdd']); + $prestudent->getPrestudentRolle($_POST['prestudentToAdd'], 'Interessent', $reihungstest->studiensemester_kurzbz); //@todo: Sollen man Prestudenten ohne passendes Studiensemester hinzufügen können?? + $studiengang = new studiengang($prestudent->studiengang_kz); + + foreach ($prestudent->result AS $row)//@todo: Checken wir auf bewerbung abgeschickt und bestätigt?? + { + if ($row->bewerbung_abgeschicktamum != '' && $row->bestaetigtam != '' && $row->studienplan_id != '') + { + $studienplan = $row->studienplan_id; + $break; + } + } + + // Prüfen, ob schon eine Zuteilung dieser Person zum Test vorhanden ist + // Erst in Kombination mit dem Studienplan checken, danach ohne + if ($reihungstest->checkPersonRtStudienplanExists($prestudent->person_id, $_POST['reihungstest_id'], $studienplan)) + { + $messageError = 'Die Person mit diesem Studienplan ist bereits diesem Reihungstest zugeteilt'; + $error = true; + } + else + { + if ($studiengang->typ == 'b') + { + if ($reihungstest->getPersonReihungstest($prestudent->person_id, $_POST['reihungstest_id'])) + { + $messageError = 'Die Person ist bereits diesem Reihungstest zugeteilt'; + $error = true; + } + else + { + $reihungstest->person_id = $prestudent->person_id; + $reihungstest->studienplan_id = $studienplan; + $reihungstest->anmeldedatum = date('Y-m-d'); + $reihungstest->teilgenommen = false; + $reihungstest->ort_kurzbz = ''; + $reihungstest->punkte = ''; + $reihungstest->insertamum = date('Y-m-d H:i:s'); + $reihungstest->insertvon = $user; + $reihungstest->new = true; + + if (!$reihungstest->savePersonReihungstest()) + { + $messageError = 'Fehler beim speichern der Zuteilung: '.$reihungstest->errormsg; + } + else + { + $messageSuccess .= 'Person erfolgreich zugeteilt'; + } + } + } + elseif ($studiengang->typ != 'b') + { + $reihungstest->person_id = $prestudent->person_id; + $reihungstest->studienplan_id = $studienplan; + $reihungstest->anmeldedatum = date('Y-m-d'); + $reihungstest->teilgenommen = false; + $reihungstest->ort_kurzbz = ''; + $reihungstest->punkte = ''; + $reihungstest->insertamum = date('Y-m-d H:i:s'); + $reihungstest->insertvon = $user; + $reihungstest->new = true; + + if (!$reihungstest->savePersonReihungstest()) + { + $messageError = 'Fehler beim speichern der Zuteilung: '.$reihungstest->errormsg; + } + else + { + $messageSuccess .= 'Person erfolgreich zugeteilt'; + } + } + } + } + else + { + $messageError = 'Fehler bei Parameterübergabe'; + } +} + +function sortByField($multArray, $sortField, $desc = true) +{ + $tmpKey = ''; + $ResArray = array(); + + if (!is_array($multArray)) + { + return array(); + } + + $maIndex = array_keys($multArray); + $maSize = count($multArray) - 1; + + for ($i = 0; $i < $maSize; $i++) + { + $minElement = $i; + $tempMin = $multArray[$maIndex[$i]]->$sortField; + $tmpKey = $maIndex[$i]; + for ($j = $i + 1; $j <= $maSize; $j++) + { + if ($multArray[$maIndex[$j]]->$sortField < $tempMin) + { + $minElement = $j; + $tmpKey = $maIndex[$j]; + $tempMin = $multArray[$maIndex[$j]]->$sortField; + } + } + $maIndex[$minElement] = $maIndex[$i]; + $maIndex[$i] = $tmpKey; + } + + if ($desc) + { + for ($j = 0; $j <= $maSize; $j++) + { + $ResArray[$maIndex[$j]] = $multArray[$maIndex[$j]]; + } + } + else + { + for ($j = $maSize; $j >= 0; $j--) + { + $ResArray[$maIndex[$j]] = $multArray[$maIndex[$j]]; + } + } + + return $ResArray; +} + +/** + * Liefert die interne Empfangsadresse des Studiengangs fuer den Mailversand. + * Wenn BEWERBERTOOL_MAILEMPFANG gesetzt ist, wird diese genommen, + * sonst diejenige aus BEWERBERTOOL_BEWERBUNG_EMPFAENGER, + * sonst die Mailadresse des Studiengangs + * + * @param integer $studiengang_kz + * @param integer $studienplan_id + * @param string $orgform_kurzbz + * @return string mit den Mailadressen sonst false + */ +function getMailEmpfaenger($studiengang_kz, $studienplan_id = null, $orgform_kurzbz = null) +{ + $studiengang = new studiengang($studiengang_kz); + + if ($studienplan_id != '') + { + $studienplan = new studienplan(); + $studienplan->loadStudienplan($studienplan_id); + } + + $empf_array = array(); + $empfaenger = ''; + if(defined('BEWERBERTOOL_BEWERBUNG_EMPFAENGER')) + $empf_array = unserialize(BEWERBERTOOL_BEWERBUNG_EMPFAENGER); + + // Umgehung für FHTW. Ausprogrammiert im Code + if(defined('BEWERBERTOOL_MAILEMPFANG') && BEWERBERTOOL_MAILEMPFANG != '') + { + $empfaenger = BEWERBERTOOL_MAILEMPFANG; + } + elseif(isset($empf_array[$studiengang_kz])) + { + // Pfuschloesung, damit bei BIF Dual die Mail an info.bid geht + if ($studiengang_kz == 257) + { + if ((isset($studienplan) && $studienplan->orgform_kurzbz == 'DUA') || + ($orgform_kurzbz != '' && $orgform_kurzbz == 'DUA')) + $empfaenger = 'info.bid@technikum-wien.at'; + } + else + $empfaenger = $empf_array[$studiengang_kz]; + } + else + $empfaenger = $studiengang->email; + + if ($empfaenger != '') + return $empfaenger; + else + return false; +} + +$ergebnis = ''; +$gebiet = array(); +$kategorie = array(); +$erg_kat = array(); +$zgv_arr = array(); +$zgvma_arr = array(); + +$datum_von = isset($_REQUEST['datum_von']) ? $_REQUEST['datum_von'] : ''; +$datum_bis = isset($_REQUEST['datum_bis']) ? $_REQUEST['datum_bis'] : ''; +$reihungstest = isset($_REQUEST['reihungstest']) ? $_REQUEST['reihungstest'] : ''; +$studiengang = isset($_REQUEST['studiengang']) ? $_REQUEST['studiengang'] : ''; +$semester = isset($_REQUEST['semester']) ? $_REQUEST['semester'] : ''; +$prestudent_id = isset($_REQUEST['prestudent_id']) ? $_REQUEST['prestudent_id'] : ''; +$orgform_kurzbz = isset($_REQUEST['orgform_kurzbz']) ? $_REQUEST['orgform_kurzbz'] : ''; +$format = (isset($_REQUEST['format']) ? $_REQUEST['format'] : ''); +$rtStudiensemester = ''; + +if ($reihungstest != '' && is_numeric($reihungstest)) +{ + $reihungstestObj = new reihungstest($reihungstest); + $rtStudiensemester = $reihungstestObj->studiensemester_kurzbz; +} +elseif ($reihungstest != '' && !is_numeric($reihungstest)) +{ + die('ReihungstestID ist ungueltig'); +} +if ($studiengang != '' && is_numeric($studiengang)) +{ + $studiengangObj = new studiengang($studiengang); +} +elseif ($studiengang != '' && !is_numeric($studiengang)) +{ + die('Studiengang ist ungueltig'); +} +if ($semester != '' && !is_numeric($semester)) +{ + die('Semester ist ungueltig'); +} +if ($prestudent_id != '' && !is_numeric($prestudent_id)) +{ + die('PrestudentID ist ungueltig'); +} +if (($reihungstest == '' && isset($_REQUEST['reihungstest'])) && $studiengang == '' && $semester == '' && $prestudent_id == '' && $datum_von == '' && $datum_bis == '') +{ + die('Waehlen Sie bitte mindestens eine der Optionen aus'); +} + +if ($datum_von != '') +{ + $datum_von = $datum_obj->formatDatum($datum_von, 'Y-m-d'); +} +if ($datum_bis != '') +{ + $datum_bis = $datum_obj->formatDatum($datum_bis, 'Y-m-d'); +} + +$zgv_arr[''] = ''; +$qry = "SELECT * FROM bis.tbl_zgv"; +if ($result = $db->db_query($qry)) +{ + while ($row = $db->db_fetch_object($result)) + $zgv_arr[$row->zgv_code] = $row->zgv_kurzbz; +} + +$zgvma_arr[''] = ''; +$qry = "SELECT * FROM bis.tbl_zgvmaster"; +if ($result = $db->db_query($qry)) +{ + while ($row = $db->db_fetch_object($result)) + $zgvma_arr[$row->zgvmas_code] = $row->zgvmas_kurzbz; +} + +// Reihungstests laden +$sql_query = "SELECT * FROM public.tbl_reihungstest WHERE date_part('year',datum)=date_part('year',now()) "; + +// Wenn Reihungstest ID gesetzt ist, diesen Test zusaetzlich laden, um auch jene außerhalbs des Datumszeitraums zu erwischen +if ($reihungstest != '') +{ + $sql_query .= "UNION SELECT * FROM public.tbl_reihungstest WHERE reihungstest_id=" . $db->db_add_param($reihungstest, FHC_INTEGER); +} + +$sql_query .= " ORDER BY datum,uhrzeit"; + +if (!($result = $db->db_query($sql_query))) +{ + die($db->db_last_error()); +} + +while ($row = $db->db_fetch_object($result)) +{ + if (!isset($rtest[$row->reihungstest_id])) + { + $rtest[$row->reihungstest_id] = new stdClass(); + } + $rtest[$row->reihungstest_id]->reihungstest_id = $row->reihungstest_id; + $rtest[$row->reihungstest_id]->studiengang_kz = $row->studiengang_kz; + $rtest[$row->reihungstest_id]->ort_kurzbz = $row->ort_kurzbz; + $rtest[$row->reihungstest_id]->anmerkung = $row->anmerkung; + $rtest[$row->reihungstest_id]->datum = $row->datum; + $rtest[$row->reihungstest_id]->uhrzeit = $row->uhrzeit; + $rtest[$row->reihungstest_id]->freigeschaltet = $db->db_parse_bool($row->freigeschaltet); +} + +if (isset($_REQUEST['reihungstest'])) +{ + // Vorkommende Gebiete laden + $query = " + SELECT DISTINCT + tbl_gebiet.gebiet_id, + tbl_gebiet.bezeichnung AS gebiet, + tbl_ablauf.reihung, + tbl_ablauf.studiengang_kz + FROM PUBLIC.tbl_rt_person + JOIN PUBLIC.tbl_person ON (tbl_rt_person.person_id = tbl_person.person_id) + JOIN PUBLIC.tbl_prestudent ps ON (ps.person_id = tbl_rt_person.person_id) + JOIN PUBLIC.tbl_reihungstest rt ON (tbl_rt_person.rt_id = rt.reihungstest_id) + JOIN PUBLIC.tbl_prestudentstatus USING (prestudent_id) + JOIN public.tbl_studiengang ON (ps.studiengang_kz = tbl_studiengang.studiengang_kz) + LEFT JOIN bis.tbl_zgv ON (ps.zgv_code = tbl_zgv.zgv_code) + LEFT JOIN PUBLIC.tbl_ort ON (tbl_rt_person.ort_kurzbz = tbl_ort.ort_kurzbz) + LEFT JOIN testtool.tbl_pruefling USING (prestudent_id) + LEFT JOIN testtool.tbl_ablauf ON (testtool.tbl_ablauf.studiengang_kz = ps.studiengang_kz) + LEFT JOIN testtool.tbl_gebiet USING (gebiet_id) + WHERE 1=1 + --AND get_rolle_prestudent(prestudent_id, rt.studiensemester_kurzbz) = 'Interessent' + AND tbl_prestudentstatus.studiensemester_kurzbz = rt.studiensemester_kurzbz + --AND bewerbung_abgeschicktamum IS NOT NULL + --AND bestaetigtam IS NOT NULL + AND NOT (testtool.tbl_ablauf.gebiet_id IN ( SELECT testtool.tbl_kategorie.gebiet_id FROM testtool.tbl_kategorie))"; + if ($reihungstest != '') + { + $query .= " AND rt_id = " . $db->db_add_param($reihungstest, FHC_INTEGER); + } + if ($studiengang != '') + { + $query .= " AND ps.studiengang_kz = " . $db->db_add_param($studiengang, FHC_INTEGER); + } + if ($datum_von != '') + { + $query .= " AND rt.datum >= " . $db->db_add_param($datum_von); + } + if ($datum_bis != '') + { + $query .= " AND rt.datum <= " . $db->db_add_param($datum_bis); + } + if ($studiengang != '') + { + $query .= " AND ps.studiengang_kz = " . $db->db_add_param($studiengang, FHC_INTEGER); + } + if ($semester != '') + { + $query .= " AND tbl_ablauf.semester=" . $db->db_add_param($semester, FHC_INTEGER); + $query .= " AND tbl_prestudentstatus.ausbildungssemester = " . $db->db_add_param($semester, FHC_INTEGER); + } + if ($prestudent_id != '') + { + $query .= " AND ps.prestudent_id=" . $db->db_add_param($prestudent_id, FHC_INTEGER); + } + //$query .= " AND nachname='Al-Mafrachi'"; + $query .= " ORDER BY tbl_ablauf.studiengang_kz, reihung"; + + if (!($result = $db->db_query($query))) + { + die($db->db_last_error()); + } + while ($row = $db->db_fetch_object($result)) + { + if (!isset($gebiet[$row->gebiet_id])) + { + $gebiet[$row->gebiet_id] = new stdClass(); + } + $gebiet[$row->gebiet_id]->name = $row->gebiet; + $gebiet[$row->gebiet_id]->gebiet_id = $row->gebiet_id; + } + + // Alle Ergebnisse laden + $query = " + SELECT DISTINCT tbl_rt_person.person_id, + gebdatum, + tbl_person.geschlecht, + nachname, + vorname, + UPPER(tbl_studiengang.typ || tbl_studiengang.kurzbz) AS stg_kurzbz, + tbl_studiengang.bezeichnung AS stg_bez, + tbl_studienplan.orgform_kurzbz, + tbl_gebiet.maxpunkte, + tbl_prestudentstatus.ausbildungssemester, + tbl_ablauf.gewicht, + tbl_ort.planbezeichnung AS raum, + ps.prestudent_id, + tbl_zgv.zgv_kurzbz, + ps.zgv_code, + ps.zgvmas_code, + ( + SELECT count(*) AS prio_relativ + FROM ( + SELECT *, + ( + SELECT status_kurzbz + FROM PUBLIC.tbl_prestudentstatus + WHERE prestudent_id = pst.prestudent_id + ORDER BY datum DESC, + tbl_prestudentstatus.insertamum DESC LIMIT 1 + ) AS laststatus + FROM PUBLIC.tbl_prestudent pst + JOIN PUBLIC.tbl_prestudentstatus USING (prestudent_id) + WHERE person_id = ( + SELECT person_id + FROM PUBLIC.tbl_prestudent + WHERE prestudent_id = ps.prestudent_id + ) + AND studiensemester_kurzbz = ( + SELECT studiensemester_kurzbz + FROM PUBLIC.tbl_prestudentstatus + WHERE prestudent_id = ps.prestudent_id + AND status_kurzbz = 'Interessent' LIMIT 1 + ) + AND status_kurzbz = 'Interessent' + ) prest + WHERE laststatus NOT IN ('Abbrecher', 'Abgewiesener', 'Absolvent') + AND priorisierung <= ( + SELECT priorisierung + FROM PUBLIC.tbl_prestudent + WHERE prestudent_id = ps.prestudent_id + ) + ) AS prioritaet, + ( + SELECT kontakt + FROM PUBLIC.tbl_kontakt + WHERE kontakttyp = 'email' + AND zustellung = true + AND person_id = tbl_rt_person.person_id + ORDER BY insertamum DESC, + updateamum DESC LIMIT 1 + ) AS email, + CASE + WHEN tbl_studiengang.typ = 'b' + AND EXISTS( + SELECT 1 + FROM testtool.tbl_pruefling + WHERE prestudent_id = ps.prestudent_id + ) + THEN ( + SELECT sum(testtool.tbl_vorschlag.punkte) AS sum + FROM testtool.tbl_vorschlag + JOIN testtool.tbl_antwort USING (vorschlag_id) + JOIN testtool.tbl_frage USING (frage_id) + WHERE testtool.tbl_antwort.pruefling_id = tbl_pruefling.pruefling_id + AND testtool.tbl_frage.gebiet_id = tbl_gebiet.gebiet_id + ) + ELSE ( + SELECT sum(testtool.tbl_vorschlag.punkte) AS sum + FROM testtool.tbl_vorschlag + JOIN testtool.tbl_antwort USING (vorschlag_id) + JOIN testtool.tbl_frage USING (frage_id) + WHERE testtool.tbl_antwort.pruefling_id = ( + SELECT pruefling_id + FROM testtool.tbl_pruefling + WHERE prestudent_id = ( + SELECT prestudent_id + FROM PUBLIC.tbl_prestudent + JOIN PUBLIC.tbl_prestudentstatus USING (prestudent_id) + JOIN PUBLIC.tbl_studiengang USING (studiengang_kz) + JOIN testtool.tbl_pruefling USING (prestudent_id) + WHERE person_id = tbl_rt_person.person_id + AND tbl_studiengang.typ = 'b' + AND status_kurzbz = 'Interessent' + AND studiensemester_kurzbz = rt.studiensemester_kurzbz + ORDER BY registriert DESC LIMIT 1 + ) + ) + AND testtool.tbl_frage.gebiet_id = tbl_gebiet.gebiet_id + ) + END AS punkte, + /*(SELECT sum(testtool.tbl_vorschlag.punkte) AS sum + FROM testtool.tbl_vorschlag + JOIN testtool.tbl_antwort USING (vorschlag_id) + JOIN testtool.tbl_frage USING (frage_id) + WHERE testtool.tbl_antwort.pruefling_id = tbl_pruefling.pruefling_id + AND testtool.tbl_frage.gebiet_id = tbl_gebiet.gebiet_id + ) AS punkte,*/ + tbl_gebiet.gebiet_id, + tbl_gebiet.bezeichnung AS gebiet, + tbl_pruefling.idnachweis, + tbl_pruefling.registriert +FROM PUBLIC.tbl_rt_person +JOIN PUBLIC.tbl_person ON (tbl_rt_person.person_id = tbl_person.person_id) +JOIN PUBLIC.tbl_prestudent ps ON (ps.person_id = tbl_rt_person.person_id) +JOIN PUBLIC.tbl_reihungstest rt ON (tbl_rt_person.rt_id = rt.reihungstest_id) +JOIN PUBLIC.tbl_prestudentstatus USING (prestudent_id) +JOIN PUBLIC.tbl_studiengang ON (ps.studiengang_kz = tbl_studiengang.studiengang_kz) +LEFT JOIN lehre.tbl_studienplan ON (tbl_prestudentstatus.studienplan_id = tbl_studienplan.studienplan_id) +LEFT JOIN bis.tbl_zgv ON (ps.zgv_code = tbl_zgv.zgv_code) +LEFT JOIN PUBLIC.tbl_ort ON (tbl_rt_person.ort_kurzbz = tbl_ort.ort_kurzbz) +LEFT JOIN testtool.tbl_pruefling USING (prestudent_id) +LEFT JOIN testtool.tbl_ablauf ON (testtool.tbl_ablauf.studiengang_kz = ps.studiengang_kz) +LEFT JOIN testtool.tbl_gebiet USING (gebiet_id) +WHERE 1 = 1 + AND get_rolle_prestudent(prestudent_id, rt.studiensemester_kurzbz) = 'Interessent' + AND tbl_prestudentstatus.studiensemester_kurzbz = rt.studiensemester_kurzbz + AND bewerbung_abgeschicktamum IS NOT NULL + AND bestaetigtam IS NOT NULL + AND tbl_gebiet.gebiet_id != 7 + "; + if ($reihungstest != '') + { + $query .= " AND rt_id = " . $db->db_add_param($reihungstest, FHC_INTEGER); + } + if ($studiengang != '') + { + $query .= " AND ps.studiengang_kz = " . $db->db_add_param($studiengang, FHC_INTEGER); + } + if ($datum_von != '') + { + $query .= " AND rt.datum >= " . $db->db_add_param($datum_von); + } + if ($datum_bis != '') + { + $query .= " AND rt.datum <= " . $db->db_add_param($datum_bis); + } + if ($studiengang != '') + { + $query .= " AND ps.studiengang_kz = " . $db->db_add_param($studiengang, FHC_INTEGER); + } + if ($semester != '') + { + $query .= " AND tbl_ablauf.semester=" . $db->db_add_param($semester, FHC_INTEGER); + $query .= " AND tbl_prestudentstatus.ausbildungssemester = " . $db->db_add_param($semester, FHC_INTEGER); + } + if ($prestudent_id != '') + { + $query .= " AND ps.prestudent_id=" . $db->db_add_param($prestudent_id, FHC_INTEGER); + } + if ($orgform_kurzbz != '') + { + $query .= " AND tbl_studienplan.orgform_kurzbz=" . $db->db_add_param($orgform_kurzbz); + } + //$query .= " AND nachname='Al-Mafrachi'"; + $query .= " ORDER BY nachname, + vorname, + person_id + ";//var_dump($query); + if (!($result = $db->db_query($query))) + { + die($db->db_last_error()); + } + + while ($row = $db->db_fetch_object($result)) + { + if (!isset($ergebnis[$row->prestudent_id])) + { + $ergebnis[$row->prestudent_id] = new stdClass(); + } + + $ergebnis[$row->prestudent_id]->prestudent_id = $row->prestudent_id; + $ergebnis[$row->prestudent_id]->person_id = $row->person_id; + //$ergebnis[$row->prestudent_id]->pruefling_id = $row->pruefling_id; + $ergebnis[$row->prestudent_id]->nachname = $row->nachname; + $ergebnis[$row->prestudent_id]->vorname = $row->vorname; + $ergebnis[$row->prestudent_id]->gebdatum = $row->gebdatum; + $ergebnis[$row->prestudent_id]->geschlecht = $row->geschlecht; + $ergebnis[$row->prestudent_id]->idnachweis = $row->idnachweis; + $ergebnis[$row->prestudent_id]->registriert = $row->registriert; + $ergebnis[$row->prestudent_id]->stg_kurzbz = $row->stg_kurzbz; + $ergebnis[$row->prestudent_id]->stg_bez = $row->stg_bez; + $ergebnis[$row->prestudent_id]->ausbildungssemester = $row->ausbildungssemester; + $ergebnis[$row->prestudent_id]->zgv = $row->zgv_code; + $ergebnis[$row->prestudent_id]->zgvma = $row->zgvmas_code; + $ergebnis[$row->prestudent_id]->raum = $row->raum; + $ergebnis[$row->prestudent_id]->prioritaet = ($row->prioritaet != '' ? $row->prioritaet : ''); + $ergebnis[$row->prestudent_id]->orgform = $row->orgform_kurzbz; + + if (!isset($ergebnis[$row->prestudent_id]->gebiet[$row->gebiet_id])) + { + $ergebnis[$row->prestudent_id]->gebiet[$row->gebiet_id] = new stdClass(); + } + + $ergebnis[$row->prestudent_id]->gebiet[$row->gebiet_id]->name = $row->gebiet; + $ergebnis[$row->prestudent_id]->gebiet[$row->gebiet_id]->punkte = (($row->punkte >= $row->maxpunkte) ? $row->maxpunkte : $row->punkte); + if ($row->punkte == 0 && $row->punkte != '') + { + $prozent = '0'; + } + elseif ($row->punkte >= $row->maxpunkte) //wenn maxpunkte ueberschritten wurde -> 100% + { + $prozent = 100; + } + else + { + $prozent = ($row->punkte / $row->maxpunkte) * 100; + } + + if ($row->punkte >= $row->maxpunkte) + { + $punkte = $row->maxpunkte; + } + else + { + $punkte = $row->punkte; + } + + $ergebnis[$row->prestudent_id]->gebiet[$row->gebiet_id]->prozent = $prozent; + $ergebnis[$row->prestudent_id]->gebiet[$row->gebiet_id]->punkte = $punkte; + + // Gesamtpunkte mit Physik + if (isset($ergebnis[$row->prestudent_id]->gesamt)) + { + $ergebnis[$row->prestudent_id]->gesamt += $prozent * $row->gewicht; + } + else + { + $ergebnis[$row->prestudent_id]->gesamt = $prozent * $row->gewicht; + } + + if (isset($ergebnis[$row->prestudent_id]->gesamtpunkte)) + { + $ergebnis[$row->prestudent_id]->gesamtpunkte += $punkte; + } + else + { + $ergebnis[$row->prestudent_id]->gesamtpunkte = $punkte; + } + + // Gesamtpunkte ohne Physik + if ($row->gebiet_id != 10) + { + if (isset($ergebnis[$row->prestudent_id]->gesamt_ohne_physik)) + { + $ergebnis[$row->prestudent_id]->gesamt_ohne_physik += $prozent * $row->gewicht; + } + else + { + $ergebnis[$row->prestudent_id]->gesamt_ohne_physik = $prozent * $row->gewicht; + } + + if (isset($ergebnis[$row->prestudent_id]->gesamtpunkte_ohne_physik)) + { + $ergebnis[$row->prestudent_id]->gesamtpunkte_ohne_physik += $punkte; + } + else + { + $ergebnis[$row->prestudent_id]->gesamtpunkte_ohne_physik = $punkte; + } + } + + // Wenn Person ID gleich ist und kein Ergebnis vorhanden ist, jenes eines anderen PreStudenten dieser Person anzeigen + /*if ($ergebnis[$row->prestudent_id]->gebiet[$row->gebiet_id]->punkte == '') + { + foreach ($ergebnis as $erg) + { + if ($row->person_id == $erg->person_id && isset($erg->gebiet[$row->gebiet_id]->punkte) && $erg->gebiet[$row->gebiet_id]->punkte != '') + { + $ergebnis[$row->prestudent_id]->gebiet[$row->gebiet_id]->punkte = $erg->gebiet[$row->gebiet_id]->punkte; + } + if ($row->person_id == $erg->person_id && isset($erg->gebiet[$row->gebiet_id]->prozent) && $erg->gebiet[$row->gebiet_id]->prozent != '') + { + $ergebnis[$row->prestudent_id]->gebiet[$row->gebiet_id]->prozent = $erg->gebiet[$row->gebiet_id]->prozent; + } + if ($row->person_id == $erg->person_id && $erg->gesamt != '') + { + $ergebnis[$row->prestudent_id]->gesamt = $erg->gesamt; + } + if ($row->person_id == $erg->person_id && $erg->gesamtpunkte != '') + { + $ergebnis[$row->prestudent_id]->gesamtpunkte = $erg->gesamtpunkte; + } + if ($row->person_id == $erg->person_id && $erg->gesamt_ohne_physik != '') + { + $ergebnis[$row->prestudent_id]->gesamt_ohne_physik = $erg->gesamt_ohne_physik; + } + if ($row->person_id == $erg->person_id && $erg->gesamtpunkte_ohne_physik != '') + { + $ergebnis[$row->prestudent_id]->gesamtpunkte_ohne_physik = $erg->gesamtpunkte_ohne_physik; + } + } + }*/ + } + + $ergb = $ergebnis; +} + +//Studiengaenge laden +$stg_obj = new studiengang(); +$stg_obj->getAll('typ, kurzbz', true); +$stg_arr = array(); + +foreach ($stg_obj->result as $row) +{ + $stg_arr[$row->studiengang_kz] = $row->kuerzel; +} + +//Orgformen laden +$orgformen = new organisationsform(); +$orgformen->getOrgformLV(); +$orgformen_arr = array(); + +foreach ($orgformen->result as $row) +{ + $orgformen_arr[$row->orgform_kurzbz] = $row->bezeichnung; +} + + +if (isset($_REQUEST['format']) && $_REQUEST['format'] == 'xls') +{ + // Nach Gesamtergebnis sortieren + $ergb = sortByField($ergb, 'gesamt'); + + // Creating a workbook + $workbook = new Spreadsheet_Excel_Writer(); + + // sending HTTP headers + $workbook->send("Auswertung " . ((isset ($_REQUEST['reihungstest']) && $_REQUEST['reihungstest'] != '') ? $stg_arr[$rtest[$reihungstest]->studiengang_kz] . " " . $datum_obj->formatDatum($rtest[$reihungstest]->datum, 'd.m.Y') : 'aller Reihungstests') . ".xls"); + $workbook->setVersion(8); + $workbook->setCustomColor(15, 192, 192, 192); //Setzen der HG-Farbe Hellgrau + $workbook->setCustomColor(22, 193, 0, 0); //Setzen der HG-Farbe Dunkelrot + // Creating a worksheet + $titel_studiengang = (isset ($_REQUEST['studiengang']) && $_REQUEST['studiengang'] != ''); + $titel_semester = (isset ($_REQUEST['semester']) && $_REQUEST['semester'] != ''); + + // Eigener TItel bei Bachelor-Studiengängen + if (isset($studiengangObj) && $studiengangObj->typ == 'b') + { + $worksheet =& $workbook->addWorksheet("Auswertung MIT Physik " . ($titel_studiengang ? $stg_arr[$_REQUEST['studiengang']] : '') . ($titel_semester ? ' ' . $semester . '.Semester' : '')); + } + else + { + $worksheet =& $workbook->addWorksheet("Technischer Teil " . ($titel_studiengang ? $stg_arr[$_REQUEST['studiengang']] : '') . ($titel_semester ? ' ' . $semester . '.Semester' : '')); + } + + $worksheet->setInputEncoding('utf-8'); + $worksheet->setZoom(85); + //Formate Definieren + $format_bold =& $workbook->addFormat(); + $format_bold->setBold(); + $format_bold->setAlign("center"); + $format_bold->setFgColor(15); + $format_bold->setVAlign('vcenter'); + + $format_bold_border =& $workbook->addFormat(); + $format_bold_border->setBold(); + $format_bold_border->setAlign("center"); + $format_bold_border->setFgColor(15); + $format_bold_border->setBorder(1); + $format_bold_border->setBorderColor('white'); + + $format_date =& $workbook->addFormat(); + $format_date->setNumFormat('YYYY-MM-DD'); + + $format_registriert =& $workbook->addFormat(); + $format_registriert->setNumFormat('YYYY-MM-DD hh:mm:ss'); + + $format_punkte =& $workbook->addFormat(); + $format_punkte->setNumFormat('0.00'); + + $format_punkte_rot =& $workbook->addFormat(); + $format_punkte_rot->setNumFormat('0.00'); + $format_punkte_rot->setColor('22'); + + $format_prozent =& $workbook->addFormat(); + $format_prozent->setNumFormat('0.00%'); + + $format_prozent_rot =& $workbook->addFormat(); + $format_prozent_rot->setNumFormat('0.00%'); + $format_prozent_rot->setColor('22'); + + $format_male =& $workbook->addFormat(); + $format_male->setColor('blue'); + + $format_female =& $workbook->addFormat(); + $format_female->setColor('magenta'); + + $spalte = 0; + $zeile = 0; + + $worksheet->write(0, $spalte, 'PrestudentIn_ID', $format_bold); + $worksheet->mergeCells(0, 0, 1, 0); + $maxlength[0] = 15; + $worksheet->write(0, ++$spalte, 'Nachname', $format_bold); + $worksheet->mergeCells(0, 1, 1, 1); + $maxlength[1] = 15; + $worksheet->write(0, ++$spalte, 'Vorname', $format_bold); + $worksheet->mergeCells(0, 2, 1, 2); + $maxlength[2] = 15; + $worksheet->write(0, ++$spalte, 'GebDatum', $format_bold); + $worksheet->mergeCells(0, 3, 1, 3); + $maxlength[3] = 10; + $worksheet->write(0, ++$spalte, 'G', $format_bold); + $worksheet->mergeCells(0, 4, 1, 4); + $maxlength[4] = 2; + $worksheet->write(0, ++$spalte, 'Registriert', $format_bold); + $worksheet->mergeCells(0, 5, 1, 5); + $maxlength[5] = 18; + $worksheet->write(0, ++$spalte, 'STG', $format_bold); + $worksheet->mergeCells(0, 6, 1, 6); + $maxlength[6] = 4; + $worksheet->write(0, ++$spalte, 'Studiengang', $format_bold); + $worksheet->mergeCells(0, 7, 1, 7); + $maxlength[7] = 25; + $worksheet->write(0, ++$spalte, 'S', $format_bold); + $worksheet->mergeCells(0, 8, 1, 8); + $maxlength[8] = 2; + $worksheet->write(0, ++$spalte, 'OrgForm', $format_bold); + $worksheet->mergeCells(0, 9, 1, 9); + $maxlength[9] = 8; + $worksheet->write(0, ++$spalte, 'Prio', $format_bold); + $worksheet->mergeCells(0, 10, 1, 10); + $maxlength[10] = 5; + $worksheet->write(0, ++$spalte, 'ZGV', $format_bold); + $worksheet->mergeCells(0, 11, 1, 11); + $maxlength[11] = 20; + $worksheet->write(0, ++$spalte, 'ZGV MA', $format_bold); + $worksheet->mergeCells(0, 12, 1, 12); + $maxlength[12] = 20; + + $spalte = 11; + $zeile = 0; + + foreach ($gebiet AS $gbt) + { + ++$spalte; + $worksheet->write($zeile, ++$spalte, strip_tags($gbt->name), $format_bold_border); + $worksheet->mergeCells($zeile, $spalte, 0, $spalte + 1); + $maxlength[$spalte] = 10; + } + $worksheet->write($zeile, ++$spalte + 1, 'Gesamt', $format_bold_border); + $worksheet->mergeCells($zeile, ++$spalte, 0, $spalte + 1); + $maxlength[$spalte] = 12; + + $spalte = 12; + $zeile = 0; + + foreach ($gebiet AS $gbt) + { + $worksheet->write($zeile + 1, ++$spalte, 'Punkte', $format_bold_border); + $worksheet->write($zeile + 1, ++$spalte, 'Prozent', $format_bold_border); + $maxlength[$spalte] = 10; + } + $worksheet->write($zeile + 1, ++$spalte, 'Punkte', $format_bold_border); + $worksheet->write($zeile + 1, ++$spalte, 'Prozent', $format_bold_border); + $maxlength[$spalte] = 10; + + $maxspalten = $spalte; + + $zeile = 1; + $spalte = 0; + + if (isset($ergb)) + { + foreach ($ergb AS $erg) + { + $zeile++; + $spalte = 0; + $worksheet->write($zeile, $spalte, $erg->prestudent_id); + $worksheet->write($zeile, ++$spalte, $erg->nachname); + $worksheet->write($zeile, ++$spalte, $erg->vorname); + $worksheet->write($zeile, ++$spalte, $erg->gebdatum, $format_date); + if ($erg->geschlecht == 'm') + { + $worksheet->write($zeile, ++$spalte, $erg->geschlecht, $format_male); + } + else + { + $worksheet->write($zeile, ++$spalte, $erg->geschlecht, $format_female); + } + $worksheet->write($zeile, ++$spalte, $erg->registriert, $format_registriert); + $worksheet->write($zeile, ++$spalte, $erg->stg_kurzbz); + $worksheet->write($zeile, ++$spalte, $erg->stg_bez); + $worksheet->write($zeile, ++$spalte, $erg->ausbildungssemester); + $worksheet->write($zeile, ++$spalte, $erg->orgform); + $worksheet->write($zeile, ++$spalte, $erg->prioritaet); + $worksheet->write($zeile, ++$spalte, $zgv_arr[$erg->zgv]); + $worksheet->write($zeile, ++$spalte, $zgvma_arr[$erg->zgvma]); + foreach ($gebiet AS $gbt) + { + if (isset($erg->gebiet[$gbt->gebiet_id])) + { + if ($erg->gebiet[$gbt->gebiet_id]->punkte != '' && $erg->gebiet[$gbt->gebiet_id]->punkte != '0') + { + $worksheet->writeNumber($zeile, ++$spalte, $erg->gebiet[$gbt->gebiet_id]->punkte, $format_punkte); + } + else + { + $worksheet->writeNumber($zeile, ++$spalte, $erg->gebiet[$gbt->gebiet_id]->punkte, $format_punkte_rot); + } + if ($erg->gebiet[$gbt->gebiet_id]->prozent != '0%') + { + $worksheet->writeNumber($zeile, ++$spalte, $erg->gebiet[$gbt->gebiet_id]->prozent / 100, $format_prozent); + } + else + { + $worksheet->writeNumber($zeile, ++$spalte, $erg->gebiet[$gbt->gebiet_id]->prozent / 100, $format_prozent_rot); + } + } + else + { + $worksheet->write($zeile, ++$spalte, ''); + $worksheet->write($zeile, ++$spalte, ''); + } + } + $worksheet->writeNumber($zeile, ++$spalte, $erg->gesamtpunkte, $format_punkte); + $worksheet->writeNumber($zeile, ++$spalte, $erg->gesamt, $format_punkte); + } + } + + //Die Breite der Spalten setzen + foreach ($maxlength as $i => $breite) + { + $worksheet->setColumn($i, $i, $breite); + } + + // Worksheet ohne Physik nur für Bachelor-Studiengänge + if (isset($studiengangObj) && $studiengangObj->typ == 'b') + { + $worksheetOhnePhsyik =& $workbook->addWorksheet("Auswertung OHNE Physik " . ($titel_studiengang ? $stg_arr[$_REQUEST['studiengang']] : '') . ($titel_semester ? ' ' . $semester . '.Semester' : '')); + $worksheetOhnePhsyik->setInputEncoding('utf-8'); + $worksheetOhnePhsyik->setZoom(85); + + $spalte = 0; + $zeile = 0; + + $worksheetOhnePhsyik->write(0, $spalte, 'PrestudentIn_ID', $format_bold); + $worksheetOhnePhsyik->mergeCells(0, 0, 1, 0); + $maxlength[0] = 15; + $worksheetOhnePhsyik->write(0, ++$spalte, 'Nachname', $format_bold); + $worksheetOhnePhsyik->mergeCells(0, 1, 1, 1); + $maxlength[1] = 15; + $worksheetOhnePhsyik->write(0, ++$spalte, 'Vorname', $format_bold); + $worksheetOhnePhsyik->mergeCells(0, 2, 1, 2); + $maxlength[2] = 15; + $worksheetOhnePhsyik->write(0, ++$spalte, 'GebDatum', $format_bold); + $worksheetOhnePhsyik->mergeCells(0, 3, 1, 3); + $maxlength[3] = 10; + $worksheetOhnePhsyik->write(0, ++$spalte, 'G', $format_bold); + $worksheetOhnePhsyik->mergeCells(0, 4, 1, 4); + $maxlength[4] = 2; + $worksheetOhnePhsyik->write(0, ++$spalte, 'Registriert', $format_bold); + $worksheetOhnePhsyik->mergeCells(0, 5, 1, 5); + $maxlength[5] = 18; + $worksheetOhnePhsyik->write(0, ++$spalte, 'STG', $format_bold); + $worksheetOhnePhsyik->mergeCells(0, 6, 1, 6); + $maxlength[6] = 4; + $worksheetOhnePhsyik->write(0, ++$spalte, 'Studiengang', $format_bold); + $worksheetOhnePhsyik->mergeCells(0, 7, 1, 7); + $maxlength[7] = 25; + $worksheetOhnePhsyik->write(0, ++$spalte, 'S', $format_bold); + $worksheetOhnePhsyik->mergeCells(0, 8, 1, 8); + $maxlength[8] = 2; + $worksheet->write(0, ++$spalte, 'OrgForm', $format_bold); + $worksheet->mergeCells(0, 9, 1, 9); + $maxlength[9] = 8; + $worksheet->write(0, ++$spalte, 'Prio', $format_bold); + $worksheet->mergeCells(0, 10, 1, 10); + $maxlength[10] = 5; + $worksheet->write(0, ++$spalte, 'ZGV', $format_bold); + $worksheet->mergeCells(0, 11, 1, 11); + $maxlength[11] = 20; + $worksheet->write(0, ++$spalte, 'ZGV MA', $format_bold); + $worksheet->mergeCells(0, 12, 1, 12); + $maxlength[12] = 20; + + $spalte = 11; + $zeile = 0; + + foreach ($gebiet AS $gbt) + { + if ($gbt->gebiet_id == 10) + { + continue; + } + ++$spalte; + $worksheetOhnePhsyik->write($zeile, ++$spalte, strip_tags($gbt->name), $format_bold_border); + $worksheetOhnePhsyik->mergeCells($zeile, $spalte, 0, $spalte + 1); + $maxlength[$spalte] = 10; + } + $worksheetOhnePhsyik->write($zeile, ++$spalte + 1, 'Gesamt', $format_bold_border); + $worksheetOhnePhsyik->mergeCells($zeile, ++$spalte, 0, $spalte + 1); + $maxlength[$spalte] = 12; + + $spalte = 12; + $zeile = 0; + + foreach ($gebiet AS $gbt) + { + if ($gbt->gebiet_id == 10) + { + continue; + } + $worksheetOhnePhsyik->write($zeile + 1, ++$spalte, 'Punkte', $format_bold_border); + $worksheetOhnePhsyik->write($zeile + 1, ++$spalte, 'Prozent', $format_bold_border); + $maxlength[$spalte] = 10; + } + $worksheetOhnePhsyik->write($zeile + 1, ++$spalte, 'Punkte', $format_bold_border); + $worksheetOhnePhsyik->write($zeile + 1, ++$spalte, 'Prozent', $format_bold_border); + $maxlength[$spalte] = 10; + + $maxspalten = $spalte; + + $zeile = 1; + $spalte = 0; + + if (isset($ergb)) + { + foreach ($ergb AS $erg) + { + $zeile++; + $spalte = 0; + $worksheetOhnePhsyik->write($zeile, $spalte, $erg->prestudent_id); + $worksheetOhnePhsyik->write($zeile, ++$spalte, $erg->nachname); + $worksheetOhnePhsyik->write($zeile, ++$spalte, $erg->vorname); + $worksheetOhnePhsyik->write($zeile, ++$spalte, $erg->gebdatum, $format_date); + if ($erg->geschlecht == 'm') + { + $worksheetOhnePhsyik->write($zeile, ++$spalte, $erg->geschlecht, $format_male); + } + else + { + $worksheetOhnePhsyik->write($zeile, ++$spalte, $erg->geschlecht, $format_female); + } + $worksheetOhnePhsyik->write($zeile, ++$spalte, $erg->registriert, $format_registriert); + $worksheetOhnePhsyik->write($zeile, ++$spalte, $erg->stg_kurzbz); + $worksheetOhnePhsyik->write($zeile, ++$spalte, $erg->stg_bez); + $worksheetOhnePhsyik->write($zeile, ++$spalte, $erg->ausbildungssemester); + $worksheet->write($zeile, ++$spalte, $erg->orgform); + $worksheet->write($zeile, ++$spalte, $erg->prioritaet); + $worksheetOhnePhsyik->write($zeile, ++$spalte, $zgv_arr[$erg->zgv]); + $worksheetOhnePhsyik->write($zeile, ++$spalte, $zgvma_arr[$erg->zgvma]); + foreach ($gebiet AS $gbt) + { + if ($gbt->gebiet_id == 10) + { + continue; + } + if (isset($erg->gebiet[$gbt->gebiet_id])) + { + if ($erg->gebiet[$gbt->gebiet_id]->punkte != '' && $erg->gebiet[$gbt->gebiet_id]->punkte != '0') + { + $worksheetOhnePhsyik->writeNumber($zeile, ++$spalte, $erg->gebiet[$gbt->gebiet_id]->punkte, $format_punkte); + } + else + { + $worksheetOhnePhsyik->writeNumber($zeile, ++$spalte, $erg->gebiet[$gbt->gebiet_id]->punkte, $format_punkte_rot); + } + if ($erg->gebiet[$gbt->gebiet_id]->prozent != '0%') + { + $worksheetOhnePhsyik->writeNumber($zeile, ++$spalte, $erg->gebiet[$gbt->gebiet_id]->prozent / 100, $format_prozent); + } + else + { + $worksheetOhnePhsyik->writeNumber($zeile, ++$spalte, $erg->gebiet[$gbt->gebiet_id]->prozent / 100, $format_prozent_rot); + } + } + else + { + $worksheetOhnePhsyik->write($zeile, ++$spalte, ''); + $worksheetOhnePhsyik->write($zeile, ++$spalte, ''); + } + } + $worksheetOhnePhsyik->writeNumber($zeile, ++$spalte, $erg->gesamtpunkte_ohne_physik, $format_punkte); + $worksheetOhnePhsyik->writeNumber($zeile, ++$spalte, $erg->gesamt_ohne_physik, $format_punkte); + } + } + + //Die Breite der Spalten setzen + foreach ($maxlength as $i => $breite) + { + $worksheetOhnePhsyik->setColumn($i, $i, $breite); + } + } + + if (isset($erg_kat) && count($erg_kat) > 0) + { + // Creating second worksheet + $worksheet2 =& $workbook->addWorksheet("Persoenlichkeit"); + $worksheet2->setInputEncoding('utf-8'); + $worksheet2->setZoom(85); + + $spalte = 0; + $zeile = 0; + + $worksheet2->write(0, $spalte, 'PrestudentIn_ID', $format_bold); + $worksheet2->mergeCells(0, 0, 1, 0); + $maxlength[0] = 15; + $worksheet2->write(0, ++$spalte, 'Nachname', $format_bold); + $worksheet2->mergeCells(0, 1, 1, 1); + $maxlength[1] = 15; + $worksheet2->write(0, ++$spalte, 'Vorname', $format_bold); + $worksheet2->mergeCells(0, 2, 1, 2); + $maxlength[2] = 15; + $worksheet2->write(0, ++$spalte, 'GebDatum', $format_bold); + $worksheet2->mergeCells(0, 3, 1, 3); + $maxlength[3] = 10; + $worksheet2->write(0, ++$spalte, 'G', $format_bold); + $worksheet2->mergeCells(0, 4, 1, 4); + $maxlength[4] = 2; + $worksheet2->write(0, ++$spalte, 'Registriert', $format_bold); + $worksheet2->mergeCells(0, 5, 1, 5); + $maxlength[5] = 18; + $worksheet2->write(0, ++$spalte, 'STG', $format_bold); + $worksheet2->mergeCells(0, 6, 1, 6); + $maxlength[6] = 4; + $worksheet2->write(0, ++$spalte, 'Studiengang', $format_bold); + $worksheet2->mergeCells(0, 7, 1, 7); + $maxlength[7] = 25; + $worksheet2->write(0, ++$spalte, 'S', $format_bold); + $worksheet2->mergeCells(0, 8, 1, 8); + $maxlength[8] = 2; + $worksheet2->write(0, ++$spalte, 'ZGV', $format_bold); + $worksheet2->mergeCells(0, 9, 1, 9); + $maxlength[9] = 20; + $worksheet2->write(0, ++$spalte, 'ZGV MA', $format_bold); + $worksheet2->mergeCells(0, 10, 1, 10); + $maxlength[10] = 20; + + $spalte = 9; + $zeile = 0; + + foreach ($kategorie AS $gbt) + { + ++$spalte; + $worksheet2->write($zeile, ++$spalte, $gbt->name, $format_bold_border); + $worksheet2->mergeCells($zeile, $spalte, 0, $spalte + 1); + $maxlength[$spalte] = 10; + } + + $spalte = 10; + $zeile = 0; + + foreach ($kategorie AS $gbt) + { + $worksheet2->write($zeile + 1, ++$spalte, 'Punkte', $format_bold_border); + $worksheet2->write($zeile + 1, ++$spalte, 'Typ', $format_bold_border); + $maxlength[$spalte] = 10; + } + + $maxspalten = $spalte; + + $zeile = 1; + $spalte = 0; + + foreach ($erg_kat AS $erg) + { + $zeile++; + $spalte = 0; + $worksheet2->write($zeile, $spalte, $erg->prestudent_id); + $worksheet2->write($zeile, ++$spalte, $erg->nachname); + $worksheet2->write($zeile, ++$spalte, $erg->vorname); + $worksheet2->write($zeile, ++$spalte, $erg->gebdatum, $format_date); + if ($erg->geschlecht == 'm') + { + $worksheet2->write($zeile, ++$spalte, $erg->geschlecht, $format_male); + } + else + { + $worksheet2->write($zeile, ++$spalte, $erg->geschlecht, $format_female); + } + $worksheet2->write($zeile, ++$spalte, $erg->registriert, $format_registriert); + $worksheet2->write($zeile, ++$spalte, $erg->stg_kurzbz); + $worksheet2->write($zeile, ++$spalte, $erg->stg_bez); + $worksheet2->write($zeile, ++$spalte, $erg->ausbildungssemester); + $worksheet2->write($zeile, ++$spalte, $zgv_arr[$erg->zgv]); + $worksheet2->write($zeile, ++$spalte, $zgvma_arr[$erg->zgvma]); + foreach ($kategorie AS $gbt) + { + $worksheet2->write($zeile, ++$spalte, $erg->kategorie[$gbt->name]->punkte); + $worksheet2->write($zeile, ++$spalte, $erg->kategorie[$gbt->name]->typ); + } + } + + //Die Breite der Spalten setzen + foreach ($maxlength as $i => $breite) + { + $worksheet2->setColumn($i, $i, $breite); + } + } + $workbook->close(); +} +else +{ + echo ' + + + + Testtool - Auswertung + + + + + + + + + + + + + + + + '; + + //include('../../include/meta/jquery.php'); + //include('../../include/meta/jquery-tablesorter.php'); + + /*echo ' + + + + ';*/ + echo ' + + + + + +
+

Auswertung Reihungstest

+
+
+
+
+ + + + '; + echo ' +
+ Reihungstest wählen: +
+ Studiengang: + + Semester: + + OrgForm: + '; + + echo ' von Datum:  '; + echo 'bis Datum: '; + echo '
'; + echo 'PrestudentIn: '; + echo '
'; + echo '

'; + echo ' + Excel'; + echo '
+
+ '; + echo ' '; + $displayWarning = false; + $displayInfo = false; + if (isset($rtest[$reihungstest]) && $rtest[$reihungstest]->freigeschaltet === false) + { + $displayWarning = true; + $displayInfo = false; + } + elseif (isset($rtest[$reihungstest]) && $rtest[$reihungstest]->freigeschaltet === true) + { + $displayWarning = false; + $displayInfo = true; + } + echo '
Dieser Reihungstest wurde noch nicht freigeschaltet + +
'; + echo '
Dieser Reihungstest ist freigeschaltet. Bitte sperren Sie ihn nach dem Test + +
'; + if ($messageSuccess != '' || $messageError != '') + { + $display = ''; + if ($messageSuccess != '') + { + $class = 'class="alert alert-success"'; + $message = $messageSuccess; + } + elseif ($messageError != '') + { + $class = 'class="alert alert-danger"'; + $message = $messageError; + } + } + else + { + $display = 'style="display: none"'; + $class = 'class="alert alert-success"'; + $message = ''; + } + echo '
'.$message.'
'; + echo ' '; + echo '
'; + echo '
'; + echo 'Auswahl: '; + if (isset ($_REQUEST['studiengang']) && $_REQUEST['studiengang'] != '') + { + echo $stg_arr[$_REQUEST['studiengang']] . ' '; + } + else + { + echo 'Alle '; + } + if (isset ($_REQUEST['semester']) && $_REQUEST['semester'] != '') + { + echo $semester . '. Semester '; + } + if ($datum_von != '') + { + echo 'von ' . $datum_obj->formatDatum($datum_von, 'd.m.Y'); + } + if ($datum_bis != '') + { + echo ' bis ' . $datum_obj->formatDatum($datum_bis, 'd.m.Y'); + } + if ($prestudent_id != '') + { + echo ' PrestudentID: ' . $prestudent_id; + } + + echo ''; + + echo '

'; + + $berechtigteOes = array(); + foreach ($stg_obj->result AS $stg) + { + if ($stg->typ != 'b') + { + $berechtigteOes[] = $stg->oe_kurzbz; + } + } + echo '
'; + if ($reihungstest != '') + { + $disabled = false; + } + else + { + $disabled = true; + } + // Button um Assistenz über Testende zu informieren + // Nur aktiv, wenn Reihungstest ausgewählt + if ($rechte->isBerechtigtMultipleOe('lehre/reihungstestAufsicht', $berechtigteOes, 'su')) + { + + echo '
'; + } + /*echo ' +
+ + + ';*/ + + // Input um Personen hinzuzufügen + // Nur aktiv, wenn Reihungstest ausgewählt + if ($rechte->isBerechtigt('lehre/reihungstestAufsicht', null, 'sui')) + { + echo ' + + +
+ + + + + + + +
+ + + '; + } + if ($rechte->isBerechtigt('lehre/reihungstestAufsicht', null, 'suid')) + { + echo '
'; + } + echo '
'; + if (isset($_REQUEST['reihungstest'])) + { + echo ' + + + + + + + + + + + + + + + + + + + '; + + foreach ($gebiet AS $gbt) + { + echo ''; + } + + echo ' + + + + + '; + + foreach ($gebiet AS $gbt) + { + echo ""; + echo ""; + } + + echo ''; + + if (isset($ergb) && $ergb != '') + { + foreach ($ergb AS $erg) + { + echo " + + + + + + + + + + + + + + "; + // + echo ' '; + if (!isset($erg->gesamtpunkte_ohne_physik)) + { + $erg->gesamtpunkte_ohne_physik = ''; + } + if (!isset($erg->gesamt_ohne_physik)) + { + $erg->gesamt_ohne_physik = ''; + } + echo ' '; + echo ' '; + echo ' '; + foreach ($gebiet AS $gbt) + { + if (isset($erg->gebiet[$gbt->gebiet_id])) + { + // 0-Werte hervorheben + if ($erg->gebiet[$gbt->gebiet_id]->punkte != '' && $erg->gebiet[$gbt->gebiet_id]->punkte == '0') + { + $style = 'style="color:#C10000; text-align: right; padding-right: 3px"'; + } + else + { + $style = 'style="text-align: right; padding-right: 3px"'; + } + + echo ''; + } + else + { + echo ''; + } + } + + echo ''; + } + } + + echo '
+ + + + + PrestudentIn_IDNachnameVornamenGebDatumGSTGSOFPrioRaumGesamt mit PhysikGesamt ohne Physik' . $gbt->name . '
PunkteProzentPunkteProzentPunkteProzent
+ + $erg->prestudent_id prestudent_id target='blank'>Details$erg->nachname$erg->vorname" . $datum_obj->formatDatum($erg->gebdatum, 'd.m.Y') . "$erg->geschlecht$erg->stg_kurzbz$erg->ausbildungssemester$erg->orgform$erg->prioritaet$erg->raum$erg->idnachweis' . ($erg->gesamtpunkte != '' ? number_format($erg->gesamtpunkte, 2, ',', ' ') : '') . '' . ($erg->gesamt != '' ? number_format($erg->gesamt, 2, ',', ' ') : '') . '' . ($erg->gesamtpunkte_ohne_physik != '' ? number_format($erg->gesamtpunkte_ohne_physik, 2, ',', ' ') : '') . '' . ($erg->gesamt_ohne_physik != '' ? number_format($erg->gesamt_ohne_physik, 2, ',', ' ') : '') . '' . ($erg->gebiet[$gbt->gebiet_id]->punkte != '' ? number_format($erg->gebiet[$gbt->gebiet_id]->punkte, 2, ',', ' ') : '') . '' . ($erg->gebiet[$gbt->gebiet_id]->prozent != '' ? number_format($erg->gebiet[$gbt->gebiet_id]->prozent, 2, ',', ' ') . ' %' : '') . '
'; + } +} +echo '
'; +?> From ecc388fe2df7e611177f6128191ef120aa5ef2c3 Mon Sep 17 00:00:00 2001 From: Manfred Kindl Date: Mon, 18 Mar 2019 11:54:49 +0100 Subject: [PATCH 03/10] =?UTF-8?q?Div.=20=C3=84nderungen=20RT-Verwaltung?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Gesamtliste in EXCEL-Export - Einklappen-Funktion - Spalten mit Punkteberechnung vorläufig ausgeblendet um Seite schneller zu machen --- vilesci/stammdaten/reihungstestverwaltung.php | 965 +++++++++++------- 1 file changed, 579 insertions(+), 386 deletions(-) diff --git a/vilesci/stammdaten/reihungstestverwaltung.php b/vilesci/stammdaten/reihungstestverwaltung.php index a2ecbbc2a..b3e0a3ccc 100644 --- a/vilesci/stammdaten/reihungstestverwaltung.php +++ b/vilesci/stammdaten/reihungstestverwaltung.php @@ -300,257 +300,481 @@ if(isset($_GET['excel'])) if($result = $db->db_query($qry)) { - $ort_kurzbz = '0'; - // Wenn Daten vorhanden - if ($db->db_num_rows($result) > 0) - { - while($row = $db->db_fetch_object($result)) - { - if ($ort_kurzbz == '0' || $ort_kurzbz != $row->ort_kurzbz) - { - // Creating a worksheet - if ($row->ort_kurzbz=='') - $worksheet =& $workbook->addWorksheet("Ohne Raumzuteilung"); - else - $worksheet =& $workbook->addWorksheet("Raum ".$row->ort_kurzbz); - $worksheet->setInputEncoding('utf-8'); - //$worksheet->setZoom (85); - $worksheet->hideScreenGridlines(); - $worksheet->hideGridlines(); - $worksheet->setLandscape(); - $worksheet->centerHorizontally(1); - $worksheet->fitToPages ( 1, 1); - $worksheet->setMargins_LR (0.4); - $worksheet->setMarginTop (0.79); - $worksheet->setMarginBottom (0.59); + $ort_kurzbz = '0'; + // Wenn Daten vorhanden + if ($db->db_num_rows($result) > 0) + { + // Gesamtsheet mit allen TeilnehmerInnen erstellen, danach getrennt nach Raum + $worksheet =& $workbook->addWorksheet("Gesamtliste"); + $worksheet->setInputEncoding('utf-8'); + //$worksheet->setZoom (85); + $worksheet->hideScreenGridlines(); + $worksheet->hideGridlines(); + $worksheet->setLandscape(); + $worksheet->centerHorizontally(1); + $worksheet->fitToPages ( 1, 1); + $worksheet->setMargins_LR (0.4); + $worksheet->setMarginTop (0.79); + $worksheet->setMarginBottom (0.59); - // Titelzeilen - $worksheet->write(0,0,'Anwesenheitsliste Aufnahmetermin vom '.$datum_obj->convertISODate($reihungstest->datum).' '.$reihungstest->uhrzeit.' Uhr, '.$reihungstest->anmerkung.', erstellt am '.date('d.m.Y'), $format_bold); - if ($row->ort_kurzbz=='') - $worksheet->write(1,0,'Ohne Raumzuteilung', $format_bold); - else - $worksheet->write(1,0,'Raum '.$row->ort_kurzbz, $format_bold); - $worksheet->write(2,0,'Studienpläne: '.implode(', ', $studienplaene_arr)); - $worksheet->write(3,0,'Stufe: '.$reihungstest->stufe); - $worksheet->write(4,0,'Testmodule: '.implode(', ', $gebietbezeichnungen)); + // Titelzeilen + $worksheet->write(0,0,'Anwesenheitsliste Aufnahmetermin vom '.$datum_obj->convertISODate($reihungstest->datum).' '.$reihungstest->uhrzeit.' Uhr, '.$reihungstest->anmerkung.', erstellt am '.date('d.m.Y'), $format_bold); + $worksheet->write(2,0,'Studienpläne: '.implode(', ', $studienplaene_arr)); + $worksheet->write(3,0,'Stufe: '.$reihungstest->stufe); + $worksheet->write(4,0,'Testmodule: '.implode(', ', $gebietbezeichnungen)); - //Ueberschriften - $zeile=6; - $col=0; - $worksheet->write($zeile,$col,"Nachname", $format_bold); - $maxlength[$col] = 8; - $worksheet->write($zeile,++$col,"Vorname", $format_bold); - $maxlength[$col] = 7; - $worksheet->write($zeile,++$col,"G", $format_bold); - $maxlength[$col] = 2; - $worksheet->write($zeile,++$col,"Geburtsdatum", $format_bold); - $maxlength[$col] = 12; - $worksheet->write($zeile,++$col,"Studiengang", $format_bold); - $maxlength[$col] = 11; - $worksheet->write($zeile,++$col,"OrgForm", $format_bold); - $maxlength[$col] = 7; - $worksheet->write($zeile,++$col,"S", $format_bold); - $maxlength[$col] = 2; - $worksheet->write($zeile,++$col,"Bereits absolvierte RTs", $format_bold); - $maxlength[$col] = 20; - $worksheet->write($zeile,++$col,"Sonstige Termine", $format_bold); - $maxlength[$col] = 20; - $worksheet->write($zeile,++$col,"EMail", $format_bold); - $maxlength[$col] = 5; - $worksheet->write($zeile,++$col,"Strasse", $format_bold); - $maxlength[$col] = 6; - $worksheet->write($zeile,++$col,"PLZ", $format_bold); - $maxlength[$col] = 3; - $worksheet->write($zeile,++$col,"Ort", $format_bold); - $maxlength[$col] = 3; - $worksheet->write($zeile,++$col,"Unterschrift", $format_bold); - $maxlength[$col] = 30; + //Ueberschriften + $zeile=6; + $col=0; + $worksheet->write($zeile,$col,"Nachname", $format_bold); + $maxlength[$col] = 8; + $worksheet->write($zeile,++$col,"Vorname", $format_bold); + $maxlength[$col] = 7; + $worksheet->write($zeile,++$col,"G", $format_bold); + $maxlength[$col] = 2; + $worksheet->write($zeile,++$col,"Geburtsdatum", $format_bold); + $maxlength[$col] = 12; + $worksheet->write($zeile,++$col,"Studiengang", $format_bold); + $maxlength[$col] = 11; + $worksheet->write($zeile,++$col,"OrgForm", $format_bold); + $maxlength[$col] = 7; + $worksheet->write($zeile,++$col,"S", $format_bold); + $maxlength[$col] = 2; + $worksheet->write($zeile,++$col,"Raumzuteilung", $format_bold); + $maxlength[$col] = 12; + $worksheet->write($zeile,++$col,"Bereits absolvierte RTs", $format_bold); + $maxlength[$col] = 20; + $worksheet->write($zeile,++$col,"Sonstige Termine", $format_bold); + $maxlength[$col] = 20; + $worksheet->write($zeile,++$col,"EMail", $format_bold); + $maxlength[$col] = 5; + $worksheet->write($zeile,++$col,"Strasse", $format_bold); + $maxlength[$col] = 6; + $worksheet->write($zeile,++$col,"PLZ", $format_bold); + $maxlength[$col] = 3; + $worksheet->write($zeile,++$col,"Ort", $format_bold); + $maxlength[$col] = 3; + $worksheet->write($zeile,++$col,"Unterschrift", $format_bold); + $maxlength[$col] = 30; - $ort_kurzbz = $row->ort_kurzbz; - $zeile++; - } + $zeile++; - $pruefling = new pruefling(); - $rt_in_anderen_stg=''; - $erg = ''; - $rt_prestudent_arr = array(); + while($row = $db->db_fetch_object($result)) + { + $pruefling = new pruefling(); + $rt_in_anderen_stg=''; + $erg = ''; + $rt_prestudent_arr = array(); - //Daten ermitteln für Spalte absolvierte Verfahren - $qry_absolvierte_Verfahren = "SELECT - distinct tbl_reihungstest.reihungstest_id, - tbl_pruefling.pruefling_id, - tbl_prestudent.prestudent_id, - tbl_rt_person.person_id - FROM - public.tbl_rt_person - JOIN lehre.tbl_studienplan USING(studienplan_id) - JOIN lehre.tbl_studienordnung USING(studienordnung_id) - JOIN public.tbl_prestudent USING(person_id) - JOIN public.tbl_prestudentstatus USING(studienplan_id, prestudent_id) - JOIN public.tbl_reihungstest ON(tbl_reihungstest.reihungstest_id=tbl_rt_person.rt_id) - LEFT JOIN testtool.tbl_pruefling using(prestudent_id) WHERE - (tbl_rt_person.anmeldedatum is null OR tbl_rt_person.anmeldedatum<=tbl_reihungstest.datum) - AND tbl_reihungstest.datum >=(SELECT min(begintime)::date FROM testtool.tbl_pruefling_frage WHERE pruefling_id=tbl_pruefling.pruefling_id AND tbl_reihungstest.datum>=begintime-'1 days'::interval) AND (tbl_reihungstest.stufe is null or tbl_reihungstest.stufe=1) - AND person_id=".$db->db_add_param($row->person_id, FHC_INTEGER); + //Daten ermitteln für Spalte absolvierte Verfahren + $qry_absolvierte_Verfahren = "SELECT + distinct tbl_reihungstest.reihungstest_id, + tbl_pruefling.pruefling_id, + tbl_prestudent.prestudent_id, + tbl_rt_person.person_id + FROM + public.tbl_rt_person + JOIN lehre.tbl_studienplan USING(studienplan_id) + JOIN lehre.tbl_studienordnung USING(studienordnung_id) + JOIN public.tbl_prestudent USING(person_id) + JOIN public.tbl_prestudentstatus USING(studienplan_id, prestudent_id) + JOIN public.tbl_reihungstest ON(tbl_reihungstest.reihungstest_id=tbl_rt_person.rt_id) + LEFT JOIN testtool.tbl_pruefling using(prestudent_id) WHERE + (tbl_rt_person.anmeldedatum is null OR tbl_rt_person.anmeldedatum<=tbl_reihungstest.datum) + AND tbl_reihungstest.datum >=(SELECT min(begintime)::date FROM testtool.tbl_pruefling_frage WHERE pruefling_id=tbl_pruefling.pruefling_id AND tbl_reihungstest.datum>=begintime-'1 days'::interval) AND (tbl_reihungstest.stufe is null or tbl_reihungstest.stufe=1) + AND person_id=".$db->db_add_param($row->person_id, FHC_INTEGER); - if($result_rt_prestudent = $db->db_query($qry_absolvierte_Verfahren)) - { - while($obj = $db->db_fetch_object($result_rt_prestudent)) - { - array_push($rt_prestudent_arr, $obj); - } - } + if($result_rt_prestudent = $db->db_query($qry_absolvierte_Verfahren)) + { + while($obj = $db->db_fetch_object($result_rt_prestudent)) + { + array_push($rt_prestudent_arr, $obj); + } + } - foreach($rt_prestudent_arr as $item) - { - $pruefling->getPruefling($item->prestudent_id); - $rt = new Reihungstest(); - $rt->load($item->reihungstest_id); - $rt_letztes_login = $datum_obj->formatDatum($pruefling->registriert, 'Y-m-d'); - $rt_antrittstermin = $datum_obj->formatDatum($rt->datum, 'Y-m-d'); + foreach($rt_prestudent_arr as $item) + { + $pruefling->getPruefling($item->prestudent_id); + $rt = new Reihungstest(); + $rt->load($item->reihungstest_id); + $rt_letztes_login = $datum_obj->formatDatum($pruefling->registriert, 'Y-m-d'); + $rt_antrittstermin = $datum_obj->formatDatum($rt->datum, 'Y-m-d'); - if($item->prestudent_id!=$row->prestudent_id || $rt_letztes_login < $rt_antrittstermin) - { - if(defined('FAS_REIHUNGSTEST_PUNKTE') && FAS_REIHUNGSTEST_PUNKTE) - $erg = $pruefling->getReihungstestErgebnisPrestudent($item->prestudent_id, true, $item->reihungstest_id); - else - $erg = $pruefling->getReihungstestErgebnisPrestudent($item->prestudent_id, false, $item->reihungstest_id); + if($item->prestudent_id!=$row->prestudent_id || $rt_letztes_login < $rt_antrittstermin) + { + if(defined('FAS_REIHUNGSTEST_PUNKTE') && FAS_REIHUNGSTEST_PUNKTE) + $erg = $pruefling->getReihungstestErgebnisPrestudent($item->prestudent_id, true, $item->reihungstest_id); + else + $erg = $pruefling->getReihungstestErgebnisPrestudent($item->prestudent_id, false, $item->reihungstest_id); - if($erg!==false) - { - $rt_in_anderen_stg.=number_format($erg,2).((FAS_REIHUNGSTEST_PUNKTE) ? ' Punkte' : ' %').' im Studiengang '.$studiengang->kuerzel_arr[$pruefling->studiengang_kz]."\n"; + if($erg!==false) + { + $rt_in_anderen_stg.=number_format($erg,2).((FAS_REIHUNGSTEST_PUNKTE) ? ' Punkte' : ' %').' im Studiengang '.$studiengang->kuerzel_arr[$pruefling->studiengang_kz]."\n"; - if ($item->prestudent_id == $row->prestudent_id && $rt_letztes_login < $rt_antrittstermin) - { - $rt_in_anderen_stg .= '(Letzter '.$studiengang->kuerzel_arr[$pruefling->studiengang_kz].'-Antritt: '.$datum_obj->formatDatum($rt_letztes_login, 'd.m.Y').'), '; - } - } - } - } + if ($item->prestudent_id == $row->prestudent_id && $rt_letztes_login < $rt_antrittstermin) + { + $rt_in_anderen_stg .= '(Letzter '.$studiengang->kuerzel_arr[$pruefling->studiengang_kz].'-Antritt: '.$datum_obj->formatDatum($rt_letztes_login, 'd.m.Y').'), '; + } + } + } + } - $weitere_zuteilungen = array(); - $qry_zuteilungen = " - SELECT - DISTINCT tbl_studienplan.bezeichnung, tbl_reihungstest.datum, tbl_rt_person.studienplan_id - FROM - public.tbl_rt_person JOIN public.tbl_reihungstest ON (rt_id = reihungstest_id) - JOIN lehre.tbl_studienplan USING (studienplan_id) - JOIN testtool.tbl_ablauf USING (studienplan_id) - WHERE - person_id=".$db->db_add_param($row->person_id)." - AND studiensemester_kurzbz=".$db->db_add_param($reihungstest->studiensemester_kurzbz)." - ORDER BY bezeichnung"; + $weitere_zuteilungen = array(); + $qry_zuteilungen = " + SELECT + DISTINCT tbl_studienplan.bezeichnung, tbl_reihungstest.datum, tbl_rt_person.studienplan_id + FROM + public.tbl_rt_person JOIN public.tbl_reihungstest ON (rt_id = reihungstest_id) + JOIN lehre.tbl_studienplan USING (studienplan_id) + JOIN testtool.tbl_ablauf USING (studienplan_id) + WHERE + person_id=".$db->db_add_param($row->person_id)." + AND studiensemester_kurzbz=".$db->db_add_param($reihungstest->studiensemester_kurzbz)." + ORDER BY bezeichnung"; - if($result_zuteilungen = $db->db_query($qry_zuteilungen)) - { - while($row_zuteilungen = $db->db_fetch_object($result_zuteilungen)) - { - $testmodule = array(); - $qry_gebiete = "SELECT gebiet_id, bezeichnung, reihung FROM testtool.tbl_ablauf JOIN testtool.tbl_gebiet USING (gebiet_id) WHERE studienplan_id = ".$db->db_add_param($row_zuteilungen->studienplan_id)." ORDER BY reihung"; - if($result_gebiete = $db->db_query($qry_gebiete)) - { - while($row_gebiete = $db->db_fetch_object($result_gebiete)) - { - $testmodule[$row_gebiete->gebiet_id] = $row_gebiete->bezeichnung; - } - } - $weitere_zuteilungen[] = $row_zuteilungen->bezeichnung.' am '.$datum_obj->formatDatum($row_zuteilungen->datum, 'd.m.Y').' ('.implode(', ', $testmodule).')'; - } - } + if($result_zuteilungen = $db->db_query($qry_zuteilungen)) + { + while($row_zuteilungen = $db->db_fetch_object($result_zuteilungen)) + { + $testmodule = array(); + $qry_gebiete = "SELECT gebiet_id, bezeichnung, reihung FROM testtool.tbl_ablauf JOIN testtool.tbl_gebiet USING (gebiet_id) WHERE studienplan_id = ".$db->db_add_param($row_zuteilungen->studienplan_id)." ORDER BY reihung"; + if($result_gebiete = $db->db_query($qry_gebiete)) + { + while($row_gebiete = $db->db_fetch_object($result_gebiete)) + { + $testmodule[$row_gebiete->gebiet_id] = $row_gebiete->bezeichnung; + } + } + $weitere_zuteilungen[] = $row_zuteilungen->bezeichnung.' am '.$datum_obj->formatDatum($row_zuteilungen->datum, 'd.m.Y').' ('.implode(', ', $testmodule).')'; + } + } - $col=0; + $col=0; - $worksheet->write($zeile,$col,$row->nachname, $format_border); - if(strlen($row->nachname)>$maxlength[$col]) - $maxlength[$col] = strlen($row->nachname); + $worksheet->write($zeile,$col,$row->nachname, $format_border); + if(strlen($row->nachname)>$maxlength[$col]) + $maxlength[$col] = strlen($row->nachname); - $worksheet->write($zeile,++$col, $row->vorname, $format_border); - if(strlen($row->vorname)>$maxlength[$col]) - $maxlength[$col] = strlen($row->vorname); + $worksheet->write($zeile,++$col, $row->vorname, $format_border); + if(strlen($row->vorname)>$maxlength[$col]) + $maxlength[$col] = strlen($row->vorname); - $worksheet->write($zeile,++$col, $row->geschlecht, $format_border_center); - if(strlen($row->geschlecht)>$maxlength[$col]) - $maxlength[$col] = strlen($row->geschlecht); + $worksheet->write($zeile,++$col, $row->geschlecht, $format_border_center); + if(strlen($row->geschlecht)>$maxlength[$col]) + $maxlength[$col] = strlen($row->geschlecht); - $worksheet->write($zeile,++$col,$datum_obj->convertISODate($row->gebdatum), $format_border); - if(strlen($row->gebdatum)>$maxlength[$col]) - $maxlength[$col] = strlen($row->gebdatum); + $worksheet->write($zeile,++$col,$datum_obj->convertISODate($row->gebdatum), $format_border); + if(strlen($row->gebdatum)>$maxlength[$col]) + $maxlength[$col] = strlen($row->gebdatum); - $worksheet->write($zeile,++$col,$studiengang->kuerzel_arr[$row->studiengang_kz], $format_border); - if(strlen($studiengang->kuerzel_arr[$row->studiengang_kz])>$maxlength[$col]) - $maxlength[$col] = strlen($studiengang->kuerzel_arr[$row->studiengang_kz]); + $worksheet->write($zeile,++$col,$studiengang->kuerzel_arr[$row->studiengang_kz], $format_border); + if(strlen($studiengang->kuerzel_arr[$row->studiengang_kz])>$maxlength[$col]) + $maxlength[$col] = strlen($studiengang->kuerzel_arr[$row->studiengang_kz]); - $worksheet->write($zeile,++$col,$row->orgform_kurzbz, $format_border); - if(strlen($row->orgform_kurzbz)>$maxlength[$col]) - $maxlength[$col] = strlen($row->orgform_kurzbz); + $worksheet->write($zeile,++$col,$row->orgform_kurzbz, $format_border); + if(strlen($row->orgform_kurzbz)>$maxlength[$col]) + $maxlength[$col] = strlen($row->orgform_kurzbz); - $worksheet->write($zeile,++$col,$row->ausbildungssemester, $format_border_center); - if(strlen($row->ausbildungssemester)>$maxlength[$col]) - $maxlength[$col] = strlen($row->ausbildungssemester); + $worksheet->write($zeile,++$col,$row->ausbildungssemester, $format_border_center); + if(strlen($row->ausbildungssemester)>$maxlength[$col]) + $maxlength[$col] = strlen($row->ausbildungssemester); - $worksheet->write($zeile,++$col,$rt_in_anderen_stg, $format_border); - if(strlen($rt_in_anderen_stg)>$maxlength[$col]) - $maxlength[$col] = strlen($rt_in_anderen_stg); + $worksheet->write($zeile,++$col,($row->ort_kurzbz != '' ? $row->ort_kurzbz : 'Ohne'), $format_border); + if(strlen($row->ort_kurzbz)>$maxlength[$col]) + $maxlength[$col] = strlen($row->ort_kurzbz); - $worksheet->write($zeile,++$col,implode("\n", $weitere_zuteilungen), $format_border); - foreach ($weitere_zuteilungen as $items) - { - if (strlen($items)>$maxlength[$col]) - $maxlength[$col] = strlen($items); - } + $worksheet->write($zeile,++$col,$rt_in_anderen_stg, $format_border); + if(strlen($rt_in_anderen_stg)>$maxlength[$col]) + $maxlength[$col] = strlen($rt_in_anderen_stg); - $worksheet->write($zeile,++$col,$row->email, $format_border); - if(strlen($row->email)>$maxlength[$col]) - $maxlength[$col] = strlen($row->email); + $worksheet->write($zeile,++$col,implode("\n", $weitere_zuteilungen), $format_border); + foreach ($weitere_zuteilungen as $items) + { + if (strlen($items)>$maxlength[$col]) + $maxlength[$col] = strlen($items); + } - $adresse = new adresse(); - $adresse->loadZustellAdresse($row->person_id); + $worksheet->write($zeile,++$col,$row->email, $format_border); + if(strlen($row->email)>$maxlength[$col]) + $maxlength[$col] = strlen($row->email); - $worksheet->write($zeile,++$col,$adresse->strasse, $format_border); - if(strlen($adresse->strasse)>$maxlength[$col]) - $maxlength[$col] = strlen($adresse->strasse); + $adresse = new adresse(); + $adresse->loadZustellAdresse($row->person_id); - $worksheet->write($zeile,++$col,$adresse->plz, $format_border_left); - if(strlen($adresse->plz)>$maxlength[$col]) - $maxlength[$col] = strlen($adresse->plz); + $worksheet->write($zeile,++$col,$adresse->strasse, $format_border); + if(strlen($adresse->strasse)>$maxlength[$col]) + $maxlength[$col] = strlen($adresse->strasse); - $worksheet->write($zeile,++$col,$adresse->ort, $format_border); - if(strlen($adresse->ort)>$maxlength[$col]) - $maxlength[$col] = strlen($adresse->ort); + $worksheet->write($zeile,++$col,$adresse->plz, $format_border_left); + if(strlen($adresse->plz)>$maxlength[$col]) + $maxlength[$col] = strlen($adresse->plz); - $worksheet->write($zeile,++$col,'', $format_border); + $worksheet->write($zeile,++$col,$adresse->ort, $format_border); + if(strlen($adresse->ort)>$maxlength[$col]) + $maxlength[$col] = strlen($adresse->ort); - if(count($weitere_zuteilungen)>2) - $worksheet->setRow($zeile, count($weitere_zuteilungen)*14); - else - $worksheet->setRow($zeile, 35); + $worksheet->write($zeile,++$col,'', $format_border); - $zeile++; + if(count($weitere_zuteilungen)>2) + $worksheet->setRow($zeile, count($weitere_zuteilungen)*14); + else + $worksheet->setRow($zeile, 35); - //Die Breite der Spalten setzen - foreach($maxlength as $col=>$breite) - $worksheet->setColumn($col, $col, $breite+2); - } - } - else - { - // Creating a worksheet - $worksheet =& $workbook->addWorksheet("Keine Daten"); - $worksheet->setInputEncoding('utf-8'); - $worksheet->hideScreenGridlines(); - $worksheet->hideGridlines(); - $worksheet->setLandscape(); - $worksheet->centerHorizontally(1); - $worksheet->fitToPages ( 1, 1); - $worksheet->setMargins_LR (0.4); - $worksheet->setMarginTop (0.79); - $worksheet->setMarginBottom (0.59); + $zeile++; - // Titelzeilen - $worksheet->write(0,0,'Anwesenheitsliste Aufnahmetermin vom '.$datum_obj->convertISODate($reihungstest->datum).' '.$reihungstest->uhrzeit.' Uhr, '.$reihungstest->anmerkung.', erstellt am '.date('d.m.Y'), $format_bold); + //Die Breite der Spalten setzen + foreach($maxlength as $col=>$breite) + $worksheet->setColumn($col, $col, $breite+2); + } + $i = 0; + while($i < $db->db_num_rows($result ) && $rowRaeume = $db->db_fetch_object($result, $i)) + { + $i++; + if ($ort_kurzbz == '0' || $ort_kurzbz != $rowRaeume->ort_kurzbz) + { + // Creating a worksheet + if ($rowRaeume->ort_kurzbz=='') + $worksheet =& $workbook->addWorksheet("Ohne Raumzuteilung"); + else + $worksheet =& $workbook->addWorksheet("Raum ".$rowRaeume->ort_kurzbz); + $worksheet->setInputEncoding('utf-8'); + //$worksheet->setZoom (85); + $worksheet->hideScreenGridlines(); + $worksheet->hideGridlines(); + $worksheet->setLandscape(); + $worksheet->centerHorizontally(1); + $worksheet->fitToPages ( 1, 1); + $worksheet->setMargins_LR (0.4); + $worksheet->setMarginTop (0.79); + $worksheet->setMarginBottom (0.59); - $worksheet->write(3,0,'Keine BewerberInnen zugeteilt', $format_bold); - } + // Titelzeilen + $worksheet->write(0,0,'Anwesenheitsliste Aufnahmetermin vom '.$datum_obj->convertISODate($reihungstest->datum).' '.$reihungstest->uhrzeit.' Uhr, '.$reihungstest->anmerkung.', erstellt am '.date('d.m.Y'), $format_bold); + if ($rowRaeume->ort_kurzbz=='') + $worksheet->write(1,0,'Ohne Raumzuteilung', $format_bold); + else + $worksheet->write(1,0,'Raum '.$rowRaeume->ort_kurzbz, $format_bold); + $worksheet->write(2,0,'Studienpläne: '.implode(', ', $studienplaene_arr)); + $worksheet->write(3,0,'Stufe: '.$reihungstest->stufe); + $worksheet->write(4,0,'Testmodule: '.implode(', ', $gebietbezeichnungen)); + + //Ueberschriften + $zeile=6; + $col=0; + $worksheet->write($zeile,$col,"Nachname", $format_bold); + $maxlength[$col] = 8; + $worksheet->write($zeile,++$col,"Vorname", $format_bold); + $maxlength[$col] = 7; + $worksheet->write($zeile,++$col,"G", $format_bold); + $maxlength[$col] = 2; + $worksheet->write($zeile,++$col,"Geburtsdatum", $format_bold); + $maxlength[$col] = 12; + $worksheet->write($zeile,++$col,"Studiengang", $format_bold); + $maxlength[$col] = 11; + $worksheet->write($zeile,++$col,"OrgForm", $format_bold); + $maxlength[$col] = 7; + $worksheet->write($zeile,++$col,"S", $format_bold); + $maxlength[$col] = 2; + $worksheet->write($zeile,++$col,"Bereits absolvierte RTs", $format_bold); + $maxlength[$col] = 20; + $worksheet->write($zeile,++$col,"Sonstige Termine", $format_bold); + $maxlength[$col] = 20; + $worksheet->write($zeile,++$col,"EMail", $format_bold); + $maxlength[$col] = 5; + $worksheet->write($zeile,++$col,"Strasse", $format_bold); + $maxlength[$col] = 6; + $worksheet->write($zeile,++$col,"PLZ", $format_bold); + $maxlength[$col] = 3; + $worksheet->write($zeile,++$col,"Ort", $format_bold); + $maxlength[$col] = 3; + $worksheet->write($zeile,++$col,"Unterschrift", $format_bold); + $maxlength[$col] = 30; + + $ort_kurzbz = $rowRaeume->ort_kurzbz; + $zeile++; + } + + $pruefling = new pruefling(); + $rt_in_anderen_stg=''; + $erg = ''; + $rt_prestudent_arr = array(); + + //Daten ermitteln für Spalte absolvierte Verfahren + $qry_absolvierte_Verfahren = "SELECT + distinct tbl_reihungstest.reihungstest_id, + tbl_pruefling.pruefling_id, + tbl_prestudent.prestudent_id, + tbl_rt_person.person_id + FROM + public.tbl_rt_person + JOIN lehre.tbl_studienplan USING(studienplan_id) + JOIN lehre.tbl_studienordnung USING(studienordnung_id) + JOIN public.tbl_prestudent USING(person_id) + JOIN public.tbl_prestudentstatus USING(studienplan_id, prestudent_id) + JOIN public.tbl_reihungstest ON(tbl_reihungstest.reihungstest_id=tbl_rt_person.rt_id) + LEFT JOIN testtool.tbl_pruefling using(prestudent_id) WHERE + (tbl_rt_person.anmeldedatum is null OR tbl_rt_person.anmeldedatum<=tbl_reihungstest.datum) + AND tbl_reihungstest.datum >=(SELECT min(begintime)::date FROM testtool.tbl_pruefling_frage WHERE pruefling_id=tbl_pruefling.pruefling_id AND tbl_reihungstest.datum>=begintime-'1 days'::interval) AND (tbl_reihungstest.stufe is null or tbl_reihungstest.stufe=1) + AND person_id=".$db->db_add_param($rowRaeume->person_id, FHC_INTEGER); + + if($result_rt_prestudent = $db->db_query($qry_absolvierte_Verfahren)) + { + while($obj = $db->db_fetch_object($result_rt_prestudent)) + { + array_push($rt_prestudent_arr, $obj); + } + } + + foreach($rt_prestudent_arr as $item) + { + $pruefling->getPruefling($item->prestudent_id); + $rt = new Reihungstest(); + $rt->load($item->reihungstest_id); + $rt_letztes_login = $datum_obj->formatDatum($pruefling->registriert, 'Y-m-d'); + $rt_antrittstermin = $datum_obj->formatDatum($rt->datum, 'Y-m-d'); + + if($item->prestudent_id!=$rowRaeume->prestudent_id || $rt_letztes_login < $rt_antrittstermin) + { + if(defined('FAS_REIHUNGSTEST_PUNKTE') && FAS_REIHUNGSTEST_PUNKTE) + $erg = $pruefling->getReihungstestErgebnisPrestudent($item->prestudent_id, true, $item->reihungstest_id); + else + $erg = $pruefling->getReihungstestErgebnisPrestudent($item->prestudent_id, false, $item->reihungstest_id); + + if($erg!==false) + { + $rt_in_anderen_stg.=number_format($erg,2).((FAS_REIHUNGSTEST_PUNKTE) ? ' Punkte' : ' %').' im Studiengang '.$studiengang->kuerzel_arr[$pruefling->studiengang_kz]."\n"; + + if ($item->prestudent_id == $rowRaeume->prestudent_id && $rt_letztes_login < $rt_antrittstermin) + { + $rt_in_anderen_stg .= '(Letzter '.$studiengang->kuerzel_arr[$pruefling->studiengang_kz].'-Antritt: '.$datum_obj->formatDatum($rt_letztes_login, 'd.m.Y').'), '; + } + } + } + } + + $weitere_zuteilungen = array(); + $qry_zuteilungen = " + SELECT + DISTINCT tbl_studienplan.bezeichnung, tbl_reihungstest.datum, tbl_rt_person.studienplan_id + FROM + public.tbl_rt_person JOIN public.tbl_reihungstest ON (rt_id = reihungstest_id) + JOIN lehre.tbl_studienplan USING (studienplan_id) + JOIN testtool.tbl_ablauf USING (studienplan_id) + WHERE + person_id=".$db->db_add_param($rowRaeume->person_id)." + AND studiensemester_kurzbz=".$db->db_add_param($reihungstest->studiensemester_kurzbz)." + ORDER BY bezeichnung"; + + if($result_zuteilungen = $db->db_query($qry_zuteilungen)) + { + while($row_zuteilungen = $db->db_fetch_object($result_zuteilungen)) + { + $testmodule = array(); + $qry_gebiete = "SELECT gebiet_id, bezeichnung, reihung FROM testtool.tbl_ablauf JOIN testtool.tbl_gebiet USING (gebiet_id) WHERE studienplan_id = ".$db->db_add_param($row_zuteilungen->studienplan_id)." ORDER BY reihung"; + if($result_gebiete = $db->db_query($qry_gebiete)) + { + while($row_gebiete = $db->db_fetch_object($result_gebiete)) + { + $testmodule[$row_gebiete->gebiet_id] = $row_gebiete->bezeichnung; + } + } + $weitere_zuteilungen[] = $row_zuteilungen->bezeichnung.' am '.$datum_obj->formatDatum($row_zuteilungen->datum, 'd.m.Y').' ('.implode(', ', $testmodule).')'; + } + } + + $col=0; + + $worksheet->write($zeile,$col,$rowRaeume->nachname, $format_border); + if(strlen($rowRaeume->nachname)>$maxlength[$col]) + $maxlength[$col] = strlen($rowRaeume->nachname); + + $worksheet->write($zeile,++$col, $rowRaeume->vorname, $format_border); + if(strlen($rowRaeume->vorname)>$maxlength[$col]) + $maxlength[$col] = strlen($rowRaeume->vorname); + + $worksheet->write($zeile,++$col, $rowRaeume->geschlecht, $format_border_center); + if(strlen($rowRaeume->geschlecht)>$maxlength[$col]) + $maxlength[$col] = strlen($rowRaeume->geschlecht); + + $worksheet->write($zeile,++$col,$datum_obj->convertISODate($rowRaeume->gebdatum), $format_border); + if(strlen($rowRaeume->gebdatum)>$maxlength[$col]) + $maxlength[$col] = strlen($rowRaeume->gebdatum); + + $worksheet->write($zeile,++$col,$studiengang->kuerzel_arr[$rowRaeume->studiengang_kz], $format_border); + if(strlen($studiengang->kuerzel_arr[$rowRaeume->studiengang_kz])>$maxlength[$col]) + $maxlength[$col] = strlen($studiengang->kuerzel_arr[$rowRaeume->studiengang_kz]); + + $worksheet->write($zeile,++$col,$rowRaeume->orgform_kurzbz, $format_border); + if(strlen($rowRaeume->orgform_kurzbz)>$maxlength[$col]) + $maxlength[$col] = strlen($rowRaeume->orgform_kurzbz); + + $worksheet->write($zeile,++$col,$rowRaeume->ausbildungssemester, $format_border_center); + if(strlen($rowRaeume->ausbildungssemester)>$maxlength[$col]) + $maxlength[$col] = strlen($rowRaeume->ausbildungssemester); + + $worksheet->write($zeile,++$col,$rt_in_anderen_stg, $format_border); + if(strlen($rt_in_anderen_stg)>$maxlength[$col]) + $maxlength[$col] = strlen($rt_in_anderen_stg); + + $worksheet->write($zeile,++$col,implode("\n", $weitere_zuteilungen), $format_border); + foreach ($weitere_zuteilungen as $items) + { + if (strlen($items)>$maxlength[$col]) + $maxlength[$col] = strlen($items); + } + + $worksheet->write($zeile,++$col,$rowRaeume->email, $format_border); + if(strlen($rowRaeume->email)>$maxlength[$col]) + $maxlength[$col] = strlen($rowRaeume->email); + + $adresse = new adresse(); + $adresse->loadZustellAdresse($rowRaeume->person_id); + + $worksheet->write($zeile,++$col,$adresse->strasse, $format_border); + if(strlen($adresse->strasse)>$maxlength[$col]) + $maxlength[$col] = strlen($adresse->strasse); + + $worksheet->write($zeile,++$col,$adresse->plz, $format_border_left); + if(strlen($adresse->plz)>$maxlength[$col]) + $maxlength[$col] = strlen($adresse->plz); + + $worksheet->write($zeile,++$col,$adresse->ort, $format_border); + if(strlen($adresse->ort)>$maxlength[$col]) + $maxlength[$col] = strlen($adresse->ort); + + $worksheet->write($zeile,++$col,'', $format_border); + + if(count($weitere_zuteilungen)>2) + $worksheet->setRow($zeile, count($weitere_zuteilungen)*14); + else + $worksheet->setRow($zeile, 35); + + $zeile++; + + //Die Breite der Spalten setzen + foreach($maxlength as $col=>$breite) + $worksheet->setColumn($col, $col, $breite+2); + } + } + else + { + // Creating a worksheet + $worksheet =& $workbook->addWorksheet("Keine Daten"); + $worksheet->setInputEncoding('utf-8'); + $worksheet->hideScreenGridlines(); + $worksheet->hideGridlines(); + $worksheet->setLandscape(); + $worksheet->centerHorizontally(1); + $worksheet->fitToPages ( 1, 1); + $worksheet->setMargins_LR (0.4); + $worksheet->setMarginTop (0.79); + $worksheet->setMarginBottom (0.59); + + // Titelzeilen + $worksheet->write(0,0,'Anwesenheitsliste Aufnahmetermin vom '.$datum_obj->convertISODate($reihungstest->datum).' '.$reihungstest->uhrzeit.' Uhr, '.$reihungstest->anmerkung.', erstellt am '.date('d.m.Y'), $format_bold); + + $worksheet->write(3,0,'Keine BewerberInnen zugeteilt', $format_bold); + } } $workbook->close(); } @@ -740,42 +964,27 @@ if(isset($_GET['excel'])) else if ( == 'true' && document.getElementById('clm_absolviert').className == 'inactive' && document.getElementById('clm_ergebnis').className == 'inactive') window.location.href = ""; }); - if (window.localStorage && window.localStorage !== 'undefined') - { - if (typeof(Storage) !== 'undefined') - { - var arr = ['clm_prestudent_id','clm_person_id','clm_geschlecht','clm_studiengang','clm_studienplan','clm_orgform','clm_einstiegssemester','clm_geburtsdatum','clm_email','clm_absolviert','clm_ergebnis','clm_fas']; - for (var i in arr) - { - i = arr[i]; - if (localStorage.getItem(i) != null) - { - $('.'+i).css('display', localStorage.getItem(i)); - var element = document.getElementById(i); - if (typeof(element) != 'undefined' && element != null) - { - if (localStorage.getItem(i) == 'none') - document.getElementById(i).className = 'inactive'; - else - document.getElementById(i).className = 'active'; - } - } - } - } - else - { - alert('Local Storage nicht unterstuetzt'); - } - } $(".tablesorter").each(function(i,v) { $("#"+v.id).tablesorter( - { - widgets: ["zebra", "filter", "stickyHeaders"], - sortList: [[3,0],[4,0]], - headers: {0: { sorter: false}} - }); + { + widgets: ["zebra", "filter", "stickyHeaders"], + sortList: [[3,0],[4,0]], + headers: {0: { sorter: false}}, + widgetOptions: {filter_cssFilter: [ + "filter_clm_null", + "filter_clm_person_id", + "filter_clm_null", + "filter_clm_vorname", + "filter_clm_geschlecht", + "filter_clm_studiengang", + "filter_clm_orgform", + "filter_clm_studienplan", + "filter_clm_einstiegssemester", + "filter_clm_geburtsdatum", + "filter_clm_email"]} + }); $("#toggle_"+v.id).on('click', function(e) { $("#"+v.id).checkboxes('toggle'); @@ -798,6 +1007,58 @@ if(isset($_GET['excel'])) $("#"+v.id).checkboxes('range', true); }); + if (window.localStorage && window.localStorage !== 'undefined') + { + if (typeof(Storage) !== 'undefined') + { + var arr = ['clm_null', + 'clm_person_id', + 'clm_null', + 'clm_vorname', + 'clm_geschlecht', + 'clm_studiengang', + 'clm_orgform', + 'clm_studienplan', + 'clm_einstiegssemester', + 'clm_geburtsdatum', + 'clm_email']; + for (var i in arr) + { + i = arr[i]; + if (localStorage.getItem(i) != null) + { + $('.'+i).css('display', localStorage.getItem(i)); + $('.filter_'+i).parent().css('display', localStorage.getItem(i)); + var element = document.getElementById(i); + if (typeof(element) != 'undefined' && element != null) + { + if (localStorage.getItem(i) == 'none') + document.getElementById(i).className = 'inactive'; + else + document.getElementById(i).className = 'active'; + } + } + } + + var state = localStorage.getItem('bearbeitenForm'); + if (state == 'none') + { + $('#bearbeitenForm').hide(); + $('#toggle_bearbeitenForm').html('Ausklappen'); + } + else + { + $('#bearbeitenForm').show(); + $('#toggle_bearbeitenForm').html('Einklappen'); + } + + } + else + { + alert('Local Storage nicht unterstuetzt'); + } + } + $('.errorMessage').click(function() { $(".errorMessage").fadeTo(500, 0).slideUp(500, function(){ @@ -812,6 +1073,22 @@ if(isset($_GET['excel'])) else $("#mailSendButton").html('Mail an alle senden'); }); + + $('#toggle_bearbeitenForm').click(function() + { + $('#bearbeitenForm').toggle(); + var state = $('#bearbeitenForm').css('display'); + localStorage.setItem('bearbeitenForm', state); + + if ($('#bearbeitenForm').css('display') == 'none') + { + $('#toggle_bearbeitenForm').html('Ausklappen'); + } + else + { + $('#toggle_bearbeitenForm').html('Einklappen'); + } + }); }); window.setTimeout(function() @@ -829,15 +1106,20 @@ if(isset($_GET['excel'])) if ($('.'+column).css('display') == 'table-cell') { $('.'+column).css('display', 'none'); + $('.filter_'+column).parent().css('display', 'none'); localStorage.setItem(column, 'none'); if (localStorage.getItem(column) == 'none') + { document.getElementById(column).className = 'inactive'; + } else document.getElementById(column).className = 'active'; } else { $('.'+column).css('display', 'table-cell'); + $('.tablesorter').trigger('filterReset'); + $('.filter_'+column).parent().css('display', 'table-cell'); localStorage.setItem(column, 'table-cell'); if (localStorage.getItem(column) == 'none') document.getElementById(column).className = 'inactive'; @@ -1431,99 +1713,6 @@ if(isset($_GET['type']) && $_GET['type']=='saveallrtpunkte') } } - -// Informiert die Studiengangsassistenz über das Ende des Tests -if(isset($_GET['type']) && $_GET['type']=='informAssistance') -{ - // Alle Studiengänge holen, bei denen der Bewerber Interessent ist, die Bewerbung abgeschickt hat und bestätigt wurde - // Mail an alle diese Studiengänge senden - - $reihungstest = new reihungstest($reihungstest_id); - $reihungstest->getPersonenReihungstest($reihungstest_id); - $preStudentenArray = array(); - - foreach ($reihungstest->result AS $row) - { - $prestudent = new prestudent(); - $prestudent->getPrestudenten($row->person_id); - - foreach ($prestudent->result AS $prest) - { - $prestudentrolle = new prestudent(); - $prestudentrolle->getLastStatus($prest->prestudent_id, $reihungstest->studiensemester_kurzbz, 'Interessent'); - $stg = new studiengang($prest->studiengang_kz); - $hoechtePrestPrio = new prestudent(); - $hoechtePrestPrio->getPriorisierungPersonStudiensemester($prest->person_id, $reihungstest->studiensemester_kurzbz, 'priorisierung ASC NULLS LAST'); - - if ($prestudentrolle->bewerbung_abgeschicktamum != '' - && $prestudentrolle->bestaetigtam != '' - && $prestudentrolle->bestaetigtvon != '' - && $stg->typ == 'b') - { - $preStudentenArray[$prest->studiengang_kz][] = array( 'prestudent_id' => $prest->prestudent_id, - 'priorisierung' => $prest->priorisierung, - 'hoechstePrio' => $hoechtePrestPrio->priorisierung, - 'studiengangHoechstePrio' => $hoechtePrestPrio->studiengang_kz - ); - } - } - } - - foreach ($preStudentenArray AS $studiengang_kz => $prestudentPrioPair) - { - $empfaenger = getMailEmpfaenger($studiengang_kz); - $mailtext = 'Folgende InteressentInnen für das '.$reihungstest->studiensemester_kurzbz.' haben am Reihungstest '.$datum_obj->convertISODate($reihungstest->datum).' '.$datum_obj->formatDatum($reihungstest->uhrzeit,'H:i').' Uhr teilgenommen'; - // Wenn MAIL_DEBUG aktiv ist, zeige auch den Empfänger an - if(defined('MAIL_DEBUG') && MAIL_DEBUG != '') - { - $mailtext .= '

Empfänger: '.$empfaenger.'

'; - } - $mailtext .= 'Vorname, Nachname, Priorisierung (höchste Prio, Prio in diesem Studiengang)
'; - foreach ($prestudentPrioPair AS $value) - { - $mailtext .= 'ID:'.$value['prestudent_id'].' Prio:'.$value['priorisierung'].' Studiengang mit der höchsten Priorität: '.$value['studiengangHoechstePrio'].'
'; - } - - $mailtext .= '
Link zur Auswertung'; - - $mailtext = wordwrap($mailtext, 70); // Bricht den Code um, da es sonst zu Anzeigefehlern im Mail kommen kann - - $mail = new mail($empfaenger, 'no-reply', 'Reihungstest-Auswertung', 'Bitte sehen Sie sich die Nachricht in HTML Sicht an, um den Link vollständig darzustellen.'); - $mail->setHTMLContent($mailtext); - if (!$mail->send()) - { - $messageError .= '

Fehler beim Senden der Nachricht an: '.$empfaenger.'

'; - } - else - { - $messageSuccess .= '

Nachricht erfolgreich verschickt an: '.$empfaenger.'

'; - } - } - - /*$empfaenger = getMailEmpfaenger($prest->studiengang_kz); - $mailtext = 'Folgende InteressentInnen für das '.$reihungstest->studiensemester_kurzbz.' haben am Reihungstest '.$datum_obj->convertISODate($reihungstest->datum).' '.$datum_obj->formatDatum($reihungstest->uhrzeit,'H:i').' Uhr teilgenommen'; - // Wenn MAIL_DEBUG aktiv ist, zeige auch den Empfänger an - if(defined('MAIL_DEBUG') && MAIL_DEBUG != '') - { - $mailtext .= '

Empfänger: '.$empfaenger.'

'; - } - $mailtext .= 'Vorname, Nachname, Priorisierung (höchste Prio, Prio in diesem Studiengang)'; - $mailtext .= 'Link zur Auswertung'; - - $mailtext = wordwrap($mailtext, 70); // Bricht den Code um, da es sonst zu Anzeigefehlern im Mail kommen kann - - $mail = new mail($empfaenger, 'no-reply', 'Reihungstest-Auswertung', 'Bitte sehen Sie sich die Nachricht in HTML Sicht an, um den Link vollständig darzustellen.'); - $mail->setHTMLContent($mailtext); - if (!$mail->send()) - { - $messageError .= '

Fehler beim Senden der Nachricht an: '.$empfaenger.'

'; - } - else - { - $messageSuccess .= '

Nachricht erfolgreich verschickt an: '.$empfaenger.'

'; - }*/ -} - // Verteilt alle BewerberInnen gleichmaessig auf die Raeume if(isset($_GET['type']) && $_GET['type']=='verteilen') { @@ -1976,7 +2165,8 @@ $studienplaene_list = implode(',', array_keys($studienplaene_arr)); //Formular zum Bearbeiten des Reihungstests ?> -
+
+
'> @@ -2313,8 +2503,12 @@ $studienplaene_list = implode(',', array_keys($studienplaene_arr));
- -
+ +
+
+
Einklappen
+
+
'; if($reihungstest_id!='') @@ -2323,23 +2517,31 @@ if($reihungstest_id!='') echo 'Punkte ins FAS übertragen'; echo 'Mail an alle BewerberInnen senden'; } -echo 'Auswertung'; +if (defined('CAMPUS_NAME') && CAMPUS_NAME == 'FH Technikum Wien') +{ + echo 'Auswertung'; +} +else +{ + echo 'Auswertung'; +} + echo 'Anmeldungen zusammenlegen'; if($rechte->isBerechtigt('basis/testtool', null, 'suid')) { echo 'Administration'; } -//echo 'Assistenz über Testende informieren
'; + echo ''; echo ''; if($reihungstest_id!='') { //Liste der Interessenten die zum Reihungstest angemeldet sind $qry = " - SELECT + SELECT DISTINCT rt_person_id, rt_id, - prestudent_id, + '0' as prestudent_id, tbl_rt_person.person_id, vorname, nachname, @@ -2421,8 +2623,9 @@ if($reihungstest_id!='') echo '
Achtung! Anzahl Arbeitsplätze überschritten'; echo ''; echo ''; - echo '
Prestudent ID
'; + //echo '
Prestudent ID
'; echo '
Person ID
'; + echo '
Vorname
'; echo '
Geschlecht
'; echo '
Studiengang
'; echo '
OrgForm
'; @@ -2430,9 +2633,9 @@ if($reihungstest_id!='') echo '
Einstiegssemester
'; echo '
Geburtsdatum
'; echo '
EMail
'; - echo '
Absolvierte Tests
'; - echo '
Ergebnis
'; - echo '
FAS
'; + //echo '
Absolvierte Tests
'; + //echo '
Ergebnis
'; + //echo '
FAS
'; echo ''; echo ''; echo '
'; @@ -2445,7 +2648,7 @@ if($reihungstest_id!='') //TABLE OHNE RAUMZUTEILUNG if ($orte_zuteilung_array['ohne']>0) { - echo '
'; + echo '
'; echo '
Ohne Raumzuteilung ('.$orte_zuteilung_array['ohne'].')
'; echo '
Gleichmäßig verteilen'; echo 'Auffüllen
'; @@ -2454,16 +2657,16 @@ if($reihungstest_id!='') echo ' - - + - + @@ -2471,9 +2674,9 @@ if($reihungstest_id!='') - + '; @@ -2579,10 +2782,10 @@ if($reihungstest_id!='') echo ' - + - + @@ -2590,17 +2793,6 @@ if($reihungstest_id!='') - - - '; $mailto.= ($mailto!=''?',':'').$row->email; @@ -2624,7 +2816,7 @@ if($reihungstest_id!='') echo ''; echo ''; - echo '
'; + //echo '
'; } foreach ($orte->result AS $ort) @@ -2638,23 +2830,24 @@ if($reihungstest_id!='') //TABLE MIT RAUMZUTEILUNG if ($orte_zuteilung_array[$ort->ort_kurzbz] > 0) { - echo '
'; + echo '
'; echo '
Mit Raumzuteilung in '.$ort->ort_kurzbz.' ('.$orte_zuteilung_array[$ort->ort_kurzbz].'/'.$orte_array[$ort->ort_kurzbz].')
'; + echo '
'; echo '
'; echo ''; echo '
+ Prestudent ID Person ID NachnameVornameVorname Geschlecht Studiengang OrgFormEinstiegssemester Geburtsdatum EMailbereits absolvierte Verfahren
'.$db->convert_html_chars($row->prestudent_id).' '.$db->convert_html_chars($row->person_id).' '.$db->convert_html_chars($row->nachname).''.$db->convert_html_chars($row->vorname).''.$db->convert_html_chars($row->vorname).' '.$db->convert_html_chars($row->geschlecht).' '.$db->convert_html_chars($stg_arr[$row->studiengang_kz]).' '.$db->convert_html_chars($row->orgform_kurzbz!=''?$row->orgform_kurzbz:' ').''.$db->convert_html_chars($row->ausbildungssemester).' '.$db->convert_html_chars($row->gebdatum!=''?$datum_obj->convertISODate($row->gebdatum):' ').' '.$rt_in_anderen_stg.''.($rtergebnis == '' || $rtergebnis===false?'-':number_format($rtergebnis,2,'.','')).' %'; - if($rtergebnis!==false && $rtergebnis != '' && $row->punkte=='') - echo 'übertragen'; - else - { - if($row->punkte!='') - echo number_format($row->punkte,2,'.',''); - } - echo '
- - + - + @@ -2662,9 +2855,9 @@ if($reihungstest_id!='') - + '; @@ -2770,18 +2963,18 @@ if($reihungstest_id!='') echo ' - + - + - - + '; + /*echo ' - '; + echo '';*/ + echo ''; $mailto.= ($mailto!=''?',':'').$row->email; } From 9cca1dfbc279eeac2bd05d0f7164413c0c09c862 Mon Sep 17 00:00:00 2001 From: Manfred Kindl Date: Mon, 18 Mar 2019 11:55:14 +0100 Subject: [PATCH 04/10] =?UTF-8?q?Arbeitspl=C3=A4tze=20in=20ort.rdf?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- rdf/ort.rdf.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/rdf/ort.rdf.php b/rdf/ort.rdf.php index 6a12f3948..e9f575428 100644 --- a/rdf/ort.rdf.php +++ b/rdf/ort.rdf.php @@ -88,6 +88,7 @@ for ($i=0;$i<$num_rows;$i++) '.$ort->raumtyp_kurzbz.' '.$ort->planbezeichnung.' + '; $descr.=' '.$ort->ort_kurzbz." @@ -98,6 +99,7 @@ for ($i=0;$i<$num_rows;$i++) ".$ort->stockwerk." ".$raumtypen." ".$ort->planbezeichnung." + ".$ort->arbeitsplaetze." \n"; if ($lastTYP!=$currentTYP) From 14e4b1196903737eedff3da488a5bc56b4f2a6a4 Mon Sep 17 00:00:00 2001 From: Manfred Kindl Date: Mon, 18 Mar 2019 11:59:13 +0100 Subject: [PATCH 05/10] Set from, cc and bcc as param in sendSanchoMail --- application/helpers/hlp_sancho_helper.php | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/application/helpers/hlp_sancho_helper.php b/application/helpers/hlp_sancho_helper.php index 204b17f11..dfcebe809 100644 --- a/application/helpers/hlp_sancho_helper.php +++ b/application/helpers/hlp_sancho_helper.php @@ -34,9 +34,11 @@ const DEFAULT_SANCHO_FOOTER_IMG = 'sancho_footer_DEFAULT.jpg'; * @param string $to Email-adress. * @param string $subject Subject of mail. * @param string $headerImg Filename of the specific Sancho header image. + * @param string $cc Sets CC of mail. + * @param string $bcc Sets BCC of mail. * @return void */ -function sendSanchoMail($vorlage_kurzbz, $vorlage_data, $to, $subject, $headerImg = DEFAULT_SANCHO_HEADER_IMG, $footerImg = DEFAULT_SANCHO_FOOTER_IMG) +function sendSanchoMail($vorlage_kurzbz, $vorlage_data, $to, $subject, $headerImg = DEFAULT_SANCHO_HEADER_IMG, $footerImg = DEFAULT_SANCHO_FOOTER_IMG, $from = null, $cc = null, $bcc = null) { $ci =& get_instance(); $ci->load->library('email'); @@ -45,6 +47,11 @@ function sendSanchoMail($vorlage_kurzbz, $vorlage_data, $to, $subject, $headerIm $sanchoHeader_img = 'skin/images/sancho/'. $headerImg; $sanchoFooter_img = 'skin/images/sancho/'. $footerImg; + if ($from == '') + { + $from = 'sancho@'.DOMAIN; + } + // Embed sancho header and footer image // reset important to ensure embedding of images when called in a loop $ci->email->clear(true); // clear vars and attachments @@ -67,7 +74,7 @@ function sendSanchoMail($vorlage_kurzbz, $vorlage_data, $to, $subject, $headerIm $body = _parseMailContent('Sancho_Mail_Template', $layout); // Send mail - $ci->maillib->send('sancho@'. DOMAIN, $to, $subject, $body, $alias = '', $cc = null, $bcc = null, $altMessage = '', $bulk = true, $autogenerated = true); + $ci->maillib->send($from, $to, $subject, $body, $alias = '', $cc = null, $bcc = null, $altMessage = '', $bulk = true, $autogenerated = true); } /** From 793b01818c2d28aeabaf37a73616e78ee44038df Mon Sep 17 00:00:00 2001 From: Manfred Kindl Date: Mon, 18 Mar 2019 13:51:26 +0100 Subject: [PATCH 06/10] =?UTF-8?q?Vorlage=20lehrveranstaltungszeugnis=20f?= =?UTF-8?q?=C3=BCr=20CampusInternational=20angepasst?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- system/xsl/Lehrveranstaltungszeugnis_0.xsl | 30 +++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) diff --git a/system/xsl/Lehrveranstaltungszeugnis_0.xsl b/system/xsl/Lehrveranstaltungszeugnis_0.xsl index ef4cc14de..af848d6b0 100644 --- a/system/xsl/Lehrveranstaltungszeugnis_0.xsl +++ b/system/xsl/Lehrveranstaltungszeugnis_0.xsl @@ -281,7 +281,13 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn LEHRVERANSTALTUNGSZEUGNIS - -Studiengang + + + + + -Studiengang + + @@ -289,7 +295,16 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn Personenkennzeichen: - Kennzahl des Studienganges: + + + + + + + Kennzahl des Studienganges: + + + @@ -442,7 +457,16 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn - Studiengangsleitung + + + + Head of International Office + + + Studiengangsleitung + + + From 1009bb0682f6650e6dc4614792df3081dca5a963 Mon Sep 17 00:00:00 2001 From: Cris Date: Mon, 18 Mar 2019 15:37:20 +0100 Subject: [PATCH 07/10] Fixed testtool to retrieve correct languages --- cis/testtool/login.php | 29 ++++++++++++++++++++++------- 1 file changed, 22 insertions(+), 7 deletions(-) diff --git a/cis/testtool/login.php b/cis/testtool/login.php index 8afb9cc7a..97ec08585 100644 --- a/cis/testtool/login.php +++ b/cis/testtool/login.php @@ -179,12 +179,26 @@ if (isset($_POST['prestudent']) && isset($gebdatum)) $_SESSION['semester']=$semester; // STG und Studienplan mit der höchsten Prio ermitteln - $ps->getActualInteressenten($_POST['prestudent'], true); - $firstPrio_studienplan_id = array_column($ps->result, 'studienplan_id'); - $firstPrio_studienplan_id = array_shift($firstPrio_studienplan_id); - $firstPrio_studiengang_kz = array_column($ps->result, 'studiengang_kz'); - $firstPrio_studiengang_kz = array_shift($firstPrio_studiengang_kz); + $firstPrio_studienplan_id = ''; + $firstPrio_studiengang_kz = ''; + $ps->getActualInteressenten($_POST['prestudent'], true); + foreach($ps->result as $row) + { + if(isset($row->studiengang_kz)) + { + $firstPrio_studienplan_id = $row->studienplan_id; + break; + } + } + foreach($ps->result as $row) + { + if(isset($row->studiengang_kz)) + { + $firstPrio_studiengang_kz = $row->studiengang_kz; + break; + } + } // Sprachvorgaben zu STG mit höchster Prio ermitteln @@ -193,8 +207,10 @@ if (isset($_POST['prestudent']) && isset($gebdatum)) $ablauf->getAblaufVorgabeStudiengang($firstPrio_studiengang_kz); $rt_sprache = ''; - if(isset($ablauf->result[0])) + if(!empty($ablauf->result[0])) + { $rt_sprache = $ablauf->result[0]->sprache; + } // * 2. falls keine Sprache vorhanden -> Sprache über Studienplan ermitteln if (empty($rt_sprache)) @@ -202,7 +218,6 @@ if (isset($_POST['prestudent']) && isset($gebdatum)) $stpl = new Studienplan(); $stpl->loadStudienplan($firstPrio_studienplan_id); $rt_sprache = $stpl->sprache; - } // * 3. falls keine Sprache vorhanden -> Sprache über Studiengang ermitteln From d13a7f4720e6e1a722f58736dce4678ace5160a4 Mon Sep 17 00:00:00 2001 From: Cris Date: Tue, 19 Mar 2019 09:32:06 +0100 Subject: [PATCH 08/10] Fixed testtool to set sprachwahl also for none-priority Bachelor studies --- cis/testtool/login.php | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/cis/testtool/login.php b/cis/testtool/login.php index 97ec08585..06997012f 100644 --- a/cis/testtool/login.php +++ b/cis/testtool/login.php @@ -376,6 +376,9 @@ if(isset($_POST['save']) && isset($_SESSION['prestudent_id'])) // STG mit der höchsten Prio ermitteln $ps = new Prestudent(); + // * prinzipiell STG der session übernehmem + $firstPrio_studiengang_kz = $prestudent->studiengang_kz;; + // * wenn STG des eingeloggten Prestudenten vom Typ Bachelor ist, dann höchste Prio aller // Bachelor-STG ermitteln, an denen die Person noch interessiert ist if ($typ->typ == 'b') @@ -390,16 +393,14 @@ if(isset($_POST['save']) && isset($_SESSION['prestudent_id'])) } } } - // * sonst STG der session übernehmem - else - { - $firstPrio_studiengang_kz = $prestudent->studiengang_kz; - } // Sprachwahl zu STG mit höchster Prio ermitteln $ablauf = new Ablauf(); - $ablauf->getAblaufVorgabeStudiengang($firstPrio_studiengang_kz); - $sprachwahl = $ablauf->result[0]->sprachwahl; + $sprachwahl = false; + if ($ablauf->getAblaufVorgabeStudiengang($firstPrio_studiengang_kz) && is_bool($ablauf->result[0]->sprachwahl)) + { + $sprachwahl = $ablauf->result[0]->sprachwahl; + } //Prestudent Informationen und Logout echo ''; From 0cc09629fbff38ca326802c9cc73dd52b9ef1987 Mon Sep 17 00:00:00 2001 From: Manfred Kindl Date: Tue, 19 Mar 2019 10:39:32 +0100 Subject: [PATCH 09/10] =?UTF-8?q?Arbeitspl=C3=A4tze=20und=20Max.=20Person?= =?UTF-8?q?=20werden=20defaultm=C3=A4=C3=9Fig=20angezeigt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- content/tempusoverlay.xul.php | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/content/tempusoverlay.xul.php b/content/tempusoverlay.xul.php index 3cceefdf3..c5b728da1 100644 --- a/content/tempusoverlay.xul.php +++ b/content/tempusoverlay.xul.php @@ -80,7 +80,7 @@ echo ' - +
+ Prestudent ID Person ID NachnameVornameVorname Geschlecht Studiengang OrgFormEinstiegssemester Geburtsdatum EMailbereits absolvierte Verfahren
'.$db->convert_html_chars($row->prestudent_id).' '.$db->convert_html_chars($row->person_id).' '.$db->convert_html_chars($row->nachname).''.$db->convert_html_chars($row->vorname).''.$db->convert_html_chars($row->vorname).' '.$db->convert_html_chars($row->geschlecht).' '.$db->convert_html_chars($stg_arr[$row->studiengang_kz]).' '.$db->convert_html_chars($row->orgform_kurzbz!=''?$row->orgform_kurzbz:' ').' '.$db->convert_html_chars($studienplan_bezeichnung).' ('.$row->studienplan_id.') '.$db->convert_html_chars($row->ausbildungssemester).' '.$db->convert_html_chars($row->gebdatum!=''?$datum_obj->convertISODate($row->gebdatum):' ').''.$rt_in_anderen_stg.''.$rt_in_anderen_stg.' '.($rtergebnis==0?'-':number_format($rtergebnis,2,'.','')).' % '; if($rtergebnis!==false && $rtergebnis != '' && $row->punkte=='') @@ -2791,8 +2984,8 @@ if($reihungstest_id!='') if($row->punkte!='') echo number_format($row->punkte,2,'.',''); } - echo '