From f3b4584d16aca7af51e099decd93151009094e89 Mon Sep 17 00:00:00 2001 From: Christian Paminger Date: Mon, 17 Sep 2007 13:37:57 +0000 Subject: [PATCH] --- cis/private/lvplan/index.php | 1 + cis/testtool/auswertung.php | 2 +- content/lvplanung/timetable-week.xul.php | 4 +- include/lehreinheit.class.php | 47 ++++++---- include/wochenplan.class.php | 12 ++- vilesci/lehre/lvplanwartung.php | 105 +++++++++++++++++------ 6 files changed, 121 insertions(+), 50 deletions(-) diff --git a/cis/private/lvplan/index.php b/cis/private/lvplan/index.php index 34c71f875..3adec3d4c 100644 --- a/cis/private/lvplan/index.php +++ b/cis/private/lvplan/index.php @@ -161,6 +161,7 @@ function MM_jumpMenu(targ,selObj,restore){ //v3.0 + diff --git a/cis/testtool/auswertung.php b/cis/testtool/auswertung.php index 00ceab6ae..cf340e01a 100644 --- a/cis/testtool/auswertung.php +++ b/cis/testtool/auswertung.php @@ -73,7 +73,7 @@ while ($row=pg_fetch_object($result)) // Ergebnisse laden $sql_query="SELECT vw_auswertung.* FROM testtool.vw_auswertung"; if (isset($_POST['reihungstest'])) - $sql_query.=' JOIN public.tbl_prestudent USING (prestudent_id) WHERE reihungstest_id='.$_POST['reihungstest']; + $sql_query.=' JOIN public.tbl_prestudent USING (prestudent_id) WHERE 1 OR reihungstest_id='.$_POST['reihungstest']; //echo $sql_query; if(!($result=pg_query($conn, $sql_query))) diff --git a/content/lvplanung/timetable-week.xul.php b/content/lvplanung/timetable-week.xul.php index b7c43a0c6..7d0532de5 100644 --- a/content/lvplanung/timetable-week.xul.php +++ b/content/lvplanung/timetable-week.xul.php @@ -255,7 +255,7 @@ elseif ($aktion=='lva_single_set') //$error_msg.='Datum:'.$new_datum.' Std:'.($new_stunde+$j).$new_ort.$db_stpl_table.$uid; for ($j=0;$j<$lva[$i]->stundenblockung;$j++) if (!$lva[$i]->save_stpl($new_datum,$new_stunde+$j,$new_ort,$db_stpl_table,$uid)) - $error_msg.='fehler'.$lva[$i]->errormsg; + $error_msg.='Error: '.$lva[$i]->errormsg; //else die('test'); } //$error_msg.='test'; @@ -488,7 +488,7 @@ while ($begin<=$ende) diff --git a/include/lehreinheit.class.php b/include/lehreinheit.class.php index 7dd77a715..6a272e196 100644 --- a/include/lehreinheit.class.php +++ b/include/lehreinheit.class.php @@ -475,7 +475,7 @@ class lehreinheit * @param integer stunde gewuenschte Stunde * @param string ort gewuenschter Ort * @param string db_stpl_table Tabllenname des Stundenplans im DBMS - * @return boolean true=ok, false=fehler + * @return boolean true=ok, false=error *************************************************************************/ function check_lva($datum,$stunde,$ort,$stpl_table) { @@ -499,11 +499,12 @@ class lehreinheit // Datenbank abfragen $sql_query="SELECT $stpl_id FROM $stpl_table WHERE datum='$datum' AND stunde=$stunde - AND ((ort_kurzbz='$ort' OR $sql_lkt) - AND unr!=$this->unr)"; //AND lehrveranstaltung_id!=$this->lehrveranstaltung_id + AND (ort_kurzbz='$ort' OR $sql_lkt)"; + if (is_numeric($this->unr)) + $sql_query.=" AND unr!=$this->unr"; if (! $erg_stpl=pg_query($this->conn, $sql_query)) { - die($sql_query.pg_last_error($this->conn)); + //die($sql_query.pg_last_error($this->conn)); $this->errormsg=pg_last_error($this->conn); return false; } @@ -527,7 +528,7 @@ class lehreinheit * @param string ort gewuenschter Ort * @param string db_stpl_table Tabllenname des Stundenplans im DBMS * @param string user UID des aktuellen Bentzers - * @return boolean true=ok, false=fehler + * @return boolean true=ok, false=error *************************************************************************/ function save_stpl($datum,$stunde,$ort,$stpl_table,$user) { @@ -536,6 +537,14 @@ class lehreinheit $stpl_id=$stpl_table.TABLE_ID; $stpl_table='lehre.'.TABLE_BEGIN.$stpl_table; + // Variablen pruefen + if (!is_numeric($this->unr)) + { + $this->errormsg='Error: UNR ist nicht vorhanden!'; + return false; + } + + for ($i=0;$i<$this->anz;$i++) { // Datenbank INSERT @@ -552,7 +561,7 @@ class lehreinheit $sql_query.=",'".$this->titel[$i]."','$this->anmerkung','$user')"; if (! $erg_stpl=pg_query($this->conn, $sql_query)) { - die(pg_last_error($this->conn).$sql_query); + //die(pg_last_error($this->conn).$sql_query); $this->errormsg=pg_last_error($this->conn); return false; } @@ -683,68 +692,68 @@ class lehreinheit else { pg_query($this->conn, 'BEGIN'); - + //UNDO Befehl zusammenbauen $undosql=''; - + //LehreinheitMitarbeiter $qry = "SELECT * FROM lehre.tbl_lehreinheitmitarbeiter WHERE lehreinheit_id='$lehreinheit_id'"; if($result = pg_query($this->conn, $qry)) { while($row = pg_fetch_object($result)) { - $undosql.=" INSERT INTO lehre.tbl_lehreinheitmitarbeiter(lehreinheit_id, mitarbeiter_uid, lehrfunktion_kurzbz, planstunden, stundensatz, faktor, anmerkung, bismelden, updateamum, updatevon, insertamum, insertvon, semesterstunden) + $undosql.=" INSERT INTO lehre.tbl_lehreinheitmitarbeiter(lehreinheit_id, mitarbeiter_uid, lehrfunktion_kurzbz, planstunden, stundensatz, faktor, anmerkung, bismelden, updateamum, updatevon, insertamum, insertvon, semesterstunden) VALUES(".$this->addslashes($row->lehreinheit_id).",".$this->addslashes($row->mitarbeiter_uid).",".$this->addslashes($row->lehrfunktion_kurzbz).",".$this->addslashes($row->planstunden).",".$this->addslashes($row->stundensatz).",".$this->addslashes($row->faktor).",". $this->addslashes($row->anmerkung).",".($row->bismelden=='t'?'true':'false').",".$this->addslashes($row->updateamum).",".$this->addslashes($row->updatevon).",".$this->addslashes($row->insertamum).",".$this->addslashes($row->insertvon).",".$this->addslashes($row->semesterstunden).");"; } } - - //LehreinheitGruppe + + //LehreinheitGruppe $qry = "SELECT * FROM lehre.tbl_lehreinheitgruppe WHERE lehreinheit_id='$lehreinheit_id'"; if($result = pg_query($this->conn, $qry)) { while($row = pg_fetch_object($result)) { - $undosql.=" INSERT INTO lehre.tbl_lehreinheitgruppe(lehreinheitgruppe_id, lehreinheit_id, studiengang_kz, semester, verband, gruppe, gruppe_kurzbz, updateamum, updatevon, insertamum, insertvon) + $undosql.=" INSERT INTO lehre.tbl_lehreinheitgruppe(lehreinheitgruppe_id, lehreinheit_id, studiengang_kz, semester, verband, gruppe, gruppe_kurzbz, updateamum, updatevon, insertamum, insertvon) VALUES(".$this->addslashes($row->lehreinheitgruppe_id).",".$this->addslashes($row->lehreinheit_id).",".$this->addslashes($row->studiengang_kz).",'".addslashes($row->semester)."','".addslashes($row->verband)."','".addslashes($row->gruppe)."',". $this->addslashes($row->gruppe_kurzbz).",".$this->addslashes($row->updateamum).",".$this->addslashes($row->updatevon).",".$this->addslashes($row->insertamum).",".$this->addslashes($row->insertvon).");"; } } - + //Lehreinheit $qry = "SELECT * FROM lehre.tbl_lehreinheit WHERE lehreinheit_id='$lehreinheit_id'"; if($result = pg_query($this->conn, $qry)) { while($row = pg_fetch_object($result)) { - $undosql.=" INSERT INTO lehre.tbl_lehreinheit(lehreinheit_id, lehrveranstaltung_id, studiensemester_kurzbz, lehrfach_id, lehrform_kurzbz, stundenblockung, wochenrythmus, start_kw, raumtyp, raumtypalternativ, sprache, lehre, anmerkung, unr, lvnr, updateamum, updatevon, insertamum, insertvon) + $undosql.=" INSERT INTO lehre.tbl_lehreinheit(lehreinheit_id, lehrveranstaltung_id, studiensemester_kurzbz, lehrfach_id, lehrform_kurzbz, stundenblockung, wochenrythmus, start_kw, raumtyp, raumtypalternativ, sprache, lehre, anmerkung, unr, lvnr, updateamum, updatevon, insertamum, insertvon) VALUES(".$this->addslashes($row->lehreinheit_id).",".$this->addslashes($row->lehrveranstaltung_id).",".$this->addslashes($row->studiensemester_kurzbz).",".$this->addslashes($row->lehrfach_id).",".$this->addslashes($row->lehrform_kurzbz).",".$this->addslashes($row->stundenblockung).",". $this->addslashes($row->wochenrythmus).",".$this->addslashes($row->startkw).",".$this->addslashes($row->raumtyp).",".$this->addslashes($row->raumtypalternativ).",".$this->addslashes($row->sprache).",".($row->wochenrythmus=='t'?'true':'false').",". $this->addslashes($row->anmerkung).",".$this->addslashes($row->unr).",".$this->addslashes($row->lvnr).",".$this->addslashes($row->updateamum).",".$this->addslashes($row->updatevon).",".$this->addslashes($row->insertamum).",".$this->addslashes($row->insertvon).");"; } } - + $log = new log($this->conn); - + //Gruppenzuteilung, Mitarbeiterzuteilung und Lehreinheit loeschen $qry = "DELETE FROM lehre.tbl_lehreinheitmitarbeiter WHERE lehreinheit_id='$lehreinheit_id'; DELETE FROM lehre.tbl_lehreinheitgruppe WHERE lehreinheit_id='$lehreinheit_id'; DELETE FROM lehre.tbl_lehreinheit WHERE lehreinheit_id='$lehreinheit_id';"; - + $log->new = true; $log->sql = $qry; $log->sqlundo = $undosql; $log->executetime = date('Y-m-d H:i:s'); $log->mitarbeiter_uid = get_uid(); $log->beschreibung = "Lehreinheit loeschen - $lehreinheit_id"; - + if(!$log->save()) { $this->errormsg = 'Fehler beim Schreiben des Log-Eintrages'; pg_query($this->conn, 'ROLLBACK'); return false; } - else + else { if(pg_query($this->conn, $qry)) { diff --git a/include/wochenplan.class.php b/include/wochenplan.class.php index 57c93268f..295e1d556 100644 --- a/include/wochenplan.class.php +++ b/include/wochenplan.class.php @@ -1370,13 +1370,15 @@ class wochenplan // Stundenplanabfrage bauen (Wo ist Kollision?) $sql_query="SELECT DISTINCT datum, stunde FROM $stpl_table WHERE datum>='$datum_begin' AND datum<'$datum_end' AND - ($lkt $gruppen OR ($lvb) ) AND unr!=$unr"; + ($lkt $gruppen OR ($lvb) )"; + if (is_numeric($unr)) + $sql_query.=" AND unr!=$unr"; //$this->errormsg.=htmlspecialchars($sql_query); //return false; if(!$result_kollision=pg_query($this->conn, $sql_query)) { //die(pg_last_error($this->conn)); - $this->errormsg=pg_last_error($this->conn); + $this->errormsg=pg_last_error($this->conn).$sql_query; return false; } $num_k=pg_numrows($result_kollision); @@ -1395,11 +1397,13 @@ class wochenplan $sql_query="SELECT DISTINCT datum, stunde, ort_kurzbz FROM $stpl_view JOIN public.tbl_ortraumtyp USING (ort_kurzbz) WHERE datum>='$datum_begin' AND datum<'$datum_end' AND - ($rtype) AND unr!=$unr"; // + ($rtype)"; + if (is_numeric($unr)) + $sql_query.=" AND unr!=$unr"; //echo $sql_query; if(!$result_besetzt=pg_query($this->conn, $sql_query)) { - $this->errormsg=pg_last_error($this->conn); + $this->errormsg=pg_last_error($this->conn).$sql_query; return false; } $num_b=pg_numrows($result_besetzt); diff --git a/vilesci/lehre/lvplanwartung.php b/vilesci/lehre/lvplanwartung.php index 83f388998..430f88983 100644 --- a/vilesci/lehre/lvplanwartung.php +++ b/vilesci/lehre/lvplanwartung.php @@ -37,24 +37,77 @@ echo loadVariables($conn,$user); // Bezeichnungen fuer Tabellen und Views $lva_stpl_view=VIEW_BEGIN.'lva_'.$db_stpl_table; - -$where=" studiensemester_kurzbz='WS2007'"; - if ($sem>0) - $where.=" AND semester=$sem"; - if (strlen($ver)>0 && $ver!=' ') - $where.=" AND verband='$ver'"; - if (strlen($grp)>0 && $grp!=' ') - $where.=" AND gruppe='$grp' "; - } +$stpl_table=TABLE_BEGIN.$db_stpl_table; if (isset($_GET['stg_kz']) || isset($_POST['stg_kz'])) $stg_kz=(isset($_GET['stg_kz'])?$_GET['stg_kz']:$_POST['stg_kz']); else $stg_kz=0; -if (isset($_GET['semester']) || isset($_POST['semester'])) - $semester=(isset($_GET['semester'])?$_GET['semester']:$_POST['semester']); +if (isset($_GET['sem']) || isset($_POST['sem'])) + $sem=(isset($_GET['sem'])?$_GET['sem']:$_POST['sem']); else - $semester=0; + $sem=0; + +//*************** im Stundenplan hinzufuegen ************************* +if (isset($_GET['insert'])) + if ($_GET['insert']=='true') + { + // Variablen checken + if (isset($_GET['studiengang_kz'])) + $studiengang_kz=$_GET['studiengang_kz']; + if (isset($_GET['semester'])) + $semester=$_GET['semester']; + if (isset($_GET['verband'])) + $verband=$_GET['verband']; + else + $verband=' '; + if ($verband=='') + $verband=' '; + if (isset($_GET['gruppe'])) + $gruppe=$_GET['gruppe']; + else + $gruppe=' '; + if ($gruppe=='') + $gruppe=' '; + if (isset($_GET['gruppe_kurzbz'])) + $gruppe_kurzbz=$_GET['gruppe_kurzbz']; + else + $gruppe_kurzbz=''; + if (isset($_GET['leid'])) + $leid=$_GET['leid']; + else + $leid=0; + // Termine holen + $qry = "SELECT DISTINCT datum, stunde FROM lehre.$stpl_table WHERE lehreinheit_id=$leid"; + //echo $qry.'
'; + if(!$result=pg_query($conn, $qry)) + die ($qry); + while ($row=pg_fetch_object($result)) + { + $qry = "SELECT DISTINCT ort_kurzbz FROM lehre.$stpl_table + WHERE lehreinheit_id=$leid AND datum='$row->datum' AND stunde=$row->stunde;"; + if(!$result_ort=pg_query($conn, $qry)) + die ($qry); + while ($row_ort=pg_fetch_object($result_ort)) + { + $qry="INSERT INTO lehre.$stpl_table (datum,stunde,ort_kurzbz,unr,mitarbeiter_uid,studiengang_kz,semester,verband,gruppe,gruppe_kurzbz,lehreinheit_id, insertvon) + VALUES ('$row->datum', $row->stunde,'$row_ort->ort_kurzbz',$unr,'$lektor_uid',$studiengang_kz,$semester,'$verband','$gruppe',"; + if ($gruppe_kurzbz!='') + $qry.="'$gruppe_kurzbz',$leid,'LVPlanCheck');"; + else + $qry.="NULL,$leid,'LVPlanCheck');"; + echo $qry.'
'; + if(!$result_insert=pg_query($conn, $qry)) + die ($qry); + } + } + } + +$where=" studiensemester_kurzbz='WS2007'"; +if ($semester>0) + $where.=" AND semester=$semester"; +if ($stg_kz>0) + $where.=" AND studiengang_kz='$stg_kz'"; if(!is_numeric($stg_kz)) $stg_kz=0; @@ -76,12 +129,13 @@ if(isset($_GET['lvid']) && is_numeric($_GET['lvid'])) } } -$where=1; $sql_query="SELECT *, planstunden-verplant::smallint AS offenestunden - FROM lehre.'.$lva_stpl_view.' JOIN lehre.tbl_lehrform ON '.$lva_stpl_view.'.lehrform=tbl_lehrform.lehrform_kurzbz - WHERE '.$where.' AND verplanen ORDER BY offenestunden DESC, lehrfach, lehrform, semester, verband, gruppe, gruppe_kurzbz;"; + FROM lehre.$lva_stpl_view JOIN lehre.tbl_lehrform ON $lva_stpl_view.lehrform=tbl_lehrform.lehrform_kurzbz + WHERE $where AND verplant=0 AND planstunden>0 AND lehreinheit_id IN (SELECT lehreinheit_id FROM lehre.$stpl_table) + ORDER BY offenestunden DESC, lehrfach, lehrform, semester, verband, gruppe, gruppe_kurzbz;"; //echo $sql_query; -$result_lv=pg_query($conn, $sql_query); +if(!$result_lv=pg_query($conn, $sql_query)) + die ($sql_query); if(!$result_lv) error("Lehrveranstaltung not found!"); $outp=''; $s=array(); @@ -89,7 +143,7 @@ $outp.=""; - echo "lehrveranstaltung_id&stg_kz=$stg_kz&semester=$semester&aktiv=$row->aktiv'>"; - echo "$row->sort"; - echo "lehrveranstaltung_id&stg_kz=$stg_kz&semester=$semester&zeugnis=$row->zeugnis'>"; + echo "$row->lehreinheit_id$row->unr$row->lehrfach-$row->lehrform - $row->lehrfach_bez$row->lektor"; + echo "$row->studiengang-$row->semester$row->verband$row->gruppe$row->gruppe_kurzbz"; + echo "$row->studiensemester_kurzbz"; + echo "$row->planstunden"; + echo "$row->verplant"; + echo "Hinzufuegen"; echo "\n"; }