diff --git a/include/bisverwendung.class.php b/include/bisverwendung.class.php index 0e4e4fc06..ab8b5a4e4 100644 --- a/include/bisverwendung.class.php +++ b/include/bisverwendung.class.php @@ -587,5 +587,96 @@ class bisverwendung extends basis_db return false; } } + + /** + * Prueft, ob Mitarbeiter habilitiert ist + * @param $uid UID des Mitarbeiters + * @return bool + */ + public function isHabilitiert($uid) + { + $qry = ' + SELECT + * + FROM + bis.tbl_bisverwendung + WHERE + mitarbeiter_uid = '. $this->db_add_param($uid). ' + AND + habilitation = true; + '; + + if ($this->db_query($qry)) + { + return $this->db_num_rows() > 0; + } + } + + /** + * Holt alle Verwendungen eines Mitarbeiters innerhalb des BIS Meldungszeitraums + * @param $uid UID des Mitarbeiters + * @param $stichtag + * @return bool + */ + public function getVerwendungenBISMeldung($uid, $stichtag) + { + $datetime = new DateTime($stichtag); + $stichtag = $datetime->format('Y-m-d'); + $bismeldung_jahr = $datetime->format('Y'); + + $qry = ' + SELECT + *, + CASE + WHEN (beginn is null OR beginn < make_date('. $this->db_add_param($bismeldung_jahr). '::INTEGER, 1, 1)) + THEN make_date('. $this->db_add_param($bismeldung_jahr). '::INTEGER, 1, 1) + ELSE beginn + END as beginn_imBISMeldungsJahr, + CASE + WHEN (ende is null OR ende > make_date('. $this->db_add_param($bismeldung_jahr). '::INTEGER, 12, 31)) + THEN make_date('. $this->db_add_param($bismeldung_jahr). '::INTEGER, 12, 31) + ELSE ende + END as ende_imBISMeldungsJahr + FROM + bis.tbl_bisverwendung + WHERE + mitarbeiter_uid = '. $this->db_add_param($uid).' + AND (beginn <= '. $this->db_add_param($stichtag).' OR beginn is null) + AND (ende >= make_date('. $this->db_add_param($bismeldung_jahr). '::INTEGER, 1, 1) OR ende is null) + ORDER BY ende + '; + + if($this->db_query($qry)) + { + while($row = $this->db_fetch_object()) + { + $obj = new StdClass(); + + $obj->bisverwendung_id = $row->bisverwendung_id; + $obj->mitarbeiter_uid = $row->mitarbeiter_uid; + $obj->vertragsstunden = $row->vertragsstunden; + $obj->ba1code = $row->ba1code; + $obj->ba2code = $row->ba2code; + $obj->verwendung_code = $row->verwendung_code; + $obj->beschausmasscode = $row->beschausmasscode; + $obj->hauptberufcode = $row->hauptberufcode; + $obj->hauptberuflich = $this->db_parse_bool($row->hauptberuflich); + $obj->beginn = $row->beginn; + $obj->ende = $row->ende; + $obj->beginn_imBISMeldungsJahr = $row->beginn_imbismeldungsjahr; + $obj->ende_imBISMeldungsJahr = $row->ende_imbismeldungsjahr; + + + + $this->result[] = $obj; + } + return true; + } + else + { + $this->errormsg = 'Fehler bei der Datenbankabfrage'; + return false; + } + } } ?>