Fixangestellt Hackerl kann beim Anlegen von Mitarbeitern gleich gesetzt werden und kann bei der Generierung der UID berücksichtigt werden

This commit is contained in:
oesi
2015-08-10 16:30:56 +02:00
parent 74ec63ed2c
commit da2c348182
3 changed files with 68 additions and 66 deletions
@@ -44,20 +44,20 @@ function generateUID($stgkzl, $jahr, $stgtyp, $matrikelnummer)
* @param $nachname Nachname
* @param $lektor Boolean true wenn Lektor sonst false
*/
function generateMitarbeiterUID($vorname, $nachname, $lektor)
function generateMitarbeiterUID($vorname, $nachname, $lektor, $fixangestellt=true)
{
$bn = new benutzer();
$uid='';
// Wenn ein Bindestrich vorhanden ist (Doppelname), dort abschneiden
if(mb_strpos($nachname,'-')!==false)
if(mb_strpos($nachname,'-')!==false)
$nachname = mb_substr($nachname, 0, mb_strpos($nachname,'-'));
// Nachname wird so lange verkuerzt bis eine eindeutige UID entsteht die noch nicht vergeben ist
for($nn=18;$nn!=0;$nn--)
{
$uid = mb_substr($vorname,0,1);
$uid .= mb_substr($nachname,0,$nn);
$uid = mb_str_replace(' ','',$uid);
$uid = mb_str_replace('-','',$uid);
+11 -11
View File
@@ -32,7 +32,7 @@ $generateuid_addons = new addon();
foreach($generateuid_addons->aktive_addons as $addon)
{
$generateuid_addon_filename = dirname(__FILE__).'/../../addons/'.$addon.'/vilesci/generateuid.inc.php';
if(file_exists($generateuid_addon_filename))
{
include($generateuid_addon_filename);
@@ -44,7 +44,7 @@ foreach($generateuid_addons->aktive_addons as $addon)
if(!$generateuid_addon_found)
{
// ****
// * Generiert die UID
// * FORMAT: el07b001
@@ -65,19 +65,19 @@ if(!$generateuid_addon_found)
$nr = $nr+500;
elseif($art=='4' && $stgtyp=='l') // Lehrgangsteilnehmer im Sommersemester
$nr = $nr+500;
return mb_strtolower($stgkzl.$jahr.($art!='0'?$stgtyp:'x').$nr);
}
// ****
// * Gerneriert die Mitarbeiter UID
// ****
function generateMitarbeiterUID($vorname, $nachname, $lektor)
function generateMitarbeiterUID($vorname, $nachname, $lektor, $fixangestellt=true)
{
$bn = new benutzer();
$reserviert = array();
// Das File aliases enthaelt die Mailverteiler haendisch gewarteten Mailverteiler die nicht
// in der FHC Datenbank vorhanden sind.
// Diese duerfen nicht als UID verwendet werden, da es sonst zu Konflikten kommt
@@ -92,19 +92,19 @@ if(!$generateuid_addon_found)
$reserviert[]=$entry[0];
}
}
for($nn=8,$vn=0;$nn!=0;$nn--,$vn++)
{
$uid = mb_substr($nachname,0,$nn);
$uid .= mb_substr($vorname,0,$vn);
$uid = mb_str_replace(' ','',$uid);
$uid = mb_str_replace('-','',$uid);
if(!$bn->uid_exists($uid) && !in_array($uid, $reserviert))
if($bn->errormsg=='')
return $uid;
}
}
}
?>
?>
+54 -52
View File
@@ -42,7 +42,7 @@ function getGemeindeDropDown($postleitzahl)
{
global $_REQUEST, $gemeinde;
$db = new basis_db();
$found=false;
$firstentry='';
$gemeinde_x = (isset($_REQUEST['gemeinde'])?$_REQUEST['gemeinde']:'');
@@ -58,7 +58,7 @@ function getGemeindeDropDown($postleitzahl)
$firstentry=$row->name;
if($gemeinde_x=='')
$gemeinde_x=$row->name;
if($row->name==$gemeinde_x)
{
$selected='selected';
@@ -70,7 +70,7 @@ function getGemeindeDropDown($postleitzahl)
}
}
}
echo '</SELECT>';
if(!$found && (isset($importort) && $importort!=''))
{
@@ -91,9 +91,9 @@ function getOrtDropDown($postleitzahl, $gemeindename)
{
global $_REQUEST;
$db = new basis_db();
$ort = (isset($_REQUEST['ort'])?$_REQUEST['ort']:'');
$qry = "SELECT distinct ortschaftsname FROM bis.tbl_gemeinde
$qry = "SELECT distinct ortschaftsname FROM bis.tbl_gemeinde
WHERE plz='".addslashes($postleitzahl)."' AND name='".addslashes($gemeindename)."'";
echo '<SELECT id="ort" name="ort">';
if(is_numeric($postleitzahl) && $postleitzahl<10000)
@@ -104,18 +104,18 @@ function getOrtDropDown($postleitzahl, $gemeindename)
{
if($row->ortschaftsname==$ort)
$selected='selected';
else
else
$selected='';
echo "<option value='$row->ortschaftsname' $selected>$row->ortschaftsname</option>";
}
}
}
}
echo '</SELECT>';
}
if(isset($_GET['type']) && $_GET['type']=='getortcontent' && isset($_GET['plz']) && isset($_GET['gemeinde']))
{
header('Content-Type: text/html; charset=UTF-8');
echo getOrtDropDown($_GET['plz'], $_GET['gemeinde']);
exit;
}
@@ -129,14 +129,14 @@ if(isset($_GET['type']) && $_GET['type']=='getortcontent' && isset($_GET['plz'])
<link rel="stylesheet" href="../../../skin/tablesort.css" type="text/css">
<script type="text/Javascript">
$(document).ready(function()
{
$(document).ready(function()
{
$('#t1').tablesorter(
{
sortList: [[1,0],[2,0],[4,0]],
widgets: ['zebra'],
headers: {0: {sorter: false},8: {sorter: false},9: {sorter: false}}
});
headers: {0: {sorter: false},8: {sorter: false},9: {sorter: false}}
});
});
function disablefields(obj)
@@ -179,7 +179,7 @@ function GeburtsdatumEintragen()
{
svnr = document.getElementById('svnr').value;
gebdat = document.getElementById('geburtsdatum');
if(svnr.length==10 && gebdat.value=='')
{
var tag = svnr.substr(4,2);
@@ -192,7 +192,7 @@ function GeburtsdatumEintragen()
var jahrhundert = '20';
else
var jahrhundert = '19';
gebdat.value=jahrhundert+jahr+'-'+monat+'-'+tag;
}
}
@@ -252,7 +252,7 @@ function loadGemeindeData()
{
anfrage=null;
//Request erzeugen und die Note speichern
erzeugeAnfrage();
erzeugeAnfrage();
var jetzt = new Date();
var ts = jetzt.getTime();
var plz = document.getElementById('plz').value;
@@ -277,13 +277,13 @@ function setGemeindeData()
{
if (anfrage.readyState == 4)
{
if (anfrage.status == 200)
if (anfrage.status == 200)
{
var resp = anfrage.responseText;
var gemeindediv = document.getElementById('gemeindediv');
gemeindediv.innerHTML = resp;
loadOrtData();
}
}
else alert("Request status:" + anfrage.status);
}
}
@@ -294,7 +294,7 @@ function loadOrtData()
{
anfrage=null;
//Request erzeugen und die Note speichern
erzeugeAnfrage();
erzeugeAnfrage();
var jetzt = new Date();
var ts = jetzt.getTime();
var plz = document.getElementById('plz').value;
@@ -312,12 +312,12 @@ function setOrtData()
{
if (anfrage.readyState == 4)
{
if (anfrage.status == 200)
if (anfrage.status == 200)
{
var resp = anfrage.responseText;
var ortdiv = document.getElementById('ortdiv');
ortdiv.innerHTML = resp;
}
}
else alert("Request status:" + anfrage.status);
}
}
@@ -325,7 +325,7 @@ function setOrtData()
function AnredeChange()
{
anrede = document.getElementById('anrede').value;
if(anrede=='Herr')
document.getElementById('geschlecht').value='m';
if(anrede=='Frau')
@@ -336,12 +336,12 @@ function GeschlechtChange()
{
geschlecht = document.getElementById('geschlecht').value;
anrede = document.getElementById('anrede');
if(anrede.value=='' || anrede.value=='Herr' || anrede.value=='Frau')
{
if(geschlecht=='m')
anrede.value='Herr';
if(geschlecht=='w')
anrede.value='Frau';
}
@@ -378,7 +378,7 @@ if($adresse_nation=='A')
$ort = (isset($_REQUEST['ort'])?$_REQUEST['ort']:'');
$gemeinde = (isset($_REQUEST['gemeinde'])?$_REQUEST['gemeinde']:'');
}
else
else
{
$ort = (isset($_REQUEST['ort_txt'])?$_REQUEST['ort_txt']:'');
$gemeinde = (isset($_REQUEST['gemeinde_txt'])?$_REQUEST['gemeinde_txt']:'');
@@ -401,6 +401,7 @@ $person_id = (isset($_POST['person_id'])?$_POST['person_id']:'');
$ueberschreiben = (isset($_POST['ueberschreiben'])?$_POST['ueberschreiben']:'');
$svnr = (isset($_POST['svnr'])?$_POST['svnr']:'');
$lektor = (isset($_POST['lektor'])?true:false);
$fixangestellt = (isset($_POST['fixangestellt'])?true:false);
if(!isset($_POST['svnr']))
$lektor = true;
$ersatzkennzeichen = (isset($_POST['ersatzkennzeichen'])?$_POST['ersatzkennzeichen']:'');
@@ -457,7 +458,7 @@ if(isset($_POST['save']))
$person->staatsbuergerschaft = 'A';
$person->familienstand = 'l';
$person->zugangscode= uniqid();
if($person->save())
{
$error=false;
@@ -471,22 +472,22 @@ if(isset($_POST['save']))
//UID generieren
if(!$error)
{
{
$nachname_clean = mb_strtolower(convertProblemChars($nachname));
$vorname_clean = mb_strtolower(convertProblemChars($vorname));
$uid='';
$uid = generateMitarbeiterUID($vorname_clean, $nachname_clean, $lektor);
$uid = generateMitarbeiterUID($vorname_clean, $nachname_clean, $lektor, $fixangestellt);
$bn = new benutzer();
if($bn->uid_exists($uid))
{
$error = true;
$errormsg = 'Es konnte keine UID ermittelt werden';
}
}
//Kurzbz generieren
if(!$error)
{
@@ -510,7 +511,7 @@ if(isset($_POST['save']))
$errormsg = 'Es konnte keine Kurzbezeichnung ermittelt werden';
}
}
//Alias generieren
if(!$error)
{
@@ -518,20 +519,20 @@ if(isset($_POST['save']))
$vorname_clean = mb_strtolower(convertProblemChars($vorname));
$nachname_clean = str_replace(' ','_', $nachname_clean);
$vorname_clean = str_replace(' ','_', $vorname_clean);
$bn = new benutzer();
if(!$bn->alias_exists($vorname_clean.'.'.$nachname_clean))
$alias = $vorname_clean.'.'.$nachname_clean;
else
else
$alias = '';
}
//Benutzer anlegen
if(!$error)
{
$benutzer = new benutzer();
$benutzer->uid = $uid;
$benutzer->person_id = $person->person_id;
$benutzer->bnaktiv = true;
@@ -545,42 +546,42 @@ if(isset($_POST['save']))
{
$error = false;
}
else
else
{
$error = true;
$errormsg = 'Fehler beim Speichern des Benutzers:'.$benutzer->errormsg;
}
}
//Mitarbeiter anlegen
if(!$error)
{
$mitarbeiter = new mitarbeiter();
$mitarbeiter->uid = $uid;
$mitarbeiter->personalnummer = $personalnummer;
$mitarbeiter->kurzbz = $kurzbz;
$mitarbeiter->lektor = $lektor;
$mitarbeiter->aktiv = true;
$mitarbeiter->fixangestellt = true;
$mitarbeiter->fixangestellt = $fixangestellt;
$mitarbeiter->stundensatz = 0;
$mitarbeiter->bismelden = true;
$mitarbeiter->anmerkung = $anmerkungen;
$mitarbeiter->ausbildungcode = $letzteausbildung;
$mitarbeiter->insertamum = date('Y-m-d H:i:s');
$mitarbeiter->insertvon = $user;
if($mitarbeiter->save(true, false))
{
$error = false;
}
else
else
{
$error = true;
$errormsg = 'Fehler beim Speichern des Mitarbeiters:'.$mitarbeiter->errormsg;
}
}
//Adresse anlegen
if($ueberschreiben!='' && !($plz=='' && $adresse=='' && $ort==''))
{
@@ -728,18 +729,18 @@ if($geburtsdatum!='')
$geburtsdatum_error=true;
}
}
else
else
{
if(!mb_ereg("([0-9]{4})-([0-9]{2})-([0-9]{2})",$geburtsdatum))
$geburtsdatum_error=true;
}
if($geburtsdatum_error)
echo "Format des Geburtsdatums ist ungueltig!";
}
if(($vorname=='' && $nachname=='') || $geburtsdatum_error || $geburtsdatum=='')
echo "<form method='POST' onsubmit='return checkInput1();'>";
else
else
echo "<form method='POST'>";
?>
<!-- <form method='POST'>-->
@@ -773,7 +774,7 @@ foreach ($nation->nation as $row)
{
if($row->code==$adresse_nation)
$selected='selected';
else
else
$selected='';
echo "<option value='$row->code' $selected>$row->langtext</option>";
}
@@ -787,10 +788,10 @@ if($adresse_nation=='A' && $plz!='')
{
echo getGemeindeDropDown($plz);
}
else
else
{
echo '<font color="gray">Bitte zuerst eine Postleitzahl eintragen</font>';
}
}
//wenn der Ort per EMail-Import von der www kommt und der Ort in der Gemeindetabelle
//nicht gefunden wird, dann wird der Ort in Klammer neben dem DropDown angezeigt
@@ -828,6 +829,7 @@ if($result = $db->db_query($qry))
echo '</SELECT>';
echo '</td></tr>';
echo '<tr><td>Lektor</td><td><input type="checkbox" name="lektor" '.($lektor?'checked':'').' /></td></tr>';
echo '<tr><td>Fixangestellt</td><td><input type="checkbox" name="fixangestellt" '.($fixangestellt?'checked':'').' /></td></tr>';
echo '<tr><td>Personalnummer</td><td><input type="text" name="personalnummer" size="4" value="'.$personalnummer.'" /> (optional)</td></tr>';
echo '<tr><td>Anmerkungen</td><td><textarea id="anmerkung" name="anmerkungen">'.$anmerkungen.'</textarea></td></tr>';
echo '<tr><td></td><td>';
@@ -851,7 +853,7 @@ Felder die mit einem * gekennzeichnet sind müssen ausgefüllt werden!
//Vorschlaege laden
if($geburtsdatum!='')
{
{
if(mb_ereg("([0-9]{4})-([0-9]{2})-([0-9]{2})",$geburtsdatum))
{
$where = " gebdatum='".$geburtsdatum."'";
@@ -868,7 +870,7 @@ if($vorname!='' && $nachname!='')
if($where!='')
{
$qry = "SELECT * FROM public.tbl_person WHERE $where ORDER BY nachname, vorname, gebdatum";
if($result = $db->db_query($qry))
{
echo '<table style="margin-top: 0px" class="tablesorter" id="t1"><thead><tr><th></th><th>Nachname</th><th>Vorname</th><th>Weitere<br/>Vornamen</th><th>GebDatum</th><th>SVNR</th><th>Geschlecht</th><th>Adresse</th><th>Status</th><th>Details</th></tr></thead>';