mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-24 02:12:17 +00:00
Merge branch 'feature-7274/SAPSF_neuer_User_wird_aus_SF_geholt_und_im_FHC_angelegt' into feature-6656/Worker_queue
This commit is contained in:
@@ -33,4 +33,97 @@ class Benutzer_model extends DB_Model
|
||||
|
||||
return $this->execQuery($sql, array($person_id, $oe_kurzbz));
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if alias exists
|
||||
* @param $alias
|
||||
*/
|
||||
public function aliasExists($alias)
|
||||
{
|
||||
$this->addSelect('1');
|
||||
$result = $this->loadWhere(array('alias' => $alias));
|
||||
|
||||
if (!isError($result))
|
||||
{
|
||||
if (hasData($result))
|
||||
{
|
||||
$result = success(array(true));
|
||||
}
|
||||
else if (!hasData($result))
|
||||
{
|
||||
$result = success(array(false));
|
||||
}
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Generates alias for a uid.
|
||||
* @param $uid
|
||||
* @return array the alias
|
||||
*/
|
||||
public function generateAlias($uid)
|
||||
{
|
||||
$aliasres = '';
|
||||
$this->addSelect('vorname, nachname');
|
||||
$this->addJoin('public.tbl_person', 'person_id');
|
||||
$nameresult = $this->loadWhere(array('uid' => $uid));
|
||||
|
||||
if (hasData($nameresult))
|
||||
{
|
||||
$aliasdata = getData($nameresult);
|
||||
$alias = $this->_sanitizeAliasName($aliasdata[0]->vorname).'.'.$this->_sanitizeAliasName($aliasdata[0]->nachname);
|
||||
$aliasexists = $this->aliasExists($alias);
|
||||
|
||||
if (hasData($aliasexists) && !getData($aliasexists)[0])
|
||||
$aliasres = $alias;
|
||||
|
||||
}
|
||||
return success($aliasres);
|
||||
}
|
||||
|
||||
// --------------------------------------------------------------------------------------------
|
||||
// Private methods
|
||||
|
||||
/**
|
||||
* Sanitizes a string used for alias. Replaces special characters, spaces, upper case.
|
||||
* @param string $str
|
||||
* @return string
|
||||
*/
|
||||
private function _sanitizeAliasName($str)
|
||||
{
|
||||
$enc = 'UTF-8';
|
||||
|
||||
$acentos = array(
|
||||
'A' => '/À|Á|Â|Ã|Å/',
|
||||
'Ae' => '/Ä/',
|
||||
'a' => '/à|á|â|ã|å/',
|
||||
'ae'=> '/ä/',
|
||||
'C' => '/Ç/',
|
||||
'c' => '/ç/',
|
||||
'E' => '/È|É|Ê|Ë/',
|
||||
'e' => '/è|é|ê|ë/',
|
||||
'I' => '/Ì|Í|Î|Ï/',
|
||||
'i' => '/ì|í|î|ï/',
|
||||
'N' => '/Ñ/',
|
||||
'n' => '/ñ/',
|
||||
'O' => '/Ò|Ó|Ô|Õ/',
|
||||
'Oe' => '/Ö/',
|
||||
'o' => '/ò|ó|ô|õ/',
|
||||
'oe' => '/ö/',
|
||||
'U' => '/Ù|Ú|Û/',
|
||||
'Ue' => '/Ü/',
|
||||
'u' => '/ù|ú|û/',
|
||||
'ue' => '/ü/',
|
||||
'Y' => '/Ý/',
|
||||
'y' => '/ý|ÿ/',
|
||||
'a.' => '/ª/',
|
||||
'o.' => '/º/',
|
||||
'ss' => '/ß/',
|
||||
);
|
||||
|
||||
$str = preg_replace($acentos, array_keys($acentos), htmlentities($str,ENT_NOQUOTES, $enc));
|
||||
return mb_strtolower(str_replace(' ','_', $str));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,6 +10,7 @@ class Kontakt_model extends DB_Model
|
||||
parent::__construct();
|
||||
$this->dbTable = 'public.tbl_kontakt';
|
||||
$this->pk = 'kontakt_id';
|
||||
$this->load->model('ressource/Mitarbeiter_model', 'MitarbeiterModel');
|
||||
}
|
||||
|
||||
public function getWholeKontakt($kontakt_id, $person_id = null, $kontakttyp = null)
|
||||
@@ -59,4 +60,63 @@ class Kontakt_model extends DB_Model
|
||||
|
||||
return $this->execQuery($sql, array($person_id, $kontakttyp));
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt einen Kontakt eines Standortes
|
||||
* Es wird nur der erste Eintrag zurueckgeliefert!
|
||||
* @param $standort_id
|
||||
* @param $kontakttyp
|
||||
*/
|
||||
public function getFirmaKontakttyp($standort_id, $kontakttyp)
|
||||
{
|
||||
if (!is_numeric($standort_id))
|
||||
{
|
||||
return error('StandortID ist ungueltig');
|
||||
}
|
||||
|
||||
$qry = "SELECT kontakt, kontakt_id FROM public.tbl_kontakt WHERE standort_id=? AND kontakttyp=? ORDER BY kontakt_id LIMIT 1;";
|
||||
|
||||
return $this->execQuery($qry, array('standort_id' => $standort_id, 'kontakttyp' => $kontakttyp));
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets Firmentelefon for a uid, can be Vorwahl with Telefonklappe or Firmenhandy
|
||||
* @param $uid
|
||||
*/
|
||||
public function getFirmentelefon($uid)
|
||||
{
|
||||
$firmentelefon = success(array());
|
||||
|
||||
$this->MitarbeiterModel->addSelect('standort_id, telefonklappe, person_id');
|
||||
$this->MitarbeiterModel->addJoin('public.tbl_benutzer', 'tbl_mitarbeiter.mitarbeiter_uid = tbl_benutzer.uid');
|
||||
$mitarbeiter = $this->MitarbeiterModel->load(array('uid' => $uid));
|
||||
|
||||
if (hasData($mitarbeiter))
|
||||
{
|
||||
$mitarbeiter = getData($mitarbeiter);
|
||||
if (isEmptyString($mitarbeiter[0]->telefonklappe))
|
||||
{
|
||||
$this->addSelect('kontakt');
|
||||
$this->addOrder('updateamum, insertamum', 'DESC');
|
||||
$this->addLimit(1);
|
||||
$firmenhandy = $this->loadWhere(array('person_id' => $mitarbeiter[0]->person_id, 'kontakttyp' => 'firmenhandy'));
|
||||
if (hasData($firmenhandy))
|
||||
{
|
||||
$firmenhandy = getData($firmenhandy);
|
||||
$firmentelefon = success(array('kontakt' => $firmenhandy[0]->kontakt, 'telefonklappe' => ''));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$firmaKontakttyp = $this->getFirmaKontakttyp($mitarbeiter[0]->standort_id, 'telefon');
|
||||
if (hasData($firmaKontakttyp))
|
||||
{
|
||||
$vorwahl = getData($firmaKontakttyp);
|
||||
$vorwahl = $vorwahl[0]->kontakt;
|
||||
$firmentelefon = success(array('kontakt' => $vorwahl, 'telefonklappe' => $mitarbeiter[0]->telefonklappe));
|
||||
}
|
||||
}
|
||||
}
|
||||
return $firmentelefon;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -40,4 +40,47 @@ class Mitarbeiter_model extends DB_Model
|
||||
return success(false);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt das Personal
|
||||
*
|
||||
* @param $fix wenn true werden nur fixangestellte geladen
|
||||
* @param $aktiv wenn true werden nur aktive geladen, wenn false dann nur inaktve, wenn null dann alle
|
||||
* @param $verwendung wenn true werden alle geladen die eine BIS-Verwendung eingetragen haben
|
||||
* @return array
|
||||
*/
|
||||
public function getPersonal($aktiv, $fix, $verwendung)
|
||||
{
|
||||
$qry = "SELECT DISTINCT ON(mitarbeiter_uid) *,
|
||||
tbl_benutzer.aktiv as aktiv,
|
||||
tbl_mitarbeiter.insertamum,
|
||||
tbl_mitarbeiter.insertvon,
|
||||
tbl_mitarbeiter.updateamum,
|
||||
tbl_mitarbeiter.updatevon
|
||||
FROM ((public.tbl_mitarbeiter JOIN public.tbl_benutzer ON(mitarbeiter_uid=uid))
|
||||
JOIN public.tbl_person USING(person_id))
|
||||
LEFT JOIN public.tbl_benutzerfunktion USING(uid)
|
||||
WHERE true";
|
||||
|
||||
if ($fix === true)
|
||||
$qry .= " AND fixangestellt=true";
|
||||
elseif ($fix === false)
|
||||
$qry .= " AND fixangestellt=false";
|
||||
|
||||
if ($aktiv === true)
|
||||
$qry .= " AND tbl_benutzer.aktiv=true";
|
||||
elseif ($aktiv === false)
|
||||
$qry .= " AND tbl_benutzer.aktiv=false";
|
||||
|
||||
if ($verwendung === true)
|
||||
{
|
||||
$qry.=" AND EXISTS(SELECT * FROM bis.tbl_bisverwendung WHERE (ende>now() or ende is null) AND tbl_bisverwendung.mitarbeiter_uid=tbl_mitarbeiter.mitarbeiter_uid)";
|
||||
}
|
||||
elseif ($verwendung === false)
|
||||
{
|
||||
$qry.=" AND NOT EXISTS(SELECT * FROM bis.tbl_bisverwendung WHERE (ende>now() or ende is null) AND tbl_bisverwendung.mitarbeiter_uid=tbl_mitarbeiter.mitarbeiter_uid)";
|
||||
}
|
||||
|
||||
return $this->execQuery($qry);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user