, * Andreas Oesterreicher and * Karl Burkhart */ require_once('../config/vilesci.config.inc.php'); require_once('../include/basis_db.class.php'); require_once('../include/studiensemester.class.php'); require_once('../include/organisationsform.class.php'); require_once('../include/prestudent.class.php'); require_once('../include/student.class.php'); require_once('../include/studiengang.class.php'); require_once('../include/functions.inc.php'); require_once('../include/datum.class.php'); $db = new basis_db(); $datum = new datum(); $studiensemester = new studiensemester(); $aktSem = $studiensemester->getaktorNext(); $nextSem = $studiensemester->getNextFrom($aktSem); $ausgabe = array(); $text =""; ?> Check Studenten

Studenten Checkskript für BIS-Meldung


"; if($db->db_query($qry)) { while($row = $db->db_fetch_object()) { $ausgabe[$row->studiengang][1][]= $row->student_uid; $text.="Studenten-uid: ".$row->student_uid."
"; } } else $text.="Fehler bei der Abfrage aufgetreten.
"; /* * Abbrecher dürfen nicht mehr aktiv sein */ $text.= "
Suche alle Abbrecher die noch aktiv sind ...

"; $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($db->db_query($qry)) { while($row = $db->db_fetch_object()) { $ausgabe[$row->studiengang][2][]= $row->uid; $text .="Studenten-uid: ".$row->uid."
"; } } else $text.= "Fehler bei der Abfrage aufgetreten.
"; /* * Organisationsform eines Studienganges, sollte mit den Organisationsformen der Studenten übereinstimmen */ $text.= "
Suche Studenten mit ungleichen Organisationsformeinträgen (Studiengang <--> Prestudentstatus) ...

"; $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; "; if($db->db_query($qry)) { 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(!in_array($studentOrgform, $orgArray)) { $ausgabe[$row->studiengang][3][]= $row->student_uid; $text.= "Student_uid: $student_uid
"; } } } } else $text.="Fehler bei der Abfrage aufgetreten.
"; /* * Abbrecher dürfen nicht wieder einen Status bekommen */ $prestudentAbbrecher = new prestudent(); $prestudentLast = new prestudent(); $text.= "
Suche alle Abbrecher die wieder einen Status bekommen haben...

"; $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)) { while($row = $db->db_fetch_object()) { $student_uid = $row->student_uid; $prestudent_id = $row->prestudent_id; $prestudentLast->result = array(); $prestudentLast->getLastStatus($prestudent_id); if($prestudentLast->status_kurzbz != 'Abbrecher') { $ausgabe[$row->studiengang][4][]= $student_uid; $text.= "Studenten-uid: ".$student_uid."
"; } } } /* * Aktuelles Semester beim Studenten stimmt nicht mit dem Ausbildungssemester des aktuellen Status überein */ $text .="

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

"; $student = new student(); $prestudent = new prestudent(); $qry = "select distinct(student.student_uid), prestudent.prestudent_id, status.ausbildungssemester, lv.semester, student.studiengang_kz studiengang from public.tbl_student student join public.tbl_studentlehrverband lv 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';"; if($db->db_query($qry)) { while($row = $db->db_fetch_object()) { $student_uid = $row->student_uid; if($row->ausbildungssemester != $row->semester) { $ausgabe[$row->studiengang][5][]= $student_uid; $text.="Studenten-uid: ".$student_uid."
"; } } } /* * Inaktive Studenten sollen keinen "aktiven" Status haben (Diplomant, Student, Unterbrecher, Praktikant) */ $text.="

Suche alle inaktiven Studenten mit einem aktiven Status ...

"; $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')"; if($db->db_query($qry)) { while($row = $db->db_fetch_object()) { $ausgabe[$row->studiengang][6][]= $row->student_uid; $text.="Studenten-uid: ".$row->student_uid."
"; } } /* * Das Datum der Inskription darf nicht vor der letzten BIS-Meldung liegen * zB. Wenn Student im WS2009 studiert darf Studentenstatus nicht vor 15.4.2009 liegen * zB. Wenn Student im SS2010 studiert darf Studentenstatus nicht vor 15.11.2009 liegen */ $text.="

Suche alle Studenten deren Inskription im aktuellen Semester vor der letzten BIS-Meldung liegt ...

"; $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)) { 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) { $datumBIS = getDateForInscription($aktSem); $datumInscription = $datum->formatDatum($prestudent->datum, 'Y-m-d'); // Wenn Inscriptionsdatum vor der letzten BIS Meldung liegt if($datumInscription < $datumBIS) { $ausgabe[$row->studiengang][7][]= $row->student_uid; $text.= $row->student_uid ." Inskribiert am: ".$datumInscription." BIS Meldung: ".$datumBIS."
"; } } } } /* * Datum und Studiensemester bei den Stati sind in falscher Reihenfolge */ $text.="

Suche alle Studenten die Datum und Studiensemester in deren Stati in falscher Reihenfolge haben ...

"; $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';"; if($result = $db->db_query($qry_student)) { 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;"; if($result1 = $db->db_query($qry_orderSemester)) { $prestudentSecond->result = array(); $prestudentFirst->result = array(); while($row = $db->db_fetch_object($result1)) { $prestudentStatus = new prestudent(); $prestudentStatus->prestudent_id = $row->prestudent_id; $prestudentStatus->status_kurzbz = $row->status_kurzbz; $prestudentStatus->studiensemester_kurzbz = $row->studiensemester_kurzbz; $prestudentStatus->ausbildungssemester = $row->ausbildungssemester; $prestudentStatus->datum = $row->datum; $prestudentStatus->insertamum = $row->insertamum; $prestudentStatus->insertvon = $row->insertvon; $prestudentStatus->updateamum = $row->updateamum; $prestudentStatus->updatevon = $row->updatevon; $prestudentStatus->ext_id = $row->ext_id; $prestudentStatus->orgform_kurzbz = $row->orgform_kurzbz; $prestudentFirst->result[] = $prestudentStatus; } } else $text.= "Fehler"; if(!$prestudentSecond->getPrestudentRolle($student->prestudent_id,null,null,'Datum DESC, insertamum DESC')) $text.= "ERROR:".$prestudentSecond->errormsg; for($i=0; $iresult); $i++) { if($prestudentFirst->result[$i]->studiensemester_kurzbz != $prestudentSecond->result[$i]->studiensemester_kurzbz) { $ausgabe[$student->studiengang][8][]= $student->student_uid; $text.= "Studenten-uid: ".$student->student_uid."
"; continue 2; } } } } /* * Aktive Studenten ohne Status in aktuellen Studiensemester */ $prestudent = new prestudent(); $text.="

Suche alle aktiven Studenten die keinen Status im aktuellen Studiensemester haben.

"; $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)) { while($row = $db->db_fetch_object($result)) { if(!$prestudent->getLastStatus($row->prestudent_id, $aktSem) && !$prestudent->getLastStatus($row->prestudent_id, $nextSem)) { $ausgabe[$row->studiengang][9][]= $row->student_uid; $text.= $row->student_uid."
"; } } } /* * Bewerber im aktuellen StSem die in Mischformstudiengängen keine Orgform eingetragen haben */ $text.="

Suche alle Bewerber die keine Orgform eingetragen haben.

"; $qry =" SELECT tbl_prestudent.prestudent_id, tbl_person.vorname, tbl_person.nachname, tbl_prestudent.studiengang_kz as studiengang FROM public.tbl_prestudent JOIN public.tbl_person USING(person_id) JOIN public.tbl_prestudentstatus USING(prestudent_id) JOIN public.tbl_studiengang USING(studiengang_kz) WHERE tbl_prestudentstatus.status_kurzbz='Bewerber' AND tbl_studiengang.mischform 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)) { 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."
"; } } /* * Studierende im aktuellen StSem die in Mischformstudiengängen keine Orgform eingetragen haben */ $text.="

Suche alle Bewerber die keine Orgform eingetragen haben.

"; $qry =" SELECT tbl_prestudent.prestudent_id, tbl_person.vorname, tbl_person.nachname, tbl_prestudent.studiengang_kz as studiengang FROM public.tbl_prestudent JOIN public.tbl_person USING(person_id) JOIN public.tbl_prestudentstatus USING(prestudent_id) JOIN public.tbl_studiengang USING(studiengang_kz) WHERE tbl_prestudentstatus.status_kurzbz='Student' AND tbl_studiengang.mischform 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)) { 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."
"; } } // Ausgabe der Studenten 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) continue; $studiengang = new studiengang(); $studiengang->load($stg_kz); echo "

".$studiengang->bezeichnung ." (".$studiengang->kurzbzlang.")

"; echo ""; foreach($value as $code=>$uid) { switch ($code) { case 1: echo ''; break; case 2: echo ""; break; case 3: echo ""; break; case 4: echo ""; break; case 5: echo ""; break; case 6: echo ""; break; case 7: echo ""; break; case 8: echo ""; break; case 9: echo ""; break; case 10: echo ""; break; case 11: echo ""; break; default: echo ""; break; } foreach ($uid as $student_id) { echo ""; $student = new student(); if($student->load($student_id)) echo ''; else echo ''; echo ""; } } echo "
 
Studenten deren Studiengänge (Prestudent <-> Student) nicht gleich sind
 
Abrecher die noch aktiv sind
 
Studenten mit nicht identischen Organisationsformeinträgen (Studiengang <-> Prestudentstatus)
 
Abbrecher die wieder einen Status bekommen haben
 
Studenten deren Semester nicht mit dem Ausbildungssemester des aktuellen Status übereinstimmt
 
Inaktive Studenten mit einem aktiven Status
 
Studenten deren Inskription im aktuellen Semester vor der letzten BIS-Meldung liegt
 
Studenten die Datum und Studiensemestern in deren Stati in falscher Reihenfolge haben
 
Aktive Studenten die keinen Status im aktuellen oder nächsten Studiensemester haben
 
Bewerberstati die keiner Organisationsform zugeordnet sind
 
Studierendenstati die keiner Organisationsform zugeordnet sind
 
Ungültiger Code
'.$student->vorname.''.$student->nachname.''.$student->uid.''.$student_id,'
"; } //echo $text; /* * Gibt das Datum der BIS Meldung des übergebenen Semesters zurück */ function getDateForInscription ($semester) { global $datum; $semesterYear = substr($semester,2,6); $semesterType = substr($semester,0,2); if($semesterType == 'SS') { $date = "15.11.".($semesterYear-1); $date = $datum->formatDatum($date, 'Y-m-d'); return $date; } if($semesterType == 'WS') { $date = '15.04'.$semesterYear; $date = $datum->formatDatum($date, 'Y-m-d'); return $date; } } ?>