Kartenverwaltung MA Studiensemester

In der Kartenverwaltung können nun die Studiensemester händisch
ausgewählt werden. Außerdem gibt es einen Filter für externe MA ohne
Lehrauftrag.
This commit is contained in:
kindlm
2015-08-25 11:11:22 +02:00
parent 9d4b444aed
commit cab6d8db3b
3 changed files with 358 additions and 270 deletions
+16 -7
View File
@@ -1093,10 +1093,11 @@ 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
* @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.
* @return boolean
*/
public function getMitarbeiterForZutrittskarte($filter, $fixangestellt=true, $studSemArray)
@@ -1113,11 +1114,19 @@ class mitarbeiter extends benutzer
if($fixangestellt)
$qry.=" AND fixangestellt";
else
$qry.=" AND NOT fixangestellt AND EXISTS
(SELECT * FROM lehre.tbl_lehreinheitmitarbeiter
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
WHERE tbl_lehreinheitmitarbeiter.mitarbeiter_uid=uid
AND tbl_lehreinheit.studiensemester_kurzbz in (".$this->implode4SQL($studSemArray).")) ";
{
if ($studSemArray==null)
$qry.=" AND NOT fixangestellt AND personalnummer>0 AND NOT EXISTS
(SELECT * FROM lehre.tbl_lehreinheitmitarbeiter
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
WHERE tbl_lehreinheitmitarbeiter.mitarbeiter_uid=uid) ";
else
$qry.=" AND NOT fixangestellt AND EXISTS
(SELECT * FROM lehre.tbl_lehreinheitmitarbeiter
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
WHERE tbl_lehreinheitmitarbeiter.mitarbeiter_uid=uid
AND tbl_lehreinheit.studiensemester_kurzbz in (".$this->implode4SQL($studSemArray).")) ";
}
$qry.=" ORDER BY nachname, vorname";
if($result = $this->db_query($qry))
{
+47
View File
@@ -824,6 +824,53 @@ class studiensemester extends basis_db
return false;
}
}
/**
* Liefert ausgehend von heutigen Datum $plus studiensemester in die Zukunft und $minus Studiensemester in die Vergangenheit
*
* @param integer $plus Wieviele Studiensemester in die Zukunft sollen ausgegeben werden.
* @param integer $minus Wieviele Studiensemester in die Vergangenheit sollen ausgegeben werden.
*
* @return true wenn ok, sonst false
*/
public function getPlusMinus($plus=null, $minus=null)
{
if((is_null($plus) || !is_numeric($plus)) || (is_null($minus) || !is_numeric($minus)))
return false;
$qry = "SELECT DISTINCT * FROM public.tbl_studiensemester WHERE studiensemester_kurzbz IN
(
(SELECT studiensemester_kurzbz FROM public.tbl_studiensemester WHERE start >= now()
ORDER BY ende ASC LIMIT $plus)
UNION
(SELECT studiensemester_kurzbz FROM public.tbl_studiensemester WHERE start <= now()
ORDER BY start DESC LIMIT $minus)
)
ORDER BY ende DESC";
if($this->db_query($qry))
{
while($row = $this->db_fetch_object())
{
$stsem_obj = new studiensemester();
$stsem_obj->studiensemester_kurzbz = $row->studiensemester_kurzbz;
$stsem_obj->start = $row->start;
$stsem_obj->ende = $row->ende;
$stsem_obj->bezeichnung = $row->bezeichnung;
$stsem_obj->studienjahr_kurzbz = $row->studienjahr_kurzbz;
$stsem_obj->beschreibung = $row->beschreibung;
$this->studiensemester[] = $stsem_obj;
}
return true;
}
else
{
$this->errormsg = 'Fehler beim Laden der Studiensemester';
return false;
}
}
}
?>