diff --git a/ci_db_extra.php b/ci_db_extra.php
index a4dffc19b..78a1b0781 100755
--- a/ci_db_extra.php
+++ b/ci_db_extra.php
@@ -33,16 +33,16 @@ trait db_extra
{
if(is_null($i))
return pg_fetch_object($this->db_result);
- else
+ else
return pg_fetch_object($this->db_result, $i);
}
- else
+ else
{
if(is_null($i))
return pg_fetch_object($result);
- else
+ else
return pg_fetch_object($result, $i);
- }
+ }
}
public function db_add_param($var, $type=FHC_STRING, $nullable=true)
@@ -57,7 +57,7 @@ trait db_extra
switch($type)
{
- case FHC_INTEGER:
+ case FHC_INTEGER:
$var = $this->db_escape($var);
if(!is_numeric($var) && $var!=='')
die('Invalid Integer Parameter detected:'.$var);
@@ -76,14 +76,14 @@ trait db_extra
break;
case FHC_STRING:
- default:
+ default:
$var = $this->db_escape($var);
$var = $this->db_null_value($var);
break;
}
- return $var;
+ return $var;
}
-
+
public function db_escape($var)
{
return pg_escape_string($var);
@@ -94,14 +94,14 @@ trait db_extra
if($qoute)
return ($var!==''?$this->db_qoute($var):'null');
else
- return ($var!==''?$var:'null');
+ return ($var!==''?$var:'null');
}
-
+
public function db_qoute($var)
{
return "'".$var."'";
}
-
+
public function db_parse_bool($var)
{
if($var=='t')
@@ -113,7 +113,7 @@ trait db_extra
else
die('Invalid DB Boolean. Wrong DB-Engine?');
}
-
+
/**
* Bereitet ein Array von Elementen auf, damit es in der IN-Klausel eines
* Select Befehls verwendet werden kann.
@@ -129,7 +129,7 @@ trait db_extra
}
return $string;
}
-
+
public function db_num_fields($result=null)
{
if(is_null($result))
@@ -137,12 +137,12 @@ trait db_extra
else
return pg_num_fields($result);
}
-
+
public function convert_html_chars($value)
{
return htmlspecialchars($value);
}
-
+
/**
* Liefert den Feldnamen mit index i
*/
@@ -153,9 +153,37 @@ trait db_extra
else
return pg_field_name($result, $i);
}
-
+
public function db_last_error()
{
return pg_last_error();
}
+
+ /**
+ * Erstellt aus einem DB Array ein PHP Array
+ * @param $var DB Result Array Spalte
+ * @return php array
+ */
+ public function db_parse_lang_array($var)
+ {
+
+ if ($var == '')
+ return;
+ preg_match_all('/(?<=^\{|,)(([^,"{]*)|\s*"((?:[^"\\\\]|\\\\(?:.|[0-9]+|x[0-9a-f]+))*)"\s*)(,|(?loadIndexArray();
+
+ $sprache = new sprache();
+ $sprache->getAll(true);
+ $languages = $sprache->getAllIndexesSorted();
+
+
+ foreach ($matches as $mk => $match)
+ {
+ $values[$languages[$mk+1]] = $match[3] != '' ? stripcslashes($match[3]) : (strtolower($match[2]) == 'null' ? null : $match[2]);
+ }
+ return $values;
+ }
}
diff --git a/content/messages.js.php b/content/messages.js.php
new file mode 100644
index 000000000..48ac65d4d
--- /dev/null
+++ b/content/messages.js.php
@@ -0,0 +1,32 @@
+
+ */
+require_once('../config/vilesci.config.inc.php');
+?>
+// ********** FUNKTIONEN ********** //
+var MessagePersonID='';
+
+// ****
+// * Laedt die Trees
+// ****
+function loadMessages(person_id)
+{
+ netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
+ MessagePersonID = person_id;
+}
diff --git a/content/messages.xul.php b/content/messages.xul.php
new file mode 100644
index 000000000..667d07bda
--- /dev/null
+++ b/content/messages.xul.php
@@ -0,0 +1,102 @@
+
+ */
+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('../config/vilesci.config.inc.php');
+require_once('../include/functions.inc.php');
+require_once('../include/variable.class.php');
+
+$user=get_uid();
+$variable = new variable();
+if(!$variable->loadVariables($user))
+{
+ die('Fehler beim Laden der Variablen:'.$variable->errormsg);
+}
+
+echo ''."\n";
+
+echo '';
+echo '';
+echo '';
+
+$person_id = filter_input(INPUT_GET,'person_id');
+echo '
+variable->locale.'/fas.dtd');
+echo ']>
+';
+?>
+
+);"
+ >
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/content/student/aufnahmetermine.js.php b/content/student/aufnahmetermine.js.php
new file mode 100644
index 000000000..818cb50ff
--- /dev/null
+++ b/content/student/aufnahmetermine.js.php
@@ -0,0 +1,230 @@
+
+ */
+require_once('../../config/vilesci.config.inc.php');
+?>
+// ********** FUNKTIONEN ********** //
+var AufnahmeTerminePrestudentID='';
+var AufnahmeTerminStudiengang='';
+
+// ****
+// * Laedt die Trees
+// ****
+function loadAufnahmeTermine(prestudent_id, studiengang_kz)
+{
+ netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
+ AufnahmeTerminePrestudentID = prestudent_id;
+ AufnahmeTerminStudiengang = studiengang_kz
+ AufnahmeTermineLoadTree();
+
+ document.getElementById('aufnahmetermine-textbox-gesamtpunkte').disabled=false;
+ document.getElementById('aufnahmetermine-button-savegesamtpunkte').disabled=false;
+ document.getElementById('aufnahmetermine-button-calculatetotal').disabled=false;
+
+ // Gesamtpunkte laden und anzeigen
+
+ var url = 'rdf/student.rdf.php?prestudent_id='+prestudent_id+'&'+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/student/" + prestudent_id);
+
+ var predicateNS = "http://www.technikum-wien.at/student/rdf";
+
+ punkte = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#punkte" ));
+ document.getElementById('aufnahmetermine-textbox-gesamtpunkte').value=punkte;
+
+ // ReihungstestDropDown laden
+ var reihungstestmenulist = document.getElementById('aufnahmetermine-menulist-reihungstest');
+ var url="rdf/reihungstest.rdf.php?optional=true&studiengang_kz="+AufnahmeTerminStudiengang;
+
+ //Alte DS entfernen
+ var oldDatasources = reihungstestmenulist.database.GetDataSources();
+ while(oldDatasources.hasMoreElements())
+ {
+ reihungstestmenulist.database.RemoveDataSource(oldDatasources.getNext());
+ }
+ //Refresh damit die entfernten DS auch wirklich entfernt werden
+ reihungstestmenulist.builder.rebuild();
+
+ var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
+ var myDatasource = rdfService.GetDataSourceBlocking(url);
+ reihungstestmenulist.database.AddDataSource(myDatasource);
+ reihungstestmenulist.builder.rebuild();
+}
+
+/**
+ * Laedt den Tree mit den Terminen
+ */
+function AufnahmeTermineLoadTree()
+{
+ netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
+ //Termine laden
+ url = "rdf/aufnahmetermine.rdf.php?prestudent_id="+AufnahmeTerminePrestudentID+"&ts="+gettimestamp();
+
+ var treeAufnahmeTermine=document.getElementById('aufnahmetermine-tree');
+
+ //Alte DS entfernen
+ var oldDatasources = treeAufnahmeTermine.database.GetDataSources();
+ while(oldDatasources.hasMoreElements())
+ {
+ treeAufnahmeTermine.database.RemoveDataSource(oldDatasources.getNext());
+ }
+
+ var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
+ var AufnahmeTerminTreeDatasource = rdfService.GetDataSource(url);
+ AufnahmeTerminTreeDatasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
+ treeAufnahmeTermine.database.AddDataSource(AufnahmeTerminTreeDatasource);
+
+}
+
+function AufnahmeTermineSaveGesamtpunkte()
+{
+ // TODO
+ alert('Dieses Feature ist noch nicht implementiert');
+}
+
+function AufnahmeTermineCalculateTotal()
+{
+ // TODO
+ alert('Dieses Feature ist noch nicht implementiert');
+}
+
+/**
+ * Laedt die Details bei Auswahl eines Eintrages aus dem Tree
+ */
+function AufnahmeTermineAuswahl()
+{
+ netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
+ var tree = document.getElementById('aufnahmetermine-tree');
+
+ if (tree.currentIndex==-1) return;
+
+ AufnahmeTermineDisableFields(false);
+
+ //Ausgewaehlten Eintrag holen
+ var rt_id = getTreeCellText(tree, 'aufnahmetermine-tree-rt_id', tree.currentIndex);
+ var person_id = getTreeCellText(tree, 'aufnahmetermine-tree-person_id', tree.currentIndex);
+
+ //Daten holen
+ var url = 'rdf/aufnahmetermine.rdf.php?person_id='+person_id+'&rt_id='+rt_id+'&'+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/aufnahmetermine/"+rt_id+'/'+person_id);
+
+ var predicateNS = "http://www.technikum-wien.at/aufnahmetermine/rdf";
+
+ //Daten holen
+
+ person_id = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#person_id" ));
+ rt_id = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#rt_id" ));
+ anmeldedatum = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#anmeldedatum" ));
+ teilgenommen = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#teilgenommen" ));
+ punkte = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#punkte" ));
+
+ document.getElementById('aufnahmetermine-textbox-rt_id').value=rt_id;
+ document.getElementById('aufnahmetermine-textbox-person_id').value=person_id;
+ document.getElementById('aufnahmetermine-checkbox-neu').checked=false;
+ document.getElementById('aufnahmetermine-textbox-anmeldungreihungstest').value=anmeldedatum;
+ MenulistSelectItemOnValue('aufnahmetermine-menulist-reihungstest', rt_id);
+ if(teilgenommen=='Ja')
+ document.getElementById('aufnahmetermine-checkbox-teilgenommen').checked=true;
+ else
+ document.getElementById('aufnahmetermine-checkbox-teilgenommen').checked=false;
+ document.getElementById('aufnahmetermine-textbox-punkte').value=punkte;
+}
+
+function AufnahmeTermineNeu()
+{
+ AufnahmeTermineDisableFields(false);
+ AufnahmeTermineResetFields();
+}
+
+function AufnahmeTermineDelete()
+{
+ // TODO
+}
+
+function AufnahemTermineReihungstestPunkteTransmit()
+{
+ // TODO
+}
+
+function AufnahmeTermineSpeichern()
+{
+ // TODO
+}
+
+/**
+ * Aktiviert oder Deaktiviert die Eingabefelder
+ * @param val boolean true | false
+ */
+function AufnahmeTermineDisableFields(val)
+{
+ document.getElementById('aufnahmetermine-button-speichern').disabled=val;
+ document.getElementById('aufnahmetermine-textbox-punkte').disabled=val;
+ document.getElementById('aufnahmetermine-checkbox-teilgenommen').disabled=val;
+ document.getElementById('aufnahmetermine-textbox-anmeldungreihungstest').disabled=val;
+ document.getElementById('aufnahmetermine-menulist-reihungstest').disabled=val;
+ document.getElementById('aufnahmetermine-button-anmeldungreihungstest-heute').disabled=val;
+}
+
+/**
+ * Leert die Eingabefelder
+ */
+function AufnahmeTermineResetFields()
+{
+ document.getElementById('aufnahmetermine-textbox-punkte').value='';
+ document.getElementById('aufnahmetermine-checkbox-teilgenommen').checked=false;
+ document.getElementById('aufnahmetermine-textbox-anmeldungreihungstest').value='';
+ document.getElementById('aufnahmetermine-menulist-reihungstest').value='';
+ document.getElementById('aufnahmetermine-textbox-rt_id').value='';
+ document.getElementById('aufnahmetermine-textbox-person_id').value='';
+ document.getElementById('aufnahmetermine-checkbox-neu').checked=true;
+}
+
+
+/**
+ * Setzt das aktuelle Datum als Anmeldedatum
+ */
+function AufnahmeTermineAnmeldungreihungstestHeute()
+{
+ var now = new Date();
+ var jahr = now.getFullYear();
+
+ monat = now.getMonth()+1;
+ if(monat<10) monat='0'+monat;
+ tag = now.getDate();
+ if(tag<10) tag='0'+tag;
+
+ document.getElementById('aufnahmetermine-textbox-anmeldungreihungstest').value=tag+'.'+monat+'.'+jahr;
+}
+
+function AufnahmeTermineReihungstestDropDownRefresh()
+{
+ // TODO
+ alert("Dieses Feature ist noch nicht implementiert");
+}
\ No newline at end of file
diff --git a/content/student/aufnahmetermine.xul.php b/content/student/aufnahmetermine.xul.php
new file mode 100644
index 000000000..205917d7b
--- /dev/null
+++ b/content/student/aufnahmetermine.xul.php
@@ -0,0 +1,217 @@
+
+ */
+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('../../config/vilesci.config.inc.php');
+require_once('../../include/functions.inc.php');
+require_once('../../include/variable.class.php');
+require_once('../../include/prestudent.class.php');
+
+$user=get_uid();
+$variable = new variable();
+if(!$variable->loadVariables($user))
+{
+ die('Fehler beim Laden der Variablen:'.$variable->errormsg);
+}
+
+echo ''."\n";
+
+echo '';
+echo '';
+echo '';
+
+$prestudent_id = filter_input(INPUT_GET,'prestudent_id');
+$prestudent = new prestudent();
+$prestudent->load($prestudent_id);
+echo '
+variable->locale.'/fas.dtd');
+echo ']>
+';
+?>
+
+studiengang_kz."'"; ?>);"
+ >
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/content/student/studentenoverlay.xul.php b/content/student/studentenoverlay.xul.php
index 2efe9be9e..fb5c8a142 100644
--- a/content/student/studentenoverlay.xul.php
+++ b/content/student/studentenoverlay.xul.php
@@ -389,11 +389,13 @@ else
-
+
isBerechtigt('student/anwesenheit'))
echo '';
?>
+
+
@@ -423,7 +425,8 @@ else
if($rechte->isBerechtigt('student/anwesenheit'))
echo '';
?>
-
+
+
diff --git a/content/student/studentoverlay.js.php b/content/student/studentoverlay.js.php
index e5cb83c94..a81fa1d8b 100644
--- a/content/student/studentoverlay.js.php
+++ b/content/student/studentoverlay.js.php
@@ -1555,7 +1555,18 @@ function StudentAuswahl()
{
document.getElementById('student-anwesenheit').setAttribute('src','anwesenheit.xul.php?student_uid='+uid);
}
+ }
+ // ***** Aufnahme-Termine *****
+ if(document.getElementById('student-content-tabs').selectedItem==document.getElementById('student-tab-aufnahmetermine'))
+ {
+ document.getElementById('student-aufnahmetermine').setAttribute('src','student/aufnahmetermine.xul.php?prestudent_id='+prestudent_id);
+ }
+
+ // ***** Messages *****
+ if(document.getElementById('student-content-tabs').selectedItem==document.getElementById('student-tab-messages'))
+ {
+ document.getElementById('student-messages').setAttribute('src','messages.xul.php?person_id='+person_id);
}
// Notizen laden
@@ -3557,12 +3568,11 @@ function StudentNotenTreeSelectDifferent()
break;
}
- //Wenn die Noten unterschiedlich sind, aber das benotungsdatum im Zeugnis
+ //Wenn das benotungsdatum im Zeugnis
//nach dem benotungsdatum des lektors liegt, dann wird die zeile auch nicht markiert.
//damit wird verhindert, dass pruefungsnoten die nur von der assistenz eingetragen wurden,
//durch den alten eintrag des lektors wieder ueberschrieben werden
if(zeugnislehrveranstaltung_id==lvgesamtlehrveranstaltung_id
- && zeugnisnote!=lvgesamtnote
&& zeugnisbenotungsdatum>lvgesamtbenotungsdatum)
{
found=true;
@@ -5392,6 +5402,50 @@ function StudentTermineIFrameLoad()
}
}
+// ****
+// * Laedt den AufnahmeTermine IFrame
+// ****
+function StudentAufnahmeTermineIFrameLoad()
+{
+ var tree = document.getElementById('student-tree');
+
+ if (tree.currentIndex==-1) return;
+
+ try
+ {
+ //Ausgewaehlte prestudent_id holen
+ var prestudent_id = getTreeCellText(tree, 'student-treecol-prestudent_id', tree.currentIndex);
+
+ url = 'student/aufnahmetermine.xul.php?prestudent_id='+prestudent_id+'&ts='+gettimestamp();
+ document.getElementById('student-aufnahmetermine').setAttribute('src',url);
+ }
+ catch(e)
+ {
+ }
+}
+
+// ****
+// * Laedt den Messages IFrame
+// ****
+function StudentMessagesIFrameLoad()
+{
+ var tree = document.getElementById('student-tree');
+
+ if (tree.currentIndex==-1) return;
+
+ try
+ {
+ //Ausgewaehlte prestudent_id holen
+ var person_id = getTreeCellText(tree, 'student-treecol-person_id', tree.currentIndex);
+
+ url = 'messages.xul.php?person_id='+person_id+'&ts='+gettimestamp();
+ document.getElementById('student-messages').setAttribute('src',url);
+ }
+ catch(e)
+ {
+ }
+}
+
// ****
// * Laedt den Anwesenheit IFrame
// ****
diff --git a/include/prestudent.class.php b/include/prestudent.class.php
index ddf39cd70..7b4d17527 100755
--- a/include/prestudent.class.php
+++ b/include/prestudent.class.php
@@ -19,19 +19,20 @@
* Andreas Oesterreicher and
* Rudolf Hangl .
*/
-require_once(dirname(__FILE__).'/datum.class.php');
require_once(dirname(__FILE__).'/person.class.php');
+require_once(dirname(__FILE__).'/log.class.php');
-// CI
-require_once(dirname(__FILE__).'/../ci_hack.php');
-require_once(dirname(__FILE__).'/../application/models/crm/Prestudent_model.php');
+require_once(dirname(__FILE__).'/phrasen.class.php');
+require_once(dirname(__FILE__).'/globals.inc.php');
+require_once(dirname(__FILE__).'/sprache.class.php');
-class prestudent extends Prestudent_model
+$sprache = getSprache();
+$lang = new sprache();
+$lang->load($sprache);
+$p = new phrasen($sprache);
+
+class prestudent extends person
{
- use db_extra; //CI Hack
-
- public $errormsg; // string
-
//Tabellenspalten
public $prestudent_id; // varchar(16)
public $aufmerksamdurch_kurzbz;
@@ -105,22 +106,22 @@ class prestudent extends Prestudent_model
* Laedt Prestudent mit der uebergebenen ID
* @param $prestudent_id ID des Prestudenten der geladen werden soll
*/
- public function load($prestudent_id = null)
+ public function load($prestudent_id=null)
{
- if (!is_numeric($prestudent_id))
+ if(!is_numeric($prestudent_id))
{
$this->errormsg = 'ID ist ungueltig';
return false;
}
- $result = parent::load($prestudent_id);
+ $qry = 'SELECT * '
+ . 'FROM public.tbl_prestudent '
+ . 'WHERE prestudent_id = '.$this->db_add_param($prestudent_id, FHC_INTEGER);
- if (is_object($result) && $result->error == EXIT_SUCCESS && is_array($result->retval))
+ if($this->db_query($qry))
{
- if (count($result->retval) > 0)
+ if($row = $this->db_fetch_object())
{
- $row = $result->retval[0];
-
$this->prestudent_id = $row->prestudent_id;
$this->aufmerksamdurch_kurzbz = $row->aufmerksamdurch_kurzbz;
$this->studiengang_kz = $row->studiengang_kz;
@@ -155,8 +156,10 @@ class prestudent extends Prestudent_model
$this->zgvdoktordatum = $row->zgvdoktordatum;
$this->zgvdoktornation = $row->zgvdoktornation;
- $person = new person();
- return $person->load($row->person_id);
+ if(!person::load($row->person_id))
+ return false;
+ else
+ return true;
}
else
{
@@ -176,7 +179,7 @@ class prestudent extends Prestudent_model
* auf Gueltigkeit.
* @return true wenn ok, false im Fehlerfall
*/
- protected function validate()
+ public function validate()
{
if($this->punkte>9999.9999)
{
@@ -331,7 +334,7 @@ class prestudent extends Prestudent_model
return false;
}
}
-
+
/**
* Falls ZGV vorhanden, setze Ausstellungsstaat (für BIS-Meldung)
* auf Nation der höchsten angegebenen ZGV
@@ -779,12 +782,14 @@ class prestudent extends Prestudent_model
*/
public function save_rolle()
{
+ global $p;
if($this->new)
{
//pruefen ob die Rolle schon vorhanden ist
if($this->load_rolle($this->prestudent_id, $this->status_kurzbz, $this->studiensemester_kurzbz, $this->ausbildungssemester))
{
- $this->errormsg = 'Diese Rolle existiert bereits';
+ //$this->errormsg = 'Diese Rolle existiert bereits';
+ $this->errormsg = $p->t('errors/rolleExistiertBereits');
return false;
}
@@ -821,7 +826,8 @@ class prestudent extends Prestudent_model
{
if($this->load_rolle($this->prestudent_id, $this->status_kurzbz, $this->studiensemester_kurzbz, $this->ausbildungssemester))
{
- $this->errormsg = 'Diese Rolle existiert bereits';
+ //$this->errormsg = 'Diese Rolle existiert bereits';
+ $this->errormsg = $p->t('errors/rolleExistiertBereits');
return false;
}
}
@@ -971,22 +977,33 @@ class prestudent extends Prestudent_model
* @param $studiensemester_kurzbz
* @return boolean
*/
- public function getLastStatus($prestudent_id, $studiensemester_kurzbz = '', $status_kurzbz = '')
+ public function getLastStatus($prestudent_id, $studiensemester_kurzbz='', $status_kurzbz = '')
{
- if ($prestudent_id == '' || !is_numeric($prestudent_id))
+ if($prestudent_id=='' || !is_numeric($prestudent_id))
{
$this->errormsg = 'Prestudent_id ist ungueltig';
return false;
}
- $result = parent::getLastStatus($prestudent_id, $studiensemester_kurzbz, $status_kurzbz);
-
- if (is_object($result) && $result->error != EXIT_SUCCESS && is_array($result->retval))
+ $qry = "SELECT tbl_prestudentstatus.*, bezeichnung AS studienplan_bezeichnung,
+ tbl_status.bezeichnung_mehrsprachig
+ FROM public.tbl_prestudentstatus
+ LEFT JOIN lehre.tbl_studienplan USING (studienplan_id)
+ JOIN public.tbl_status USING (status_kurzbz)
+ WHERE tbl_status.status_kurzbz = tbl_prestudentstatus.status_kurzbz
+ AND prestudent_id=".$this->db_add_param($prestudent_id, FHC_INTEGER);
+
+ if($studiensemester_kurzbz!='')
+ $qry.=" AND studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz);
+
+ if($status_kurzbz !='')
+ $qry.= " AND status_kurzbz =".$this->db_add_param($status_kurzbz);
+
+ $qry.=" ORDER BY datum DESC, insertamum DESC, ext_id DESC LIMIT 1";
+ if($this->db_query($qry))
{
- if (count($result->retval) > 0)
+ if($row = $this->db_fetch_object())
{
- $row = $result->retval[0];
-
$this->prestudent_id = $row->prestudent_id;
$this->status_kurzbz = $row->status_kurzbz;
$this->status_mehrsprachig = $this->db_parse_lang_array($row->bezeichnung_mehrsprachig);
@@ -1716,67 +1733,4 @@ class prestudent extends Prestudent_model
return false;
}
}
-
-
- /**
- * Laedt alle Studenten eines Studienplans und eines Studiensemesters
- * @param $studienplan_id
- * @param $studiensemester_kurzbz
- * @param $studiengang_kz
- * @return array mit allen Prestudenten, welche sich für den angegebenen Studienplan im angegebenen Semester beworben haben
- */
- public function getAllStudentenFromStudienplanAndStudsem($studienplan_id, $studiensemester_kurzbz, $studiengang_kz)
- {
- if(!is_numeric($studienplan_id))
- {
- $this->errormsg = 'studienplan_id ist ungueltig';
- return false;
- }
-
- if(!$studiensemester_kurzbz || $studiensemester_kurzbz == "")
- {
- $this->errormsg = 'studiensemester_kurzbz ist ungueltig';
- return false;
- }
-
- $qry = "SELECT DISTINCT prestudent_id, vorname, nachname, gebdatum, rt_gesamtpunkte, tbl_prestudent.studiengang_kz, bis.tbl_zgvgruppe.bezeichnung, get_rolle_prestudent(prestudent_id, null) as laststatus
- FROM
- public.tbl_prestudent
- JOIN public.tbl_person USING(person_id)
- LEFT JOIN bis.tbl_zgvgruppe_zuordnung USING(zgv_code)
- LEFT JOIN bis.tbl_zgvgruppe USING(gruppe_kurzbz)
- WHERE
- tbl_prestudent.studiengang_kz=". $this->db_add_param($studiengang_kz)."
- AND EXISTS(
- SELECT
- 1
- FROM
- public.tbl_prestudentstatus
- WHERE
- tbl_prestudent.prestudent_id=tbl_prestudentstatus.prestudent_id
- AND studiensemester_kurzbz=". $this->db_add_param($studiensemester_kurzbz)."
- AND status_kurzbz='Bewerber'
- AND (
- studienplan_id=". $this->db_add_param($studienplan_id)."
- OR
- (anmerkung like '%' || (SELECT orgform_kurzbz || '_' || sprache FROM lehre.tbl_studienplan WHERE studienplan_id=". $this->db_add_param($studienplan_id).") || '%')
- )
- );";
-
-
- if($result = $this->db_query($qry))
- {
- $ret = array();
-
- while($row = $this->db_fetch_object($result))
- $ret[] = $row;
-
- return $ret;
- }
- else
- {
- $this->errormsg = 'Fehler beim Laden der Daten';
- return false;
- }
- }
}
diff --git a/include/reihungstest.class.php b/include/reihungstest.class.php
index 728f7a0b9..63df09960 100644
--- a/include/reihungstest.class.php
+++ b/include/reihungstest.class.php
@@ -94,6 +94,7 @@ class reihungstest extends basis_db
$this->oeffentlich = $this->db_parse_bool($row->oeffentlich);
$this->freigeschaltet = $this->db_parse_bool($row->freigeschaltet);
$this->studiensemester_kurzbz =$row->studiensemester_kurzbz;
+ $this->stufe = $row->stufe;
return true;
}
else
@@ -434,4 +435,71 @@ class reihungstest extends basis_db
return true;
}
+
+ public function getReihungstestPerson($person_id)
+ {
+ $qry = "SELECT
+ *
+ FROM
+ public.tbl_rt_person
+ WHERE
+ tbl_rt_person.person_id=".$this->db_add_param($person_id);
+ if($result = $this->db_query($qry))
+ {
+ while($row = $this->db_fetch_object($result))
+ {
+ $obj = new stdClass();
+
+ $obj->rt_id = $row->rt_id;
+ $obj->person_id = $row->person_id;
+ $obj->anmeldedatum = $row->anmeldedatum;
+ $obj->teilgenommen = $this->db_parse_bool($row->teilgenommen);
+ $obj->ort_kurzbz = $row->ort_kurzbz;
+ $obj->punkte = $row->punkte;
+
+ $this->result[] = $obj;
+ }
+ return true;
+ }
+ else
+ {
+ $this->errormsg = 'Fehler beim Laden der Daten';
+ return false;
+ }
+ }
+
+ public function getPersonReihungstest($person_id, $rt_id)
+ {
+ $qry = "SELECT
+ *
+ FROM
+ public.tbl_rt_person
+ WHERE
+ tbl_rt_person.person_id=".$this->db_add_param($person_id)."
+ AND rt_id=".$this->db_add_param($rt_id);
+ if($result = $this->db_query($qry))
+ {
+ if($row = $this->db_fetch_object($result))
+ {
+
+ $this->rt_id = $row->rt_id;
+ $this->person_id = $row->person_id;
+ $this->anmeldedatum = $row->anmeldedatum;
+ $this->teilgenommen = $this->db_parse_bool($row->teilgenommen);
+ $this->ort_kurzbz = $row->ort_kurzbz;
+ $this->punkte = $row->punkte;
+ return true;
+ }
+ else
+ {
+ $this->errormsg = 'Eintrag nicht gefunden';
+ return false;
+ }
+ }
+ else
+ {
+ $this->errormsg = 'Fehler beim Laden der Daten';
+ return false;
+ }
+ }
}
diff --git a/rdf/aufnahmetermine.rdf.php b/rdf/aufnahmetermine.rdf.php
new file mode 100644
index 000000000..f8046ce78
--- /dev/null
+++ b/rdf/aufnahmetermine.rdf.php
@@ -0,0 +1,92 @@
+
+ */
+require_once('../config/vilesci.config.inc.php');
+require_once('../include/rdf.class.php');
+require_once('../include/basis_db.class.php');
+require_once('../include/functions.inc.php');
+require_once('../include/benutzerberechtigung.class.php');
+require_once('../include/datum.class.php');
+require_once('../include/benutzer.class.php');
+require_once('../include/prestudent.class.php');
+require_once('../include/reihungstest.class.php');
+
+$user = get_uid();
+
+$rechte = new benutzerberechtigung();
+$rechte->getBerechtigungen($user);
+if(!$rechte->isBerechtigt('assistenz') && !$rechte->isBerechtigt('lvplan') && !$rechte->isBerechtigt('admin'))
+ die($rechte->errormsg);
+
+$datum_obj = new datum();
+
+$oRdf = new rdf('AUFNAHMETERMINE','http://www.technikum-wien.at/aufnahmetermine');
+
+$prestudent_id = filter_input(INPUT_GET, 'prestudent_id');
+
+$person_id = filter_input(INPUT_GET, 'person_id');
+$rt_id = filter_input(INPUT_GET, 'rt_id');
+
+$oRdf->sendHeader();
+
+if($prestudent_id!='')
+{
+ $prestudent = new prestudent();
+ if(!$prestudent->load($prestudent_id))
+ die($prestudent->errormsg);
+
+ $reihungstest = new reihungstest();
+ $reihungstest->getReihungstestPerson($prestudent->person_id);
+
+ foreach($reihungstest->result as $row)
+ {
+ drawrow($row);
+ }
+}
+elseif($person_id!='' && $rt_id!='')
+{
+ $reihungstest = new reihungstest();
+ if($reihungstest->getPersonReihungstest($person_id, $rt_id))
+ drawrow($reihungstest);
+ else
+ die($reihungstest->errormsg);
+}
+
+function drawrow($row)
+{
+ global $oRdf, $datum_obj;
+
+ $reihungstest_obj = new reihungstest();
+ $reihungstest_obj->load($row->rt_id);
+
+ $i=$oRdf->newObjekt($row->rt_id.'/'.$row->person_id);
+ $oRdf->obj[$i]->setAttribut('rt_id',$row->rt_id,true);
+ $oRdf->obj[$i]->setAttribut('person_id',$row->person_id,true);
+ $oRdf->obj[$i]->setAttribut('anmeldedatum',$datum_obj->formatDatum($row->anmeldedatum, 'd.m.Y'),true);
+ $oRdf->obj[$i]->setAttribut('anmeldedatum_iso',$row->anmeldedatum,true);
+ $oRdf->obj[$i]->setAttribut('teilgenommen',($row->teilgenommen?'Ja':'Nein'),true);
+ $oRdf->obj[$i]->setAttribut('punkte',$row->punkte,true);
+ $oRdf->obj[$i]->setAttribut('reihungstest',$reihungstest_obj->datum.' '.$reihungstest_obj->anmerkung,true);
+ $oRdf->obj[$i]->setAttribut('stufe',$reihungstest_obj->stufe,true);
+
+ $oRdf->addSequence($row->rt_id.'/'.$row->person_id);
+}
+
+$oRdf->sendRdfText();
+?>