diff --git a/application/config/migration.php b/application/config/migration.php
index 102054bae..e9a4e86f8 100755
--- a/application/config/migration.php
+++ b/application/config/migration.php
@@ -23,7 +23,7 @@ $config['migration_enabled'] = TRUE;
| be upgraded / downgraded to.
|
*/
-$config['migration_version'] = '009';
+$config['migration_version'] = '011';
/*
|--------------------------------------------------------------------------
diff --git a/application/controllers/api/v1/crm/Prestudent.php b/application/controllers/api/v1/crm/Prestudent.php
index 3a3412db0..7ea27576f 100644
--- a/application/controllers/api/v1/crm/Prestudent.php
+++ b/application/controllers/api/v1/crm/Prestudent.php
@@ -120,7 +120,7 @@ class Prestudent extends APIv1_Controller
{
$this->load->model('crm/RtPerson_model', 'RtPersonModel');
- if(isset($ddReihungstest['new']) && $ddReihungstest['new'] === true)
+ if(isset($ddReihungstest['new']) && $ddReihungstest['new'] == true)
{
// Remove new parameter to avoid DB insert errors
unset($ddReihungstest['new']);
@@ -149,8 +149,7 @@ class Prestudent extends APIv1_Controller
private function _validateAddReihungstest($ddReihungstest = NULL)
{
- if (!isset($ddReihungstest['person_id']) || !isset($ddReihungstest['rt_id']) ||
- !isset($ddReihungstest['ort_kurzbz']))
+ if (!isset($ddReihungstest['person_id']) || !isset($ddReihungstest['rt_id']))
{
return false;
}
diff --git a/application/controllers/api/v1/crm/Reihungstest.php b/application/controllers/api/v1/crm/Reihungstest.php
index 3ab4575ef..514c7ee2a 100644
--- a/application/controllers/api/v1/crm/Reihungstest.php
+++ b/application/controllers/api/v1/crm/Reihungstest.php
@@ -85,7 +85,7 @@ class Reihungstest extends APIv1_Controller
$result = $this->ReihungstestModel->addJoin('public.tbl_person', 'person_id');
if ($result->error == EXIT_SUCCESS)
{
- $result = $this->ReihungstestModel->addJoin('public.tbl_ort', 'tbl_ort.ort_kurzbz = tbl_rt_person.ort_kurzbz');
+ $result = $this->ReihungstestModel->addJoin('public.tbl_ort', 'tbl_ort.ort_kurzbz = tbl_rt_person.ort_kurzbz', 'LEFT');
if ($result->error == EXIT_SUCCESS)
{
$result = $this->ReihungstestModel->loadWhere(array('person_id' => $person_id));
diff --git a/application/controllers/system/Phrases.php b/application/controllers/system/Phrases.php
index f03e299fd..bd8f8d29d 100644
--- a/application/controllers/system/Phrases.php
+++ b/application/controllers/system/Phrases.php
@@ -135,6 +135,7 @@ class Phrases extends FHC_Controller
{
$phrase_inhalt_id = $this->input->post('phrase_inhalt_id', TRUE);
$data['orgeinheit_kurzbz'] = $this->input->post('oe_kurzbz', TRUE);
+ $data['orgform_kurzbz'] = $this->input->post('orgform_kurzbz', TRUE);
$data['text'] = $this->input->post('text', TRUE);
$data['description'] = $this->input->post('description', TRUE);
$data['sprache'] = $this->input->post('sprache', TRUE);
diff --git a/application/libraries/MigrationLib.php b/application/libraries/MigrationLib.php
index 747f094e0..1867031f1 100644
--- a/application/libraries/MigrationLib.php
+++ b/application/libraries/MigrationLib.php
@@ -9,19 +9,45 @@ class MigrationLib extends CI_Migration
private $ERROR_PREFIX = "[E]";
private $SEPARATOR = "------------------------------";
+ private $cli;
+
+ public function __construct()
+ {
+ if ($this->input->is_cli_request())
+ {
+ $this->cli = true;
+ }
+ else
+ {
+ $this->cli = false;
+ }
+ }
+
+ private function getEOL()
+ {
+ if ($this->cli === true)
+ {
+ return PHP_EOL;
+ }
+ else
+ {
+ return "
";
+ }
+ }
+
private function printMessage($message)
{
- printf("%s %s" . PHP_EOL, $this->MSG_PREFIX, $message);
+ printf("%s %s" . $this->getEOL(), $this->MSG_PREFIX, $message);
}
private function printInfo($info)
{
- printf("%s %s" . PHP_EOL, $this->INFO_PREFIX, $info);
+ printf("%s %s" . $this->getEOL(), $this->INFO_PREFIX, $info);
}
private function printError($error)
{
- printf("%s %s" . PHP_EOL, $this->ERROR_PREFIX, $error);
+ printf("%s %s" . $this->getEOL(), $this->ERROR_PREFIX, $error);
}
protected function startUP()
diff --git a/application/migrations/011_reihungstest.php b/application/migrations/011_reihungstest.php
index fff10b988..335f7dc95 100644
--- a/application/migrations/011_reihungstest.php
+++ b/application/migrations/011_reihungstest.php
@@ -6,6 +6,11 @@ require_once APPPATH . '/libraries/MigrationLib.php';
class Migration_Reihungstest extends MigrationLib
{
+ public function __construct()
+ {
+ parent::__construct();
+ }
+
public function up()
{
$this->startUP();
@@ -37,7 +42,7 @@ class Migration_Reihungstest extends MigrationLib
rt_id integer,
anmeldedatum date,
teilgenommen boolean DEFAULT FALSE,
- ort_kurzbz varchar(16) NOT NULL,
+ ort_kurzbz varchar(16),
punkte numeric(8,4) DEFAULT NULL,
CONSTRAINT pk_tbl_rt_person PRIMARY KEY (person_id, rt_id),
CONSTRAINT fk_rt_person_ort_kurzbz FOREIGN KEY (ort_kurzbz) REFERENCES public.tbl_ort(ort_kurzbz) ON UPDATE CASCADE ON DELETE RESTRICT,
diff --git a/application/widgets/orgform_widget.php b/application/widgets/orgform_widget.php
index 13ab67013..2ac6c9f30 100644
--- a/application/widgets/orgform_widget.php
+++ b/application/widgets/orgform_widget.php
@@ -3,11 +3,11 @@
/*
* OrgForm widget
*/
-class orgform_widget extends Widget
+class orgform_widget extends Widget
{
protected $_htmltagname = 'orgform_kurzbz';
- public function display($data)
+ public function display($data)
{
$this->load->model('codex/Orgform_model', 'OrgFormModel');
$res = $this->OrgFormModel->load();
@@ -33,10 +33,10 @@ class orgform_widget extends Widget
{
$item = array
(
- 'name' => $obj->orgform_kurzbz.' ('.$obj->bezeichnung.')',
+ 'name' => $obj->orgform_kurzbz.' ('.$obj->bezeichnung.')',
'value' => $obj->orgform_kurzbz
);
- if (isset($data['orgform']) && $obj->orgform_kurzbz == $data['orgform'])
+ if (isset($data['orgform_kurzbz']) && $obj->orgform_kurzbz == $data['orgform_kurzbz'])
$item['selected'] = true;
else
$item['selected'] = false;
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();
+?>
diff --git a/system/checkroles.php b/system/checkroles.php
index aaea82840..54839437e 100644
--- a/system/checkroles.php
+++ b/system/checkroles.php
@@ -54,7 +54,7 @@ $data = array
'rolle_kurzbz' => 'admin',
'berechtigung' => array
(
- 'admin', 'assistenz', 'basis/addon', 'basis/ampel', 'basis/ampeluebersicht', 'basis/benutzer', 'basis/berechtigung', 'basis/betriebsmittel', 'basis/cms', 'basis/cms_review', 'basis/cms_sperrfreigabe', 'basis/cronjob', 'basis/dms', 'basis/fas', 'basis/ferien', 'basis/fhausweis','basis/firma', 'basis/infoscreen', 'basis/moodle', 'basis/moodle','basis/news', 'basis/notiz', 'basis/organisationseinheit', 'basis/ort', 'basis/person', 'basis/planner', 'basis/service', 'basis/statistik', 'basis/studiengang', 'basis/tempus', 'basis/testtool', 'basis/variable', 'basis/vilesci', 'buchung/typen', 'buchung/mitarbeiter', 'inout/incoming', 'inout/outgoing', 'inout/uebersicht', 'lehre', 'lehre/abgabetool', 'lehre/freifach', 'lehre/lehrfach', 'lehre/lehrveranstaltung', 'lehre/lvplan', 'lehre/lvinfo', 'lehre/pruefungsanmeldungAdmin', 'lehre/pruefungsbeurteilung', 'lehre/pruefungsbeurteilungAdmin', 'lehre/pruefungsterminAdmin', 'lehre/pruefungsfenster', 'lehre/reihungstest', 'lehre/reservierung', 'lehre/studienordnung', 'lehre/studienordnungInaktiv', 'lehre/studienplan', 'lehre/vorrueckung', 'lv-plan', 'lv-plan/gruppenentfernen', 'lv-plan/lektorentfernen', 'mitarbeiter', 'mitarbeiter/bankdaten', 'mitarbeiter/personalnummer', 'mitarbeiter/stammdaten', 'mitarbeiter/urlaube', 'mitarbeiter/zeitsperre', 'news', 'planner', 'preinteressent', 'raumres', 'reihungstest', 'sdTools', 'soap/lv', 'soap/lvplan', 'soap/mitarbeiter', 'soap/ort', 'soap/pruefungsfenster', 'soap/student', 'soap/studienordnung', 'soap/benutzer', 'soap/buchungen', 'student/bankdaten', 'student/anrechnung', 'student/anwesenheit', 'student/dokumente', 'student/noten', 'system/phrase', 'system/vorlage', 'system/vorlagestudiengang', 'student/stammdaten', 'student/vorrueckung', 'system/developer', 'system/loginasuser', 'user', 'veranstaltung', 'vertrag/mitarbeiter', 'vertrag/typen', 'wawi/berichte', 'wawi/bestellung', 'wawi/bestellung_advanced', 'wawi/budget', 'wawi/delete_advanced', 'wawi/firma', 'wawi/freigabe', 'wawi/freigabe_advanced', 'wawi/inventar', 'wawi/konto', 'wawi/kostenstelle', 'wawi/rechnung', 'wawi/rechnung_freigeben', 'wawi/rechnung_transfer', 'wawi/storno'
+ 'admin', 'assistenz', 'basis/addon', 'basis/ampel', 'basis/ampeluebersicht', 'basis/benutzer', 'basis/berechtigung', 'basis/betriebsmittel', 'basis/cms', 'basis/cms_review', 'basis/cms_sperrfreigabe', 'basis/cronjob', 'basis/dms', 'basis/fas', 'basis/ferien', 'basis/fhausweis','basis/firma', 'basis/infoscreen', 'basis/moodle', 'basis/moodle','basis/news', 'basis/notiz', 'basis/organisationseinheit', 'basis/ort', 'basis/orgform', 'basis/person', 'basis/planner', 'basis/service', 'basis/statistik', 'basis/studiengang', 'basis/tempus', 'basis/testtool', 'basis/variable', 'basis/vilesci', 'buchung/typen', 'buchung/mitarbeiter', 'inout/incoming', 'inout/outgoing', 'inout/uebersicht', 'lehre', 'lehre/abgabetool', 'lehre/freifach', 'lehre/lehrfach', 'lehre/lehrveranstaltung', 'lehre/lvplan', 'lehre/lvinfo', 'lehre/pruefungsanmeldungAdmin', 'lehre/pruefungsbeurteilung', 'lehre/pruefungsbeurteilungAdmin', 'lehre/pruefungsterminAdmin', 'lehre/pruefungsfenster', 'lehre/reihungstest', 'lehre/reservierung', 'lehre/studienordnung', 'lehre/studienordnungInaktiv', 'lehre/studienplan', 'lehre/vorrueckung', 'lv-plan', 'lv-plan/gruppenentfernen', 'lv-plan/lektorentfernen', 'mitarbeiter', 'mitarbeiter/bankdaten', 'mitarbeiter/personalnummer', 'mitarbeiter/stammdaten', 'mitarbeiter/urlaube', 'mitarbeiter/zeitsperre', 'news', 'planner', 'preinteressent', 'raumres', 'reihungstest', 'sdTools', 'soap/lv', 'soap/lvplan', 'soap/mitarbeiter', 'soap/ort', 'soap/pruefungsfenster', 'soap/student', 'soap/studienordnung', 'soap/benutzer', 'soap/buchungen', 'student/bankdaten', 'student/anrechnung', 'student/anwesenheit', 'student/dokumente', 'student/noten', 'system/phrase', 'system/vorlage', 'system/vorlagestudiengang', 'student/stammdaten', 'student/vorrueckung', 'system/developer', 'system/loginasuser', 'user', 'veranstaltung', 'vertrag/mitarbeiter', 'vertrag/typen', 'wawi/berichte', 'wawi/bestellung', 'wawi/bestellung_advanced', 'wawi/budget', 'wawi/delete_advanced', 'wawi/firma', 'wawi/freigabe', 'wawi/freigabe_advanced', 'wawi/inventar', 'wawi/konto', 'wawi/kostenstelle', 'wawi/rechnung', 'wawi/rechnung_freigeben', 'wawi/rechnung_transfer', 'wawi/storno'
)
)
);
diff --git a/system/checksystem.php b/system/checksystem.php
index 9f026a0d5..0acddae34 100644
--- a/system/checksystem.php
+++ b/system/checksystem.php
@@ -87,6 +87,7 @@ $berechtigungen = array(
array('basis/news','Newsverwaltung'),
array('basis/notiz','Notizen'),
array('basis/organisationseinheit','Organisationseinheiten Verwalten'),
+ array('basis/orgform','Orgformen Verwalten'),
array('basis/ort','Raum-/Ortverwaltung'),
array('basis/person','Personen Zusammenlegen, Stg-Wiederholer anlegen, etc'),
array('basis/planner','Planner Zugriff'),