mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-06-01 12:19:28 +00:00
Generierung UID in Addon FHTW ausgelagert
This commit is contained in:
@@ -1657,23 +1657,21 @@ class mitarbeiter extends benutzer
|
||||
|
||||
|
||||
/**
|
||||
* Generiert mitarbeiter_uid anhand sequence tbl_mitarbeiter_personalnummer_seq
|
||||
* @return string $mitarbeiter_uid im Formate maXXXX (zum Bsp. ma0207)
|
||||
* Generiert nächste freie Personalnummer anhand der sequence tbl_mitarbeiter_personalnummer_seq
|
||||
* @return string $personalnummer
|
||||
*/
|
||||
public function getMitarbeiterMaNr()
|
||||
public function getNextPersonalnummer()
|
||||
{
|
||||
$qry = "SELECT last_value FROM tbl_mitarbeiter_personalnummer_seq";
|
||||
$qry = "SELECT nextval('tbl_mitarbeiter_personalnummer_seq') ";
|
||||
|
||||
if ($result = $this->db_query($qry))
|
||||
{
|
||||
while ($row = $this->db_fetch_object())
|
||||
{
|
||||
if ($row->last_value != '')
|
||||
if ($row->nextval != '')
|
||||
{
|
||||
$maNr = $row->last_value;
|
||||
$maNr = $maNr - 9999;
|
||||
$maNr = 'ma'. $maNr;
|
||||
return $maNr;
|
||||
$personalnummer = $row->nextval;
|
||||
return $personalnummer;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -23,7 +23,6 @@
|
||||
* Funktionen zum Generieren der UIDs
|
||||
*/
|
||||
require_once(dirname(__FILE__).'/../addon.class.php');
|
||||
require_once(dirname(__FILE__).'/../mitarbeiter.class.php');
|
||||
|
||||
// die aktiven Addons werden durchsucht, ob eines davon eine eigene UID Generierung vorsieht
|
||||
// falls ja, wird die Version des Addons genommen, ansonsten die Default Generierung
|
||||
@@ -74,7 +73,7 @@ if(!$generateuid_addon_found)
|
||||
// ****
|
||||
// * Gerneriert die Mitarbeiter UID
|
||||
// ****
|
||||
function generateMitarbeiterUID($vorname, $nachname, $lektor, $fixangestellt=true)
|
||||
function generateMitarbeiterUID($vorname, $nachname, $lektor, $fixangestellt=true, $personalnummer=null)
|
||||
{
|
||||
$bn = new benutzer();
|
||||
$reserviert = array();
|
||||
@@ -110,18 +109,6 @@ if(!$generateuid_addon_found)
|
||||
return $uid;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Neue Logik Generierung Mitarbeiter UID
|
||||
* fortlaufende ma_number a la ma0200;
|
||||
* @return string $maNr maNr im Format maXXXX
|
||||
**/
|
||||
function generateMaNumberUID()
|
||||
{
|
||||
$mitarbeiter = new mitarbeiter();
|
||||
$maNr = $mitarbeiter->getMitarbeiterMaNr();
|
||||
|
||||
return $maNr;
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
@@ -5979,36 +5979,6 @@ if ($result = $db->db_query("SELECT * FROM pg_class WHERE relname='idx_webservic
|
||||
}
|
||||
}
|
||||
|
||||
//ALTER Sequence tbl_mitarbeiter_personalnummer_seq
|
||||
if ($result = @$db->db_query("SELECT last_value FROM tbl_mitarbeiter_personalnummer_seq"))
|
||||
{
|
||||
$json = $db->db_getResultJSON($result);
|
||||
$last = json_decode($json);
|
||||
$last = $last[0]->{'last_value'};
|
||||
|
||||
if ($last <= 10000)
|
||||
{
|
||||
$count = @$db->db_query("
|
||||
SELECT personalnummer FROM public.tbl_mitarbeiter
|
||||
order by personalnummer DESC
|
||||
Limit 1
|
||||
");
|
||||
|
||||
$count = $db->db_getResultJSON($count);
|
||||
$count = json_decode($count);
|
||||
$count = $count[0]->{'personalnummer'} + 1;
|
||||
$qry = 'ALTER SEQUENCE tbl_mitarbeiter_personalnummer_seq restart with ';
|
||||
$qry .= $count;
|
||||
if (!$db->db_query($qry))
|
||||
{
|
||||
echo '<strong> tbl_mitarbeiter_personalnummer_seq '.$db->db_last_error().'</strong><br>';
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '<br>tbl_mitarbeiter_personalnummer_seq auf neuen Startwert '. $count . ' geändert.';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// *** Pruefung und hinzufuegen der neuen Attribute und Tabellen
|
||||
echo '<H2>Pruefe Tabellen und Attribute!</H2>';
|
||||
|
||||
@@ -621,8 +621,16 @@ if(isset($_POST['save']))
|
||||
$nachname_clean = mb_strtolower(convertProblemChars($nachname));
|
||||
$vorname_clean = mb_strtolower(convertProblemChars($vorname));
|
||||
$uid='';
|
||||
$mitarbeiter = new mitarbeiter();
|
||||
|
||||
$uid = generateMaNumberUID();
|
||||
if ($_POST['personalnummer'])
|
||||
{
|
||||
$personalnummer = $_POST['personalnummer'];
|
||||
}
|
||||
else
|
||||
$personalnummer = $mitarbeiter->getNextPersonalnummer();
|
||||
|
||||
$uid = generateMitarbeiterUID($vorname_clean, $nachname_clean, $lektor, $fixangestellt, $personalnummer);
|
||||
|
||||
if ($wunschUid != '')
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user