- Vorrückung der Studierenden prüft die Gültigkeit des Studienplans. Wenn dieser nicht gültig ist wird versucht den neueren Studienplan zu finden. Wird kein eindeutiger Studienplan gefunden bleibt der alte Studienplan.

- CheckStudenten prüft die Studienpläne und zeigt Warnungen an wenn Studierende einen ungültigen Studienplan zugeordnet haben
This commit is contained in:
oesi
2017-03-27 10:32:46 +02:00
parent 1f65f7737c
commit 75f21145ce
2 changed files with 929 additions and 399 deletions
+450 -208
View File
@@ -19,7 +19,6 @@
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Karl Burkhart <burkhart@technikum-wien.at>
*/
require_once('../config/vilesci.config.inc.php');
require_once('../include/basis_db.class.php');
require_once('../include/studiensemester.class.php');
@@ -29,138 +28,179 @@ require_once('../include/student.class.php');
require_once('../include/studiengang.class.php');
require_once('../include/functions.inc.php');
require_once('../include/datum.class.php');
require_once('../include/benutzerberechtigung.class.php');
$db = new basis_db();
$datum = new datum();
$uid = get_uid();
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($uid);
if (!$rechte->isBerechtigt('student/stammdaten', null, 's'))
die($rechte->errormsg);
if (isset($_REQUEST['stg_kz']))
$studiengang_kz = $_REQUEST['stg_kz'];
else
$studiengang_kz = null;
$studiensemester = new studiensemester();
$aktSem = $studiensemester->getaktorNext();
$nextSem = $studiensemester->getNextFrom($aktSem);
$ausgabe = array();
$text = '';
$text ="";
?>
echo '<!DOCTYPE HTML>
<html>
<head>
<head>
<title>Check Studenten</title>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta charset="utf-8"/>
<link rel="stylesheet" href="../skin/vilesci.css" type="text/css">
</head>
<body class="background_main">
<h2>Studenten Checkskript für BIS-Meldung</h2>
<?php
</head>
<body>
<h1>Studenten Checkskript für BIS-Meldung</h1>';
/*
* Studiengang muss beim Prestudenten und beim Studenten gleich sein
*/
$qry = "
SELECT
stud.student_uid, pre.studiengang_kz, stud.studiengang_kz studiengang
FROM
public.tbl_prestudent pre
JOIN public.tbl_student stud using(prestudent_id)
WHERE
stud.studiengang_kz != pre.studiengang_kz";
$qry="select stud.student_uid, pre.studiengang_kz, stud.studiengang_kz studiengang
from public.tbl_prestudent pre
join public.tbl_student stud using(prestudent_id)
where stud.studiengang_kz != pre.studiengang_kz;";
$text.="Suche Studiengänge die bei Prestudenten und Studenten nicht gleich sind ...<br><br>";
if($db->db_query($qry))
if ($studiengang_kz != '')
{
while($row = $db->db_fetch_object())
$qry .= " AND
(
stud.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER)."
OR pre.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER)."
)";
}
$text .= "Suche Studiengänge die bei Prestudenten und Studenten nicht gleich sind ...<br><br>";
if ($db->db_query($qry))
{
while ($row = $db->db_fetch_object())
{
$ausgabe[$row->studiengang][1][]= $row->student_uid;
$text.="Studenten-uid: ".$row->student_uid."<br>";
$ausgabe[$row->studiengang][1][] = $row->student_uid;
$text .= "Studenten-uid: ".$row->student_uid."<br>";
}
}
else
$text.="Fehler bei der Abfrage aufgetreten. <br>";
$text .= "Fehler bei der Abfrage aufgetreten. <br>";
/*
* Abbrecher dürfen nicht mehr aktiv sein
*/
$text .= "<br>Suche alle Abbrecher die noch aktiv sind ... <br><br>";
$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
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)
WHERE
pre_status.status_kurzbz ='Abbrecher' and benutzer.aktiv=true";
$qry ="select pre_status.status_kurzbz, benutzer.aktiv, benutzer.uid, student.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)
where pre_status.status_kurzbz ='Abbrecher' and benutzer.aktiv = 'true';";
if ($studiengang_kz != '')
$qry .= " AND pre.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER);
if($db->db_query($qry))
if ($db->db_query($qry))
{
while($row = $db->db_fetch_object())
while ($row = $db->db_fetch_object())
{
$ausgabe[$row->studiengang][2][]= $row->uid;
$text .="Studenten-uid: ".$row->uid."<br>";
$ausgabe[$row->studiengang][2][] = $row->uid;
$text .= "Studenten-uid: ".$row->uid."<br>";
}
}
else
$text.= "Fehler bei der Abfrage aufgetreten. <br>";
$text .= "Fehler bei der Abfrage aufgetreten. <br>";
/*
* Organisationsform eines Studienganges, sollte mit den Organisationsformen der Studenten übereinstimmen
*/
$text.= "<br>Suche Studenten mit ungleichen Organisationsformeinträgen (Studiengang <--> Prestudentstatus) ... <br><br>";
$text .= "<br>Suche Studenten mit ungleichen Organisationsformeinträgen
(Studiengang <--> Prestudentstatus) ... <br><br>";
$orgArray = array();
$orgForm = new organisationsform();
$qry ="select studiengang.orgform_kurzbz as studorgkz, student.student_uid, prestudentstatus.orgform_kurzbz as studentorgkz, student.studiengang_kz studiengang
from public.tbl_studiengang studiengang
join public.tbl_student student using(studiengang_kz)
join public.tbl_prestudent prestudent using(prestudent_id)
join public.tbl_prestudentstatus prestudentstatus using(prestudent_id)
join public.tbl_benutzer benutzer on(benutzer.uid = student.student_uid)
where benutzer.aktiv = 'true' and prestudentstatus.status_kurzbz ='Student'
and studiengang.studiengang_kz < 10000
and prestudentstatus.studiensemester_kurzbz = '$aktSem'
order by student_uid; ";
$qry = "
SELECT
studiengang.orgform_kurzbz as studorgkz, student.student_uid,
prestudentstatus.orgform_kurzbz as studentorgkz, student.studiengang_kz studiengang
FROM
public.tbl_studiengang studiengang
JOIN public.tbl_student student using(studiengang_kz)
JOIN public.tbl_prestudent prestudent using(prestudent_id)
JOIN public.tbl_prestudentstatus prestudentstatus using(prestudent_id)
JOIN public.tbl_benutzer benutzer on(benutzer.uid = student.student_uid)
WHERE
benutzer.aktiv = true
AND prestudentstatus.status_kurzbz='Student'
AND studiengang.studiengang_kz < 10000
AND prestudentstatus.studiensemester_kurzbz = ".$db->db_add_param($aktSem);
if ($studiengang_kz != '')
$qry .= " AND prestudent.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER);
$qry .= " ORDER BY student_uid";
if($db->db_query($qry))
if ($db->db_query($qry))
{
while($row = $db->db_fetch_object())
while ($row = $db->db_fetch_object())
{
$studOrgform = $row->studorgkz;
$student_uid = $row->student_uid;
$studentOrgform = $row->studentorgkz;
$orgArray = $orgForm->checkOrgForm($studOrgform);
if(is_array($orgArray))
if (is_array($orgArray))
{
if(!in_array($studentOrgform, $orgArray))
if (!in_array($studentOrgform, $orgArray))
{
$ausgabe[$row->studiengang][3][]= $row->student_uid;
$text.= "Student_uid: $student_uid <br>";
$ausgabe[$row->studiengang][3][] = $row->student_uid;
$text .= "Student_uid: $student_uid <br>";
}
}
}
}
else
$text.="Fehler bei der Abfrage aufgetreten. <br>";
$text .= "Fehler bei der Abfrage aufgetreten. <br>";
/*
* Abbrecher dürfen nicht wieder einen Status bekommen
*/
$prestudentAbbrecher = new prestudent();
$prestudentLast = new prestudent();
$text.= "<br>Suche alle Abbrecher die wieder einen Status bekommen haben...<br><br>";
$text .= "<br>Suche alle Abbrecher die wieder einen Status bekommen haben...<br><br>";
$qry ="select student.student_uid, prestudent.prestudent_id, student.studiengang_kz studiengang
from public.tbl_student student
join public.tbl_prestudent prestudent using(prestudent_id)
join public.tbl_prestudentstatus prestatus using(prestudent_id)
where prestatus.status_kurzbz = 'Abbrecher'; ";
$qry = "
SELECT
student.student_uid, prestudent.prestudent_id, student.studiengang_kz studiengang
FROM
public.tbl_student student
JOIN public.tbl_prestudent prestudent using(prestudent_id)
JOIN public.tbl_prestudentstatus prestatus using(prestudent_id)
WHERE
prestatus.status_kurzbz = 'Abbrecher'";
if($db->db_query($qry))
if ($studiengang_kz != '')
$qry .= " AND prestudent.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER);
if ($db->db_query($qry))
{
while($row = $db->db_fetch_object())
while ($row = $db->db_fetch_object())
{
$student_uid = $row->student_uid;
$prestudent_id = $row->prestudent_id;
@@ -169,10 +209,10 @@ if($db->db_query($qry))
$prestudentLast->getLastStatus($prestudent_id);
if($prestudentLast->status_kurzbz != 'Abbrecher')
if ($prestudentLast->status_kurzbz != 'Abbrecher')
{
$ausgabe[$row->studiengang][4][]= $student_uid;
$text.= "Studenten-uid: ".$student_uid."<br>";
$ausgabe[$row->studiengang][4][] = $student_uid;
$text .= "Studenten-uid: ".$student_uid."<br>";
}
}
}
@@ -182,29 +222,39 @@ if($db->db_query($qry))
* Aktuelles Semester beim Studenten stimmt nicht mit dem Ausbildungssemester des aktuellen Status überein
*/
$text .="<br><br>Suche Studenten deren Semstern nicht mit dem Ausbildungssemesters des aktuellen Status übereinstimmt ... <br><br>";
$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 using(student_uid)
join public.tbl_prestudent prestudent 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';";
$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 using(student_uid)
JOIN public.tbl_prestudent prestudent using(prestudent_id)
JOIN public.tbl_prestudentstatus status using(prestudent_id)
WHERE
status.studiensemester_kurzbz = ".$db->db_add_param($aktSem)."
AND lv.studiensemester_kurzbz = ".$db->db_add_param($aktSem)."
AND status.status_kurzbz NOT IN ('Interessent','Bewerber')
AND get_rolle_prestudent (prestudent_id, ".$db->db_add_param($aktSem).")='Student'";
if($db->db_query($qry))
if ($studiengang_kz != '')
$qry .= " AND prestudent.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER);
if ($db->db_query($qry))
{
while($row = $db->db_fetch_object())
while ($row = $db->db_fetch_object())
{
$student_uid = $row->student_uid;
if($row->ausbildungssemester != $row->semester)
if ($row->ausbildungssemester != $row->semester)
{
$ausgabe[$row->studiengang][5][]= $student_uid;
$text.="Studenten-uid: ".$student_uid."<br>";
$ausgabe[$row->studiengang][5][] = $student_uid;
$text .= "Studenten-uid: ".$student_uid."<br>";
}
}
}
@@ -214,21 +264,29 @@ if($db->db_query($qry))
* Inaktive Studenten sollen keinen "aktiven" Status haben (Diplomant, Student, Unterbrecher, Praktikant)
*/
$text.="<br><br>Suche alle inaktiven Studenten mit einem aktiven Status ... <br><br>";
$text .= "<br><br>Suche alle inaktiven Studenten mit einem aktiven Status ... <br><br>";
$qry = "Select distinct(student.student_uid), student.studiengang_kz studiengang
from public.tbl_benutzer benutzer
join public.tbl_student student on(benutzer.uid = student.student_uid)
join public.tbl_prestudent prestudent using(prestudent_id)
where benutzer.aktiv = 'false'
and get_rolle_prestudent (prestudent_id, '$aktSem') in ('Student', 'Diplomand', 'Unterbrecher', 'Praktikant')";
$qry = "
SELECT
distinct(student.student_uid), student.studiengang_kz studiengang
FROM
public.tbl_benutzer benutzer
JOIN public.tbl_student student on(benutzer.uid = student.student_uid)
JOIN public.tbl_prestudent prestudent using(prestudent_id)
WHERE
benutzer.aktiv=false
AND get_rolle_prestudent(prestudent_id, ".$db->db_add_param($aktSem).")
in ('Student', 'Diplomand', 'Unterbrecher', 'Praktikant')";
if($db->db_query($qry))
if ($studiengang_kz != '')
$qry .= " AND prestudent.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER);
if ($db->db_query($qry))
{
while($row = $db->db_fetch_object())
while ($row = $db->db_fetch_object())
{
$ausgabe[$row->studiengang][6][]= $row->student_uid;
$text.="Studenten-uid: ".$row->student_uid."<br>";
$ausgabe[$row->studiengang][6][] = $row->student_uid;
$text .= "Studenten-uid: ".$row->student_uid."<br>";
}
}
@@ -238,36 +296,43 @@ if($db->db_query($qry))
* zB. Wenn Student im SS2010 studiert darf Studentenstatus nicht vor 15.11.2009 liegen
*/
$text.="<br><br>Suche alle Studenten deren Inskription im aktuellen Semester vor der letzten BIS-Meldung liegt ...<br><br>";
$text .= "<br><br>Suche alle Studenten deren Inskription im aktuellen
Semester vor der letzten BIS-Meldung liegt ...<br><br>";
$qry ="Select distinct(student.student_uid), prestudent.prestudent_id, student.studiengang_kz studiengang
from public.tbl_benutzer benutzer
join public.tbl_student student on(benutzer.uid = student.student_uid)
join public.tbl_prestudent prestudent using(prestudent_id)
join public.tbl_prestudentstatus prestatus using(prestudent_id)
where benutzer.aktiv = 'true'";
$qry = "
SELECT
distinct(student.student_uid), prestudent.prestudent_id, student.studiengang_kz studiengang
FROM
public.tbl_benutzer benutzer
JOIN public.tbl_student student on(benutzer.uid = student.student_uid)
JOIN public.tbl_prestudent prestudent using(prestudent_id)
JOIN public.tbl_prestudentstatus prestatus using(prestudent_id)
WHERE
benutzer.aktiv=true";
if($db->db_query($qry))
if ($studiengang_kz != '')
$qry .= " AND prestudent.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER);
if ($db->db_query($qry))
{
while($row = $db->db_fetch_object())
while ($row = $db->db_fetch_object())
{
$prestudent = new prestudent();
$prestudent->getFirstStatus($row->prestudent_id, 'Student');
// wenn Student im aktuellen Semester zum ersten Mal den Status Student bekommt
if($prestudent->studiensemester_kurzbz == $aktSem)
if ($prestudent->studiensemester_kurzbz == $aktSem)
{
$datumBIS = getDateForInscription($aktSem);
$datumInscription = $datum->formatDatum($prestudent->datum, 'Y-m-d');
// Wenn Inscriptionsdatum vor der letzten BIS Meldung liegt
if($datumInscription < $datumBIS)
if ($datumInscription < $datumBIS)
{
$ausgabe[$row->studiengang][7][]= $row->student_uid;
$text.= $row->student_uid ." Inskribiert am: ".$datumInscription." BIS Meldung: ".$datumBIS."<br>";
$ausgabe[$row->studiengang][7][] = $row->student_uid;
$text .= $row->student_uid." Inskribiert am: ".$datumInscription." BIS Meldung: ".$datumBIS."<br>";
}
}
}
}
@@ -276,35 +341,48 @@ if($db->db_query($qry))
* Datum und Studiensemester bei den Stati sind in falscher Reihenfolge
*/
$text.="<br><br>Suche alle Studenten die Datum und Studiensemester in deren Stati in falscher Reihenfolge haben ...<br><br>";
$text .= "<br><br>Suche alle Studenten die Datum und Studiensemester
in deren Stati in falscher Reihenfolge haben ...<br><br>";
$prestudentFirst = new prestudent();
$prestudentSecond = new prestudent();
$i = 0;
// alle aktiven Studenten die im aktuellen Semster den Status Student haben
$qry_student ="Select distinct(student_uid), prestudent.prestudent_id, student.studiengang_kz studiengang
from public.tbl_student student
join public.tbl_benutzer benutzer on(student.student_uid = benutzer.uid)
join public.tbl_prestudent prestudent using(prestudent_id)
join public.tbl_prestudentstatus status using(prestudent_id)
where benutzer.aktiv = 'true'
and status.status_kurzbz ='Student'
and status.studiensemester_kurzbz = '$aktSem';";
$qry_student = "
SELECT
distinct(student_uid), prestudent.prestudent_id, student.studiengang_kz studiengang
FROM
public.tbl_student student
JOIN public.tbl_benutzer benutzer on(student.student_uid = benutzer.uid)
JOIN public.tbl_prestudent prestudent using(prestudent_id)
JOIN public.tbl_prestudentstatus status using(prestudent_id)
WHERE
benutzer.aktiv=true
AND status.status_kurzbz='Student'
AND status.studiensemester_kurzbz=".$db->db_add_param($aktSem);
if($result = $db->db_query($qry_student))
if ($studiengang_kz != '')
$qry .= " AND prestudent.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER);
if ($result = $db->db_query($qry_student))
{
while($student = $db->db_fetch_object($result))
while ($student = $db->db_fetch_object($result))
{
$qry_orderSemester ="SELECT * FROM public.tbl_prestudentstatus status
join public.tbl_studiensemester semester using(studiensemester_kurzbz)
where prestudent_id = '$student->prestudent_id'
order by start DESC, datum DESC;";
$qry_orderSemester = "
SELECT
status.*
FROM
public.tbl_prestudentstatus status
JOIN public.tbl_studiensemester semester using(studiensemester_kurzbz)
WHERE
prestudent_id = ".$db->db_add_param($student->prestudent_id, FHC_INTEGER)."
ORDER BY semester.start DESC, status.datum DESC;";
if($result1 = $db->db_query($qry_orderSemester))
if ($result1 = $db->db_query($qry_orderSemester))
{
$prestudentSecond->result = array();
$prestudentFirst->result = array();
while($row = $db->db_fetch_object($result1))
while ($row = $db->db_fetch_object($result1))
{
$prestudentStatus = new prestudent();
@@ -324,17 +402,19 @@ if($result = $db->db_query($qry_student))
}
}
else
$text.= "Fehler";
$text .= "Fehler";
if(!$prestudentSecond->getPrestudentRolle($student->prestudent_id,null,null,'Datum DESC, insertamum DESC'))
$text.= "ERROR:".$prestudentSecond->errormsg;
if (!$prestudentSecond->getPrestudentRolle($student->prestudent_id, null, null, 'Datum DESC, insertamum DESC'))
$text .= "ERROR:".$prestudentSecond->errormsg;
for($i=0; $i<count($prestudentFirst->result); $i++)
$anzahl_stati = count($prestudentFirst->result);
for ($i = 0; $i < $anzahl_stati; $i++)
{
if($prestudentFirst->result[$i]->studiensemester_kurzbz != $prestudentSecond->result[$i]->studiensemester_kurzbz)
if ($prestudentFirst->result[$i]->studiensemester_kurzbz
!= $prestudentSecond->result[$i]->studiensemester_kurzbz)
{
$ausgabe[$student->studiengang][8][]= $student->student_uid;
$text.= "Studenten-uid: ".$student->student_uid."<br>";
$ausgabe[$student->studiengang][8][] = $student->student_uid;
$text .= "Studenten-uid: ".$student->student_uid."<br>";
continue 2;
}
}
@@ -346,24 +426,31 @@ if($result = $db->db_query($qry_student))
*/
$prestudent = new prestudent();
$text.="<br><br>Suche alle aktiven Studenten die keinen Status im aktuellen Studiensemester haben.<br><br>";
$text .= "<br><br>Suche alle aktiven Studenten die keinen Status im aktuellen Studiensemester haben.<br><br>";
$qry ="Select distinct (student_uid), prestudent.prestudent_id, student.studiengang_kz studiengang
from public.tbl_student student
join public.tbl_benutzer benutzer on (benutzer.uid = student.student_uid)
join public.tbl_prestudent prestudent using(prestudent_id)
join public.tbl_prestudentstatus status using(prestudent_id)
where benutzer.aktiv = 'true'";
$qry = "
SELECT
distinct (student_uid), prestudent.prestudent_id, student.studiengang_kz studiengang
FROM
public.tbl_student student
JOIN public.tbl_benutzer benutzer on (benutzer.uid = student.student_uid)
JOIN public.tbl_prestudent prestudent using(prestudent_id)
JOIN public.tbl_prestudentstatus status using(prestudent_id)
WHERE
benutzer.aktiv=true";
if($result = $db->db_query($qry))
if ($studiengang_kz != '')
$qry .= " AND prestudent.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER);
if ($result = $db->db_query($qry))
{
while($row = $db->db_fetch_object($result))
while ($row = $db->db_fetch_object($result))
{
if(!$prestudent->getLastStatus($row->prestudent_id, $aktSem)
if (!$prestudent->getLastStatus($row->prestudent_id, $aktSem)
&& !$prestudent->getLastStatus($row->prestudent_id, $nextSem))
{
$ausgabe[$row->studiengang][9][]= $row->student_uid;
$text.= $row->student_uid."<br>";
$ausgabe[$row->studiengang][9][] = $row->student_uid;
$text .= $row->student_uid."<br>";
}
}
}
@@ -371,9 +458,9 @@ if($result = $db->db_query($qry))
/*
* Bewerber im aktuellen StSem die in Mischformstudiengängen keine Orgform eingetragen haben
*/
$text.="<br><br>Suche alle Bewerber die keine Orgform eingetragen haben.<br><br>";
$text .= "<br><br>Suche alle Bewerber die keine Orgform eingetragen haben.<br><br>";
$qry ="
$qry = "
SELECT
tbl_prestudent.prestudent_id, tbl_person.vorname, tbl_person.nachname, tbl_prestudent.studiengang_kz as studiengang
FROM
@@ -387,21 +474,24 @@ WHERE
AND (tbl_prestudentstatus.orgform_kurzbz='' OR tbl_prestudentstatus.orgform_kurzbz is null)
AND tbl_prestudentstatus.studiensemester_kurzbz=".$db->db_add_param($aktSem);
if($result = $db->db_query($qry))
if ($studiengang_kz != '')
$qry .= " AND tbl_prestudent.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER);
if ($result = $db->db_query($qry))
{
while($row = $db->db_fetch_object($result))
while ($row = $db->db_fetch_object($result))
{
$ausgabe[$row->studiengang][10][]= $row->vorname.' '.$row->nachname.' '.$row->prestudent_id;
$text.= $row->vorname.' '.$row->nachname.' '.$row->prestudent_id."<br>";
$ausgabe[$row->studiengang][10][] = $row->vorname.' '.$row->nachname.' '.$row->prestudent_id;
$text .= $row->vorname.' '.$row->nachname.' '.$row->prestudent_id."<br>";
}
}
/*
* Studierende im aktuellen StSem die in Mischformstudiengängen keine Orgform eingetragen haben
*/
$text.="<br><br>Suche alle Bewerber die keine Orgform eingetragen haben.<br><br>";
$text .= "<br><br>Suche alle Bewerber die keine Orgform eingetragen haben.<br><br>";
$qry ="
$qry = "
SELECT
tbl_prestudent.prestudent_id, tbl_person.vorname, tbl_person.nachname, tbl_prestudent.studiengang_kz as studiengang
FROM
@@ -415,23 +505,27 @@ WHERE
AND (tbl_prestudentstatus.orgform_kurzbz='' OR tbl_prestudentstatus.orgform_kurzbz is null)
AND tbl_prestudentstatus.studiensemester_kurzbz=".$db->db_add_param($aktSem);
if($result = $db->db_query($qry))
if ($studiengang_kz != '')
$qry .= " AND tbl_prestudent.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER);
if ($result = $db->db_query($qry))
{
while($row = $db->db_fetch_object($result))
while ($row = $db->db_fetch_object($result))
{
$ausgabe[$row->studiengang][11][]= $row->vorname.' '.$row->nachname.' '.$row->prestudent_id;
$text.= $row->vorname.' '.$row->nachname.' '.$row->prestudent_id."<br>";
$ausgabe[$row->studiengang][11][] = $row->vorname.' '.$row->nachname.' '.$row->prestudent_id;
$text .= $row->vorname.' '.$row->nachname.' '.$row->prestudent_id."<br>";
}
}
/*
* Studiengang des Prestudenten passt nicht zu Studiengang des Studienplans
*/
$text.="<br><br>Suche alle bei denen Studiengang des Prestudenten nicht zum Studiengang des Studienplans passt<br><br>";
$text .= "<br><br>Suche alle bei denen Studiengang des Prestudenten
nicht zum Studiengang des Studienplans passt<br><br>";
$qry ="
$qry = "
SELECT
distinct tbl_person.*,
distinct tbl_person.vorname, tbl_person.nachname,
tbl_prestudent.studiengang_kz as studiengang,
tbl_prestudent.prestudent_id
FROM
@@ -440,115 +534,263 @@ FROM
JOIN lehre.tbl_studienplan USING(studienplan_id)
JOIN lehre.tbl_studienordnung USING(studienordnung_id)
JOIN public.tbl_person USING(person_id)
WHERE tbl_prestudent.studiengang_kz<>tbl_studienordnung.studiengang_kz
WHERE
tbl_prestudent.studiengang_kz<>tbl_studienordnung.studiengang_kz
";
if($result = $db->db_query($qry))
if ($studiengang_kz != '')
$qry .= " AND tbl_prestudent.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER);
if ($result = $db->db_query($qry))
{
while($row = $db->db_fetch_object($result))
while ($row = $db->db_fetch_object($result))
{
$ausgabe[$row->studiengang][12][]= $row->vorname.' '.$row->nachname.' '.$row->prestudent_id;
$text.= $row->vorname.' '.$row->nachname.' '.$row->prestudent_id."<br>";
$ausgabe[$row->studiengang][12][] = $row->vorname.' '.$row->nachname.' '.$row->prestudent_id;
$text .= $row->vorname.' '.$row->nachname.' '.$row->prestudent_id."<br>";
}
}
/*
* Studienplan ist nicht gueltig
*/
$text .= "<br><br>Studienplan ist im gewaehlten Ausbildungssemester nicht gueltig<br><br>";
$qry = "
SELECT
distinct tbl_person.vorname, tbl_person.nachname,
tbl_prestudent.prestudent_id,
tbl_studienplan.bezeichnung,
tbl_prestudent.studiengang_kz as studiengang,
tbl_prestudentstatus.status_kurzbz,
tbl_prestudentstatus.studiensemester_kurzbz,
tbl_prestudentstatus.ausbildungssemester
FROM
public.tbl_prestudent
JOIN public.tbl_prestudentstatus USING(prestudent_id)
JOIN public.tbl_person USING(person_id)
JOIN lehre.tbl_studienplan USING(studienplan_id)
WHERE
status_kurzbz in('Student', 'Interessent','Bewerber','Aufgenommener')
AND NOT EXISTS (
SELECT
1
FROM
lehre.tbl_studienplan_semester
WHERE
studienplan_id=tbl_prestudentstatus.studienplan_id
AND tbl_studienplan_semester.semester = tbl_prestudentstatus.ausbildungssemester
AND tbl_studienplan_semester.studiensemester_kurzbz = Tbl_prestudentstatus.studiensemester_kurzbz
)
AND tbl_prestudentstatus.studiensemester_kurzbz=".$db->db_add_param($aktSem);
if ($studiengang_kz != '')
$qry .= " AND tbl_prestudent.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER);
if ($result = $db->db_query($qry))
{
while ($row = $db->db_fetch_object($result))
{
$ausgabe[$row->studiengang][13][] = $row->vorname.' '.$row->nachname.
' ('.$row->studiensemester_kurzbz.' '.$row->status_kurzbz.' '.$row->ausbildungssemester.'.Sem)';
$text .= $row->vorname.' '.$row->nachname.
' ('.$row->studiensemester_kurzbz.' '.$row->status_kurzbz.' '.$row->ausbildungssemester.".Sem)<br>";
}
}
// Ausgabe der Studenten
foreach($ausgabe as $stg_kz=>$value)
foreach ($ausgabe as $stg_kz => $value)
{
//Wenn eine Studiengangskennzahl uebergeben wird, nur diese anzeigen und die anderen ueberspringen
if(isset($_REQUEST['stg_kz']) && $_REQUEST['stg_kz']!=$stg_kz)
if ($studiengang_kz != $stg_kz)
continue;
$studiengang = new studiengang();
$studiengang->load($stg_kz);
echo "<br><br><h2>".$studiengang->bezeichnung ." (".$studiengang->kurzbzlang.")</h2>";
echo "<h2>".$studiengang->bezeichnung." (".$studiengang->kurzbzlang.")</h2>";
echo "<table border='0'>";
foreach($value as $code=>$uid)
foreach ($value as $code => $uid)
{
switch ($code) {
case 1:
echo '<tr><td>&nbsp;</td></tr><tr><td colspan="4"><b>Studenten deren Studiengänge (Prestudent <-> Student) nicht gleich sind</b></td></tr>';
break;
echo '
<tr>
<td>&nbsp;</td>
</tr>
<tr>
<td colspan="4">
<b>Studenten deren Studiengänge (Prestudent <-> Student) nicht gleich sind</b>
</td>
</tr>';
break;
case 2:
echo "<tr><td>&nbsp;</td></tr><tr><td colspan='4'><b>Abrecher die noch aktiv sind</b></td></td>";
break;
echo "
<tr>
<td>&nbsp;</td>
</tr>
<tr>
<td colspan='4'><b>Abrecher die noch aktiv sind</b></td>
</tr>";
break;
case 3:
echo "<tr><td>&nbsp;</td></tr><tr><td colspan='4'><b>Studenten mit nicht identischen Organisationsformeinträgen (Studiengang <-> Prestudentstatus)</b></td></tr>";
break;
echo "
<tr>
<td>&nbsp;</td>
</tr>
<tr>
<td colspan='4'>
<b>Studenten mit nicht identischen Organisationsformeinträgen
(Studiengang <-> Prestudentstatus)</b>
</td>
</tr>";
break;
case 4:
echo "<tr><td>&nbsp;</td></tr><tr><td colspan='4'><b>Abbrecher die wieder einen Status bekommen haben</b></td></td>";
break;
echo "
<tr>
<td>&nbsp;</td>
</tr>
<tr>
<td colspan='4'><b>Abbrecher die wieder einen Status bekommen haben</b></td>
</tr>";
break;
case 5:
echo "<tr><td>&nbsp;</td></tr><tr><td colspan='4'><b>Studenten deren Semester nicht mit dem Ausbildungssemester des aktuellen Status übereinstimmt</b></td></tr>";
break;
echo "
<tr>
<td>&nbsp;</td>
</tr>
<tr>
<td colspan='4'>
<b>Studenten deren Semester nicht mit dem Ausbildungssemester
des aktuellen Status übereinstimmt</b>
</td>
</tr>";
break;
case 6:
echo "<tr><td>&nbsp;</td></tr><tr><td colspan='4'><b>Inaktive Studenten mit einem aktiven Status</b></td></tr>";
break;
echo "
<tr>
<td>&nbsp;</td>
</tr>
<tr>
<td colspan='4'><b>Inaktive Studenten mit einem aktiven Status</b></td>
</tr>";
break;
case 7:
echo "<tr><td>&nbsp;</td></tr><tr><td colspan='4'><b>Studenten deren Inskription im aktuellen Semester vor der letzten BIS-Meldung liegt</b></td></tr>";
break;
echo "
<tr>
<td>&nbsp;</td>
</tr>
<tr>
<td colspan='4'>
<b>Studenten deren Inskription im aktuellen Semester
vor der letzten BIS-Meldung liegt</b>
</td>
</tr>";
break;
case 8:
echo "<tr><td>&nbsp;</td></tr><tr><td colspan='4'><b>Studenten die Datum und Studiensemestern in deren Stati in falscher Reihenfolge haben</b></td></tr>";
break;
echo "
<tr>
<td>&nbsp;</td>
</tr>
<tr>
<td colspan='4'>
<b>Studenten die Datum und Studiensemestern in deren Stati
in falscher Reihenfolge haben</b>
</td>
</tr>";
break;
case 9:
echo "<tr><td>&nbsp;</td></tr><tr><td colspan='4'><b>Aktive Studenten die keinen Status im aktuellen oder nächsten Studiensemester haben</b></td></tr>";
break;
echo "
<tr>
<td>&nbsp;</td>
</tr>
<tr>
<td colspan='4'>
<b>Aktive Studenten die keinen Status im aktuellen
oder nächsten Studiensemester haben</b>
</td>
</tr>";
break;
case 10:
echo "<tr><td>&nbsp;</td></tr><tr><td colspan='4'><b>Bewerberstati die keiner Organisationsform zugeordnet sind</b></td></tr>";
break;
echo "
<tr>
<td>&nbsp;</td>
</tr>
<tr>
<td colspan='4'><b>Bewerberstati die keiner Organisationsform zugeordnet sind</b></td>
</tr>";
break;
case 11:
echo "<tr><td>&nbsp;</td></tr><tr><td colspan='4'><b>Studierendenstati die keiner Organisationsform zugeordnet sind</b></td></tr>";
break;
echo "
<tr>
<td>&nbsp;</td>
</tr>
<tr>
<td colspan='4'><b>Studierendenstati die keiner Organisationsform zugeordnet sind</b></td>
</tr>";
break;
case 12:
echo "<tr><td>&nbsp;</td></tr><tr><td colspan='4'><b>Studienplan passt nicht zum Studiengang des Studierenden</b></td></tr>";
break;
echo "
<tr>
<td>&nbsp;</td>
</tr>
<tr>
<td colspan='4'><b>Studienplan passt nicht zum Studiengang des Studierenden</b></td>
</tr>";
break;
case 13:
echo "
<tr>
<td>&nbsp;</td>
</tr>
<tr>
<td colspan='4'><b>Studienplan ist in diesem Semester nicht gültig</b></td>
</tr>";
break;
default:
echo "<tr><td>&nbsp;</td></tr><tr><td colspan='4'><b>Ungültiger Code</b></td></tr>";
break;
echo "<tr><td>&nbsp;</td></tr><tr><td colspan='4'><b>Ungültiger Code</b></td></tr>";
break;
}
foreach ($uid as $student_id)
{
echo "<tr>";
$student = new student();
if($student->load($student_id))
if ($student->load($student_id))
echo '<td>'.$student->vorname.'</td><td>'.$student->nachname.'</td><td>'.$student->uid.'</td>';
else
echo '<td colspan="3">'.$student_id,'</td>';
echo '<td colspan="3">'.$student_id.'</td>';
echo "</tr>";
}
}
echo "</table>";
}
//echo $text;
/*
/**
* Gibt das Datum der BIS Meldung des übergebenen Semesters zurück
* @param string $semester Studiensemester_kurzbz.
* @return Datum der BIS-Meldung des uebergebeben Semesters.
*/
function getDateForInscription ($semester)
function getDateForInscription($semester)
{
global $datum;
$semesterYear = substr($semester,2,6);
$semesterType = substr($semester,0,2);
$semesterYear = substr($semester, 2, 6);
$semesterType = substr($semester, 0, 2);
if($semesterType == 'SS')
if ($semesterType == 'SS')
{
$date = "15.11.".($semesterYear-1);
$date = "15.11.".($semesterYear - 1);
$date = $datum->formatDatum($date, 'Y-m-d');
return $date;
}
if($semesterType == 'WS')
if ($semesterType == 'WS')
{
$date = '15.04'.$semesterYear;
$date = $datum->formatDatum($date, 'Y-m-d');
return $date;
}
}
?>
echo '
</body>
</html>
</html>';
+479 -191
View File
@@ -29,6 +29,9 @@ require_once('../../include/studiengang.class.php');
require_once('../../include/studiensemester.class.php');
require_once('../../include/functions.inc.php');
require_once('../../include/benutzerberechtigung.class.php');
require_once('../../include/lehrverband.class.php');
require_once('../../include/studienordnung.class.php');
require_once('../../include/studienplan.class.php');
if (!$db = new basis_db())
die('Es konnte keine Verbindung zum Server aufgebaut werden.');
@@ -37,29 +40,42 @@ $user = get_uid();
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($user);
if(!$rechte->isBerechtigt('student/vorrueckung', null, 'suid'))
if (!$rechte->isBerechtigt('student/vorrueckung', null, 'suid'))
die('Sie haben keine Berechtigung fuer diese Seite');
$ausbildungssemester=0;
$s=new studiengang();
$s->loadArray($rechte->getStgKz('student/vorrueckung'),'typ, kurzbz', true);
$studiengang=$s->result;
$ausbildungssemester = 0;
$s = new studiengang();
$s->loadArray($rechte->getStgKz('student/vorrueckung'), 'typ, kurzbz', true);
$studiengang = $s->result;
echo '<html>
echo '<!doctype html>
<html>
<head>
<title>Studenten Vorrueckung</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" href="../../skin/vilesci.css" type="text/css">
<link rel="stylesheet" href="../../include/js/tablesort/table.css" type="text/css">
<script src="../../include/js/tablesort/table.js" type="text/javascript"></script>
<meta charset="UTF-8">
<link rel="stylesheet" href="../../skin/fhcomplete.css" type="text/css">
<link rel="stylesheet" href="../../skin/vilesci.css" type="text/css">';
include('../../include/meta/jquery.php');
include('../../include/meta/jquery-tablesorter.php');
echo '
<script language="Javascript">
$(document).ready(function()
{
$("#t1").tablesorter(
{
sortList: [[0,0]],
widgets: ["zebra"],
});
});
</script>
</head>
<body class="Background_main">';
<body>';
// Output flushen damit nach dem aendern des Dropdowns gleich die neue Seite geladen wird.
// Sonst wird bei zu langen Ladezeiten vom User noch auf einen anderen Link gedrueckt und der Studiengang
// wieder zurueckgesetzt
// wieder zurueckgesetzt
// This prevent the notice error "ob_flush(): failed to flush buffer. No buffer to flush"
if(ob_get_contents() != false)
if (ob_get_contents() != false)
{
ob_flush();
}
@@ -68,8 +84,8 @@ flush();
//Einlesen der studiensemester in einen Array
$ss = new studiensemester();
$ss->getAll();
foreach($ss->studiensemester as $studiensemester)
$ss->getAll('desc');
foreach ($ss->studiensemester as $studiensemester)
{
$ss_arr[] = $studiensemester->studiensemester_kurzbz;
}
@@ -78,305 +94,489 @@ foreach($ss->studiensemester as $studiensemester)
//studiengang
if (isset($_GET['stg_kz']) || isset($_POST['stg_kz']))
{
$stg_kz=(isset($_GET['stg_kz'])?$_GET['stg_kz']:$_POST['stg_kz']);
$stg_kz = (isset($_GET['stg_kz'])?$_GET['stg_kz']:$_POST['stg_kz']);
}
else
{
$stg_kz=$studiengang[0]->studiengang_kz;
$stg_kz = $studiengang[0]->studiengang_kz;
}
//semester anzeige
if (isset($_GET['semester']) || isset($_POST['semester']))
{
$semester=(isset($_GET['semester'])?$_GET['semester']:$_POST['semester']);
$semester = (isset($_GET['semester'])?$_GET['semester']:$_POST['semester']);
}
else
{
$semester=100;
$semester = 100;
}
//semester vorrückung
if (isset($_GET['semesterv']) || isset($_POST['semesterv']))
{
$semesterv=(isset($_GET['semesterv'])?$_GET['semesterv']:$_POST['semesterv']);
$semesterv = (isset($_GET['semesterv'])?$_GET['semesterv']:$_POST['semesterv']);
}
else
{
$semesterv=100;
$semesterv = 100;
}
//angezeigtes studiensemester
if (isset($_GET['studiensemester_kurzbz']) || isset($_POST['studiensemester_kurzbz']))
{
$studiensemester_kurzbz=(isset($_GET['studiensemester_kurzbz'])?$_GET['studiensemester_kurzbz']:$_POST['studiensemester_kurzbz']);
if (isset($_GET['studiensemester_kurzbz']))
$studiensemester_kurzbz = $_GET['studiensemester_kurzbz'];
else
$studiensemester_kurzbz = $_POST['studiensemester_kurzbz'];
}
else
{
if (!$studiensemester_kurzbz=$ss->getakt())
$studiensemester_kurzbz=$ss->getaktorNext();
if (!$studiensemester_kurzbz = $ss->getakt())
$studiensemester_kurzbz = $ss->getaktorNext();
}
//ausgangssemester für vorrückung
if (isset($_GET['studiensemester_kurzbz_akt']) || isset($_POST['studiensemester_kurzbz_akt']))
{
$studiensemester_kurzbz_akt=(isset($_GET['studiensemester_kurzbz_akt'])?$_GET['studiensemester_kurzbz_akt']:$_POST['studiensemester_kurzbz_akt']);
if (isset($_GET['studiensemester_kurzbz_akt']))
$studiensemester_kurzbz_akt = $_GET['studiensemester_kurzbz_akt'];
else
$studiensemester_kurzbz_akt = $_POST['studiensemester_kurzbz_akt'];
}
else
{
# $studiensemester_kurzbz_akt=$studiensemester_kurzbz;
# $studiensemester_kurzbz_akt=$ss->getPrevious();
$studiensemester_kurzbz_akt=$ss->getLastOrAktSemester(30);
$studiensemester_kurzbz_akt = $ss->getLastOrAktSemester(30);
}
//zielsemester für vorrückung
if (isset($_GET['studiensemester_kurzbz_zk']) || isset($_POST['studiensemester_kurzbz_zk']))
{
$studiensemester_kurzbz_zk=(isset($_GET['studiensemester_kurzbz_zk'])?$_GET['studiensemester_kurzbz_zk']:$_POST['studiensemester_kurzbz_zk']);
if (isset($_GET['studiensemester_kurzbz_zk']))
$studiensemester_kurzbz_zk = $_GET['studiensemester_kurzbz_zk'];
else
$studiensemester_kurzbz_zk = $_POST['studiensemester_kurzbz_zk'];
}
else
{
$studiensemester_kurzbz_zk=$ss->getNextFrom($studiensemester_kurzbz_akt);
$studiensemester_kurzbz_zk = $ss->getNextFrom($studiensemester_kurzbz_akt);
}
if(!is_numeric($stg_kz))
if (!is_numeric($stg_kz))
{
$stg_kz=0;
$stg_kz = 0;
}
//semester=100 bedeutet die Auswahl aller Semester
if(!is_numeric($semester))
if (!is_numeric($semester))
{
$semester=100;
$semester = 100;
}
//Einlesen der maximalen, regulären Dauer der Studiengänge in einen Array
$qry_stg="SELECT * FROM public.tbl_studiengang";
if ($result_stg=$db->db_query($qry_stg))
$stg = new studiengang();
$stg->getAll();
foreach ($stg->result as $row_stg)
{
while($row_stg=$db->db_fetch_object($result_stg))
{
$max[$row_stg->studiengang_kz]=$row_stg->max_semester;
}
}
$max[$row_stg->studiengang_kz] = $row_stg->max_semester;
}
//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 (student_uid)
$sql_query = "SELECT
tbl_student.*,
tbl_person.vorname, tbl_person.nachname, tbl_person.person_id,
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 (student_uid)
JOIN tbl_benutzer ON (student_uid=uid)
JOIN tbl_person USING (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)
{
$sql_query.=" AND tbl_studentlehrverband.semester=".$db->db_add_param($semester, FHC_INTEGER); //semester = 100 wählt alle aus
}
$sql_query.=" ORDER BY semester, nachname";
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);
//echo $sql_query;
if (!$result_std=$db->db_query($sql_query))
if ($semester < 100) //semester = 100 wählt alle aus
{
$sql_query .= " AND tbl_studentlehrverband.semester=".$db->db_add_param($semester, FHC_INTEGER);
}
$sql_query .= " ORDER BY semester, nachname";
if (!$result_std = $db->db_query($sql_query))
{
error("Studenten not found!");
}
$outp='';
$outp = '';
// ****************************** Vorrücken ******************************
if (isset($_POST['vorr']))
{
$statisticAdded = 0;
$statisticUebersprungen = 0;
$statisticStudienplanKorrektur = 0;
$stg_help = new studiengang();
if(!$stg_help->load($stg_kz))
if (!$stg_help->load($stg_kz))
die("Studiengang mit der Kennzahl $stg_kz kann nicht geladen werden");
if(!$rechte->isBerechtigt('student/vorrueckung',$stg_help->oe_kurzbz, 'suid'))
if (!$rechte->isBerechtigt('student/vorrueckung', $stg_help->oe_kurzbz, 'suid'))
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 (student_uid)
JOIN tbl_benutzer ON (student_uid=uid)
JOIN tbl_person USING (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);
if($semester<100)
$sql_query = "SELECT
tbl_student.*,
tbl_person.vorname, tbl_person.nachname, tbl_person.person_id,
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 (student_uid)
JOIN tbl_benutzer ON (student_uid=uid)
JOIN tbl_person USING (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);
if ($semester < 100) //semester = 100 wählt alle aus
{
$sql_query.="AND tbl_studentlehrverband.semester=".$db->db_add_param($semesterv); //semester = 100 wählt alle aus
$sql_query .= "AND tbl_studentlehrverband.semester=".$db->db_add_param($semesterv);
}
$sql_query.="ORDER BY semester, nachname";
//echo $sql_query;
if (!$result_std=$db->db_query($sql_query))
$sql_query .= "ORDER BY semester, nachname";
if (!$result_std = $db->db_query($sql_query))
{
error("Studenten not found!");
}
$next_ss=$studiensemester_kurzbz_zk;
while($row=$db->db_fetch_object($result_std))
$next_ss = $studiensemester_kurzbz_zk;
while ($row = $db->db_fetch_object($result_std))
{
//aktuelle Rolle laden
$qry_status="SELECT * FROM public.tbl_prestudentstatus JOIN public.tbl_prestudent USING(prestudent_id)
WHERE prestudent_id=".$db->db_add_param($row->prestudent_id, FHC_INTEGER)."
AND studiengang_kz=".$db->db_add_param($row->studiengang_kz, FHC_INTEGER)."
AND studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz_akt)."
ORDER BY datum desc, tbl_prestudentstatus.insertamum desc, tbl_prestudentstatus.ext_id desc LIMIT 1;";
if ($result_status=$db->db_query($qry_status))
$qry_status = "
SELECT
*
FROM
public.tbl_prestudentstatus
JOIN public.tbl_prestudent USING(prestudent_id)
WHERE
prestudent_id=".$db->db_add_param($row->prestudent_id, FHC_INTEGER)."
AND studiengang_kz=".$db->db_add_param($row->studiengang_kz, FHC_INTEGER)."
AND studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz_akt)."
ORDER BY datum desc, tbl_prestudentstatus.insertamum desc, tbl_prestudentstatus.ext_id desc
LIMIT 1;";
if ($result_status = $db->db_query($qry_status))
{
if($row_status=$db->db_fetch_object($result_status))
if ($row_status = $db->db_fetch_object($result_status))
{
//Studenten im letzten Semester bleiben dort, wenn aktiv
// Semester fuer Studentlehrverband
if(VORRUECKUNG_LEHRVERBAND_MAX_SEMESTER!='')
if (VORRUECKUNG_LEHRVERBAND_MAX_SEMESTER != '')
{
if($row->semester_stlv>=VORRUECKUNG_LEHRVERBAND_MAX_SEMESTER)
$s=$row->semester_stlv;
if ($row->semester_stlv >= VORRUECKUNG_LEHRVERBAND_MAX_SEMESTER)
$s = $row->semester_stlv;
else
$s=$row->semester_stlv+1;
$s = $row->semester_stlv + 1;
}
else
{
if($row->semester_stlv>=$max[$stg_kz] || $row->semester_stlv==0)
$s=$row->semester_stlv;
if ($row->semester_stlv >= $max[$stg_kz] || $row->semester_stlv == 0)
$s = $row->semester_stlv;
else
$s=$row->semester_stlv+1;
$s = $row->semester_stlv + 1;
}
if(!VORRUECKUNG_STATUS_MAX_SEMESTER)
$ausbildungssemester=$row_status->ausbildungssemester+1;
else
if (!VORRUECKUNG_STATUS_MAX_SEMESTER)
$ausbildungssemester = $row_status->ausbildungssemester + 1;
else
{
// Semester fuer Status
if($row_status->ausbildungssemester>=$max[$stg_kz] || $row_status->status_kurzbz=="Unterbrecher" || $row_status->status_kurzbz=="Incoming")
if ($row_status->ausbildungssemester >= $max[$stg_kz]
|| $row_status->status_kurzbz == "Unterbrecher"
|| $row_status->status_kurzbz == "Incoming")
{
$ausbildungssemester=$row_status->ausbildungssemester;
$ausbildungssemester = $row_status->ausbildungssemester;
}
else
else
{
$ausbildungssemester=$row_status->ausbildungssemester+1;
$ausbildungssemester = $row_status->ausbildungssemester + 1;
}
}
$lvb = new lehrverband();
//Lehrverbandgruppe anlegen, wenn noch nicht vorhanden
$qry_lvb="SELECT * FROM public.tbl_lehrverband
WHERE studiengang_kz=".$db->db_add_param($row->studiengang_kz, FHC_INTEGER)." AND semester=".$db->db_add_param($s)."
AND verband=".$db->db_add_param($row->verband_stlv)." AND gruppe=".$db->db_add_param($row->gruppe_stlv).";";
if($db->db_num_rows($db->db_query($qry_lvb))<1)
if (!$lvb->exists($row->studiengang_kz, $s, $row->verband_stlv, $row->gruppe_stlv))
{
$lvb_ins="INSERT INTO public.tbl_lehrverband (studiengang_kz, semester, verband, gruppe, aktiv, bezeichnung, ext_id) VALUES (".
$db->db_add_param($row->studiengang_kz).", ".
$db->db_add_param($s).", ".
$db->db_add_param($row->verband_stlv).", ".
$db->db_add_param($row->gruppe_stlv).",
TRUE, NULL, NULL);";
if (!$r=$db->db_query($lvb_ins))
die($db->db_last_error());
$lvb = new lehrverband();
$lvb->studiengang_kz = $row->studiengang_kz;
$lvb->semester = $s;
$lvb->verband = $row->verband_stlv;
$lvb->gruppe = $row->gruppe_stlv;
$lvb->aktiv = true;
$lvb->new = true;
if (!$lvb->save())
die($lvb->errormsg);
}
//Überprüfen ob Eintrag schon vorhanden
$qry_chk="SELECT * FROM public.tbl_studentlehrverband
WHERE student_uid=".$db->db_add_param($row->student_uid)."
AND studiensemester_kurzbz=".$db->db_add_param($next_ss).";";
$sql='';
if($db->db_num_rows($db->db_query($qry_chk))<1)
$qry_chk = "SELECT
*
FROM
public.tbl_studentlehrverband
WHERE
student_uid=".$db->db_add_param($row->student_uid)."
AND studiensemester_kurzbz=".$db->db_add_param($next_ss).";";
$sql = '';
if ($db->db_num_rows($db->db_query($qry_chk)) < 1)
{
//Eintragen der neuen Gruppe
$sql="INSERT INTO public.tbl_studentlehrverband (student_uid, studiensemester_kurzbz, studiengang_kz, semester, verband, gruppe, updateamum, updatevon, insertamum, insertvon, ext_id)
VALUES (".$db->db_add_param($row->student_uid).",".$db->db_add_param($next_ss).",".$db->db_add_param($row->studiengang_kz).",
".$db->db_add_param($s).",".$db->db_add_param($row->verband_stlv).",".$db->db_add_param($row->gruppe_stlv).",NULL,NULL,now(),".$db->db_add_param($user).",NULL);";
$sql = "INSERT INTO public.tbl_studentlehrverband (student_uid, studiensemester_kurzbz,
studiengang_kz, semester, verband, gruppe, updateamum, updatevon,
insertamum, insertvon, ext_id)
VALUES (".$db->db_add_param($row->student_uid).", ".
$db->db_add_param($next_ss).", ".
$db->db_add_param($row->studiengang_kz).", ".
$db->db_add_param($s).", ".
$db->db_add_param($row->verband_stlv).", ".
$db->db_add_param($row->gruppe_stlv).",NULL,NULL,now(),".
$db->db_add_param($user).",NULL);";
}
$qry_chk="SELECT * FROM public.tbl_prestudentstatus
WHERE prestudent_id=".$db->db_add_param($row->prestudent_id)."
AND studiensemester_kurzbz=".$db->db_add_param($next_ss).";";
if($db->db_num_rows($db->db_query($qry_chk))<1)
$qry_chk = "SELECT
*
FROM
public.tbl_prestudentstatus
WHERE
prestudent_id=".$db->db_add_param($row->prestudent_id)."
AND studiensemester_kurzbz=".$db->db_add_param($next_ss).";";
if ($db->db_num_rows($db->db_query($qry_chk)) < 1)
{
// Pruefen ob der Studienplan fuer das vorgerueckte Semester noch gueltig ist
// und GGf einen besseren Studienplan suchen
$studienplan_id = getCorrectedStudienplan(
$next_ss,
$ausbildungssemester,
$row_status->studienplan_id
);
if ($row_status->studienplan_id != $studienplan_id)
$statisticStudienplanKorrektur++;
//Eintragen des neuen Status
$sql.="INSERT INTO public.tbl_prestudentstatus (prestudent_id, status_kurzbz, studiensemester_kurzbz, ausbildungssemester, datum, insertamum, insertvon, updateamum, updatevon, ext_id, orgform_kurzbz, studienplan_id)
VALUES (".$db->db_add_param($row->prestudent_id).", ".$db->db_add_param($row_status->status_kurzbz).", ".$db->db_add_param($next_ss).",
".$db->db_add_param($ausbildungssemester).", now(), now(), ".$db->db_add_param($user).",
NULL, NULL, NULL, ".$db->db_add_param($row_status->orgform_kurzbz).",".$db->db_add_param($row_status->studienplan_id).");";
$sql .= "INSERT INTO public.tbl_prestudentstatus (prestudent_id, status_kurzbz,
studiensemester_kurzbz, ausbildungssemester, datum, insertamum,
insertvon, updateamum, updatevon, ext_id, orgform_kurzbz, studienplan_id)
VALUES (".$db->db_add_param($row->prestudent_id).", ".
$db->db_add_param($row_status->status_kurzbz).", ".
$db->db_add_param($next_ss).", ".
$db->db_add_param($ausbildungssemester).", now(), now(), ".
$db->db_add_param($user).", NULL, NULL, NULL, ".
$db->db_add_param($row_status->orgform_kurzbz).", ".
$db->db_add_param($studienplan_id).");";
}
if($sql!='')
if ($sql != '')
{
if (!$r=$db->db_query($sql))
if (!$r = $db->db_query($sql))
{
die($db->db_last_error()."<br>".$sql);
}
else
{
$statisticAdded++;
}
}
else
{
$statisticUebersprungen++;
}
}
}
}
echo '<span class="ok">';
echo 'Vorgerückte Personen:'.$statisticAdded.'<br>';
echo 'Übersprungene Personen:'.$statisticUebersprungen.'<br>';
echo 'Studienplanzuordnung korrigiert:'.$statisticStudienplanKorrektur.'<br>';
echo '</span>';
}
// **************** Ausgabe vorbereiten ******************************
$s=array();
$outp.="-----Anzeige------------------------------------------------------------------------------------------------------------------------------------------";
$outp.="<br>Studiengang: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<SELECT name='stg_kz'>";
$s = array();
$outp .= '
<table>
<tr>
<td colspan="2" align="center"><b>Anzeige</b></td>
</tr>
<tr>
<td>Studiengang:</td>
<td>
<SELECT name="stg_kz">';
//Auswahl Studiengang
foreach ($studiengang as $stg)
{
$outp.="<OPTION onclick=\"window.location.href = '".$_SERVER['PHP_SELF']."?stg_kz=$stg->studiengang_kz&semester=$semester&semesterv=$semesterv&studiensemester_kurzbz=$studiensemester_kurzbz&studiensemester_kurzbz_akt=$studiensemester_kurzbz_akt&studiensemester_kurzbz_zk=$studiensemester_kurzbz_zk'\" ".($stg->studiengang_kz==$stg_kz?'selected':'').">$stg->kurzbzlang ($stg->kuerzel) - $stg->bezeichnung</OPTION>";
//$outp.= '<A href="'.$_SERVER['PHP_SELF'].'?stg_kz='.$stg->studiengang_kz.'&semester='.$semester.'">'.$stg->kuerzel.'</A> - ';
@$s[$stg->studiengang_kz]->max_sem=$stg->max_semester;
$s[$stg->studiengang_kz]->kurzbz=$stg->kurzbzlang;
$url = $_SERVER['PHP_SELF']."?stg_kz=$stg->studiengang_kz";
$url .= "&semester=$semester";
$url .= "&semesterv=$semesterv";
$url .= "&studiensemester_kurzbz=$studiensemester_kurzbz";
$url .= "&studiensemester_kurzbz_akt=$studiensemester_kurzbz_akt";
$url .= "&studiensemester_kurzbz_zk=$studiensemester_kurzbz_zk";
$outp .= "<OPTION onclick=\"window.location.href='".$url."'\" ".($stg->studiengang_kz == $stg_kz?'selected':'').">";
$outp .= "$stg->kurzbzlang ($stg->kuerzel) - $stg->bezeichnung</OPTION>";
if (!isset($s[$stg->studiengang_kz]))
$s[$stg->studiengang_kz] = new stdClass();
$s[$stg->studiengang_kz]->max_sem = $stg->max_semester;
$s[$stg->studiengang_kz]->kurzbz = $stg->kurzbzlang;
}
$outp.='</SELECT>';
$outp .= '</SELECT>
</td>
</tr>';
//Auswahl angezeigtes Studiensemester
$outp.="<br>Angezeigtes Studiensemester: <select name='studiensemester_kurzbz'>\n";
$outp .= "
<tr>
<td>Angezeigtes Studiensemester:</td>
<td><select name='studiensemester_kurzbz'>\n";
if (isset($ss_arr) && is_array($ss_arr))
{
foreach ($ss_arr AS $sts)
foreach ($ss_arr as $sts)
{
if ($studiensemester_kurzbz == $sts)
$sel = " selected ";
else
$sel = '';
$outp.=" <option value='".$sts."' ".$sel."onclick=\"window.location.href = '".$_SERVER['PHP_SELF']."?stg_kz=$stg_kz&semester=$semester&semesterv=$semesterv&studiensemester_kurzbz=$sts&studiensemester_kurzbz_akt=$studiensemester_kurzbz_akt&studiensemester_kurzbz_zk=$studiensemester_kurzbz_zk'\">".$sts."</option>";
$url = $_SERVER['PHP_SELF']."?stg_kz=$stg_kz";
$url .= "&semester=$semester";
$url .= "&semesterv=$semesterv";
$url .= "&studiensemester_kurzbz=$sts";
$url .= "&studiensemester_kurzbz_akt=$studiensemester_kurzbz_akt";
$url .= "&studiensemester_kurzbz_zk=$studiensemester_kurzbz_zk";
$outp .= "<option value='".$sts."' ".$sel."onclick=\"window.location.href = '".$url."'\">".$sts."</option>";
}
}
$outp.=" </select>";
$outp.= '<BR>Ausbildungssemester der Anzeige: -- ';
for ($i=0;$i<=$s[$stg_kz]->max_sem;$i++)
$outp .= " </select>
</td>
</tr>";
$outp .= '
<tr>
<td>Ausbildungssemester der Anzeige:</td>
<td> -- ';
for ($i = 0; $i <= $s[$stg_kz]->max_sem; $i++)
{
$outp.= '<A href="'.$_SERVER['PHP_SELF'].'?stg_kz='.$stg_kz.'&semester='.$i.'&semesterv='.$semesterv.'&studiensemester_kurzbz='.$studiensemester_kurzbz.'&studiensemester_kurzbz_akt='.$studiensemester_kurzbz_akt.'&studiensemester_kurzbz_zk='.$studiensemester_kurzbz_zk.'">'.$i.'</A> -- ';
$url = $_SERVER['PHP_SELF'].'?stg_kz='.$stg_kz;
$url .= '&semester='.$i;
$url .= '&semesterv='.$semesterv;
$url .= '&studiensemester_kurzbz='.$studiensemester_kurzbz;
$url .= '&studiensemester_kurzbz_akt='.$studiensemester_kurzbz_akt;
$url .= '&studiensemester_kurzbz_zk='.$studiensemester_kurzbz_zk;
$outp .= '<a href="'.$url.'">'.$i.'</A> -- ';
}
$outp.= '<A href="'.$_SERVER['PHP_SELF'].'?stg_kz='.$stg_kz.'&semesterv='.$semesterv.'&semester=100&studiensemester_kurzbz='.$studiensemester_kurzbz.'&studiensemester_kurzbz_akt='.$studiensemester_kurzbz_akt.'&studiensemester_kurzbz_zk='.$studiensemester_kurzbz_zk.'">alle</A> -- ';
$url = $_SERVER['PHP_SELF'].'?stg_kz='.$stg_kz;
$url .= '&semesterv='.$semesterv;
$url .= '&semester=100';
$url .= '&studiensemester_kurzbz='.$studiensemester_kurzbz;
$url .= '&studiensemester_kurzbz_akt='.$studiensemester_kurzbz_akt;
$url .= '&studiensemester_kurzbz_zk='.$studiensemester_kurzbz_zk;
$outp .= '<A href="'.$url.'">alle</A> -- ';
//Auswahl Studiensemester von dem weg vorgerückt werden soll
$outp.="<br>-----Vorr&uuml;ckung Studiengang ".$s[$stg_kz]->kurzbz."----------------------------------------------------------------------------------------------------------";
$outp.="<br>Ausgangs-Studiensemester: &nbsp;&nbsp;&nbsp;&nbsp;<select name='studiensemester_kurzbz_akt'>\n";
$outp .= '
</td>
</tr>
<tr>
<td colspan="2" align="center"><b>Vorr&uuml;ckung Studiengang '.$s[$stg_kz]->kurzbz.'</b></td>
</tr>
<tr>
<td>Ausgangs-Studiensemester:</td>
<td><select name="studiensemester_kurzbz_akt">';
if (isset($ss_arr) && is_array($ss_arr))
{
foreach ($ss_arr AS $sts2)
foreach ($ss_arr as $sts2)
{
if ($studiensemester_kurzbz_akt == $sts2)
$sel2 = " selected ";
else
$sel2 = '';
$outp.=" <option value='".$sts2."' ".$sel2."onclick=\"window.location.href = '".$_SERVER['PHP_SELF']."?stg_kz=$stg_kz&semester=$semester&semesterv=$semesterv&studiensemester_kurzbz=$studiensemester_kurzbz&studiensemester_kurzbz_akt=$sts2&studiensemester_kurzb_zk=$studiensemester_kurzbz_zk'\">".$sts2."</option>";
$url = $_SERVER['PHP_SELF']."?stg_kz=$stg_kz";
$url .= "&semester=$semester";
$url .= "&semesterv=$semesterv";
$url .= "&studiensemester_kurzbz=$studiensemester_kurzbz";
$url .= "&studiensemester_kurzbz_akt=$sts2";
$url .= "&studiensemester_kurzb_zk=$studiensemester_kurzbz_zk";
$outp .= "<option value='".$sts2."' ".$sel2."onclick=\"window.location.href = '".$url."'\">".$sts2."</option>";
}
}
$outp.=" </select>\n";
$outp.= '<BR>Ausgangs-Ausbildungssemester: &nbsp;&nbsp;-- ';
for ($j=0;$j<=$s[$stg_kz]->max_sem;$j++)
$outp .= " </select>
</td>
</tr>\n";
$outp .= '
<tr>
<td>Ausgangs-Ausbildungssemester:</td>
<td>-- ';
for ($j = 0; $j <= $s[$stg_kz]->max_sem; $j++)
{
$outp.= '<A href="'.$_SERVER['PHP_SELF'].'?stg_kz='.$stg_kz.'&semester='.$semester.'&semesterv='.$j.'&studiensemester_kurzbz='.$studiensemester_kurzbz.'&studiensemester_kurzbz_akt='.$studiensemester_kurzbz_akt.'&studiensemester_kurzbz_zk='.$studiensemester_kurzbz_zk.'">'.$j.'</A> -- ';
$url = $_SERVER['PHP_SELF'].'?stg_kz='.$stg_kz;
$url .= '&semester='.$semester;
$url .= '&semesterv='.$j;
$url .= '&studiensemester_kurzbz='.$studiensemester_kurzbz;
$url .= '&studiensemester_kurzbz_akt='.$studiensemester_kurzbz_akt;
$url .= '&studiensemester_kurzbz_zk='.$studiensemester_kurzbz_zk;
$outp .= '<A href="'.$url.'">'.$j.'</A> -- ';
}
$outp.= '<A href="'.$_SERVER['PHP_SELF'].'?stg_kz='.$stg_kz.'&semester='.$semester.'&semesterv=100&studiensemester_kurzbz='.$studiensemester_kurzbz.'&studiensemester_kurzbz_akt='.$studiensemester_kurzbz_akt.'&studiensemester_kurzbz_zk='.$studiensemester_kurzbz_zk.'">alle</A> -- ';
$url = $_SERVER['PHP_SELF'].'?stg_kz='.$stg_kz;
$url .= '&semester='.$semester;
$url .= '&semesterv=100';
$url .= '&studiensemester_kurzbz='.$studiensemester_kurzbz;
$url .= '&studiensemester_kurzbz_akt='.$studiensemester_kurzbz_akt;
$url .= '&studiensemester_kurzbz_zk='.$studiensemester_kurzbz_zk;
$outp .= '<A href="'.$url.'">alle</A> --
</td>
</tr>';
//Auswahl Studiensemester in das vorgerückt werden soll
$outp.="<br>Ziel-Studiensemester: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<select name='studiensemester_kurzbz_zk'>\n";
$outp .= "
<tr>
<td>Ziel-Studiensemester:</td>
<td><select name='studiensemester_kurzbz_zk'>\n";
if (isset($ss_arr) && is_array($ss_arr))
{
foreach ($ss_arr AS $sts3)
foreach ($ss_arr as $sts3)
{
if ($studiensemester_kurzbz_zk == $sts3)
$sel3 = " selected ";
else
$sel3 = '';
$outp.=" <option value='".$sts3."' ".$sel3."onclick=\"window.location.href = '".$_SERVER['PHP_SELF']."?stg_kz=$stg_kz&semester=$semester&semesterv=$semesterv&studiensemester_kurzbz=$studiensemester_kurzbz&studiensemester_kurzbz_akt=$studiensemester_kurzbz_akt&studiensemester_kurzbz_zk=$sts3'\">".$sts3."</option>";
$url = $_SERVER['PHP_SELF']."?stg_kz=$stg_kz";
$url .= "&semester=$semester";
$url .= "&semesterv=$semesterv";
$url .= "&studiensemester_kurzbz=$studiensemester_kurzbz";
$url .= "&studiensemester_kurzbz_akt=$studiensemester_kurzbz_akt";
$url .= "&studiensemester_kurzbz_zk=$sts3";
$outp .= "<option value='".$sts3."' ".$sel3."onclick=\"window.location.href = '".$url."'\">".$sts3."</option>";
}
}
$outp.=" </select>\n";
$outp.="<BR>Vorr&uuml;ckung von ".$studiensemester_kurzbz_akt." / ".($semesterv<100?$semesterv.".":'alle')." Semester -> ".$studiensemester_kurzbz_zk;
// -------------------------------------------------------
$outp .= " </select>\n
</td>
</tr>
</table>";
$outp .= "Vorr&uuml;ckung von ".$studiensemester_kurzbz_akt." / ".($semesterv < 100?$semesterv.".":'alle');
$outp .= "Semester -> ".$studiensemester_kurzbz_zk;
//Überschrift
echo "<H2>Studenten Vorr&uuml;ckung (".$s[$stg_kz]->kurzbz." - ".($semester<100?$semester:'alle')." - ".
echo "<H2>Studenten Vorr&uuml;ckung (".$s[$stg_kz]->kurzbz." - ".($semester < 100?$semester:'alle')." - ".
$studiensemester_kurzbz."), DB:".DB_NAME."</H2>";
@@ -389,52 +589,140 @@ echo '<br><br><br><input type="submit" name="vorr" value="Vorruecken" />';
echo '</td><td>&nbsp;</td></tr></table>';
echo '</form>';
//Überschrift Anzeige
echo "<h3>&Uuml;bersicht (".$studiensemester_kurzbz."/".($semester<100?$semester.".":'alle')." Semester )</h3>
<table class='liste table-autosort:2 table-stripeclass:alternate table-autostripe'>
<thead>
<tr class='liste'>";
echo "<h3>&Uuml;bersicht (".$studiensemester_kurzbz."/".($semester < 100?$semester.".":'alle')." Semester )</h3>";
//Anzeige Tabelle
if ($result_std!=0)
if ($result_std != 0)
{
$num_rows=$db->db_num_rows($result_std);
$num_rows = $db->db_num_rows($result_std);
echo 'Anzahl: '.$num_rows;
echo "<th class='table-sortable:default'>Nachname</th><th class='table-sortable:default'>Vorname</th><th class='table-sortable:default'>STG</th><th class='table-sortable:default'>Sem</th><th class='table-sortable:default'>Ver</th><th class='table-sortable:default'>Grp</th><th class='table-sortable:default'>Status</th><th class='table-sortable:default'>AusbSem</th>\n";
echo "</tr></thead>";
echo "<tbody>";
for($i=0;$i<$num_rows;$i++)
echo '
<table class="tablesorter" id="t1">
<thead>
<tr>
<th>Nachname</th>
<th>Vorname</th>
<th>STG</th>
<th>Sem</th>
<th>Ver</th>
<th>Grp</th>
<th>Status</th>
<th>AusbSem</th>
<th>Studienplan</th>
</tr>
</thead>
<tbody>';
for ($i = 0; $i < $num_rows; $i++)
{
$row=$db->db_fetch_object($result_std,$i);
$qry_status="SELECT status_kurzbz, ausbildungssemester FROM public.tbl_prestudentstatus
JOIN public.tbl_prestudent USING(prestudent_id) WHERE person_id=".$db->db_add_param($row->person_id, FHC_INTEGER)."
AND studiengang_kz=".$db->db_add_param($row->studiengang_kz, FHC_INTEGER)."
AND studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz)."
$row = $db->db_fetch_object($result_std, $i);
$qry_status = "
SELECT
status_kurzbz, ausbildungssemester, tbl_studienplan.studienplan_id, tbl_studienplan.bezeichnung
FROM
public.tbl_prestudentstatus
JOIN public.tbl_prestudent USING(prestudent_id)
LEFT JOIN lehre.tbl_studienplan USING(studienplan_id)
WHERE
person_id=".$db->db_add_param($row->person_id, FHC_INTEGER)."
AND studiengang_kz=".$db->db_add_param($row->studiengang_kz, FHC_INTEGER)."
AND studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz)."
ORDER BY datum desc, tbl_prestudentstatus.insertamum desc, tbl_prestudentstatus.ext_id desc LIMIT 1;";
if ($result_status=$db->db_query($qry_status))
if ($result_status = $db->db_query($qry_status))
{
if($row_status=$db->db_fetch_object($result_status))
$status_kurzbz = '';
$ausbildungssemester = '';
$studienplan_id = '';
$studienplan_bezeichnung = '';
if ($row_status = $db->db_fetch_object($result_status))
{
echo "<tr>";
echo "<td>$row->nachname</td><td>$row->vorname</td><td>$row->studiengang_kz</td><td>$row->semester_stlv</td><td>$row->verband_stlv</td><td>$row->gruppe_stlv</td><td>$row_status->status_kurzbz</td><td>$row_status->ausbildungssemester</td>";
echo "</tr>\n";
}
else
{
echo "<tr>";
echo "<td>$row->nachname</td><td>$row->vorname</td><td>$row->studiengang_kz</td><td>$row->semester_stlv</td><td>$row->verband_stlv</td><td>$row->gruppe_stlv</td><td></td><td></td>";
echo "</tr>\n";
$status_kurzbz = $row_status->status_kurzbz;
$ausbildungssemester = $row_status->ausbildungssemester;
$studienplan_id = $row_status->studienplan_id;
$studienplan_bezeichnung = $row_status->bezeichnung;
}
if ($studienplan_id != '')
$studienplan_bezeichnung .= '('.$studienplan_id.')';
echo "
<tr>
<td>".$db->convert_html_chars($row->nachname)."</td>
<td>".$db->convert_html_chars($row->vorname)."</td>
<td>".$db->convert_html_chars($row->studiengang_kz)."</td>
<td>".$db->convert_html_chars($row->semester_stlv)."</td>
<td>".$db->convert_html_chars($row->verband_stlv)."</td>
<td>".$db->convert_html_chars($row->gruppe_stlv)."</td>
<td>".$db->convert_html_chars($status_kurzbz)."</td>
<td>".$db->convert_html_chars($ausbildungssemester)."</td>
<td>".$db->convert_html_chars($studienplan_bezeichnung)."</td>
</tr>\n";
}
else
else
{
error("Roles not found!");
error("Roles not found!");
}
}
echo '</tbody>';
echo '</tbody>
</table>';
}
else
echo "Kein Eintrag gefunden!";
/**
* Prüft ob der Studienplan im vorgerueckten Studiensemester noch aktiv ist
* falls dieser dort keine Gueltigkeit mehr hat, wird versucht den neuen Studienplan zu suchen
* wenn ein eindeutiger gefunden wird, wird der neue gesetzt
* Wenn kein eindeutiger gefunden wird, bleibt der alte Studienplan eingetragen
*
* @param string $studiensemester_kurzbz Neues Studiensemester.
* @param int $ausbildungssemester Neues Ausbildungssemester.
* @param int $studienplan_id Alte Studienplan_id.
* @return neue Studienplan_id
*/
function getCorrectedStudienplan($studiensemester_kurzbz, $ausbildungssemester, $studienplan_id)
{
if ($studienplan_id == '')
{
// Wenn kein Studienplan eingetragen ist auch keinen suchen
return '';
}
$studienplan = new studienplan();
if ($studienplan->isSemesterZugeordnet($studienplan_id, $studiensemester_kurzbz, $ausbildungssemester))
return $studienplan_id;
else
{
if ($studienplan->loadStudienplan($studienplan_id))
{
$studienordnung = new studienordnung();
$studienordnung->loadStudienordnung($studienplan->studienordnung_id);
$stp_neu = new studienplan();
$ret = $stp_neu->getStudienplaeneFromSem(
$studienordnung->studiengang_kz,
$studiensemester_kurzbz,
$ausbildungssemester,
$studienplan->orgform_kurzbz
);
if ($ret === true && count($stp_neu->result) == 1)
{
// Es wurde ein eindeutiger neue Studienplan gefunden
return $stp_neu->result[0]->studienplan_id;
}
else
{
// Kein eindeutiger gefunden -> es bleibt der alte
return $studienplan_id;
}
}
else
{
return $studienplan_id;
}
}
}
?>
</table>
<br>
</body>
</html>