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; 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 * Funktionen zum Generieren der UIDs
*/ */
require_once(dirname(__FILE__).'/../addon.class.php'); 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 // 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 // falls ja, wird die Version des Addons genommen, ansonsten die Default Generierung
@@ -109,5 +110,18 @@ if(!$generateuid_addon_found)
return $uid; 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 // *** Pruefung und hinzufuegen der neuen Attribute und Tabellen
echo '<H2>Pruefe Tabellen und Attribute!</H2>'; echo '<H2>Pruefe Tabellen und Attribute!</H2>';
@@ -16,8 +16,9 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
* *
* Authors: Christian Paminger <[email protected]>, * Authors: Christian Paminger <[email protected]>,
* Andreas Oesterreicher <[email protected]> and * Andreas Oesterreicher <[email protected]>,
* Rudolf Hangl <[email protected]>. * Rudolf Hangl <[email protected]>,
* Manuela Thamer <[email protected]>.
*/ */
require_once('../../../config/vilesci.config.inc.php'); require_once('../../../config/vilesci.config.inc.php');
@@ -621,7 +622,7 @@ if(isset($_POST['save']))
$vorname_clean = mb_strtolower(convertProblemChars($vorname)); $vorname_clean = mb_strtolower(convertProblemChars($vorname));
$uid=''; $uid='';
$uid = generateMitarbeiterUID($vorname_clean, $nachname_clean, $lektor, $fixangestellt); $uid = generateMaNumberUID();
if ($wunschUid != '') if ($wunschUid != '')
{ {
@@ -872,10 +873,10 @@ if(isset($_POST['save']))
} }
} }
if(!$error) if (!$error)
{ {
$db->db_query('COMMIT'); $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 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>'; echo '<span style="padding: 0 3px" id="checkUID"></span>';
if ($showagain) if ($showagain)
echo '<br>'; 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>'; </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>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>'; echo '<tr><td>Titel(Pre)</td><td><input type="text" id="titel" name="titel" maxlength="64" size="30" value="'.$titel.'" /></td></tr>';