diff --git a/content/student/aufnahmetermine.js.php b/content/student/aufnahmetermine.js.php index a3cafefef..5d4d7b6af 100644 --- a/content/student/aufnahmetermine.js.php +++ b/content/student/aufnahmetermine.js.php @@ -20,17 +20,16 @@ require_once('../../config/vilesci.config.inc.php'); ?> // ********** FUNKTIONEN ********** // -var AufnahmeTerminePrestudentID=''; -var AufnahmeTerminStudiengang=''; +var AufnahmeterminePrestudentID=''; +var AufnahmeTermineStudienplanID=''; // **** // * Laedt die Trees // **** -function loadAufnahmeTermine(prestudent_id, studiengang_kz) +function loadAufnahmeTermine(prestudent_id) { netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); AufnahmeTerminePrestudentID = prestudent_id; - AufnahmeTerminStudiengang = studiengang_kz AufnahmeTermineLoadTree(); document.getElementById('aufnahmetermine-textbox-gesamtpunkte').disabled=false; @@ -42,20 +41,26 @@ function loadAufnahmeTermine(prestudent_id, studiengang_kz) var url = 'rdf/student.rdf.php?prestudent_id='+prestudent_id+'&'+gettimestamp(); var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"]. - getService(Components.interfaces.nsIRDFService); + getService(Components.interfaces.nsIRDFService); - var dsource = rdfService.GetDataSourceBlocking(url); + var dsource = rdfService.GetDataSourceBlocking(url); var subject = rdfService.GetResource("http://www.technikum-wien.at/student/" + prestudent_id); var predicateNS = "http://www.technikum-wien.at/student/rdf"; punkte = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#punkte" )); + reihungstestangetreten = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#reihungstestangetreten" )); document.getElementById('aufnahmetermine-textbox-gesamtpunkte').value=punkte; + if(reihungstestangetreten=='true') + document.getElementById('aufnahmetermine-checkbox-reihungstestangetreten').checked=true; + else + document.getElementById('aufnahmetermine-checkbox-reihungstestangetreten').checked=false; + AufnahmeTermineStudienplanID = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#studienplan_id" )); // ReihungstestDropDown laden var reihungstestmenulist = document.getElementById('aufnahmetermine-menulist-reihungstest'); - var url="rdf/reihungstest.rdf.php?optional=true&studiengang_kz="+AufnahmeTerminStudiengang; + var url="rdf/reihungstest.rdf.php?optional=true&prestudent_id="+AufnahmeTerminePrestudentID; //Alte DS entfernen var oldDatasources = reihungstestmenulist.database.GetDataSources(); @@ -121,6 +126,7 @@ function AufnahmeTermineLoadTree() function AufnahmeTermineSaveGesamtpunkte() { var punkte = document.getElementById('aufnahmetermine-textbox-gesamtpunkte').value; + var reihungstestangetreten = document.getElementById('aufnahmetermine-checkbox-reihungstestangetreten').checked; var url = 'content/student/studentDBDML.php'; var req = new phpRequest(url,'',''); @@ -128,6 +134,7 @@ function AufnahmeTermineSaveGesamtpunkte() req.add('prestudent_id', AufnahmeTerminePrestudentID); req.add('punkte', punkte); + req.add('reihungstestangetreten',reihungstestangetreten); var response = req.executePOST(); var val = new ParseReturnValue(response); @@ -185,18 +192,17 @@ function AufnahmeTermineAuswahl() AufnahmeTermineDisableFields(false); //Ausgewaehlten Eintrag holen - var rt_id = getTreeCellText(tree, 'aufnahmetermine-tree-rt_id', tree.currentIndex); - var person_id = getTreeCellText(tree, 'aufnahmetermine-tree-person_id', tree.currentIndex); + var rt_person_id = getTreeCellText(tree, 'aufnahmetermine-tree-rt_person_id', tree.currentIndex); //Daten holen - var url = 'rdf/aufnahmetermine.rdf.php?person_id='+person_id+'&rt_id='+rt_id+'&'+gettimestamp(); + var url = 'rdf/aufnahmetermine.rdf.php?rt_person_id='+rt_person_id+'&'+gettimestamp(); var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"]. - getService(Components.interfaces.nsIRDFService); + getService(Components.interfaces.nsIRDFService); - var dsource = rdfService.GetDataSourceBlocking(url); + var dsource = rdfService.GetDataSourceBlocking(url); - var subject = rdfService.GetResource("http://www.technikum-wien.at/aufnahmetermine/"+rt_id+'/'+person_id); + var subject = rdfService.GetResource("http://www.technikum-wien.at/aufnahmetermine/"+rt_person_id); var predicateNS = "http://www.technikum-wien.at/aufnahmetermine/rdf"; @@ -208,8 +214,9 @@ function AufnahmeTermineAuswahl() var teilgenommen = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#teilgenommen" )); var punkte = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#punkte" )); var ort = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#ort_kurzbz" )); + var studienplan_id = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#studienplan_id" )); - document.getElementById('aufnahmetermine-textbox-rt_id').value=rt_id; + document.getElementById('aufnahmetermine-textbox-rt_person_id').value=rt_person_id; document.getElementById('aufnahmetermine-textbox-person_id').value=person_id; document.getElementById('aufnahmetermine-checkbox-neu').checked=false; document.getElementById('aufnahmetermine-textbox-anmeldungreihungstest').value=anmeldedatum; @@ -220,6 +227,7 @@ function AufnahmeTermineAuswahl() else document.getElementById('aufnahmetermine-checkbox-teilgenommen').checked=false; document.getElementById('aufnahmetermine-textbox-punkte').value=punkte; + document.getElementById('aufnahmetermine-textbox-studienplan_id').value=studienplan_id; } function AufnahmeTermineNeu() @@ -233,8 +241,7 @@ function AufnahmeTermineNeu() */ function AufnahmeTermineDelete() { - var rt_id = document.getElementById('aufnahmetermine-textbox-rt_id').value; - var person_id = document.getElementById('aufnahmetermine-textbox-person_id').value; + var rt_person_id = document.getElementById('aufnahmetermine-textbox-rt_person_id').value; if(!confirm("Wollen Sie diesen Eintrag wirklich löschen?")) return; @@ -243,10 +250,7 @@ function AufnahmeTermineDelete() var req = new phpRequest(url,'',''); req.add('type', 'AufnahmeTermineDelete'); - - req.add('rt_id', rt_id); - req.add('person_id', person_id); - req.add('prestudent_id', AufnahmeTerminePrestudentID); + req.add('rt_person_id', rt_person_id); var response = req.executePOST(); var val = new ParseReturnValue(response); @@ -268,7 +272,28 @@ function AufnahmeTermineDelete() function AufnahemTermineReihungstestPunkteTransmit() { - // TODO + var url = 'content/student/studentDBDML.php'; + var req = new phpRequest(url,'',''); + + req.add('type', 'getReihungstestPunkte'); + + req.add('prestudent_id', AufnahmeTerminePrestudentID); + + var response = req.executePOST(); + + var val = new ParseReturnValue(response) + + if (!val.dbdml_return) + { + if(val.dbdml_errormsg=='') + alert(response) + else + alert(val.dbdml_errormsg) + } + else + { + document.getElementById('aufnahmetermine-textbox-punkte').value = val.dbdml_data; + } } /** @@ -276,7 +301,8 @@ function AufnahemTermineReihungstestPunkteTransmit() */ function AufnahmeTermineSpeichern() { - var rt_id = document.getElementById('aufnahmetermine-textbox-rt_id').value; + var rt_person_id = document.getElementById('aufnahmetermine-textbox-rt_person_id').value; + var rt_id = document.getElementById('aufnahmetermine-menulist-reihungstest').value; var person_id = document.getElementById('aufnahmetermine-textbox-person_id').value; var neu = document.getElementById('aufnahmetermine-checkbox-neu').checked; var anmeldedatum = document.getElementById('aufnahmetermine-textbox-anmeldungreihungstest').iso; @@ -284,14 +310,15 @@ function AufnahmeTermineSpeichern() var teilgenommen = document.getElementById('aufnahmetermine-checkbox-teilgenommen').checked; var punkte = document.getElementById('aufnahmetermine-textbox-punkte').value; var ort = document.getElementById('aufnahmetermine-menulist-ort').value; + var studienplan_id = document.getElementById('aufnahmetermine-textbox-studienplan_id').value; var url = 'content/student/studentDBDML.php'; var req = new phpRequest(url,'',''); req.add('type', 'AufnahmeTermineSave'); - req.add('rt_id_old', rt_id); - req.add('rt_id_new', rt_id_new); + req.add('rt_id', rt_id); + req.add('rt_person_id', rt_person_id); req.add('person_id', person_id); req.add('prestudent_id', AufnahmeTerminePrestudentID); req.add('neu', neu); @@ -299,6 +326,7 @@ function AufnahmeTermineSpeichern() req.add('teilgenommen', teilgenommen); req.add('punkte', punkte); req.add('ort_kurzbz', ort); + req.add('studienplan_id', studienplan_id); var response = req.executePOST(); var val = new ParseReturnValue(response); @@ -313,6 +341,8 @@ function AufnahmeTermineSpeichern() } else { + document.getElementById('aufnahmetermine-textbox-rt_person_id').value=val.dbdml_data; + document.getElementById('aufnahmetermine-checkbox-neu').checked=false; AufnahmeTermineLoadTree(); return true; } @@ -343,9 +373,10 @@ function AufnahmeTermineResetFields() document.getElementById('aufnahmetermine-textbox-anmeldungreihungstest').value=''; document.getElementById('aufnahmetermine-menulist-reihungstest').value=''; document.getElementById('aufnahmetermine-menulist-ort').value=''; - document.getElementById('aufnahmetermine-textbox-rt_id').value=''; document.getElementById('aufnahmetermine-textbox-person_id').value=''; document.getElementById('aufnahmetermine-checkbox-neu').checked=true; + document.getElementById('aufnahmetermine-textbox-rt_person_id').value=''; + document.getElementById('aufnahmetermine-textbox-studienplan_id').value=AufnahmeTermineStudienplanID; } @@ -372,7 +403,7 @@ function AufnahmeTermineReihungstestDropDownRefresh() { netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); var tree = document.getElementById('aufnahmetermine-menulist-reihungstest'); - var url="rdf/reihungstest.rdf.php?optional=true&"+gettimestamp(); + var url="rdf/reihungstest.rdf.php?optional=true&prestudent_id="+AufnahmeTerminePrestudentID+"&"+gettimestamp(); //Alte DS entfernen var oldDatasources = tree.database.GetDataSources(); diff --git a/content/student/aufnahmetermine.xul.php b/content/student/aufnahmetermine.xul.php index c2c8e5826..792623fbf 100644 --- a/content/student/aufnahmetermine.xul.php +++ b/content/student/aufnahmetermine.xul.php @@ -42,8 +42,7 @@ echo ' echo ''; $prestudent_id = filter_input(INPUT_GET,'prestudent_id'); -$prestudent = new prestudent(); -$prestudent->load($prestudent_id); + echo ' variable->locale.'/fas.dtd'); @@ -53,7 +52,7 @@ echo ']> studiengang_kz."'"; ?>);" + onload="loadAufnahmeTermine();" > - + @@ -559,7 +488,7 @@ if(isset($_GET['excel'])) { //Ausgeaehlte Ressource zuweisen und Textfeld wieder leeren $(this.id).val(ui.item.uid); - } + } }); $("#studienplan_autocomplete").autocomplete({ @@ -581,12 +510,12 @@ if(isset($_GET['excel'])) } }); - if (typeof(Storage) !== 'undefined') + if (typeof(Storage) !== 'undefined') { let 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 (let i of arr) + for (let i of arr) { - if (localStorage.getItem(i) != null) + if (localStorage.getItem(i) != null) { $('.'+i).css('display', localStorage.getItem(i)); if (localStorage.getItem(i) == 'none') @@ -595,8 +524,8 @@ if(isset($_GET['excel'])) document.getElementById(i).className = 'active'; } } - } - else + } + else { alert('Local Storage nicht unterstuetzt'); } @@ -609,7 +538,7 @@ if(isset($_GET['excel'])) sortList: [[2,0],[3,0]], headers: {0: { sorter: false}} }); - + $("#toggle_"+v.id).on('click', function(e) { $("#"+v.id).checkboxes('toggle'); e.preventDefault(); @@ -619,7 +548,7 @@ if(isset($_GET['excel'])) $("#"+v.id).checkboxes('uncheck'); e.preventDefault(); }); - + $("#"+v.id).checkboxes('range', true); }); }); @@ -653,7 +582,7 @@ if(isset($_GET['excel'])) var studiengang_kz = $('#studiengang_dropdown'+type).val(); var studiensemester_kurzbz = $('#studiensemester_dropdown'+type).val(); - + $.ajax({ url: "reihungstestverwaltung_autocomplete.php", data: { 'autocomplete':'getStudienplan', @@ -662,7 +591,7 @@ if(isset($_GET['excel'])) }, type: "POST", dataType: "json", - success: function(data) + success: function(data) { $("#studienplan_dropdown"+type).empty(); $("#studienplan_dropdown"+type).append(''); @@ -673,7 +602,7 @@ if(isset($_GET['excel'])) $("#studienplan_dropdown"+type).append(''); }); }, - error: function(data) + error: function(data) { alert("Fehler beim Laden der Daten: "+data); } @@ -683,77 +612,77 @@ if(isset($_GET['excel'])) -

Reihungstest - Verwaltung

+

Reihungstest - Verwaltung

freigeschaltet = false; $reihungstest->max_teilnehmer = ''; $reihungstest->oeffentlich = false; @@ -841,17 +769,16 @@ if(isset($_POST['speichern']) || isset($_POST['kopieren'])) $reihungstest->anmerkung = $_POST['anmerkung']; $reihungstest->datum = $datum_obj->formatDatum($_POST['datum']); $reihungstest->uhrzeit = $_POST['uhrzeit']; - if($reihungstest->save()) { if (isset($_POST['ort_kurzbz']) && $_POST['ort_kurzbz']!='') { $ort = new ort(); - + if (!$ort->load($_POST['ort_kurzbz'])) echo 'Die Bezeichnung des Ortes ist ungueltig oder wurde nicht gefunden'; - else + else { if($rechte->isBerechtigt('lehre/reihungstestOrt', null, 'sui')) { @@ -874,7 +801,7 @@ if(isset($_POST['speichern']) || isset($_POST['kopieren'])) $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 '; @@ -882,43 +809,26 @@ if(isset($_POST['speichern']) || isset($_POST['kopieren'])) else echo 'Fehler beim Speichern der Raumzuordnung: '.$db->convert_html_chars($reihungstest->errormsg).''; } - else + else echo 'Der Raum '.$_POST['ort_kurzbz'].' ist bereits diesem Reihungstest zugeteilt'; } - else + else die($rechte->errormsg); } } if (isset($_POST['studienplan_id']) && $_POST['studienplan_id']!='') { - /*$rt_stpl = new reihungstest(); - $rt_stpl->getOrteReihungstest($reihungstest->reihungstest_id); - $zugeteilt = false; - foreach ($orte_zugeteilt->result AS $row) + $rt_stpl = new reihungstest(); + $rt_stpl->new = true; + $rt_stpl->rt_id = $reihungstest->reihungstest_id; + $rt_stpl->studienplan_id = $_POST['studienplan_id']; + + if ($rt_stpl->saveStudienplanReihungstest()) { - if ($row->ort_kurzbz == $_POST['ort_kurzbz']) - { - $zugeteilt = true; - break; - } + echo 'Daten wurden erfolgreich gespeichert '; } - // Check, ob der Raum schon diesem RT zugeteilt ist - if ($zugeteilt == false) - {*/ - $rt_stpl = new reihungstest(); - $rt_stpl->new = true; - $rt_stpl->rt_id = $reihungstest->reihungstest_id; - $rt_stpl->studienplan_id = $_POST['studienplan_id']; - - if ($rt_stpl->saveStudienplanReihungstest()) - { - echo 'Daten wurden erfolgreich gespeichert '; - } - else - echo 'Fehler beim Speichern des Studienplans: '.$db->convert_html_chars($rt_stpl->errormsg).''; - /*} - else - echo 'Der Raum '.$_POST['ort_kurzbz'].' ist bereits diesem Reihungstest zugeteilt';*/ + else + echo 'Fehler beim Speichern des Studienplans: '.$db->convert_html_chars($rt_stpl->errormsg).''; } $reihungstest_id = $reihungstest->reihungstest_id; $stg_kz = $reihungstest->studiengang_kz; @@ -946,15 +856,15 @@ if ($reihungstest_id != '' || isset($_POST['reihungstest_id'])) { 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 + $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; + else + $orte_array[$row->ort_kurzbz] = $raum->max_person; } } $arbeitsplaetze_gesamt = array_sum($orte_array); @@ -966,9 +876,9 @@ if(isset($_POST['raumzuteilung_speichern'])) { die($rechte->errormsg); } - + $raumzuteilung = new reihungstest(); - + if(isset($_POST['reihungstest_id']) && $_POST['reihungstest_id']!='') { //Reihungstest laden @@ -979,23 +889,9 @@ if(isset($_POST['raumzuteilung_speichern'])) if (isset($_POST['checkbox'])) { $person_ids = $_POST['checkbox']; - + foreach ($person_ids AS $key=>$value) { - //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); - foreach ($checkperson->result as $row) - { - if ($row->rt_id == $_POST['reihungstest_id']) - { - $raumzuteilung->new = false; - break; - } - else - $raumzuteilung->new = true; - } - $load_person = new reihungstest(); if ($load_person->getPersonReihungstest($key, $_POST['reihungstest_id'])) { @@ -1005,28 +901,15 @@ if(isset($_POST['raumzuteilung_speichern'])) $raumzuteilung->teilgenommen = $load_person->teilgenommen; $raumzuteilung->punkte = $load_person->punkte; $raumzuteilung->studienplan_id = $load_person->studienplan_id; - + $raumzuteilung->rt_id = $load_person->rt_id; $raumzuteilung->rt_id_old = $load_person->rt_id; $raumzuteilung->person_id = $key; $raumzuteilung->ort_kurzbz = $_POST['raumzuteilung']; } - else - { - $raumzuteilung->new = true; - $raumzuteilung->anmeldedatum = date('Y-m-d H:i:s'); - $raumzuteilung->teilgenommen = false; - $raumzuteilung->punkte = 0; - $raumzuteilung->studienplan_id = '1'; //@todo: Falls noch kein rt_person-Eintrag vorhanden ist, muss ein Studienplan ermittelt werden. Kann das vorkommen? Wenn ja, welchen Studienplan sollen wir nehmen? - - $raumzuteilung->rt_id = $_POST['reihungstest_id']; - $raumzuteilung->rt_id_old = $_POST['reihungstest_id']; - $raumzuteilung->person_id = $key; - $raumzuteilung->ort_kurzbz = $_POST['raumzuteilung']; - } - - - + else + die('PersonID '.$key.' hat keine korrekte Zuordnung -> Abbruch'); + if (!$raumzuteilung->savePersonReihungstest()) { echo 'Fehler beim Speichern der Daten: '.$db->convert_html_chars($reihungstest->errormsg).''; @@ -1046,10 +929,14 @@ if(isset($_GET['type']) && $_GET['type']=='savertpunkte') if($rechte->isBerechtigt('admin') || $rechte->isBerechtigt('assistenz', $prestudent->studiengang_kz, 'suid')) { - $prestudent->rt_punkte1 = str_replace(',','.',$rtpunkte); - $prestudent->punkte = str_replace(',','.',$prestudent->rt_punkte1 + $prestudent->rt_punkte2); - $prestudent->reihungstestangetreten=true; - $prestudent->save(false); + $rtperson = new reihungstest(); + $rtperson->loadReihungstestPerson($_GET['rt_person_id']); + $rtperson->punkte = $rtpunkte; + $rtperson->new=false; + if(!$rtperson->savePersonReihungstest()) + { + echo 'Fehler:'.$rtperson->errormsg.''; + } } else { @@ -1061,10 +948,16 @@ if(isset($_GET['type']) && $_GET['type']=='savertpunkte') if(isset($_GET['type']) && $_GET['type']=='saveallrtpunkte') { $errormsg=''; - $qry = "SELECT prestudent_id, tbl_prestudent.studiengang_kz, nachname, vorname, tbl_studiengang.oe_kurzbz - FROM public.tbl_prestudent JOIN public.tbl_person USING(person_id) JOIN public.tbl_studiengang USING(studiengang_kz) - WHERE reihungstest_id=".$db->db_add_param($reihungstest_id, FHC_INTEGER); - // AND (rt_punkte1='' OR rt_punkte1 is null)"; + $qry = "SELECT + prestudent_id, tbl_prestudent.studiengang_kz, nachname, vorname, tbl_studiengang.oe_kurzbz, rt_person_id + FROM + public.tbl_prestudent + JOIN public.tbl_person USING(person_id) + JOIN public.tbl_studiengang USING(studiengang_kz) + JOIN public.tbl_rt_person USING(person_id) + WHERE + tbl_rt_person.rt_id=".$db->db_add_param($reihungstest_id, FHC_INTEGER); + if($result = $db->db_query($qry)) { while($row = $db->db_fetch_object($result)) @@ -1074,17 +967,24 @@ if(isset($_GET['type']) && $_GET['type']=='saveallrtpunkte') $prestudent = new prestudent(); $prestudent->load($row->prestudent_id); - $pruefling = new pruefling(); - if(defined('FAS_REIHUNGSTEST_PUNKTE') && FAS_REIHUNGSTEST_PUNKTE) - $rtpunkte = $pruefling->getReihungstestErgebnis($row->prestudent_id,true); - else - $rtpunkte = $pruefling->getReihungstestErgebnis($row->prestudent_id); + $reihungstest = new reihungstest(); + if($reihungstest->loadReihungstestPerson($row->rt_person_id)) + { + $pruefling = new pruefling(); + if(defined('FAS_REIHUNGSTEST_PUNKTE') && FAS_REIHUNGSTEST_PUNKTE) + $rtpunkte = $pruefling->getReihungstestErgebnis($row->prestudent_id,true); + else + $rtpunkte = $pruefling->getReihungstestErgebnis($row->prestudent_id); + $reihungstest->punkte = $rtpunkte; + $reihungstest->reihungstestangetreten=true; + $reihungstest->save(false); + $reihungstest->new=false; - $prestudent->rt_punkte1 = str_replace(',','.',$rtpunkte); - $prestudent->punkte = str_replace(',','.',$prestudent->rt_punkte1 + $prestudent->rt_punkte2); - $prestudent->reihungstestangetreten=true; - - $prestudent->save(false); + if(!$reihungstest->savePersonReihungstest()) + { + $errormsg .='
Fehler:'.$reihungstest->errorsmg; + } + } } else { @@ -1105,39 +1005,40 @@ if(isset($_GET['type']) && $_GET['type']=='verteilen') { 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*/ + $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 + tbl_rt_person.rt_id = ".$db->db_add_param($reihungstest_id, FHC_INTEGER)." + AND tbl_rt_person.studienplan_id IN (SELECT studienplan_id FROM public.tbl_prestudentstatus WHERE prestudent_id=tbl_prestudent.prestudent_id) 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; @@ -1146,15 +1047,6 @@ if(isset($_GET['type']) && $_GET['type']=='verteilen') //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; - } $load_person = new reihungstest(); if ($load_person->getPersonReihungstest($row->person_id, $reihungstest_id)) { @@ -1164,7 +1056,7 @@ if(isset($_GET['type']) && $_GET['type']=='verteilen') $raumzuteilung->teilgenommen = $load_person->teilgenommen; $raumzuteilung->punkte = $load_person->punkte; $raumzuteilung->studienplan_id = $load_person->studienplan_id; - + $raumzuteilung->rt_id = $load_person->rt_id; $raumzuteilung->rt_id_old = $load_person->rt_id; $raumzuteilung->person_id = $row->person_id; @@ -1172,34 +1064,23 @@ if(isset($_GET['type']) && $_GET['type']=='verteilen') } else { - $raumzuteilung->new = true; - $raumzuteilung->anmeldedatum = date('Y-m-d H:i:s'); - $raumzuteilung->teilgenommen = false; - $raumzuteilung->punkte = 0; - $raumzuteilung->studienplan_id = '1'; //@todo: Falls noch kein rt_person-Eintrag vorhanden ist, muss ein Studienplan ermittelt werden. Kann das vorkommen? Wenn ja, welchen Studienplan sollen wir nehmen? - - $raumzuteilung->rt_id = $reihungstest_id; - $raumzuteilung->rt_id_old = $reihungstest_id; - $raumzuteilung->person_id = $row->person_id; - $raumzuteilung->ort_kurzbz = $ort->ort_kurzbz; + die('Person zuteilung nicht gefunden'); } + 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; } @@ -1211,53 +1092,47 @@ if(isset($_GET['type']) && $_GET['type']=='auffuellen') { 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 + $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 + tbl_rt_person.rt_id = ".$db->db_add_param($reihungstest_id, FHC_INTEGER)." + AND tbl_rt_person.studienplan_id IN (SELECT studienplan_id FROM public.tbl_prestudentstatus WHERE prestudent_id=tbl_prestudent.prestudent_id) + 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); - + $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; - } $load_person = new reihungstest(); + if ($load_person->getPersonReihungstest($row->person_id, $reihungstest_id)) { $raumzuteilung->new = false; @@ -1266,37 +1141,28 @@ if(isset($_GET['type']) && $_GET['type']=='auffuellen') $raumzuteilung->teilgenommen = $load_person->teilgenommen; $raumzuteilung->punkte = $load_person->punkte; $raumzuteilung->studienplan_id = $load_person->studienplan_id; - + $raumzuteilung->rt_id = $load_person->rt_id; $raumzuteilung->rt_id_old = $load_person->rt_id; $raumzuteilung->person_id = $row->person_id; $raumzuteilung->ort_kurzbz = $ort->ort_kurzbz; } 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; - } + die('Personen zuteilung nicht gefunden'); + 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; } @@ -1325,11 +1191,11 @@ if(isset($_POST['aufsicht']) && $_POST['aufsicht']!='' && !isset($_POST['kopiere // UID aus POST-String auslesen $length = (strrpos($value, ')')) - (strpos($value, '(')); $uid = substr($value,strpos($value, '(')+1, $length-1); - - $benutzer = new benutzer(); + + $benutzer = new benutzer(); if ($uid!='' && !$benutzer->load($uid)) echo 'Die UID '.$value.' konnte nicht gefunden werden'; - else + else { $save_aufsicht->new = false; $save_aufsicht->rt_id = $_POST['reihungstest_id']; @@ -1358,24 +1224,22 @@ if(isset($_POST['delete_ort'])) { $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 + else echo 'Dem Raum '.$_POST['delete_ort'].' sind noch '.count($delete_ort->result).' Personen zugeteilt. Bitte entfernen Sie zuerst diese Zuteilungen'; - - - + $reihungstest_id = $_POST['reihungstest_id']; $studiensemester_kurzbz = $_POST['studiensemester_kurzbz']; } $neu=false; } -if(isset($_POST['delete_studienplan'])) //@todo: Check, ob Zuordnungen zu diesem Studienplan vorhanden sind. Wenn ja, nicht loeschen! +if(isset($_POST['delete_studienplan'])) //@todo: Check, ob Zuordnungen zu diesem Studienplan vorhanden sind. Wenn ja, nicht loeschen! { if(isset($_POST['reihungstest_id']) && $_POST['reihungstest_id']!='') { @@ -1389,7 +1253,6 @@ if(isset($_POST['delete_studienplan'])) //@todo: Check, ob Zuordnungen zu diesem } $neu=false; } -//var_dump($_POST); echo ' - '; echo ''; echo ''; } - else - { + else + { echo ''; - + if(!$neu) { //echo ''; } - else + else echo ''; } @@ -1704,7 +1540,7 @@ $studienplaene_list = implode(',', array_keys($studienplaene_arr)); echo ''; echo ''; } - else + else { echo ''; } @@ -1716,7 +1552,7 @@ $studienplaene_list = implode(',', array_keys($studienplaene_arr)); $person->getPersonFromBenutzer($row->uid); if ($row->uid != '') $anzeigename = $person->vorname.' '.$person->nachname.' ('.$row->uid.')'; - else + else $anzeigename = ''; echo ''; @@ -1729,7 +1565,7 @@ $studienplaene_list = implode(',', array_keys($studienplaene_arr)); } //echo '
'; @@ -1448,33 +1311,6 @@ if($studienplan_id!='') $studienplan_id=''; } } -/* -// Studienplan DropDown -echo ""; -*/ // Studiensemester DropDown echo ""; foreach ($reihungstest->result as $row) @@ -1601,30 +1437,30 @@ $studienplaene_list = implode(',', array_keys($studienplaene_arr));   Studiensemester
Studienplan'; - + // Studienplan DropDown echo ""; echo '
Studienpläne'; @@ -1676,12 +1512,12 @@ $studienplaene_list = implode(',', array_keys($studienplaene_arr)); echo ''; echo ''; echo ''; - + foreach ($studienplaene->result AS $row) { $studienplan = new studienplan(); $studienplan->loadStudienplan($row->studienplan_id); - + echo ''; echo ''; echo ''; @@ -1689,7 +1525,7 @@ $studienplaene_list = implode(',', array_keys($studienplaene_arr)); } //echo '
 '.$studienplan->bezeichnung.' ('.$studienplan->studienplan_id.')
Nach dem Anlegen eines Termins, können Sie weitere Studienpläne zuordnen
Keine Berechtigung zum zuteilen von Räumen
 
'; } - else + else { echo 'Ort'; echo 'Nach dem Anlegen eines Termins, können Sie Räume zuordnen'; @@ -1824,8 +1660,8 @@ if($reihungstest_id!='') { //Liste der Interessenten die zum Reihungstest angemeldet sind $qry = " - -SELECT +SELECT +rt_person_id, rt_id, prestudent_id, tbl_rt_person.person_id, @@ -1836,7 +1672,7 @@ studienplan_id, studiengang_kz, gebdatum, geschlecht, -rt_punkte1 +punkte ,( SELECT kontakt FROM tbl_kontakt @@ -1868,61 +1704,14 @@ rt_punkte1 ) AS orgform_kurzbz FROM public.tbl_rt_person JOIN public.tbl_person USING (person_id) -JOIN public.tbl_prestudent ON (tbl_rt_person.person_id=tbl_prestudent.person_id AND tbl_rt_person.rt_id=tbl_prestudent.reihungstest_id) +JOIN public.tbl_prestudent ON (tbl_rt_person.person_id=tbl_prestudent.person_id) WHERE rt_id = ".$db->db_add_param($reihungstest_id, FHC_INTEGER); if ($studienplaene_list != '') $qry .= "AND tbl_rt_person.studienplan_id IN (".$studienplaene_list.")"; -$qry .= "ORDER BY ort_kurzbz NULLS FIRST,nachname,vorname +$qry .= " AND tbl_rt_person.studienplan_id IN(SELECT studienplan_id FROM public.tbl_prestudentstatus where prestudent_id=tbl_prestudent.prestudent_id) +ORDER BY ort_kurzbz NULLS FIRST,nachname,vorname"; -/* -SELECT -prestudent_id, -person_id, -vorname, -nachname, -ort_kurzbz, -studienplan_id, -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_rt_person -JOIN public.tbl_person USING (person_id) -JOIN public.tbl_prestudent USING (person_id) -WHERE reihungstest_id = ".$db->db_add_param($reihungstest_id, FHC_INTEGER)." -AND tbl_rt_person.studienplan_id IN (".$studienplaene_list.") -ORDER BY ort_kurzbz NULLS FIRST,nachname,vorname */"; -//echo $qry; $mailto = ''; $result_arr = array(); @@ -1938,10 +1727,10 @@ 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 + else $orte_zuteilung_array[$row->ort_kurzbz]++; } } @@ -1967,9 +1756,9 @@ if($result = $db->db_query($qry)) echo '
'; echo ''; - + $pruefling = new pruefling(); - + $cnt = 0; if ($orte_zuteilung_array['ohne']>0) { @@ -2030,7 +1819,7 @@ if($result = $db->db_query($qry)) { $rt_in_anderen_stg.=number_format($erg,2).' Punkte im Studiengang '.$studiengang->kuerzel_arr[$item->studiengang_kz].'
'; } - + } } } @@ -2052,17 +1841,17 @@ if($result = $db->db_query($qry)) - + '; $mailto.= ($mailto!=''?',':'').$row->email; } } echo '
'.$rt_in_anderen_stg.' '.($rtergebnis==0?'-':number_format($rtergebnis,2,'.','')).''.($rtergebnis!=0 && $row->rt_punkte1==''?'übertragen':$row->rt_punkte1).''.($rtergebnis!=0 && $row->punkte==''?'übertragen':$row->punkte).'
'; - + echo ''; echo ''; - + foreach ($orte->result AS $item) { if($item->ort_kurzbz==$ort->ort_kurzbz) @@ -2210,14 +1978,12 @@ if($result = $db->db_query($qry)) echo ''; echo ''; } - else + else echo '
Leer
'; - + echo ''; } - - - + echo ''; //echo "Mail an alle senden"; //@todo: Braucht man das noch oder eventuell gleich raumweise? } ?>