diff --git a/cis/private/lehre/abgabe_student.php b/cis/private/lehre/abgabe_student.php index 4e3caa9b1..2cd19c357 100644 --- a/cis/private/lehre/abgabe_student.php +++ b/cis/private/lehre/abgabe_student.php @@ -41,21 +41,22 @@ if (!$db = new basis_db()) $getuid=get_uid(); $uid=$getuid; -if(isset($_GET['uid'])) +// TODO EINE get_prestudent_id +// WICHTIG TODO EINE: $uid und $getuid müssen im ganzen script noch umgeschrieben werden! + +if(isset($_GET['prestudent_id'])) { //Studentenansicht - $uid = $_GET['uid']; + $prestudent_id = $_GET['prestudent_id']; //Rechte Pruefen $allowed=false; - - $student = new student(); // TODO EINE - if(!$student->load($uid)) - die($p->t('global/fehlerBeimErmittelnDerUID')); - + + $prestudent = new prestudent($prestudent_id); + $stg_obj = new studiengang(); - if(!$stg_obj->load($student->studiengang_kz)) + if(!$stg_obj->load($prestudent->studiengang_kz)) die($p->t('global/fehlerBeimLesenAusDatenbank')); - + //Berechtigung ueber das Berechtigungssystem $rechte = new benutzerberechtigung(); $rechte->getBerechtigungen($getuid); @@ -69,7 +70,7 @@ if(isset($_GET['uid'])) JOIN lehre.tbl_projektbetreuer USING(projektarbeit_id) JOIN campus.vw_benutzer on(vw_benutzer.person_id=tbl_projektbetreuer.person_id) WHERE - tbl_projektarbeit.prestudent_id=".$db->db_add_param($student->prestudent_id, FHC_INTEGER)." AND + tbl_projektarbeit.prestudent_id=".$db->db_add_param($prestudent_id, FHC_INTEGER)." AND vw_benutzer.uid=".$db->db_add_param($getuid).";"; if($result = $db->db_query($qry)) @@ -90,8 +91,6 @@ $htmlstr1 = ''; $vorname=''; $nachname=''; -if(!$student = new student($uid)) // TODO EINE - die("Student nicht gefunden"); $sql_query = "SELECT (SELECT nachname FROM public.tbl_person WHERE person_id=tbl_projektbetreuer.person_id) AS bnachname, (SELECT vorname FROM public.tbl_person WHERE person_id=tbl_projektbetreuer.person_id) AS bvorname, @@ -109,7 +108,7 @@ $sql_query = "SELECT (SELECT nachname FROM public.tbl_person WHERE person_id=tb LEFT JOIN lehre.tbl_projekttyp USING (projekttyp_kurzbz) WHERE (projekttyp_kurzbz='Bachelor' OR projekttyp_kurzbz='Diplom') AND (tbl_projektbetreuer.betreuerart_kurzbz='Betreuer' OR tbl_projektbetreuer.betreuerart_kurzbz='Begutachter' OR tbl_projektbetreuer.betreuerart_kurzbz='Erstbetreuer' OR tbl_projektbetreuer.betreuerart_kurzbz='Erstbegutachter') - AND tbl_projektarbeit.prestudent_id=".$db->db_add_param($student->prestudent_id, FHC_INTEGER)." + AND tbl_projektarbeit.prestudent_id=".$db->db_add_param($prestudent_id, FHC_INTEGER)." AND public.tbl_benutzer.aktiv AND lehre.tbl_projektarbeit.note IS NULL ORDER BY studiensemester_kurzbz desc, tbl_lehrveranstaltung.kurzbz"; diff --git a/cis/private/lehre/benotungstool/lvgesamtnoteeintragen.php b/cis/private/lehre/benotungstool/lvgesamtnoteeintragen.php index 08e15d2f3..ee6690d4e 100755 --- a/cis/private/lehre/benotungstool/lvgesamtnoteeintragen.php +++ b/cis/private/lehre/benotungstool/lvgesamtnoteeintragen.php @@ -114,20 +114,19 @@ if(!$rechte->isBerechtigt('admin',0) && } } -function savenote($db,$lvid, $student_uid, $note, $punkte=null) +function savenote($db,$lvid, $prestudent_id, $note, $punkte=null) { global $stsem, $user, $p, $noten_anmerkung; $jetzt = date("Y-m-d H:i:s"); $punkte = str_replace(',','.',$punkte); //Ermitteln ob der Student diesem Kurs zugeteilt ist - $qry = "SELECT 1 FROM campus.vw_student_lehrveranstaltung WHERE uid=".$db->db_add_param($student_uid)." AND lehrveranstaltung_id=".$db->db_add_param($lvid, FHC_INTEGER); + $qry = "SELECT 1 FROM campus.vw_student_lehrveranstaltung WHERE prestudent_id=".$db->db_add_param($prestudent_id, FHC_INTEGER)." AND lehrveranstaltung_id=".$db->db_add_param($lvid, FHC_INTEGER); if($result = $db->db_query($qry)) { if($db->db_num_rows($result)==0) { - $student = new student();// TODO EINE - $student->load($student_uid); - return $p->t('benotungstool/studentIstLvNichtZugeordnet', array($student->nachname, $student->vorname, trim($student->matrikelnr)))."\n"; + $prestudent = new prestudent($prestudent_id); + return $p->t('benotungstool/studentIstLvNichtZugeordnet', array($prestudent->nachname, $prestudent->vorname, trim($prestudent->perskz)))."\n"; } } @@ -156,13 +155,11 @@ function savenote($db,$lvid, $student_uid, $note, $punkte=null) } - $student = new student(); - $student->load($student_uid); // TODO EINE $lvgesamtnote = new lvgesamtnote(); - if (!$lvgesamtnote->load($lvid, $student->prestudent_id, $stsem)) + if (!$lvgesamtnote->load($lvid, $prestudent_id, $stsem)) { - $lvgesamtnote->prestudent_id = $student->prestudent_id; + $lvgesamtnote->prestudent_id = $prestudent_id; $lvgesamtnote->lehrveranstaltung_id = $lvid; $lvgesamtnote->studiensemester_kurzbz = $stsem; $lvgesamtnote->note = trim($note); @@ -202,13 +199,13 @@ function savenote($db,$lvid, $student_uid, $note, $punkte=null) if (isset($_REQUEST["submit"])) { $lvid = $_REQUEST["lvid"]; - if(isset($_REQUEST["student_uid"]) && $_REQUEST["student_uid"] != '') + if(isset($_REQUEST["prestudent_id"]) && is_numeric($_REQUEST["prestudent_id"])) { - $student_uid = $_REQUEST["student_uid"]; + $prestudent_id = $_REQUEST["prestudent_id"]; $note = $_REQUEST["note"]; $punkte = (isset($_REQUEST["punkte"])?$_REQUEST["punkte"]:''); - $response = savenote($db,$lvid, $student_uid, $note, $punkte); + $response = savenote($db,$lvid, $prestudent_id, $note, $punkte); echo $response; } else @@ -235,8 +232,7 @@ if (isset($_REQUEST["submit"])) } $punkte=str_replace(',','.', $punkte); //UID ermitteln - $student = new student();// TODO EINE? auf prestudent ändern? - if(!$student_uid = $student->getUidFromMatrikelnummer($matrikelnummer)) + if(!$student_uid = $student->getUidFromMatrikelnummer($matrikelnummer)) // TODO EINE! hier brauchen wir für savenote eine prestudent_id! { $response.="\n".$p->t('benotungstool/studentMitMatrikelnummerExistiertNicht',array($matrikelnummer)); continue; @@ -244,8 +240,7 @@ if (isset($_REQUEST["submit"])) // Hole Zeugnisnote wenn schon eine eingetragen ist /* - $student = new student($student_uid);// TODO EINE ändern? - if ($zeugnisnote = new zeugnisnote($lvid, $student->prestudent_id, $stsem)) + if ($zeugnisnote = new zeugnisnote($lvid, $prestudent_id, $stsem)) $znote = $zeugnisnote->note; else $znote = null; diff --git a/cis/private/lehre/benotungstool/lvgesamtnoteverwalten.php b/cis/private/lehre/benotungstool/lvgesamtnoteverwalten.php index bf6057a36..5876f6d80 100644 --- a/cis/private/lehre/benotungstool/lvgesamtnoteverwalten.php +++ b/cis/private/lehre/benotungstool/lvgesamtnoteverwalten.php @@ -325,13 +325,13 @@ foreach($noten_obj->result as $row) document.nachpruefung_form.note.value = "9"; note = "9"; } - var uid = document.nachpruefung_form.uid.value; + var prestudent_id = document.nachpruefung_form.prestudent_id.value; var lehreinheit_id = document.nachpruefung_form.le_id.value; - +alert(prestudent_id + " TODO EINE pachpruefungeintragen.php"); var jetzt = new Date(); var ts = jetzt.getTime(); var url= ''; - url += '&submit=1&student_uid='+uid+'¬e='+note+'&datum='+datum+'&lehreinheit_id_pr='+lehreinheit_id+'&punkte='+punkte+'&typ='+typ+'&'+ts; + url += '&submit=1&prestudent_id='+prestudent_id+'¬e='+note+'&datum='+datum+'&lehreinheit_id_pr='+lehreinheit_id+'&punkte='+punkte+'&typ='+typ+'&'+ts; $.ajax({ type:"GET", diff --git a/cis/private/lehre/benotungstool/nachpruefungeintragen.php b/cis/private/lehre/benotungstool/nachpruefungeintragen.php index 50f21d16b..6d4ed1963 100755 --- a/cis/private/lehre/benotungstool/nachpruefungeintragen.php +++ b/cis/private/lehre/benotungstool/nachpruefungeintragen.php @@ -40,7 +40,6 @@ require_once('../../../../include/pruefung.class.php'); require_once('../../../../include/mail.class.php'); require_once('../../../../include/benutzerfunktion.class.php'); require_once('../../../../include/benutzer.class.php'); -require_once('../../../../include/student.class.php'); require_once('../../../../include/notenschluessel.class.php'); if (!$db = new basis_db()) @@ -88,14 +87,14 @@ else $stsem = ''; $uebung_id = (isset($_GET['uebung_id'])?$_GET['uebung_id']:''); -$uid = (isset($_GET['uid'])?$_GET['uid']:''); +$prestudent_id = (isset($_GET['prestudent_id'])?$_GET['prestudent_id']:''); //Studiensemester laden $stsem_obj = new studiensemester(); if($stsem=='') $stsem = $stsem_obj->getaktorNext(); -$student_uid = $_REQUEST["student_uid"]; +$prestudent_id = $_REQUEST["prestudent_id"]; $note = $_REQUEST["note"]; if(isset($_REQUEST['punkte'])) @@ -135,7 +134,7 @@ if($note=='') $old_note = $note; // lvgesamtnote für studenten speichern -if (isset($_REQUEST["submit"]) && ($_REQUEST["student_uid"] != '') ) +if (isset($_REQUEST["submit"]) && (is_numeric($_REQUEST["prestudent_id"])) ) { // Die Pruefung muss einer Lehreinheit zugeordnet werden // deshalb wird hier versucht eine passende Lehreinheit zu ermitteln. @@ -143,11 +142,11 @@ if (isset($_REQUEST["submit"]) && ($_REQUEST["student_uid"] != '') ) $qry_stud = "SELECT DISTINCT lehreinheit_id, lehrform_kurzbz FROM campus.vw_student_lehrveranstaltung - JOIN campus.vw_student using(uid) + JOIN campus.vw_student using(prestudent_id) WHERE studiensemester_kurzbz = ".$db->db_add_param($stsem)." AND lehrveranstaltung_id = ".$db->db_add_param($lvid, FHC_INTEGER)." - AND uid=".$db->db_add_param($student_uid)." + AND prestudent_id=".$db->db_add_param($prestudent_id, FHC_INTEGER)." ORDER BY lehrform_kurzbz DESC"; if($result_stud = $db->db_query($qry_stud)) @@ -166,18 +165,16 @@ if (isset($_REQUEST["submit"]) && ($_REQUEST["student_uid"] != '') ) $pr = new Pruefung(); - $student = new student($student_uid);//TODO EINE // Wenn eine Pruefung angelegt wird, wird zuerst eine Pruefung mit 1. Termin angelegt // und dort die Zeugnisnote gespeichert - if($pr->getPruefungen($student->prestudent_id, "Termin1", $lvid, $stsem)) + if($pr->getPruefungen($prestudent_id, "Termin1", $lvid, $stsem)) { if ($pr->result) $termin1 = 1; else { - $student = new student($student_uid); // TODO EINE $lvnote = new lvgesamtnote(); - if ($lvnote->load($lvid, $student->prestudent_id, $stsem)) + if ($lvnote->load($lvid, $prestudent_id, $stsem)) { $pr_note = $lvnote->note; $pr_punkte = $lvnote->punkte; @@ -191,7 +188,7 @@ if (isset($_REQUEST["submit"]) && ($_REQUEST["student_uid"] != '') ) $pr_1 = new Pruefung(); $pr_1->lehreinheit_id = $lehreinheit_id; - $pr_1->student_uid = $student_uid; + $pr_1->prestudent_id = $prestudent_id; $pr_1->mitarbeiter_uid = $user; $pr_1->note = $pr_note; $pr_1->punkte = $pr_punkte; @@ -212,9 +209,8 @@ if (isset($_REQUEST["submit"]) && ($_REQUEST["student_uid"] != '') ) $prTermin2 = new Pruefung(); $pr_2 = new Pruefung(); - $student = new student($student_uid);//TODO EINE // Die Pruefung wird als Termin2 eingetragen - if ($prTermin2->getPruefungen($student->prestudent_id, $typ, $lvid, $stsem)) + if ($prTermin2->getPruefungen($prestudent_id, $typ, $lvid, $stsem)) { if ($prTermin2->result) { @@ -231,7 +227,7 @@ if (isset($_REQUEST["submit"]) && ($_REQUEST["student_uid"] != '') ) else { $pr_2->lehreinheit_id = $lehreinheit_id; - $pr_2->student_uid = $student_uid; + $pr_2->prestudent_id = $prestudent_id; $pr_2->mitarbeiter_uid = $user; $pr_2->note = $note; $pr_2->punkte = $punkte; @@ -255,9 +251,8 @@ if (isset($_REQUEST["submit"]) && ($_REQUEST["student_uid"] != '') ) $lvid = $_REQUEST["lvid"]; - $student = new student($student_uid);// TODO EINE $lvgesamtnote = new lvgesamtnote(); - if (!$lvgesamtnote->load($lvid, $student->prestudent_id, $stsem)) + if (!$lvgesamtnote->load($lvid, $prestudent_id, $stsem)) { $lvgesamtnote->prestudent_id = $prestudent_id; $lvgesamtnote->lehrveranstaltung_id = $lvid; diff --git a/cis/private/profile/studienerfolgsbestaetigung.php b/cis/private/profile/studienerfolgsbestaetigung.php index b7418075c..2568af048 100644 --- a/cis/private/profile/studienerfolgsbestaetigung.php +++ b/cis/private/profile/studienerfolgsbestaetigung.php @@ -17,8 +17,9 @@ * * Authors: Christian Paminger , * Andreas Oesterreicher , - * Rudolf Hangl and - * Gerald Raab . + * Rudolf Hangl , + * Gerald Raab and + * Andreas Moik . */ require_once('../../../config/cis.config.inc.php'); @@ -36,7 +37,7 @@ if (!$db = new basis_db()) $uid=get_uid(); -if(isset($_GET['uid'])) +if(isset($_GET['uid'])) // TODO EINE get_uid / _GET['uid'] für studienerfolg.rdf.php wird die prestudent_id benötigt! { // Administratoren duerfen die UID als Parameter uebergeben um die Studienerfolgsbestätigung // von anderen Personen anzuzeigen @@ -111,4 +112,4 @@ if($result = $db->db_query($qry)) echo ' '; -?> \ No newline at end of file +?> diff --git a/cis/private/profile/studienplan.php b/cis/private/profile/studienplan.php index 1f2c68c8d..43edda8df 100755 --- a/cis/private/profile/studienplan.php +++ b/cis/private/profile/studienplan.php @@ -34,7 +34,6 @@ require_once('../../../include/lvregel.class.php'); require_once('../../../include/studiensemester.class.php'); require_once('../../../include/lehrveranstaltung.class.php'); require_once('../../../include/prestudent.class.php'); -require_once('../../../include/student.class.php'); require_once('../../../include/zeugnisnote.class.php'); require_once('../../../include/lvangebot.class.php'); require_once('../../../include/datum.class.php'); @@ -47,8 +46,9 @@ require_once('../../../include/lvinfo.class.php'); require_once('../../../include/addon.class.php'); $uid = get_uid(); - -if(isset($_GET['uid'])) +// TODO EINE get_uid auf get_prestudent_id!?! +// TODO EINE strg + f "uid" im ganzen skript! +if(isset($_GET['$prestudent'])) { // Administratoren duerfen die UID als Parameter uebergeben um den Studienplan // von anderen Personen anzuzeigen @@ -105,8 +105,7 @@ if(isset($_GET['getAnmeldung'])) //Pruefen ob genug Credit Points zur Verfuegung stehen zur Anmeldung $konto = new konto(); - $student = new student($uid); // TODO EINE - $cp = $konto->getCreditPoints($student->prestudent_id, $stsem); + $cp = $konto->getCreditPoints($prestudent_id, $stsem); if($cp===false || $cp>=$lv->ects) echo '
'.$lv->bezeichnung.' (Anmeldung bis '.$datum->formatDatum($angebot->anmeldefenster_ende,"d.m.Y").')'; else @@ -205,8 +204,7 @@ if(isset($_POST['action']) && $_POST['action']=='anmeldung') // Pruefen ob genug CP zur Verfuegung stehen falls diese reduziert sind $konto = new konto(); - $student = new student($uid); // TODO EINE - $cp = $konto->getCreditPoints($student->prestudent_id, $stsem); + $cp = $konto->getCreditPoints($prestudent_id, $stsem); if($cp===false || $cp>=$lv->ects) { $bngruppe->uid = $uid; @@ -238,18 +236,15 @@ if(isset($_POST['action']) && $_POST['action']=='anmeldung') $db = new basis_db(); $datum_obj = new datum(); // Student Laden -$student = new student(); // TODO EINE -$student->load($uid); - +$prestudent = new prestudent($prestudent_id); // ersten Status holen -$prestudent = new prestudent(); -$prestudent->getFirstStatus($student->prestudent_id, 'Student'); +$prestudent->getFirstStatus($prestudent_id, 'Student'); $studiensemester_start = $prestudent->studiensemester_kurzbz; $ausbildungssemester_start = $prestudent->ausbildungssemester; $orgform_kurzbz = $prestudent->orgform_kurzbz; -$prestudent->getLastStatus($student->prestudent_id, 'Student'); +$prestudent->getLastStatus($prestudent_id, 'Student'); $studienplan_id = $prestudent->studienplan_id; $studienplan = new studienplan(); @@ -304,7 +299,7 @@ if(!in_array($stsemToShow,$stsem_arr)) // Noten des Studierenden holen $noten_arr=array(); $zeugnisnote = new zeugnisnote(); -if($zeugnisnote->getZeugnisnoten('',$student->prestudent_id,'')) +if($zeugnisnote->getZeugnisnoten('',$prestudent_id,'')) { foreach($zeugnisnote->result as $row_note) { @@ -333,7 +328,7 @@ $lv->loadLehrveranstaltungStudienplan($studienplan_id); foreach($lv->lehrveranstaltungen as $row_lva) $lv_arr[$row_lva->lehrveranstaltung_id]=$row_lva; -echo '

'.$p->t('studienplan/studienplan').": $studienplan->bezeichnung ($studienplan_id) - $student->vorname $student->nachname ( $student->uid )

"; +echo '

'.$p->t('studienplan/studienplan').": $studienplan->bezeichnung ($studienplan_id) - $prestudent->vorname $prestudent->nachname ( $prestudent->uid )

"; echo ' @@ -352,8 +347,7 @@ foreach($stsem_arr as $stsem) echo $stsem; $konto = new konto(); - $student = new student($uid); // TODO EINE - $cp = $konto->getCreditPoints($student->prestudent_id, $stsem); + $cp = $konto->getCreditPoints($prestudent_id, $stsem); if($cp!==false) echo '
Information
'; echo ''; @@ -415,8 +409,7 @@ function drawTree($tree, $depth) $lvregel = new lvregel(); if($lvregel->exists($row_tree->studienplan_lehrveranstaltung_id)) { - $student = new student($uid); // TODO EINE - if($lvregel->isAbgeschlossen($student->prestudent_id, $row_tree->studienplan_lehrveranstaltung_id)) + if($lvregel->isAbgeschlossen($prestudent_id, $row_tree->studienplan_lehrveranstaltung_id)) $abgeschlossen=true; else $abgeschlossen=false; @@ -579,8 +572,7 @@ function drawTree($tree, $depth) } else { - $student = new student($uid);// TODO EINE - if(!$lvregel->isZugangsberechtigt($student->prestudent_id, $row_tree->studienplan_lehrveranstaltung_id, $stsem)) + if(!$lvregel->isZugangsberechtigt($prestudent_id, $row_tree->studienplan_lehrveranstaltung_id, $stsem)) { $regelerfuellt=false; } @@ -600,7 +592,7 @@ function drawTree($tree, $depth) { // Pruefen ob bereits angemeldet $bngruppe = new benutzergruppe(); - if($bngruppe->load($uid, $angebot->gruppe_kurzbz, $stsem)) + if($bngruppe->load($prestudent->uid, $angebot->gruppe_kurzbz, $stsem)) // TODO EINE gibts hier überhaupt einen prestudenten? { // Bereits angemeldet $angemeldet=true; diff --git a/content/anwesenheit.js.php b/content/anwesenheit.js.php index 0ef750a06..dd0e17754 100644 --- a/content/anwesenheit.js.php +++ b/content/anwesenheit.js.php @@ -31,7 +31,7 @@ function loadanwesenheit(prestudent_id,lehrveranstaltung_id) //anwesenheit laden url = "rdf/anwesenheit.rdf.php?ts="+gettimestamp(); -alert(prestudent_id); // TODO EINE + if(parseInt(prestudent_id) !== false) url=url+"&prestudent_id="+prestudent_id; if(lehrveranstaltung_id!='') diff --git a/content/lvplanung/lehrveranstaltungoverlay.js.php b/content/lvplanung/lehrveranstaltungoverlay.js.php index fcc80cd0a..012b6ec1f 100644 --- a/content/lvplanung/lehrveranstaltungoverlay.js.php +++ b/content/lvplanung/lehrveranstaltungoverlay.js.php @@ -1838,7 +1838,7 @@ function LehrveranstaltungNotenAuswahl() var prestudent_id=tree.view.getCellText(tree.currentIndex,col); var col = tree.columns ? tree.columns["lehrveranstaltung-noten-tree-studiensemester_kurzbz"] : "lehrveranstaltung-noten-tree-studiensemester_kurzbz"; var studiensemester_kurzbz=tree.view.getCellText(tree.currentIndex,col); -alert(prestudent_id + " LVOVERLAY.JS");//TODO EINE (testen, ob prestudent_id eingetragen ist!) + //Daten holen var url = 'rdf/zeugnisnote.rdf.php?lehrveranstaltung_id='+lehrveranstaltung_id+'&prestudent_id='+prestudent_id+'&studiensemester_kurzbz='+studiensemester_kurzbz+'&'+gettimestamp(); @@ -2001,8 +2001,8 @@ function LehrveranstaltungFFZertifikatPrint(event) for (var v = start.value; v <= end.value; v++) { col = tree.columns ? tree.columns["lehrveranstaltung-noten-tree-prestudent_id"] : "lehrveranstaltung-noten-tree-prestudent_id"; - uid = tree.view.getCellText(v,col); - paramList += ';'+uid; + prestudent_id = tree.view.getCellText(v,col); + paramList += ';'+prestudent_id; anzahl = anzahl+1; col = tree.columns ? tree.columns["lehrveranstaltung-noten-tree-lehrveranstaltung_id"] : "lehrveranstaltung-noten-tree-lehrveranstaltung_id"; lvid = tree.view.getCellText(v,col); @@ -2019,7 +2019,7 @@ function LehrveranstaltungFFZertifikatPrint(event) else var output='pdf'; - url = 'content/pdfExport.php?xml=zertifikat.rdf.php&xsl=Zertifikat&stg_kz='+stg_kz+'&uid='+paramList+'&output='+output+'&ss='+ss+'&lvid='+lvid+'&'+gettimestamp(); + url = 'content/pdfExport.php?xml=zertifikat.rdf.php&xsl=Zertifikat&stg_kz='+stg_kz+'&prestudent_id='+paramList+'&output='+output+'&ss='+ss+'&lvid='+lvid+'&'+gettimestamp(); window.location.href = url; //prompt('test:',url); } diff --git a/content/student/studentDBDML.php b/content/student/studentDBDML.php index 2e51e859a..d4023e1c8 100644 --- a/content/student/studentDBDML.php +++ b/content/student/studentDBDML.php @@ -313,6 +313,7 @@ if(!$error) if(!$error) { + $prestudent->prestudent_id = $_POST['prestudent_id']; $prestudent->uid = $_POST['uid']; $prestudent->perskz = $_POST['perskz']; $prestudent->updateamum = date('Y-m-d H:i:s'); @@ -399,14 +400,13 @@ if(!$error) if(count($prestudentobj->result)>0) { - $tmpStudent = new student($_POST['uid']); // TODO EINE - if($student_lvb->studentlehrverband_exists($tmpStudent->prestudent_id, $semester_aktuell)) + if($student_lvb->studentlehrverband_exists($_POST['prestudent_id'], $semester_aktuell)) $student_lvb->new = false; else $student_lvb->new = true; - $student_lvb->uid = $_POST['uid']; + $student_lvb->uid = $_POST['uid']; // TODO EINE $student_lvb->studiensemester_kurzbz = $semester_aktuell; $student_lvb->studiengang_kz = $_POST['studiengang_kz']; $student_lvb->semester = $_POST['semester']; @@ -808,11 +808,10 @@ if(!$error) //Unterbrecher und Abbrecher werden ins 0. Semester verschoben if($_POST['status_kurzbz']=='Unterbrecher' || $_POST['status_kurzbz']=='Abbrecher') { - $student = new student(); - $uid = $student->getUid($prestudent_id); - $student->load($uid); - $student->studiensemester_kurzbz=$studiensemester; - $student->semester = '0'; + $prestudent = new prestudent($prestudent_id); + + $prestudent->studiensemester_kurzbz=$studiensemester; + $student->semester = '0';// TODO EINE if($_POST['status_kurzbz']=='Abbrecher') { $student->verband='A'; @@ -838,7 +837,7 @@ if(!$error) //Nachschauen ob dieser Lehrverband schon existiert, falls nicht dann anlegen $lehrverband = new lehrverband(); - if(!$lehrverband->exists($student->studiengang_kz, $student->semester, $student->verband, '')) + if(!$lehrverband->exists($prestudent->studiengang_kz, $student->semester, $student->verband, '')) { //Pruefen ob der uebergeordnete Lehrverband existiert, falls nicht dann anlegen if(!$lehrverband->exists($student->studiengang_kz, $student->semester, '', '')) @@ -877,15 +876,14 @@ if(!$error) //Verband und Gruppe wird entfernt. if($_POST['status_kurzbz']=='Student') { - $student = new student(); - $uid = $student->getUid($prestudent_id);//TODO EINE - $student->load($uid); - $student->studiensemester_kurzbz=$semester_aktuell; - $student->semester = $_POST['semester']; - $student->verband = ''; - $student->gruppe = ''; - $student->save(false, false); - $student->save_studentlehrverband(false); + $prestudent = new prestudent($prestudent_id); + + $prestudent->studiensemester_kurzbz=$semester_aktuell; // TODO EINE + $prestudent->semester = $_POST['semester']; + $prestudent->verband = ''; + $prestudent->gruppe = ''; + $prestudent->save(false, false); + $prestudent->save_studentlehrverband(false); //Aktiv Status setzen $benutzer = new benutzer(); if($benutzer->load($uid)) @@ -900,11 +898,10 @@ if(!$error) //bei Abbrechern und Absolventen wird der Aktiv Status auf false gesetzt if($_POST['status_kurzbz']=='Abbrecher' || $_POST['status_kurzbz']=='Absolvent') { - $student = new student(); - $uid = $student->getUid($prestudent_id);//TODO EINE + $prestudent = new prestudent($prestudent_id); $benutzer = new benutzer(); - if($benutzer->load($uid)) + if($benutzer->load($prestudent_uid)) { $benutzer->updateamum = date('Y-m-d H:i:s'); $benutzer->updatevon = $user; @@ -1149,28 +1146,28 @@ if(!$error) $stdsem_new = filter_input(INPUT_POST, "studiensemester_kurzbz"); $semester = filter_input(INPUT_POST, "ausbildungssemester"); - $prestudent_temp = new prestudent(); - $prestudent_temp->getLastStatus($rolle->prestudent_id, "", "Student"); - if($student->load_studentlehrverband($rolle->prestudent_id, $prestudent_temp->studiensemester_kurzbz)) - $student->new=false; + $prestudent = new prestudent($prestudent_id); + $prestudent->getLastStatus($rolle->prestudent_id, "", "Student"); + if($prestudent->load_studentlehrverband($prestudent->studiensemester_kurzbz)) + $prestudent->new=false; else - $student->new=true; + $prestudent->new=true; $lehrverband = new lehrverband(); - if(!$lehrverband->exists($student->studiengang_kz, $semester, $student->verband, $student->gruppe)) + if(!$lehrverband->exists($prestudent->studiengang_kz, $semester, $prestudent->verband, $prestudent->gruppe)) { - $student->studiensemester_kurzbz = $stdsem_new; + $prestudent->studiensemester_kurzbz = $stdsem_new; $return = false; $errormsg = $student->errormsg; } else { - $student->studiensemester_kurzbz = $stdsem_new; - $student->semester = $semester; - $student->updatevon = $user; + $prestudent->studiensemester_kurzbz = $stdsem_new; + $prestudent->semester = $semester; + $prestudent->updatevon = $user; } - $student->save_studentlehrverband(); + $prestudent->save_studentlehrverband();// TODO EINE } } @@ -1272,26 +1269,25 @@ if(!$error) $return = false; } - $student = new student(); - $temp_uid = $student->getUid($rolle->prestudent_id); + $prestudent = new prestudent($prestudent_id); if(!$error) { - $student->load_studentlehrverband($rolle->prestudent_id, $_POST["studiensemester_kurzbz"]); + $prestudent->load_studentlehrverband($rolle->prestudent_id, $_POST["studiensemester_kurzbz"]); $lehrverband = new lehrverband(); - if(!$lehrverband->exists($student->studiengang_kz, $semester, $student->verband, $student->gruppe)) + if(!$lehrverband->exists($prestudent->studiengang_kz, $semester, $prestudent->verband, $prestudent->gruppe)) { - $student->studiensemester_kurzbz = $stdsem; + $prestudent->studiensemester_kurzbz = $stdsem; $return = false; - $errormsg = $student->errormsg; + $errormsg = $prestudent->errormsg; } else { - $student->studiensemester_kurzbz = $stdsem; - $student->semester = $semester; + $prestudent->studiensemester_kurzbz = $stdsem; + $prestudent->semester = $semester; } - $student->save_studentlehrverband(true); + $prestudent->save_studentlehrverband(true); // TODO EINE gibts beim prestudenten nicht! $rolle->ausbildungssemester = $semester; $rolle->studiensemester_kurzbz = $stdsem; $rolle->datum = date("Y-m-d"); @@ -1604,7 +1600,7 @@ if(!$error) } elseif(isset($_POST['type']) && $_POST['type']=='gruppenzuteilung') { - if(isset($_POST['uid']) && isset($_POST['gruppe_kurzbz'])) + if(isset($_POST['prestudent_id']) && isset($_POST['gruppe_kurzbz'])) { $gruppe = new gruppe(); if(!$gruppe->load($_POST['gruppe_kurzbz'])) @@ -1624,19 +1620,20 @@ if(!$error) } $benutzergruppe = new benutzergruppe(); - $uids = explode(';',$_POST['uid']); + $prestudent_ids = explode(';',$_POST['prestudent_id']); $errormsg = ''; - foreach ($uids as $uid) + foreach ($prestudent_ids as $prestudent_id) { - if($uid!='') + if(is_numeric($prestudent_id)) { if($_POST['gruppe_kurzbz']!='') { + $prestudent = new prestudent($prestudent_id); //Zuteilung zu einer Spezialgruppe - if(!$benutzergruppe->load($uid, $_POST['gruppe_kurzbz'])) + if(!$benutzergruppe->load($prestudent->uid, $_POST['gruppe_kurzbz'])) { - $benutzergruppe->uid = $uid; + $benutzergruppe->uid = $prestudent->uid; $benutzergruppe->gruppe_kurzbz = $_POST['gruppe_kurzbz']; $benutzergruppe->studiensemester_kurzbz = $semester_aktuell; $benutzergruppe->insertamum = date('Y-m-d H:i:s'); @@ -1645,11 +1642,11 @@ if(!$error) if(!$benutzergruppe->save()) { - $errormsg .= "$uid konnte nicht hinzugefuegt werden\n"; + $errormsg .= "$prestudent->uid($prestudent->prestudent_id) konnte nicht hinzugefuegt werden\n"; } } else - $errormsg .= "Der Student $uid ist bereits in dieser Gruppe\n"; + $errormsg .= "Der Student $prestudent->prestudent_id ist bereits in dieser Gruppe\n"; } else { @@ -1673,16 +1670,16 @@ if(!$error) if($semester_aktuell == $stsem_kurzbz) { //Eintrag in der Tabelle Student aendern - $student = new student(); + $prestudent = new prestudent(); - if(!$student->load($uid)) + if(!$prestudent->load($prestudent_id)) { $errormsg .= 'Fehler beim Laden des Studenten'; $error = true; $return = false; } - if($student->studiengang_kz!=$_POST['stg_kz']) + if($prestudent->studiengang_kz!=$_POST['stg_kz']) { $errormsg.='Ein Student kann nicht in eine Lehrverbandsgruppe eines anderen Studienganges verschoben werden'; $return = false; @@ -1691,13 +1688,13 @@ if(!$error) if(!$error) { - $student->studiengang_kz = $_POST['stg_kz']; - $student->semester = $_POST['semester']; - $student->verband = ($_POST['verband']==''?' ':$_POST['verband']); - $student->gruppe = ($_POST['gruppe']==''?' ':$_POST['gruppe']); - $student->new=false; + $prestudent->studiengang_kz = $_POST['stg_kz']; + $prestudent->semester = $_POST['semester']; // TODO EINE + $prestudent->verband = ($_POST['verband']==''?' ':$_POST['verband']); + $prestudent->gruppe = ($_POST['gruppe']==''?' ':$_POST['gruppe']); + $prestudent->new=false; - if(!$student->save()) + if(!$prestudent->save()) { $errormsg .= 'Fehler beim Speichern des Studenteneintrages'; $return = false; @@ -1709,16 +1706,16 @@ if(!$error) if(!$error) { //Eintrag in der Tabelle Student aendern - $student = new student(); + $prestudent = new student(); - if(!$student->load($uid)) + if(!$prestudent->load($prestudent_id)) { $errormsg .= 'Fehler beim Laden des Studenten'; $error = true; $return = false; } - if($student->studiengang_kz!=$_POST['stg_kz']) + if($prestudent->studiengang_kz!=$_POST['stg_kz']) { $errormsg.='Ein Student kann nicht in eine Lehrverbandsgruppe eines anderen Studienganges verschoben werden'; $return = false; @@ -1730,7 +1727,7 @@ if(!$error) //Eintrag in der Tabelle Studentlehrverband aendern $student_lvb = new student(); - if($student_lvb->studentlehrverband_exists($student->prestudent_id, $semester_aktuell)) + if($student_lvb->studentlehrverband_exists($prestudent_id, $semester_aktuell)) $student_lvb->new = false; else $student_lvb->new = true; @@ -2508,7 +2505,7 @@ if(!$error) $bmp->ausgegebenam = $_POST['ausgegebenam']; $bmp->retouram = $_POST['retouram']; if($bmp->new) - $bmp->uid = $_POST['uid']; + $bmp->uid = $_POST['uid']; // TODO EINE prestudent_id? if($bmp->save()) { diff --git a/content/student/studentoverlay.js.php b/content/student/studentoverlay.js.php index 6cc30747a..fb7945fc7 100644 --- a/content/student/studentoverlay.js.php +++ b/content/student/studentoverlay.js.php @@ -401,7 +401,7 @@ function StudentFFZertifikatPrint(event) var tree = document.getElementById('student-noten-tree'); col = tree.columns ? tree.columns["student-noten-tree-prestudent_id"] : "student-noten-tree-prestudent_id"; - uid = tree.view.getCellText(tree.currentIndex,col); + prestudent_id = tree.view.getCellText(tree.currentIndex,col); col = tree.columns ? tree.columns["student-noten-tree-lehrveranstaltung_id"] : "student-noten-tree-lehrveranstaltung_id"; lvid = tree.view.getCellText(tree.currentIndex,col); @@ -419,7 +419,7 @@ function StudentFFZertifikatPrint(event) else var output='pdf'; - url = 'content/pdfExport.php?xml=zertifikat.rdf.php&xsl=Zertifikat&stg_kz='+stg_kz+'&uid=;'+uid+'&output='+output+'&ss='+stsem+'&lvid='+lvid+'&'+gettimestamp(); + url = 'content/pdfExport.php?xml=zertifikat.rdf.php&xsl=Zertifikat&stg_kz='+stg_kz+'&prestudent_id=;'+prestudent_id+'&output='+output+'&ss='+stsem+'&lvid='+lvid+'&'+gettimestamp(); // alert('url: '+url); window.location.href = url; @@ -435,7 +435,7 @@ function StudentLVZeugnisPrint(event) col = tree.columns ? tree.columns["student-noten-tree-prestudent_id"] : "student-noten-tree-prestudent_id"; prestudent_id = tree.view.getCellText(tree.currentIndex,col); -alert(prestudent_id + " studentoverlay(studentlvzeugnisprint)");//TODO EINE + col = tree.columns ? tree.columns["student-noten-tree-lehrveranstaltung_id"] : "student-noten-tree-lehrveranstaltung_id"; lvid = tree.view.getCellText(tree.currentIndex,col); @@ -1530,12 +1530,12 @@ function StudentAuswahl() StudentAbschlusspruefungTreeLoad(prestudent_id); } - if(uid!='') + if(parseInt(prestudent_id) !== false) { // ****** Projektarbeit ********* // StudentProjektarbeitDetailDisableFields(true); StudentProjektbetreuerDisableFields(true); - StudentProjektarbeitTreeLoad(uid); + StudentProjektarbeitTreeLoad(prestudent_id); } @@ -1565,8 +1565,8 @@ function StudentAuswahl() } // ***** Anwesenheit ***** - if(document.getElementById('student-content-tabs').selectedItem==document.getElementById('student-tab-anwesenheit')) - {alert(prestudent_id); // TODO EINE + if(document.getElementById('student-content-tabs').selectedItem==document.getElementById('student-tab-anwesenheit')) // TODO EINE: PPPFAAAHH, is des schiach(id gibts nicht, wenn man keine berechtigungen hat!) (in content/student/studentenoverlay.xul.php) + { document.getElementById('student-anwesenheit').setAttribute('src','anwesenheit.xul.php?prestudent_id='+prestudent_id); } @@ -4091,9 +4091,8 @@ function StudentPruefungNeu() { //Lehrveranstaltung Drop Down laden var LVDropDown = document.getElementById('student-pruefung-menulist-lehrveranstaltung'); - var uid = document.getElementById('student-detail-textbox-uid').value; var prestudent_id = document.getElementById('student-detail-textbox-prestudent_id').value; - url="rdf/lehrveranstaltung.rdf.php?uid="+uid+"&"+gettimestamp(); + url="rdf/lehrveranstaltung.rdf.php?prestudent_id="+prestudent_id+"&"+gettimestamp(); //Alte DS entfernen var oldDatasources = LVDropDown.database.GetDataSources(); @@ -4350,9 +4349,8 @@ function StudentPruefungAuswahl() //Lehrveranstaltung Drop Down laden var LVDropDown = document.getElementById('student-pruefung-menulist-lehrveranstaltung'); //url='rdf/lehrveranstaltung.rdf.php?stg_kz='+stg_kz+"&"+gettimestamp(); - var uid = document.getElementById('student-detail-textbox-uid').value; var prestudent_id = document.getElementById('student-detail-textbox-prestudent_id').value; - url="rdf/lehrveranstaltung.rdf.php?uid="+uid+"&"+gettimestamp(); + url="rdf/lehrveranstaltung.rdf.php?prestudent_id="+prestudent_id+"&"+gettimestamp(); //Alte DS entfernen @@ -5152,9 +5150,9 @@ function StudentCreateDiplSupplement(event) tree.view.selection.getRangeAt(t,start,end); for (var v = start.value; v <= end.value; v++) { - var col = tree.columns ? tree.columns["student-treecol-uid"] : "student-treecol-uid"; - var uid=tree.view.getCellText(v,col); - paramList += ';'+uid; + var col = tree.columns ? tree.columns["student-treecol-prestudent_id"] : "student-treecol-prestudent_id"; + var prestudent_id=tree.view.getCellText(v,col); + paramList += ';'+prestudent_id; stg_kz=getTreeCellText(tree,"student-treecol-studiengang_kz", v); } } @@ -5166,7 +5164,7 @@ function StudentCreateDiplSupplement(event) } if (event.shiftKey) { - var output='odt'; + var output='odt'; } else if (event.ctrlKey) { @@ -5177,7 +5175,7 @@ function StudentCreateDiplSupplement(event) var output='pdf'; } //PDF erzeugen - window.open('content/pdfExport.php?xml=diplomasupplement.xml.php&output='+output+'&xsl=DiplSupplement&xsl_stg_kz='+stg_kz+'&uid='+paramList,'DiplomaSupplement', 'height=200,width=350,left=0,top=0,hotkeys=0,resizable=yes,status=no,scrollbars=yes,toolbar=no,location=no,menubar=no,dependent=yes'); + window.open('content/pdfExport.php?xml=diplomasupplement.xml.php&output='+output+'&xsl=DiplSupplement&xsl_stg_kz='+stg_kz+'&prestudent_id='+paramList,'DiplomaSupplement', 'height=200,width=350,left=0,top=0,hotkeys=0,resizable=yes,status=no,scrollbars=yes,toolbar=no,location=no,menubar=no,dependent=yes'); } // **** @@ -5203,11 +5201,11 @@ function StudentDiplomasupplementArchivieren() tree.view.selection.getRangeAt(t,start,end); for (var v = start.value; v <= end.value; v++) { - var col = tree.columns ? tree.columns["student-treecol-uid"] : "student-treecol-uid"; - var uid=tree.view.getCellText(v,col); + var col = tree.columns ? tree.columns["student-treecol-prestudent_id"] : "student-treecol-prestudent_id"; + var prestudent_id=tree.view.getCellText(v,col); stg_kz=getTreeCellText(tree,"student-treecol-studiengang_kz", v); - url = 'content/pdfExport.php?xml=diplomasupplement.xml.php&output=pdf&xsl=DiplSupplement&xsl_stg_kz='+stg_kz+'&uid='+uid+'&archive=true'; + url = 'content/pdfExport.php?xml=diplomasupplement.xml.php&output=pdf&xsl=DiplSupplement&xsl_stg_kz='+stg_kz+'&prestudent_id='+prestudent_id+'&archive=true'; var req = new phpRequest(url,'',''); var response = req.execute(); @@ -5335,12 +5333,12 @@ function StudentCreateStudienerfolg(event, xsl, finanzamt, studiensemester, all) for (var t = 0; t < numRanges; t++) { - tree.view.selection.getRangeAt(t,start,end); + tree.view.selection.getRangeAt(t,start,end); for (var v = start.value; v <= end.value; v++) { - var col = tree.columns ? tree.columns["student-treecol-uid"] : "student-treecol-uid"; - var uid=tree.view.getCellText(v,col); - paramList += ';'+uid; + var col = tree.columns ? tree.columns["student-treecol-uid"] : "student-treecol-prestudent_id"; + var prestudent_id=tree.view.getCellText(v,col); + paramList += ';'+prestudent_id; } } @@ -5363,7 +5361,7 @@ function StudentCreateStudienerfolg(event, xsl, finanzamt, studiensemester, all) if (event.shiftKey) { - var output='odt'; + var output='odt'; } else if (event.ctrlKey) { @@ -5375,7 +5373,7 @@ function StudentCreateStudienerfolg(event, xsl, finanzamt, studiensemester, all) } //PDF erzeugen - window.open('content/pdfExport.php?xml=studienerfolg.rdf.php&xsl='+xsl+'&uid='+paramList+'&ss='+studiensemester+'&typ='+finanzamt+all+'&output='+output,'DiplomaSupplement', 'height=200,width=350,left=0,top=0,hotkeys=0,resizable=yes,status=no,scrollbars=yes,toolbar=no,location=no,menubar=no,dependent=yes'); + window.open('content/pdfExport.php?xml=studienerfolg.rdf.php&xsl='+xsl+'&prestudent_id='+paramList+'&ss='+studiensemester+'&typ='+finanzamt+all+'&output='+output,'DiplomaSupplement', 'height=200,width=350,left=0,top=0,hotkeys=0,resizable=yes,status=no,scrollbars=yes,toolbar=no,location=no,menubar=no,dependent=yes'); } // ************* FUNKTIONEN ***************** // @@ -5419,7 +5417,7 @@ function StudentAnwesenheitIFrameLoad() var uid = document.getElementById('student-detail-textbox-uid').value; var prestudent_id = document.getElementById('student-detail-textbox-prestudent_id').value; if(parseInt(prestudent_id) !== false) - {alert(prestudent_id); // TODO EINE + { url = 'anwesenheit.xul.php?prestudent_id='+prestudent_id+'&ts='+gettimestamp(); document.getElementById('student-anwesenheit').setAttribute('src',url); } diff --git a/content/student/studentprojektarbeit.js.php b/content/student/studentprojektarbeit.js.php index 3fa94d802..7372e59b7 100644 --- a/content/student/studentprojektarbeit.js.php +++ b/content/student/studentprojektarbeit.js.php @@ -121,10 +121,10 @@ var StudentProjektbetreuerTreeListener = // **** // * Laedt die Daten fuer den Projektarbeiten Tree // **** -function StudentProjektarbeitTreeLoad(uid) +function StudentProjektarbeitTreeLoad(prestudent_id) { var tree = document.getElementById('student-projektarbeit-tree'); - var url='rdf/projektarbeit.rdf.php?student_uid='+uid+"&"+gettimestamp(); + var url='rdf/projektarbeit.rdf.php?prestudent_id='+prestudent_id+"&"+gettimestamp(); //Alte Observer entfernen try diff --git a/content/student/studentprojektarbeitoverlay.xul.php b/content/student/studentprojektarbeitoverlay.xul.php index a206eecb6..078a4ee86 100644 --- a/content/student/studentprojektarbeitoverlay.xul.php +++ b/content/student/studentprojektarbeitoverlay.xul.php @@ -1,484 +1,485 @@ -, - * Andreas Oesterreicher and - * Rudolf Hangl . - */ - -header("Cache-Control: no-cache"); -header("Cache-Control: post-check=0, pre-check=0",false); -header("Expires Mon, 26 Jul 1997 05:00:00 GMT"); -header("Pragma: no-cache"); -header("Content-type: application/vnd.mozilla.xul+xml"); -require_once('../../config/vilesci.config.inc.php'); -echo ''; - -?> - - - - + -'; + +"; echo " -
- - "; +

ACHTUNG: Dieser Vorgang kann mehrere Minuten dauern!

+ + "; } else { @@ -117,8 +140,8 @@ else if($_POST["action"] == "Starten") { echo "

Could not ADD COLUMN uid TO public.tbl_prestudent: " . $db->db_last_error()."

"; } - - + + $prestudent_qry = "ALTER TABLE public.tbl_prestudent ADD COLUMN perskz character(15); UPDATE public.tbl_prestudent SET perskz = (SELECT matrikelnr FROM public.tbl_student WHERE tbl_student.prestudent_id = tbl_prestudent.prestudent_id); "; @@ -141,78 +164,231 @@ else if($_POST["action"] == "Starten") } } - - - - - //********************************DROP ALL VIEWS******************************** - //bis.vw_bisio - if($result = @$db->db_query("SELECT 1 FROM bis.vw_bisio LIMIT 1;")) - { - if(!$db->db_query("DROP VIEW bis.vw_bisio")) - { - echo "

Could not DROP view bis.vw_bisio: " . $create_view_qry."

"; - } - } - - //campus.vw_student_lehrveranstaltung - if($result = @$db->db_query("SELECT 1 FROM campus.vw_student_lehrveranstaltung LIMIT 1;")) - { - if(!$db->db_query("DROP VIEW campus.vw_student_lehrveranstaltung")) - { - echo "

Could not DROP view campus.vw_student_lehrveranstaltung: " . $create_view_qry."

"; - } - } - - //lehre.vw_stundenplandev_student_unr - if($result = @$db->db_query("SELECT 1 FROM lehre.vw_stundenplandev_student_unr LIMIT 1;")) - { - if(!$db->db_query("DROP VIEW lehre.vw_stundenplandev_student_unr")) - { - echo "

Could not DROP view lehre.vw_stundenplandev_student_unr: " . $create_view_qry."

"; - } - } - - //public.vw_gruppen - if($result = @$db->db_query("SELECT 1 FROM public.vw_gruppen LIMIT 1;")) - { - if(!$db->db_query("DROP VIEW public.vw_gruppen")) - { - echo "

Could not DROP view public.vw_gruppen: " . $create_view_qry."

"; - } - } - - //lehre.vw_zeugnisnote - if($result = @$db->db_query("SELECT 1 FROM lehre.vw_zeugnisnote LIMIT 1;")) - { - if(!$db->db_query("DROP VIEW lehre.vw_zeugnisnote")) - { - echo "

Could not DROP view lehre.vw_zeugnisnote: " . $create_view_qry."

"; - } - } - - //testtool.vw_reihungstest_zeugnisnoten - if($result = @$db->db_query("SELECT 1 FROM testtool.vw_reihungstest_zeugnisnoten LIMIT 1;")) - { - if(!$db->db_query("DROP VIEW testtool.vw_reihungstest_zeugnisnoten")) - { - echo "

Could not DROP view testtool.vw_reihungstest_zeugnisnoten: " . $create_view_qry."

"; - } - } - - - - + dropViews($db); //modify all tables foreach($all_tables_to_update as $t) modifyOneTable($db, $t); + createViews($db); +} + + + +echo ''; + + + + + + + + + + + + + + + + + + +/* FUNCTIONS */ +function describeOneChange($db, $table) +{ + + if(!$result = @$db->db_query('SELECT '.$table["to"].' FROM '.$table["schema"].'.'.$table["name"].' LIMIT 1;')) + { + echo "
".$table["schema"].".".$table["name"].": ".$table["from"]." wird gelöscht!
"; + echo "
".$table["schema"].".".$table["name"].": ".$table["to"]." wird eingefügt!
"; + } +} + +function checkForUpdates($db, $table) +{ + if(!$result = @$db->db_query('SELECT '.$table["to"].' FROM '.$table["schema"].'.'.$table["name"].' LIMIT 1;')) + { + return true; + } + return false; +} + + +function modifyOneTable($db, $table) +{ + if(!$result = @$db->db_query('SELECT '.$table["to"].' FROM '.$table["schema"].'.'.$table["name"].' LIMIT 1;')) + { + $db->db_query("BEGIN;"); + + $indices = array(); + $primary_keys = array(); + + + $index_search_result = $db->db_query("SELECT * FROM pg_indexes WHERE schemaname=".$db->db_add_param($table["schema"])." AND tablename=".$db->db_add_param($table["name"])); + while($row = $db->db_fetch_object($index_search_result)) + { + if(strpos($row->indexdef, $table["from"]) !== false) //only if the pk is affected + { + $check_if_pk_result = $db->db_query("select * from pg_constraint where conname=".$db->db_add_param($row->indexname)); + + if($db->db_num_rows($check_if_pk_result) == 1) + { + $get_definition_result = $db->db_query( + "SELECT conrelid::regclass AS table_from + ,conname + ,pg_get_constraintdef(c.oid) + FROM pg_constraint c + JOIN pg_namespace n ON n.oid = c.connamespace + WHERE contype IN ('f', 'p ') + AND n.nspname = ".$db->db_add_param($row->schemaname)." + AND conname = ".$db->db_add_param($row->indexname)." + ORDER BY conrelid::regclass::text, contype DESC;"); + $def = $db->db_fetch_object($get_definition_result); + + if(!$pk_drop_result = $db->db_query('ALTER TABLE '.$table["schema"].".".$table["name"].' DROP CONSTRAINT '.$row->indexname)) + { + echo "

ACHTUNG: DROPPEN von PRIMARY KEY ".$row->indexname." fehlgeschlagen

"; + $db->db_query("ROLLBACK;"); + return; + } + + $constraint_add_query = str_replace ($table["from"], $table["to"], $def->pg_get_constraintdef ); + $primary_keys[] = 'ALTER TABLE '.$table["schema"].".".$table["name"].' ADD CONSTRAINT '.$row->indexname.' '.$constraint_add_query; + } + else + { + if(!$index_drop_result = $db->db_query('DROP INDEX '.$table["schema"].".".$row->indexname)) + { + echo "

ACHTUNG: DROPPEN von INDEX ".$row->indexname." fehlgeschlagen

"; + $db->db_query("ROLLBACK;"); + return; + } + + $index_add_query = str_replace ($table["from"], $table["to"], $row->indexdef ); + $indices[] = $index_add_query; + } + } + } + + + + //spalte einfuegen + $alter_update_qry = 'ALTER TABLE '.$table["schema"].'.'.$table["name"].' ADD COLUMN '.$table["to"].' '.$table["datatype"].'; + UPDATE '.$table["schema"].".".$table["name"].' SET '.$table["to"].' = (SELECT '.$table["to"].' FROM '.$table["newTargetSchema"].'.'.$table["pickDataFrom"].' WHERE '.$table["pickDataFromCol"].'='.$table["schema"].'.'.$table["name"].'.'.$table["from"].');'; + $db->db_query($alter_update_qry); + + $constraint_qry = ""; + + //constraints: $TO FK, $TO + if($table["constraint"] != "") + $constraint_qry = 'ALTER TABLE '.$table["schema"].".".$table["name"].' ALTER COLUMN '.$table["to"].' '.$table["constraint"].";"; + + $constraint_qry.=' ALTER TABLE '.$table["schema"].".".$table["name"].' ADD CONSTRAINT fk_'.$table["name"].'_'.$table["newTarget"].'_'.$table["to"].' FOREIGN KEY ('.$table["to"].') REFERENCES '.$table["newTargetSchema"].'.'.$table["newTarget"].' ('.$table["to"].');'; + + if(!$db->db_query($constraint_qry)) + { + echo ''.$table["schema"].".".$table["name"].': '.$db->db_last_error().'
'; + } + else + { + echo ' '.$table["schema"].".".$table["name"].': Spalte '.$table["to"].' hinzugefuegt!
'; + echo ' '.$table["schema"].".".$table["name"].': Spalte '.$table["from"].' auf '.$table["to"].' geändert!
'; + echo ' '.$table["schema"].".".$table["name"].': Spalte '.$table["to"].' constraints eingefuegt!
'; + + //FROM löschen + $qry = 'ALTER TABLE '.$table["schema"].".".$table["name"].' DROP COLUMN '.$table["from"].';'; + + if(!$db->db_query($qry)) + { + echo ''.$table["schema"].".".$table["name"].': '.$db->db_last_error().'
'; + echo ''.$table["schema"].".".$table["name"].': ACHTUNG! In diesem Fall sollte '.$table["to"].' ordnungsgemäß eingetragen sein, jedoch '.$table["from"].' nicht gelöscht worden sein. Das Skript erneut zu starten wird nicht funktionieren!
'; + } + else + { + echo ' '.$table["schema"].".".$table["name"].': Spalte '.$table["from"].' gelöscht!
'; + + foreach( $primary_keys as $pk) + { + if(!$pk_add_result = $db->db_query($pk)) + { + echo "

ACHTUNG: ADDEN von PRIMARY KEY ".$row->indexname." fehlgeschlagen

"; + $db->db_query("ROLLBACK;"); + return; + } + } + foreach( $indices as $ind) + { + if(!$index_add_result = $db->db_query($ind)) + { + echo "

ACHTUNG: ADDEN von INDEX ".$row->indexname." fehlgeschlagen

"; + $db->db_query("ROLLBACK;"); + return; + } + } + + $db->db_query("COMMIT;"); + return; + } + } + } +} + + + +function dropViews($db) +{ + //********************************DROP ALL VIEWS******************************** + //bis.vw_bisio + + if(!$db->db_query("DROP VIEW bis.vw_bisio")) + { + echo "

Could not DROP view bis.vw_bisio: " . $create_view_qry."

"; + } + + //campus.vw_student_lehrveranstaltung + + if(!$db->db_query("DROP VIEW campus.vw_student_lehrveranstaltung")) + { + echo "

Could not DROP view campus.vw_student_lehrveranstaltung: " . $create_view_qry."

"; + } + + //lehre.vw_stundenplandev_student_unr + if(!$db->db_query("DROP VIEW lehre.vw_stundenplandev_student_unr")) + { + echo "

Could not DROP view lehre.vw_stundenplandev_student_unr: " . $create_view_qry."

"; + } + + //public.vw_gruppen + if(!$db->db_query("DROP VIEW public.vw_gruppen")) + { + echo "

Could not DROP view public.vw_gruppen: " . $create_view_qry."

"; + } + + //lehre.vw_zeugnisnote + if(!$db->db_query("DROP VIEW lehre.vw_zeugnisnote")) + { + echo "

Could not DROP view lehre.vw_zeugnisnote: " . $create_view_qry."

"; + } + + //testtool.vw_reihungstest_zeugnisnoten + if(!$db->db_query("DROP VIEW testtool.vw_reihungstest_zeugnisnoten")) + { + echo "

Could not DROP view testtool.vw_reihungstest_zeugnisnoten: " . $create_view_qry."

"; + } +} + + + + +function createViews($db) +{ + //********************************CREATE ALL VIEWS******************************** //bis.vw_bisio @@ -401,8 +577,8 @@ else if($_POST["action"] == "Starten") FROM lehre.tbl_stundenplandev stpl JOIN tbl_benutzergruppe USING (gruppe_kurzbz) WHERE tbl_benutzergruppe.studiensemester_kurzbz::text = ((( SELECT tbl_studiensemester.studiensemester_kurzbz - FROM tbl_studiensemester - WHERE stpl.datum <= tbl_studiensemester.ende AND stpl.datum >= tbl_studiensemester.start))::text) + FROM tbl_studiensemester + WHERE stpl.datum <= tbl_studiensemester.ende AND stpl.datum >= tbl_studiensemester.start))::text) GROUP BY stpl.unr, stpl.datum, stpl.stunde, tbl_benutzergruppe.uid, tbl_benutzergruppe.prestudent_id UNION SELECT stpl.unr, @@ -414,8 +590,8 @@ else if($_POST["action"] == "Starten") JOIN tbl_studentlehrverband ON stpl.gruppe_kurzbz IS NULL AND stpl.studiengang_kz = tbl_studentlehrverband.studiengang_kz AND stpl.semester = tbl_studentlehrverband.semester AND (stpl.verband = tbl_studentlehrverband.verband OR stpl.verband = ' '::bpchar AND stpl.verband <> tbl_studentlehrverband.verband) AND (stpl.gruppe = tbl_studentlehrverband.gruppe OR stpl.gruppe = ' '::bpchar AND stpl.gruppe <> tbl_studentlehrverband.gruppe) JOIN tbl_prestudent on(tbl_prestudent.prestudent_id = tbl_studentlehrverband.prestudent_id) WHERE tbl_studentlehrverband.studiensemester_kurzbz::text = ((( SELECT tbl_studiensemester.studiensemester_kurzbz - FROM tbl_studiensemester - WHERE stpl.datum <= tbl_studiensemester.ende AND stpl.datum >= tbl_studiensemester.start))::text) + FROM tbl_studiensemester + WHERE stpl.datum <= tbl_studiensemester.ende AND stpl.datum >= tbl_studiensemester.start))::text) GROUP BY stpl.unr, stpl.datum, stpl.stunde, tbl_studentlehrverband.prestudent_id, tbl_prestudent.uid) sub_stpl_uid GROUP BY sub_stpl_uid.unr, sub_stpl_uid.datum, sub_stpl_uid.stunde, sub_stpl_uid.uid; "; @@ -531,9 +707,9 @@ else if($_POST["action"] == "Starten") CREATE VIEW testtool.vw_reihungstest_zeugnisnoten AS SELECT tbl_zeugnisnote.studiensemester_kurzbz, CASE - WHEN tbl_zeugnisnote.note IS NULL THEN 5 - WHEN tbl_zeugnisnote.note = ANY (ARRAY[7, 13, 14, 15]) THEN 5 - ELSE tbl_zeugnisnote.note::integer + WHEN tbl_zeugnisnote.note IS NULL THEN 5 + WHEN tbl_zeugnisnote.note = ANY (ARRAY[7, 13, 14, 15]) THEN 5 + ELSE tbl_zeugnisnote.note::integer END AS note, tbl_zeugnisnote.lehrveranstaltung_id, tbl_zeugnisnote.benotungsdatum, @@ -573,7 +749,7 @@ else if($_POST["action"] == "Starten") tbl_prestudent.rt_gesamtpunkte, tbl_studiensemester.ende FROM tbl_student - JOIN lehre.tbl_zeugnisnote USING (student_uid) + JOIN lehre.tbl_zeugnisnote USING (prestudent_id) JOIN tbl_benutzer ON tbl_student.student_uid::text = tbl_benutzer.uid::text JOIN tbl_person USING (person_id) JOIN lehre.tbl_lehrveranstaltung USING (lehrveranstaltung_id) @@ -586,200 +762,9 @@ else if($_POST["action"] == "Starten") echo "

Could not CREATE view testtool.vw_reihungstest_zeugnisnoten: " . $create_view_qry."

"; } } - -/* TODO:SCHEMA.TODO:VIEW TEMPLATE - //SCHEMA.TODO:VIEW - if(!$result = @$db->db_query("SELECT 1 FROM TODO:SCHEMA.TODO:VIEW LIMIT 1;")) - { - $create_view_qry = " - CREATE VIEW TODO:SCHEMA.TODO:VIEW AS - TODO:DEFINITION - "; - if(!$db->db_query($create_view_qry)) - { - echo "

Could not CREATE view TODO:SCHEMA.TODO:VIEW: " . $create_view_qry."

"; - } - } - -*/ - - - - - - - - - - - } -echo ''; - - - - - - - - - - - - - - - - - - - - - - - -/* FUNCTIONS */ -function describeOneChange($db, $table) -{ - - if(!$result = @$db->db_query('SELECT '.$table["to"].' FROM '.$table["schema"].'.'.$table["name"].' LIMIT 1;')) - { - echo "
".$table["schema"].".".$table["name"].": ".$table["from"]." wird gelöscht!
"; - echo "
".$table["schema"].".".$table["name"].": ".$table["to"]." wird eingefügt!
"; - } -} - -function checkForUpdates($db, $table) -{ - if(!$result = @$db->db_query('SELECT '.$table["to"].' FROM '.$table["schema"].'.'.$table["name"].' LIMIT 1;')) - { - return true; - } - return false; -} - - -function modifyOneTable($db, $table) -{ - if(!$result = @$db->db_query('SELECT '.$table["to"].' FROM '.$table["schema"].'.'.$table["name"].' LIMIT 1;')) - { - $db->db_query("BEGIN;"); - - $indices = array(); - $primary_keys = array(); - - - $index_search_result = $db->db_query("SELECT * FROM pg_indexes WHERE schemaname=".$db->db_add_param($table["schema"])." AND tablename=".$db->db_add_param($table["name"])); - while($row = $db->db_fetch_object($index_search_result)) - { - if(strpos($row->indexdef, $table["from"]) !== false) //only if the pk is affected - { - $check_if_pk_result = $db->db_query("select * from pg_constraint where conname=".$db->db_add_param($row->indexname)); - - if($db->db_num_rows($check_if_pk_result) == 1) - { - $get_definition_result = $db->db_query( - "SELECT conrelid::regclass AS table_from - ,conname - ,pg_get_constraintdef(c.oid) - FROM pg_constraint c - JOIN pg_namespace n ON n.oid = c.connamespace - WHERE contype IN ('f', 'p ') - AND n.nspname = ".$db->db_add_param($row->schemaname)." - AND conname = ".$db->db_add_param($row->indexname)." - ORDER BY conrelid::regclass::text, contype DESC;"); - $def = $db->db_fetch_object($get_definition_result); - - if(!$pk_drop_result = $db->db_query('ALTER TABLE '.$table["schema"].".".$table["name"].' DROP CONSTRAINT '.$row->indexname)) - { - echo "

ACHTUNG: DROPPEN von PRIMARY KEY ".$row->indexname." fehlgeschlagen

"; - $db->db_query("ROLLBACK;"); - return; - } - - $constraint_add_query = str_replace ($table["from"], $table["to"], $def->pg_get_constraintdef ); - $primary_keys[] = 'ALTER TABLE '.$table["schema"].".".$table["name"].' ADD CONSTRAINT '.$row->indexname.' '.$constraint_add_query; - } - else - { - if(!$index_drop_result = $db->db_query('DROP INDEX '.$table["schema"].".".$row->indexname)) - { - echo "

ACHTUNG: DROPPEN von INDEX ".$row->indexname." fehlgeschlagen

"; - $db->db_query("ROLLBACK;"); - return; - } - - $index_add_query = str_replace ($table["from"], $table["to"], $row->indexdef ); - $indices[] = $index_add_query; - } - } - } - - - - //spalte einfuegen - $alter_update_qry = 'ALTER TABLE '.$table["schema"].'.'.$table["name"].' ADD COLUMN '.$table["to"].' '.$table["datatype"].'; - UPDATE '.$table["schema"].".".$table["name"].' SET '.$table["to"].' = (SELECT '.$table["to"].' FROM '.$table["newTargetSchema"].'.'.$table["pickDataFrom"].' WHERE '.$table["pickDataFromCol"].'='.$table["schema"].'.'.$table["name"].'.'.$table["from"].');'; - $db->db_query($alter_update_qry); - - $constraint_qry = ""; - - //constraints: $TO FK, $TO - if($table["constraint"] != "") - $constraint_qry = 'ALTER TABLE '.$table["schema"].".".$table["name"].' ALTER COLUMN '.$table["to"].' '.$table["constraint"].";"; - - $constraint_qry.=' ALTER TABLE '.$table["schema"].".".$table["name"].' ADD CONSTRAINT fk_'.$table["name"].'_'.$table["newTarget"].'_'.$table["to"].' FOREIGN KEY ('.$table["to"].') REFERENCES '.$table["newTargetSchema"].'.'.$table["newTarget"].' ('.$table["to"].');'; - - if(!$db->db_query($constraint_qry)) - { - echo ''.$table["schema"].".".$table["name"].': '.$db->db_last_error().'
'; - } - else - { - echo ' '.$table["schema"].".".$table["name"].': Spalte '.$table["to"].' hinzugefuegt!
'; - echo ' '.$table["schema"].".".$table["name"].': Spalte '.$table["from"].' auf '.$table["to"].' geändert!
'; - echo ' '.$table["schema"].".".$table["name"].': Spalte '.$table["to"].' constraints eingefuegt!
'; - - //FROM löschen - $qry = 'ALTER TABLE '.$table["schema"].".".$table["name"].' DROP COLUMN '.$table["from"].';'; - - if(!$db->db_query($qry)) - { - echo ''.$table["schema"].".".$table["name"].': '.$db->db_last_error().'
'; - echo ''.$table["schema"].".".$table["name"].': ACHTUNG! In diesem Fall sollte '.$table["to"].' ordnungsgemäß eingetragen sein, jedoch '.$table["from"].' nicht gelöscht worden sein. Das Skript erneut zu starten wird nicht funktionieren!
'; - } - else - { - echo ' '.$table["schema"].".".$table["name"].': Spalte '.$table["from"].' gelöscht!
'; - - foreach( $primary_keys as $pk) - { - if(!$pk_add_result = $db->db_query($pk)) - { - echo "

ACHTUNG: ADDEN von PRIMARY KEY ".$row->indexname." fehlgeschlagen

"; - $db->db_query("ROLLBACK;"); - return; - } - } - foreach( $indices as $ind) - { - if(!$index_add_result = $db->db_query($ind)) - { - echo "

ACHTUNG: ADDEN von INDEX ".$row->indexname." fehlgeschlagen

"; - $db->db_query("ROLLBACK;"); - return; - } - } - - $db->db_query("COMMIT;"); - return; - } - } - } -} - ?>