BewerberZuStudent: new action turnIntoStudent

This commit is contained in:
ma0068
2024-07-11 10:52:59 +02:00
parent f2ca9f765f
commit a728bec15f
8 changed files with 691 additions and 100 deletions
+97
View File
@@ -43,9 +43,106 @@ class Student_model extends DB_Model
$max = 0;
$max += 1;
return $matrikelnummer.sprintf("%03d", $max);
}
// ****
// * Generiert die Matrikelnummer
// * FORMAT: 0710254001
// * 07 = Jahr
// * 1/2/0 = WS/SS/incoming
// * 0254 = Studiengangskennzahl vierstellig
// * 001 = Laufende Nummer
// * copy of generateMatrikelnummer plus
// * logic FH Burgenland
// ****
public function generateMatrikelnummer2($studiengang_kz, $studiensemester_kurzbz, $typ = null)
{
// Validierung der Eingabewerte
if (strlen($studiensemester_kurzbz) < 6) {
throw new InvalidArgumentException("Ungültiges studiensemester_kurzbz Format.");
}
$jahr = mb_substr($studiensemester_kurzbz, 4);
$art = substr($studiensemester_kurzbz, 0, 2);
if (($studiengang_kz < 0) || (isset($typ) && ($typ == 'l')))
{
$studiengang_kz=abs($studiengang_kz);
//Lehrgang
switch($art)
{
case 'WS': $art = '3'; break;
case 'SS': $art = '4'; break;
default: $art = '0'; break;
}
}
else
{
//Studiengang
switch($art)
{
case 'WS': $art = '1'; break;
case 'SS': $art = '2'; break;
default: $art = '0'; break;
}
}
if($art=='2' || $art=='4')
$jahr = $jahr-1;
//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 = "SELECT matrikelnr FROM public.tbl_student WHERE matrikelnr LIKE ? ORDER BY matrikelnr DESC LIMIT 1";
$matrikelnrres = $this->execQuery($qry, array($matrikelnummer.'%'));
$max = 0;
if ($matrikelnrres && hasData($matrikelnrres)) {
$max = mb_substr($matrikelnrres->retval[0]->matrikelnr, 7);
if (!is_numeric($max)) {
$max = 0;
}
}
$max += 1;
return success ($matrikelnummer.sprintf("%03d", $max));
}
// ****
// * Generiert die UID
// * FORMAT: el07b001
// * $stgkzl: el = studiengangskuerzel
// * $jahr: 07 = Jahr
// * $stgtyp: b/m/d/x = Bachelor/Master/Diplom/Incoming
// * $matrikelnummer
// * 001 = Laufende Nummer Wenn StSem==SS dann wird zur Nummer 500 dazugezaehlt
// * Bei Incoming im Masterstudiengang wird auch 500 dazugezaehlt
// ****
function generateUID($stgkzl, $jahr, $stgtyp, $matrikelnummer)
{
$art = mb_substr($matrikelnummer, 2, 1);
$nr = mb_substr($matrikelnummer, mb_strlen(trim($matrikelnummer))-3);
if($art=='2') //Sommersemester
$nr = $nr+500;
elseif($art=='0' && $stgtyp=='m') //Incoming im Masterstudiengang
$nr = $nr+500;
elseif($art=='4' && $stgtyp=='l') // Lehrgangsteilnehmer im Sommersemester
$nr = $nr+500;
return success (mb_strtolower($stgkzl.$jahr.($art!='0'?$stgtyp:'x').$nr));
}
/**
* Get students UID by PrestudentID.
* @param $prestudent_id