diff --git a/include/lehrstunde.class.php b/include/lehrstunde.class.php index e6eeeb8c2..3e6615308 100644 --- a/include/lehrstunde.class.php +++ b/include/lehrstunde.class.php @@ -18,6 +18,8 @@ *****************************************************************************/ // include_once('mitarbeiter.class.php'); +require_once('studiensemester.class.php'); + class lehrstunde { @@ -52,6 +54,7 @@ class lehrstunde var $lehrstunden=array(); // @brief Objekt der eigenen Klasse var $anzahl; // @brief Gesamte Anzahl der Stunden im Array + var $ss=null; // @brief Studiensemester /** Konstruktor @@ -287,7 +290,9 @@ class lehrstunde $grp=$row->gruppe; // Gruppen ermitteln - $sql_query="SELECT gruppe_kurzbz FROM public.tbl_benutzergruppe WHERE uid='$uid'"; + if (is_null($this->ss)) + $this->ss=studiensemester::getNearest(); + $sql_query="SELECT gruppe_kurzbz FROM public.tbl_benutzergruppe WHERE uid='$uid' AND studiensemester_kurzbz='$this->ss'"; //echo $sql_query; if (! $result_einheit=pg_query($this->conn, $sql_query) ) { diff --git a/include/studiensemester.class.php b/include/studiensemester.class.php index 84b39eee9..946ae773d 100644 --- a/include/studiensemester.class.php +++ b/include/studiensemester.class.php @@ -233,19 +233,19 @@ class studiensemester return $stsem; else { - //$qry = "SELECT studiensemester_kurzbz FROM public.tbl_studiensemester WHERE ende >= now() ORDER BY ende"; - $qry = "SELECT studiensemester_kurzbz FROM public.vw_studiensemester "; + $qry = "SELECT studiensemester_kurzbz FROM public.tbl_studiensemester WHERE 1"; + //$qry = "SELECT studiensemester_kurzbz FROM public.vw_studiensemester "; if($semester!='') { if($semester%2==0) $ss='SS'; - else + else $ss='WS'; - - $qry.= " WHERE substring(studiensemester_kurzbz from 1 for 2)='$ss' "; + + $qry.= " AND substring(studiensemester_kurzbz from 1 for 2)='$ss' "; } - $qry.= " ORDER BY delta LIMIT 1"; - + $qry.= " AND ende >= now() ORDER BY ende LIMIT 1"; + if(!$res=pg_exec($this->conn,$qry)) { $this->errormsg = pg_errormessage($this->conn); @@ -265,6 +265,32 @@ class studiensemester } } + /** + * Liefert das naechstgelegenste Studiensemester + * @return Studiensemester oder false wenn es keines gibt + */ + function getNearest() + { + $qry = "SELECT studiensemester_kurzbz FROM public.vw_studiensemester ORDER BY delta LIMIT 1"; + if(!$res=pg_exec($this->conn,$qry)) + { + $this->errormsg = pg_errormessage($this->conn); + return false; + } + + if(pg_num_rows($res)>0) + { + $erg = pg_fetch_object($res); + return $erg->studiensemester_kurzbz; + } + else + { + $this->errormsg = "Kein aktuelles Studiensemester vorhanden"; + return false; + } + } + + function getAll() { $qry = "SELECT * FROM public.tbl_studiensemester ORDER BY ende";