diff --git a/cis/public/kollegium.html b/cis/public/kollegium.html
index a60e11ee0..8c78f0744 100644
--- a/cis/public/kollegium.html
+++ b/cis/public/kollegium.html
@@ -52,7 +52,7 @@ Woletz Kurt
VertreterInnen der Lehrenden
Maderdonner Otto
-Teschl Susanne
+
Lehner Martin
Sommer Thomas
Paminger Christian
@@ -78,7 +78,7 @@ Horvath Martin
Mischling Barbara
Lowatschek Karl
Steinbrecher Helmut
-N.N.
+Brandl Richard
|
diff --git a/content/student/studentoverlay.js.php b/content/student/studentoverlay.js.php
index 9cc80a5b5..67fe2c4d7 100644
--- a/content/student/studentoverlay.js.php
+++ b/content/student/studentoverlay.js.php
@@ -44,6 +44,7 @@ var StudentPruefungTreeDatasource; //Datasource des Pruefung Trees
var StudentPruefungSelectID=null; //ID der Pruefung die nach dem Refresh markiert werden soll
var StudentDetailRolleTreeDatasource=null; //Datasource fuer denn PrestudentRolleTree
var StudentAkteTreeDatasource=null;
+var doublerebuildkonto='false';
// ********** Observer und Listener ************* //
// ****
@@ -136,7 +137,7 @@ var StudentKontoTreeListener =
//timeout nur bei Mozilla notwendig da sonst die rows
//noch keine values haben. Ab Seamonkey funktionierts auch
//ohne dem setTimeout
- window.setTimeout(StudentKontoTreeSelectBuchung,10);
+ window.setTimeout(StudentKontoTreeSelectBuchung,10);
}
};
@@ -1644,6 +1645,40 @@ function StudentKontoTreeSelectBuchung()
}
}
+function StudentKontoLoad()
+{
+ person_id = document.getElementById('student-detail-textbox-person_id').value;
+ kontotree = document.getElementById('student-konto-tree');
+ filter = document.getElementById('student-konto-button-filter').value;
+ studienang_kz_prestudent = document.getElementById('student-prestudent-menulist-studiengang_kz').value;
+ url='rdf/konto.rdf.php?person_id='+person_id+"&filter="+filter+"&studiengang_kz="+studiengang_kz_prestudent+"&"+gettimestamp();
+
+ //Alte DS entfernen
+ var oldDatasources = kontotree.database.GetDataSources();
+ while(oldDatasources.hasMoreElements())
+ {
+ kontotree.database.RemoveDataSource(oldDatasources.getNext());
+ }
+ //Refresh damit die entfernten DS auch wirklich entfernt werden
+ kontotree.builder.rebuild();
+
+ try
+ {
+ StudentKontoTreeDatasource.removeXMLSinkObserver(StudentKontoTreeSinkObserver);
+ kontotree.builder.removeListener(StudentKontoTreeListener);
+ }
+ catch(e)
+ {}
+
+ var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
+ StudentKontoTreeDatasource = rdfService.GetDataSource(url);
+ StudentKontoTreeDatasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
+ StudentKontoTreeDatasource.QueryInterface(Components.interfaces.nsIRDFXMLSink);
+ kontotree.database.AddDataSource(StudentKontoTreeDatasource);
+ StudentKontoTreeDatasource.addXMLSinkObserver(StudentKontoTreeSinkObserver);
+ kontotree.builder.addListener(StudentKontoTreeListener);
+}
+
// ****
// * Wenn eine buchung Ausgewaehlt wird, dann werden
// * die Details geladen und angezeigt
@@ -1961,7 +1996,10 @@ function StudentKontoGegenbuchung()
{
//StudentKontoSelectBuchung=val.dbdml_data;
StudentKontoSelectBuchung=null;
- StudentKontoTreeDatasource.Refresh(false); //non blocking
+ //StudentKontoTreeDatasource.Refresh(false); //non blocking
+ //Hier wird der ganze Konto Tree Neu geladen da bei ein
+ //normales Refresh hier nicht immer funktioniert
+ StudentKontoLoad();
SetStatusBarText('Daten wurden gespeichert');
}
}
diff --git a/include/lehreinheit.class.php b/include/lehreinheit.class.php
index a6111921f..7dd77a715 100644
--- a/include/lehreinheit.class.php
+++ b/include/lehreinheit.class.php
@@ -682,19 +682,82 @@ class lehreinheit
}
else
{
- //Gruppenzuteilung, Mitarbeiterzuteilung und Lehreinheit loeschen
- $qry = "BEGIN;
- 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';
- COMMIT;";
- if(pg_query($this->conn, $qry))
- return true;
- 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))
{
- $this->errormsg = pg_last_error($this->conn);
+ 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)
+ 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
+ $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)
+ 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)
+ 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
+ {
+ if(pg_query($this->conn, $qry))
+ {
+ pg_query($this->conn, 'COMMIT');
+ return true;
+ }
+ else
+ {
+ pg_query($this->conn, 'ROLLBACK');
+ $this->errormsg = pg_last_error($this->conn);
+ return false;
+ }
+ }
}
}
else
diff --git a/rdf/konto.rdf.php b/rdf/konto.rdf.php
index a45a5e4f5..f16526cf3 100644
--- a/rdf/konto.rdf.php
+++ b/rdf/konto.rdf.php
@@ -26,7 +26,7 @@
* Window - Preferences - PHPeclipse - PHP - Code Templates
*/
// header fuer no cache
-header("Cache-Control: no-cache, must-revalidate");
+header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0",false);
header("Expires Mon, 26 Jul 1997 05:00:00 GMT");
header("Pragma: no-cache");
diff --git a/rdf/student.rdf.php b/rdf/student.rdf.php
index 978dc46fe..0e0dca0a5 100644
--- a/rdf/student.rdf.php
+++ b/rdf/student.rdf.php
@@ -527,7 +527,7 @@ else
$studiengbeginn = '';
$studiensemester_kurzbz='';
$qry = "SELECT * FROM public.tbl_prestudentrolle JOIN public.tbl_studiensemester USING(studiensemester_kurzbz)
- WHERE prestudent_id='$student->prestudent_id' ORDER BY datum LIMIT 1";
+ WHERE prestudent_id='$student->prestudent_id' AND rolle_kurzbz in('Student','Incoming') ORDER BY datum LIMIT 1";
if($result = pg_query($conn, $qry))
{
if($row = pg_fetch_object($result))