Diverse Funktionen hinzugefügt zur Ermittlung der Lektoren und Koordinatoren einer LV

This commit is contained in:
oesi
2015-12-01 18:11:02 +01:00
parent 11321ebd99
commit 798c34efbe
4 changed files with 154 additions and 29 deletions
+26 -24
View File
@@ -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;
}
}
}
?>
+45
View File
@@ -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;
}
}
+83 -5
View File
@@ -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;
}
}
}
?>
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB