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 000000000..787971450 Binary files /dev/null and b/skin/images/merge.png differ