diff --git a/include/mitarbeiter.class.php b/include/mitarbeiter.class.php index 5d63c9989..ac67c1ce5 100644 --- a/include/mitarbeiter.class.php +++ b/include/mitarbeiter.class.php @@ -1655,5 +1655,37 @@ class mitarbeiter extends benutzer return false; } + + /** + * Generiert nächste freie Personalnummer anhand der sequence tbl_mitarbeiter_personalnummer_seq + * @return string $personalnummer + */ + public function getNextPersonalnummer() + { + $qry = "SELECT nextval('tbl_mitarbeiter_personalnummer_seq') "; + + if ($result = $this->db_query($qry)) + { + while ($row = $this->db_fetch_object()) + { + if ($row->nextval != '') + { + $personalnummer = $row->nextval; + return $personalnummer; + } + 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..8c0a1ab80 100644 --- a/include/tw/generateuid.inc.php +++ b/include/tw/generateuid.inc.php @@ -73,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,4 +110,5 @@ if(!$generateuid_addon_found) } } } + ?> diff --git a/vilesci/personen/import/mitarbeiterimport.php b/vilesci/personen/import/mitarbeiterimport.php index 14081986c..91d78d385 100644 --- a/vilesci/personen/import/mitarbeiterimport.php +++ b/vilesci/personen/import/mitarbeiterimport.php @@ -16,8 +16,9 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * * Authors: Christian Paminger , - * Andreas Oesterreicher and - * Rudolf Hangl . + * Andreas Oesterreicher , + * Rudolf Hangl , + * Manuela Thamer . */ require_once('../../../config/vilesci.config.inc.php'); @@ -620,8 +621,16 @@ if(isset($_POST['save'])) $nachname_clean = mb_strtolower(convertProblemChars($nachname)); $vorname_clean = mb_strtolower(convertProblemChars($vorname)); $uid=''; + $mitarbeiter = new mitarbeiter(); - $uid = generateMitarbeiterUID($vorname_clean, $nachname_clean, $lektor, $fixangestellt); + if ($_POST['personalnummer']) + { + $personalnummer = $_POST['personalnummer']; + } + else + $personalnummer = $mitarbeiter->getNextPersonalnummer(); + + $uid = generateMitarbeiterUID($vorname_clean, $nachname_clean, $lektor, $fixangestellt, $personalnummer); if ($wunschUid != '') { @@ -872,10 +881,10 @@ if(isset($_POST['save'])) } } - if(!$error) + if (!$error) { $db->db_query('COMMIT'); - die("MitarbeiterIn $vorname $vornamen $nachname wurde erfolgreich angelegt

Neue Person anlegen
"); + die("MitarbeiterIn $vorname $vornamen $nachname ($uid) wurde erfolgreich angelegt

Neue Person anlegen
"); } else { @@ -925,7 +934,8 @@ echo 'Wunsch-UID'; if ($showagain) echo '
'; -echo ' (optional, max. 32) +echo ' (optional, max. 32) '; echo 'Anrede'; echo 'Titel(Pre)';