diff --git a/vilesci/bis/checkfunktion.php b/vilesci/bis/checkfunktion.php
index c55a9e945..d35053363 100644
--- a/vilesci/bis/checkfunktion.php
+++ b/vilesci/bis/checkfunktion.php
@@ -1,203 +1,616 @@
-
- * Andreas Oesterreicher < andreas.oesterreicher@technikum-wien.at >
- * Rudolf Hangl < rudolf.hangl@technikum-wien.at >
- * Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at >
- */
- require_once('../../config/vilesci.config.inc.php');
- require_once('../../include/basis_db.class.php');
- if (!$db = new basis_db())
- die('Es konnte keine Verbindung zum Server aufgebaut werden.');
-
-
-require_once('../../include/functions.inc.php');
-require_once('../../include/benutzerberechtigung.class.php');
-require_once('../../include/studiensemester.class.php');
-require_once('../../include/bisfunktion.class.php');
-require_once('../../include/studiengang.class.php');
-
-$funktion_geaendert=0;
-$funktion_hinzugefuegt=0;
-$funktion_error=0;
-$verwendung_not_found=0;
-$verwendung_multiple=0;
-$funktion_ohne_lehrauftrag=0;
-$user = get_uid();
-$wochen=BIS_SWS_WOCHEN;
-
-$stg_arr = array();
-$stg_obj = new studiengang();
-$stg_obj->getAll(null, false);
-$lastbismeldung = date('Y-m-d',mktime(0,0,0,11,15,date('Y')-1));
-foreach ($stg_obj->result as $stg)
-{
- $stg_arr[$stg->studiengang_kz] = $stg->kuerzel;
-}
-
-echo '
-
- Check Funktion
-
-
-
-
- Mitarbeiter BIS-Funktion Check
- ';
-
-$stsem = new studiensemester();
-$stsemprev = $stsem->getPrevious();
-$stsemprevprev = $stsem->getBeforePrevious();
-
-echo "Generiere Funktionen für $stsemprevprev/$stsemprev ";
-
-$qry = "SELECT tbl_lehreinheitmitarbeiter.mitarbeiter_uid, tbl_lehrveranstaltung.studiengang_kz, sum(tbl_lehreinheitmitarbeiter.semesterstunden) as semstd
- FROM lehre.tbl_lehreinheitmitarbeiter, lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung
- WHERE
- tbl_lehreinheitmitarbeiter.lehreinheit_id=tbl_lehreinheit.lehreinheit_id AND
- tbl_lehreinheit.lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id AND
- (studiensemester_kurzbz='$stsemprev' OR studiensemester_kurzbz='$stsemprevprev') AND
- bismelden=true AND tbl_lehreinheitmitarbeiter.semesterstunden>0 GROUP BY mitarbeiter_uid, studiengang_kz";
-
-if($result = $db->db_query($qry))
-{
- $lastuid='';
- while($row = $db->db_fetch_object($result))
- {
- if($lastuid!=$row->mitarbeiter_uid)
- {
- $lastuid=$row->mitarbeiter_uid;
- //Verwendung suchen
- $person_error=false;
- $qry_verw = "SELECT * FROM bis.tbl_bisverwendung WHERE (ende>now() OR ende is null OR ende>'$lastbismeldung') AND mitarbeiter_uid='$row->mitarbeiter_uid' order by beginn DESC";
- if($result_verw = $db->db_query($qry_verw))
- {
- if($db->db_num_rows($result_verw)==0)
- {
- echo " Es wurde keine Verwendung fuer $row->mitarbeiter_uid gefunden";
- $person_error = true;
- $verwendung_not_found++;
- }
- else
- {
- if($row_verw = $db->db_fetch_object($result_verw))
- $verwendung_id = $row_verw->bisverwendung_id;
- else
- {
- echo " Fehler beim Holen der Verwendung von $row->mitarbeiter_uid";
- $person_error = true;
- }
- }
-
- if($db->db_num_rows($result_verw)>1)
- {
- echo " Es wurde mehr als eine Verwendung bei $row->mitarbeiter_uid gefunden - es wird die Verwendung $verwendung_id verwendet";
- $verwendung_multiple++;
- }
- }
- else
- {
- echo " Fehler beim Ermitteln der Verwendung ".$db->db_last_error();
- $person_error = true;
- }
- }
-
- if(!$person_error)
- {
- //SWS berechnen
- $swsneu = round($row->semstd/$wochen, 2);
-
- //Funktion fuer diesen Studiengang suchen
- $bisfunktion = new bisfunktion();
-
- if($bisfunktion->load($verwendung_id, $row->studiengang_kz))
- {
- $bisfunktion->new = false;
-
- if($bisfunktion->sws!=$swsneu)
- {
- echo " $row->mitarbeiter_uid: Funktion bei Studiengang ".$stg_arr[$row->studiengang_kz]." ($row->studiengang_kz) wird von $bisfunktion->sws auf $swsneu geaendert";
- $bisfunktion->sws = $swsneu;
- $funktion_geaendert++;
- }
- }
- else
- {
- $bisfunktion->insertamum = date('Y-m-d H:i:s');
- $bisfunktion->insertvon = $user;
- $bisfunktion->studiengang_kz = $row->studiengang_kz;
- $bisfunktion->sws = $swsneu;
- $bisfunktion->new = true;
- $bisfunktion->bisverwendung_id = $verwendung_id;
- $funktion_hinzugefuegt++;
- }
- $bisfunktion->updateamum = date('Y-m-d H:i:s');
- $bisfunktion->updatevon = $user;
-
- if(!$bisfunktion->save())
- {
- echo " $row->mitarbeiter_uid: Fehler beim Anlegen der Funktion ".$bisfunktion->errormsg;
- if($bisfunktion->new)
- $funktion_hinzugefuegt--;
- else
- $funktion_geaendert--;
- $funktion_error++;
- }
- }
- }
-
- echo ' ';
- echo 'Check fuer nicht benoetigte Funktionen ';
- $qry = "SELECT * FROM bis.tbl_bisfunktion JOIN bis.tbl_bisverwendung USING(bisverwendung_id)
- WHERE (mitarbeiter_uid, studiengang_kz) NOT IN (
- SELECT mitarbeiter_uid, studiengang_kz
- FROM lehre.tbl_lehrveranstaltung, lehre.tbl_lehreinheit, lehre.tbl_lehreinheitmitarbeiter
- WHERE tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_lehreinheit.lehrveranstaltung_id AND
- tbl_lehreinheit.lehreinheit_id=tbl_lehreinheitmitarbeiter.lehreinheit_id AND
- (tbl_lehreinheit.studiensemester_kurzbz='$stsemprev' OR tbl_lehreinheit.studiensemester_kurzbz='$stsemprevprev'))
- AND (ende>'$lastbismeldung' OR ende is null)
- ORDER BY mitarbeiter_uid, studiengang_kz";
- if($result = $db->db_query($qry))
- {
- $funktion_ohne_lehrauftrag = $db->db_num_rows($result);
-
- while($row = $db->db_fetch_object($result))
- {
- echo "$row->mitarbeiter_uid hat im Studiengang ".$stg_arr[$row->studiengang_kz]." ($row->studiengang_kz) eine Funktion ohne Lehrauftrag";
- }
- }
- echo "Loeschen der Funktionen mit: DELETE FROM bis.tbl_bisfunktion where (studiengang_kz, bisverwendung_id) in (SELECT studiengang_kz, bisverwendung_id FROM bis.tbl_bisfunktion JOIN bis.tbl_bisverwendung USING(bisverwendung_id)
- WHERE (mitarbeiter_uid, studiengang_kz) NOT IN (
- SELECT mitarbeiter_uid, studiengang_kz
- FROM lehre.tbl_lehrveranstaltung, lehre.tbl_lehreinheit, lehre.tbl_lehreinheitmitarbeiter
- WHERE tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_lehreinheit.lehrveranstaltung_id AND
- tbl_lehreinheit.lehreinheit_id=tbl_lehreinheitmitarbeiter.lehreinheit_id AND
- (tbl_lehreinheit.studiensemester_kurzbz='$stsemprevprev' OR tbl_lehreinheit.studiensemester_kurzbz='$stsemprev'))
- AND (ende>'$lastbismeldung' OR ende is null))";
- echo ' ';
- echo 'Uebersicht ';
- echo '';
- echo "Nicht vorhandene Verwendungen $verwendung_not_found ";
- echo "Mehrere moegliche Verwendungen vorhanden $verwendung_multiple ";
- echo "Fehler bei Funktionen $funktion_error ";
- echo "Funktionen ohne Lehrauftrag $funktion_ohne_lehrauftrag ";
- echo " ";
- echo "Funktionen hinzugefuegt $funktion_hinzugefuegt ";
- echo "Funktionen geaendert $funktion_geaendert ";
- echo '
';
-}
+
+ * Andreas Oesterreicher < andreas.oesterreicher@technikum-wien.at >
+ * Rudolf Hangl < rudolf.hangl@technikum-wien.at >
+ * Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at >
+ */
+
+ require_once('../../config/vilesci.config.inc.php');
+ require('../../include/studiensemester.class.php');
+ require('../../include/datum.class.php');
+
+ if (!$db = new basis_db())
+ die('Es konnte keine Verbindung zum Server aufgebaut werden.');
+
+$error_log='';
+$error_log1='';
+$error_log_all="";
+$stgart='';
+$fehler='';
+$maxsemester=0;
+$v='';
+$studiensemester=new studiensemester();
+$ssem=$studiensemester->getaktorNext();
+$psem=$studiensemester->getPrevious();
+$zaehl=0;
+$erhalter='';
+$stgart='';
+$orgform='';
+$status='';
+$datei='';
+$aktstatus='';
+$aktstatus_datum='';
+$mob='';
+$gast='';
+$avon='';
+$abis='';
+$zweck='';
+$bewerberM=array();
+$bewerberW=array();
+$bsem=array();
+$stsem=array();
+$usem=array();
+$asem=array();
+$absem=array();
+$iosem=array();
+$bsema=array();
+$stsema=array();
+$usema=array();
+$asema=array();
+$absema=array();
+$iosema=array();
+$bewerbercount=0;
+$bewerbercountbb=0;
+$bewerbercountvz=0;
+$bewerberM1=array();
+$bewerberW1=array();
+$bsem1=array();
+$stsem1=array();
+$bewerberM2=array();
+$bewerberW2=array();
+$bsem2=array();
+$stsem2=array();
+$datei1='';
+$datei2='';
+$stgorg="";
+$tabelle='';
+$stlist='';
+$bwlist='';
+$plausi='';
+$storgfor='';
+$sponsion='';
+
+//Beginn- und Endedatum des aktuellen Semesters
+$qry="SET client_encoding TO Unicode;SELECT * FROM public.tbl_studiensemester WHERE studiensemester_kurzbz='".$ssem."';";
+if($result = $db->db_query($qry))
+{
+ if($row = $db->db_fetch_object($result))
+ {
+ $beginn=$row->start;
+ $ende=$row->ende;
+ }
+}
+//Ermittlung aktuelles und letztes BIS-Meldedatum
+if(mb_strstr($ssem,"WS"))
+{
+ $bisdatum=date("Y-m-d", mktime(0, 0, 0, 11, 15, date("Y")));
+ $bisprevious=date("Y-m-d", mktime(0, 0, 0, 04, 15, date("Y")));
+}
+elseif(mb_strstr($ssem,"SS"))
+{
+ $bisdatum=date("Y-m-d", mktime(0, 0, 0, 04, 15, date("Y")));
+ $bisprevious=date("Y-m-d", mktime(0, 0, 0, 11, 15, date("Y")-1));
+}
+else
+{
+ echo "Ungültiges Semester!";
+}
+//ausgewählter Lehrgang
+if(isset($_GET['stg_kz']))
+{
+ if($_GET['stg_kz']<0)
+ {
+ $stg_kz=$_GET['stg_kz'];
+ }
+ else
+ {
+ echo "Es wurde kein Lehrgang ausgewählt! ";
+ }
+}
+else
+{
+ $stg_kz=228;
+ //echo "Es wurde kein Lehrgang ausgewählt! ";
+ //exit;
+}
+function myaddslashes($var)
+{
+ return ($var!=''?"'".addslashes($var)."'":'null');
+}
+//plausicheck
+if(isset($_GET['plausi']))
+{
+ $plausi=$_GET['plausi'];
+}
+$datumobj=new datum();
+
+//Lehrgangsdaten auslesen
+$qry="SELECT * FROM public.tbl_studiengang WHERE studiengang_kz='".$stg_kz."'";
+if($result = $db->db_query($qry))
+{
+ if($row = $db->db_fetch_object($result))
+ {
+ $stgart=$row->typ;
+ $stgemail=$row->email;
+ if(strlen(trim($row->erhalter_kz))==1)
+ {
+ $erhalter='00'.trim($row->erhalter_kz);
+ }
+ elseif(strlen(trim($row->erhalter_kz))==2)
+ {
+ $erhalter='0'.trim($row->erhalter_kz);
+ }
+ else
+ {
+ $erhalter=$row->erhalter_kz;
+ }
+ if($row->typ=='b')
+ {
+ $stgart=1;
+ }
+ elseif($row->typ=='m')
+ {
+ $stgart=2;
+ }
+ elseif($row->typ=='d')
+ {
+ $stgart=3;
+ }
+ else
+ {
+ echo "Es wurde keine Lehrgangart ausgewählt! ";
+ exit;
+ }
+ }
+}
+
+//Hauptselect
+$qry="SELECT DISTINCT ON(student_uid, nachname, vorname) *, public.tbl_person.person_id AS pers_id, to_char(gebdatum, 'ddmmyy') AS vdat
+ FROM public.tbl_student
+ JOIN public.tbl_benutzer ON(student_uid=uid)
+ JOIN public.tbl_person USING (person_id)
+ JOIN public.tbl_prestudent USING (prestudent_id)
+ JOIN public.tbl_prestudentstatus ON(tbl_prestudent.prestudent_id=tbl_prestudentstatus.prestudent_id)
+ WHERE bismelden IS TRUE
+ AND tbl_student.studiengang_kz='".$stg_kz."'
+ AND (((tbl_prestudentstatus.studiensemester_kurzbz='".$ssem."') AND (tbl_prestudentstatus.datum<='".$bisdatum."')
+ AND (status_kurzbz='Student' OR status_kurzbz='Outgoing'
+ OR status_kurzbz='Praktikant' OR status_kurzbz='Diplomand' OR status_kurzbz='Absolvent'
+ OR status_kurzbz='Abbrecher' OR status_kurzbz='Unterbrecher'))
+ OR ((tbl_prestudentstatus.studiensemester_kurzbz='".$psem."') AND (status_kurzbz='Absolvent'
+ OR status_kurzbz='Abbrecher') AND tbl_prestudentstatus.datum>'".$bisprevious."')
+ OR (status_kurzbz='Incoming' AND student_uid IN (SELECT student_uid FROM bis.tbl_bisio WHERE (tbl_bisio.bis>='".$bisprevious."')
+ OR (tbl_bisio.von<'".$bisdatum."' AND (tbl_bisio.bis>='".$bisdatum."' OR tbl_bisio.bis IS NULL))
+ )))
+ ORDER BY student_uid, nachname, vorname
+ ";
+
+
+if($result = $db->db_query($qry))
+{
+
+ $datei.="
+
+ ".$erhalter."
+ ".date("dmY", $datumobj->mktime_fromdate($bisdatum))."
+
+
+ ".($stg_kz*(-1))."
+ ".$stgart." ";
+ while($row = $db->db_fetch_object($result))
+ {
+ //Plausichecks
+ $qryadr="SELECT * from public.tbl_adresse WHERE heimatadresse IS TRUE AND person_id='".$row->pers_id."';";
+ $results=$db->db_query($qryadr);
+
+ if($anz=$db->db_num_rows($results)!=1)
+ {
+ $error_log1="Es sind ".$anz." Heimatadressen eingetragen\n";
+ }
+ if($rowadr=$db->db_fetch_object($results))
+ {
+ $plz=$rowadr->plz;
+ $gemeinde=$rowadr->gemeinde;
+ $strasse=$rowadr->strasse;
+ $nation=$rowadr->nation;
+ }
+ else
+ {
+ $plz='';
+ $gemeinde='';
+ $strasse='';
+ $nation='';
+ }
+ if($row->gebdatum<'1920-01-01' OR $row->gebdatum==null OR $row->gebdatum=='')
+ {
+ $error_log.=(!empty($error_log)?', ':'')."Geburtsdatum ('".$row->gebdatum."')";
+ }
+ if($row->geschlecht!='m' && $row->geschlecht!='w')
+ {
+ $error_log.=(!empty($error_log)?', ':'')."Geschlecht ('".$row->geschlecht."')";
+ }
+ if($row->vorname=='' || $row->vorname==null)
+ {
+ $error_log.=(!empty($error_log)?', ':'')."Vorname ('".$row->vorname."')";
+ }
+ if($row->nachname=='' || $row->nachname==null)
+ {
+ $error_log.=(!empty($error_log)?', ':'')."Nachname ('".$row->nachname."')";
+ }
+ //SVNR muß 10-stellig sein
+ if($row->svnr!='' && $row->svnr!=null && mb_strlen(trim($row->svnr))!=10)
+ {
+ $error_log.=(!empty($error_log)?', ':'')."SVNR ('".trim($row->svnr)."') ist nicht 10 Zeichen lang";
+ }
+ //Ersatzkennzeichen muß 10-stellig sein
+ if($row->ersatzkennzeichen!='' && $row->ersatzkennzeichen!=null && mb_strlen(trim($row->ersatzkennzeichen))!=10)
+ {
+ $error_log.=(!empty($error_log)?', ':'')."Ersatzkennzeichen ('".trim($row->ersatzkennzeichen)."') ist nicht 10 Zeichen lang";
+ }
+ //Vergleich der letzten 6 Stellen der SVNR mit Geburtsdatum - außer bei 01.01. und 01.07.
+ if($row->svnr!='' && $row->svnr!=null && substr($row->svnr,4,6)!=$row->vdat && substr($row->vdat,0,4)!='0101' && substr($row->vdat,0,4)!='0107')
+ {
+ $error_log.=(!empty($error_log)?', ':'')."SVNR ('".$row->svnr."') enthält Geburtsdatum (".$row->gebdatum.") nicht";
+ }
+ //Vergleich der letzten 6 Stellen des Ersatzkennzeichen mit Geburtsdatum
+ if($row->ersatzkennzeichen!='' && $row->ersatzkennzeichen!=null && substr($row->ersatzkennzeichen,4,6)!=$row->vdat)
+ {
+ $error_log.=(!empty($error_log)?', ':'')."Ersatzkennzeichen ('".$row->ersatzkennzeichen."') enthält Geburtsdatum (".$row->gebdatum.") nicht";
+ }
+ if(($row->svnr=='' || $row->svnr==null)&&($row->ersatzkennzeichen=='' || $row->ersatzkennzeichen==null))
+ {
+ $error_log.=(!empty($error_log)?', ':'')."SVNR ('".$row->svnr."') bzw. ErsKz ('".$row->ersatzkennzeichen."') fehlt";
+ }
+ if($row->staatsbuergerschaft=='' || $row->staatsbuergerschaft==null)
+ {
+ $error_log.=(!empty($error_log)?', ':'')."Staatsbürgerschaft ('".$row->staatsbuergerschaft."')";
+ }
+ if($plz=='' || $plz==null)
+ {
+ $error_log.=(!empty($error_log)?', ':'')."Heimat-PLZ ('".$plz."')";
+ }
+ if($gemeinde=='' || $gemeinde==null)
+ {
+ $error_log.=(!empty($error_log)?', ':'')."Heimat-Gemeinde ('".$gemeinde."')";
+ }
+ if($strasse=='' || $strasse==null)
+ {
+ $error_log.=(!empty($error_log)?', ':'')."Heimat-Strasse ('".$strasse."')";
+ }
+ if($nation=='' || $nation==null)
+ {
+
+ $error_log.=(!empty($error_log)?', ':'')."Heimat-Nation ('".$nation."')";
+ }
+ if($row->zgv_code=='' || $row->zgv_code==null)
+ {
+ $error_log.=(!empty($error_log)?', ':'')."ZugangCode ('".$row->zgv_code."')";
+ }
+ if($row->zgvdatum=='' || $row->zgvdatum==null)
+ {
+ $error_log.=(!empty($error_log)?', ':'')."ZugangDatum ('".$row->zgvdatum."')";
+ }
+ else
+ {
+ if($row->zgvdatum>date('Y-m-d'))
+ {
+ $error_log.=(!empty($error_log)?', ':'')."ZugangDatum liegt in der Zukunft ('".$row->zgvdatum."')";
+ }
+ if($row->zgvdatum<$row->gebdatum)
+ {
+ $error_log.=(!empty($error_log)?', ':'')."ZugangDatum ('".$row->zgvdatum."') kleiner als Geburtsdatum ('".$row->gebdatum."')";
+ }
+ }
+ if($stgart==2)
+ {
+ if($row->zgvmas_code=='' || $row->zgvmas_code==null)
+ {
+ $error_log.=(!empty($error_log)?', ':'')."ZugangMagStgCode ('".$row->zgvmas_code."')";
+ }
+ if($row->zgvmadatum=='' || $row->zgvmadatum==null)
+ {
+ $error_log.=(!empty($error_log)?', ':'')."ZugangMagStgDatum ('".$row->zgvmadatum."')";
+ }
+ else
+ {
+ if($row->zgvmadatum>date("Y-m-d"))
+ {
+ $error_log.=(!empty($error_log)?', ':'')."ZugangMagStgDatum liegt in der Zukunft ('".$row->zgvmadatum."')";
+ }
+ if($row->zgvmadatum<$row->zgvdatum)
+ {
+ $error_log.=(!empty($error_log)?', ':'')."ZugangMagStgDatum ('".$row->zgvmadatum."') kleiner als Zugangdatum ('".$row->zgvdatum."')";
+ }
+ if($row->zgvmadatum<$row->gebdatum)
+ {
+ $error_log.=(!empty($error_log)?', ':'')."ZugangMagStgDatum ('".$row->zgvmadatum."') kleiner als Geburtsdatum ('".$row->gebdatum."')";
+ }
+ }
+ }
+ //Bestimmen der aktuellen Prestudentrolle (Status) und des akt. Ausbildungssemesters des Studenten
+ $qrystatus="SELECT * FROM public.tbl_prestudentstatus
+ WHERE prestudent_id='".$row->prestudent_id."' AND studiensemester_kurzbz='".$ssem."'
+ AND (tbl_prestudentstatus.datum<'".$bisdatum."')
+ ORDER BY datum desc, insertamum desc, ext_id desc;";
+ if($resultstatus = $db->db_query($qrystatus))
+ {
+ if($db->db_num_rows($resultstatus)>0)
+ {
+ if($rowstatus = $db->db_fetch_object($resultstatus))
+ {
+ $qry1="SELECT count(*) AS dipl FROM public.tbl_prestudentstatus WHERE prestudent_id='".$row->prestudent_id."' AND status_kurzbz='Diplomand'";
+ if($result1 = $db->db_query($qry1))
+ {
+ if($row1 = $db->db_fetch_object($result1))
+ {
+ $sem=$rowstatus->ausbildungssemester;
+ if($sem>$maxsemester)
+ {
+ $sem=$maxsemester;
+ }
+ if($row1->dipl>1)
+ {
+ $sem=50;
+ }
+ if($row1->dipl>3)
+ {
+ $sem=60;
+ }
+ }
+ }
+ if($rowstatus->status_kurzbz=="Student" || $rowstatus->status_kurzbz=="Outgoing"
+ || $rowstatus->status_kurzbz=="Incoming" || $rowstatus->status_kurzbz=='Praktikant'
+ || $rowstatus->status_kurzbz=="Diplomand")
+ {
+ $status=1;
+ }
+ else if($rowstatus->status_kurzbz=="Unterbrecher" )
+ {
+ $status=2;
+ }
+ else if($rowstatus->status_kurzbz=="Absolvent" )
+ {
+ $status=3;
+ }
+ else if($rowstatus->status_kurzbz=="Abbrecher" )
+ {
+ $status=4;
+ }
+ else
+ {
+ $error_log='';
+ $error_log1='';
+ continue;
+ }
+ $aktstatus=$rowstatus->status_kurzbz;
+ $aktstatus_datum=$rowstatus->datum;
+ $storgform=$rowstatus->orgform_kurzbz;
+ }
+ }
+ else
+ {
+ $qrystatus="SELECT * FROM public.tbl_prestudentstatus WHERE prestudent_id='".$row->prestudent_id."' AND studiensemester_kurzbz='".$psem."' AND (tbl_prestudentstatus.datum<'".$bisdatum."') ORDER BY datum desc, insertamum desc, ext_id desc;";
+ if($resultstatus = $db->db_query($qrystatus))
+ {
+ if($rowstatus = $db->db_fetch_object($resultstatus))
+ {
+ $qry1="SELECT count(*) AS dipl FROM public.tbl_prestudentstatus WHERE prestudent_id='".$row->prestudent_id."' AND status_kurzbz='Diplomand'";
+ if($result1 = $db->db_query($qry1))
+ {
+ if($row1 = $db->db_fetch_object($result1))
+ {
+ $sem=$rowstatus->ausbildungssemester;
+ if($sem>$maxsemester)
+ {
+ $sem=$maxsemester;
+ }
+ if($row1->dipl>1)
+ {
+ $sem=50;
+ }
+ if($row1->dipl>3)
+ {
+ $sem=60;
+ }
+ }
+ }
+ if($rowstatus->status_kurzbz=="Incoming")
+ {
+ $status=1;
+ }
+ else if($rowstatus->status_kurzbz=="Absolvent" )
+ {
+ $status=3;
+ }
+ else if($rowstatus->status_kurzbz=="Abbrecher" )
+ {
+ $status=4;
+ }
+ else
+ {
+ $error_log='';
+ $error_log1='';
+ continue;
+ }
+ $aktstatus=$rowstatus->status_kurzbz;
+ $aktstatus_datum=$rowstatus->datum;
+ //$storgform=$rowstatus->orgform_kurzbz;
+ }
+ }
+ }
+ }
+ //bei Absolventen das Beendigungsdatum (Sponsion oder Abschlussprüfung) überprüfen
+
+ if($aktstatus=='Absolvent')
+ {
+ $qry_ap="SELECT * FROM lehre.tbl_abschlusspruefung WHERE student_uid='".$row->student_uid."' AND abschlussbeurteilung_kurzbz!='nicht' AND abschlussbeurteilung_kurzbz IS NOT NULL";
+ if($result_ap = $db->db_query($qry_ap))
+ {
+ $ap=0;
+ while($row_ap = $db->db_fetch_object($result_ap))
+ {
+ if($row_ap->datum=='' || $row_ap->datum==null)
+ {
+ $error_log.=(!empty($error_log)?', ':'')."Datum der Abschlussprüfung ('".$row_ap->datum."')";
+ }
+ if($row_ap->sponsion=='' || $row_ap->sponsion==null)
+ {
+ $error_log.=(!empty($error_log)?', ':'')."Datum der Sponsion ('".$row_ap->sponsion."')";
+ }
+ $ap++;
+ $sponsion=$row_ap->sponsion;
+ }
+ if($ap!=1)
+ {
+ $error_log.=(!empty($error_log)?', ':'').$ap." bestandene Abschlussprüfungen";
+ }
+ }
+ }
+ if($error_log!='' OR $error_log1!='')
+ {
+ //Ausgabe der fehlenden Daten
+ $v.="Bei Student (UID, Vorname, Nachname) '".$row->student_uid."', '".$row->nachname."', '".$row->vorname."' ($row->status_kurzbz): \n";
+ if($error_log!='')
+ {
+ $v.=" Fehler: ".$error_log."\n";
+ }
+ if($error_log1!='')
+ {
+ $v.=" ".$error_log1;
+ }
+ $zaehl++;
+ $v.="\n";
+ $error_log='';
+ $error_log1='';
+ continue;
+ }
+ else
+ {
+ //Erstellung der XML-Datei
+ $datei.="
+
+ ".trim($row->matrikelnr)."
+ ".date("dmY", $datumobj->mktime_fromdate($row->gebdatum))."
+ ".strtoupper($row->geschlecht)." ";
+ if(($row->svnr!='')&&($row->ersatzkennzeichen!=''))
+ {
+ /*$datei.="
+ ".$row->vorname."
+ ".$row->nachname." ";*/
+ $datei.="
+ ".$row->svnr." ";
+ $datei.="
+ ".$row->ersatzkennzeichen." ";
+ }
+ else
+ {
+ if($row->svnr!='')
+ {
+ $datei.="
+ ".$row->svnr." ";
+ }
+ if($row->ersatzkennzeichen!='')
+ {
+ /*$datei.="
+ ".$row->vorname."
+ ".$row->nachname." ";*/
+ $datei.="
+ ".$row->ersatzkennzeichen." ";
+ }
+ }
+ $datei.="
+ ".$row->staatsbuergerschaft."
+ ".$plz."
+ ".$gemeinde."
+
+ ".$nation."
+ ".$row->zgv_code." ";
+ if($row->zgvdatum!=null)
+ {
+ $datei.="
+ ".date("dmY", $datumobj->mktime_fromdate($row->zgvdatum))." ";
+ }
+ else
+ {
+ $datei.="
+ ";
+ }
+ //!!!stgart für Lehrgang überprüfen!!!
+ if($stgart==2)
+ {
+ $datei.="
+ ".$row->zgvmas_code." ";
+ if($row->zgvmadatum!=null)
+ {
+ $datei.="
+ ".date("dmY", $datumobj->mktime_fromdate($row->zgvmadatum))." ";
+ }
+ else
+ {
+ $datei.="
+ ";
+ }
+ }
+ $qryad="SELECT * FROM public.tbl_prestudentstatus WHERE prestudent_id='".$row->prestudent_id."' AND (status_kurzbz='Student' OR status_kurzbz='Unterbrecher') AND (tbl_prestudentstatus.datum<'".$bisdatum."') ORDER BY datum asc;";
+ if($resultad = $db->db_query($qryad))
+ {
+ if($rowad = $db->db_fetch_object($resultad))
+ {
+ $datei.="
+ ".date("dmY", $datumobj->mktime_fromdate($rowad->datum))." ";
+ }
+ }
+ if($aktstatus=='Absolvent')
+ {
+ $datei.="
+ ".date("dmY", $datumobj->mktime_fromdate($aktstatus_datum))." ";
+ }
+ $datei.="
+ ".$status."
+ ";
+ }
+ }
+ $datei.="
+
+
+ ";
+ echo ' BIS - Lehrgangsmeldung - ('.$stg_kz.')
+
+
+ ';
+ echo "BIS - Studentendaten werden überprüft! Lehrgang: ".$stg_kz." \n";
+ if(strlen(trim($v))>0)
+ {
+ echo "Nicht plausible BIS-Daten (für Meldung ".$ssem."): ";
+ echo nl2br($v."\n\n");
+ }
+ $ddd='bisdaten/bismeldung_'.$ssem.'_Lehrgang'.$stg_kz.'.xml';
+ if(strtoupper($plausi)!='J')
+ {
+ $dateiausgabe=fopen($ddd,'w');
+ fwrite($dateiausgabe,$datei);
+ fclose($dateiausgabe);
+ }
+ if(file_exists($ddd))
+ {
+ echo "XML-Datei für BIS-Meldung Lehrgang ".$stg_kz." ";
+ }
+
+ //echo $datei;
+}
\ No newline at end of file
diff --git a/vilesci/bis/lehrgangsmeldung.php b/vilesci/bis/lehrgangsmeldung.php
new file mode 100644
index 000000000..6478ab125
--- /dev/null
+++ b/vilesci/bis/lehrgangsmeldung.php
@@ -0,0 +1,618 @@
+
+ * Andreas Oesterreicher < andreas.oesterreicher@technikum-wien.at >
+ * Rudolf Hangl < rudolf.hangl@technikum-wien.at >
+ * Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at >
+ */
+
+ require_once('../../config/vilesci.config.inc.php');
+ require_once('../../include/studiensemester.class.php');
+ require_once('../../include/datum.class.php');
+
+ if (!$db = new basis_db())
+ die('Es konnte keine Verbindung zum Server aufgebaut werden.');
+
+$error_log='';
+$error_log1='';
+$error_log_all="";
+$stgart='';
+$fehler='';
+$maxsemester=0;
+$v='';
+$studiensemester=new studiensemester();
+$ssem=$studiensemester->getaktorNext();
+$psem=$studiensemester->getPrevious();
+$zaehl=0;
+$erhalter='';
+$stgart='';
+$orgform='';
+$status='';
+$datei='';
+$aktstatus='';
+$aktstatus_datum='';
+$mob='';
+$gast='';
+$avon='';
+$abis='';
+$zweck='';
+$bewerberM=array();
+$bewerberW=array();
+$bsem=array();
+$stsem=array();
+$usem=array();
+$asem=array();
+$absem=array();
+$iosem=array();
+$bsema=array();
+$stsema=array();
+$usema=array();
+$asema=array();
+$absema=array();
+$iosema=array();
+$bewerbercount=0;
+$bewerbercountbb=0;
+$bewerbercountvz=0;
+$bewerberM1=array();
+$bewerberW1=array();
+$bsem1=array();
+$stsem1=array();
+$bewerberM2=array();
+$bewerberW2=array();
+$bsem2=array();
+$stsem2=array();
+$datei1='';
+$datei2='';
+$stgorg="";
+$tabelle='';
+$stlist='';
+$bwlist='';
+$plausi='';
+$storgfor='';
+$sponsion='';
+
+//Beginn- und Endedatum des aktuellen Semesters
+$qry="SET client_encoding TO Unicode;SELECT * FROM public.tbl_studiensemester WHERE studiensemester_kurzbz='".$ssem."';";
+if($result = $db->db_query($qry))
+{
+ if($row = $db->db_fetch_object($result))
+ {
+ $beginn=$row->start;
+ $ende=$row->ende;
+ }
+}
+//Ermittlung aktuelles und letztes BIS-Meldedatum
+if(mb_strstr($ssem,"WS"))
+{
+ $bisdatum=date("Y-m-d", mktime(0, 0, 0, 11, 15, date("Y")));
+ $bisprevious=date("Y-m-d", mktime(0, 0, 0, 04, 15, date("Y")));
+}
+elseif(mb_strstr($ssem,"SS"))
+{
+ $bisdatum=date("Y-m-d", mktime(0, 0, 0, 04, 15, date("Y")));
+ $bisprevious=date("Y-m-d", mktime(0, 0, 0, 11, 15, date("Y")-1));
+}
+else
+{
+ echo "Ungültiges Semester!";
+}
+//ausgewählter Lehrgang
+if(isset($_GET['stg_kz']))
+{
+ if($_GET['stg_kz']<0)
+ {
+ $stg_kz=$_GET['stg_kz'];
+ }
+ else
+ {
+ echo "Es wurde kein Lehrgang ausgewählt! ";
+ }
+}
+else
+{
+ $stg_kz=228;
+ //echo "Es wurde kein Lehrgang ausgewählt! ";
+ //exit;
+}
+function myaddslashes($var)
+{
+ return ($var!=''?"'".addslashes($var)."'":'null');
+}
+//plausicheck
+if(isset($_GET['plausi']))
+{
+ $plausi=$_GET['plausi'];
+}
+$datumobj=new datum();
+
+//Lehrgangsdaten auslesen
+$qry="SELECT * FROM public.tbl_studiengang WHERE studiengang_kz='".$stg_kz."'";
+if($result = $db->db_query($qry))
+{
+ if($row = $db->db_fetch_object($result))
+ {
+ $stgart=$row->typ;
+ $stgemail=$row->email;
+ if(strlen(trim($row->erhalter_kz))==1)
+ {
+ $erhalter='00'.trim($row->erhalter_kz);
+ }
+ elseif(strlen(trim($row->erhalter_kz))==2)
+ {
+ $erhalter='0'.trim($row->erhalter_kz);
+ }
+ else
+ {
+ $erhalter=$row->erhalter_kz;
+ }
+ if($row->typ=='b')
+ {
+ $stgart=1;
+ }
+ elseif($row->typ=='m')
+ {
+ $stgart=2;
+ }
+ elseif($row->typ=='d')
+ {
+ $stgart=3;
+ }
+ else
+ {
+ echo "Es wurde keine Lehrgangart ausgewählt! ";
+ exit;
+ }
+ }
+}
+
+//Hauptselect
+$qry="SELECT DISTINCT ON(student_uid, nachname, vorname) *, public.tbl_person.person_id AS pers_id, to_char(gebdatum, 'ddmmyy') AS vdat
+ FROM public.tbl_student
+ JOIN public.tbl_benutzer ON(student_uid=uid)
+ JOIN public.tbl_person USING (person_id)
+ JOIN public.tbl_prestudent USING (prestudent_id)
+ JOIN public.tbl_prestudentstatus ON(tbl_prestudent.prestudent_id=tbl_prestudentstatus.prestudent_id)
+ WHERE bismelden IS TRUE
+ AND tbl_student.studiengang_kz='".$stg_kz."'
+ AND (((tbl_prestudentstatus.studiensemester_kurzbz='".$ssem."') AND (tbl_prestudentstatus.datum<='".$bisdatum."')
+ AND (status_kurzbz='Student' OR status_kurzbz='Outgoing'
+ OR status_kurzbz='Praktikant' OR status_kurzbz='Diplomand' OR status_kurzbz='Absolvent'
+ OR status_kurzbz='Abbrecher' OR status_kurzbz='Unterbrecher'))
+ OR ((tbl_prestudentstatus.studiensemester_kurzbz='".$psem."') AND (status_kurzbz='Absolvent'
+ OR status_kurzbz='Abbrecher') AND tbl_prestudentstatus.datum>'".$bisprevious."')
+ OR (status_kurzbz='Incoming' AND student_uid IN (SELECT student_uid FROM bis.tbl_bisio WHERE (tbl_bisio.bis>='".$bisprevious."')
+ OR (tbl_bisio.von<'".$bisdatum."' AND (tbl_bisio.bis>='".$bisdatum."' OR tbl_bisio.bis IS NULL))
+ )))
+ ORDER BY student_uid, nachname, vorname
+ ";
+
+if($result = $db->db_query($qry))
+{
+
+ $datei.="
+
+ ".$erhalter."
+ ".date("dmY", $datumobj->mktime_fromdate($bisdatum))."
+
+
+ ".($stg_kz*(-1))."
+ ".$stgart." ";
+ while($row = $db->db_fetch_object($result))
+ {
+ //Plausichecks
+ $qryadr="SELECT * from public.tbl_adresse WHERE heimatadresse IS TRUE AND person_id='".$row->pers_id."';";
+ $results=$db->db_query($qryadr);
+
+ if($anz=$db->db_num_rows($results)!=1)
+ {
+ $error_log1="Es sind ".$anz." Heimatadressen eingetragen\n";
+ }
+ if($rowadr=$db->db_fetch_object($results))
+ {
+ $plz=$rowadr->plz;
+ $gemeinde=$rowadr->gemeinde;
+ $strasse=$rowadr->strasse;
+ $nation=$rowadr->nation;
+ }
+ else
+ {
+ $plz='';
+ $gemeinde='';
+ $strasse='';
+ $nation='';
+ }
+ if($row->gebdatum<'1920-01-01' OR $row->gebdatum==null OR $row->gebdatum=='')
+ {
+ $error_log.=(!empty($error_log)?', ':'')."Geburtsdatum ('".$row->gebdatum."')";
+ }
+ if($row->geschlecht!='m' && $row->geschlecht!='w')
+ {
+ $error_log.=(!empty($error_log)?', ':'')."Geschlecht ('".$row->geschlecht."')";
+ }
+ if($row->vorname=='' || $row->vorname==null)
+ {
+ $error_log.=(!empty($error_log)?', ':'')."Vorname ('".$row->vorname."')";
+ }
+ if($row->nachname=='' || $row->nachname==null)
+ {
+ $error_log.=(!empty($error_log)?', ':'')."Nachname ('".$row->nachname."')";
+ }
+ //SVNR muß 10-stellig sein
+ if($row->svnr!='' && $row->svnr!=null && mb_strlen(trim($row->svnr))!=10)
+ {
+ $error_log.=(!empty($error_log)?', ':'')."SVNR ('".trim($row->svnr)."') ist nicht 10 Zeichen lang";
+ }
+ //Ersatzkennzeichen muß 10-stellig sein
+ if($row->ersatzkennzeichen!='' && $row->ersatzkennzeichen!=null && mb_strlen(trim($row->ersatzkennzeichen))!=10)
+ {
+ $error_log.=(!empty($error_log)?', ':'')."Ersatzkennzeichen ('".trim($row->ersatzkennzeichen)."') ist nicht 10 Zeichen lang";
+ }
+ //Vergleich der letzten 6 Stellen der SVNR mit Geburtsdatum - außer bei 01.01. und 01.07.
+ if($row->svnr!='' && $row->svnr!=null && substr($row->svnr,4,6)!=$row->vdat && substr($row->vdat,0,4)!='0101' && substr($row->vdat,0,4)!='0107')
+ {
+ $error_log.=(!empty($error_log)?', ':'')."SVNR ('".$row->svnr."') enthält Geburtsdatum (".$row->gebdatum.") nicht";
+ }
+ //Vergleich der letzten 6 Stellen des Ersatzkennzeichen mit Geburtsdatum
+ if($row->ersatzkennzeichen!='' && $row->ersatzkennzeichen!=null && substr($row->ersatzkennzeichen,4,6)!=$row->vdat)
+ {
+ $error_log.=(!empty($error_log)?', ':'')."Ersatzkennzeichen ('".$row->ersatzkennzeichen."') enthält Geburtsdatum (".$row->gebdatum.") nicht";
+ }
+ if(($row->svnr=='' || $row->svnr==null)&&($row->ersatzkennzeichen=='' || $row->ersatzkennzeichen==null))
+ {
+ $error_log.=(!empty($error_log)?', ':'')."SVNR ('".$row->svnr."') bzw. ErsKz ('".$row->ersatzkennzeichen."') fehlt";
+ }
+ if($row->staatsbuergerschaft=='' || $row->staatsbuergerschaft==null)
+ {
+ $error_log.=(!empty($error_log)?', ':'')."Staatsbürgerschaft ('".$row->staatsbuergerschaft."')";
+ }
+ if($plz=='' || $plz==null)
+ {
+ $error_log.=(!empty($error_log)?', ':'')."Heimat-PLZ ('".$plz."')";
+ }
+ if($gemeinde=='' || $gemeinde==null)
+ {
+ $error_log.=(!empty($error_log)?', ':'')."Heimat-Gemeinde ('".$gemeinde."')";
+ }
+ if($strasse=='' || $strasse==null)
+ {
+ $error_log.=(!empty($error_log)?', ':'')."Heimat-Strasse ('".$strasse."')";
+ }
+ if($nation=='' || $nation==null)
+ {
+
+ $error_log.=(!empty($error_log)?', ':'')."Heimat-Nation ('".$nation."')";
+ }
+ if($row->zgv_code=='' || $row->zgv_code==null)
+ {
+ $error_log.=(!empty($error_log)?', ':'')."ZugangCode ('".$row->zgv_code."')";
+ }
+ if($row->zgvdatum=='' || $row->zgvdatum==null)
+ {
+ $error_log.=(!empty($error_log)?', ':'')."ZugangDatum ('".$row->zgvdatum."')";
+ }
+ else
+ {
+ if($row->zgvdatum>date('Y-m-d'))
+ {
+ $error_log.=(!empty($error_log)?', ':'')."ZugangDatum liegt in der Zukunft ('".$row->zgvdatum."')";
+ }
+ if($row->zgvdatum<$row->gebdatum)
+ {
+ $error_log.=(!empty($error_log)?', ':'')."ZugangDatum ('".$row->zgvdatum."') kleiner als Geburtsdatum ('".$row->gebdatum."')";
+ }
+ }
+ if($stgart==2)
+ {
+ if($row->zgvmas_code=='' || $row->zgvmas_code==null)
+ {
+ $error_log.=(!empty($error_log)?', ':'')."ZugangMagStgCode ('".$row->zgvmas_code."')";
+ }
+ if($row->zgvmadatum=='' || $row->zgvmadatum==null)
+ {
+ $error_log.=(!empty($error_log)?', ':'')."ZugangMagStgDatum ('".$row->zgvmadatum."')";
+ }
+ else
+ {
+ if($row->zgvmadatum>date("Y-m-d"))
+ {
+ $error_log.=(!empty($error_log)?', ':'')."ZugangMagStgDatum liegt in der Zukunft ('".$row->zgvmadatum."')";
+ }
+ if($row->zgvmadatum<$row->zgvdatum)
+ {
+ $error_log.=(!empty($error_log)?', ':'')."ZugangMagStgDatum ('".$row->zgvmadatum."') kleiner als Zugangdatum ('".$row->zgvdatum."')";
+ }
+ if($row->zgvmadatum<$row->gebdatum)
+ {
+ $error_log.=(!empty($error_log)?', ':'')."ZugangMagStgDatum ('".$row->zgvmadatum."') kleiner als Geburtsdatum ('".$row->gebdatum."')";
+ }
+ }
+ }
+ //Bestimmen der aktuellen Prestudentrolle (Status) und des akt. Ausbildungssemesters des Studenten
+ $qrystatus="SELECT * FROM public.tbl_prestudentstatus
+ WHERE prestudent_id='".$row->prestudent_id."' AND studiensemester_kurzbz='".$ssem."'
+ AND (tbl_prestudentstatus.datum<'".$bisdatum."')
+ ORDER BY datum desc, insertamum desc, ext_id desc;";
+ if($resultstatus = $db->db_query($qrystatus))
+ {
+ if($db->db_num_rows($resultstatus)>0)
+ {
+ if($rowstatus = $db->db_fetch_object($resultstatus))
+ {
+ $qry1="SELECT count(*) AS dipl FROM public.tbl_prestudentstatus WHERE prestudent_id='".$row->prestudent_id."' AND status_kurzbz='Diplomand'";
+ if($result1 = $db->db_query($qry1))
+ {
+ if($row1 = $db->db_fetch_object($result1))
+ {
+ $sem=$rowstatus->ausbildungssemester;
+ if($sem>$maxsemester)
+ {
+ $sem=$maxsemester;
+ }
+ if($row1->dipl>1)
+ {
+ $sem=50;
+ }
+ if($row1->dipl>3)
+ {
+ $sem=60;
+ }
+ }
+ }
+ if($rowstatus->status_kurzbz=="Student" || $rowstatus->status_kurzbz=="Outgoing"
+ || $rowstatus->status_kurzbz=="Incoming" || $rowstatus->status_kurzbz=='Praktikant'
+ || $rowstatus->status_kurzbz=="Diplomand")
+ {
+ $status=1;
+ }
+ else if($rowstatus->status_kurzbz=="Unterbrecher" )
+ {
+ $status=2;
+ }
+ else if($rowstatus->status_kurzbz=="Absolvent" )
+ {
+ $status=3;
+ }
+ else if($rowstatus->status_kurzbz=="Abbrecher" )
+ {
+ $status=4;
+ }
+ else
+ {
+ $error_log='';
+ $error_log1='';
+ continue;
+ }
+ $aktstatus=$rowstatus->status_kurzbz;
+ $aktstatus_datum=$rowstatus->datum;
+ $storgform=$rowstatus->orgform_kurzbz;
+ }
+ }
+ else
+ {
+ $qrystatus="SELECT * FROM public.tbl_prestudentstatus WHERE prestudent_id='".$row->prestudent_id."' AND studiensemester_kurzbz='".$psem."' AND (tbl_prestudentstatus.datum<'".$bisdatum."') ORDER BY datum desc, insertamum desc, ext_id desc;";
+ if($resultstatus = $db->db_query($qrystatus))
+ {
+ if($rowstatus = $db->db_fetch_object($resultstatus))
+ {
+ $qry1="SELECT count(*) AS dipl FROM public.tbl_prestudentstatus WHERE prestudent_id='".$row->prestudent_id."' AND status_kurzbz='Diplomand'";
+ if($result1 = $db->db_query($qry1))
+ {
+ if($row1 = $db->db_fetch_object($result1))
+ {
+ $sem=$rowstatus->ausbildungssemester;
+ if($sem>$maxsemester)
+ {
+ $sem=$maxsemester;
+ }
+ if($row1->dipl>1)
+ {
+ $sem=50;
+ }
+ if($row1->dipl>3)
+ {
+ $sem=60;
+ }
+ }
+ }
+ if($rowstatus->status_kurzbz=="Incoming")
+ {
+ $status=1;
+ }
+ else if($rowstatus->status_kurzbz=="Absolvent" )
+ {
+ $status=3;
+ }
+ else if($rowstatus->status_kurzbz=="Abbrecher" )
+ {
+ $status=4;
+ }
+ else
+ {
+ $error_log='';
+ $error_log1='';
+ continue;
+ }
+ $aktstatus=$rowstatus->status_kurzbz;
+ $aktstatus_datum=$rowstatus->datum;
+ //$storgform=$rowstatus->orgform_kurzbz;
+ }
+ }
+ }
+ }
+ //bei Absolventen das Beendigungsdatum (Sponsion oder Abschlussprüfung) überprüfen
+
+ if($aktstatus=='Absolvent')
+ {
+ $qry_ap="SELECT * FROM lehre.tbl_abschlusspruefung WHERE student_uid='".$row->student_uid."' AND abschlussbeurteilung_kurzbz!='nicht' AND abschlussbeurteilung_kurzbz IS NOT NULL";
+ if($result_ap = $db->db_query($qry_ap))
+ {
+ $ap=0;
+ while($row_ap = $db->db_fetch_object($result_ap))
+ {
+ if($row_ap->datum=='' || $row_ap->datum==null)
+ {
+ $error_log.=(!empty($error_log)?', ':'')."Datum der Abschlussprüfung ('".$row_ap->datum."')";
+ }
+ if($row_ap->sponsion=='' || $row_ap->sponsion==null)
+ {
+ $error_log.=(!empty($error_log)?', ':'')."Datum der Sponsion ('".$row_ap->sponsion."')";
+ }
+ $ap++;
+ $sponsion=$row_ap->sponsion;
+ }
+ if($ap!=1)
+ {
+ $error_log.=(!empty($error_log)?', ':'').$ap." bestandene Abschlussprüfungen";
+ }
+ }
+ }
+ if($error_log!='' OR $error_log1!='')
+ {
+ //Ausgabe der fehlenden Daten
+ $v.="Bei Student (UID, Vorname, Nachname) '".$row->student_uid."', '".$row->nachname."', '".$row->vorname."' ($row->status_kurzbz): \n";
+ if($error_log!='')
+ {
+ $v.=" Fehler: ".$error_log."\n";
+ }
+ if($error_log1!='')
+ {
+ $v.=" ".$error_log1;
+ }
+ $zaehl++;
+ $v.="\n";
+ $error_log='';
+ $error_log1='';
+ continue;
+ }
+ else
+ {
+ //Erstellung der XML-Datei
+ $datei.="
+
+ ".trim($row->matrikelnr)."
+ ".date("dmY", $datumobj->mktime_fromdate($row->gebdatum))."
+ ".strtoupper($row->geschlecht)." ";
+ if(($row->svnr!='')&&($row->ersatzkennzeichen!=''))
+ {
+ //$datei.="
+ //".$row->vorname."
+ //".$row->nachname." ";
+ $datei.="
+ ".$row->svnr." ";
+ $datei.="
+ ".$row->ersatzkennzeichen." ";
+ }
+ else
+ {
+ if($row->svnr!='')
+ {
+ $datei.="
+ ".$row->svnr." ";
+ }
+ if($row->ersatzkennzeichen!='')
+ {
+ //$datei.="
+ //".$row->vorname."
+ //".$row->nachname." ";
+ $datei.="
+ ".$row->ersatzkennzeichen." ";
+ }
+ }
+ $datei.="
+ ".$row->staatsbuergerschaft."
+ ".$plz."
+ ".$gemeinde."
+
+ ".$nation."
+ ".$row->zgv_code." ";
+ if($row->zgvdatum!=null)
+ {
+ $datei.="
+ ".date("dmY", $datumobj->mktime_fromdate($row->zgvdatum))." ";
+ }
+ else
+ {
+ $datei.="
+ ";
+ }
+ //!!!stgart für Lehrgang überprüfen!!!
+ if($stgart==2)
+ {
+ $datei.="
+ ".$row->zgvmas_code." ";
+ if($row->zgvmadatum!=null)
+ {
+ $datei.="
+ ".date("dmY", $datumobj->mktime_fromdate($row->zgvmadatum))." ";
+ }
+ else
+ {
+ $datei.="
+ ";
+ }
+ }
+ $qryad="SELECT * FROM public.tbl_prestudentstatus WHERE prestudent_id='".$row->prestudent_id."' AND (status_kurzbz='Student' OR status_kurzbz='Unterbrecher') AND (tbl_prestudentstatus.datum<'".$bisdatum."') ORDER BY datum asc;";
+ if($resultad = $db->db_query($qryad))
+ {
+ if($rowad = $db->db_fetch_object($resultad))
+ {
+ $datei.="
+ ".date("dmY", $datumobj->mktime_fromdate($rowad->datum))." ";
+ }
+ }
+ if($aktstatus=='Absolvent')
+ {
+ $datei.="
+ ".date("dmY", $datumobj->mktime_fromdate($aktstatus_datum))." ";
+ }
+ $datei.="
+ ".$status."
+ ";
+ }
+ }
+ $datei.="
+
+
+ ";
+ echo ' BIS - Lehrgangsmeldung - ('.$stg_kz.')
+
+
+ ';
+ echo "BIS - Studentendaten werden überprüft! Lehrgang: ".$stg_kz." \n";
+ if(strlen(trim($v))>0)
+ {
+ echo "Nicht plausible BIS-Daten (für Meldung ".$ssem."): ";
+ echo nl2br($v."\n\n");
+ }
+ $ddd='bisdaten/bismeldung_'.$ssem.'_Lehrgang'.$stg_kz.'.xml';
+ if(strtoupper($plausi)!='J')
+ {
+ $dateiausgabe=fopen($ddd,'w');
+ fwrite($dateiausgabe,$datei);
+ fclose($dateiausgabe);
+ }
+ if(file_exists($ddd))
+ {
+ echo "XML-Datei für BIS-Meldung Lehrgang ".$stg_kz." ";
+ }
+
+ //echo $datei;
+
+}
+
+?>
\ No newline at end of file