This commit is contained in:
Andreas Österreicher
2007-12-12 11:51:45 +00:00
parent 36e4f2af2b
commit 2586d722c5
5 changed files with 333 additions and 22 deletions
+2
View File
@@ -24,6 +24,8 @@ $rechte->getBerechtigungen($uid);
/*echo '<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>';*/
echo '<?xml-stylesheet href="'.APP_ROOT.'skin/tempus.css" type="text/css"?>';
echo '<?xul-overlay href="'.APP_ROOT.'content/tempusoverlay.xul.php"?>';
echo '<?xml-stylesheet href="'.APP_ROOT.'content/bindings.css" type="text/css" ?>';
echo '<?xml-stylesheet href="datepicker/datepicker.css" type="text/css"?>';
?>
<!DOCTYPE window [
+134 -21
View File
@@ -34,7 +34,11 @@ function onVerbandSelect()
var grp=tree.view.getCellText(tree.currentIndex,col);
col=tree.columns ? tree.columns["gruppe"] : "gruppe";
var gruppe=tree.view.getCellText(tree.currentIndex,col);
col = tree.columns ? tree.columns["typ"] : "typ";
var typ=tree.view.getCellText(tree.currentIndex,col);
col = tree.columns ? tree.columns["stsem"] : "stsem";
var stsem=tree.view.getCellText(tree.currentIndex,col);
var daten=window.TimeTableWeek.document.getElementById('TimeTableWeekData');
var datum=parseInt(daten.getAttribute("datum"));
var attributes="&stg_kz="+stg_kz+"&sem="+sem+"&ver="+ver+"&grp="+grp+"&gruppe="+gruppe;
@@ -85,29 +89,138 @@ function onVerbandSelect()
//treeStudenten.setAttribute('datasources',attribute);
// Studenten
try
if(typ=='')
{
url = "<?php echo APP_ROOT; ?>rdf/student.rdf.php?"+"stg_kz="+stg_kz+"&sem="+sem+"&ver="+ver+"&grp="+grp+"&gruppe="+gruppe+"&"+gettimestamp();
var treeStudent=document.getElementById('student-tree');
//Alte DS entfernen
var oldDatasources = treeStudent.database.GetDataSources();
while(oldDatasources.hasMoreElements())
/*try
{
treeStudent.database.RemoveDataSource(oldDatasources.getNext());
url = "<?php echo APP_ROOT; ?>rdf/student.rdf.php?"+"stg_kz="+stg_kz+"&sem="+sem+"&ver="+ver+"&grp="+grp+"&gruppe="+gruppe+"&"+gettimestamp();
var treeStudent=document.getElementById('student-tree');
//Alte DS entfernen
var oldDatasources = treeStudent.database.GetDataSources();
while(oldDatasources.hasMoreElements())
{
treeStudent.database.RemoveDataSource(oldDatasources.getNext());
}
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);
}
catch(e)
{
debug(e);
}*/
//Bei Ansicht von Ab-/Unterbrecher den Button "->Student" anzeigen
if(sem=='0')
document.getElementById('student-toolbar-student').hidden=false;
else
document.getElementById('student-toolbar-student').hidden=true;
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);
//Wenn der Interessenten Tab markiert ist, dann den Studenten Tab markieren
//if(document.getElementById('main-content-tabs').selectedItem==document.getElementById('tab-interessenten'))
// document.getElementById('main-content-tabs').selectedItem=document.getElementById('tab-studenten');
// -------------- Studenten --------------------------
try
{
stsem = getStudiensemester();
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=student&"+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);
//Detailfelder Deaktivieren
StudentDetailReset();
StudentDetailDisableFields(true);
StudentPrestudentDisableFields(true);
StudentKontoDisableFields(true);
StudentAkteDisableFields(true);
StudentIODisableFields(true);
StudentNoteDisableFields(true);
document.getElementById('student-kontakt').setAttribute('src','');
document.getElementById('student-betriebsmittel').setAttribute('src','');
StudentAbschlusspruefungDisableFields(true);
}
catch(e)
{
debug(e);
}
}
catch(e)
else
{
debug(e);
// -------------- Interessenten / Bewerber --------------------------
try
{
if(stsem=='' && typ=='')
stsem='aktuelles';
url = "<?php echo APP_ROOT; ?>rdf/student.rdf.php?"+"studiengang_kz="+stg_kz+"&semester="+sem+"&typ="+typ+"&studiensemester_kurzbz="+stsem+"&"+gettimestamp();
var treeInt=document.getElementById('student-tree');
//Alte DS entfernen
var oldDatasources = treeInt.database.GetDataSources();
while(oldDatasources.hasMoreElements())
{
treeInt.database.RemoveDataSource(oldDatasources.getNext());
}
try
{
StudentTreeDatasource.removeXMLSinkObserver(StudentTreeSinkObserver);
treeInt.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);
treeInt.database.AddDataSource(StudentTreeDatasource);
StudentTreeDatasource.addXMLSinkObserver(StudentTreeSinkObserver);
treeInt.builder.addListener(StudentTreeListener);
//Detailfelder Deaktivieren
StudentDetailReset();
StudentDetailDisableFields(true);
StudentPrestudentDisableFields(true);
StudentKontoDisableFields(true);
StudentAkteDisableFields(true);
StudentIODisableFields(true);
StudentNoteDisableFields(true);
document.getElementById('student-kontakt').setAttribute('src','');
document.getElementById('student-betriebsmittel').setAttribute('src','');
StudentAbschlusspruefungDisableFields(true);
}
catch(e)
{
debug(e);
}
}
// Lehrveranstaltung
@@ -176,10 +289,10 @@ function onLektorSelect()
// LVAs
var vboxLehrveranstalungPlanung=document.getElementById('vboxLehrveranstalungPlanung');
vboxLehrveranstalungPlanung.setAttribute('datasources','../rdf/lehreinheit-lvplan.rdf.php?'+"type=lektor&lektor="+uid);
// Lehrveranstaltung
try
{
{
//var stg_idx = treeLektor.view.getParentIndex(tree.currentIndex);
//var col = tree.columns ? tree.columns["studiengang_kz"] : "studiengang_kz";
//var stg_kz=tree.view.getCellText(stg_idx,col);
@@ -205,7 +318,7 @@ function onLektorSelect()
catch(e)
{
debug(e);
}
}
}
function loadURL(event)
+5
View File
@@ -45,6 +45,9 @@ echo '<?xul-overlay href="'.APP_ROOT.'content/lvplanung/stpl-semester-overlay.xu
<treecol id="grp" label="Grp" flex="1" hidden="true"/>
<splitter class="tree-splitter"/>
<treecol id="gruppe" label="SpzGruppe" flex="1" hidden="true"/>
<treecol id="typ" label="Typ" flex="1" persist="hidden, width, ordinal" hidden="true"/>
<splitter class="tree-splitter"/>
<treecol id="stsem" label="StSem" flex="1" persist="hidden, width, ordinal" hidden="true"/>
</treecols>
<template>
@@ -59,6 +62,8 @@ echo '<?xul-overlay href="'.APP_ROOT.'content/lvplanung/stpl-semester-overlay.xu
<treecell label="rdf:http://www.technikum-wien.at/lehrverbandsgruppe/rdf#ver"/>
<treecell label="rdf:http://www.technikum-wien.at/lehrverbandsgruppe/rdf#grp"/>
<treecell label="rdf:http://www.technikum-wien.at/lehrverbandsgruppe/rdf#gruppe"/>
<treecell label="rdf:http://www.technikum-wien.at/lehrverbandsgruppe/rdf#typ"/>
<treecell label="rdf:http://www.technikum-wien.at/lehrverbandsgruppe/rdf#stsem"/>
</treerow>
</treeitem>
</treechildren>
+9 -1
View File
@@ -288,4 +288,12 @@ INSERT INTO tbl_berechtigung VALUES ('mitarbeiter', 'FAS Mitarbeitermodul');
INSERT INTO tbl_berechtigung VALUES ('lehre', 'Berechtigung fuer CIS-Seite');
INSERT INTO tbl_berechtigung VALUES ('lv-plan', 'Stundenplan');
INSERT INTO tbl_berechtigung VALUES ('assistenz', 'Assistenz');
INSERT INTO tbl_berechtigung VALUES ('news', 'News eintragen');
INSERT INTO tbl_berechtigung VALUES ('news', 'News eintragen');
-- buchungstyp
INSERT INTO public.tbl_buchungstyp VALUES ('Lehrmittelbeitrag', 'Lehrmittelbeitrag');
INSERT INTO public.tbl_buchungstyp VALUES ('Studiengebuehr', 'Studiengebühr');
INSERT INTO public.tbl_buchungstyp VALUES ('Sonstiges', 'Sonstiges');
INSERT INTO public.tbl_buchungstyp VALUES ('Unkostenbeitrag', 'Unkostenbeitrag');
INSERT INTO public.tbl_buchungstyp VALUES ('Kaution', 'Kaution');
+183
View File
@@ -0,0 +1,183 @@
<?php
// **************************************
// Syncronisiert alle Studiengebuehren
// StPoelten -> VILESCI
// setzt vorraus: - tbl_person
// - tbl_studiengang
// - tbl_studiensemester
// - tbl_buchungstyp
//
// Beschreibung:
// Syncronisert die Studiengebuehren aus der Tabelle Studiengebuehren in
// die Tabelle public.tbl_konto. Dabei wird zuerst die Belastung mit der
// negativen Studiengebuehr angelegt und danach die dazupassende Gegenbuchung.
// **************************************
require_once('sync_config.inc.php');
require_once('../../../include/studiengang.class.php');
require_once('../../../include/konto.class.php');
require_once('../../../include/functions.inc.php');
//$conn=pg_connect(CONN_STRING);
if (!$conn_ext=mssql_connect (STPDB_SERVER, STPDB_USER, STPDB_PASSWD))
die('Fehler beim Verbindungsaufbau!');
mssql_select_db(STPDB_DB, $conn_ext);
if(!$conn = pg_pconnect(CONN_STRING))
die('Fehler beim Verbindungsaufbau!');
echo '
<html>
<head>
<title>STP - VILESCI (Konto)</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>';
echo 'Starte Konto Syncronisation '.date('H:i:s').'<br>';
flush();
$gesamt=0;
$statistik='';
$error=0;
$head_text="Dies ist eine automatische Mail!\n\nFolgende Fehler sind bei der Synchronisation des Kontos aufgetreten:\n\n";
$text='';
$stg_arr = array();
$stg_obj = new studiengang($conn);
$stg_obj->getAll(null, false);
foreach ($stg_obj->result as $stg)
$stg_arr[$stg->studiengang_kz] = $stg->kuerzel;
// ******** SYNC START ********** //
$qry = "SELECT
_person, sem1, sem2, sem3, sem4, sem5, sem6, sem7, sem8, sem9, sem10
FROM
studiengebuehren
";
if($result_ext = mssql_query($qry, $conn_ext))
{
while($row_ext=mssql_fetch_object($result_ext))
{
$gesamt++;
//Person suchen
$qry = "SELECT person_id, studiengang_kz FROM public.tbl_prestudent WHERE ext_id='$row_ext->_person'";
if($result = pg_query($conn, $qry))
{
if($row = pg_fetch_object($result))
{
$person_id = $row->person_id;
$studiengang_kz = $row->studiengang_kz;
}
else
{
$text.="Person zu $row_ext->_person wurde nicht gefunden\n";
$error++;
continue;
}
}
else
{
$text.="Fehler beim ermitteln der Person: ".pg_last_error($conn)."\n";
$error++;
continue;
}
//Semester durchlaufen
for($i=1;$i<=10;$i++)
{
$semester = 'sem'.$i;
if($row_ext->$semester=='')
continue;
$datum = date('Y-m-d', strtotime($row_ext->$semester));
$studiensemester_kurzbz = getStudiensemesterFromDatum($conn, $datum, true);
if(!$studiensemester_kurzbz)
{
$text.="Es konnte kein passendes Studiensemester zu $datum gefunden werden\n";
$error++;
}
$konto = new konto($conn);
$qry = "SELECT * FROM public.tbl_konto WHERE
person_id='$person_id' AND
studiengang_kz='$studiengang_kz' AND
studiensemester_kurzbz='$studiensemester_kurzbz' AND
buchungstyp_kurzbz='Studiengebuehr'";
if($result = pg_query($conn, $qry))
{
if(pg_num_rows($result)>0)
{
//Wenn der Eintrag schon vorhanden ist dann dieses Semester ueberspringen
continue;
}
}
else
{
$text.="Fehler bei Select:".pg_last_error($conn);
continue;
}
//Belastung Buchen
$konto->person_id = $person_id;
$konto->studiengang_kz = $studiengang_kz;
$konto->studiensemester_kurzbz = $studiensemester_kurzbz;
$konto->buchungstyp_kurzbz = 'Studiengebuehr';
$konto->buchungsnr_verweis = '';
$konto->betrag = -363.36;
$konto->buchungsdatum = $datum;
$konto->buchungstext = "Studiengebuehr $stg_arr[$studiengang_kz] $i. Semester";
$konto->mahnspanne = 0;
$konto->updateamum = date('Y-m-d H:i:s');
$konto->updatevon = 'sync';
$konto->insertamum = date('Y-m-d H:i:s');
$konto->insertvon = 'sync';
if($konto->save(true))
{
//Gegenbuchung
$konto->buchungsnr_verweis = $konto->buchungsnr;
$konto->betrag = 363.36;
if($konto->save(true))
{
$text.="Studiengebuehr fuer Person $person_id Studiengang $stg_arr[$studiengang_kz] Semester $i wurde hinzugefuegt\n";
}
else
{
$text.="Fehler beim Speichern der Gegenbuchung: $konto->errormsg\n";
$error++;
}
}
else
{
$text.="Fehler beim Speichern: $konto->errormsg\n";
$error++;
}
}
}
}
else
$text.= "Fehler beim Laden des Kontos\n\n";
$statistik .="Gesamt: $gesamt\n";
$statistik .="Fehler: $error\n";
$text = $statistik."\n\n".$text;
//$to = 'oesi@technikum-wien.at';
$to = $adress_ext;
if(mail($to, 'SYNC Konto',$head_text.$text, "From: nsc@fhstp.ac.at"))
echo "Mail wurde an $to versandt<br><br>";
else
echo "Fehler beim Senden an $to<br><br>";
echo nl2br($text);
?>
</body>
</html>