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)) {