mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-21 17:02:19 +00:00
BewerberZuStudent: new action turnIntoStudent
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -89,9 +89,31 @@ class Benutzer_model extends DB_Model
|
||||
if (hasData($aliasexists) && !getData($aliasexists)[0])
|
||||
$aliasres = $alias;
|
||||
}
|
||||
|
||||
return success($aliasres);
|
||||
}
|
||||
|
||||
/**
|
||||
* Generates alias for a uid.
|
||||
* @param $uid
|
||||
* @return array the alias if newly generated
|
||||
*/
|
||||
public function generateAliasByPersonId($person_id)
|
||||
{
|
||||
$sql = 'SELECT p.vorname, p.nachname
|
||||
FROM public.tbl_person p
|
||||
where person_id = ?';
|
||||
|
||||
$nameresult = $this->execQuery($sql, array($person_id));
|
||||
|
||||
$nameresult = getData($nameresult) ?: null;
|
||||
|
||||
// if($aliasdata)
|
||||
// $alias = $this->_sanitizeAliasName($aliasdata->vorname).'.'.$this->_sanitizeAliasName($aliasdata->nachname);
|
||||
|
||||
return success($nameresult->vorname . " " . $nameresult->nachname);
|
||||
}
|
||||
|
||||
// --------------------------------------------------------------------------------------------
|
||||
// Private methods
|
||||
|
||||
@@ -105,4 +127,58 @@ class Benutzer_model extends DB_Model
|
||||
$str = sanitizeProblemChars($str);
|
||||
return mb_strtolower(str_replace(' ','_', $str));
|
||||
}
|
||||
|
||||
/**
|
||||
* Generiert einen Aktivierungscode
|
||||
*/
|
||||
function generateActivationKey()
|
||||
{
|
||||
$keyvalues=array('0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F');
|
||||
$key='';
|
||||
for($i=0;$i<32;$i++)
|
||||
$key.=$keyvalues[mt_rand(0,15)];
|
||||
|
||||
return success(md5(encryptData(uniqid(mt_rand(), true),$key)));
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if Benutzer already exists
|
||||
* @param integer $person_id
|
||||
* @return 0 if not exists, 1 if it does
|
||||
*/
|
||||
public function checkIfExistingBenutzer($person_id)
|
||||
{
|
||||
$qry = "SELECT
|
||||
count(*) as anzahl
|
||||
FROM
|
||||
public.tbl_benutzer
|
||||
WHERE
|
||||
person_id = ? ";
|
||||
|
||||
$result = $this->execQuery($qry, array($person_id));
|
||||
|
||||
if (isError($result))
|
||||
{
|
||||
return error($result);
|
||||
}
|
||||
else
|
||||
{
|
||||
$resultObject = current(getData($result));
|
||||
|
||||
if (property_exists($resultObject, 'anzahl')) {
|
||||
$resultValue = (int) $resultObject->anzahl;
|
||||
|
||||
if ($resultValue > 0)
|
||||
{
|
||||
return success("1");
|
||||
}
|
||||
else
|
||||
{
|
||||
return success("0");
|
||||
}
|
||||
} else {
|
||||
return error("BenutzerModel: Error During Check if Existing Benutzer.");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -180,7 +180,6 @@ class Notiz_model extends DB_Model
|
||||
{
|
||||
$notiz_id = $result->retval;
|
||||
|
||||
//TODO(Manu) neue Function assign Notiz
|
||||
if($type == "software_id")
|
||||
{
|
||||
// Loads extension Model
|
||||
|
||||
@@ -374,5 +374,54 @@ class Person_model extends DB_Model
|
||||
'prestudent_id' => $prestudent_id
|
||||
]);
|
||||
}
|
||||
|
||||
public function generateAliasByPersonId($person_id)
|
||||
{
|
||||
|
||||
$this->addSelect('vorname, nachname');
|
||||
|
||||
return success ($this->loadWhere(array('person_id' => $person_id)));
|
||||
}
|
||||
|
||||
/* public function generateAliasByPersonId($person_id)
|
||||
{
|
||||
|
||||
$this->addSelect('vorname, nachname');
|
||||
|
||||
$result = $this->loadWhere(array('person_id' => $person_id));
|
||||
|
||||
// Überprüfe, ob ein Ergebnis zurückgegeben wurde
|
||||
if ($result) {
|
||||
$result = getData($result);
|
||||
$result = $result->retval[0];
|
||||
$vorname = $result->vorname;
|
||||
$nachname = $result->nachname;
|
||||
|
||||
// Sanitize the extracted names
|
||||
$sanitizedVorname = $this->sanitizeAliasName($vorname);
|
||||
$sanitizedNachname = $this->sanitizeAliasName($nachname);
|
||||
|
||||
// Erstelle den Alias
|
||||
$alias = $sanitizedVorname . '.' . $sanitizedNachname;
|
||||
|
||||
// Gib den Erfolg zurück mit dem generierten Alias
|
||||
return success($alias);
|
||||
} else {
|
||||
// Falls kein Ergebnis gefunden wurde, gib einen Fehler zurück
|
||||
return error('Person not found');
|
||||
}
|
||||
|
||||
}*/
|
||||
|
||||
/**
|
||||
* Sanitizes a string used for alias. Replaces special characters, spaces, sets lower case.
|
||||
* @param string $str
|
||||
* @return string
|
||||
*/
|
||||
public function sanitizeAliasName($str)
|
||||
{
|
||||
$str = sanitizeProblemChars($str);
|
||||
return success (mb_strtolower(str_replace(' ','_', $str)));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user