This commit is contained in:
Andreas Österreicher
2008-03-03 16:48:25 +00:00
parent b1ec5f97dc
commit e9864978cc
4 changed files with 102 additions and 1 deletions
@@ -55,7 +55,32 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
</hbox>
<hbox>
<button id="student-konto-button-filterstudenten" oncommand="StudentKontoFilterStudenten('konto')" label="Studentenliste auf offene Buchungen filtern" tooltiptext="Liste aller Studenten mit offenen Buchungen"/>
<!--
<button id="student-konto-button-filterstudiengebuehr" oncommand="StudentKontoFilterStudenten('studiengebuehr')" label="nicht gebuchte Studiengebuehr" tooltiptext="Liste aller Studenten ohne Studiengebuehrbelastung"/>
-->
<vbox>
<spacer flex="1" />
<label value="Liste auf nicht gebuchte"/>
<sapcer flex="1" />
</vbox>
<vbox flex="1">
<spacer flex="1" />
<menulist id="student-konto-menulist-filter-buchungstyp" disabled="false"
datasources="<?php echo APP_ROOT ?>rdf/buchungstyp.rdf.php" flex="1"
ref="http://www.technikum-wien.at/buchungstyp/liste" >
<template>
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/buchungstyp/rdf#buchungstyp_kurzbz"
label="rdf:http://www.technikum-wien.at/buchungstyp/rdf#beschreibung"
uri="rdf:*"/>
</menupopup>
</template>
</menulist>
<spacer flex="1" />
</vbox>
<button id="student-konto-button-filterbuchungstyp" oncommand="StudentKontoFilterBuchungstyp()" label="filtern"/>
</hbox>
</row>
+59
View File
@@ -1940,6 +1940,65 @@ function StudentKontoFilterStudenten(filter)
treeStudent.builder.addListener(StudentTreeListener);
}
// ****
// * Setzt im Studententree einen Filter auf die Buchungstypen
// ****
function StudentKontoFilterBuchungstyp()
{
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
var tree=document.getElementById('tree-verband');
//Wenn nichts markiert wurde -> beenden
if(tree.currentIndex==-1)
{
alert('Bitte zuerst einen Studiengang/Semester waehlen');
return;
}
filter = document.getElementById('student-konto-menulist-filter-buchungstyp').value;
// Progressmeter starten. Ab jetzt keine 'return's mehr.
document.getElementById('statusbar-progressmeter').setAttribute('mode','undetermined');
//globalProgressmeter.StartPM();
var stg_kz = getTreeCellText(tree, 'stg_kz', tree.currentIndex);
var sem = getTreeCellText(tree, 'sem', tree.currentIndex);
var ver = getTreeCellText(tree, 'ver', tree.currentIndex);
var grp = getTreeCellText(tree, 'grp', tree.currentIndex);
var gruppe = getTreeCellText(tree, 'gruppe', tree.currentIndex);
var typ = getTreeCellText(tree, 'typ', tree.currentIndex);
var stsem = getTreeCellText(tree, 'stsem', tree.currentIndex);
if(stsem=='')
stsem = getStudiensemester();
if(typ=='')
typ='student';
url = "<?php echo APP_ROOT; ?>rdf/student.rdf.php?studiengang_kz="+stg_kz+"&semester="+sem+"&verband="+ver+"&gruppe="+grp+"&gruppe_kurzbz="+gruppe+"&studiensemester_kurzbz="+stsem+"&typ="+typ+"&filter2=buchungstyp;"+filter+"&"+gettimestamp();
var treeStudent=document.getElementById('student-tree');
//Alte DS entfernen
var oldDatasources = treeStudent.database.GetDataSources();
while(oldDatasources.hasMoreElements())
{
treeStudent.database.RemoveDataSource(oldDatasources.getNext());
}
try
{
StudentTreeDatasource.removeXMLSinkObserver(StudentTreeSinkObserver);
treeStudent.builder.removeListener(StudentTreeListener);
}
catch(e)
{}
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
StudentTreeDatasource = rdfService.GetDataSource(url);
StudentTreeDatasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
StudentTreeDatasource.QueryInterface(Components.interfaces.nsIRDFXMLSink);
treeStudent.database.AddDataSource(StudentTreeDatasource);
StudentTreeDatasource.addXMLSinkObserver(StudentTreeSinkObserver);
treeStudent.builder.addListener(StudentTreeListener);
}
// ****
// * Aktiviert / Deaktiviert die Konto Felder
// ****
+1 -1
View File
@@ -370,7 +370,7 @@ class konto
$qry = "SELECT tbl_konto.*, anrede, titelpost, titelpre, nachname, vorname, vornamen
FROM public.tbl_konto JOIN public.tbl_person USING (person_id)
WHERE person_id='".$person_id."' $stgwhere ORDER BY buchungsdatum";
if($result = pg_query($this->conn, $qry))
{
while($row = pg_fetch_object($result))
+17
View File
@@ -91,6 +91,23 @@ function checkfilter($row, $filter2)
if($row_filter->anzahl>0 || $prestudent->rolle_kurzbz=='Incoming')
return false;
}
elseif(strstr($filter2,'buchungstyp;'))
{
// Alle Personen die keine Belastung auf den uebergebenen Buchungstyp haben
// Incoming werden nicht beruecksichtigt
list($filter, $buchungstyp) = split(';',$filter2);
$prestudent = new prestudent($conn, null, null);
$prestudent->getLastStatus($row->prestudent_id);
$qry = "SELECT count(*) as anzahl FROM public.tbl_konto WHERE
studiensemester_kurzbz='".addslashes($studiensemester_kurzbz)."' AND
person_id='".addslashes($row->person_id)."' AND
buchungstyp_kurzbz='$buchungstyp'";
if($result_filter = pg_query($conn, $qry))
if($row_filter = pg_fetch_object($result_filter))
if($row_filter->anzahl>0 || $prestudent->rolle_kurzbz=='Incoming')
return false;
}
elseif($filter2=='zgvohnedatum')
{
//Alle Personen die den ZGV Typ eingetragen haben aber noch kein Datum