From 5d3032e5de1c7052d55da0580d59af75fe9ec68a Mon Sep 17 00:00:00 2001 From: Andreas Moik Date: Wed, 27 Apr 2016 13:42:29 +0200 Subject: [PATCH] many bugfixes changed some tbl_student to tbl_prestudent --- cis/private/lehre/anwesenheitsliste.pdf.php | 10 +- content/statistik/lvplanung.php | 6 +- content/statistik/lvplanunggesamtsj.php | 14 +- content/statistik/projektarbeitexport.xls.php | 32 +-- content/student/studentoverlay.js.php | 21 +- include/tw/abgabe_lektor_benotung.php | 28 +-- rdf/student.rdf.php | 2 +- rdf/zeugnis.rdf.php | 17 +- system/abgabe2opus.php | 13 +- system/checkStudenten.php | 28 ++- system/dbupdate_eine_uid.php | 201 +++++++++++++++++- system/sync/sync_stpldev_stpl.php | 6 +- vilesci/lehre/abgabe_assistenz.php | 23 +- vilesci/personen/student_vorrueckung.php | 16 +- 14 files changed, 301 insertions(+), 116 deletions(-) diff --git a/cis/private/lehre/anwesenheitsliste.pdf.php b/cis/private/lehre/anwesenheitsliste.pdf.php index 639a2283b..38db5dd11 100644 --- a/cis/private/lehre/anwesenheitsliste.pdf.php +++ b/cis/private/lehre/anwesenheitsliste.pdf.php @@ -125,14 +125,16 @@ if (isset($lehrende->result)) //Studierende der LV laden und in ein Array schreiben $qry = "SELECT - distinct on(nachname, vorname, person_id) vorname, nachname, matrikelnr, + distinct on(nachname, vorname, person_id) vorname, nachname, perskz, tbl_studentlehrverband.semester, tbl_studentlehrverband.verband, tbl_studentlehrverband.gruppe, (SELECT status_kurzbz FROM public.tbl_prestudentstatus WHERE prestudent_id=tbl_student.prestudent_id ORDER BY datum DESC, insertamum DESC, ext_id DESC LIMIT 1) as status, tbl_bisio.bisio_id, tbl_bisio.von, tbl_bisio.bis, tbl_student.studiengang_kz AS stg_kz_student, tbl_zeugnisnote.note, tbl_mitarbeiter.mitarbeiter_uid FROM - campus.vw_student_lehrveranstaltung JOIN public.tbl_benutzer USING(uid) - JOIN public.tbl_person USING(person_id) LEFT JOIN public.tbl_student ON(uid=student_uid) + campus.vw_student_lehrveranstaltung + JOIN public.tbl_benutzer USING(uid) + JOIN public.tbl_person USING(person_id) + LEFT JOIN public.tbl_student ON(uid=student_uid) LEFT JOIN public.tbl_mitarbeiter ON(uid=mitarbeiter_uid) LEFT JOIN public.tbl_studentlehrverband ON(public.tbl_student.prestudent_id=tbl_studentlehrverband.prestudent_id AND tbl_zeugnisnote.studiensemester_kurzbz=tbl_studentlehrverband.studiensemester_kurzbz) LEFT JOIN lehre.tbl_zeugnisnote on(vw_student_lehrveranstaltung.lehrveranstaltung_id=tbl_zeugnisnote.lehrveranstaltung_id AND tbl_zeugnisnote.student_uid=tbl_student.student_uid AND tbl_zeugnisnote.studiensemester_kurzbz=tbl_studentlehrverband.studiensemester_kurzbz) @@ -185,7 +187,7 @@ if($result = $db->db_query($qry)) $data[]=array('student'=>array( 'vorname'=>$row->vorname, 'nachname'=>$row->nachname, - 'personenkennzeichen'=>trim($row->matrikelnr), + 'personenkennzeichen'=>trim($row->perskz), 'semester'=>$row->semester, 'verband'=>trim($row->verband), 'gruppe'=>trim($row->gruppe), diff --git a/content/statistik/lvplanung.php b/content/statistik/lvplanung.php index 56e0676d4..eb77b72c0 100644 --- a/content/statistik/lvplanung.php +++ b/content/statistik/lvplanung.php @@ -263,12 +263,13 @@ if($studiengang_kz!='') $qry = "SELECT * FROM - lehre.tbl_projektarbeit, lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung, lehre.tbl_projektbetreuer, public.tbl_person + lehre.tbl_projektarbeit, lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung, lehre.tbl_projektbetreuer, public.tbl_person, public.tbl_prestudent WHERE tbl_projektarbeit.lehreinheit_id=tbl_lehreinheit.lehreinheit_id AND tbl_lehreinheit.lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id AND tbl_projektarbeit.projektarbeit_id=tbl_projektbetreuer.projektarbeit_id AND tbl_person.person_id=tbl_projektbetreuer.person_id AND + tbl_prestudent.prestudent_id=tbl_projektarbeit.prestudent_id AND tbl_lehrveranstaltung.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER)." AND tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($semester_aktuell)." AND (tbl_projektbetreuer.faktor*tbl_projektbetreuer.stundensatz*tbl_projektbetreuer.stunden)>0 @@ -282,12 +283,13 @@ elseif($mitarbeiter_uid!='') $qry = "SELECT * FROM - lehre.tbl_projektarbeit, lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung, lehre.tbl_projektbetreuer, public.tbl_person + lehre.tbl_projektarbeit, lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung, lehre.tbl_projektbetreuer, public.tbl_person, public.tbl_prestudent WHERE tbl_projektarbeit.lehreinheit_id=tbl_lehreinheit.lehreinheit_id AND tbl_lehreinheit.lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id AND tbl_projektarbeit.projektarbeit_id=tbl_projektbetreuer.projektarbeit_id AND tbl_person.person_id=tbl_projektbetreuer.person_id AND + tbl_prestudent.prestudent_id=tbl_projektarbeit.prestudent_id AND tbl_projektbetreuer.person_id=".$db->db_add_param($mitarbeiter->person_id, FHC_INTEGER)." AND tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($semester_aktuell)." AND (tbl_projektbetreuer.faktor*tbl_projektbetreuer.stundensatz*tbl_projektbetreuer.stunden)>0 diff --git a/content/statistik/lvplanunggesamtsj.php b/content/statistik/lvplanunggesamtsj.php index 01a84d487..056d9d5f6 100644 --- a/content/statistik/lvplanunggesamtsj.php +++ b/content/statistik/lvplanunggesamtsj.php @@ -46,24 +46,24 @@ function drawBetreuungen() global $gesamtkosten_lva, $zeile, $spalte, $stsem1, $stsem2, $last_fb, $worksheet; global $format_bold, $format_colored, $gesamtkosten_betreuung; global $gesamtkosten_fb, $format_number, $format_number1; - + $qry_fb = "SELECT - *, tbl_benutzer.uid as student_uid + *, tbl_prestudent.uid as student_uid FROM - lehre.tbl_projektarbeit, lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung, lehre.tbl_projektbetreuer, public.tbl_person, lehre.tbl_lehrfach, public.tbl_benutzer, public.tbl_prestudent + lehre.tbl_projektarbeit, lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung, lehre.tbl_projektbetreuer, public.tbl_person, lehre.tbl_lehrfach, public.tbl_prestudent WHERE tbl_projektarbeit.lehreinheit_id=tbl_lehreinheit.lehreinheit_id AND tbl_lehreinheit.lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id AND tbl_projektarbeit.projektarbeit_id=tbl_projektbetreuer.projektarbeit_id AND tbl_lehreinheit.lehrfach_id=tbl_lehrfach.lehrfach_id AND tbl_person.person_id=tbl_projektbetreuer.person_id AND - (tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($stsem1)." OR - tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($stsem2).") AND + (tbl_lehreinheit.studiensemester_kurzbz='".addslashes($stsem1)."' OR + tbl_lehreinheit.studiensemester_kurzbz='".addslashes($stsem2)."') AND (tbl_projektbetreuer.faktor*tbl_projektbetreuer.stundensatz*tbl_projektbetreuer.stunden)>0 AND - tbl_lehrfach.fachbereich_kurzbz=".$db->db_add_param($last_fb)." AND tbl_prestudent.prestudent_id = tbl_projektarbeit.prestudent_id AND - tbl_prestudent.person_id = tbl_benutzer.person_id + tbl_lehrfach.fachbereich_kurzbz='".addslashes($last_fb)."' "; + $db = new basis_db(); $gesamtkosten_betreuung=0; if($result_fb = $db->db_query($qry_fb)) diff --git a/content/statistik/projektarbeitexport.xls.php b/content/statistik/projektarbeitexport.xls.php index dfef766e4..431444f1e 100644 --- a/content/statistik/projektarbeitexport.xls.php +++ b/content/statistik/projektarbeitexport.xls.php @@ -34,7 +34,7 @@ $db = new basis_db(); $user = get_uid(); $datum_obj = new datum(); loadVariables($user); - + //Parameter holen $studiengang_kz = isset($_GET['studiengang_kz'])?$_GET['studiengang_kz']:''; $semester = isset($_GET['semester'])?$_GET['semester']:''; @@ -78,29 +78,30 @@ loadVariables($user); $maxlength[$i]=mb_strlen($title); $i++; } - + // Daten holen - $qry = "SELECT - tbl_projekttyp.bezeichnung, titel, trim(COALESCE(titelpre,'') || ' ' || COALESCE(vorname,'') || ' ' || COALESCE(nachname,'') || ' ' || COALESCE(titelpost,'')), + $qry = "SELECT + tbl_projekttyp.bezeichnung, titel, trim(COALESCE(titelpre,'') || ' ' || COALESCE(vorname,'') || ' ' || COALESCE(nachname,'') || ' ' || COALESCE(titelpost,'')), (SELECT anmerkung FROM lehre.tbl_note WHERE note=tbl_projektarbeit.note) as anmerkung, punkte, beginn, ende, CASE WHEN freigegeben THEN 'Ja' ELSE 'Nein' END, gesperrtbis, gesamtstunden, themenbereich, tbl_projektarbeit.anmerkung, projektarbeit_id - FROM - lehre.tbl_projektarbeit, lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung, - public.tbl_benutzer, public.tbl_person, lehre.tbl_projekttyp, public.tbl_prestudent + FROM + lehre.tbl_projektarbeit, lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung, + public.tbl_prestudent, lehre.tbl_projekttyp, public.tbl_person, public.tbl_benutzer WHERE tbl_projektarbeit.lehreinheit_id=tbl_lehreinheit.lehreinheit_id AND tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_lehreinheit.lehrveranstaltung_id AND - tbl_prestudent.prestudent_id=tbl_projektarbeit.prestudent_id AND - tbl_prestudent.person_id=tbl_benutzer.person_id AND - tbl_benutzer.person_id=tbl_person.person_id AND + tbl_projektarbeit.prestudent_id=tbl_prestudent.prestudent_id AND + tbl_prestudent.uid=tbl_benutzer.uid AND + tbl_person.person_id=tbl_benutzer.person_id AND tbl_projektarbeit.projekttyp_kurzbz=tbl_projekttyp.projekttyp_kurzbz AND tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz)." AND - tbl_lehrveranstaltung.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER)." AND + tbl_lehrveranstaltung.studiengang_kz=".$db->db_add_param($studiengang_kz)." AND tbl_projektarbeit.projekttyp_kurzbz IN ('Bachelor','Diplom','Projekt')"; - + + if($semester!='') $qry.= " AND tbl_lehrveranstaltung.semester=".$db->db_add_param($semester); - + //echo $qry; $zeile=1; if($result = $db->db_query($qry)) @@ -122,9 +123,8 @@ loadVariables($user); } } $zeile++; - + //Betreuer - $qry_betreuer = "SELECT betreuerart_kurzbz, COALESCE(titelpre,'') || ' ' || COALESCE(vorname,'') || ' ' || COALESCE(nachname,'') || ' ' || COALESCE(titelpost,''), tbl_note.anmerkung, faktor, name, punkte, stunden, stundensatz FROM (lehre.tbl_projektbetreuer JOIN tbl_person USING(person_id)) LEFT JOIN lehre.tbl_note USING(note) WHERE projektarbeit_id='".$row['projektarbeit_id']."'"; if($result_betreuer = $db->db_query($qry_betreuer)) @@ -168,7 +168,7 @@ loadVariables($user); //Die Breite der Spalten setzen foreach($maxlength as $i=>$breite) $worksheet->setColumn($i, $i, $breite+2); - + $workbook->close(); ?> diff --git a/content/student/studentoverlay.js.php b/content/student/studentoverlay.js.php index ff78e822e..55f29e21c 100644 --- a/content/student/studentoverlay.js.php +++ b/content/student/studentoverlay.js.php @@ -16,8 +16,9 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * * Authors: Christian Paminger , - * Andreas Oesterreicher and - * Rudolf Hangl . + * Andreas Oesterreicher , + * Rudolf Hangl and + * Andreas Moik . */ require_once('../../config/vilesci.config.inc.php'); @@ -1344,11 +1345,7 @@ function StudentAuswahl() // *** Incomming/Outgoing *** bisiotree = document.getElementById('student-io-tree'); -<<<<<<< HEAD url='rdf/bisio.rdf.php?prestudent_id='+prestudent_id+"&"+gettimestamp(); -======= - url='rdf/bisio.rdf.php?uid='+uid+"&"+gettimestamp(); ->>>>>>> master try { @@ -1380,12 +1377,8 @@ function StudentAuswahl() { // *** ZeugnisNoten *** notentree = document.getElementById('student-noten-tree'); -<<<<<<< HEAD - url='rdf/zeugnisnote.rdf.php?prestudent_id='+prestudent_id+"&"+gettimestamp(); -======= - url='rdf/zeugnisnote.rdf.php?uid='+uid+"&"+gettimestamp(); ->>>>>>> master + url='rdf/zeugnisnote.rdf.php?prestudent_id='+prestudent_id+"&"+gettimestamp(); try { @@ -1454,14 +1447,12 @@ function StudentAuswahl() // ***** Pruefungen ***** pruefungtree = document.getElementById('student-pruefung-tree'); -<<<<<<< HEAD - url='rdf/pruefung.rdf.php?student_uid='+uid+"&"+gettimestamp(); -======= + var pruefungstsemall=''; if(document.getElementById('student-pruefung-button-filterstsem').checked) pruefungstsemall='&all_stsem'; url='rdf/pruefung.rdf.php?student_uid='+uid+pruefungstsemall+"&"+gettimestamp(); ->>>>>>> master + try { diff --git a/include/tw/abgabe_lektor_benotung.php b/include/tw/abgabe_lektor_benotung.php index a5b27d316..aed8fe2a9 100644 --- a/include/tw/abgabe_lektor_benotung.php +++ b/include/tw/abgabe_lektor_benotung.php @@ -79,6 +79,10 @@ function getmax($val1,$val2) return ($val1>$val2)?$val1:$val2; } + +if(!isset($_REQUEST['projektarbeit_id'])) + die("Es wurde keine projektarbeit_id uebergeben!"); + $projektarbeit_obj = new projektarbeit(); if(!$projektarbeit_obj->load($_REQUEST['projektarbeit_id'])) die('Projektarbeit konnte nicht geladen werden'); @@ -702,25 +706,21 @@ else exit(); } - - -$sql_query = "SELECT *,(SELECT abgabedatum FROM campus.tbl_paabgabe WHERE projektarbeit_id=".$db->db_add_param($projektarbeit_id, FHC_INTEGER)." AND abgabedatum is NOT NULL ORDER BY abgabedatum DESC LIMIT 1) as abgabedatum FROM (SELECT DISTINCT ON(tbl_projektarbeit.projektarbeit_id) tbl_studiengang.bezeichnung as stgbezeichnung, tbl_studiengang.typ as stgtyp, * +$sql_query = "SELECT *,(SELECT abgabedatum FROM campus.tbl_paabgabe WHERE projektarbeit_id=".$db->db_add_param($projektarbeit_id, FHC_INTEGER)." AND abgabedatum is NOT NULL ORDER BY abgabedatum DESC LIMIT 1) as abgabedatum FROM (SELECT DISTINCT ON(tbl_projektarbeit.projektarbeit_id) tbl_studiengang.bezeichnung as stgbezeichnung, tbl_studiengang.typ as stgtyp, * FROM lehre.tbl_projektarbeit LEFT JOIN lehre.tbl_projektbetreuer using(projektarbeit_id) - LEFT JOIN public.tbl_prestudent_id using(prestudent_id) - LEFT JOIN public.tbl_benutzer on(tbl_benutzer.person_id=tbl_prestudent_id.person_id) - LEFT JOIN public.tbl_student on(tbl_benutzer.uid=tbl_student.student_uid) - LEFT JOIN public.tbl_person on(tbl_benutzer.person_id=tbl_person.person_id) - LEFT JOIN lehre.tbl_lehreinheit using(lehreinheit_id) - LEFT JOIN lehre.tbl_lehrveranstaltung using(lehrveranstaltung_id) + LEFT JOIN public.tbl_prestudent on(tbl_projektarbeit.prestudent_id = tbl_prestudent.prestudent_id) + LEFT JOIN public.tbl_person on(tbl_prestudent.person_id=tbl_person.person_id) + LEFT JOIN lehre.tbl_lehreinheit using(lehreinheit_id) + LEFT JOIN lehre.tbl_lehrveranstaltung using(lehrveranstaltung_id) LEFT JOIN public.tbl_studiengang on(tbl_lehrveranstaltung.studiengang_kz=tbl_studiengang.studiengang_kz) WHERE (projekttyp_kurzbz='Bachelor' OR projekttyp_kurzbz='Diplom') - AND tbl_projektbetreuer.person_id IN (SELECT person_id FROM public.tbl_benutzer - WHERE public.tbl_benutzer.person_id=lehre.tbl_projektbetreuer.person_id - AND public.tbl_benutzer.uid=".$db->db_add_param($getuid).") - AND lehre.tbl_projektarbeit.note IS NULL + AND tbl_projektbetreuer.person_id IN (SELECT person_id FROM public.tbl_prestudent + WHERE public.tbl_prestudent.person_id=lehre.tbl_projektbetreuer.person_id + AND public.tbl_prestudent.uid=".$db->db_add_param($getuid).") + AND lehre.tbl_projektarbeit.note IS NULL AND lehre.tbl_projektarbeit.projektarbeit_id=".$db->db_add_param($projektarbeit_id, FHC_INTEGER)." - ORDER BY tbl_projektarbeit.projektarbeit_id, betreuerart_kurzbz desc) as xy + ORDER BY tbl_projektarbeit.projektarbeit_id, betreuerart_kurzbz desc) as xy ORDER BY nachname"; if(!$erg=$db->db_query($sql_query)) diff --git a/rdf/student.rdf.php b/rdf/student.rdf.php index 26f8586c4..b53e35aa6 100644 --- a/rdf/student.rdf.php +++ b/rdf/student.rdf.php @@ -445,7 +445,7 @@ if($xmlformat=='rdf') //$where.=" AND tbl_studentlehrverband.studiensemester_kurzbz='$studiensemester_kurzbz'"; - $sql_query="SELECT p.person_id, tbl_student.prestudent_id, tbl_benutzer.uid, titelpre, titelpost, vorname, vornamen, geschlecht, + $sql_query="SELECT p.person_id, tbl_prestudent.prestudent_id, tbl_prestudent.uid, titelpre, titelpost, vorname, vornamen, geschlecht, nachname, gebdatum, tbl_prestudent.anmerkung,ersatzkennzeichen,svnr, tbl_student.matrikelnr, p.anmerkung as anmerkungen, tbl_studentlehrverband.semester, tbl_studentlehrverband.verband, tbl_studentlehrverband.gruppe, tbl_student.studiengang_kz, aufmerksamdurch_kurzbz, mentor, public.tbl_benutzer.aktiv AS bnaktiv, diff --git a/rdf/zeugnis.rdf.php b/rdf/zeugnis.rdf.php index bb0be3696..898874433 100644 --- a/rdf/zeugnis.rdf.php +++ b/rdf/zeugnis.rdf.php @@ -91,7 +91,6 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml") $studiensemester_kurzbz = $semester_aktuell; //Daten holen - $xml = ""; $xml .= ""; @@ -102,16 +101,16 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml") $xml_fussnote=''; $projektarbeit=array(); - $query = "SELECT tbl_student.matrikelnr, tbl_student.studiengang_kz, tbl_studiengang.typ, tbl_studiengang.projektarbeit_note_anzeige, + $query = "SELECT tbl_prestudent.perskz, tbl_prestudent.studiengang_kz, tbl_studiengang.typ, tbl_studiengang.projektarbeit_note_anzeige, tbl_studiengang.bezeichnung, tbl_studiengang.english, tbl_studentlehrverband.semester, tbl_person.vorname, tbl_person.vornamen, tbl_person.nachname,tbl_person.gebdatum,tbl_person.titelpre, tbl_person.titelpost, tbl_person.anrede, tbl_studiensemester.bezeichnung as sembezeichnung, - tbl_studiensemester.studiensemester_kurzbz as stsem, tbl_student.prestudent_id, tbl_studiengang.max_semester - FROM tbl_person, tbl_student, tbl_studiengang, tbl_benutzer, tbl_studentlehrverband, tbl_studiensemester - WHERE tbl_student.studiengang_kz = tbl_studiengang.studiengang_kz - AND tbl_student.student_uid = tbl_benutzer.uid AND tbl_benutzer.person_id = tbl_person.person_id - AND tbl_student.prestudent_id = ".$db->db_add_param($prestudent_id_arr[$i])." - AND tbl_studentlehrverband.prestudent_id=tbl_student.prestudent_id + tbl_studiensemester.studiensemester_kurzbz as stsem, tbl_prestudent.prestudent_id, tbl_studiengang.max_semester + FROM tbl_person, tbl_prestudent, tbl_studiengang, tbl_benutzer, tbl_studentlehrverband, tbl_studiensemester + WHERE tbl_prestudent.studiengang_kz = tbl_studiengang.studiengang_kz + AND tbl_prestudent.uid = tbl_benutzer.uid AND tbl_benutzer.person_id = tbl_person.person_id + AND tbl_prestudent.prestudent_id = ".$db->db_add_param($prestudent_id_arr[$i])." + AND tbl_studentlehrverband.prestudent_id=tbl_prestudent.prestudent_id AND tbl_studiensemester.studiensemester_kurzbz = tbl_studentlehrverband.studiensemester_kurzbz AND tbl_studentlehrverband.studiensemester_kurzbz = ".$db->db_add_param($studiensemester_kurzbz); @@ -190,7 +189,7 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml") $xml .= " ".trim($row->titelpre.' '.trim($row->vorname.' '.$row->vornamen).' '.$row->nachname.($row->titelpost!=''?', '.$row->titelpost:'')).""; $gebdatum = date('d.m.Y',strtotime($row->gebdatum)); $xml .= " ".$gebdatum.""; - $xml .= " ".trim($row->matrikelnr).""; + $xml .= " ".trim($row->perskz).""; $xml .= " ".$stgl.""; $datum_aktuell = date('d.m.Y'); $xml .= " ".$datum_aktuell.""; diff --git a/system/abgabe2opus.php b/system/abgabe2opus.php index b773515bb..5587307ae 100644 --- a/system/abgabe2opus.php +++ b/system/abgabe2opus.php @@ -1155,18 +1155,17 @@ function indexdatei($source_opus, $fd) //Abgabedatum nicht länger als 6 Monate zurück //Freigegeben oder Endedatum der Sperre vorbei //**************************************************************************************************** -$qry="SELECT *, tbl_lehreinheit.studiensemester_kurzbz, tbl_benutzer.uid as stud_uid, tbl_fachbereich.bezeichnung as fb_bez, +$qry="SELECT *, tbl_lehreinheit.studiensemester_kurzbz, tbl_projektarbeit.prestudent_id, tbl_prestudent.uid as stud_uid, tbl_fachbereich.bezeichnung as fb_bez, tbl_lehrveranstaltung.studiengang_kz as stg_kz, tbl_projektarbeit.note as note1, tbl_zeugnisnote.note as note2 FROM lehre.tbl_projektarbeit - JOIN public.tbl_prestudent ON(tbl_projektarbeit.prestudent_id = tbl_prestudent.prestudent_id) - JOIN public.tbl_benutzer ON(tbl_prestudent.person_id = tbl_benutzer.person_id) + JOIN public.tbl_prestudent USING(prestudent_id) JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) - JOIN lehre.tbl_lehrveranstaltung ON(tbl_lehreinheit.lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id) + JOIN lehre.tbl_lehrveranstaltung ON(tbl_lehreinheit.lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id) JOIN lehre.tbl_lehrveranstaltung as lehrfach ON(tbl_lehreinheit.lehrfach_id=lehrfach.lehrveranstaltung_id) - JOIN public.tbl_fachbereich ON(lehrfach.oe_kurzbz=tbl_fachbereich.oe_kurzbz) - LEFT JOIN lehre.tbl_zeugnisnote ON(tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_zeugnisnote.lehrveranstaltung_id AND tbl_zeugnisnote.studiensemester_kurzbz=tbl_lehreinheit.studiensemester_kurzbz AND tbl_benutzer.uid=tbl_zeugnisnote.student_uid) + JOIN public.tbl_fachbereich ON(lehrfach.oe_kurzbz=tbl_fachbereich.oe_kurzbz) + LEFT JOIN lehre.tbl_zeugnisnote ON(tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_zeugnisnote.lehrveranstaltung_id AND tbl_zeugnisnote.studiensemester_kurzbz=tbl_lehreinheit.studiensemester_kurzbz AND tbl_projektarbeit.student_uid=tbl_zeugnisnote.student_uid) WHERE ((tbl_projektarbeit.note>0 AND tbl_projektarbeit.note<5) OR (tbl_zeugnisnote.note>0 AND tbl_zeugnisnote.note<5)) AND projekttyp_kurzbz='Diplom' - AND to_char(tbl_projektarbeit.abgabedatum,'YYYYMMDD')>'".date('Ymd',mktime(0, 0, 0, date('m')-6, date('d'), date('Y')))."' + AND to_char(tbl_projektarbeit.abgabedatum,'YYYYMMDD')>'".date('Ymd',mktime(0, 0, 0, date('m')-6, date('d'), date('Y')))."' AND (tbl_projektarbeit.freigegeben OR (to_char(tbl_projektarbeit.gesperrtbis,'YYYYMMDD')<'".date('Ymd',mktime(0, 0, 0, date('m'), date('d'), date('Y')))."'))"; //echo $qry."
"; diff --git a/system/checkStudenten.php b/system/checkStudenten.php index 5f0818dea..23092d1de 100644 --- a/system/checkStudenten.php +++ b/system/checkStudenten.php @@ -81,11 +81,10 @@ else $text.= "
Suche alle Abbrecher die noch aktiv sind ...

"; -$qry ="select pre_status.status_kurzbz, benutzer.aktiv, benutzer.uid, student.studiengang_kz studiengang +$qry ="select pre_status.status_kurzbz, benutzer.aktiv, benutzer.uid, pre.studiengang_kz studiengang from public.tbl_prestudentstatus pre_status join public.tbl_prestudent pre using(prestudent_id) -join public.tbl_student student using(prestudent_id) -join public.tbl_benutzer benutzer on(benutzer.uid=student.student_uid) +join public.tbl_benutzer benutzer on(benutzer.uid=pre.uid) where pre_status.status_kurzbz ='Abbrecher' and benutzer.aktiv = 'true';"; if($db->db_query($qry)) @@ -184,27 +183,24 @@ if($db->db_query($qry)) */ $text .="

Suche Studenten deren Semstern nicht mit dem Ausbildungssemesters des aktuellen Status übereinstimmt ...

"; - -$student = new student(); -$prestudent = new prestudent(); -$qry = "select distinct(student.student_uid), prestudent.prestudent_id, status.ausbildungssemester, lv.semester, student.studiengang_kz studiengang -from public.tbl_student student -join public.tbl_studentlehrverband lv ON(public.tbl_student.prestudent_id = public.tbl_studentlehrverband.prestudent_id) -join public.tbl_prestudent prestudent using(prestudent_id) -join public.tbl_prestudentstatus status using(prestudent_id) -WHERE status.studiensemester_kurzbz = '$aktSem' + +$qry = "select distinct(pre.uid), pre.prestudent_id, status.ausbildungssemester, lv.semester, pre.studiengang_kz studiengang +from public.tbl_prestudent pre +join public.tbl_studentlehrverband lv USING(prestudent_id) +join public.tbl_prestudentstatus status USING(prestudent_id) +WHERE status.studiensemester_kurzbz = '$aktSem' and lv.studiensemester_kurzbz = '$aktSem' AND status.status_kurzbz NOT IN ('Interessent','Bewerber') -and get_rolle_prestudent (prestudent_id, '$aktSem')='Student';"; +and get_rolle_prestudent (prestudent_id, '$aktSem')='Student';"; if($db->db_query($qry)) { while($row = $db->db_fetch_object()) { - $student_uid = $row->student_uid; - + $student_uid = $row->uid; + if($row->ausbildungssemester != $row->semester) { - $ausgabe[$row->studiengang][5][]= $student_uid; + $ausgabe[$row->studiengang][5][]= $student_uid; $text.="Studenten-uid: ".$student_uid."
"; } } diff --git a/system/dbupdate_eine_uid.php b/system/dbupdate_eine_uid.php index 0ddabca6a..671c230b3 100644 --- a/system/dbupdate_eine_uid.php +++ b/system/dbupdate_eine_uid.php @@ -45,24 +45,42 @@ array array("schema" => "fue", "name" => "tbl_ressource", "from" => "student_uid", "to" => "uid", "datatype" => "varchar(32)", "newTarget" => "tbl_benutzer", "newTargetSchema" => "public", "pickDataFrom" => "tbl_benutzer", "pickDataFromCol" => "uid" , "constraint" => ""), array("schema" => "lehre", "name" => "tbl_pruefung", "from" => "student_uid", "to" => "prestudent_id", "datatype" => "int", "newTarget" => "tbl_prestudent", "newTargetSchema" => "public", "pickDataFrom" => "tbl_student", "pickDataFromCol" => "student_uid", "constraint" => "SET NOT NULL"), array("schema" => "lehre", "name" => "tbl_zeugnis", "from" => "student_uid", "to" => "prestudent_id", "datatype" => "int", "newTarget" => "tbl_prestudent", "newTargetSchema" => "public", "pickDataFrom" => "tbl_student", "pickDataFromCol" => "student_uid", "constraint" => "SET NOT NULL"), + array("schema" => "lehre", "name" => "tbl_zeugnisnote", "from" => "student_uid", "to" => "prestudent_id", "datatype" => "int", "newTarget" => "tbl_prestudent", "newTargetSchema" => "public", "pickDataFrom" => "tbl_student", "pickDataFromCol" => "student_uid", "constraint" => "SET NOT NULL"), + ); if(!isset($_POST["action"])) { - $needed = false; + $change_needed = false; + $generic_needs = ""; + + /* GENERIC */ + if(!$result = @$db->db_query("SELECT perskz FROM public.tbl_prestudent LIMIT 1;")) + { + $change_needed = true; + $generic_needs .= "public.tbl_prestudent: uid wird eingefügt(student_uid von tbl_student)
"; + $generic_needs .= "public.tbl_prestudent: perskz wird eingefügt(matrikelnr von tbl_student)
"; + } + + /* TABLE SPECIFIC */ foreach($all_tables_to_update as $t) { if(checkForUpdates($db, $t)) - $needed = true; + $change_needed = true; } - if($needed) + if($change_needed) { echo "

ACHTUNG!

"; echo "

Folgendes wird geändert:

"; echo "

"; + + if($generic_needs != "") + { + echo $generic_needs; + } foreach($all_tables_to_update as $t) describeOneChange($db, $t); @@ -88,6 +106,31 @@ else if($_POST["action"] == "Starten") // *** Pruefung und hinzufuegen der neuen Attribute und Tabellen echo '

Pruefe Tabellen und Attribute!

'; + //********************************tbl_prestudent CHANGES******************************** + if(!$result = @$db->db_query("SELECT perskz FROM public.tbl_prestudent LIMIT 1;")) + { + $prestudent_qry = "ALTER TABLE public.tbl_prestudent ADD COLUMN uid varchar(32); + ALTER TABLE public.tbl_prestudent ADD CONSTRAINT fk_tbl_prestudent_tbl_benutzer_uid FOREIGN KEY (uid) REFERENCES public.tbl_benutzer (uid) ON DELETE RESTRICT ON UPDATE CASCADE; + UPDATE public.tbl_prestudent SET uid = (SELECT student_uid FROM public.tbl_student WHERE tbl_student.prestudent_id = tbl_prestudent.prestudent_id); + "; + if(!$result = @$db->db_query($prestudent_qry)) + { + 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); + "; + if(!$result = @$db->db_query($prestudent_qry)) + { + echo "

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

"; + } + } + + + + //********************************DROP ALL VIEWS******************************** //bis.vw_bisio @@ -125,6 +168,27 @@ else if($_POST["action"] == "Starten") 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."

"; + } + } + + + //modify all tables @@ -386,6 +450,137 @@ else if($_POST["action"] == "Starten") + //lehre.vw_zeugnisnote + if(!$result = @$db->db_query("SELECT 1 FROM lehre.vw_zeugnisnote LIMIT 1;")) + { + $create_view_qry = " + CREATE VIEW lehre.vw_zeugnisnote AS + SELECT tbl_zeugnisnote.studiensemester_kurzbz, + tbl_prestudent.uid, + tbl_prestudent.perskz, + tbl_prestudent.studiengang_kz, + tbl_lehrveranstaltung.kurzbz, + tbl_zeugnisnote.note, + tbl_lehrveranstaltung.ects, + tbl_zeugnisnote.lehrveranstaltung_id, + tbl_person.person_id, + tbl_prestudent.prestudent_id, + tbl_zeugnisnote.benotungsdatum, + tbl_person.staatsbuergerschaft, + tbl_person.geburtsnation, + tbl_person.sprache, + tbl_person.nachname, + tbl_person.vorname, + tbl_person.gebdatum, + tbl_person.gebort, + tbl_person.gebzeit, + tbl_person.svnr, + tbl_person.ersatzkennzeichen, + tbl_person.familienstand, + tbl_person.geschlecht, + tbl_person.anzahlkinder, + tbl_person.bundesland_code, + tbl_lehrveranstaltung.bezeichnung, + tbl_lehrveranstaltung.studiengang_kz AS lv_studiengang_kz, + tbl_lehrveranstaltung.semester AS lv_semester, + tbl_lehrveranstaltung.semesterstunden, + tbl_lehrveranstaltung.lehrform_kurzbz, + tbl_lehrveranstaltung.orgform_kurzbz, + tbl_prestudent.rt_punkte1, + tbl_prestudent.rt_punkte2, + tbl_prestudent.rt_punkte3, + tbl_prestudent.rt_gesamtpunkte + FROM tbl_prestudent + JOIN lehre.tbl_zeugnisnote USING (prestudent_id) + JOIN tbl_person USING (person_id) + JOIN lehre.tbl_lehrveranstaltung USING (lehrveranstaltung_id); + COMMENT ON VIEW lehre.vw_zeugnisnote IS 'Zeugnisnoten inkl. Personendaten, LV-Daten und RT-Punkte'; + "; + if(!$db->db_query($create_view_qry)) + { + echo "

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

"; + } + } + + //testtool.VIEW + if(!$result = @$db->db_query("SELECT 1 FROM testtool.vw_reihungstest_zeugnisnoten LIMIT 1;")) + { + $create_view_qry = " + 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 + END AS note, + tbl_zeugnisnote.lehrveranstaltung_id, + tbl_zeugnisnote.benotungsdatum, + tbl_benutzer.uid, + tbl_student.matrikelnr, + tbl_student.studiengang_kz AS student_stg_kz, + tbl_student.semester, + tbl_student.prestudent_id, + tbl_lehrveranstaltung.kurzbz, + tbl_lehrveranstaltung.bezeichnung, + tbl_lehrveranstaltung.studiengang_kz AS lv_studiengang_kz, + tbl_lehrveranstaltung.semester AS lv_semester, + tbl_lehrveranstaltung.semesterstunden, + tbl_lehrveranstaltung.lehrform_kurzbz, + tbl_lehrveranstaltung.orgform_kurzbz, + tbl_lehrveranstaltung.ects, + tbl_lehrveranstaltung.zeugnis, + tbl_lehrveranstaltung.studiengang_kz AS lv_stg_kz, + tbl_person.person_id, + tbl_person.staatsbuergerschaft, + tbl_person.geburtsnation, + tbl_person.sprache, + tbl_person.nachname, + tbl_person.vorname, + tbl_person.gebdatum, + tbl_person.gebort, + tbl_person.gebzeit, + tbl_person.svnr, + tbl_person.ersatzkennzeichen, + tbl_person.familienstand, + tbl_person.geschlecht, + tbl_person.anzahlkinder, + tbl_person.bundesland_code, + tbl_prestudent.rt_punkte1, + tbl_prestudent.rt_punkte2, + tbl_prestudent.rt_punkte3, + tbl_prestudent.rt_gesamtpunkte, + tbl_studiensemester.ende + FROM tbl_student + JOIN lehre.tbl_zeugnisnote USING (student_uid) + 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) + JOIN tbl_prestudent USING (prestudent_id) + JOIN tbl_studiensemester USING (studiensemester_kurzbz); + COMMENT ON VIEW testtool.vw_reihungstest_zeugnisnoten IS 'Fuer die Gegenueberstellung der Reihungstestergebnisse mit den Zeugnisnoten'; + "; + if(!$db->db_query($create_view_qry)) + { + 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."

"; + } + } + +*/ + diff --git a/system/sync/sync_stpldev_stpl.php b/system/sync/sync_stpldev_stpl.php index d12291e95..c1105ac68 100644 --- a/system/sync/sync_stpldev_stpl.php +++ b/system/sync/sync_stpldev_stpl.php @@ -128,7 +128,7 @@ function getStudentsFromGroup($studiengang_kz, $semester, $verband, $gruppe, $gr if($gruppe_kurzbz=='') { $qry = "SELECT - distinct prestudent_id + distinct uid FROM public.tbl_studentlehrverband JOIN public.tbl_prestudent USING(prestudent_id) @@ -150,7 +150,7 @@ function getStudentsFromGroup($studiengang_kz, $semester, $verband, $gruppe, $gr else { $qry = "SELECT - distinct uid as student_uid + distinct uid FROM public.tbl_benutzergruppe LEFT JOIN @@ -167,7 +167,7 @@ function getStudentsFromGroup($studiengang_kz, $semester, $verband, $gruppe, $gr { while($row = $db->db_fetch_object()) { - $students[]=$row->student_uid; + $students[]=$row->uid; } } diff --git a/vilesci/lehre/abgabe_assistenz.php b/vilesci/lehre/abgabe_assistenz.php index fb269a224..d3d10c592 100644 --- a/vilesci/lehre/abgabe_assistenz.php +++ b/vilesci/lehre/abgabe_assistenz.php @@ -78,24 +78,25 @@ function showFarbcodes() $trenner = new variable(); $trenner->loadVariables($getuid); - -$sql_query = "SELECT *, + +$sql_query = "SELECT *, (SELECT orgform_kurzbz FROM tbl_prestudentstatus - WHERE prestudent_id=(Select prestudent_id from tbl_student where student_uid=xy.uid limit 1) + WHERE prestudent_id=(Select prestudent_id from tbl_prestudent where uid=xy.uid limit 1) ORDER BY datum DESC, insertamum DESC, ext_id DESC LIMIT 1 ) as organisationsform - FROM (SELECT DISTINCT ON(tbl_projektarbeit.projektarbeit_id) public.tbl_studiengang.bezeichnung as stgbez,tbl_projekttyp.bezeichnung AS prjbez,* FROM lehre.tbl_projektarbeit - LEFT JOIN public.tbl_prestudent ON(tbl_prestudent.prestudent_id = tbl_projektarbeit.prestudent_id) - LEFT JOIN public.tbl_benutzer on(tbl_prestudent.person_id=tbl_benutzer.person_id) + FROM (SELECT DISTINCT ON(tbl_projektarbeit.projektarbeit_id, tbl_prestudent.uid) public.tbl_studiengang.bezeichnung as stgbez,tbl_projekttyp.bezeichnung AS prjbez, projektarbeit_id, tbl_prestudent.uid, studiensemester_kurzbz, vorname, nachname, titel + FROM lehre.tbl_projektarbeit + LEFT JOIN public.tbl_prestudent using(prestudent_id) + LEFT JOIN public.tbl_benutzer on(tbl_benutzer.uid=tbl_prestudent.uid) LEFT JOIN public.tbl_person on(tbl_benutzer.person_id=tbl_person.person_id) - LEFT JOIN lehre.tbl_lehreinheit using(lehreinheit_id) - LEFT JOIN lehre.tbl_lehrveranstaltung using(lehrveranstaltung_id) - LEFT JOIN public.tbl_studiengang using(studiengang_kz) + LEFT JOIN lehre.tbl_lehreinheit using(lehreinheit_id) + LEFT JOIN lehre.tbl_lehrveranstaltung using(lehrveranstaltung_id) + LEFT JOIN public.tbl_studiengang on(tbl_studiengang.studiengang_kz = tbl_lehrveranstaltung.studiengang_kz) LEFT JOIN lehre.tbl_projekttyp USING (projekttyp_kurzbz) WHERE (projekttyp_kurzbz='Bachelor' OR projekttyp_kurzbz='Diplom') - AND public.tbl_benutzer.aktiv - AND lehre.tbl_projektarbeit.note IS NULL + AND public.tbl_benutzer.aktiv + AND lehre.tbl_projektarbeit.note IS NULL AND public.tbl_studiengang.studiengang_kz=".$db->db_add_param($stg_kz)." ORDER BY tbl_projektarbeit.projektarbeit_id desc) as xy ORDER BY nachname"; diff --git a/vilesci/personen/student_vorrueckung.php b/vilesci/personen/student_vorrueckung.php index 20444264b..d999a813f 100644 --- a/vilesci/personen/student_vorrueckung.php +++ b/vilesci/personen/student_vorrueckung.php @@ -150,10 +150,10 @@ if ($result_stg=$db->db_query($qry_stg)) } //select für die Anzeige -$sql_query="SELECT tbl_student.*,tbl_person.*, tbl_studentlehrverband.semester as semester_stlv, tbl_studentlehrverband.verband as verband_stlv, - tbl_studentlehrverband.gruppe as gruppe_stlv FROM tbl_studentlehrverband JOIN tbl_student USING (prestudent_id) - JOIN tbl_benutzer ON (student_uid=uid) - JOIN tbl_person USING (person_id) +$sql_query="SELECT tbl_prestudent.*,tbl_person.*, tbl_studentlehrverband.semester as semester_stlv, tbl_studentlehrverband.verband as verband_stlv, + tbl_studentlehrverband.gruppe as gruppe_stlv FROM tbl_studentlehrverband JOIN tbl_prestudent USING (prestudent_id) + JOIN tbl_benutzer USING (uid) + JOIN tbl_person ON (tbl_person.person_id = tbl_prestudent.person_id) WHERE tbl_benutzer.aktiv AND tbl_studentlehrverband.studiengang_kz=".$db->db_add_param($stg_kz, FHC_INTEGER)." AND studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz); if($semester<100) @@ -180,10 +180,10 @@ if (isset($_POST['vorr'])) die('Sie haben keine Berechtigung fuer diese Aktion'); //select für die Vorrückung - $sql_query="SELECT tbl_student.*,tbl_person.*, tbl_studentlehrverband.semester as semester_stlv, tbl_studentlehrverband.verband as verband_stlv, - tbl_studentlehrverband.gruppe as gruppe_stlv FROM tbl_studentlehrverband JOIN tbl_student USING (prestudent_id) - JOIN tbl_benutzer ON (student_uid=uid) - JOIN tbl_person USING (person_id) + $sql_query="SELECT tbl_prestudent.*,tbl_person.*, tbl_studentlehrverband.semester as semester_stlv, tbl_studentlehrverband.verband as verband_stlv, + tbl_studentlehrverband.gruppe as gruppe_stlv FROM tbl_studentlehrverband JOIN tbl_prestudent USING (prestudent_id) + JOIN tbl_benutzer USING (uid) + JOIN tbl_person ON (tbl_person.person_id = tbl_prestudent.person_id) WHERE tbl_benutzer.aktiv AND tbl_studentlehrverband.studiengang_kz=".$db->db_add_param($stg_kz, FHC_INTEGER)." AND studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz_akt);