Logik Generierung MA-Nummer im Fas geändert

This commit is contained in:
ma0068
2022-04-11 08:40:57 +02:00
parent 5e64204354
commit 6a403a7fc3
4 changed files with 87 additions and 6 deletions
+34
View File
@@ -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;
}
}
}
?>
+14
View File
@@ -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;
}
}
?>
+31
View File
@@ -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 '<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>';
@@ -16,8 +16,9 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at>,
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>,
* Manuela Thamer <manuela.thamer@technikum-wien.at>.
*/
require_once('../../../config/vilesci.config.inc.php');
@@ -621,7 +622,7 @@ if(isset($_POST['save']))
$vorname_clean = mb_strtolower(convertProblemChars($vorname));
$uid='';
$uid = generateMitarbeiterUID($vorname_clean, $nachname_clean, $lektor, $fixangestellt);
$uid = generateMaNumberUID();
if ($wunschUid != '')
{
@@ -872,10 +873,10 @@ if(isset($_POST['save']))
}
}
if(!$error)
if (!$error)
{
$db->db_query('COMMIT');
die("<b>MitarbeiterIn $vorname $vornamen $nachname wurde erfolgreich angelegt</b><br><br><a href='mitarbeiterimport.php'>Neue Person anlegen</a><br>");
die("<b>MitarbeiterIn $vorname $vornamen $nachname ($uid) wurde erfolgreich angelegt</b><br><br><a href='mitarbeiterimport.php'>Neue Person anlegen</a><br>");
}
else
{
@@ -925,7 +926,8 @@ echo '<tr><td>Wunsch-UID</td><td><input type="text" name="wunschUid" id="wunschU
echo '<span style="padding: 0 3px" id="checkUID"></span>';
if ($showagain)
echo '<br>';
echo '<button type="button" title="Prüft, ob die UID schon vorhanden ist. Keine Sonderzeichen, Umlaute oder Leerzeichen in der UID" href="#" onclick="checkWunschUid()"> Check UID </button> (optional, max. 32)
echo '<button type="button" title="Prüft, ob die UID schon vorhanden ist. Keine Sonderzeichen, Umlaute oder Leerzeichen in der UID"
href="#" onclick="checkWunschUid()"> Check UID </button> (optional, max. 32)
</td></tr>';
echo '<tr><td>Anrede</td><td><input type="text" id="anrede" name="anrede" maxlength="16" size="30" value="'.$anrede.'" onblur="AnredeChange()"/></td></tr>';
echo '<tr><td>Titel(Pre)</td><td><input type="text" id="titel" name="titel" maxlength="64" size="30" value="'.$titel.'" /></td></tr>';