- 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>';