From 798c34efbef0a4a9e39416d9da36e026502689d3 Mon Sep 17 00:00:00 2001 From: oesi Date: Tue, 1 Dec 2015 18:11:02 +0100 Subject: [PATCH] =?UTF-8?q?Diverse=20Funktionen=20hinzugef=C3=BCgt=20zur?= =?UTF-8?q?=20Ermittlung=20der=20Lektoren=20und=20Koordinatoren=20einer=20?= =?UTF-8?q?LV?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- include/benutzerfunktion.class.php | 50 ++++++------- include/lehreinheitmitarbeiter.class.php | 45 ++++++++++++ include/lehrveranstaltung.class.php | 88 +++++++++++++++++++++-- skin/images/merge.png | Bin 0 -> 2266 bytes 4 files changed, 154 insertions(+), 29 deletions(-) create mode 100644 skin/images/merge.png diff --git a/include/benutzerfunktion.class.php b/include/benutzerfunktion.class.php index 06cc3af5d..9a08a1b0b 100644 --- a/include/benutzerfunktion.class.php +++ b/include/benutzerfunktion.class.php @@ -23,7 +23,7 @@ * Klasse benutzerfunktion (FAS-Online) * @create 04-12-2006 */ -require_once(dirname(__FILE__).'/basis_db.class.php'); +require_once(dirname(__FILE__).'/basis_db.class.php'); class benutzerfunktion extends basis_db { @@ -57,7 +57,7 @@ class benutzerfunktion extends basis_db public function __construct($benutzerfunktion_id=null) { parent::__construct(); - + if($benutzerfunktion_id != null) $this->load($benutzerfunktion_id); } @@ -106,7 +106,7 @@ class benutzerfunktion extends basis_db */ public function benutzerfunktion_exists($uid, $benutzerfunktion) { - $qry = "SELECT count(*) as anzahl FROM public.tbl_benutzerfunktion + $qry = "SELECT count(*) as anzahl FROM public.tbl_benutzerfunktion WHERE uid=".$this->db_add_param($uid)." AND funktion_kurzbz=".$this->db_add_param($benutzerfunktion); if($row = $this->db_fetch_object($this->db_query($qry))) @@ -131,8 +131,8 @@ class benutzerfunktion extends basis_db */ public function getBenutzerFunktion($uid, $funktion_kurzbz, $oe_kurzbz) { - $qry = "SELECT * FROM public.tbl_benutzerfunktion - WHERE uid=".$this->db_add_param($uid)." AND funktion_kurzbz=".$this->db_add_param($funktion_kurzbz)." + $qry = "SELECT * FROM public.tbl_benutzerfunktion + WHERE uid=".$this->db_add_param($uid)." AND funktion_kurzbz=".$this->db_add_param($funktion_kurzbz)." AND oe_kurzbz=".$this->db_add_param($oe_kurzbz); if($result = $this->db_query($qry)) @@ -168,7 +168,7 @@ class benutzerfunktion extends basis_db return false; } } - + /** * Laedt mehrere BenutzerFunktionen * @param funktion_kurzbz, studiengang_kz, semester @@ -177,7 +177,7 @@ class benutzerfunktion extends basis_db */ public function getBenutzerFunktionen($funktion_kurzbz, $oe_kurzbz='', $semester='', $uid='') { - $qry = "SELECT * FROM public.tbl_benutzerfunktion + $qry = "SELECT * FROM public.tbl_benutzerfunktion WHERE funktion_kurzbz=".$this->db_add_param($funktion_kurzbz)." AND (datum_bis >= now() OR datum_bis IS NULL) AND (datum_von <= now() OR datum_von IS NULL)"; @@ -188,7 +188,7 @@ class benutzerfunktion extends basis_db $qry.=" AND semester=".$this->db_add_param($semester); if($uid!='') $qry.=" AND uid=".$this->db_add_param($uid); - + $qry.=" ORDER BY funktion_kurzbz, oe_kurzbz, semester"; if($result = $this->db_query($qry)) @@ -196,7 +196,7 @@ class benutzerfunktion extends basis_db while($row = $this->db_fetch_object($result)) { $obj = new benutzerfunktion(); - + $obj->benutzerfunktion_id = $row->benutzerfunktion_id; $obj->fachbereich_kurzbz = $row->fachbereich_kurzbz; $obj->uid = $row->uid; @@ -211,9 +211,9 @@ class benutzerfunktion extends basis_db $obj->datum_bis = $row->datum_bis; $obj->bezeichnung = $row->bezeichnung; $obj->wochenstunden = $row->wochenstunden; - + $this->result[] = $obj; - + } return true; } @@ -283,7 +283,7 @@ class benutzerfunktion extends basis_db $this->errormsg='Benutzerfunktion_id muss eine gueltige Zahl sein'; return false; } - + $qry = "DELETE FROM public.tbl_benutzerfunktion WHERE benutzerfunktion_id=".$this->db_add_param($benutzerfunktion_id, FHC_INTEGER); if(!$this->db_query($qry)) { @@ -293,7 +293,7 @@ class benutzerfunktion extends basis_db else return true; } - + /** * Speichert den aktuellen Datensatz * @return true wenn ok, false im Fehlerfall @@ -379,13 +379,13 @@ class benutzerfunktion extends basis_db $this->benutzerfunktion_id = $row->id; $this->db_query('COMMIT;'); } - else + else { $this->errormsg = 'Fehler beim Auslesen der Sequence'; $this->db_query('ROLLBACK'); } } - else + else { $this->errormsg = 'Fehler beim Auslesen der Sequence'; $this->db_query('ROLLBACK'); @@ -399,7 +399,7 @@ class benutzerfunktion extends basis_db return false; } } - + /** * Lädt alle Benutzerfunktionen zu einer UID * @param type $uid UID des Mitarbeiters @@ -410,7 +410,7 @@ class benutzerfunktion extends basis_db */ public function getBenutzerFunktionByUid($uid, $funktion_kurzbz=null, $startZeitraum=null, $endeZeitraum=null) { - $qry = "SELECT * FROM public.tbl_benutzerfunktion + $qry = "SELECT * FROM public.tbl_benutzerfunktion WHERE uid=".$this->db_add_param($uid); if(!is_null($funktion_kurzbz)) { @@ -458,7 +458,7 @@ class benutzerfunktion extends basis_db return false; } } - + /** * Laedt alle Benutzerfunktionen in einer Organisationseinheit * @param $oe_kurzbz @@ -470,7 +470,7 @@ class benutzerfunktion extends basis_db */ public function getOeFunktionen($oe_kurzbz, $funktionen_kurzbz=null, $startZeitraum=null, $endeZeitraum=null) { - $qry = "SELECT * FROM public.tbl_benutzerfunktion + $qry = "SELECT * FROM public.tbl_benutzerfunktion WHERE oe_kurzbz=".$this->db_add_param($oe_kurzbz); if(!is_null($funktionen_kurzbz)) @@ -486,15 +486,15 @@ class benutzerfunktion extends basis_db { $qry .=' AND (datum_von IS NULL OR datum_von <='.$this->db_add_param($endeZeitraum).')'; } - + $qry.=" ORDER BY bezeichnung, uid"; - + if($result = $this->db_query($qry)) { while($row = $this->db_fetch_object($result)) { $obj = new benutzerfunktion(); - + $obj->benutzerfunktion_id = $row->benutzerfunktion_id; $obj->fachbereich_kurzbz = $row->fachbereich_kurzbz; $obj->uid = $row->uid; @@ -509,9 +509,9 @@ class benutzerfunktion extends basis_db $obj->datum_bis = $row->datum_bis; $obj->bezeichnung = $row->bezeichnung; $obj->wochenstunden = $row->wochenstunden; - + $this->result[] = $obj; - + } return true; } @@ -521,5 +521,7 @@ class benutzerfunktion extends basis_db return false; } } + + } ?> diff --git a/include/lehreinheitmitarbeiter.class.php b/include/lehreinheitmitarbeiter.class.php index 226b9d143..b49c9c99f 100644 --- a/include/lehreinheitmitarbeiter.class.php +++ b/include/lehreinheitmitarbeiter.class.php @@ -489,4 +489,49 @@ class lehreinheitmitarbeiter extends basis_db return $ret; } + + /** + * Laedt die Lektoren einer Lehrveranstlatung in einem Studiensemester + * @param lehrveranstaltung_id + * @param studiensemester_kurzbz + * @return array + true wenn ok / false im Fehlerfall + */ + public function getMitarbeiterLV($lehrveranstaltung_id, $studiensemester_kurzbz) + { + if(!is_numeric($lehrveranstaltung_id)) + { + $this->errormsg = 'Lehreinheit_id ist ungueltig'; + return false; + } + + $qry = "SELECT + vw_mitarbeiter.uid, vorname, nachname, titelpre, titelpost + FROM + lehre.tbl_lehreinheitmitarbeiter + JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) + JOIN campus.vw_mitarbeiter ON(tbl_lehreinheitmitarbeiter.mitarbeiter_uid=vw_mitarbeiter.uid) + WHERE + lehrveranstaltung_id=".$this->db_add_param($lehrveranstaltung_id, FHC_INTEGER)." + AND tbl_lehreinheit.studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz); + $qry .=" ORDER BY nachname, vorname;"; + + if($this->db_query($qry)) + { + while($row = $this->db_fetch_object()) + { + $obj = new stdClass(); + $obj->vorname = $row->vorname; + $obj->nachname = $row->nachname; + $obj->uid = $row->uid; + $obj->titelpre = $row->titelpre; + $obj->titelpost = $row->titelpost; + + $this->result[] = $obj; + } + return true; + } + + return false; + } + } diff --git a/include/lehrveranstaltung.class.php b/include/lehrveranstaltung.class.php index d4a63a2f5..e2b51ee11 100644 --- a/include/lehrveranstaltung.class.php +++ b/include/lehrveranstaltung.class.php @@ -294,7 +294,7 @@ class lehrveranstaltung extends basis_db if(!is_null($lehrtyp)) $qry .= " AND lehrtyp_kurzbz=".$this->db_add_param($lehrtyp); - + if(!is_null($orgform) && $orgform!='') $qry .= " AND orgform_kurzbz=".$this->db_add_param($orgform); @@ -899,7 +899,7 @@ class lehrveranstaltung extends basis_db $lv_obj->incoming = $row->incoming; $lv_obj->zeugnis = $this->db_parse_bool($row->zeugnis); $lv_obj->projektarbeit = $this->db_parse_bool($row->projektarbeit); - $lv_obj->zeugnis = $row->koordinator; + $lv_obj->koordinator = $row->koordinator; $lv_obj->bezeichnung_english = $row->bezeichnung_english; $lv_obj->orgform_kurzbz = $row->orgform_kurzbz; $lv_obj->lehrtyp_kurzbz = $row->lehrtyp_kurzbz; @@ -2195,7 +2195,7 @@ class lehrveranstaltung extends basis_db } /** - * Laedt den LV-Leiter einer Lehrveranstaltung, wenn keiner der Lektoren als LVLeiter eingetragen ist, + * Laedt den LV-Leiter einer Lehrveranstaltung, wenn keiner der Lektoren als LVLeiter eingetragen ist, * wird der erstbeste Lektor geliefert * @param $lehrveranstaltung_id ID der Lehrveranstaltung * @param $studiensemester_kurzbz Studiensemester @@ -2203,10 +2203,10 @@ class lehrveranstaltung extends basis_db */ public function getLVLeitung($lehrveranstaltung_id, $studiensemester_kurzbz) { - $qry = "SELECT + $qry = "SELECT mitarbeiter_uid, CASE WHEN lehrfunktion_kurzbz='LV-Leitung' THEN 1 ELSE 2 END as sort - FROM + FROM lehre.tbl_lehreinheit JOIN lehre.tbl_lehreinheitmitarbeiter USING(lehreinheit_id) WHERE @@ -2232,5 +2232,83 @@ class lehrveranstaltung extends basis_db return false; } } + + /** + * Liefert den Koordinator einer Lehrveranstaltung + * @param $lehrveranstaltung_id + * @param $studiensemester_kurzbz + */ + public function getKoordinator($lehrveranstaltung_id, $studiensemester_kurzbz=null) + { + $qry = " + SELECT a.uid, vorname, nachname, titelpre, titelpost + FROM + ( + SELECT + koordinator as uid + FROM + lehre.tbl_lehrveranstaltung + WHERE + lehrveranstaltung_id=".$this->db_add_param($lehrveranstaltung_id, FHC_INTEGER)." + UNION + SELECT + uid + FROM + lehre.tbl_lehreinheit + JOIN lehre.tbl_lehrveranstaltung as lehrfach on(tbl_lehreinheit.lehrfach_id = lehrfach.lehrveranstaltung_id) + JOIN public.tbl_fachbereich ON(lehrfach.oe_kurzbz=tbl_fachbereich.oe_kurzbz) + JOIN public.tbl_benutzerfunktion ON(tbl_fachbereich.fachbereich_kurzbz=tbl_benutzerfunktion.fachbereich_kurzbz) + WHERE + tbl_benutzerfunktion.funktion_kurzbz='fbk' + AND (tbl_benutzerfunktion.datum_von is null OR tbl_benutzerfunktion.datum_von<=now()) + AND (tbl_benutzerfunktion.datum_bis is null OR tbl_benutzerfunktion.datum_bis>=now()) + AND tbl_lehreinheit.lehrveranstaltung_id=".$this->db_add_param($lehrveranstaltung_id, FHC_INTEGER)." + AND tbl_benutzerfunktion.oe_kurzbz=( + SELECT + tbl_studiengang.oe_kurzbz + FROM + lehre.tbl_lehrveranstaltung + JOIN public.tbl_studiengang USING(studiengang_kz) + WHERE lehrveranstaltung_id=".$this->db_add_param($lehrveranstaltung_id, FHC_INTEGER)." + ) + AND EXISTS( + SELECT + lehrveranstaltung_id + FROM + lehre.tbl_lehrveranstaltung + WHERE + lehrveranstaltung_id=".$this->db_add_param($lehrveranstaltung_id, FHC_INTEGER)." + AND koordinator is null + ) + "; + if(!is_null($studiensemester_kurzbz)) + $qry.=" AND tbl_lehreinheit.studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz); + $qry.=" + ) as a + JOIN campus.vw_mitarbeiter ON(a.uid=vw_mitarbeiter.uid) + WHERE vw_mitarbeiter.aktiv"; + + if($result = $this->db_query($qry)) + { + while($row = $this->db_fetch_object($result)) + { + $obj = new stdClass(); + + $obj->uid = $row->uid; + $obj->vorname = $row->vorname; + $obj->nachname = $row->nachname; + $obj->titelpost = $row->titelpost; + $obj->titelpre = $row->titelpre; + + $this->result[] = $obj; + } + return true; + } + else + { + $this->errormsg = 'Fehler beim Laden der Daten'; + return false; + } + } } ?> diff --git a/skin/images/merge.png b/skin/images/merge.png new file mode 100644 index 0000000000000000000000000000000000000000..787971450a4b2e42ed310e434ab34a1cf9d61f5f GIT binary patch literal 2266 zcmV<02qpK4P)RA_G03tk(`9qKu*;T( zDN#wIGKOpsCyvsks3w&!6x2{C>al z@4{I*D`(}b{69sdskCX+ro}-J{45B9yw)0H3`!N7iU`g*y!SZg#;J&4t({O-S+BBf z6h-y zySoe9wr%?|}WNZZ2N6iubo}h3l?k&YCsj08|2*3RtCuY9=u6 z$}7Kr{sk8lXIX2MF-48jTBEdvDB|k7?!q2DiXR)}`0m}zU$~IrJ$pDZFu=w4-a9FY zQw5lcKsK8lKK|;fGsRkT5TL@a_)VyZNtA$i5yX2&_U@&wrG==jjxBfGLF0xE=-{Mh zrU4!V0iB(lH#%AjC?G76@ZMv9pj57a5U_wL zl_A0ykexf1Pe1&S?8=qw+_ft;m@o|K?Ccyzz*?K0KukicMM?leAXJJ>=^Ju#)9`>* zib84jL@DZ5tzxLTnbtLHxcrt|PAiZrk0H|%P(h$_bLL=AoIn9tAXfsPg)#|KY7~u( zP{`+t@c`u3ujk#tLC(ANRvIt6jDdlHnvN7&Yg$@bCb&~-0-yHwHnl8SGU!FnKpx8O zq5#o4G}&xp5Cm%Y=uxhjH4Ay^C43mdO*ipQUmvXxJb-O&9S1(GUmIg+X=y3%2Q^#Z zTL%v+4j!De(qoT3wz{jUYinCuTf-|i-;A@CaOO;o-*_YMzW+XJH*Y4>)Kv9YkY;16 z1#ndYX~cV9oE^ZNdoBmpujjxgpD^#yN9iw-uXYxy1f0v|Sh8eE)!&k1)f~iANwTxi zp&@#`Cv)C;wB2{#1i({)S4t6v;iN9r{g*dc+j(&+;589|lb4U?<;!VoZ)b67rHOaX z$xfElPNJ0}BK+{F7kT~f{hZU>z|8C!CJ05%BEaKZG)x_|)Y^a87W}Vbm-8ba(=Rldz|jxx{uFJMC^IZbNKKGN-2UcBnTD3m}ew!F~c73y}jy;S978E6&-x{2i+{cx`6C# z|%Od*wBf?CEFcY$@Z6;1d7^6!B;<3RyUwlKg z7Ux1*=Xx+?Q!k_O>sfq!&{{Kp{`{&Sr_--4Sis5^OZocuHq)_cDSdqk6NFfEfW7HoJO3_^bS$skT{XblYwHR+5QGtgR(>nE2D`2Ekn#=N

gt*! zB5R##FH|KHsxr$Bx6ml)jtx z0Y+1N>k1N@Hm@nYg#l6NYg6V6(-BDPLLP7lFmXP9I*LUSzeS8+<&y1O0;Ef*PiQn9 z_*w{18Z0?L5{OBtE@?G#Ql)*eA4hT4Z5r^9-i4~Q)0}h{odB;A-?(lJCMJ-yRBWx- o0yP6UQ=+P9T%IIQsi!6X1Ag>u5sy5*o&W#<07*qoM6N<$f}Es7umAu6 literal 0 HcmV?d00001