From 311f914d0bf3b908c7c9ed424fbd618c938d3c48 Mon Sep 17 00:00:00 2001 From: oesi Date: Wed, 16 Sep 2015 17:55:01 +0200 Subject: [PATCH] =?UTF-8?q?Diverse=20Funktionen=20hinzugef=C3=BCgt=20die?= =?UTF-8?q?=20f=C3=BCr=20die=20Verwendung=20in=20Addons=20ben=C3=B6tigt=20?= =?UTF-8?q?werden?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- include/bankverbindung.class.php | 53 ++++++++++++++++++++++++++++++++ include/lehreinheit.class.php | 2 +- include/mitarbeiter.class.php | 50 ++++++++++++++++++++++++++++-- include/vertrag.class.php | 8 +++-- 4 files changed, 108 insertions(+), 5 deletions(-) diff --git a/include/bankverbindung.class.php b/include/bankverbindung.class.php index dde3cd884..b9056f3b8 100644 --- a/include/bankverbindung.class.php +++ b/include/bankverbindung.class.php @@ -375,5 +375,58 @@ class bankverbindung extends basis_db return false; } } + + + /** + * Laedt die Bankverbindung einer Person + * @param $person_id + * @return true wenn ok, false im Fehlerfall + */ + public function load_pers_verrechnung($person_id) + { + if(!is_numeric($person_id)) + { + $this->errormsg = 'Person_id ist ungueltig'; + return false; + } + + $qry = "SELECT * FROM public.tbl_bankverbindung WHERE person_id=".$this->db_add_param($person_id, FHC_INTEGER)." ORDER BY verrechnung DESC NULLS LAST LIMIT 1"; + + if($this->db_query($qry)) + { + if($row = $this->db_fetch_object()) + { + $this->bankverbindung_id = $row->bankverbindung_id; + $this->person_id = $row->person_id; + $this->name = $row->name; + $this->anschrift = $row->anschrift; + $this->bic = $row->bic; + $this->blz = $row->blz; + $this->iban = $row->iban; + $this->kontonr = $row->kontonr; + $this->typ = $row->typ; + $this->verrechnung = $this->db_parse_bool($row->verrechnung); + $this->updateamum = $row->updateamum; + $this->updatevon = $row->updatevon; + $this->insertamum = $row->insertamum; + $this->insertvon = $row->insertvon; + $this->ext_id = $row->ext_id; + $this->oe_kurzbz = $row->oe_kurzbz; + + return true; + } + else + { + $this->errormsg = 'Keine Bankverbindung gefunden'; + return false; + } + } + else + { + $this->errormsg = 'Fehler beim Laden der Daten'; + return false; + } + } + } ?> diff --git a/include/lehreinheit.class.php b/include/lehreinheit.class.php index 0fa1c3bef..3219f394e 100644 --- a/include/lehreinheit.class.php +++ b/include/lehreinheit.class.php @@ -958,7 +958,7 @@ class lehreinheit extends basis_db FROM lehre.tbl_lehreinheit JOIN lehre.tbl_lehrveranstaltung as lehrfach ON(lehrfach_id=lehrfach.lehrveranstaltung_id) - JOIN public.tbl_fachbereich USING(oe_kurzbz) + LEFT JOIN public.tbl_fachbereich USING(oe_kurzbz) JOIN lehre.tbl_lehrveranstaltung ON(tbl_lehreinheit.lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id) WHERE tbl_lehreinheit.lehreinheit_id=".$this->db_add_param($lehreinheit_id, FHC_INTEGER).';'; diff --git a/include/mitarbeiter.class.php b/include/mitarbeiter.class.php index c55d9cdac..68d86593d 100644 --- a/include/mitarbeiter.class.php +++ b/include/mitarbeiter.class.php @@ -1094,7 +1094,7 @@ class mitarbeiter extends benutzer /** * Liefert MitarbeiterInnen für die Verwaltung der Zutrittskarten - * + * * @param $filter Buchstabe mit dem der Mitarbeiter beginnt * @param $fixangestellt false wenn externer mitarbeiter * @param $studSemArray Array mit Studiensemestern in denen der externe Lektor zumindest in einem Unterrichtet haben soll oder NULL. Wenn NULL werden nur externe Mitarbeiter ohne Lehrauftrag ausgegeben. @@ -1120,7 +1120,7 @@ class mitarbeiter extends benutzer (SELECT * FROM lehre.tbl_lehreinheitmitarbeiter JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) WHERE tbl_lehreinheitmitarbeiter.mitarbeiter_uid=uid) "; - else + else $qry.=" AND NOT fixangestellt AND EXISTS (SELECT * FROM lehre.tbl_lehreinheitmitarbeiter JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) @@ -1219,5 +1219,51 @@ class mitarbeiter extends benutzer } return false; } + + /** + * Laedt einen Mitarbeiter anhand der Personalnummer + * + * @param $uid + * @return true wenn ok, sonst false + */ + public function getMitarbeiterFromPersonalnummer($personalnummer) + { + $qry = "SELECT * FROM public.tbl_mitarbeiter + WHERE personalnummer=".$this->db_add_param($personalnummer).";"; + + if($this->db_query($qry)) + { + if($row = $this->db_fetch_object()) + { + if(!benutzer::load($row->mitarbeiter_uid)) + return false; + + $this->personalnummer = $row->personalnummer; + $this->kurzbz = $row->kurzbz; + $this->lektor = $this->db_parse_bool($row->lektor); + $this->fixangestellt = $this->db_parse_bool($row->fixangestellt); + $this->standort_id = $row->standort_id; + $this->telefonklappe = $row->telefonklappe; + $this->ort_kurzbz = $row->ort_kurzbz; + $this->stundensatz = $row->stundensatz; + $this->anmerkung = $row->anmerkung; + $this->ext_id_mitarbeiter = $row->ext_id; + $this->bismelden = $this->db_parse_bool($row->bismelden); + $this->kleriker = $this->db_parse_bool($row->kleriker); + + return true; + } + else + { + $this->errormsg = "Kein Eintrag gefunden fuer den Benutzer\n"; + return false; + } + } + else + { + $this->errormsg = "Fehler beim Laden der Daten\n"; + return false; + } + } } ?> diff --git a/include/vertrag.class.php b/include/vertrag.class.php index 43eab1c77..7244e6dd4 100644 --- a/include/vertrag.class.php +++ b/include/vertrag.class.php @@ -898,10 +898,12 @@ class vertrag extends basis_db // (Lehreinheiten und Betreuungen) // plus Sonderhonorare die in diesem Zeitraum angelegt wurden $qry = "SELECT - * + tbl_vertrag.* FROM lehre.tbl_vertrag + JOIN public.tbl_benutzer USING(person_id) WHERE + ( EXISTS (SELECT 1 FROM @@ -933,9 +935,11 @@ class vertrag extends basis_db lehre.tbl_projektbetreuer WHERE vertrag_id=tbl_vertrag.vertrag_id) + )) AND vertragsdatum<=".$this->db_add_param($datum)." AND vertragsdatum>=".$this->db_add_param($prevstsemende)." - )"; + AND tbl_benutzer.uid=".$this->db_add_param($mitarbeiter_uid); + if($result = $this->db_query($qry)) { while($row = $this->db_fetch_object($result))