many bugfixes

changed some tbl_student to tbl_prestudent
This commit is contained in:
Andreas Moik
2016-04-27 13:42:29 +02:00
parent bda7a51ab2
commit 5d3032e5de
14 changed files with 301 additions and 116 deletions
+6 -7
View File
@@ -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."<br>";
+12 -16
View File
@@ -81,11 +81,10 @@ else
$text.= "<br>Suche alle Abbrecher die noch aktiv sind ... <br><br>";
$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 .="<br><br>Suche Studenten deren Semstern nicht mit dem Ausbildungssemesters des aktuellen Status übereinstimmt ... <br><br>";
$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."<br>";
}
}
+198 -3
View File
@@ -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 <strong style='color:green;'>eingefügt</strong>(student_uid von tbl_student)<br>";
$generic_needs .= "public.tbl_prestudent: perskz wird <strong style='color:green;'>eingefügt</strong>(matrikelnr von tbl_student)<br>";
}
/* TABLE SPECIFIC */
foreach($all_tables_to_update as $t)
{
if(checkForUpdates($db, $t))
$needed = true;
$change_needed = true;
}
if($needed)
if($change_needed)
{
echo "<h2 style='color:red;'>ACHTUNG!</h2>";
echo "<h3>Folgendes wird geändert:</h3>";
echo "<p>";
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 '<H2>Pruefe Tabellen und Attribute!</H2>';
//********************************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 "<p>Could not ADD COLUMN uid TO public.tbl_prestudent: " . $db->db_last_error()."</p>";
}
$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 "<p>Could not ADD COLUMN perskz TO public.tbl_prestudent: " . $db->db_last_error()."</p>";
}
}
//********************************DROP ALL VIEWS********************************
//bis.vw_bisio
@@ -125,6 +168,27 @@ else if($_POST["action"] == "Starten")
echo "<p>Could not DROP view public.vw_gruppen: " . $create_view_qry."</p>";
}
}
//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 "<p>Could not DROP view lehre.vw_zeugnisnote: " . $create_view_qry."</p>";
}
}
//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 "<p>Could not DROP view testtool.vw_reihungstest_zeugnisnoten: " . $create_view_qry."</p>";
}
}
//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 "<p>Could not CREATE view lehre.vw_zeugnisnote: " . $create_view_qry."</p>";
}
}
//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 "<p>Could not CREATE view testtool.vw_reihungstest_zeugnisnoten: " . $create_view_qry."</p>";
}
}
/* 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 "<p>Could not CREATE view TODO:SCHEMA.TODO:VIEW: " . $create_view_qry."</p>";
}
}
*/
+3 -3
View File
@@ -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;
}
}