diff --git a/content/student/studentDBDML.php b/content/student/studentDBDML.php index e411dbaad..31da28b8a 100644 --- a/content/student/studentDBDML.php +++ b/content/student/studentDBDML.php @@ -109,12 +109,23 @@ if(!$rechte->isBerechtigt('admin') && !$rechte->isBerechtigt('assistenz') && !$r function generateMatrikelnummer($studiengang_kz, $studiensemester_kurzbz) { $db = new basis_db(); - + + + $studiengang_details = new studiengang(); + $studiengang_details->load($studiengang_kz); + + if (!isset($studiengang_details->studiengang_kz)) { + //wenn es diesen Studiengang nicht gibt (übergabeparamter falsch) + //wie müsste hier ein error handle gemacht werden? + } + $jahr = substr($studiensemester_kurzbz, 4); $art = substr($studiensemester_kurzbz, 0, 2); - if($studiengang_kz<0) - { + if( ($studiengang_kz < 0) + || ( isset($studiengang_details->typ) + && ($studiengang_details->typ == 'l')) + ) { $studiengang_kz=abs($studiengang_kz); //Lehrgang switch($art) @@ -136,8 +147,16 @@ function generateMatrikelnummer($studiengang_kz, $studiensemester_kurzbz) } if($art=='2' || $art=='4') $jahr = $jahr-1; - $matrikelnummer = sprintf("%02d",$jahr).$art.sprintf("%04d",$studiengang_kz); - + + + //FH-Burgenland - weil leider die AO Studiengänge aufgeteilt sind (AO sind normal 9+erhalter Nummer, matrikelnr/personenkz wird auch im DVUH Extension berücksichtigt) + if ($studiengang_kz >= 90010 && $studiengang_kz <= 90019) { + $matrikelnummer = sprintf("%02d",$jahr).$art.substr($studiengang_kz, 0, 4); + } else { + $matrikelnummer = sprintf("%02d",$jahr).$art.sprintf("%04d",$studiengang_kz); + } + + $qry = null; $qry = "SELECT matrikelnr FROM public.tbl_student WHERE matrikelnr LIKE '$matrikelnummer%' ORDER BY matrikelnr DESC LIMIT 1"; if($result = $db->db_query($qry))