From b998a42b8797f1ac231f09afa32bdb9d762584ff Mon Sep 17 00:00:00 2001 From: kindlm Date: Thu, 28 Jul 2016 11:12:32 +0200 Subject: [PATCH] Reihungstestverwaltung - Studiensemester - Stufen - Aufteilung der BewerberInnen - Raumzuordnung - Aufsichtspersonen --- application/migrations/011_reihungstest.php | 7 +- include/js/jquery.checkboxes-1.0.7.min.js | 1 + include/reihungstest.class.php | 92 +- vilesci/stammdaten/reihungstestverwaltung.php | 1263 +++++++++++++---- 4 files changed, 1063 insertions(+), 300 deletions(-) create mode 100644 include/js/jquery.checkboxes-1.0.7.min.js diff --git a/application/migrations/011_reihungstest.php b/application/migrations/011_reihungstest.php index 0e677bb63..939153128 100644 --- a/application/migrations/011_reihungstest.php +++ b/application/migrations/011_reihungstest.php @@ -21,6 +21,11 @@ class Migration_Reihungstest extends MigrationLib "anmeldefrist" => array("type" => "date") ); $this->addColumn("public", "tbl_reihungstest", $columns); + + // Add arbeitsplaetze to public.tbl_ort + $columns = array( + ); + $this->addColumn("public", "tbl_ort", $columns); // Add rt_stufe and punkte to public.tbl_prestudentstatus $columns = array( @@ -129,7 +134,7 @@ class Migration_Reihungstest extends MigrationLib "type" => "varchar(16)" ), "uid" => array( - "type" => "varchar(32)" + "type" => "varchar(32)", ) ); $this->createTable("public", "tbl_rt_ort", $fields); diff --git a/include/js/jquery.checkboxes-1.0.7.min.js b/include/js/jquery.checkboxes-1.0.7.min.js new file mode 100644 index 000000000..a548cff61 --- /dev/null +++ b/include/js/jquery.checkboxes-1.0.7.min.js @@ -0,0 +1 @@ +/*! checkboxes.js v1.0.7 | (c) 2013, 2016 Rubens Mariuzzo | http://github.com/rmariuzzo/checkboxes.js/LICENSE */"use strict";!function(a){var b=function(a){this.$context=a};b.prototype.check=function(){this.$context.find(":checkbox").filter(":not(:disabled)").filter(":visible").prop("checked",!0)},b.prototype.uncheck=function(){this.$context.find(":checkbox:visible").filter(":not(:disabled)").prop("checked",!1)},b.prototype.toggle=function(){this.$context.find(":checkbox:visible").filter(":not(:disabled)").each(function(){var b=a(this);b.prop("checked",!b.is(":checked"))})},b.prototype.max=function(a){if(a>0){var b=this;this.$context.on("click.checkboxes.max",":checkbox",function(){b.$context.find(":checked").length===a?b.$context.find(":checkbox:not(:checked)").prop("disabled",!0):b.$context.find(":checkbox:not(:checked)").prop("disabled",!1)})}else this.$context.off("click.checkboxes.max")},b.prototype.range=function(b){if(b){var c=this;this.$context.on("click.checkboxes.range",":checkbox",function(b){var d=a(b.target);if(b.shiftKey&&c.$last){var e=c.$context.find(":checkbox:visible"),f=e.index(c.$last),g=e.index(d),h=Math.min(f,g),i=Math.max(f,g)+1;e.slice(h,i).filter(":not(:disabled)").prop("checked",d.prop("checked"))}c.$last=d})}else this.$context.off("click.checkboxes.range")};var c=a.fn.checkboxes;a.fn.checkboxes=function(c){var d=Array.prototype.slice.call(arguments,1);return this.each(function(){var e=a(this),f=e.data("checkboxes");f||e.data("checkboxes",f=new b(e,"object"==typeof c&&c)),"string"==typeof c&&f[c]&&f[c].apply(f,d)})},a.fn.checkboxes.Constructor=b,a.fn.checkboxes.noConflict=function(){return a.fn.checkboxes=c,this};var d=function(b){var c=a(b.target),d=c.attr("href"),e=a(c.data("context")||d&&d.replace(/.*(?=#[^\s]+$)/,"")),f=c.data("action");e&&f&&(c.is(":checkbox")||b.preventDefault(),e.checkboxes(f))},e=function(){a("[data-toggle^=checkboxes]").each(function(){var b=a(this),c=b.data();delete c.toggle;for(var d in c)b.checkboxes(d,c[d])})};a(document).on("click.checkboxes.data-api","[data-toggle^=checkboxes]",d),a(document).on("ready.checkboxes.data-api",e)}(window.jQuery); \ No newline at end of file diff --git a/include/reihungstest.class.php b/include/reihungstest.class.php index 28d89fe2a..17a10b3c1 100644 --- a/include/reihungstest.class.php +++ b/include/reihungstest.class.php @@ -518,6 +518,45 @@ class reihungstest extends basis_db return false; } } + + /** + * Liefert die Personen, die einem Ort des Reihungstests zugeteilt sind + * @param integer $rt_id ID des Reihungstests + * @param string $ort_kurzbz Ort des Reihungstests mit der ID $rt_id + * @return true wenn ok, sonst false + */ + public function getPersonReihungstestOrt($rt_id, $ort_kurzbz) + { + $qry = "SELECT + * + FROM + public.tbl_rt_person + WHERE + tbl_rt_person.rt_id=".$this->db_add_param($rt_id)." + AND tbl_rt_person.ort_kurzbz=".$this->db_add_param($ort_kurzbz); + if($result = $this->db_query($qry)) + { + while($row = $this->db_fetch_object($result)) + { + $obj = new stdClass(); + + $obj->rt_id = $row->rt_id; + $obj->person_id = $row->person_id; + $obj->anmeldedatum = $row->anmeldedatum; + $obj->teilgenommen = $this->db_parse_bool($row->teilgenommen); + $obj->ort_kurzbz = $row->ort_kurzbz; + $obj->punkte = $row->punkte; + + $this->result[] = $obj; + } + return true; + } + else + { + $this->errormsg = 'Fehler beim Laden der Daten'; + return false; + } + } public function savePersonReihungstest() { @@ -573,21 +612,7 @@ class reihungstest extends basis_db return false; } } - - - - - - - - - - - - - - - + /** * Liefert die Orte, die einem Reihungstest zugeordnet sind * @param integer $reihungstest_id ID des Reihungstests, dessen Ort zurueckgegeben werden sollen @@ -623,42 +648,7 @@ class reihungstest extends basis_db return false; } } - /* - public function getPersonReihungstest($person_id, $rt_id) - { - $qry = "SELECT - * - FROM - public.tbl_rt_person - WHERE - tbl_rt_person.person_id=".$this->db_add_param($person_id)." - AND rt_id=".$this->db_add_param($rt_id); - if($result = $this->db_query($qry)) - { - if($row = $this->db_fetch_object($result)) - { - - $this->rt_id = $row->rt_id; - $this->person_id = $row->person_id; - $this->anmeldedatum = $row->anmeldedatum; - $this->teilgenommen = $this->db_parse_bool($row->teilgenommen); - $this->ort_kurzbz = $row->ort_kurzbz; - $this->punkte = $row->punkte; - return true; - } - else - { - $this->errormsg = 'Eintrag nicht gefunden'; - return false; - } - } - else - { - $this->errormsg = 'Fehler beim Laden der Daten'; - return false; - } - }*/ - + /** * Speichert eine Raumzuteilung zu einem Reihungstesttermin * Wenn $neu auf true gesetzt ist wird ein neuer Datensatz angelegt diff --git a/vilesci/stammdaten/reihungstestverwaltung.php b/vilesci/stammdaten/reihungstestverwaltung.php index 71ad1ac7b..4eb5365d9 100644 --- a/vilesci/stammdaten/reihungstestverwaltung.php +++ b/vilesci/stammdaten/reihungstestverwaltung.php @@ -44,18 +44,27 @@ require_once('../../include/person.class.php'); require_once('../../include/prestudent.class.php'); require_once('../../include/Excel/excel.php'); require_once('../../include/adresse.class.php'); +require_once('../../include/studiensemester.class.php'); +require_once('../../include/benutzer.class.php'); +require_once('../../include/studienplan.class.php'); + define('REIHUNGSTEST_ARBEITSPLAETZE_SCHWUND', '5'); +define('REIHUNGSTEST_ERGEBNISSE_BERECHNEN', false); if (!$db = new basis_db()) { die('Es konnte keine Verbindung zum Server aufgebaut werden.'); } +$stsem_akt = new studiensemester(); +$stsem_akt = $stsem_akt->getakt(); + $user = get_uid(); $datum_obj = new datum(); -$stg_kz = (isset($_GET['stg_kz']) ? $_GET['stg_kz'] : '-1'); +$stg_kz = (isset($_GET['stg_kz']) ? $_GET['stg_kz'] : ''); $reihungstest_id = (isset($_GET['reihungstest_id']) ? $_GET['reihungstest_id'] : ''); +$studiensemester_kurzbz = (isset($_GET['studiensemester_kurzbz']) ? $_GET['studiensemester_kurzbz'] : ''); $prestudent_id = (isset($_GET['prestudent_id']) ? $_GET['prestudent_id'] : ''); $rtpunkte = (isset($_GET['rtpunkte']) ? $_GET['rtpunkte'] : ''); $neu = (isset($_GET['neu']) ? true : false); @@ -65,146 +74,256 @@ $error = false; $rechte = new benutzerberechtigung(); $rechte->getBerechtigungen($user); +if ($studiensemester_kurzbz == '' && ($reihungstest_id != '' || isset($_POST['reihungstest_id']))) +{ + if ($reihungstest_id != '') + { + $rt = new Reihungstest(); + $rt->load($reihungstest_id); + $studiensemester_kurzbz = $rt->studiensemester_kurzbz; + } + elseif (isset($_POST['reihungstest_id'])) + { + $rt = new Reihungstest(); + $rt->load($_POST['reihungstest_id']); + $studiensemester_kurzbz = $rt->studiensemester_kurzbz; + } + else + $studiensemester_kurzbz = $stsem_akt; +} + +if ($stg_kz == '' && ($reihungstest_id != '' || isset($_POST['reihungstest_id']))) +{ + if ($reihungstest_id != '') + { + $rt = new Reihungstest(); + $rt->load($reihungstest_id); + $stg_kz = $rt->studiengang_kz; + } + elseif (isset($_POST['reihungstest_id'])) + { + $rt = new Reihungstest(); + $rt->load($_POST['reihungstest_id']); + $stg_kz = $rt->studiengang_kz; + } + else + $stg_kz = '-1'; +} + if(!$rechte->isBerechtigt('lehre/reihungstest')) { die($rechte->errormsg); } - + $studiengang = new studiengang(); $studiengang->getAll('typ, kurzbz', false); +$studiensemester = new Studiensemester(); +$studiensemester->getAll('DESC'); + + //Studierende als Excel Exportieren if(isset($_GET['excel'])) { $reihungstest = new reihungstest(); if($reihungstest->load($_GET['reihungstest_id'])) { + $qry = "SELECT + prestudent_id, + person_id, + vorname, + nachname, + ort_kurzbz, + studiengang_kz, + gebdatum, + geschlecht, + rt_punkte1 + ,( + SELECT kontakt + FROM tbl_kontakt + WHERE kontakttyp = 'email' + AND person_id = tbl_prestudent.person_id + AND zustellung = true LIMIT 1 + ) AS email + ,( + SELECT ausbildungssemester + FROM public.tbl_prestudentstatus + WHERE prestudent_id = tbl_prestudent.prestudent_id + AND datum = ( + SELECT MAX(datum) + FROM public.tbl_prestudentstatus + WHERE prestudent_id = tbl_prestudent.prestudent_id + AND status_kurzbz = 'Interessent' + ) LIMIT 1 + ) AS ausbildungssemester + ,( + SELECT orgform_kurzbz + FROM public.tbl_prestudentstatus + WHERE prestudent_id = tbl_prestudent.prestudent_id + AND datum = ( + SELECT MAX(datum) + FROM public.tbl_prestudentstatus + WHERE prestudent_id = tbl_prestudent.prestudent_id + AND status_kurzbz = 'Interessent' + ) LIMIT 1 + ) AS orgform_kurzbz + FROM public.tbl_prestudent + JOIN public.tbl_person USING (person_id) + LEFT JOIN public.tbl_rt_person USING (person_id) + WHERE reihungstest_id = ".$db->db_add_param($reihungstest->reihungstest_id, FHC_INTEGER)." + ORDER BY ort_kurzbz NULLS FIRST,nachname,vorname"; + // Creating a workbook $workbook = new Spreadsheet_Excel_Writer(); $workbook->setVersion(8); // sending HTTP headers $workbook->send("Anwesenheitsliste_Reihungstest_".$reihungstest->datum.".xls"); - - // Creating a worksheet - $worksheet =& $workbook->addWorksheet("Reihungstest"); - $worksheet->setInputEncoding('utf-8'); + //Formate Definieren $format_bold =& $workbook->addFormat(); $format_bold->setBold(); - - $worksheet->write(0,0,'Anwesenheitsliste Reihungstest '.$datum_obj->convertISODate($reihungstest->datum).' '.$reihungstest->uhrzeit.' Uhr '.$reihungstest->anmerkung.', erstellt am '.date('d.m.Y'), $format_bold); - //Ueberschriften - $i=0; - $worksheet->write(2,$i,"Vorname", $format_bold); - $maxlength[$i] = 7; - $worksheet->write(2,++$i,"Nachname", $format_bold); - $maxlength[$i] = 8; - $worksheet->write(2,++$i,"Geburtsdatum", $format_bold); - $maxlength[$i] = 12; - $worksheet->write(2,++$i,"Studiengang", $format_bold); - $maxlength[$i] = 11; - $worksheet->write(2,++$i,"bereits absolvierte RTs", $format_bold); - $maxlength[$i] = 18; - $worksheet->write(2,++$i,"EMail", $format_bold); - $maxlength[$i] = 5; - $worksheet->write(2,++$i,"Einstiegssemester", $format_bold); - $maxlength[$i] = 15; - $worksheet->write(2,++$i,"STRASSE", $format_bold); - $maxlength[$i] = 6; - $worksheet->write(2,++$i,"PLZ", $format_bold); - $maxlength[$i] = 3; - $worksheet->write(2,++$i,"ORT", $format_bold); - $maxlength[$i] = 3; - - $qry = "SELECT *, - (SELECT kontakt FROM tbl_kontakt - WHERE kontakttyp='email' AND person_id=tbl_prestudent.person_id AND zustellung=true LIMIT 1) as email, - (SELECT ausbildungssemester FROM public.tbl_prestudentstatus - WHERE prestudent_id=tbl_prestudent.prestudent_id - AND datum=(SELECT MAX(datum) FROM public.tbl_prestudentstatus - WHERE prestudent_id=tbl_prestudent.prestudent_id - AND status_kurzbz='Interessent') LIMIT 1) as ausbildungssemester - FROM - public.tbl_prestudent - JOIN public.tbl_person USING(person_id) - WHERE reihungstest_id=".$db->db_add_param($reihungstest->reihungstest_id, FHC_INTEGER)." ORDER BY nachname, vorname"; - + + $format_border =& $workbook->addFormat(); + $format_border->setBorder(1); + if($result = $db->db_query($qry)) { - $zeile=3; + $ort_kurzbz = '0'; while($row = $db->db_fetch_object($result)) { - $i=0; + 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); + + + $worksheet->write(0,0,'Anwesenheitsliste Reihungstest '.$datum_obj->convertISODate($reihungstest->datum).' '.$reihungstest->uhrzeit.' Uhr, '.$reihungstest->anmerkung.', erstellt am '.date('d.m.Y'), $format_bold); + //Ueberschriften + $col=0; + $worksheet->write(2,$col,"Vorname", $format_bold); + $maxlength[$col] = 7; + $worksheet->write(2,++$col,"Nachname", $format_bold); + $maxlength[$col] = 8; + $worksheet->write(2,++$col,"Geschlecht", $format_bold); + $maxlength[$col] = 8; + $worksheet->write(2,++$col,"Geburtsdatum", $format_bold); + $maxlength[$col] = 12; + $worksheet->write(2,++$col,"Studiengang", $format_bold); + $maxlength[$col] = 11; + $worksheet->write(2,++$col,"Bereits absolvierte RTs", $format_bold); + $maxlength[$col] = 18; + $worksheet->write(2,++$col,"EMail", $format_bold); + $maxlength[$col] = 5; + $worksheet->write(2,++$col,"Einstiegssemester", $format_bold); + $maxlength[$col] = 15; + $worksheet->write(2,++$col,"Strasse", $format_bold); + $maxlength[$col] = 6; + $worksheet->write(2,++$col,"PLZ", $format_bold); + $maxlength[$col] = 3; + $worksheet->write(2,++$col,"Ort", $format_bold); + $maxlength[$col] = 3; + $worksheet->write(2,++$col,"Unterschrift", $format_bold); + $maxlength[$col] = 30; + + $ort_kurzbz = $row->ort_kurzbz; + $zeile=3; + } + $pruefling = new pruefling(); $prestudent = new prestudent(); $prestudent->getPrestudenten($row->person_id); $rt_in_anderen_stg=''; - foreach($prestudent->result as $item) + $erg = ''; + if(defined('REIHUNGSTEST_ERGEBNISSE_BERECHNEN') && REIHUNGSTEST_ERGEBNISSE_BERECHNEN) { - if($item->prestudent_id!=$row->prestudent_id) + foreach($prestudent->result as $item) { - if(defined('FAS_REIHUNGSTEST_PUNKTE') && FAS_REIHUNGSTEST_PUNKTE) - $erg = $pruefling->getReihungstestErgebnis($item->prestudent_id, true); - else - $erg = $pruefling->getReihungstestErgebnis($item->prestudent_id); - if($erg!=0) + if($item->prestudent_id!=$row->prestudent_id) { - $rt_in_anderen_stg.=number_format($erg,2).' Punkte im Studiengang '.$studiengang->kuerzel_arr[$item->studiengang_kz]."; "; + if(defined('FAS_REIHUNGSTEST_PUNKTE') && FAS_REIHUNGSTEST_PUNKTE) + $erg = $pruefling->getReihungstestErgebnis($item->prestudent_id, true); + else + $erg = $pruefling->getReihungstestErgebnis($item->prestudent_id); + if($erg!=0) + { + $rt_in_anderen_stg.=number_format($erg,2).' Punkte im Studiengang '.$studiengang->kuerzel_arr[$item->studiengang_kz]."; "; + } } } } + $col=0; + $worksheet->write($zeile,$col, $row->vorname, $format_border); + if(strlen($row->vorname)>$maxlength[$col]) + $maxlength[$col] = mb_strlen($row->vorname); - $worksheet->write($zeile,$i, $row->vorname); - if(strlen($row->vorname)>$maxlength[$i]) - $maxlength[$i] = mb_strlen($row->vorname); + $worksheet->write($zeile,++$col,$row->nachname, $format_border); + if(strlen($row->nachname)>$maxlength[$col]) + $maxlength[$col] = mb_strlen($row->nachname); + + $worksheet->write($zeile,++$col, $row->geschlecht, $format_border); + if(strlen($row->geschlecht)>$maxlength[$col]) + $maxlength[$col] = mb_strlen($row->geschlecht); - $worksheet->write($zeile,++$i,$row->nachname); - if(strlen($row->nachname)>$maxlength[$i]) - $maxlength[$i] = mb_strlen($row->nachname); + $worksheet->write($zeile,++$col,$datum_obj->convertISODate($row->gebdatum), $format_border); + if(strlen($row->gebdatum)>$maxlength[$col]) + $maxlength[$col] = mb_strlen($row->gebdatum); - $worksheet->write($zeile,++$i,$datum_obj->convertISODate($row->gebdatum)); - if(strlen($row->gebdatum)>$maxlength[$i]) - $maxlength[$i] = mb_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] = mb_strlen($studiengang->kuerzel_arr[$row->studiengang_kz]); - $worksheet->write($zeile,++$i,$studiengang->kuerzel_arr[$row->studiengang_kz]); - if(strlen($studiengang->kuerzel_arr[$row->studiengang_kz])>$maxlength[$i]) - $maxlength[$i] = mb_strlen($studiengang->kuerzel_arr[$row->studiengang_kz]); + $worksheet->write($zeile,++$col,$rt_in_anderen_stg, $format_border); + if(strlen($rt_in_anderen_stg)>$maxlength[$col]) + $maxlength[$col] = mb_strlen($rt_in_anderen_stg); - $worksheet->write($zeile,++$i,$rt_in_anderen_stg); - if(strlen($rt_in_anderen_stg)>$maxlength[$i]) - $maxlength[$i] = mb_strlen($rt_in_anderen_stg); + $worksheet->write($zeile,++$col,$row->email, $format_border); + if(strlen($row->email)>$maxlength[$col]) + $maxlength[$col] = mb_strlen($row->email); - $worksheet->write($zeile,++$i,$row->email); - if(strlen($row->email)>$maxlength[$i]) - $maxlength[$i] = mb_strlen($row->email); - - $worksheet->write($zeile,++$i,$row->ausbildungssemester); - if(strlen($row->ausbildungssemester)>$maxlength[$i]) - $maxlength[$i] = mb_strlen($row->ausbildungssemester); + $worksheet->write($zeile,++$col,$row->ausbildungssemester, $format_border); + if(strlen($row->ausbildungssemester)>$maxlength[$col]) + $maxlength[$col] = mb_strlen($row->ausbildungssemester); $adresse = new adresse(); $adresse->loadZustellAdresse($row->person_id); - $worksheet->write($zeile,++$i,$adresse->strasse); - if(strlen($adresse->strasse)>$maxlength[$i]) - $maxlength[$i] = mb_strlen($adresse->strasse); + $worksheet->write($zeile,++$col,$adresse->strasse, $format_border); + if(strlen($adresse->strasse)>$maxlength[$col]) + $maxlength[$col] = mb_strlen($adresse->strasse); - $worksheet->write($zeile,++$i,$adresse->plz); - if(strlen($adresse->plz)>$maxlength[$i]) - $maxlength[$i] = mb_strlen($adresse->plz); + $worksheet->write($zeile,++$col,$adresse->plz, $format_border); + if(strlen($adresse->plz)>$maxlength[$col]) + $maxlength[$col] = mb_strlen($adresse->plz); - $worksheet->write($zeile,++$i,$adresse->ort); - if(strlen($adresse->ort)>$maxlength[$i]) - $maxlength[$i] = mb_strlen($adresse->ort); + $worksheet->write($zeile,++$col,$adresse->ort, $format_border); + if(strlen($adresse->ort)>$maxlength[$col]) + $maxlength[$col] = mb_strlen($adresse->ort); + + $worksheet->write($zeile,++$col,'', $format_border); + + $worksheet->setRow($zeile, 35); + + //Die Breite der Spalten setzen + foreach($maxlength as $col=>$breite) + $worksheet->setColumn($col, $col, $breite+2); $zeile++; } } - //Die Breite der Spalten setzen - foreach($maxlength as $i=>$breite) - $worksheet->setColumn($i, $i, $breite+2); - $workbook->close(); } else @@ -225,6 +344,7 @@ if(isset($_GET['excel'])) + @@ -282,29 +402,215 @@ if(isset($_GET['excel'])) }); - $("#t1").tablesorter( + if (typeof(Storage) !== 'undefined') { - sortList: [[3,0]], - widgets: ["zebra"] - }); + if (localStorage.getItem('clm_id') != null) + { + $('.clm_id').css('display', localStorage.getItem('clm_id')); + if (localStorage.getItem('clm_id') == 'none') + document.getElementById('clm_id').className = 'inactive'; + else + document.getElementById('clm_id').className = 'active'; + } + if (localStorage.getItem('clm_geschlecht') != null) + { + $('.clm_geschlecht').css('display', localStorage.getItem('clm_geschlecht')); + if (localStorage.getItem('clm_geschlecht') == 'none') + document.getElementById('clm_geschlecht').className = 'inactive'; + else + document.getElementById('clm_geschlecht').className = 'active'; + } + if (localStorage.getItem('clm_studiengang') != null) + { + $('.clm_studiengang').css('display', localStorage.getItem('clm_studiengang')); + if (localStorage.getItem('clm_studiengang') == 'none') + document.getElementById('clm_studiengang').className = 'inactive'; + else + document.getElementById('clm_studiengang').className = 'active'; + } + if (localStorage.getItem('clm_orgform') != null) + { + $('.clm_orgform').css('display', localStorage.getItem('clm_orgform')); + if (localStorage.getItem('clm_orgform') == 'none') + document.getElementById('clm_orgform').className = 'inactive'; + else + document.getElementById('clm_orgform').className = 'active'; + } + if (localStorage.getItem('clm_einstiegssemester') != null) + { + $('.clm_einstiegssemester').css('display', localStorage.getItem('clm_einstiegssemester')); + if (localStorage.getItem('clm_einstiegssemester') == 'none') + document.getElementById('clm_einstiegssemester').className = 'inactive'; + else + document.getElementById('clm_einstiegssemester').className = 'active'; + } + if (localStorage.getItem('clm_geburtsdatum') != null) + { + $('.clm_geburtsdatum').css('display', localStorage.getItem('clm_geburtsdatum')); + if (localStorage.getItem('clm_geburtsdatum') == 'none') + document.getElementById('clm_geburtsdatum').className = 'inactive'; + else + document.getElementById('clm_geburtsdatum').className = 'active'; + } + if (localStorage.getItem('clm_email') != null) + { + $('.clm_email').css('display', localStorage.getItem('clm_email')); + if (localStorage.getItem('clm_email') == 'none') + document.getElementById('clm_email').className = 'inactive'; + else + document.getElementById('clm_email').className = 'active'; + } + if (localStorage.getItem('clm_absolviert') != null) + { + $('.clm_absolviert').css('display', localStorage.getItem('clm_absolviert')); + if (localStorage.getItem('clm_absolviert') == 'none') + document.getElementById('clm_absolviert').className = 'inactive'; + else + document.getElementById('clm_absolviert').className = 'active'; + } + if (localStorage.getItem('clm_ergebnis') != null) + { + $('.clm_ergebnis').css('display', localStorage.getItem('clm_ergebnis')); + if (localStorage.getItem('clm_ergebnis') == 'none') + document.getElementById('clm_ergebnis').className = 'inactive'; + else + document.getElementById('clm_ergebnis').className = 'active'; + } + if (localStorage.getItem('clm_fas') != null) + { + $('.clm_fas').css('display', localStorage.getItem('clm_fas')); + if (localStorage.getItem('clm_fas') == 'none') + document.getElementById('clm_fas').className = 'inactive'; + else + document.getElementById('clm_fas').className = 'active'; + } + } + else + { + alert('Local Storage nicht unterstuetzt'); + } $(".tablesorter").each(function(i,v) { $("#"+v.id).tablesorter( { widgets: ["zebra"], - sortList: [[3,0]], + sortList: [[2,0],[3,0]], headers: {0: { sorter: false}} - }) + }); + + $("#toggle_"+v.id).on('click', function(e) { + $("#"+v.id).checkboxes('toggle'); + e.preventDefault(); + }); + + $("#uncheck_"+v.id).on('click', function(e) { + $("#"+v.id).checkboxes('uncheck'); + e.preventDefault(); + }); + + $("#"+v.id).checkboxes('range', true); }); }); + + function hideColumn(column) + { + if ($('.'+column).css('display') == 'table-cell') + { + $('.'+column).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'); + localStorage.setItem(column, 'table-cell'); + if (localStorage.getItem(column) == 'none') + document.getElementById(column).className = 'inactive'; + else + document.getElementById(column).className = 'active'; + } + } +

Reihungstest - Verwaltung

isBerechtigt('lehre/reihungstest', null, 'sui')) @@ -314,7 +620,7 @@ if(isset($_POST['speichern'])) $reihungstest = new reihungstest(); - if(isset($_POST['reihungstest_id']) && $_POST['reihungstest_id']!='') + if(isset($_POST['reihungstest_id']) && $_POST['reihungstest_id']!='' && !isset($_POST['kopieren'])) { //Reihungstest laden if(!$reihungstest->load($_POST['reihungstest_id'])) @@ -346,60 +652,84 @@ if(isset($_POST['speichern'])) if(!$error) { + if (isset($_POST['kopieren'])) + { + + $reihungstest->freigeschaltet = false; + $reihungstest->max_teilnehmer = ''; + $reihungstest->oeffentlich = false; + $reihungstest->stufe = filter_input(INPUT_POST, 'stufe', FILTER_VALIDATE_INT); + $reihungstest->anmeldefrist = $datum_obj->formatDatum($_POST['anmeldefrist']); + $reihungstest->updateamum = date('Y-m-d H:i:s'); + $reihungstest->updatevon = $user; + } + else + { + $reihungstest->freigeschaltet = isset($_POST['freigeschaltet']); + $reihungstest->max_teilnehmer = filter_input(INPUT_POST, 'max_teilnehmer', FILTER_VALIDATE_INT); + $reihungstest->oeffentlich = filter_input(INPUT_POST, 'oeffentlich', FILTER_VALIDATE_BOOLEAN); + $reihungstest->stufe = filter_input(INPUT_POST, 'stufe', FILTER_VALIDATE_INT); + $reihungstest->anmeldefrist = $datum_obj->formatDatum($_POST['anmeldefrist']); + $reihungstest->updateamum = date('Y-m-d H:i:s'); + $reihungstest->updatevon = $user; + } $reihungstest->studiengang_kz = $_POST['studiengang_kz']; //$reihungstest->ort_kurzbz = $_POST['ort_kurzbz']; + $reihungstest->studiensemester_kurzbz = filter_input(INPUT_POST, 'studiensemester_kurzbz'); $reihungstest->anmerkung = $_POST['anmerkung']; $reihungstest->datum = $datum_obj->formatDatum($_POST['datum']); $reihungstest->uhrzeit = $_POST['uhrzeit']; - $reihungstest->updateamum = date('Y-m-d H:i:s'); - $reihungstest->freigeschaltet = isset($_POST['freigeschaltet']); - $reihungstest->max_teilnehmer = filter_input(INPUT_POST, 'max_teilnehmer', FILTER_VALIDATE_INT); - $reihungstest->oeffentlich = filter_input(INPUT_POST, 'oeffentlich', FILTER_VALIDATE_BOOLEAN); - $reihungstest->stufe = filter_input(INPUT_POST, 'stufe', FILTER_VALIDATE_INT); - $reihungstest->anmeldefrist = $datum_obj->formatDatum($_POST['anmeldefrist']); - $reihungstest->updatevon = $user; + if($reihungstest->save()) { if (isset($_POST['ort_kurzbz']) && $_POST['ort_kurzbz']!='') { - if($rechte->isBerechtigt('lehre/reihungstestOrt', null, 'sui')) + $ort = new ort(); + + if (!$ort->load($_POST['ort_kurzbz'])) + echo 'Die Bezeichnung des Ortes ist ungueltig oder wurde nicht gefunden'; + else { - $orte_zugeteilt = new reihungstest(); - $orte_zugeteilt->getOrteReihungstest($reihungstest->reihungstest_id); - $zugeteilt = false; - foreach ($orte_zugeteilt->result AS $row) + if($rechte->isBerechtigt('lehre/reihungstestOrt', null, 'sui')) { - if ($row->ort_kurzbz == $_POST['ort_kurzbz']) + $orte_zugeteilt = new reihungstest(); + $orte_zugeteilt->getOrteReihungstest($reihungstest->reihungstest_id); + $zugeteilt = false; + foreach ($orte_zugeteilt->result AS $row) { - $zugeteilt = true; - break; + if ($row->ort_kurzbz == $_POST['ort_kurzbz']) + { + $zugeteilt = true; + break; + } } - } - // Check, ob der Raum schon diesem RT zugeteilt ist - if ($zugeteilt == false) - { - $add_ort = new reihungstest(); - $add_ort->new = true; - $add_ort->rt_id = $reihungstest->reihungstest_id; - $add_ort->ort_kurzbz = $_POST['ort_kurzbz']; - $add_ort->uid = null; - - if ($add_ort->saveOrtReihungstest()) + // Check, ob der Raum schon diesem RT zugeteilt ist + if ($zugeteilt == false) { - echo 'Daten wurden erfolgreich gespeichert '; + $add_ort = new reihungstest(); + $add_ort->new = true; + $add_ort->rt_id = $reihungstest->reihungstest_id; + $add_ort->ort_kurzbz = $_POST['ort_kurzbz']; + $add_ort->uid = null; + + if ($add_ort->saveOrtReihungstest()) + { + echo 'Daten wurden erfolgreich gespeichert '; + } + else + echo 'Fehler beim Speichern der Raumzuordnung: '.$db->convert_html_chars($reihungstest->errormsg).''; } - else - echo 'Fehler beim Speichern der Raumzuordnung: '.$db->convert_html_chars($reihungstest->errormsg).''; + else + echo 'Der Raum '.$_POST['ort_kurzbz'].' ist bereits diesem Reihungstest zugeteilt'; } else - echo 'Der Raum '.$_POST['ort_kurzbz'].' ist bereits diesem Reihungstest zugeteilt'; + die($rechte->errormsg); } - else - die($rechte->errormsg); } $reihungstest_id = $reihungstest->reihungstest_id; $stg_kz = $reihungstest->studiengang_kz; + $studiensemester_kurzbz = $reihungstest->studiensemester_kurzbz; } else { @@ -409,6 +739,34 @@ if(isset($_POST['speichern'])) $neu=false; } +if ($reihungstest_id != '' || isset($_POST['reihungstest_id'])) +{ + $orte = new Reihungstest(); + $orte->getOrteReihungstest($reihungstest_id != ''?$reihungstest_id:$_POST['reihungstest_id']); + $orte_array = array(); + foreach ($orte->result AS $row) + { + // Wenn Arbeitsplaetze in DB gepflegt sind, Schwund herausrechnen (wenn gesetzt) sonst max_person verwenden und Schwund herausrechnen (wenn gesetzt) + $raum = new Ort(); + $raum->load($row->ort_kurzbz); + if ($raum->arbeitsplaetze != '') + { + if(defined('REIHUNGSTEST_ARBEITSPLAETZE_SCHWUND') || REIHUNGSTEST_ARBEITSPLAETZE_SCHWUND > 0) + $orte_array[$row->ort_kurzbz] = $raum->arbeitsplaetze - ceil(($raum->arbeitsplaetze/100)*REIHUNGSTEST_ARBEITSPLAETZE_SCHWUND); + else + $orte_array[$row->ort_kurzbz] = $raum->arbeitsplaetze; + } + else + { + if(defined('REIHUNGSTEST_ARBEITSPLAETZE_SCHWUND') || REIHUNGSTEST_ARBEITSPLAETZE_SCHWUND > 0) + $orte_array[$row->ort_kurzbz] = $raum->max_person - ceil(($raum->max_person/100)*REIHUNGSTEST_ARBEITSPLAETZE_SCHWUND); + else + $orte_array[$row->ort_kurzbz] = $raum->max_person; + } + } + $arbeitsplaetze_gesamt = array_sum($orte_array); +} + if(isset($_POST['raumzuteilung_speichern'])) { if(!$rechte->isBerechtigt('lehre/reihungstest', null, 'su')) @@ -425,26 +783,38 @@ if(isset($_POST['raumzuteilung_speichern'])) { die($raumzuteilung->errormsg); } - $prestudent_ids = $_POST['checkbox']; - - foreach ($prestudent_ids AS $key=>$value) + if (isset($_POST['checkbox'])) { - // UID aus POST-String auslesen - $raumzuteilung->new = false; - $raumzuteilung->rt_id = $_POST['reihungstest_id']; - $raumzuteilung->rt_id_old = $_POST['reihungstest_id']; - $raumzuteilung->person_id = $key; - $raumzuteilung->anmeldedatum = date('Y-m-d H:i:s');; - $raumzuteilung->teilgenommen = false; - $raumzuteilung->ort_kurzbz = $_POST['raumzuteilung']; - $raumzuteilung->punkte = 0; - if (!$raumzuteilung->savePersonReihungstest()) + $person_ids = $_POST['checkbox']; + + foreach ($person_ids AS $key=>$value) { - echo 'Fehler beim Speichern der Daten: '.$db->convert_html_chars($reihungstest->errormsg).''; + //Pruefen ob Person schon Zuteilung in tbl_rt_person hat @todo: Kann weggelassen werden, wenn sichergestellt ist, dass das schon uebers FAS passiert + $checkperson = new Reihungstest(); + $checkperson->getReihungstestPerson($key); + if ($checkperson->result) + $raumzuteilung->new = false; + else + { + $raumzuteilung->new = true; + } + + $raumzuteilung->anmeldedatum = date('Y-m-d H:i:s'); // @todo: Anmeldedatum, teilgenommen und Punkte nicht immer auf defaultwerte setzen sondern nur, wenn tatsächlich neu + $raumzuteilung->teilgenommen = false; + $raumzuteilung->punkte = 0; + + $raumzuteilung->rt_id = $_POST['reihungstest_id']; + $raumzuteilung->rt_id_old = $_POST['reihungstest_id']; + $raumzuteilung->person_id = $key; + $raumzuteilung->ort_kurzbz = $_POST['raumzuteilung']; + + if (!$raumzuteilung->savePersonReihungstest()) + { + echo 'Fehler beim Speichern der Daten: '.$db->convert_html_chars($reihungstest->errormsg).''; + } } } $reihungstest_id = $_POST['reihungstest_id']; - //$stg_kz = $save_aufsicht->studiengang_kz; } $neu=false; } @@ -509,7 +879,171 @@ if(isset($_GET['type']) && $_GET['type']=='saveallrtpunkte') } } -if(isset($_POST['aufsicht'])) +// Verteilt alle BewerberInnen gleichmaessig auf die Raeume +if(isset($_GET['type']) && $_GET['type']=='verteilen') +{ + if(!$rechte->isBerechtigt('lehre/reihungstest', null, 'sui')) + { + die($rechte->errormsg); + } + + if($reihungstest_id!='') + { + $errormsg=''; + $qry = "SELECT + person_id, + vorname, + nachname, + ort_kurzbz + FROM public.tbl_prestudent + JOIN public.tbl_person USING (person_id) + LEFT JOIN public.tbl_rt_person USING (person_id) + WHERE reihungstest_id = ".$db->db_add_param($reihungstest_id, FHC_INTEGER)." + /*AND tbl_rt_person.ort_kurzbz IS NULL*/ + ORDER BY nachname,vorname "; + + $raumzuteilung = new reihungstest(); + if($result = $db->db_query($qry)) + { + $anz_personen = $db->db_num_rows($result); + + $multiplikator = $anz_personen/$arbeitsplaetze_gesamt; + foreach ($orte->result AS $ort) + { + $counter = 0; + + $anz_zugeteilte = new Reihungstest(); + $anz_zugeteilte->getPersonReihungstestOrt($reihungstest_id, $ort->ort_kurzbz); + $anz_zugeteilte = count($anz_zugeteilte->result); + + $anteil = round(($orte_array[$ort->ort_kurzbz] * $multiplikator))-$anz_zugeteilte; + + //if ($orte_array[$ort->ort_kurzbz] == 0 || ($orte_array[$ort->ort_kurzbz]-$anz_zugeteilte)<=0) + if ($orte_array[$ort->ort_kurzbz] == 0 || ($anteil - $anz_zugeteilte)<=0) + continue; + + while($row = $db->db_fetch_object($result)) + { + //Nur Personen ohne Raumzuteilung verteilen + if ($row->ort_kurzbz == '') + { + //Pruefen ob Person schon Zuteilung in tbl_rt_person hat @todo: Kann weggelassen werden, wenn sichergestellt ist, dass das schon uebers FAS passiert + $checkperson = new Reihungstest(); + $checkperson->getReihungstestPerson($row->person_id); + if ($checkperson->result) + $raumzuteilung->new = false; + else + { + $raumzuteilung->new = true; + } + $raumzuteilung->anmeldedatum = date('Y-m-d H:i:s'); + $raumzuteilung->teilgenommen = false; + $raumzuteilung->punkte = 0; + + $raumzuteilung->rt_id = $reihungstest_id; + $raumzuteilung->rt_id_old = $reihungstest_id; + $raumzuteilung->person_id = $row->person_id; + $raumzuteilung->ort_kurzbz = $ort->ort_kurzbz; + if (!$raumzuteilung->savePersonReihungstest()) + { + echo 'Fehler beim Speichern der Daten: '.$db->convert_html_chars($raumzuteilung->errormsg).''; + } + $counter++; + + //Wenn 0 Arbeitsplaetze vorhanden sind oder die max. Arbeitsplatzanzahl erreicht ist + if ($orte_array[$ort->ort_kurzbz] == 0 || ($anteil - $counter)<=0) + break; + + /*if ($counter==$pers_pro_raum || $counter==$arbeitsplaetze) + break;*/ + } + } + } + } + + } + $neu=false; +} + +// Fuellt die Raeume aufsteigend mit BewerberInnen an +if(isset($_GET['type']) && $_GET['type']=='auffuellen') +{ + if(!$rechte->isBerechtigt('lehre/reihungstest', null, 'sui')) + { + die($rechte->errormsg); + } + + if($reihungstest_id!='') + { + $orte = new Reihungstest(); + $orte->getOrteReihungstest($reihungstest_id); + + $errormsg=''; + $qry = "SELECT + person_id, + vorname, + nachname, + ort_kurzbz + FROM public.tbl_prestudent + JOIN public.tbl_person USING (person_id) + LEFT JOIN public.tbl_rt_person USING (person_id) + WHERE reihungstest_id = ".$db->db_add_param($reihungstest_id, FHC_INTEGER)." + AND tbl_rt_person.ort_kurzbz IS NULL + ORDER BY nachname,vorname "; + + $raumzuteilung = new reihungstest(); + if($result = $db->db_query($qry)) + { + //$anz_personen = $db->db_num_rows($result); + //$pers_pro_raum = ceil($anz_personen/$anz_orte); + foreach ($orte->result AS $ort) + { + $counter = 0; + + $anz_zugeteilte = new Reihungstest(); + $anz_zugeteilte->getPersonReihungstestOrt($reihungstest_id, $ort->ort_kurzbz); + $anz_zugeteilte = count($anz_zugeteilte->result); + + if ($orte_array[$ort->ort_kurzbz] == 0 || ($orte_array[$ort->ort_kurzbz]-$anz_zugeteilte)<=0) + continue; + + while($row = $db->db_fetch_object($result)) + { + //Pruefen ob Person schon Zuteilung in tbl_rt_person hat @todo: Kann weggelassen werden, wenn sichergestellt ist, dass das schon uebers FAS passiert + $checkperson = new Reihungstest(); + $checkperson->getReihungstestPerson($row->person_id); + if ($checkperson->result) + $raumzuteilung->new = false; + else + { + $raumzuteilung->new = true; + } + $raumzuteilung->anmeldedatum = date('Y-m-d H:i:s'); + $raumzuteilung->teilgenommen = false; + $raumzuteilung->punkte = 0; + + $raumzuteilung->rt_id = $reihungstest_id; + $raumzuteilung->rt_id_old = $reihungstest_id; + $raumzuteilung->person_id = $row->person_id; + $raumzuteilung->ort_kurzbz = $ort->ort_kurzbz; + if (!$raumzuteilung->savePersonReihungstest()) + { + echo 'Fehler beim Speichern der Daten: '.$db->convert_html_chars($raumzuteilung->errormsg).''; + } + $counter++; + + //Wenn 0 Arbeitsplaetze vorhanden sind oder die max. Arbeitsplatzanzahl erreicht ist + if ($orte_array[$ort->ort_kurzbz] == 0 || ($orte_array[$ort->ort_kurzbz]-($anz_zugeteilte+$counter))<=0) + break; + } + } + } + + } + $neu=false; +} + +if(isset($_POST['aufsicht']) && $_POST['aufsicht']!='' && !isset($_POST['kopieren'])) { if(!$rechte->isBerechtigt('lehre/reihungstest', null, 'su')) @@ -533,20 +1067,28 @@ if(isset($_POST['aufsicht'])) // UID aus POST-String auslesen $length = (strrpos($value, ')')) - (strpos($value, '(')); $uid = substr($value,strpos($value, '(')+1, $length-1); - $save_aufsicht->new = false; - $save_aufsicht->rt_id = $_POST['reihungstest_id']; - $save_aufsicht->ort_kurzbz = $key; - $save_aufsicht->uid = $uid; - if (!$save_aufsicht->saveOrtReihungstest()) + + $benutzer = new benutzer(); + if ($uid!='' && !$benutzer->load($uid)) + echo 'Die UID '.$value.' konnte nicht gefunden werden'; + else { - echo 'Fehler beim Speichern der Daten: '.$db->convert_html_chars($reihungstest->errormsg).''; - } + $save_aufsicht->new = false; + $save_aufsicht->rt_id = $_POST['reihungstest_id']; + $save_aufsicht->ort_kurzbz = $key; + $save_aufsicht->uid = $uid; + if (!$save_aufsicht->saveOrtReihungstest()) + { + echo 'Fehler beim Speichern der Daten: '.$db->convert_html_chars($reihungstest->errormsg).''; + } + } } $reihungstest_id = $save_aufsicht->reihungstest_id; $stg_kz = $save_aufsicht->studiengang_kz; } $neu=false; } + if(isset($_POST['delete_ort'])) { if(!$rechte->isBerechtigt('lehre/reihungstestOrt', null, 'suid')) @@ -557,19 +1099,28 @@ if(isset($_POST['delete_ort'])) if(isset($_POST['reihungstest_id']) && $_POST['reihungstest_id']!='') { $delete_ort = new reihungstest(); + $delete_ort->getPersonReihungstestOrt($_POST['reihungstest_id'], $_POST['delete_ort']); + + if (count($delete_ort->result) == 0) + { + if (!$delete_ort->deleteOrtReihungstest($_POST['reihungstest_id'], $_POST['delete_ort'])) + echo 'Fehler beim löschen der Raumzuordnung: '.$db->convert_html_chars($reihungstest->errormsg).''; + } + else + echo 'Dem Raum '.$_POST['delete_ort'].' sind noch '.count($delete_ort->result).' Personen zugeteilt. Bitte entfernen Sie zuerst diese Zuteilungen'; + - if (!$delete_ort->deleteOrtReihungstest($_POST['reihungstest_id'], $_POST['delete_ort'])) - echo 'Fehler beim löschen der Raumzuordnung: '.$db->convert_html_chars($reihungstest->errormsg).''; $reihungstest_id = $_POST['reihungstest_id']; + $studiensemester_kurzbz = $_POST['studiensemester_kurzbz']; } $neu=false; } //var_dump($_POST); -echo '
'; - +echo '"; -echo "
'; +// Studiengang DropDown echo ""; + +// Studiensemester DropDown +echo ""; @@ -596,7 +1166,7 @@ $reihungstest = new reihungstest(); if($stg_kz==-1) $reihungstest->getAll(date('Y').'-01-01'); //Alle Reihungstests ab diesem Jahr laden else - $reihungstest->getReihungstest($stg_kz,'datum DESC,uhrzeit DESC'); + $reihungstest->getReihungstest($stg_kz,'datum DESC,uhrzeit DESC',$studiensemester_kurzbz); echo "'; echo ""; -echo ""; -if($rechte->isBerechtigt('basis/testtool', null, 'suid')) -{ - echo 'Administration
'; -} -echo 'Auswertung'; -echo "

"; +echo '  '; +echo "
"; if($reihungstest_id=='') $neu=true; @@ -642,14 +1206,17 @@ else $reihungstest->uhrzeit = date('H:i:s'); $reihungstest->anmeldefrist = date('Y-m-d', time() - 60 * 60 * 24); } + //Formular zum Bearbeiten des Reihungstests ?> -?stg_kz=&neu=true"' >
'> + + '; //echo ''; @@ -734,6 +1313,10 @@ else echo ''; ?> +
+ @@ -708,9 +1290,6 @@ else { //echo ''; echo ''; - $arbeitsplaetze_sum = $arbeitsplaetze_sum + $arbeitsplaetze; + $arbeitsplaetze_sum = $arbeitsplaetze_sum + $orte_array[$row->ort_kurzbz]; } echo '
Studiengang @@ -687,6 +1254,21 @@ else +   Studiensemester +
 '; //echo '
'; - $ort = new ort(); - $ort->load($row->ort_kurzbz); - $arbeitsplaetze = $ort->arbeitsplaetze - (ceil(($ort->arbeitsplaetze/100)*REIHUNGSTEST_ARBEITSPLAETZE_SCHWUND)); $person = new Person(); $person->getPersonFromBenutzer($row->uid); if ($row->uid != '') @@ -718,14 +1297,14 @@ else else $anzeigename = ''; //echo '
'.$row->ort_kurzbz; - echo '
'.$row->ort_kurzbz.' ('.$arbeitsplaetze.' Personen)'; + echo '
'.$row->ort_kurzbz.' ('.$orte_array[$row->ort_kurzbz].' Personen)'; //echo ' '; echo ' '; if ($rechte->isBerechtigt('lehre/reihungstestOrt', null, 'suid')) echo ''; //echo '
Nach dem Anlegen eines Termins, können Sie Räume zuordnen
+ + + @@ -787,7 +1370,14 @@ else $val = 'Neu anlegen'; ?> - + + +
Anmerkung (max. 64 Zeichen)
+ + Kopie erstellen'; ?> +
+
@@ -796,22 +1386,17 @@ else '; - echo "Excel Icon Excel Export"; - echo ''; - echo "alle Punkte ins FAS übertragen"; - echo ''; - - //Liste der Interessenten die zum Reihungstest angemeldet sind +//Liste der Interessenten die zum Reihungstest angemeldet sind $qry = "SELECT - prestudent_id, - person_id, - vorname, - nachname, - ort_kurzbz, - studiengang_kz, - gebdatum, - rt_punkte1 + prestudent_id, + person_id, + vorname, + nachname, + ort_kurzbz, + studiengang_kz, + gebdatum, + geschlecht, + rt_punkte1 ,( SELECT kontakt FROM tbl_kontakt @@ -830,7 +1415,7 @@ if($reihungstest_id!='') AND status_kurzbz = 'Interessent' ) LIMIT 1 ) AS ausbildungssemester - ,( + ,( SELECT orgform_kurzbz FROM public.tbl_prestudentstatus WHERE prestudent_id = tbl_prestudent.prestudent_id @@ -843,103 +1428,152 @@ if($reihungstest_id!='') ) AS orgform_kurzbz FROM public.tbl_prestudent JOIN public.tbl_person USING (person_id) - LEFT JOIN public.tbl_rt_person USING (person_id) + LEFT JOIN public.tbl_rt_person USING (person_id) WHERE reihungstest_id = ".$db->db_add_param($reihungstest_id, FHC_INTEGER)." ORDER BY ort_kurzbz NULLS FIRST,nachname,vorname "; +//echo $qry; +$mailto = ''; +$result_arr = array(); - $mailto = ''; - $result_arr = array(); - if($result = $db->db_query($qry)) - while($row = $db->db_fetch_object($result)) - $result_arr[] = $row; - //var_dump($result_arr); - echo ''; +$orte = new Reihungstest(); +$orte->getOrteReihungstest($reihungstest_id); +$orte_zuteilung_array = array(); +$orte_zuteilung_array['ohne'] = 0; +foreach ($orte->result AS $row) + $orte_zuteilung_array[$row->ort_kurzbz] = 0; + +if($result = $db->db_query($qry)) +{ + while($row = $db->db_fetch_object($result)) + { + $result_arr[] = $row; + + if (is_null($row->ort_kurzbz)) + $orte_zuteilung_array['ohne']++; + else + $orte_zuteilung_array[$row->ort_kurzbz]++; + } +} echo 'Anzahl: '.$db->db_num_rows($result).'/'.($reihungstest->max_teilnehmer!=''?$reihungstest->max_teilnehmer:$arbeitsplaetze_sum).''; + echo '
'; + echo 'Excel Export'; + echo 'Punkte ins FAS übertragen'; + echo 'Auswertung'; + if($rechte->isBerechtigt('basis/testtool', null, 'suid')) + { + echo 'Administration
'; + } + echo '
'; + echo '
ID
'; + echo '
Geschlecht
'; + echo '
Studiengang
'; + echo '
OrgForm
'; + echo '
Einstiegssemester
'; + echo '
Geburtsdatum
'; + echo '
EMail
'; + echo '
Absolvierte Tests
'; + echo '
Ergebnis
'; + echo '
FAS
'; + echo '
'; + echo '
'; + echo ''; + + $pruefling = new pruefling(); - $orte = new Reihungstest(); - $orte->getOrteReihungstest($reihungstest->reihungstest_id); $cnt = 0; - foreach ($orte->result AS $ort) + if ($orte_zuteilung_array['ohne']>0) { - $cnt++; echo ''; } + foreach ($orte->result AS $ort) + { + $cnt++; + + echo ''; + }
'; - echo '
'.$ort->ort_kurzbz.'
'; - echo '
'; + echo '
Ohne Raumzuteilung ('.$orte_zuteilung_array['ohne'].')
'; + echo ''; + echo ''; echo ''; echo ' - - - + + - - - - - - - - + + + + + + + + + + '; - foreach ($result_arr AS $row) { - if(defined('FAS_REIHUNGSTEST_PUNKTE') && FAS_REIHUNGSTEST_PUNKTE) - $rtergebnis = $pruefling->getReihungstestErgebnis($row->prestudent_id,true); - else - $rtergebnis = $pruefling->getReihungstestErgebnis($row->prestudent_id); - $prestudent = new prestudent(); - $prestudent->getPrestudenten($row->person_id); $rt_in_anderen_stg=''; - foreach($prestudent->result as $item) + $rtergebnis = ''; + if(defined('REIHUNGSTEST_ERGEBNISSE_BERECHNEN') && REIHUNGSTEST_ERGEBNISSE_BERECHNEN) { - if($item->prestudent_id!=$row->prestudent_id) + if(defined('FAS_REIHUNGSTEST_PUNKTE') && FAS_REIHUNGSTEST_PUNKTE) + $rtergebnis = $pruefling->getReihungstestErgebnis($row->prestudent_id,true); + else + $rtergebnis = $pruefling->getReihungstestErgebnis($row->prestudent_id); + $prestudent = new prestudent(); + $prestudent->getPrestudenten($row->person_id); + $rt_in_anderen_stg=''; + foreach($prestudent->result as $item) { - if(defined('FAS_REIHUNGSTEST_PUNKTE') && FAS_REIHUNGSTEST_PUNKTE) - $erg = $pruefling->getReihungstestErgebnis($item->prestudent_id, true); - else - $erg = $pruefling->getReihungstestErgebnis($item->prestudent_id); - if($erg!=0) + if($item->prestudent_id!=$row->prestudent_id) { - $rt_in_anderen_stg.=number_format($erg,2).' Punkte im Studiengang '.$studiengang->kuerzel_arr[$item->studiengang_kz].'
'; + if(defined('FAS_REIHUNGSTEST_PUNKTE') && FAS_REIHUNGSTEST_PUNKTE) + $erg = $pruefling->getReihungstestErgebnis($item->prestudent_id, true); + else + $erg = $pruefling->getReihungstestErgebnis($item->prestudent_id); + if($erg!=0) + { + $rt_in_anderen_stg.=number_format($erg,2).' Punkte im Studiengang '.$studiengang->kuerzel_arr[$item->studiengang_kz].'
'; + } + } - } } - if ($row->ort_kurzbz == $ort->ort_kurzbz) + if ($row->ort_kurzbz == '') { echo ' - - - + + - - - - - - - - + + + + + + + + + + '; - + $mailto.= ($mailto!=''?',':'').$row->email; } } echo '
 IDVorname + + + + + ID NachnameStudiengangOrgFormEinstiegssemesterGeburtsdatumEMailbereits absolvierte VerfahrenErgebnisFASVornameGeschlechtStudiengangOrgFormEinstiegssemesterGeburtsdatumEMailbereits absolvierte VerfahrenErgebnisFAS
'.$db->convert_html_chars($row->prestudent_id).''.$db->convert_html_chars($row->vorname).''.$db->convert_html_chars($row->prestudent_id).' '.$db->convert_html_chars($row->nachname).''.$db->convert_html_chars($stg_arr[$row->studiengang_kz]).''.$db->convert_html_chars($row->orgform_kurzbz).''.$db->convert_html_chars($row->ausbildungssemester).''.$db->convert_html_chars($datum_obj->convertISODate($row->gebdatum)).''.$rt_in_anderen_stg.''.($rtergebnis==0?'-':number_format($rtergebnis,2,'.','')).''.($rtergebnis!=0 && $row->rt_punkte1==''?'übertragen':$row->rt_punkte1).''.$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==0?'-':number_format($rtergebnis,2,'.','')).''.($rtergebnis!=0 && $row->rt_punkte1==''?'übertragen':$row->rt_punkte1).'
'; - + echo '
'; + if ($orte_array[$ort->ort_kurzbz] - $orte_zuteilung_array[$ort->ort_kurzbz] < 0) + $style = 'text-align: center; margin: 0 5px 0 5px; color: red'; + else + $style = 'text-align: center; margin: 0 5px 0 5px;'; + echo '
'.$ort->ort_kurzbz.' ('.$orte_zuteilung_array[$ort->ort_kurzbz].'/'.$orte_array[$ort->ort_kurzbz].')
'; + + if ($orte_zuteilung_array[$ort->ort_kurzbz]>0) + { + echo ''; + echo ''; + echo ' + + + + + + + + + + + + + + + + + + '; + $cnt_personen = 0; + foreach ($result_arr AS $row) + { + $rt_in_anderen_stg=''; + $rtergebnis = ''; + if(defined('REIHUNGSTEST_ERGEBNISSE_BERECHNEN') && REIHUNGSTEST_ERGEBNISSE_BERECHNEN) + { + if(defined('FAS_REIHUNGSTEST_PUNKTE') && FAS_REIHUNGSTEST_PUNKTE) + $rtergebnis = $pruefling->getReihungstestErgebnis($row->prestudent_id,true); + else + $rtergebnis = $pruefling->getReihungstestErgebnis($row->prestudent_id); + $prestudent = new prestudent(); + $prestudent->getPrestudenten($row->person_id); + $rt_in_anderen_stg=''; + foreach($prestudent->result as $item) + { + if($item->prestudent_id!=$row->prestudent_id) + { + if(defined('FAS_REIHUNGSTEST_PUNKTE') && FAS_REIHUNGSTEST_PUNKTE) + $erg = $pruefling->getReihungstestErgebnis($item->prestudent_id, true); + else + $erg = $pruefling->getReihungstestErgebnis($item->prestudent_id); + if($erg!=0) + { + $rt_in_anderen_stg.=number_format($erg,2).' Punkte im Studiengang '.$studiengang->kuerzel_arr[$item->studiengang_kz].'
'; + } + + } + } + } + if ($row->ort_kurzbz == $ort->ort_kurzbz) + { + $cnt_personen++; + echo ' + + + + + + + + + + + + + + + '; + + $mailto.= ($mailto!=''?',':'').$row->email; + } + } + if (1==0) + { + echo ' + + + + + + + + + + + + + + + '; + } + echo '
+ + + + + IDNachnameVornameGeschlechtStudiengangOrgFormEinstiegssemesterGeburtsdatumEMailbereits absolvierte VerfahrenErgebnisFAS
'.$db->convert_html_chars($row->prestudent_id).''.$db->convert_html_chars($row->nachname).''.$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==0?'-':number_format($rtergebnis,2,'.','')).''.($rtergebnis!=0 && $row->rt_punkte1==''?'übertragen':$row->rt_punkte1).'
-------------
'; + + echo ''; + echo ''; + echo ''; + } + else + echo '
Leer
'; + + echo '