diff --git a/vilesci/bis/studentenmeldung.php b/vilesci/bis/studentenmeldung.php index 140108a12..d085a4ed9 100644 --- a/vilesci/bis/studentenmeldung.php +++ b/vilesci/bis/studentenmeldung.php @@ -353,9 +353,10 @@ else if($result = $db->db_query($qry)) { - $stg_kz_index = ''; + $num_rows = $db->db_num_rows($result); + $row_num = 1; while($row = $db->db_fetch_object($result)) { $row->pre_foerderrelevant = $db->db_parse_bool($row->pre_foerderrelevant); @@ -367,8 +368,6 @@ if($result = $db->db_query($qry)) $stg_obj = new studiengang(); if($stg_obj->load($row->studiengang_kz)) { - - $maxsemester = $stg_obj->max_semester; if($maxsemester == 0) { @@ -410,42 +409,62 @@ if($result = $db->db_query($qry)) $datei .= $header; $dateiNurBewerber .= $header; } - if ($stg_kz_index != '' && $row->studiengang_kz != $stg_kz_index) + } + + //Bewerberblock bei neuem Studiengang, und am Ende noch einmal + if (($stg_kz_index != '' && $row->studiengang_kz != $stg_kz_index) || $row_num == $num_rows) + { + // (bei Ausserordentlichen nicht anzeigen) + if($row->studiengang_kz!=('9'.$erhalter)) { - $datei .= " - "; + $stg_obj = new studiengang(); + + if($orgform_code==3 || $stg_obj->isMischform($row->studiengang_kz,$ssem) || $stg_obj->isMischform($row->studiengang_kz,$psem)) + { + $orgcodes = array_unique($orgform_code_array); + //Mischform + foreach($orgcodes as $code) + { + $bewerberBlock=GenerateXMLBewerberBlock($row->studiengang_kz, $code); + $datei.=$bewerberBlock; + $dateiNurBewerber.=$bewerberBlock; + } + } + else + { + $bewerberBlock=GenerateXMLBewerberBlock($row->studiengang_kz); + $datei.=$bewerberBlock; + $dateiNurBewerber.=$bewerberBlock; + } } - $stg_kz_index = $row->studiengang_kz; - $datei .= " + } + + // wenn neuer Studiengang... + if ($row->studiengang_kz != $stg_kz_index) + { + // ...Studiengang Tag schliessen + if ($stg_kz_index != '') + { + $stgClose = " + "; + $datei .= $stgClose; + $dateiNurBewerber .= $stgClose; + } + + // ...neuen Studiengang Tag öffnen + $stgOpen = " ".$row->studiengang_kz.""; + $datei .= $stgOpen; + $dateiNurBewerber .= $stgOpen; } + // Student Daten schreiben $datei .= GenerateXMLStudentBlock($row); + + // Studiengang kz speichern und Zeile erhöhen + $stg_kz_index = $row->studiengang_kz; + $row_num++; } - - //Bewerberblock bei Ausserordentlichen nicht anzeigen - /*if($stg_kz!=('9'.$erhalter)) - { - $stg_obj = new studiengang(); - - if($orgform_code==3 || $stg_obj->isMischform($stg_kz,$ssem) || $stg_obj->isMischform($stg_kz,$psem)) - { - $orgcodes = array_unique($orgform_code_array); - //Mischform - foreach($orgcodes as $code) - { - $bewerberBlock=GenerateXMLBewerberBlock($code); - $datei.=$bewerberBlock; - $dateiNurBewerber.=$bewerberBlock; - } - } - else - { - $bewerberBlock=GenerateXMLBewerberBlock(); - $datei.=$bewerberBlock; - $dateiNurBewerber.=$bewerberBlock; - } - }*/ } $footer=" @@ -722,8 +741,11 @@ if(file_exists($ddd)) { echo 'BIS-Meldung Stg '.$stg_kz.' archivieren
'; echo 'XML-Datei für BIS-Meldung Stg '.$stg_kz.'
'; - echo 'XML-Datei für BIS-Meldung Stg '.$stg_kz.' - nur Bewerberdaten
'; } + +if(file_exists($dddNurBew)) + echo 'XML-Datei für BIS-Meldung Stg '.$stg_kz.' - nur Bewerberdaten
'; + if(file_exists($eee)) { echo 'BIS-Meldeübersicht der BIS-Meldung Stg '.$stg_kz.'

'; @@ -1901,11 +1923,11 @@ function GenerateXMLStudentBlock($row) * Wenn der Parameter orgformcode uebergeben wird, werden nur die Bewerberzahlen dieser Orgform geliefert * sonst alle */ -function GenerateXMLBewerberBlock($orgformcode=null) +function GenerateXMLBewerberBlock($studiengang_kz, $orgformcode=null) { global $db; global $ssem, $stgart, $psem; - global $stg_kz, $bisdatum; + global $bisdatum; global $bwlist, $orgform_kurzbz; global $bewerbercount,$orgform_code_array; $datei = ''; @@ -1924,11 +1946,12 @@ function GenerateXMLBewerberBlock($orgformcode=null) JOIN public.tbl_person USING(person_id) LEFT JOIN bis.tbl_orgform USING(orgform_kurzbz) WHERE (studiensemester_kurzbz=".$db->db_add_param($ssem)." OR studiensemester_kurzbz=".$db->db_add_param($psem).") - AND tbl_prestudent.studiengang_kz=".$db->db_add_param($stg_kz)." + AND tbl_prestudent.studiengang_kz=".$db->db_add_param($studiengang_kz)." AND (tbl_prestudentstatus.datum<=".$db->db_add_param($bisdatum).") AND status_kurzbz='Bewerber' AND reihungstestangetreten "; + if(!is_null($orgformcode)) $qrybw.=" AND tbl_orgform.code=".$db->db_add_param($orgformcode);