diff --git a/include/mitarbeiter.class.php b/include/mitarbeiter.class.php
index 5d63c9989..00c131f35 100644
--- a/include/mitarbeiter.class.php
+++ b/include/mitarbeiter.class.php
@@ -1655,5 +1655,39 @@ class mitarbeiter extends benutzer
return false;
}
+
+ /**
+ * Generiert mitarbeiter_uid anhand sequence tbl_mitarbeiter_personalnummer_seq
+ * @return string $mitarbeiter_uid im Formate maXXXX (zum Bsp. ma0207)
+ */
+ public function getMitarbeiterMaNr()
+ {
+ $qry = "SELECT last_value FROM tbl_mitarbeiter_personalnummer_seq";
+
+ if ($result = $this->db_query($qry))
+ {
+ while ($row = $this->db_fetch_object())
+ {
+ if ($row->last_value != '')
+ {
+ $maNr = $row->last_value;
+ $maNr = $maNr - 9999;
+ $maNr = 'ma'. $maNr;
+ return $maNr;
+ }
+ else
+ {
+ $this->errormsg = 'Fehler bei einer Datenbankabfrage!';
+ $return = false;
+ }
+ }
+ }
+ else
+ {
+ $this->errormsg = "Fehler bei der Abfrage aufgetreten";
+ return false;
+ }
+ }
+
}
?>
diff --git a/include/tw/generateuid.inc.php b/include/tw/generateuid.inc.php
index 78e9eae69..9205633cc 100644
--- a/include/tw/generateuid.inc.php
+++ b/include/tw/generateuid.inc.php
@@ -23,6 +23,7 @@
* 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
@@ -109,5 +110,18 @@ 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;
+ }
}
?>
diff --git a/system/dbupdate_3.3.php b/system/dbupdate_3.3.php
index fa073bcba..fae594851 100644
--- a/system/dbupdate_3.3.php
+++ b/system/dbupdate_3.3.php
@@ -5979,6 +5979,37 @@ 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 ' tbl_mitarbeiter_personalnummer_seq '.$db->db_last_error().'
';
+ }
+ else
+ {
+ echo '
tbl_mitarbeiter_personalnummer_seq auf neuen Startwert '. $count . ' geändert.';
+ }
+ }
+}
+
// *** Pruefung und hinzufuegen der neuen Attribute und Tabellen
echo '