From 6851e75c3f1b3fffd42b84487404b887bfa9cdbb Mon Sep 17 00:00:00 2001 From: kindlm Date: Tue, 9 Aug 2016 14:58:33 +0200 Subject: [PATCH] Several changes in reihungstestverwaltung - Add multiple studienplaene --- vilesci/stammdaten/reihungstestverwaltung.php | 829 +++++++++++++----- .../reihungstestverwaltung_autocomplete.php | 164 ++++ 2 files changed, 797 insertions(+), 196 deletions(-) create mode 100644 vilesci/stammdaten/reihungstestverwaltung_autocomplete.php diff --git a/vilesci/stammdaten/reihungstestverwaltung.php b/vilesci/stammdaten/reihungstestverwaltung.php index f1979fe6e..ac1f3b808 100644 --- a/vilesci/stammdaten/reihungstestverwaltung.php +++ b/vilesci/stammdaten/reihungstestverwaltung.php @@ -47,7 +47,11 @@ require_once('../../include/adresse.class.php'); require_once('../../include/studiensemester.class.php'); require_once('../../include/benutzer.class.php'); require_once('../../include/studienplan.class.php'); +require_once('../../include/sprache.class.php'); +require_once('../../include/organisationsform.class.php'); +// @todo Allgemein: Beim kopierenauch die Studienplanzuordnungen übernehmen +// "Teilgenommen" und "Punkte" werden immer mit false bzw. 0 gespeichert define('REIHUNGSTEST_ARBEITSPLAETZE_SCHWUND', '5'); define('REIHUNGSTEST_ERGEBNISSE_BERECHNEN', false); @@ -58,13 +62,14 @@ if (!$db = new basis_db()) } $stsem_akt = new studiensemester(); -$stsem_akt = $stsem_akt->getakt(); +$stsem_akt = $stsem_akt->getaktorNext(); $user = get_uid(); $datum_obj = new datum(); $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'] : ''); +$studiensemester_kurzbz = (isset($_GET['studiensemester_kurzbz']) ? $_GET['studiensemester_kurzbz'] : $stsem_akt); +$studienplan_id = (isset($_GET['studienplan_id']) ? $_GET['studienplan_id'] : ''); $prestudent_id = (isset($_GET['prestudent_id']) ? $_GET['prestudent_id'] : ''); $rtpunkte = (isset($_GET['rtpunkte']) ? $_GET['rtpunkte'] : ''); $neu = (isset($_GET['neu']) ? true : false); @@ -74,7 +79,7 @@ $error = false; $rechte = new benutzerberechtigung(); $rechte->getBerechtigungen($user); -if ($studiensemester_kurzbz == '' && ($reihungstest_id != '' || isset($_POST['reihungstest_id']))) +if ($reihungstest_id != '' || isset($_POST['reihungstest_id'])) { if ($reihungstest_id != '') { @@ -121,6 +126,23 @@ $studiengang->getAll('typ, kurzbz', false); $studiensemester = new Studiensemester(); $studiensemester->getAll('DESC'); +$sprachen_obj = new sprache(); +$sprachen_obj->getAll(); +$sprachen_arr=array(); + +foreach($sprachen_obj->result as $row) +{ + if(isset($row->bezeichnung_arr[$sprache])) + $sprachen_arr[$row->sprache]=$row->bezeichnung_arr[$sprache]; + else + $sprachen_arr[$row->sprache]=$row->sprache; +} + +$orgform_obj = new organisationsform(); +$orgform_obj->getAll(); +$orgform_arr=array(); +foreach($orgform_obj->result as $row) + $orgform_arr[$row->orgform_kurzbz]=$row->bezeichnung; //Studierende als Excel Exportieren if(isset($_GET['excel'])) @@ -129,49 +151,49 @@ if(isset($_GET['excel'])) 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 + prestudent_id, + person_id, + vorname, + nachname, + (SELECT ort_kurzbz FROM public.tbl_rt_person WHERE rt_id = ".$db->db_add_param($reihungstest_id, FHC_INTEGER)." AND person_id=tbl_person.person_id) AS ort_kurzbz, + (SELECT studienplan_id FROM public.tbl_rt_person WHERE rt_id = ".$db->db_add_param($reihungstest_id, FHC_INTEGER)." AND person_id=tbl_person.person_id) AS 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_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"; + ORDER BY ort_kurzbz NULLS FIRST,nachname,vorname "; // Creating a workbook $workbook = new Spreadsheet_Excel_Writer(); @@ -363,7 +385,7 @@ if(isset($_GET['excel'])) }); $("#ort").autocomplete({ - source: "../lehre/reservierung_autocomplete.php?autocomplete=ort_aktiv", + source: "reihungstestverwaltung_autocomplete.php?autocomplete=ort_aktiv", minLength:2, response: function(event, ui) { @@ -382,7 +404,7 @@ if(isset($_GET['excel'])) }); $(".aufsicht_uid").autocomplete({ - source: "../../cis/private/tools/zeitaufzeichnung_autocomplete.php?autocomplete=kunde", + source: "reihungstestverwaltung_autocomplete.php?autocomplete=kunde", minLength:2, response: function(event, ui) { @@ -398,19 +420,45 @@ if(isset($_GET['excel'])) { //Ausgeaehlte Ressource zuweisen und Textfeld wieder leeren $(this.id).val(ui.item.uid); + } + }); + + $("#studienplan_autocomplete").autocomplete({ + source: "reihungstestverwaltung_autocomplete.php?autocomplete=studienplan", + minLength:2, + response: function(event, ui) + { + //Value und Label fuer die Anzeige setzen + for(i in ui.content) + { + ui.content[i].value=ui.content[i].bezeichnung; + ui.content[i].label=ui.content[i].bezeichnung; + } + }, + select: function(event, ui) + { + //Ausgewaehlte Ressource zuweisen und Textfeld wieder leeren + $("#studienplan_id").val(ui.item.studienplan_id); } - - }); + }); if (typeof(Storage) !== 'undefined') { - if (localStorage.getItem('clm_id') != null) + if (localStorage.getItem('clm_prestudent_id') != null) { - $('.clm_id').css('display', localStorage.getItem('clm_id')); - if (localStorage.getItem('clm_id') == 'none') - document.getElementById('clm_id').className = 'inactive'; + $('.clm_prestudent_id').css('display', localStorage.getItem('clm_prestudent_id')); + if (localStorage.getItem('clm_prestudent_id') == 'none') + document.getElementById('clm_prestudent_id').className = 'inactive'; else - document.getElementById('clm_id').className = 'active'; + document.getElementById('clm_prestudent_id').className = 'active'; + } + if (localStorage.getItem('clm_person_id') != null) + { + $('.clm_person_id').css('display', localStorage.getItem('clm_person_id')); + if (localStorage.getItem('clm_person_id') == 'none') + document.getElementById('clm_person_id').className = 'inactive'; + else + document.getElementById('clm_person_id').className = 'active'; } if (localStorage.getItem('clm_geschlecht') != null) { @@ -428,6 +476,14 @@ if(isset($_GET['excel'])) else document.getElementById('clm_studiengang').className = 'active'; } + if (localStorage.getItem('clm_studienplan') != null) + { + $('.clm_studienplan').css('display', localStorage.getItem('clm_studienplan')); + if (localStorage.getItem('clm_studienplan') == 'none') + document.getElementById('clm_studienplan').className = 'inactive'; + else + document.getElementById('clm_studienplan').className = 'active'; + } if (localStorage.getItem('clm_orgform') != null) { $('.clm_orgform').css('display', localStorage.getItem('clm_orgform')); @@ -534,6 +590,40 @@ if(isset($_GET['excel'])) document.getElementById(column).className = 'active'; } } + + function LoadStudienplan(type) + { + if(typeof type=='undefined') + type=''; + + var studiengang_kz = $('#studiengang_dropdown'+type).val(); + var studiensemester_kurzbz = $('#studiensemester_dropdown'+type).val(); + + $.ajax({ + url: "reihungstestverwaltung_autocomplete.php", + data: { 'autocomplete':'getStudienplan', + 'stg_kz':studiengang_kz, + 'studiensemester_kurzbz': studiensemester_kurzbz + }, + type: "POST", + dataType: "json", + success: function(data) + { + $("#studienplan_dropdown"+type).empty(); + $("#studienplan_dropdown"+type).append(''); + $.each(data, function(i, data){ + if (typeof data['sto_bezeichnung']!='undefined') + $("#studienplan_dropdown"+type).append(''); + + $("#studienplan_dropdown"+type).append(''); + }); + }, + error: function(data) + { + alert("Fehler beim Laden der Daten: "+data); + } + }); + } @@ -727,6 +834,37 @@ if(isset($_POST['speichern']) || isset($_POST['kopieren'])) 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) + { + if ($row->ort_kurzbz == $_POST['ort_kurzbz']) + { + $zugeteilt = true; + break; + } + } + // 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';*/ + } $reihungstest_id = $reihungstest->reihungstest_id; $stg_kz = $reihungstest->studiengang_kz; $studiensemester_kurzbz = $reihungstest->studiensemester_kurzbz; @@ -792,21 +930,47 @@ if(isset($_POST['raumzuteilung_speichern'])) //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) + 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'])) + { $raumzuteilung->new = false; + $raumzuteilung->rt_person_id = $load_person->rt_person_id; + $raumzuteilung->anmeldedatum = $load_person->anmeldedatum; + $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']; } - $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()) { @@ -936,14 +1100,34 @@ if(isset($_GET['type']) && $_GET['type']=='verteilen') { $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; + $load_person = new reihungstest(); + if ($load_person->getPersonReihungstest($row->person_id, $reihungstest_id)) + { + $raumzuteilung->new = false; + $raumzuteilung->rt_person_id = $load_person->rt_person_id; + $raumzuteilung->anmeldedatum = $load_person->anmeldedatum; + $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->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; + } if (!$raumzuteilung->savePersonReihungstest()) { echo 'Fehler beim Speichern der Daten: '.$db->convert_html_chars($raumzuteilung->errormsg).''; @@ -1018,14 +1202,33 @@ if(isset($_GET['type']) && $_GET['type']=='auffuellen') { $raumzuteilung->new = true; } - $raumzuteilung->anmeldedatum = date('Y-m-d H:i:s'); - $raumzuteilung->teilgenommen = false; - $raumzuteilung->punkte = 0; + $load_person = new reihungstest(); + if ($load_person->getPersonReihungstest($row->person_id, $reihungstest_id)) + { + $raumzuteilung->new = false; + $raumzuteilung->rt_person_id = $load_person->rt_person_id; + $raumzuteilung->anmeldedatum = $load_person->anmeldedatum; + $raumzuteilung->teilgenommen = $load_person->teilgenommen; + $raumzuteilung->punkte = $load_person->punkte; + $raumzuteilung->studienplan_id = $load_person->studienplan_id; - $raumzuteilung->rt_id = $reihungstest_id; - $raumzuteilung->rt_id_old = $reihungstest_id; - $raumzuteilung->person_id = $row->person_id; - $raumzuteilung->ort_kurzbz = $ort->ort_kurzbz; + $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; + } if (!$raumzuteilung->savePersonReihungstest()) { echo 'Fehler beim Speichern der Daten: '.$db->convert_html_chars($raumzuteilung->errormsg).''; @@ -1111,6 +1314,21 @@ if(isset($_POST['delete_ort'])) + $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['reihungstest_id']) && $_POST['reihungstest_id']!='') + { + $delete_studienplan = new reihungstest(); + + if (!$delete_studienplan->deleteStudienplanReihungstest($_POST['reihungstest_id'], $_POST['delete_studienplan'])) + echo 'Fehler beim löschen der Studienplanzuteilung: '.$db->convert_html_chars($delete_studienplan->errormsg).''; + $reihungstest_id = $_POST['reihungstest_id']; $studiensemester_kurzbz = $_POST['studiensemester_kurzbz']; } @@ -1127,7 +1345,7 @@ if($stg_kz==-1) else $selected=''; -echo ""; +echo ""; foreach ($studiengang->result as $row) { $stg_arr[$row->studiengang_kz] = $row->kuerzel; @@ -1141,15 +1359,71 @@ foreach ($studiengang->result as $row) echo ""."\n"; } echo ""; +$studienplan_obj = new studienplan(); +$studienplan_obj->getStudienplaeneFromSem($stg_kz, $studiensemester_kurzbz); +$studienordnung_arr = array(); +$studienplan_arr = array(); +$studienplaene_verwendet = array(); +foreach($studienplan_obj->result as $row_sto) +{ + $studienordnung_arr[$row_sto->studienordnung_id]['bezeichnung']=$row_sto->bezeichnung_studienordnung; + $studienplan_arr[$row_sto->studienordnung_id][$row_sto->studienplan_id]['bezeichnung']=$row_sto->bezeichnung_studienplan; + + $studienplan_arr[$row_sto->studienordnung_id][$row_sto->studienplan_id]['orgform_kurzbz']=$row_sto->orgform_kurzbz; + $studienplan_arr[$row_sto->studienordnung_id][$row_sto->studienplan_id]['sprache']=$sprachen_arr[$row_sto->sprache]; + $studienplaene_verwendet[$row_sto->studienplan_id] = $row_sto->bezeichnung_studienplan; +} + +// Pruefen ob uebergebene StudienplanID in Auswahl enthalten +// ist und ggf auf leer setzen +if($studienplan_id!='') +{ + $studienplan_found=false; + foreach($studienplan_arr as $stoid=>$row_sto) + { + if(array_key_exists($studienplan_id, $studienplan_arr[$stoid])) + { + $studienplan_found=true; + break; + } + } + if(!$studienplan_found) + { + $studienplan_id=''; + } +} +/* +// Studienplan DropDown +echo ""; +*/ // Studiensemester DropDown echo ""; foreach ($reihungstest->result as $row) @@ -1184,8 +1461,8 @@ foreach ($reihungstest->result as $row) echo "\n"; } echo ''; -echo ""; -echo '  '; +echo ""; +echo '  '; echo ""; if($reihungstest_id=='') @@ -1207,6 +1484,18 @@ else $reihungstest->anmeldefrist = date('Y-m-d', time() - 60 * 60 * 24); } +$studienplaene_arr = array(); +$studienplaene = new reihungstest(); +$studienplaene->getStudienplaeneReihungstest($reihungstest->reihungstest_id); +foreach ($studienplaene->result AS $row) +{ + $studienplan = new studienplan(); + $studienplan->loadStudienplan($row->studienplan_id); + $studienplaene_arr[ $row->studienplan_id] = $studienplan->bezeichnung; +} + +$studienplaene_list = implode(',', array_keys($studienplaene_arr)); + //Formular zum Bearbeiten des Reihungstests ?>
@@ -1218,9 +1507,9 @@ else - + - + - - - '; + echo ''; + echo ''; + } + else + { + echo ''; + if(!$neu) { - $orte = new Reihungstest(); - $orte->getOrteReihungstest($reihungstest->reihungstest_id); - echo ''; } else - echo ''; - ?> - + echo ''; + } + + $arbeitsplaetze_sum = 0; + if(!$neu) + { + echo ''; + //echo ''; + echo ''; + } + else + { + echo ''; + } + $orte = new Reihungstest(); + $orte->getOrteReihungstest($reihungstest->reihungstest_id); + foreach ($orte->result AS $row) + { + $person = new Person(); + $person->getPersonFromBenutzer($row->uid); + if ($row->uid != '') + $anzeigename = $person->vorname.' '.$person->nachname.' ('.$row->uid.')'; + else + $anzeigename = ''; + + echo ''; + echo ''; + $arbeitsplaetze_sum = $arbeitsplaetze_sum + $orte_array[$row->ort_kurzbz]; + } + //echo '
StudiengangStudiengang - studiengang_kz) $selected = ''; else @@ -1240,7 +1529,7 @@ else
StufeStufe   Studiensemester - studiensemester as $row) @@ -1271,81 +1560,155 @@ else
OrtStudienplan'; + + // Studienplan DropDown + echo ""; + echo '
Studienpläne'; - if ($rechte->isBerechtigt('lehre/reihungstestOrt', null, 'sui')) + //echo ''; - //echo ''; + //echo '
'; + echo ''; + echo ''; + + foreach ($studienplaene->result AS $row) { - echo ''; + $studienplan = new studienplan(); + $studienplan->loadStudienplan($row->studienplan_id); + + echo ''; + echo ''; + echo ''; + echo ''; } - else - { - echo ''; - } - foreach ($orte->result AS $row) - { - //echo ''; - echo ''; - $arbeitsplaetze_sum = $arbeitsplaetze_sum + $orte_array[$row->ort_kurzbz]; - } - echo '
'; + echo ''; + echo ''; + echo '
'; - echo ' '; - echo '
 '.$studienplan->bezeichnung.' ('.$studienplan->studienplan_id.')
Keine Berechtigung zum zuteilen von Räumen
 '; - //echo '
'; - $person = new Person(); - $person->getPersonFromBenutzer($row->uid); - if ($row->uid != '') - $anzeigename = $person->vorname.' '.$person->nachname.' ('.$row->uid.')'; - else - $anzeigename = ''; - //echo '
'.$row->ort_kurzbz; - 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
Nach dem Anlegen eines Termins, können Sie weitere Studienpläne zuordnen
Ort'; + if ($rechte->isBerechtigt('lehre/reihungstestOrt', null, 'sui')) + { + echo ''; + echo '
Keine Berechtigung zum zuteilen von Räumen
 '.$row->ort_kurzbz.' ('.$orte_array[$row->ort_kurzbz].' Personen)'; + echo ' '; + if ($rechte->isBerechtigt('lehre/reihungstestOrt', null, 'suid')) + echo ''; + echo '
'; + } + else + { + echo 'Ort'; + echo 'Nach dem Anlegen eines Termins, können Sie Räume zuordnen'; + } + ?> - + - + - + - + - + - + - + '; +echo '
AnmerkungAnmerkung (max. 64 Zeichen)
DatumDatum
UhrzeitUhrzeit (Format: HH:MM)
AnmeldefristAnmeldefrist
Max TeilnehmerInnenMax TeilnehmerInnen (optional; laut Raumkapazität)
ÖffentlichÖffentlich oeffentlich ? 'checked="checked"' : '' ?>> @@ -1353,7 +1716,7 @@ else
FreigeschaltetFreigeschaltet freigeschaltet ? 'checked="checked"' : '' ?>> (Kurz vor Testbeginn aktivieren) @@ -1388,53 +1751,120 @@ else
'; +if($reihungstest_id!='') +{ + echo 'Excel Export'; + echo 'Punkte ins FAS übertragen'; +} +echo 'Auswertung'; +echo 'Anmeldungen zusammenlegen'; +if($rechte->isBerechtigt('basis/testtool', null, 'suid')) +{ + echo 'Administration
'; +} +echo '
'; if($reihungstest_id!='') { //Liste der Interessenten die zum Reihungstest angemeldet sind - $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_id, FHC_INTEGER)." - ORDER BY ort_kurzbz NULLS FIRST,nachname,vorname "; + $qry = " + +SELECT +rt_id, +prestudent_id, +tbl_rt_person.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_rt_person.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 ON (tbl_rt_person.person_id=tbl_prestudent.person_id AND tbl_rt_person.rt_id=tbl_prestudent.reihungstest_id) +WHERE rt_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 + +/* +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(); @@ -1459,20 +1889,17 @@ if($result = $db->db_query($qry)) } } - echo 'Anzahl: '.$db->db_num_rows($result).'/'.($reihungstest->max_teilnehmer!=''?$reihungstest->max_teilnehmer:$arbeitsplaetze_sum).''; echo ''; + echo ' + + + @@ -1553,12 +1982,14 @@ if($result = $db->db_query($qry)) echo ' - + + + @@ -1612,12 +2043,14 @@ if($result = $db->db_query($qry)) - + + + @@ -1663,12 +2096,14 @@ if($result = $db->db_query($qry)) echo ' - + + + @@ -1685,12 +2120,14 @@ if($result = $db->db_query($qry)) echo ' - + + + @@ -1725,7 +2162,7 @@ if($result = $db->db_query($qry)) echo '
'; - echo 'Excel Export'; - echo 'Punkte ins FAS übertragen'; - echo 'Auswertung'; - if($rechte->isBerechtigt('basis/testtool', null, 'suid')) - { - echo 'Administration
'; - } - echo '
'; - echo '
ID
'; + echo '
'; + echo 'Anzahl: '.$db->db_num_rows($result).'/'.($reihungstest->max_teilnehmer!=''?$reihungstest->max_teilnehmer:$arbeitsplaetze_sum).''; + echo '
'; + echo '
Prestudent ID
'; + echo '
Person ID
'; echo '
Geschlecht
'; echo '
Studiengang
'; echo '
OrgForm
'; + echo '
Studienplan
'; echo '
Einstiegssemester
'; echo '
Geburtsdatum
'; echo '
EMail
'; @@ -1504,12 +1931,14 @@ if($result = $db->db_query($qry)) -
IDPrestudent IDPerson ID Nachname Vorname Geschlecht Studiengang OrgFormStudienplan Einstiegssemester Geburtsdatum EMail
'.$db->convert_html_chars($row->prestudent_id).''.$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->geschlecht).' '.$db->convert_html_chars($stg_arr[$row->studiengang_kz]).' '.$db->convert_html_chars($row->orgform_kurzbz!=''?$row->orgform_kurzbz:' ').''.$db->convert_html_chars($studienplaene_arr[$row->studienplan_id]).' ('.$row->studienplan_id.') '.$db->convert_html_chars($row->ausbildungssemester).' '.$db->convert_html_chars($row->gebdatum!=''?$datum_obj->convertISODate($row->gebdatum):' ').' IDPrestudent IDPerson ID Nachname Vorname Geschlecht Studiengang OrgFormStudienplan Einstiegssemester Geburtsdatum EMail
'.$db->convert_html_chars($row->prestudent_id).''.$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->geschlecht).' '.$db->convert_html_chars($stg_arr[$row->studiengang_kz]).' '.$db->convert_html_chars($row->orgform_kurzbz!=''?$row->orgform_kurzbz:' ').''.$db->convert_html_chars($studienplaene_arr[$row->studienplan_id]).' ('.$row->studienplan_id.') '.$db->convert_html_chars($row->ausbildungssemester).' '.$db->convert_html_chars($row->gebdatum!=''?$datum_obj->convertISODate($row->gebdatum):' ').'
---- - - - - -- - - -
'; - echo "Mail an alle senden"; + //echo "Mail an alle senden"; //@todo: Braucht man das noch oder eventuell gleich raumweise? } ?> diff --git a/vilesci/stammdaten/reihungstestverwaltung_autocomplete.php b/vilesci/stammdaten/reihungstestverwaltung_autocomplete.php new file mode 100644 index 000000000..ba7043588 --- /dev/null +++ b/vilesci/stammdaten/reihungstestverwaltung_autocomplete.php @@ -0,0 +1,164 @@ + + */ +require_once('../../config/vilesci.config.inc.php'); +require_once('../../include/functions.inc.php'); +require_once('../../include/basis_db.class.php'); +require_once('../../include/ort.class.php'); +require_once('../../include/benutzer.class.php'); +require_once('../../include/studiengang.class.php'); +require_once('../../include/lehrverband.class.php'); +require_once('../../include/studienplan.class.php'); +require_once('../../include/organisationsform.class.php'); +require_once('../../include/sprache.class.php'); + +if (!$db = new basis_db()) + die('Es konnte keine Verbindung zum Server aufgebaut werden.'); + +$uid=get_uid(); +$sprache = getSprache(); + +if(isset($_REQUEST['autocomplete']) && $_REQUEST['autocomplete']=='kunde') +{ + $search=trim((isset($_REQUEST['term']) ? $_REQUEST['term']:'')); + if (is_null($search) ||$search=='') + exit(); + + $benutzer = new benutzer(); + + if($benutzer->search(array($search))) + { + $result_obj = array(); + foreach($benutzer->result as $row) + { + $item['vorname']=html_entity_decode($row->vorname); + $item['nachname']=html_entity_decode($row->nachname); + $item['uid']=html_entity_decode($row->uid); + $result_obj[]=$item; + } + echo json_encode($result_obj); + } + exit; +} + +if(isset($_REQUEST['autocomplete']) && $_REQUEST['autocomplete']=='studienplan') +{ + $searchItems=trim((isset($_REQUEST['term']) ? $_REQUEST['term']:'')); + + // String aufsplitten und Sonderzeichen entfernen + $searchItems = explode(' ',trim(str_replace(',', '', $searchItems),'!.?')); + + // Wenn nach dem TRIM keine Zeichen uebrig bleiben, dann abbrechen + if(implode(',', $searchItems)=='') + exit(); + + $studienplan = new studienplan(); + + if($studienplan->searchStudienplaene($searchItems)) + { + $result_obj = array(); + foreach($studienplan->result as $row) + { + $item['studienplan_id']=html_entity_decode($row->studienplan_id); + $item['bezeichnung']=html_entity_decode($row->bezeichnung); + //$item['uid']=html_entity_decode($row->uid); + $result_obj[]=$item; + } + echo json_encode($result_obj); + } + exit; +} + +if(isset($_REQUEST['autocomplete']) && $_REQUEST['autocomplete']=='getStudienplan') +{ + $orgform_obj = new organisationsform(); + $orgform_obj->getAll(); + $orgform_arr=array(); + foreach($orgform_obj->result as $row) + $orgform_arr[$row->orgform_kurzbz]=$row->bezeichnung; + + $sprachen_obj = new sprache(); + $sprachen_obj->getAll(); + $sprachen_arr=array(); + + foreach($sprachen_obj->result as $row) + { + if(isset($row->bezeichnung_arr[$sprache])) + $sprachen_arr[$row->sprache]=$row->bezeichnung_arr[$sprache]; + else + $sprachen_arr[$row->sprache]=$row->sprache; + } + + $studienplan_obj = new studienplan(); + + if ($studienplan_obj->getStudienplaeneFromSem($_REQUEST['stg_kz'], $_REQUEST['studiensemester_kurzbz'])) + { + $studienordnung_arr = array(); + $studienplan_arr = array(); + $data = array(); + + foreach($studienplan_obj->result as $row_sto) + { + $studienordnung_arr[$row_sto->studienordnung_id]['bezeichnung']=$row_sto->bezeichnung_studienordnung; + $studienplan_arr[$row_sto->studienordnung_id][$row_sto->studienplan_id]['bezeichnung']=$row_sto->bezeichnung_studienplan; + + $studienplan_arr[$row_sto->studienordnung_id][$row_sto->studienplan_id]['orgform_kurzbz']=$row_sto->orgform_kurzbz; + $studienplan_arr[$row_sto->studienordnung_id][$row_sto->studienplan_id]['sprache']=$sprachen_arr[$row_sto->sprache]; + } + $i=0; + foreach($studienordnung_arr as $stoid=>$row_sto) + { + $data[$i]['sto_bezeichnung']=$db->convert_html_chars($row_sto['bezeichnung']); + foreach ($studienplan_arr[$stoid] as $stpid=>$row_stp) + { + $data[$i]['stpid']=$stpid; + $data[$i]['bezeichnung'] = $db->convert_html_chars($row_stp['bezeichnung']).' ('.$orgform_arr[$row_stp['orgform_kurzbz']].', '.$row_stp['sprache'].')'; + $i++; + } + } + echo json_encode($data); + } + else + echo $studienplan_obj->errormsg; + exit; +} + +if(isset($_REQUEST['autocomplete']) && $_REQUEST['autocomplete']=='ort_aktiv') +{ + $search=trim((isset($_REQUEST['term']) ? $_REQUEST['term']:'')); + if (is_null($search) ||$search=='') + exit(); + + $ort_auswahl = new ort(); + + if($ort_auswahl->filter($search,true)) + { + $result_obj = array(); + foreach($ort_auswahl->result as $row) + { + $item['ort_kurzbz']=html_entity_decode($row->ort_kurzbz); + $item['planbezeichnung']=html_entity_decode($row->planbezeichnung); + $item['bezeichnung']=html_entity_decode($row->bezeichnung); + $result_obj[]=$item; + } + echo json_encode($result_obj); + } + exit; +} +?>