diff --git a/vilesci/bis/studentenmeldung.php b/vilesci/bis/studentenmeldung.php
index 60cb0dcfe..b55aa9a5b 100644
--- a/vilesci/bis/studentenmeldung.php
+++ b/vilesci/bis/studentenmeldung.php
@@ -81,6 +81,7 @@ $aktstatus='';
$aktstatus_datum='';
$mob='';
$gast='';
+$herkunft='';
$avon='';
$abis='';
$zweck='';
@@ -1071,18 +1072,22 @@ function GenerateXMLStudentBlock($row)
|| $rowstatus->status_kurzbz=="Diplomand")
{
$status=1;
+ $meldestatus='I';
}
else if($rowstatus->status_kurzbz=="Unterbrecher" )
{
$status=2;
+ $meldestatus='U';
}
else if($rowstatus->status_kurzbz=="Absolvent" )
{
$status=3;
+ $meldestatus='I';
}
else if($rowstatus->status_kurzbz=="Abbrecher" )
{
$status=4;
+ $meldestatus='O';
// Checken, ob der Student Abbrecher vor der Meldung war und noch nie gemeldet wurde
$qryAbbrecher = "SELECT * FROM public.tbl_prestudentstatus WHERE prestudent_id = ".$db->db_add_param($row->prestudent_id)." AND status_kurzbz='Student' AND datum <=".$db->db_add_param($bisprevious);
if($resultAbbrecher = $db->db_query($qryAbbrecher))
@@ -1132,21 +1137,26 @@ function GenerateXMLStudentBlock($row)
}
}
+ // statuscode und meldestatus von studstatus ableiten
if($ausserordentlich)
{
$status=1;
+ $meldestatus='I';
}
else if($rowstatus->status_kurzbz=="Incoming")
{
$status=1;
+ $meldestatus='A';
}
else if($rowstatus->status_kurzbz=="Absolvent" )
{
$status=3;
+ $meldestatus='I';
}
else if($rowstatus->status_kurzbz=="Abbrecher" )
{
$status=4;
+ $meldestatus='O';
}
else
{
@@ -1327,9 +1337,10 @@ function GenerateXMLStudentBlock($row)
$beginndatum='';
}
$ausstellungsstaat='';
+ $ausstellungsstaat_master='';
if($row->zgvmanation!='' && $stgart==2) // Master
- $ausstellungsstaat = $row->zgvmanation;
- elseif($row->zgvnation!='')
+ $ausstellungsstaat_master = $row->zgvmanation;
+ if($row->zgvnation!='')
$ausstellungsstaat = $row->zgvnation;
else
$ausstellungsstaat = $row->ausstellungsstaat;
@@ -1460,6 +1471,20 @@ function GenerateXMLStudentBlock($row)
".$row->zgv_code."";
$datei.="
".date("dmY", $datumobj->mktime_fromdate($row->zgvdatum))."";
+
+ if($aktstatus!='Incoming')
+ {
+ if($row->zgvnation!='')
+ $ausstellungsstaat = $row->zgvnation;
+ else
+ $ausstellungsstaat = $row->ausstellungsstaat;
+
+ if($ausstellungsstaat!='' && ($datumobj->mktime_fromdate($beginndatum) > $datumobj->mktime_fromdate('2011-04-15')))
+ {
+ $datei.='
+ '.$ausstellungsstaat.'';
+ }
+ }
}
if($stgart==2) // Master-Studiengang
@@ -1468,21 +1493,17 @@ function GenerateXMLStudentBlock($row)
".$row->zgvmas_code."";
$datei.="
".date("dmY", $datumobj->mktime_fromdate($row->zgvmadatum))."";
- }
- if($aktstatus!='Incoming' && !$ausserordentlich)
- {
- if($row->zgvmanation!='' && $stgart=='2')
- $ausstellungsstaat = $row->zgvmanation;
- elseif($row->zgvnation!='')
- $ausstellungsstaat = $row->zgvnation;
- else
- $ausstellungsstaat = $row->ausstellungsstaat;
-
- if($ausstellungsstaat!='' && ($datumobj->mktime_fromdate($beginndatum) > $datumobj->mktime_fromdate('2011-04-15')))
+ if($aktstatus!='Incoming' && !$ausserordentlich)
{
- $datei.='
- '.$ausstellungsstaat.'';
+ if($row->zgvmanation!='')
+ $ausstellungsstaat_master = $row->zgvmanation;
+
+ if($ausstellungsstaat_master!='' && ($datumobj->mktime_fromdate($beginndatum) > $datumobj->mktime_fromdate('2011-04-15')))
+ {
+ $datei.='
+ '.$ausstellungsstaat_master.'';
+ }
}
}
@@ -1514,6 +1535,22 @@ function GenerateXMLStudentBlock($row)
".$status."";
}
+ // IO container query
+ $qryio="SELECT * FROM bis.tbl_bisio WHERE student_uid=".$db->db_add_param($row->student_uid)."
+ AND (von>".$db->db_add_param($bisprevious)." OR bis IS NULL OR bis>".$db->db_add_param($bisprevious).")
+ AND von<=".$db->db_add_param($bisdatum).";";
+
+ $ioresults=$db->db_query($qryio);
+
+ // wenn Mobilität vorhanden, meldestatus auf Auslandsaufenthalt setzen
+ if($db->db_num_rows($ioresults)>0)
+ $meldestatus='A';
+
+
+ // TODO: wenn extern, auch kein Meldestatus? welcher meldestatus bei GS?
+ $datei.="
+ ".$meldestatus."";
+
if($orgform_code_array[$storgform]!=1 && !$ausserordentlich) // Wenn nicht Vollzeit und nicht Ausserordentlich
{
$datei.="
@@ -1555,9 +1592,6 @@ function GenerateXMLStudentBlock($row)
// **** IO Container ****/
- $qryio="SELECT * FROM bis.tbl_bisio WHERE student_uid=".$db->db_add_param($row->student_uid)."
- AND (von>".$db->db_add_param($bisprevious)." OR bis IS NULL OR bis>".$db->db_add_param($bisprevious).")
- AND von<=".$db->db_add_param($bisdatum).";";
$outgoing_count=0;
if($resultio = $db->db_query($qryio))
{
@@ -1565,6 +1599,7 @@ function GenerateXMLStudentBlock($row)
{
$mob=$rowio->mobilitaetsprogramm_code;
$gast=$rowio->nation_code;
+ $herkunft=$rowio->herkunftsland_code;
$avon=date("dmY", $datumobj->mktime_fromdate($rowio->von));
$abis=date("dmY", $datumobj->mktime_fromdate($rowio->bis));
$adauer = (is_null($rowio->von) || is_null($rowio->bis))
@@ -1683,6 +1718,7 @@ function GenerateXMLStudentBlock($row)
".$mob."
".$gast."
+ ".$herkunft."
".$avon."";
if($datumobj->mktime_fromdate($rowio->bis)<$datumobj->mktime_fromdate($bisdatum) && $datumobj->mktime_fromdate($rowio->bis)>$datumobj->mktime_fromdate($bisprevious))
{