diff --git a/application/models/person/Kontakt_model.php b/application/models/person/Kontakt_model.php index 3f27604e8..36ba05be4 100644 --- a/application/models/person/Kontakt_model.php +++ b/application/models/person/Kontakt_model.php @@ -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; + } } diff --git a/application/models/ressource/Mitarbeiter_model.php b/application/models/ressource/Mitarbeiter_model.php index 523a69fa1..3b0bd2479 100644 --- a/application/models/ressource/Mitarbeiter_model.php +++ b/application/models/ressource/Mitarbeiter_model.php @@ -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)"; }