- Weiterbildung aktualisiert

- Kontoverwaltung Erstversion
This commit is contained in:
Andreas Österreicher
2007-05-14 15:57:36 +00:00
parent d986171fbd
commit 44cf47c79d
5 changed files with 795 additions and 1 deletions
+133 -1
View File
@@ -36,6 +36,138 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
>
<!-- Zeugnis Overlay -->
<vbox id="student-konto" style="margin:0px;" flex="1">
<popupset>
<popup id="student-konto-tree-popup">
<menuitem label="Entfernen" oncommand="StudentKontoDel();" id="student-konto-tree-popup-kontodel" hidden="false"/>
</popup>
</popupset>
<hbox flex="1">
<grid id="student-konto-grid-detail" style="overflow:auto;margin:4px;" flex="1">
<columns >
<column flex="1"/>
<column flex="1"/>
</columns>
<rows>
<row>
<hbox>
<spacer flex="1" />
<button id="student-konto-button-filter" label="offene" disabled="true"/>
</hbox>
<spacer />
</row>
<row>
<tree id="student-konto-tree" seltype="single" hidecolumnpicker="false" flex="1"
datasources="rdf:null" ref="http://www.technikum-wien.at/konto/liste"
style="margin-left:10px;margin-right:10px;margin-bottom:5px;margin-top: 10px;" height="100px" enableColumnDrag="true"
onclick="StudentKontoAuswahl()"
context="student-konto-tree-popup"
>
<treecols>
<treecol id="student-konto-tree-buchungsdatum" label="Buchungsdatum" flex="2" hidden="false" primary="true"
class="sortDirectionIndicator"
sortActive="true"
sortDirection="ascending"
sort="rdf:http://www.technikum-wien.at/konto/rdf#buchungsdatum"/>
<splitter class="tree-splitter"/>
<treecol id="student-konto-tree-buchungstext" label="Buchungstext" flex="5" hidden="false"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/konto/rdf#buchungstext"/>
<splitter class="tree-splitter"/>
<treecol id="student-konto-tree-betrag" label="Betrag" flex="2" hidden="false"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/konto/rdf#betrag" />
<splitter class="tree-splitter"/>
<treecol id="student-konto-tree-studiensemester_kurzbz" label="StSem" flex="2" hidden="false"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/konto/rdf#studiensemester_kurzbz" />
<splitter class="tree-splitter"/>
<treecol id="student-konto-tree-buchungsnr" label="buchungs_nr" flex="2" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/konto/rdf#buchungsnr" />
<splitter class="tree-splitter"/>
</treecols>
<template>
<treechildren flex="1" >
<treeitem uri="rdf:*">
<treerow>
<treecell label="rdf:http://www.technikum-wien.at/konto/rdf#buchungsdatum"/>
<treecell label="rdf:http://www.technikum-wien.at/konto/rdf#buchungstext"/>
<treecell label="rdf:http://www.technikum-wien.at/konto/rdf#betrag"/>
<treecell label="rdf:http://www.technikum-wien.at/konto/rdf#studiensemester_kurzbz"/>
<treecell label="rdf:http://www.technikum-wien.at/konto/rdf#buchungsnr"/>
</treerow>
</treeitem>
</treechildren>
</template>
</tree>
<vbox>
<hbox>
<button id="student-konto-button-neu" label="Neu" disabled="true"/>
<button id="student-konto-button-gegenbuchung" label="Gegenbuchung" disabled="true"/>
<button id="student-konto-button-loeschen" label="Loeschen" disabled="true"/>
</hbox>
<groupbox id="student-konto-groupbox" flex="1">
<caption label="Details"/>
<grid id="student-konto-grid-detail" style="overflow:auto;margin:4px;" flex="1">
<columns >
<column flex="1"/>
<column flex="5"/>
</columns>
<rows>
<row>
<label value="Betrag" control="student-konto-textbox-betrag"/>
<hbox>
<textbox id="student-konto-textbox-betrag" disabled="true" maxlength="9" size="9"/>
<spacer flex="1" />
</hbox>
</row>
<row>
<label value="Buchungsdatum" control="student-konto-textbox-buchungsdatum"/>
<hbox>
<textbox id="student-konto-textbox-buchungsdatum" disabled="true" maxlength="10" size="10"/>
<spacer flex="1" />
</hbox>
</row>
<row>
<label value="Buchungstext" control="student-konto-textbox-buchungstext"/>
<textbox id="student-konto-textbox-buchungstext" disabled="true" maxlength="256"/>
</row>
<row>
<label value="Mahnspanne" control="student-konto-textbox-mahnspanne"/>
<hbox>
<textbox id="student-konto-textbox-mahnspanne" disabled="true" maxlength="4" size="4"/>
<spacer flex="1" />
</hbox>
</row>
<row>
<label value="Typ" control="student-konto-menulist-buchungstyp"/>
<menulist id="student-konto-menulist-buchungstyp" disabled="true"
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>
</row>
</rows>
</grid>
<hbox>
<spacer flex="1" />
<button id="student-konto-button-speichern" label="Speichern" disabled="true"/>
</hbox>
</groupbox>
</vbox>
</row>
</rows>
</grid>
</hbox>
<spacer flex="1" />
</vbox>
</overlay>
+68
View File
@@ -636,6 +636,23 @@ function StudentAuswahl()
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
var datasource = rdfService.GetDataSource(url);
rollentree.database.AddDataSource(datasource);
//Zeugnis
kontotree = document.getElementById('student-konto-tree');
url='<?php echo APP_ROOT;?>rdf/konto.rdf.php?person_id='+person_id+"&"+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);
var datasource = rdfService.GetDataSource(url);
kontotree.database.AddDataSource(datasource);
//Zeugnis
zeugnistree = document.getElementById('student-zeugnis-tree');
@@ -851,4 +868,55 @@ function StudentAkteDel()
StudentTreeRefresh();
}
}
// ****
// * Wenn eine buchung Ausgewaehlt wird, dann werden
// * die Details geladen und angezeigt
// ****
function StudentKontoAuswahl()
{
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
var tree = document.getElementById('student-konto-tree');
if (tree.currentIndex==-1) return;
//Ausgewaehlte Nr holen
var col = tree.columns ? tree.columns["student-konto-tree-buchungsnr"] : "student-konto-tree-buchungsnr";
var buchungsnr=tree.view.getCellText(tree.currentIndex,col);
//Daten holen
var url = '<?php echo APP_ROOT ?>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('student-konto-textbox-betrag').value=betrag;
document.getElementById('student-konto-textbox-buchungsdatum').value=buchungsdatum;
document.getElementById('student-konto-textbox-buchungstext').value=buchungstext;
document.getElementById('student-konto-textbox-mahnspanne').value=mahnspanne;
document.getElementById('student-konto-menulist-buchungstyp').value=buchungstyp_kurzbz;
}
function StudentKontoDisableFields(val)
{
}
+372
View File
@@ -0,0 +1,372 @@
<?php
/* Copyright (C) 2006 Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
/**
* Klasse Konto
* @create 2007-05-14
*/
class konto
{
var $conn; // @var resource DB-Handle
var $new; // @var boolean
var $errormsg; // @var string
var $result = array(); // @var adresse Objekt
//Tabellenspalten
var $buchungsnr;
var $person_id;
var $studiengang_kz;
var $studiensemester_kurzbz;
var $buchungsnr_verweis;
var $betrag;
var $buchungsdatum;
var $buchungstext;
var $mahnspanne;
var $buchungstyp_kurzbz;
var $updateamum;
var $updatevon;
var $insertamum;
var $insertvon;
var $ext_id;
var $beschreibung;
// **************************************************************************
// * Konstruktor
// * @param $conn Connection
// * $buchungsnr ID der Adresse die geladen werden soll (Default=null)
// **************************************************************************
function konto($conn, $buchungsnr=null, $unicode=false)
{
$this->conn = $conn;
if($unicode!=null)
{
if ($unicode)
{
$qry = "SET CLIENT_ENCODING TO 'UNICODE';";
}
else
{
$qry="SET CLIENT_ENCODING TO 'LATIN9';";
}
if(!pg_query($conn,$qry))
{
$this->errormsg = "Encoding konnte nicht gesetzt werden";
return false;
}
}
if($buchungsnr!=null)
$this->load($buchungsnr);
}
// ************************************************
// * Laedt die Funktion mit der ID $buchungsnr
// * @param $buchungsnr ID der zu ladenden Email
// * @return true wenn ok, false im Fehlerfall
// ************************************************
function load($buchungsnr)
{
if(!is_numeric($buchungsnr))
{
$this->errormsg = 'Buchungsnr muss eine gueltige Zahl sein';
return false;
}
$qry = "SELECT * FROM public.tbl_konto WHERE buchungsnr='$buchungsnr'";
if($result = pg_query($this->conn, $qry))
{
if($row = pg_fetch_object($result))
{
$this->buchungsnr = $row->buchungsnr;
$this->person_id = $row->person_id;
$this->studiengang_kz = $row->studiengang_kz;
$this->studiensemester_kurzbz = $row->studiensemester_kurzbz;
$this->buchungsnr_verweis = $row->buchungsnr_verweis;
$this->betrag = $row->betrag;
$this->buchungsdatum = $row->buchungsdatum;
$this->buchungstext = $row->buchungstext;
$this->mahnspanne = $row->mahnspanne;
$this->buchungstyp_kurzbz = $row->buchungstyp_kurzbz;
$this->updatamum = $row->updateamum;
$this->updatevon = $row->updatevon;
$this->insertamum = $row->insertamum;
$this->insertvon = $row->insertvon;
$this->ext_id = $row->ext_id;
return true;
}
else
{
$this->errormsg = 'Datensatz wurde nicht gefunden';
return false;
}
}
else
{
$this->errormsg = 'Fehler beim laden der Daten';
return false;
}
}
// *******************************************
// * Prueft die Variablen auf gueltigkeit
// * @return true wenn ok, false im Fehlerfall
// *******************************************
function checkvars()
{
return true;
}
// ************************************************
// * wenn $var '' ist wird "null" zurueckgegeben
// * wenn $var !='' ist werden datenbankkritische
// * Zeichen mit backslash versehen und das Ergebnis
// * unter Hochkomma gesetzt.
// ************************************************
function addslashes($var)
{
return ($var!=''?"'".addslashes($var)."'":'null');
}
// ***********************************************************************
// * Speichert den aktuellen Datensatz in die Datenbank
// * Wenn $neu auf true gesetzt ist wird ein neuer Datensatz angelegt
// * andernfalls wird der Datensatz mit der ID in $kontakt_id aktualisiert
// * @param $new true wenn insert false wenn update
// * @return true wenn ok, false im Fehlerfall
// ***********************************************************************
function save($new=null)
{
//Variablen pruefen
if(!$this->checkvars())
return false;
if($new==null)
$new = $this->new;
if($new)
{
//Neuen Datensatz einfuegen
$qry='BEGIN;INSERT INTO public.tbl_konto (person_id, studiengang_kz, studiensemester_kurzbz, buchungsnr_verweis, betrag, buchungsdatum, buchungstext, mahnspanne, buchungstyp_kurzbz, updateamum, updatevon, insertamum, insertvon, ext_id) VALUES('.
$this->addslashes($this->person_id).', '.
$this->addslashes($this->studiengang_kz).', '.
$this->addslashes($this->studiensemester_kurzbz).', '.
$this->addslashes($this->buchungsnr_verweis).', '.
$this->addslashes($this->betrag).', '.
$this->addslashes($this->buchungsdatum).', '.
$this->addslashes($this->buchungstext).', '.
$this->addslashes($this->mahnspanne).', '.
$this->addslashes($this->buchungstyp_kurzbz).', '.
$this->addslashes($this->updateamum).', '.
$this->addslashes($this->updatevon).', '.
$this->addslashes($this->insertamum).', '.
$this->addslashes($this->insertvon).', '.
$this->addslashes($this->ext_id).');';
}
else
{
//Updaten des bestehenden Datensatzes
$qry = 'UPDATE public.tbl_konto SET '.
' person_id='.$this->addslashes($this->person_id).','.
' studiengang_kz='.$this->addslashes($this->studiengang_kz).','.
' studiensemester_kurzbz='.$this->addslashes($this->studiensemester_kurzbz).','.
' buchungsnr_verweis='.$this->addslashes($this->buchungsnr_verweis).','.
' betrag='.$this->addslashes($this->betrag).','.
' buchungsdatum='.$this->addslashes($this->buchungsdatum).','.
' buchungstext='.$this->addslashes($this->buchungstext).','.
' mahnspanne='.$this->addslashes($this->mahnspanne).','.
' buchungstyp_kurzbz='.$this->addslashes($this->buchungstyp_kurzbz).','.
' updateamum='.$this->addslashes($this->updateamum).','.
' updatevon='.$this->addslashes($this->updatevon).','.
' insertamum='.$this->addslashes($this->insertamum).','.
' insertvon='.$this->addslashes($this->insertvon).','.
' ext_id='.$this->addslashes($this->ext_id).';';
}
//echo $qry;
if(pg_query($this->conn, $qry))
{
if($new)
{
$qry = "SELECT currval('public.tbl_konto_buchungsnr_seq') as id";
if($result = pg_query($this->conn, $qry))
{
if($row = pg_fetch_object($result))
{
$this->buchungsnr = $row->id;
pg_query($this->conn, 'COMMIT;');
}
else
{
$this->errormsg = 'Fehler beim Auslesen der Sequence';
pg_query($this->conn, 'ROLLBACK;');
return false;
}
}
else
{
$this->errormsg = 'Fehler beim Auslesen der Sequence';
pg_query($this->conn, 'ROLLBACK;');
return false;
}
}
return true;
}
else
{
$this->errormsg = 'Fehler beim Speichern der Daten';
return true;
}
}
/**
* Loescht den Datenensatz mit der ID die uebergeben wird
* @param buchungsnr ID die geloescht werden soll
* @return true wenn ok, false im Fehlerfall
*/
function delete($buchungsnr)
{
//Pruefen ob Verweise auf diese Buchung Vorhanden sind
$qry = "SELECT count(*) as anzahl FROM public.tbl_konto WHERE buchungsnr_verweis='".addslashes($buchungsnr)."'";
if($result = pg_query($this->conn, $qry))
{
if($row = pg_fetch_object($this->conn, $qry))
{
if($row->anzahl>0)
{
$this->errormsg = 'Bitte zuerst die zugeordneten Buchungen loeschen';
return false;
}
else
{
//Wenn keine Verweise Vorhanden sind, dann die Buchung loeschen
$qry = "DELETE FROM public.tbl_konto WHERE buchungsnr_verweis='".addslashes($buchungsnr)."'";
if(pg_query($this->conn, $qry))
return true;
else
{
$this->errormsg = 'Fehler beim Loeschen der Buchung';
return false;
}
}
}
else
{
$this->errormsg = 'Fehler beim Ermitteln der Verweise';
return false;
}
}
else
{
$this->errormsg = 'Fehler beim Ermitteln der Verweise';
return false;
}
}
// ******************************************
// * Laedt alle Buchungen einer Person
// * und legt diese geordnet in ein Array
// * @param person_id
// * @return true wenn ok, false wenn fehler
// ******************************************
function getBuchungen($person_id)
{
if(!is_numeric($person_id))
{
$this->errormsg = 'Person_id muss eine gueltige Zahl sein';
return false;
}
$qry = "SELECT * FROM public.tbl_konto WHERE person_id='".$person_id."' ORDER BY buchungsdatum";
if($result = pg_query($this->conn, $qry))
{
while($row = pg_fetch_object($result))
{
$buchung = new konto($this->conn, null, null);
$buchung->buchungsnr = $row->buchungsnr;
$buchung->person_id = $row->person_id;
$buchung->studiengang_kz = $row->studiengang_kz;
$buchung->studiensemester_kurzbz = $row->studiensemester_kurzbz;
$buchung->buchungsnr_verweis = $row->buchungsnr_verweis;
$buchung->betrag = $row->betrag;
$buchung->buchungsdatum = $row->buchungsdatum;
$buchung->buchungstext = $row->buchungstext;
$buchung->mahnspanne = $row->mahnspanne;
$buchung->buchungstyp_kurzbz = $row->buchungstyp_kurzbz;
$buchung->updatamum = $row->updateamum;
$buchung->updatevon = $row->updatevon;
$buchung->insertamum = $row->insertamum;
$buchung->insertvon = $row->insertvon;
$buchung->ext_id = $row->ext_id;
if($buchung->buchungsnr_verweis!='')
{
$this->result[$buchung->buchungsnr_verweis]['childs'][] = $buchung;
}
else
{
$this->result[$buchung->buchungsnr]['parent'] = $buchung;
}
}
return true;
}
else
{
$this->errormsg = 'Fehler beim laden der Daten';
return false;
}
}
// ******************************************
// * Liefert alle Buchungstypen
// * @return true wenn ok, false wenn Fehler
// ******************************************
function getBuchungstyp()
{
$qry = "SELECT * FROM public.tbl_buchungstyp ORDER BY beschreibung";
if($result = pg_query($this->conn, $qry))
{
while($row = pg_fetch_object($result))
{
$typ = new konto($this->conn, null, null);
$typ->buchungstyp_kurzbz = $row->buchungstyp_kurzbz;
$typ->beschreibung = $row->beschreibung;
$this->result[] = $typ;
}
return false;
}
else
{
$this->errormsg = 'Fehler beim Laden der Daten';
return false;
}
}
}
?>
+67
View File
@@ -0,0 +1,67 @@
<?php
/* Copyright (C) 2006 Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
// header für no cache
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");
// content type setzen
header("Content-type: application/xhtml+xml");
// xml
echo '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>';
// DAO
require_once('../vilesci/config.inc.php');
require_once('../include/konto.class.php');
// Datenbank Verbindung
if (!$conn = @pg_pconnect(CONN_STRING))
$error_msg='Es konnte keine Verbindung zum Server aufgebaut werden!';
// studiensemester holen
$typ = new konto($conn,null, true);
$typ->getBuchungstyp();
$rdf_url='http://www.technikum-wien.at/buchungstyp';
?>
<RDF:RDF
xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:TYP="<?php echo $rdf_url; ?>/rdf#"
>
<RDF:Seq about="<?php echo $rdf_url ?>/liste">
<?php
foreach ($typ->result as $row)
{
?>
<RDF:li>
<RDF:Description id="<?php echo $row->buchungstyp_kurzbz; ?>" about="<?php echo $rdf_url.'/'.$row->buchungstyp_kurzbz; ?>" >
<TYP:buchungstyp_kurzbz><![CDATA[<?php echo $row->buchungstyp_kurzbz ?>]]></TYP:buchungstyp_kurzbz>
<TYP:beschreibung><![CDATA[<?php echo $row->beschreibung ?>]]></TYP:beschreibung>
</RDF:Description>
</RDF:li>
<?php
}
?>
</RDF:Seq>
</RDF:RDF>
+155
View File
@@ -0,0 +1,155 @@
<?php
/* Copyright (C) 2006 Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
/*
* Created on 02.12.2004
*
* To change the template for this generated file go to
* Window - Preferences - PHPeclipse - PHP - Code Templates
*/
// header fuer no cache
header("Cache-Control: 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");
// content type setzen
header("Content-type: application/xhtml+xml");
// xml
echo '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>';
// DAO
require_once('../vilesci/config.inc.php');
require_once('../include/konto.class.php');
require_once('../include/functions.inc.php');
// Datenbank Verbindung
if (!$conn = @pg_pconnect(CONN_STRING))
$error_msg='Es konnte keine Verbindung zum Server aufgebaut werden!';
$user = get_uid();
$hier='';
if(isset($_GET['person_id']) && is_numeric($_GET['person_id']))
{
$person_id=$_GET['person_id'];
}
else
$person_id='';
if(isset($_GET['buchungsnr']) && is_numeric($_GET['buchungsnr']))
{
$buchungsnr = $_GET['buchungsnr'];
}
else
$buchungsnr = '';
$konto = new konto($conn, null, true);
if($person_id!='')
{
$konto->getBuchungen($person_id);
}
elseif($buchungsnr!='')
{
if(!$konto->load($buchungsnr))
die($konto->errormsg);
}
else
die('Falsche Parameteruebergabe');
$rdf_url='http://www.technikum-wien.at/konto';
?>
<RDF:RDF
xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:KONTO="<?php echo $rdf_url; ?>/rdf#"
>
<?php
function drawrow($row)
{
global $rdf_url;
echo "
<RDF:Description id=\"".$row->buchungsnr."\" about=\"".$rdf_url.'/'.$row->buchungsnr."\" >
<KONTO:buchungsnr><![CDATA[".$row->buchungsnr."]]></KONTO:buchungsnr>
<KONTO:person_id><![CDATA[".$row->person_id."]]></KONTO:person_id>
<KONTO:studiengang_kz><![CDATA[".$row->studiengang_kz."]]></KONTO:studiengang_kz>
<KONTO:studiensemester_kurzbz><![CDATA[".$row->studiensemester_kurzbz."]]></KONTO:studiensemester_kurzbz>
<KONTO:buchungsnr_verweis><![CDATA[".$row->buchungsnr_verweis."]]></KONTO:buchungsnr_verweis>
<KONTO:betrag><![CDATA[".$row->betrag."]]></KONTO:betrag>
<KONTO:buchungsdatum><![CDATA[".$row->buchungsdatum."]]></KONTO:buchungsdatum>
<KONTO:buchungstext><![CDATA[".$row->buchungstext."]]></KONTO:buchungstext>
<KONTO:mahnspanne><![CDATA[".$row->mahnspanne."]]></KONTO:mahnspanne>
<KONTO:buchungstyp_kurzbz><![CDATA[".$row->buchungstyp_kurzbz."]]></KONTO:buchungstyp_kurzbz>
<KONTO:updateamum><![CDATA[".$row->updateamum."]]></KONTO:updateamum>
<KONTO:updatevon><![CDATA[".$row->updatevon."]]></KONTO:updatevon>
<KONTO:insertamum><![CDATA[".$row->insertamum."]]></KONTO:insertamum>
<KONTO:insertvon><![CDATA[".$row->insertvon."]]></KONTO:insertvon>
</RDF:Description>";
}
if($person_id!='')
{
foreach ($konto->result as $buchung)
{
$buchung = $buchung['parent'];
//1. Ebene
drawrow($buchung);
$hier.="
<RDF:li>
<RDF:Seq about=\"".$rdf_url.'/'.$buchung->buchungsnr."\" >";
if(isset($konto->result[$buchung->buchungsnr]['childs']))
{
//2. Ebene
foreach ($konto->result[$buchung->buchungsnr]['childs'] as $row)
{
if(is_object($row))
{
drawrow($row);
$hier.="
<RDF:li resource=\"".$rdf_url.'/'.$row->buchungsnr.'" />';
}
}
}
$hier.="
</RDF:Seq>
</RDF:li>";
}
}
else
{
$hier.="<RDF:li resource=\"".$rdf_url.'/'.$konto->buchungsnr.'" />';
drawrow($konto);
}
$hier="
<RDF:Seq about=\"".$rdf_url."/liste\">".$hier."
</RDF:Seq>";
echo $hier;
?>
</RDF:RDF>