ausstellungsstaat, zgv nation

This commit is contained in:
Robert Hofer
2015-03-25 18:39:48 +01:00
parent 6ea4218853
commit 29f2b98877
5 changed files with 287 additions and 285 deletions
+261 -260
View File
@@ -1,261 +1,262 @@
<?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>.
*/
/*
* functions.js.php
*
* enthaelt globale JS Funktionen
*/
require_once('../config/vilesci.config.inc.php');
require_once('../include/functions.inc.php');
?>
// ****
// * Liefert den Value aus einer XML-Datasource
// ****
function getTargetHelper(dsource,subj,predi)
{
if (dsource.hasArcOut(subj, predi))
{
var target = dsource.GetTarget(subj, predi, true);
if (target instanceof Components.interfaces.nsIRDFLiteral ||
target instanceof Components.interfaces.nsIRDFInt)
{
return target.Value;
}
}
return "";
}
// ****
// * Gibt eine Message auf die Javascript Console aus
// ****
function debug(msg)
{
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
var consoleService = Components.classes["@mozilla.org/consoleservice;1"]
.getService(Components.interfaces.nsIConsoleService);
consoleService.logStringMessage(msg);
}
// ****
// * Liefert einen Timestamp in Sekunden
// * zum anhaengen an eine URL um Caching zu verhindern
// ****
function gettimestamp()
{
var now = new Date();
var ret = now.getHours()*60*60*60;
ret = ret + now.getMinutes()*60*60;
ret = ret + now.getSeconds()*60;
ret = ret + now.getMilliseconds();
return ret;
}
// ****
// * Parst die Returnwerte der DBDML Scripte
// * @param response ... RDF Response des DBDML Scripts
// *
// * obj.dbdml_return ... Returnwert des Scripts
// * obj.dbdml_errormsg ... Errormessage
// * obj.dbdml_warning ... Warnhinweis
// * obj.dbdml_data ... zusaetzliche Daten vom Script. zB ID des angelegten Datansatzes
// ****
function ParseReturnValue(response)
{
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
// Returnwerte aus RDF abfragen
var dsource=parseRDFString(response, 'http://www.technikum-wien.at/dbdml');
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].
getService(Components.interfaces.nsIRDFService);
var subject = rdfService.GetResource("http://www.technikum-wien.at/dbdml/0");
var predicateNS = "http://www.technikum-wien.at/dbdml/rdf";
retval = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#return" ));
if(retval=='true')
this.dbdml_return = true;
else
this.dbdml_return = false;
this.dbdml_errormsg = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#errormsg" ));
this.dbdml_data = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#data" ));
this.dbdml_warning = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#warning" ));
//debug('data:'+this.dbdml_data+' errormsg:'+this.dbdml_errormsg+' return:'+this.dbdml_return );
}
// ****
// * Zeigt einen Text in der Statusbar an
// ****
function SetStatusBarText(text)
{
document.getElementById('statusbarpanel-text').label=text;
}
// ****
// * Prueft ein Datum auf Gueltigkeit
// * Erlaubte Formate: 1.1.2007, 31.12.2007
// ****
function CheckDatum(datum)
{
var pattern = /^(0[1-9]|[1-9]|[12][0-9]|3[01])[.](0[1-9]|[1-9]|1[012])[.](19|20)\d\d$/
if(pattern.exec(datum))
return true;
else
return false;
}
// ****
// * Wandelt ein Datum ins ISO Format um
// * aus 31.2.2007 wird 2007-02-31
// ****
function ConvertDateToISO(datum)
{
if(datum!='')
{
arr = datum.split('.');
if(arr[0].length==1)
arr[0]='0'+arr[0];
if(arr[1].length==1)
arr[1]='0'+arr[1];
return arr[2]+'-'+arr[1]+'-'+arr[0];
}
else
return '';
}
// ****
// * Liefert die Daten aus der Zwischenablage
// ****
function getDataFromClipboard()
{
netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
var clip = Components.classes["@mozilla.org/widget/clipboard;1"].getService(Components.interfaces.nsIClipboard);
if (!clip)
return false;
var trans = Components.classes["@mozilla.org/widget/transferable;1"].createInstance(Components.interfaces.nsITransferable);
if (!trans)
return false;
trans.addDataFlavor("text/unicode");
clip.getData(trans,clip.kGlobalClipboard);
var str = new Object();
var strLength = new Object();
trans.getTransferData("text/unicode",str,strLength);
if (str) str = str.value.QueryInterface(Components.interfaces.nsISupportsString);
if (str) pastetext = str.data.substring(0,strLength.value / 2);
return pastetext;
}
// ****
// * Oeffnet ein neues Fenster welches dann die Datei 'action' mit dem POST Parameter 'data' aufruft
// ****
function OpenWindowPost(action, data)
{
newwindow= window.open ("","FAS","width=350, height=350");
newwindow.document.getElementsByTagName('body')[0].innerHTML = "<form id='postform-form' name='postfrm' action='' method='POST'><input type='hidden' id='postform-textbox-data' name='data' /></form>";
newwindow.document.getElementById('postform-textbox-data').value=data;
newwindow.document.getElementById('postform-form').action=action;
newwindow.document.postfrm.submit();
}
// ****
// * Liefert das Aktuelle Studiensemester
// ****
function getStudiensemester()
{
return document.getElementById('statusbarpanel-semester').label;
}
// ****
// * Markiert in einem Editierbaren DropDown Menu
// * einen Eintrag.
// * @param id = ID der Menulist
// * data = value des Eintrages der markiert werden soll
// ****
function MenulistSelectItemOnValue(id, data)
{
var children = document.getElementById(id).getElementsByAttribute('value',data);
document.getElementById(id).selectedItem=children[0];
}
// ****
// * Liefert den value eines Editierbaren DropDowns
// * @param id = ID der Menulist
// ****
function MenulistGetSelectedValue(id)
{
menulist = document.getElementById(id);
//Es kann sein, dass im Eingabefeld nichts steht und
//trotzdem ein Eintrag auf selected gesetzt ist.
//In diesem Fall soll aber kein Wert zurueckgegeben werden
if(menulist.value=='')
return '';
//Wenn es Selektierte Eintraege gibt, dann den value zurueckliefern
var children = menulist.getElementsByAttribute('selected','true');
if(children.length>0)
return children[0].value;
else
return '';
}
// *****
// * Liefert den Text aus einem Tree
// * Parameter: tree ... Referenz auf den Tree
// * col ... id der Spalte
// * idx ... Zeilenindex im Tree
// *****
function getTreeCellText(tree, col, idx)
{
col = tree.columns ? tree.columns[col] : col;
return tree.view.getCellText(idx, col);
}
// ****
// * Trim Member Function fuer Strings
// ****
String.prototype.trim = function() {
return this.replace(/^\s+|\s+$/g,"");
}
// ****
// * StartsWidth Member Function fuer Strings
// ****
String.prototype.startsWith = function(str)
{return (this.match("^"+str)==str)}
// ****
// * Liefert den Usernamne des eingeloggten Users
// ****
function getUsername()
{
return '<?php echo get_uid(); ?>';
<?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>.
*/
/*
* functions.js.php
*
* enthaelt globale JS Funktionen
*/
require_once('../config/vilesci.config.inc.php');
require_once('../include/functions.inc.php');
if(false): ?><script><?php endif; ?>
// ****
// * Liefert den Value aus einer XML-Datasource
// ****
function getTargetHelper(dsource,subj,predi)
{
if (dsource.hasArcOut(subj, predi))
{
var target = dsource.GetTarget(subj, predi, true);
if (target instanceof Components.interfaces.nsIRDFLiteral ||
target instanceof Components.interfaces.nsIRDFInt)
{
return target.Value;
}
}
return "";
}
// ****
// * Gibt eine Message auf die Javascript Console aus
// ****
function debug(msg)
{
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
var consoleService = Components.classes["@mozilla.org/consoleservice;1"]
.getService(Components.interfaces.nsIConsoleService);
consoleService.logStringMessage(msg);
}
// ****
// * Liefert einen Timestamp in Sekunden
// * zum anhaengen an eine URL um Caching zu verhindern
// ****
function gettimestamp()
{
var now = new Date();
var ret = now.getHours()*60*60*60;
ret = ret + now.getMinutes()*60*60;
ret = ret + now.getSeconds()*60;
ret = ret + now.getMilliseconds();
return ret;
}
// ****
// * Parst die Returnwerte der DBDML Scripte
// * @param response ... RDF Response des DBDML Scripts
// *
// * obj.dbdml_return ... Returnwert des Scripts
// * obj.dbdml_errormsg ... Errormessage
// * obj.dbdml_warning ... Warnhinweis
// * obj.dbdml_data ... zusaetzliche Daten vom Script. zB ID des angelegten Datansatzes
// ****
function ParseReturnValue(response)
{
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
// Returnwerte aus RDF abfragen
var dsource=parseRDFString(response, 'http://www.technikum-wien.at/dbdml');
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].
getService(Components.interfaces.nsIRDFService);
var subject = rdfService.GetResource("http://www.technikum-wien.at/dbdml/0");
var predicateNS = "http://www.technikum-wien.at/dbdml/rdf";
retval = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#return" ));
if(retval=='true')
this.dbdml_return = true;
else
this.dbdml_return = false;
this.dbdml_errormsg = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#errormsg" ));
this.dbdml_data = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#data" ));
this.dbdml_warning = getTargetHelper(dsource, subject, rdfService.GetResource( predicateNS + "#warning" ));
//debug('data:'+this.dbdml_data+' errormsg:'+this.dbdml_errormsg+' return:'+this.dbdml_return );
}
// ****
// * Zeigt einen Text in der Statusbar an
// ****
function SetStatusBarText(text)
{
document.getElementById('statusbarpanel-text').label=text;
}
// ****
// * Prueft ein Datum auf Gueltigkeit
// * Erlaubte Formate: 1.1.2007, 31.12.2007
// ****
function CheckDatum(datum)
{
var pattern = /^(0[1-9]|[1-9]|[12][0-9]|3[01])[.](0[1-9]|[1-9]|1[012])[.](19|20)\d\d$/
if(pattern.exec(datum))
return true;
else
return false;
}
// ****
// * Wandelt ein Datum ins ISO Format um
// * aus 31.2.2007 wird 2007-02-31
// ****
function ConvertDateToISO(datum)
{
if(datum!='')
{
arr = datum.split('.');
if(arr[0].length==1)
arr[0]='0'+arr[0];
if(arr[1].length==1)
arr[1]='0'+arr[1];
return arr[2]+'-'+arr[1]+'-'+arr[0];
}
else
return '';
}
// ****
// * Liefert die Daten aus der Zwischenablage
// ****
function getDataFromClipboard()
{
netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
var clip = Components.classes["@mozilla.org/widget/clipboard;1"].getService(Components.interfaces.nsIClipboard);
if (!clip)
return false;
var trans = Components.classes["@mozilla.org/widget/transferable;1"].createInstance(Components.interfaces.nsITransferable);
if (!trans)
return false;
trans.addDataFlavor("text/unicode");
clip.getData(trans,clip.kGlobalClipboard);
var str = new Object();
var strLength = new Object();
trans.getTransferData("text/unicode",str,strLength);
if (str) str = str.value.QueryInterface(Components.interfaces.nsISupportsString);
if (str) pastetext = str.data.substring(0,strLength.value / 2);
return pastetext;
}
// ****
// * Oeffnet ein neues Fenster welches dann die Datei 'action' mit dem POST Parameter 'data' aufruft
// ****
function OpenWindowPost(action, data)
{
newwindow= window.open ("","FAS","width=350, height=350");
newwindow.document.getElementsByTagName('body')[0].innerHTML = "<form id='postform-form' name='postfrm' action='' method='POST'><input type='hidden' id='postform-textbox-data' name='data' /></form>";
newwindow.document.getElementById('postform-textbox-data').value=data;
newwindow.document.getElementById('postform-form').action=action;
newwindow.document.postfrm.submit();
}
// ****
// * Liefert das Aktuelle Studiensemester
// ****
function getStudiensemester()
{
return document.getElementById('statusbarpanel-semester').label;
}
// ****
// * Markiert in einem Editierbaren DropDown Menu
// * einen Eintrag.
// * @param id = ID der Menulist
// * data = value des Eintrages der markiert werden soll
// ****
function MenulistSelectItemOnValue(id, data)
{
var children = document.getElementById(id).getElementsByAttribute('value',data);
document.getElementById(id).selectedItem=children[0];
}
// ****
// * Liefert den value eines Editierbaren DropDowns
// * @param id = ID der Menulist
// ****
function MenulistGetSelectedValue(id)
{
menulist = document.getElementById(id);
//Es kann sein, dass im Eingabefeld nichts steht und
//trotzdem ein Eintrag auf selected gesetzt ist.
//In diesem Fall soll aber kein Wert zurueckgegeben werden
if(menulist.value=='')
return '';
//Wenn es Selektierte Eintraege gibt, dann den value zurueckliefern
var children = menulist.getElementsByAttribute('selected','true');
if(children.length>0)
return children[0].value;
else
return '';
}
// *****
// * Liefert den Text aus einem Tree
// * Parameter: tree ... Referenz auf den Tree
// * col ... id der Spalte
// * idx ... Zeilenindex im Tree
// *****
function getTreeCellText(tree, col, idx)
{
col = tree.columns ? tree.columns[col] : col;
return tree.view.getCellText(idx, col);
}
// ****
// * Trim Member Function fuer Strings
// ****
String.prototype.trim = function() {
return this.replace(/^\s+|\s+$/g,"");
}
// ****
// * StartsWidth Member Function fuer Strings
// ****
String.prototype.startsWith = function(str)
{return (this.match("^"+str)==str)}
// ****
// * Liefert den Usernamne des eingeloggten Users
// ****
function getUsername()
{
return '<?php echo get_uid(); ?>';
}
+2 -1
View File
@@ -429,10 +429,11 @@ if(!$error)
$prestudent->zgv_code = $_POST['zgv_code'];
$prestudent->zgvort = $_POST['zgvort'];
$prestudent->zgvdatum = $_POST['zgvdatum'];
$prestudent->zgvnation = $_POST['zgvnation'];
$prestudent->zgvmas_code = $_POST['zgvmas_code'];
$prestudent->zgvmaort = $_POST['zgvmaort'];
$prestudent->zgvmadatum = $_POST['zgvmadatum'];
$prestudent->ausstellungsstaat = $_POST['ausstellungsstaat'];
$prestudent->zgvmanation = $_POST['zgvmanation'];
$prestudent->aufnahmeschluessel = $_POST['aufnahmeschluessel'];
$prestudent->facheinschlberuf = ($_POST['facheinschlberuf']=='true'?true:false);
$prestudent->reihungstest_id = $_POST['reihungstest_id'];
@@ -350,22 +350,6 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
</menulist>
</hbox>
</row>
<row>
<spacer />
<spacer />
<label value="Ausstellungsstaat" control="student-prestudent-menulist-ausstellungsstaat"/>
<menulist id="student-prestudent-menulist-ausstellungsstaat" disabled="true"
datasources="<?php echo APP_ROOT ?>rdf/nation.rdf.php?optional=true" flex="1"
ref="http://www.technikum-wien.at/nation/liste" >
<template>
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/nation/rdf#nation_code"
label="rdf:http://www.technikum-wien.at/nation/rdf#kurztext"
uri="rdf:*"/>
</menupopup>
</template>
</menulist>
</row>
</rows>
</grid>
+2 -7
View File
@@ -1029,7 +1029,6 @@ function StudentAuswahl()
zgvmasterort = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#zgvmaort" ));
zgvmasternation = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#zgvmanation" ));
zgvmasterdatum = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#zgvmadatum" ));
ausstellungsstaat = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#ausstellungsstaat" ));
aufnahmeschluessel = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#aufnahmeschluessel" ));
facheinschlberuf = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#facheinschlberuf" ));
reihungstest_id = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#reihungstest_id" ));
@@ -1049,13 +1048,12 @@ function StudentAuswahl()
document.getElementById('student-prestudent-menulist-ausbildung').value=ausbildungcode;
document.getElementById('student-prestudent-menulist-zgvcode').value=zgv_code;
document.getElementById('student-prestudent-textbox-zgvort').value=zgvort;
document.getElementById('student-prestudent-menulist-zgvnation').value=zgvnation;
MenulistSelectItemOnValue('student-prestudent-menulist-zgvnation', zgvnation);
document.getElementById('student-prestudent-textbox-zgvdatum').value=zgvdatum;
document.getElementById('student-prestudent-menulist-zgvmastercode').value=zgvmaster_code;
document.getElementById('student-prestudent-textbox-zgvmasterort').value=zgvmasterort;
document.getElementById('student-prestudent-menulist-zgvmasternation').value=zgvmasternation;
MenulistSelectItemOnValue('student-prestudent-menulist-zgvmasternation', zgvmasternation);
document.getElementById('student-prestudent-textbox-zgvmasterdatum').value=zgvmasterdatum;
document.getElementById('student-prestudent-menulist-ausstellungsstaat').value=ausstellungsstaat;
document.getElementById('student-prestudent-menulist-aufnahmeschluessel').value=aufnahmeschluessel;
if(facheinschlberuf=='true')
document.getElementById('student-prestudent-checkbox-facheinschlberuf').checked=true;
@@ -1557,7 +1555,6 @@ function StudentPrestudentDisableFields(val)
document.getElementById('student-prestudent-textbox-zgvmasterort').disabled=val;
document.getElementById('student-prestudent-menulist-zgvmasternation').disabled=val;
document.getElementById('student-prestudent-textbox-zgvmasterdatum').disabled=val;
document.getElementById('student-prestudent-menulist-ausstellungsstaat').disabled=val;
document.getElementById('student-prestudent-menulist-aufnahmeschluessel').disabled=val;
document.getElementById('student-prestudent-checkbox-facheinschlberuf').disabled=val;
document.getElementById('student-prestudent-menulist-reihungstest').disabled=val;
@@ -1611,7 +1608,6 @@ function StudentPrestudentSave()
zgvmasterort = document.getElementById('student-prestudent-textbox-zgvmasterort').value;
zgvmasternation = document.getElementById('student-prestudent-menulist-zgvmasternation').value;
zgvmasterdatum = document.getElementById('student-prestudent-textbox-zgvmasterdatum').value;
ausstellungsstaat = document.getElementById('student-prestudent-menulist-ausstellungsstaat').value;
aufnahmeschluessel = document.getElementById('student-prestudent-menulist-aufnahmeschluessel').value;
facheinschlberuf = document.getElementById('student-prestudent-checkbox-facheinschlberuf').checked;
reihungstest_id = document.getElementById('student-prestudent-menulist-reihungstest').value;
@@ -1668,7 +1664,6 @@ function StudentPrestudentSave()
req.add('zgvmaort', zgvmasterort);
req.add('zgvmanation', zgvmasternation);
req.add('zgvmadatum', ConvertDateToISO(zgvmasterdatum));
req.add('ausstellungsstaat', ausstellungsstaat);
req.add('aufnahmeschluessel', aufnahmeschluessel);
req.add('facheinschlberuf', facheinschlberuf);
req.add('reihungstest_id', reihungstest_id);
+22 -1
View File
@@ -205,7 +205,9 @@ class prestudent extends person
//Personen Datensatz speichern
//if(!person::save())
// return false;
$this->checkAusstellungsstaat();
//Variablen auf Gueltigkeit pruefen
if(!prestudent::validate())
return false;
@@ -324,6 +326,25 @@ class prestudent extends person
}
}
/**
* Falls ZGV vorhanden, setze Ausstellungsstaat (für BIS-Meldung)
* auf Nation der höchsten angegebenen ZGV
*/
private function checkAusstellungsstaat()
{
if ($this->zgvmas_code && $this->zgvmanation) {
$this->ausstellungsstaat = $this->zgvmanation;
} elseif ($this->zgv_code && $this->zgvnation) {
$this->ausstellungsstaat = $this->zgvnation;
}
}
/**
* Laden aller Prestudenten, die an $datum zum Reihungstest geladen sind.
* Wenn $equal auf true gesetzt ist wird genau dieses Datum verwendet,