diff --git a/include/mitarbeiter.class.php b/include/mitarbeiter.class.php
index f6bd3d5d1..c55d9cdac 100644
--- a/include/mitarbeiter.class.php
+++ b/include/mitarbeiter.class.php
@@ -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))
{
diff --git a/include/studiensemester.class.php b/include/studiensemester.class.php
index a83ce397c..70a9b6887 100644
--- a/include/studiensemester.class.php
+++ b/include/studiensemester.class.php
@@ -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;
+ }
+ }
}
?>
diff --git a/vilesci/fhausweis/kartenverwaltung.php b/vilesci/fhausweis/kartenverwaltung.php
index bf4455dc2..fa5cac73c 100755
--- a/vilesci/fhausweis/kartenverwaltung.php
+++ b/vilesci/fhausweis/kartenverwaltung.php
@@ -42,37 +42,57 @@ $studiengang->getAll('oe_kurzbz', true);
$fotostatus = new fotostatus();
$fotostatus->getAllStatusKurzbz();
-
+
$statusStudent=(isset($_REQUEST['select_statusStudent'])?$_REQUEST['select_statusStudent']:null);
$statusMitarbeiter=(isset($_REQUEST['select_statusMitarbeiter'])?$_REQUEST['select_statusMitarbeiter']:null);
$typMitarbeiter =(isset($_REQUEST['select_typ_mitarbeiter'])?$_REQUEST['select_typ_mitarbeiter']:null);
$studiengang_kz=(isset($_REQUEST['select_studiengang'])?$_REQUEST['select_studiengang']:null);
$semester=(isset($_REQUEST['select_semester'])?$_REQUEST['select_semester']:null);
$buchstabe=(isset($_REQUEST['select_buchstabe'])?$_REQUEST['select_buchstabe']:null);
+$studSemArray=(isset($_REQUEST['select_studiensemester'])?$_REQUEST['select_studiensemester']:array());
+
+if (empty($studSemArray))
+{
+ $studiensemester = new studiensemester();
+
+ $studSemArray[]=$studiensemester->getakt();
+ $studSemArray[]=$studiensemester->getPrevious();
+ $studSemArray[]=$studiensemester->getBeforePrevious();
+}
+
?>
+ "http://www.w3.org/TR/html4/strict.dtd">