- ressource/Mitarbeiter_model.php - improved getPersonal method

- person/Kontakt_model.php - added getFormaKontakttyp and get FirmenTelefon methods
This commit is contained in:
Alexei
2020-05-12 19:34:17 +02:00
parent e8648e52ec
commit 704d39095b
2 changed files with 65 additions and 3 deletions
@@ -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 Formenhandy
* @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($firmenhandy[0]->kontakt);
}
}
else
{
$firmaKontakttyp = $this->getFirmaKontakttyp($mitarbeiter[0]->standort_id, 'telefon');
if (hasData($firmaKontakttyp))
{
$vorwahl = getData($firmaKontakttyp);
$vorwahl = $vorwahl[0]->kontakt;
$firmentelefon = success(array($vorwahl.'-'.$mitarbeiter[0]->telefonklappe));
}
}
}
return $firmentelefon;
}
}
@@ -64,17 +64,19 @@ class Mitarbeiter_model extends DB_Model
if ($fix === true)
$qry .= " AND fixangestellt=true";
if ($fix === false)
elseif ($fix === false)
$qry .= " AND fixangestellt=false";
if ($aktiv === true)
$qry .= " AND tbl_benutzer.aktiv=true";
if ($aktiv === false)
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)";
}
if ($verwendung === false)
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)";
}