studentenmeldung:

- added fields MeldeStatus
- added field HerkunftslandCode for IO Container
- splitted Ausstellungsstaat in ZugangAusstellungsstaat and 
ZugangMaAusstellungsstaat
This commit is contained in:
KarpAlex
2022-07-18 00:39:37 +02:00
parent 055f52a0bd
commit 1c457f7ab7
+54 -18
View File
@@ -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)
<ZugangCode>".$row->zgv_code."</ZugangCode>";
$datei.="
<ZugangDatum>".date("dmY", $datumobj->mktime_fromdate($row->zgvdatum))."</ZugangDatum>";
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.='
<ZugangAusstellungsstaat>'.$ausstellungsstaat.'</ZugangAusstellungsstaat>';
}
}
}
if($stgart==2) // Master-Studiengang
@@ -1468,21 +1493,17 @@ function GenerateXMLStudentBlock($row)
<ZugangMaStgCode>".$row->zgvmas_code."</ZugangMaStgCode>";
$datei.="
<ZugangMaStgDatum>".date("dmY", $datumobj->mktime_fromdate($row->zgvmadatum))."</ZugangMaStgDatum>";
}
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>'.$ausstellungsstaat.'</Ausstellungsstaat>';
if($row->zgvmanation!='')
$ausstellungsstaat_master = $row->zgvmanation;
if($ausstellungsstaat_master!='' && ($datumobj->mktime_fromdate($beginndatum) > $datumobj->mktime_fromdate('2011-04-15')))
{
$datei.='
<ZugangMaAusstellungsstaat>'.$ausstellungsstaat_master.'</ZugangMaAusstellungsstaat>';
}
}
}
@@ -1514,6 +1535,22 @@ function GenerateXMLStudentBlock($row)
<StudStatusCode>".$status."</StudStatusCode>";
}
// 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>".$meldestatus."</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)
<IO>
<MobilitaetsProgrammCode>".$mob."</MobilitaetsProgrammCode>
<GastlandCode>".$gast."</GastlandCode>
<HerkunftslandCode>".$herkunft."</HerkunftslandCode>
<AufenthaltVon>".$avon."</AufenthaltVon>";
if($datumobj->mktime_fromdate($rowio->bis)<$datumobj->mktime_fromdate($bisdatum) && $datumobj->mktime_fromdate($rowio->bis)>$datumobj->mktime_fromdate($bisprevious))
{