diff --git a/include/lehrstunde.class.php b/include/lehrstunde.class.php
index 53b2d4342..601b58169 100644
--- a/include/lehrstunde.class.php
+++ b/include/lehrstunde.class.php
@@ -203,25 +203,31 @@ class lehrstunde
* @param gruppe_kurzbz
*
*/
- function load_lehrstunden($type, $datum_von, $datum_bis, $uid, $ort_kurzbz=NULL, $studiengang_kz=NULL, $sem=NULL, $ver=NULL, $grp=NULL, $gruppe_kurzbz=NULL, $stpl_view='stundenplan')
+ function load_lehrstunden($type, $datum_von, $datum_bis, $uid, $ort_kurzbz=NULL, $studiengang_kz=NULL, $sem=NULL, $ver=NULL, $grp=NULL, $gruppe_kurzbz=NULL, $stpl_view='stundenplan', $idList=null)
{
///////////////////////////////////////////////////////////////////////
// Parameter Checken
// Bezeichnung der Stundenplan-Tabelle und des Keys
$stpl_id=$stpl_view.TABLE_ID;
- $stpl_view=VIEW_BEGIN.$stpl_view;
+ $stpl_view='lehre.'.VIEW_BEGIN.$stpl_view;
$num_rows_einheit=0;
+
// Datum im Format YYYY-MM-TT ?
if (!ereg("([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})",$datum_von) )
{
$this->errormsg='Fehler: Startdatum hat falsches Format!';
return -1;
}
- if (!ereg("([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})",$datum_bis) )
+ if ($datum_bis!=null)
{
- $this->errormsg='Fehler: Enddatum hat falsches Format!';
- return -1;
+ if (!ereg("([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})",$datum_bis) )
+ {
+ $this->errormsg='Fehler: Enddatum hat falsches Format!';
+ return -1;
+ }
}
+ else
+ $datum_bis=$datum_von;
// Person
if (($type=='student' || $type=='lektor') && $uid==NULL)
{
@@ -246,6 +252,12 @@ class lehrstunde
$this->errormsg='Fehler: Studiengang ist nicht gesetzt';
return -1;
}
+ // Type
+ if ($type==null)
+ {
+ $this->errormsg='Fehler: Type in "lehrstunde->load_lehrstunde" ist nicht gesetzt!';
+ return -1;
+ }
///////////////////////////////////////////////////////////////////////
// Zusaetzliche Daten ermitteln
@@ -289,41 +301,51 @@ class lehrstunde
// Stundenplandaten ermitteln
// Abfrage generieren
$sql_query_stdplan='SELECT * FROM '.$stpl_view;
- $sql_query=" WHERE datum>='$datum_von' AND datum<'$datum_bis'";
- if ($type=='lektor')
- $sql_query.=" AND uid='$uid'";
- elseif ($type=='ort')
- $sql_query.=" AND ort_kurzbz='$ort_kurzbz'";
- elseif ($type=='gruppe')
- $sql_query.=" AND gruppe_kurzbz='$gruppe_kurzbz'";
- else
+ if ($type!='idList')
{
- $sql_query.=' AND ( (studiengang_kz='.$studiengang_kz;
- if ($sem!='0' && $sem!=null && $sem!=0 && $sem!='')
+ $sql_query=" WHERE datum>='$datum_von' AND datum<'$datum_bis'";
+ if ($type=='lektor')
+ $sql_query.=" AND uid='$uid'";
+ elseif ($type=='ort')
+ $sql_query.=" AND ort_kurzbz='$ort_kurzbz'";
+ elseif ($type=='gruppe')
+ $sql_query.=" AND gruppe_kurzbz='$gruppe_kurzbz'";
+ else
{
- $sql_query.=" AND (semester=$sem OR semester IS NULL";
+ $sql_query.=' AND ( (studiengang_kz='.$studiengang_kz;
+ if ($sem!='0' && $sem!=null && $sem!=0 && $sem!='')
+ {
+ $sql_query.=" AND (semester=$sem OR semester IS NULL";
+ if ($type=='student')
+ $sql_query.=' OR semester='.($sem+1);
+ $sql_query.=')';
+ }
+ if ($ver!='0' && $ver!=null && $ver!='')
+ $sql_query.=" AND (verband='$ver' OR verband IS NULL OR verband='0' OR verband='')";
+ if ($grp!='0' && $grp!=null && $grp!='')
+ $sql_query.=" AND (gruppe='$grp' OR gruppe IS NULL OR gruppe='0' OR gruppe='')";
if ($type=='student')
- $sql_query.=' OR semester='.($sem+1);
+ $sql_query.=' AND gruppe_kurzbz IS NULL';
+ $sql_query.=' )';
+ for ($i=0;$i<$num_rows_einheit;$i++)
+ {
+ $row=pg_fetch_object($result_einheit,$i);
+ $sql_query.=" OR gruppe_kurzbz='$row->gruppe_kurzbz'";
+ }
$sql_query.=')';
}
- if ($ver!='0' && $ver!=null && $ver!='')
- $sql_query.=" AND (verband='$ver' OR verband IS NULL OR verband='0' OR verband='')";
- if ($grp!='0' && $grp!=null && $grp!='')
- $sql_query.=" AND (gruppe='$grp' OR gruppe IS NULL OR gruppe='0' OR gruppe='')";
- if ($type=='student')
- $sql_query.=' AND gruppe_kurzbz IS NULL';
- $sql_query.=' )';
- for ($i=0;$i<$num_rows_einheit;$i++)
- {
- $row=pg_fetch_object($result_einheit,$i);
- $sql_query.=" OR gruppe_kurzbz='$row->gruppe_kurzbz'";
- }
- $sql_query.=')';
+ $sql_query.=' ORDER BY datum, stunde, studiengang_kz, semester, verband, gruppe, gruppe_kurzbz, uid';
+ $sql_query_stdplan.=$sql_query;
+ //echo '';
+ }
+ else
+ {
+ $sql_query='';
+ foreach ($idList as $id)
+ $sql_query.=' OR '.$stpl_id.'='.$id;
+ $sql_query=substr($sql_query,3);
+ $sql_query_stdplan.=' WHERE'.$sql_query;
}
- $sql_query.=' ORDER BY datum, stunde, studiengang_kz, semester, verband, gruppe, gruppe_kurzbz, uid';
- $sql_query_stdplan.=$sql_query;
- //echo '';
-
//Datenbankabfrage
if (! $stpl_tbl=pg_query($this->conn, $sql_query_stdplan))
{
@@ -369,46 +391,49 @@ class lehrstunde
///////////////////////////////////////////////////////////////////////
// Reservierungsdaten ermitteln
- // Datenbankabfrage generieren
- $sql_query_reservierung='SELECT * FROM vw_reservierung';
- $sql_query_reservierung.=$sql_query;
- //echo $sql_query_reservierung;
- //Datenbankabfrage
- if (! $stpl_tbl=pg_query($this->conn, $sql_query_reservierung))
+ if ($type!='idList')
{
- $this->errormsg=pg_last_error($this->conn);
- return -2;
- }
- $num_rows=pg_numrows($stpl_tbl);
- $this->anzahl+=$num_rows;
+ // Datenbankabfrage generieren
+ $sql_query_reservierung='SELECT * FROM campus.vw_reservierung';
+ $sql_query_reservierung.=$sql_query;
+ //echo $sql_query_reservierung;
+ //Datenbankabfrage
+ if (! $stpl_tbl=pg_query($this->conn, $sql_query_reservierung))
+ {
+ $this->errormsg=pg_last_error($this->conn);
+ return -2;
+ }
+ $num_rows=pg_numrows($stpl_tbl);
+ $this->anzahl+=$num_rows;
- //Daten uebernehmen
- for ($i=0;$i<$num_rows;$i++)
- {
- $row=pg_fetch_object ($stpl_tbl, $i);
- $stunde=new lehrstunde($this->conn);
- $stunde->reservierung=true;
- $stunde->stundenplan_id=$row->reservierung_id;
- $stunde->unr=0;
- $stunde->lektor_uid=$row->uid;
- $stunde->lektor_kurzbz=$row->uid;
- $stunde->datum=$row->datum;
- $stunde->stunde=$row->stunde;
- $stunde->ort_kurzbz=$row->ort_kurzbz;
- //$stunde->lehrfach_nr=$row->lehrfach_nr;
- $stunde->lehrfach=$row->titel;
- $stunde->lehrfach_bez=$row->beschreibung;
- $stunde->studiengang_kz=$row->studiengang_kz;
- $stunde->studiengang=$row->stg_kurzbz;
- $stunde->sem=$row->semester;
- $stunde->ver=$row->verband;
- $stunde->grp=$row->gruppe;
- $stunde->gruppe_kurzbz=$row->gruppe_kurzbz;
- $stunde->titel=$row->titel;
- $stunde->anmerkung=$row->beschreibung;
- $stunde->farbe='';
- $this->lehrstunden[]=$stunde;
- //var_dump($stunde);
+ //Daten uebernehmen
+ for ($i=0;$i<$num_rows;$i++)
+ {
+ $row=pg_fetch_object ($stpl_tbl, $i);
+ $stunde=new lehrstunde($this->conn);
+ $stunde->reservierung=true;
+ $stunde->stundenplan_id=$row->reservierung_id;
+ $stunde->unr=0;
+ $stunde->lektor_uid=$row->uid;
+ $stunde->lektor_kurzbz=$row->uid;
+ $stunde->datum=$row->datum;
+ $stunde->stunde=$row->stunde;
+ $stunde->ort_kurzbz=$row->ort_kurzbz;
+ //$stunde->lehrfach_nr=$row->lehrfach_nr;
+ $stunde->lehrfach=$row->titel;
+ $stunde->lehrfach_bez=$row->beschreibung;
+ $stunde->studiengang_kz=$row->studiengang_kz;
+ $stunde->studiengang=$row->stg_kurzbz;
+ $stunde->sem=$row->semester;
+ $stunde->ver=$row->verband;
+ $stunde->grp=$row->gruppe;
+ $stunde->gruppe_kurzbz=$row->gruppe_kurzbz;
+ $stunde->titel=$row->titel;
+ $stunde->anmerkung=$row->beschreibung;
+ $stunde->farbe='';
+ $this->lehrstunden[]=$stunde;
+ //var_dump($stunde);
+ }
}
//echo $this->anzahl;
return $this->anzahl;