diff --git a/cis/public/location.html b/cis/public/location.html
index fda1c819a..ec5d86759 100644
--- a/cis/public/location.html
+++ b/cis/public/location.html
@@ -100,7 +100,7 @@
Mo-Fr 7:30 - 17:00 Uhr |
- | Freischaltung Gantüren |
+ Freischaltung Gangtüren |
Mo-Fr 7:30 - 20:00 Uhr; Sa 7:30 - 15:30 Uhr |
diff --git a/content/fasoverlay.js.php b/content/fasoverlay.js.php
index f411c2b0d..fff1f4e84 100644
--- a/content/fasoverlay.js.php
+++ b/content/fasoverlay.js.php
@@ -203,6 +203,10 @@ function onVerbandSelect(event)
if(typ=='')
{
+ //Wenn der Interessenten Tab markiert ist, dann den Studenten Tab markieren
+ if(document.getElementById('tabbox-main').selectedIndex=="0")
+ document.getElementById('tabbox-main').selectedIndex="1";
+
// Studenten
try
{
@@ -237,6 +241,10 @@ function onVerbandSelect(event)
// Interessenten / Bewerber
try
{
+ //Wenn ein anderer Tab markiert ist, dann den Interessenten Tab markieren
+ if(typ!='')
+ document.getElementById('tabbox-main').selectedIndex="0";
+
if(stsem=='' && typ=='')
stsem='aktuelles';
url = "rdf/interessentenbewerber.rdf.php?"+"studiengang_kz="+stg_kz+"&semester="+sem+"&typ="+typ+"&studiensemester_kurzbz="+stsem+"&"+gettimestamp();
diff --git a/content/lvplanung/lehrauftrag.php b/content/lvplanung/lehrauftrag.php
index a5c0398a6..921fa86a1 100644
--- a/content/lvplanung/lehrauftrag.php
+++ b/content/lvplanung/lehrauftrag.php
@@ -140,7 +140,7 @@ if($result = pg_query($conn, $qry))
$xml.='
'.$lehreinheit_id.'
- '.$lehrveranstaltung.'
+
'.$fb_arr[$fachbereich].'
'.trim($grp).'
'.$stunden.'
@@ -184,7 +184,7 @@ $xml.='
$xml.='
'.(isset($lehreinheit_id)?$lehreinheit_id:'').'
- '.(isset($lehrveranstaltung)?$lehrveranstaltung:'').'
+
'.(isset($fachbereich)?$fb_arr[$fachbereich]:'').'
'.trim($grp).'
'.(isset($stunden)?$stunden:'').'
@@ -252,7 +252,7 @@ $proc->importStyleSheet($xsl); // attach the xsl rules
$buffer = $proc->transformToXml($xml_doc);
//in $buffer steht nun das xsl-fo file mit den daten
$buffer = ''.substr($buffer, strpos($buffer,"\n"),strlen($buffer));
-$buffer = html_entity_decode($buffer);
+//$buffer = html_entity_decode($buffer);
//echo "buffer: $buffer";
//Pdf erstellen
diff --git a/content/lvplanung/lehrveranstaltungoverlay.js.php b/content/lvplanung/lehrveranstaltungoverlay.js.php
index 8ab7ce338..d08a3732c 100644
--- a/content/lvplanung/lehrveranstaltungoverlay.js.php
+++ b/content/lvplanung/lehrveranstaltungoverlay.js.php
@@ -197,10 +197,12 @@ function LvTreeRefresh()
try
{
LvSelectLehreinheit_id=tree.view.getCellText(tree.currentIndex,col);
- LvTreeDatasource.Refresh(false); //non blocking
}
catch(e)
- {}
+ {
+ LvSelectLehreinheit_id=null;
+ }
+ LvTreeDatasource.Refresh(false); //non blocking
}
// ****
diff --git a/content/student/interessentenoverlay.xul.php b/content/student/interessentenoverlay.xul.php
index 3a0f1c839..68ddafeb3 100644
--- a/content/student/interessentenoverlay.xul.php
+++ b/content/student/interessentenoverlay.xul.php
@@ -31,6 +31,7 @@ echo '';
echo '';
echo '';
+echo '';
?>
@@ -51,6 +52,7 @@ echo '
+
@@ -61,7 +63,7 @@ echo '
-
+
+
diff --git a/content/student/interessentkontoneudialog.js.php b/content/student/interessentkontoneudialog.js.php
new file mode 100644
index 000000000..c6cf36980
--- /dev/null
+++ b/content/student/interessentkontoneudialog.js.php
@@ -0,0 +1,82 @@
+,
+ * Andreas Oesterreicher and
+ * Rudolf Hangl .
+ */
+
+require_once('../../vilesci/config.inc.php');
+require_once('../../include/functions.inc.php');
+
+$conn = pg_pconnect(CONN_STRING);
+
+$user = get_uid();
+loadVariables($conn, $user);
+?>
+var studiengang_kz=''; // enthaelt die Studiengangskennzahl
+var person_ids=''; // enthaelt eine durch ';' getrennte Liste an Personen_ids
+
+// ****
+// * Ermittelt die markierten Personen und den aktuellen Studiengang
+// ****
+function InteressentKontoNeuInit()
+{
+ var tree = window.opener.document.getElementById('interessent-tree')
+
+ var start = new Object();
+ var end = new Object();
+ var numRanges = tree.view.selection.getRangeCount();
+ var paramList= '';
+ var anzahl=0;
+
+ //alle markierten personen holen
+ for (var t = 0; t < numRanges; t++)
+ {
+ tree.view.selection.getRangeAt(t,start,end);
+ for (var v = start.value; v <= end.value; v++)
+ {
+ col = tree.columns ? tree.columns["interessent-treecol-person_id"] : "interessent-treecol-person_id";
+ id = tree.view.getCellText(v,col);
+ paramList += ';'+id;
+ anzahl +=1;
+ }
+ }
+
+ //Studiengang holen
+ var tree=window.opener.document.getElementById('tree-verband');
+
+ col = tree.columns ? tree.columns["stg_kz"] : "stg_kz";
+ studiengang_kz=tree.view.getCellText(tree.currentIndex,col);
+
+ person_ids = paramList;
+
+ if(anzahl>1)
+ document.getElementById('interessent-konto-neu-label').value='Anzahl Personen: '+anzahl;
+}
+
+// ****
+// * Speichern der Buchung
+// * Hierzu wird eine Funktion vom Aufrufenden Fenster gestartet weil
+// * es dann nicht zu Problemen mit den Zugriffen auf die anderen Fkt
+// * kommt.
+// ****
+function InteressentKontoNeuSpeichern()
+{
+ if(window.opener.InteressentKontoNeuSpeichern(document, person_ids, studiengang_kz))
+ window.close();
+}
\ No newline at end of file
diff --git a/content/student/interessentkontoneudialog.xul.php b/content/student/interessentkontoneudialog.xul.php
new file mode 100644
index 000000000..316f6bad4
--- /dev/null
+++ b/content/student/interessentkontoneudialog.xul.php
@@ -0,0 +1,99 @@
+,
+ * Andreas Oesterreicher and
+ * Rudolf Hangl .
+ */
+
+header("Cache-Control: no-cache");
+header("Cache-Control: post-check=0, pre-check=0",false);
+header("Expires Mon, 26 Jul 1997 05:00:00 GMT");
+header("Pragma: no-cache");
+header("Content-type: application/vnd.mozilla.xul+xml");
+
+include('../../vilesci/config.inc.php');
+echo ''."\n";
+
+echo '';
+?>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/content/student/interessentkontooverlay.xul.php b/content/student/interessentkontooverlay.xul.php
new file mode 100644
index 000000000..fa60764e9
--- /dev/null
+++ b/content/student/interessentkontooverlay.xul.php
@@ -0,0 +1,182 @@
+,
+ * Andreas Oesterreicher and
+ * Rudolf Hangl .
+ */
+
+header("Cache-Control: no-cache");
+header("Cache-Control: post-check=0, pre-check=0",false);
+header("Expires Mon, 26 Jul 1997 05:00:00 GMT");
+header("Pragma: no-cache");
+header("Content-type: application/vnd.mozilla.xul+xml");
+require_once('../../vilesci/config.inc.php');
+echo '';
+
+?>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/content/student/interessentoverlay.js.php b/content/student/interessentoverlay.js.php
index 9d0045f56..3af96754d 100644
--- a/content/student/interessentoverlay.js.php
+++ b/content/student/interessentoverlay.js.php
@@ -35,6 +35,8 @@ var InteressentDokumentTreeAbgegebenDatasource=null; //Datasource fuer Dokumente
var InteressentDokumentTreeAbgegebenDoubleRefresh=false; // Wenn true, dann wird der rechte Dokumententree das naechste mal 2 mal hintereinander Refresht
var InteressentDokumentTreeNichtabgegebenDoubleRefresh=false; // Wenn true, dann wird der linke Dokumententree das naechste mal 2 mal hintereinander Refresht
var InteressentTreeLoadDataOnSelect=true; //Gibt an ob beim naechsten Select des Interessenten Trees die Daten geladen werden sollen
+var InteressentKontoSelectBuchung=null; //Buchung die nach dem Refresh markiert werden soll
+var InteressentKontoTreeDatasource; //Datasource des KontoTrees
// ********** Observer und Listener ************* //
@@ -147,6 +149,40 @@ var InteressentDokumentTreeAbgegebenListener =
}
};
+
+// ****
+// * Observer fuer Konto Tree
+// * startet Rebuild nachdem das Refresh
+// * der datasource fertig ist
+// ****
+var InteressentKontoTreeSinkObserver =
+{
+ onBeginLoad : function(pSink) {},
+ onInterrupt : function(pSink) {},
+ onResume : function(pSink) {},
+ onError : function(pSink, pStatus, pError) {},
+ onEndLoad : function(pSink)
+ {
+ netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
+ document.getElementById('interessent-konto-tree').builder.rebuild();
+ }
+};
+
+// ****
+// * Nach dem Rebuild wird die Buchung wieder
+// * markiert
+// ****
+var InteressentKontoTreeListener =
+{
+ willRebuild : function(builder) { },
+ didRebuild : function(builder)
+ {
+ //timeout nur bei Mozilla notwendig da sonst die rows
+ //noch keine values haben. Ab Seamonkey funktionierts auch
+ //ohne dem setTimeout
+ window.setTimeout(InteressentKontoTreeSelectBuchung,10);
+ }
+};
// ***************** KEY Events ************************* //
// ****
@@ -176,10 +212,12 @@ function InteressentTreeRefresh()
try
{
InteressentSelectId=tree.view.getCellText(tree.currentIndex,col);
- InteressentTreeDatasource.Refresh(false); //non blocking
}
catch(e)
- {}
+ {
+ InteressentSelectId=null;
+ }
+ InteressentTreeDatasource.Refresh(false); //non blocking
}
// ****
@@ -416,6 +454,7 @@ function InteressentAuswahl()
//loeschen button aktivieren
InteressentDetailDisableFields(false);
InteressentPrestudentDisableFields(false);
+ InteressentKontoDisableFields(false);
document.getElementById('interessent-detail-button-save').disabled=false;
}
else
@@ -605,6 +644,29 @@ function InteressentAuswahl()
doctree.database.AddDataSource(InteressentDokumentTreeAbgegebenDatasource);
InteressentDokumentTreeAbgegebenDatasource.addXMLSinkObserver(InteressentDokumentTreeAbgegebenSinkObserver);
doctree.builder.addListener(InteressentDokumentTreeAbgegebenListener);
+
+ //Konto
+ kontotree = document.getElementById('interessent-konto-tree');
+ filter = document.getElementById('interessent-konto-button-filter').value;
+ url='rdf/konto.rdf.php?person_id='+person_id+"&filter="+filter+"&"+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();
+
+ var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
+ InteressentKontoTreeDatasource = rdfService.GetDataSource(url);
+ InteressentKontoTreeDatasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
+ InteressentKontoTreeDatasource.QueryInterface(Components.interfaces.nsIRDFXMLSink);
+ kontotree.database.AddDataSource(InteressentKontoTreeDatasource);
+ InteressentKontoTreeDatasource.addXMLSinkObserver(InteressentKontoTreeSinkObserver);
+ kontotree.builder.addListener(InteressentKontoTreeListener);
+
}
// ****
@@ -995,4 +1057,370 @@ function InteressentDokumentTreeNichtabgegebenDatasourceRefresh()
{
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
InteressentDokumentTreeNichtabgegebenDatasource.Refresh(false);
+}
+
+// ***************** KONTO ****************************
+
+// ****
+// * Wenn eine buchung Ausgewaehlt wird, dann werden
+// * die Details geladen und angezeigt
+// ****
+function InteressentKontoAuswahl()
+{
+ netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
+ var tree = document.getElementById('interessent-konto-tree');
+
+ if (tree.currentIndex==-1) return;
+
+ InteressentKontoDetailDisableFields(false);
+
+ //Ausgewaehlte Nr holen
+ var col = tree.columns ? tree.columns["interessent-konto-tree-buchungsnr"] : "interessent-konto-tree-buchungsnr";
+ var buchungsnr=tree.view.getCellText(tree.currentIndex,col);
+
+ //Daten holen
+ var url = 'rdf/konto.rdf.php?buchungsnr='+buchungsnr+'&'+gettimestamp();
+
+ var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].
+ getService(Components.interfaces.nsIRDFService);
+
+ var dsource = rdfService.GetDataSourceBlocking(url);
+
+ var subject = rdfService.GetResource("http://www.technikum-wien.at/konto/" + buchungsnr);
+
+ var predicateNS = "http://www.technikum-wien.at/konto/rdf";
+
+ //Daten holen
+
+ person_id = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#person_id" ));
+ studiengang_kz = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#studiengang_kz" ));
+ studiensemester_kurzbz = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#studiensemester_kurzbz" ));
+ buchungsnr_verweis = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#buchungsnr_verweis" ));
+ betrag = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#betrag" ));
+ buchungsdatum = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#buchungsdatum" ));
+ buchungstext = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#buchungstext" ));
+ mahnspanne = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#mahnspanne" ));
+ buchungstyp_kurzbz = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#buchungstyp_kurzbz" ));
+
+ document.getElementById('interessent-konto-textbox-betrag').value=betrag;
+ document.getElementById('interessent-konto-textbox-buchungsdatum').value=buchungsdatum;
+ document.getElementById('interessent-konto-textbox-buchungstext').value=buchungstext;
+ document.getElementById('interessent-konto-textbox-mahnspanne').value=mahnspanne;
+ document.getElementById('interessent-konto-menulist-buchungstyp').value=buchungstyp_kurzbz;
+ document.getElementById('interessent-konto-textbox-buchungsnr').value=buchungsnr;
+}
+
+// ****
+// * Aendert den Filter fuer den Konto Tree und Refresht ihn dann
+// ****
+function InteressentKontoFilter()
+{
+
+ netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
+ filter = document.getElementById('interessent-konto-button-filter');
+
+ if(filter.value=='offene')
+ {
+ filter.value='alle';
+ filter.label='offene';
+ }
+ else
+ {
+ filter.value='offene';
+ filter.label='alle';
+ }
+
+ //Konto Tree mit neuem Filter laden
+ var kontotree = document.getElementById('interessent-konto-tree');
+ var person_id = document.getElementById('interessent-prestudent-textbox-person_id').value
+ url='rdf/konto.rdf.php?person_id='+person_id+"&filter="+filter.value+"&"+gettimestamp();
+
+ var buchungsnr=null;
+ try
+ {
+ if(kontotree.currentIndex!='-1')
+ {
+ //Ausgewaehlte Nr holen
+ var col = kontotree.columns ? kontotree.columns["interessent-konto-tree-buchungsnr"] : "interessent-konto-tree-buchungsnr";
+ buchungsnr=kontotree.view.getCellText(kontotree.currentIndex,col);
+ }
+ }
+ catch(e)
+ {}
+
+ //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();
+
+ InteressentKontoSelectBuchung = buchungsnr;
+
+ var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
+ InteressentKontoTreeDatasource = rdfService.GetDataSource(url);
+ InteressentKontoTreeDatasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
+ InteressentKontoTreeDatasource.QueryInterface(Components.interfaces.nsIRDFXMLSink);
+ kontotree.database.AddDataSource(InteressentKontoTreeDatasource);
+ InteressentKontoTreeDatasource.addXMLSinkObserver(InteressentKontoTreeSinkObserver);
+ kontotree.builder.addListener(InteressentKontoTreeListener);
+}
+
+// ****
+// * Aktiviert / Deaktiviert die Konto Felder
+// ****
+function InteressentKontoDisableFields(val)
+{
+ document.getElementById('interessent-konto-button-filter').disabled=val;
+ document.getElementById('interessent-konto-button-neu').disabled=val;
+ document.getElementById('interessent-konto-button-gegenbuchung').disabled=val;
+ document.getElementById('interessent-konto-button-loeschen').disabled=val;
+ InteressentKontoDetailDisableFields(true);
+}
+
+// ****
+// * Aktiviert / Deaktiviert die Kontodetail Felder
+// ****
+function InteressentKontoDetailDisableFields(val)
+{
+ document.getElementById('interessent-konto-textbox-betrag').disabled=val;
+ document.getElementById('interessent-konto-textbox-buchungsdatum').disabled=val;
+ document.getElementById('interessent-konto-textbox-buchungstext').disabled=val;
+ document.getElementById('interessent-konto-textbox-mahnspanne').disabled=val;
+ document.getElementById('interessent-konto-menulist-buchungstyp').disabled=val;
+ document.getElementById('interessent-konto-button-speichern').disabled=val;
+}
+
+// ****
+// * Speichert die Buchung
+// ****
+function InteressentKontoDetailSpeichern()
+{
+ netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
+
+ betrag = document.getElementById('interessent-konto-textbox-betrag').value;
+ buchungsdatum = document.getElementById('interessent-konto-textbox-buchungsdatum').value;
+ buchungstext = document.getElementById('interessent-konto-textbox-buchungstext').value;
+ mahnspanne = document.getElementById('interessent-konto-textbox-mahnspanne').value;
+ buchungstyp_kurzbz = document.getElementById('interessent-konto-menulist-buchungstyp').value;
+ buchungsnr = document.getElementById('interessent-konto-textbox-buchungsnr').value;
+
+ var url = 'content/student/studentDBDML.php';
+ var req = new phpRequest(url,'','');
+
+ req.add('type', 'savebuchung');
+
+ req.add('betrag', betrag);
+ req.add('buchungsdatum', buchungsdatum);
+ req.add('buchungstext', buchungstext);
+ req.add('mahnspanne', mahnspanne);
+ req.add('buchungstyp_kurzbz', buchungstyp_kurzbz);
+ req.add('buchungsnr', buchungsnr);
+
+ var response = req.executePOST();
+
+ var val = new ParseReturnValue(response)
+
+ if (!val.dbdml_return)
+ {
+ if(val.dbdml_errormsg=='')
+ alert(response)
+ else
+ alert(val.dbdml_errormsg)
+ }
+ else
+ {
+ InteressentKontoSelectBuchung=buchungsnr;
+ InteressentKontoTreeDatasource.Refresh(false); //non blocking
+ SetStatusBarText('Daten wurden gespeichert');
+ }
+}
+
+// ****
+// * Legt eine Gegenbuchung zu einer Buchung an
+// ****
+function InteressentKontoGegenbuchung()
+{
+ netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
+ var tree = document.getElementById('interessent-konto-tree');
+
+ if (tree.currentIndex==-1) return;
+
+ InteressentKontoDetailDisableFields(false);
+
+ //Ausgewaehlte Nr holen
+ var col = tree.columns ? tree.columns["interessent-konto-tree-buchungsnr"] : "interessent-konto-tree-buchungsnr";
+ var buchungsnr=tree.view.getCellText(tree.currentIndex,col);
+
+ var url = 'content/student/studentDBDML.php';
+ var req = new phpRequest(url,'','');
+
+ req.add('type', 'savegegenbuchung');
+
+ req.add('buchungsnr', buchungsnr);
+
+ var response = req.executePOST();
+
+ var val = new ParseReturnValue(response)
+
+ if (!val.dbdml_return)
+ {
+ if(val.dbdml_errormsg=='')
+ alert(response)
+ else
+ alert(val.dbdml_errormsg)
+ }
+ else
+ {
+ InteressentKontoSelectBuchung=val.dbdml_data;
+ InteressentKontoTreeDatasource.Refresh(false); //non blocking
+ SetStatusBarText('Daten wurden gespeichert');
+ }
+}
+
+// ****
+// * Loescht eine Buchung
+// ****
+function InteressentKontoDelete()
+{
+ netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
+ var tree = document.getElementById('interessent-konto-tree');
+
+ if (tree.currentIndex==-1) return;
+
+ InteressentKontoDetailDisableFields(false);
+
+ //Ausgewaehlte Nr holen
+ var col = tree.columns ? tree.columns["interessent-konto-tree-buchungsnr"] : "interessent-konto-tree-buchungsnr";
+ var buchungsnr=tree.view.getCellText(tree.currentIndex,col);
+
+ if(confirm('Diese Buchung wirklich loeschen?'))
+ {
+ var url = 'content/student/studentDBDML.php';
+ var req = new phpRequest(url,'','');
+
+ req.add('type', 'deletebuchung');
+
+ req.add('buchungsnr', buchungsnr);
+
+ var response = req.executePOST();
+
+ var val = new ParseReturnValue(response)
+
+ if (!val.dbdml_return)
+ {
+ if(val.dbdml_errormsg=='')
+ alert(response)
+ else
+ alert(val.dbdml_errormsg)
+ }
+ else
+ {
+ InteressentSelectId=document.getElementById('interessent-detail-textbox-prestudent_id').value;
+ InteressentTreeDatasource.Refresh(false); //non blocking
+ SetStatusBarText('Daten wurden gespeichert');
+ }
+ }
+}
+
+// ****
+// * Ruft einen Dialog zum Anlegen von Buchungen auf
+// ****
+function InteressentKontoNeu()
+{
+ window.open("content/student/interessentkontoneudialog.xul.php","","chrome, status=no, width=500, height=350, centerscreen, resizable");
+}
+
+// ****
+// * Speichert die Daten aus dem BuchungenDialog
+// ****
+function InteressentKontoNeuSpeichern(dialog, person_ids, studiengang_kz)
+{
+ netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
+
+ var url = 'content/student/studentDBDML.php';
+ var req = new phpRequest(url,'','');
+
+ //Daten aus dem Dialog holen
+ betrag = dialog.getElementById('interessent-konto-neu-textbox-betrag').value;
+ buchungsdatum = dialog.getElementById('interessent-konto-neu-textbox-buchungsdatum').value;
+ buchungstext = dialog.getElementById('interessent-konto-neu-textbox-buchungstext').value;
+ mahnspanne = dialog.getElementById('interessent-konto-neu-textbox-mahnspanne').value;
+ buchungstyp_kurzbz = dialog.getElementById('interessent-konto-neu-menulist-buchungstyp').value;
+
+ req.add('type', 'neuebuchung');
+
+ req.add('person_ids', person_ids);
+ req.add('studiengang_kz', studiengang_kz);
+ req.add('betrag', betrag);
+ req.add('buchungsdatum', buchungsdatum);
+ req.add('buchungstext', buchungstext);
+ req.add('mahnspanne', mahnspanne);
+ req.add('buchungstyp_kurzbz', buchungstyp_kurzbz);
+
+ var response = req.executePOST();
+
+ var val = new ParseReturnValue(response)
+
+ if (!val.dbdml_return)
+ {
+ if(val.dbdml_errormsg=='')
+ alert(response)
+ else
+ alert(val.dbdml_errormsg)
+ return false;
+ }
+ else
+ {
+ InteressentKontoTreeDatasource.Refresh(false);
+ return true;
+ }
+}
+
+
+// ****
+// * Selectiert die Buchung nachdem der Tree
+// * rebuildet wurde.
+// ****
+function InteressentKontoTreeSelectBuchung()
+{
+ var tree=document.getElementById('interessent-konto-tree');
+ if(tree.view)
+ var items = tree.view.rowCount; //Anzahl der Zeilen ermitteln
+ else
+ return false;
+
+ //In der globalen Variable ist die zu selektierende Buchung gespeichert
+ if(InteressentKontoSelectBuchung!=null)
+ {
+ //Alle subtrees oeffnen weil rowCount nur die Anzahl der sichtbaren
+ //Zeilen zurueckliefert
+ for(var i=items-1;i>=0;i--)
+ {
+ if(!tree.view.isContainerOpen(i))
+ tree.view.toggleOpenState(i);
+ }
+
+ //Jetzt die wirkliche Anzahl (aller) Zeilen holen
+ items = tree.view.rowCount;
+ for(var i=0;igeburtsnation = $_POST['geburtsnation'];
$student->sprache = $_POST['sprache'];
$student->matrikelnr = $_POST['matrikelnummer'];
- $student->studiengang_kz = $_POST['studiengang_kz'];
- $student->semester = $_POST['semester'];
- $student->verband = ($_POST['verband']==''?' ':$_POST['verband']);
- $student->gruppe = ($_POST['gruppe']==''?' ':$_POST['gruppe']);
+
+ $stsem = new studiensemester($conn);
+ $stsem_kurzbz = $stsem->getaktorNext();
+ //Wenn das ausgewaehlte Semester das aktuelle ist, dann wird auch in der
+ //Tabelle Student der Stg/Semester/Verband/Gruppe geaendert.
+ //Sonst nur in der Tabelle Studentlehrverband
+ if($semester_aktuell == $stsem_kurzbz)
+ {
+ $student->studiengang_kz = $_POST['studiengang_kz'];
+ $student->semester = $_POST['semester'];
+ $student->verband = ($_POST['verband']==''?' ':$_POST['verband']);
+ $student->gruppe = ($_POST['gruppe']==''?' ':$_POST['gruppe']);
+ }
$student->new=false;
diff --git a/content/student/studentdetailoverlay.xul.php b/content/student/studentdetailoverlay.xul.php
index ace3fafb1..94bb279b7 100644
--- a/content/student/studentdetailoverlay.xul.php
+++ b/content/student/studentdetailoverlay.xul.php
@@ -201,7 +201,7 @@ echo '';
-
+
diff --git a/content/student/studentoverlay.js.php b/content/student/studentoverlay.js.php
index 273382557..700183669 100644
--- a/content/student/studentoverlay.js.php
+++ b/content/student/studentoverlay.js.php
@@ -135,10 +135,12 @@ function StudentTreeRefresh()
try
{
StudentSelectUid=tree.view.getCellText(tree.currentIndex,col);
- StudentTreeDatasource.Refresh(false); //non blocking
}
catch(e)
- {}
+ {
+ StudentSelectUid=null;
+ }
+ StudentTreeDatasource.Refresh(false); //non blocking
}
// ****
@@ -564,7 +566,7 @@ function StudentAuswahl()
return false;
}
- var url = 'rdf/student.rdf.php?uid='+uid+'&'+gettimestamp();
+ var url = 'rdf/student.rdf.php?uid='+uid+'&stsem=true&'+gettimestamp();
//hier wird GetDataSourceBlocking verwendet da sich
//bei der Methode mit phpRequest der Mozilla aufhaengt
diff --git a/content/tempus.js.php b/content/tempus.js.php
index f6980c666..a06f65bda 100644
--- a/content/tempus.js.php
+++ b/content/tempus.js.php
@@ -99,6 +99,17 @@ function studiensemesterChange()
document.getElementById("statusbarpanel-text").label = "Studiensemester erfolgreich geändert";
document.getElementById("statusbarpanel-semester").label = stsem;
//MitarbeiterDetailStudiensemester_id = dbdml_errormsg;
+ //Ansichten Refreshen
+ try
+ {
+ StudentTreeRefresh();
+ InteressentTreeRefresh();
+ LvTreeRefresh();
+ }
+ catch(e)
+ {
+ debug('catch: '+e);
+ }
}
else
{
diff --git a/include/student.class.php b/include/student.class.php
index 75fc7cfdb..1e231200b 100644
--- a/include/student.class.php
+++ b/include/student.class.php
@@ -59,13 +59,28 @@ class student extends benutzer
$this->load($uid);
}
- function load($uid)
+ // **************************************************
+ // * Laedt die Daten eines Studenten
+ // * Wenn Studiensemester_kurzbz angegeben wird, dann werden
+ // * Studiengang, Semester, Verband und Gruppe aus der Tabelle
+ // * Studentlehrverband geholt.
+ // * @param uid
+ // * studiensemester_kurzbz
+ // * @return true wenn ok, false im Fehlerfall
+ // **************************************************
+ function load($uid, $studiensemester_kurzbz=null)
{
if(!benutzer::load($uid))
return false;
- $qry = "SELECT * FROM public.tbl_student WHERE student_uid='".addslashes($uid)."'";
-
+ if(is_null($studiensemester_kurzbz))
+ $qry = "SELECT * FROM public.tbl_student WHERE student_uid='".addslashes($uid)."'";
+ else
+ $qry = "SELECT *, tbl_studentlehrverband.studiengang_kz as studiengang_kz, tbl_studentlehrverband.semester as semester,
+ tbl_studentlehrverband.verband as verband, tbl_studentlehrverband.gruppe as gruppe
+ FROM public.tbl_student JOIN public.tbl_studentlehrverband USING(student_uid)
+ WHERE studiensemester_kurzbz='".addslashes($studiensemester_kurzbz)."' AND student_uid='".addslashes($uid)."'";
+
if($result = pg_query($this->conn, $qry))
{
if($row = pg_fetch_object($result))
@@ -268,7 +283,9 @@ class student extends benutzer
}
//$sql_query="SELECT * FROM campus.vw_student WHERE $where ORDER by nachname,vorname";
- $sql_query = "SELECT *, tbl_student.semester as std_semester, tbl_student.verband as std_verband, tbl_student.gruppe as std_gruppe, tbl_student.studiengang_kz as std_studiengang_kz FROM public.tbl_person, public.tbl_student, ((public.tbl_benutzer LEFT JOIN public.tbl_benutzergruppe USING(uid)) LEFT JOIN public.tbl_studentlehrverband ON(uid = student_uid))
+ $sql_query = "SELECT *, tbl_student.semester as std_semester, tbl_student.verband as std_verband, tbl_student.gruppe as std_gruppe, tbl_student.studiengang_kz as std_studiengang_kz,
+ tbl_studentlehrverband.studiengang_kz as lvb_studiengang_kz, tbl_studentlehrverband.semester as lvb_semester, tbl_studentlehrverband.verband as lvb_verband, tbl_studentlehrverband.gruppe as lvb_gruppe
+ FROM public.tbl_person, public.tbl_student, ((public.tbl_benutzer LEFT JOIN public.tbl_benutzergruppe USING(uid)) LEFT JOIN public.tbl_studentlehrverband ON(uid = student_uid))
WHERE tbl_person.person_id=tbl_benutzer.person_id AND tbl_benutzer.uid = tbl_student.student_uid AND $where ORDER BY nachname, vorname";
//echo $sql_query;
if(!($erg=pg_query($this->conn, $sql_query)))
@@ -303,10 +320,10 @@ class student extends benutzer
$l->updatevon=(isset($row->updatevon)?$row->updatevon:'');
// Studentendaten
$l->matrikelnr=$row->matrikelnr;
- $l->gruppe=$row->std_gruppe;
- $l->verband=$row->std_verband;
- $l->semester=$row->std_semester;
- $l->studiengang_kz=$row->std_studiengang_kz;
+ $l->gruppe=$row->lvb_gruppe;
+ $l->verband=$row->lvb_verband;
+ $l->semester=$row->lvb_semester;
+ $l->studiengang_kz=$row->lvb_studiengang_kz;
//$l->stg_bezeichnung=$row->bezeichnung;
// student in Array speichern
$result[]=$l;
diff --git a/rdf/student.rdf.php b/rdf/student.rdf.php
index ef565deb7..cad717c4b 100644
--- a/rdf/student.rdf.php
+++ b/rdf/student.rdf.php
@@ -53,7 +53,7 @@ else
// Studenten holen
$student=new student($conn,null,true);
if (isset($uid))
- $student->load($uid);
+ $student->load($uid, $stsem);
else
$studenten=$student->getStudents($stg_kz,$sem,$ver,$grp,$gruppe, $stsem);