Merge branch 'master' of github.com:FH-Complete/FHC-Core

This commit is contained in:
oesi
2016-03-04 11:40:35 +01:00
13 changed files with 2237 additions and 1707 deletions
+1 -1
View File
@@ -119,4 +119,4 @@
} }
?> ?>
</body> </body>
</html> </html>
+960 -953
View File
File diff suppressed because it is too large Load Diff
+8
View File
@@ -1300,6 +1300,14 @@ function ExtrasShowProjektarbeitsabgaben()
window.open('<?php echo APP_ROOT ?>vilesci/lehre/abgabe_assistenz_frameset.php?stg_kz='+studiengang_kz,'Projektarbeitsabgaben',''); window.open('<?php echo APP_ROOT ?>vilesci/lehre/abgabe_assistenz_frameset.php?stg_kz='+studiengang_kz,'Projektarbeitsabgaben','');
} }
// ****
// * Zeigt HTML Seite für die Aliquote Reduktion
// ****
function ExtrasShowAliquote_reduktion()
{
window.open('<?php echo APP_ROOT ?>vilesci/personen/aliquote_reduktion.php','Aliquote Reduktion','');
}
// **** // ****
// * Zeigt HTML Seite zur Bearbeitung der Gruppen an // * Zeigt HTML Seite zur Bearbeitung der Gruppen an
// **** // ****
+171 -171
View File
@@ -1,171 +1,171 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html> <html>
<head> <head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="expires" content="0"> <meta http-equiv="expires" content="0">
<meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="cache-control" content="no-cache">
<title>FH Complete</title> <title>FH Complete</title>
<link href="skin/fhcomplete_website.css" rel="stylesheet" type="text/css"> <link href="skin/fhcomplete_website.css" rel="stylesheet" type="text/css">
<script type="text/javascript"> <script type="text/javascript">
function PopupZugangsdaten (Adresse) function PopupZugangsdaten (Adresse)
{ {
MeinFenster = window.open(Adresse, "Zugangsdaten", "width=800,height=550,left=100,top=200,location=no,menubar=no,resizable=yes"); MeinFenster = window.open(Adresse, "Zugangsdaten", "width=800,height=550,left=100,top=200,location=no,menubar=no,resizable=yes");
MeinFenster.focus(); MeinFenster.focus();
} }
</script> </script>
</head> </head>
<div align="center" style="padding:30px;"> <div align="center" style="padding:30px;">
<table border="0" cellpadding="0" cellspacing="0" width="500px"> <table border="0" cellpadding="0" cellspacing="0" width="500px">
<tr> <tr>
<td align="center"><a href="index.html"><img title="FH Complete" height="90" alt="FH Complete" src="skin/images/fh-complete_weiss.png"></a></td> <td align="center"><a href="index.html"><img title="FH Complete" height="90" alt="FH Complete" src="skin/images/fh-complete_weiss.png"></a></td>
</tr> </tr>
<tr height="40"> <tr height="40">
<td>&nbsp;</td> <td>&nbsp;</td>
</tr> </tr>
<tr> <tr>
<td> <td>
<table border="0" cellpadding="0" cellspacing="0"> <table border="0" cellpadding="0" cellspacing="0">
<tr> <tr>
<td colspan="5"> <td colspan="5">
<table align="center" cellpadding="0" cellspacing="0"><tr> <table align="center" cellpadding="0" cellspacing="0"><tr>
<td class="menu"><a class="menu" href="index.html">ÜBERBLICK</a></td> <td class="menu"><a class="menu" href="index.html">ÜBERBLICK</a></td>
<td class="menu"><a class="menu" href="fhcomplete_anforderungen.html">ANFORDERUNGEN</a></td> <td class="menu"><a class="menu" href="fhcomplete_anforderungen.html">ANFORDERUNGEN</a></td>
<td class="menu"><a class="menu" href="fhcomplete_community.html">COMMUNITY</a></td> <td class="menu"><a class="menu" href="fhcomplete_community.html">COMMUNITY</a></td>
</tr></table> </tr></table>
</td> </td>
</tr> </tr>
<tr><td colspan="5">&nbsp;</td></tr> <tr><td colspan="5">&nbsp;</td></tr>
<tr> <tr>
<td class="menu"><a class="menu" href="fhcomplete_cis.html">CIS</a></td> <td class="menu"><a class="menu" href="fhcomplete_cis.html">CIS</a></td>
<td class="menuselected"><a class="menuselected" href="fhcomplete_fas.html">FAS-ONLINE</a></td> <td class="menuselected"><a class="menuselected" href="fhcomplete_fas.html">FAS-ONLINE</a></td>
<td class="menu"><a class="menu" href="fhcomplete_tempus.html">TEMPUS</a></td> <td class="menu"><a class="menu" href="fhcomplete_tempus.html">TEMPUS</a></td>
<td class="menu"><a class="menu" href="fhcomplete_wawi.html">WAWI</a></td> <td class="menu"><a class="menu" href="fhcomplete_wawi.html">WAWI</a></td>
<td class="menu"><a class="menu" href="fhcomplete_vilesci.html">VILESCI</a></td> <td class="menu"><a class="menu" href="fhcomplete_vilesci.html">VILESCI</a></td>
</tr> </tr>
</table> </table>
</td> </td>
</tr> </tr>
<tr height="30"> <tr height="30">
<td colspan="7">&nbsp;</td> <td colspan="7">&nbsp;</td>
</tr> </tr>
<tr> <tr>
<td colspan="7"> <td colspan="7">
<img title="FAS" height="60" alt="FAS-Logo" src="skin/images/fas_logo_weiss.png"> <img title="FAS" height="60" alt="FAS-Logo" src="skin/images/fas_logo_weiss.png">
</td> </td>
</tr> </tr>
<tr> <tr>
<td colspan="7"> <td colspan="7">
<p> <p>
<br/><br/> <br/><br/>
Das FAS ist ein freies Administrations-System, welches die Das FAS ist ein freies Administrations-System, welches die
gesamte Verwaltung von Studierenden und MitarbeiterInnen gesamte Verwaltung von Studierenden und MitarbeiterInnen
speziell für Hochschulen unterstützt. Vom Eintritt eines/einer speziell für Hochschulen unterstützt. Vom Eintritt eines/einer
MitarbeiterIn bis zum Ausscheiden und vom Interessenten MitarbeiterIn bis zum Ausscheiden und vom Interessenten
bis zum/zur Absolventen/Absolventin verwaltet das Programm bis zum/zur Absolventen/Absolventin verwaltet das Programm
alle relevanten Daten rund um den Lehrbetrieb einer alle relevanten Daten rund um den Lehrbetrieb einer
Hochschule.<br/><br/><br/> Hochschule.<br/><br/><br/>
</p> </p>
</td> </td>
</tr> </tr>
<tr> <tr>
<td colspan="7"> <td colspan="7">
<table border="0" cellpadding="0" cellspacing="0" width="100%"> <table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr> <tr>
<td valign="top" width="50%"> <td valign="top" width="50%">
<p style="padding-left:30px; padding-right:30px;" > <p style="padding-left:30px; padding-right:30px;" >
<b>STUDIERENDE</b><br/> <b>STUDIERENDE</b><br/>
Der komplette Lebenszyklus vom Interessentenstatus über Der komplette Lebenszyklus vom Interessentenstatus über
die BewerberInnen zu den Studierenden bis zu den AbsolventInnen die BewerberInnen zu den Studierenden bis zu den AbsolventInnen
wird im FAS abgebildet. Es werden Lehrverbände wird im FAS abgebildet. Es werden Lehrverbände
und Gruppen definiert und den Studierenden zugewiesen. und Gruppen definiert und den Studierenden zugewiesen.
Kontaktdaten und Dokumente werden erfasst. Noten, Prüfungen, Kontaktdaten und Dokumente werden erfasst. Noten, Prüfungen,
Funktionen und Projektarbeiten werden organisiert.<br/><br/> Funktionen und Projektarbeiten werden organisiert.<br/><br/>
<b>PERSONAL</b><br/> <b>PERSONAL</b><br/>
Nicht nur Kontaktdaten oder Personaldaten, sondern auch Nicht nur Kontaktdaten oder Personaldaten, sondern auch
alle meldungspflichtigen Informationen werden hier erfasst alle meldungspflichtigen Informationen werden hier erfasst
und gewartet. Die MitarbeiterInnen werden Organisationseinheiten und gewartet. Die MitarbeiterInnen werden Organisationseinheiten
zugeteilt und somit lässt sich auf Knopfdruck ein zugeteilt und somit lässt sich auf Knopfdruck ein
detailliertes Organigramm erstellen. Zusätzlich werden den detailliertes Organigramm erstellen. Zusätzlich werden den
MitarbeiterInnen noch Funktionen innerhalb des Organisationsbaumes MitarbeiterInnen noch Funktionen innerhalb des Organisationsbaumes
zugeteilt.<br/><br/> zugeteilt.<br/><br/>
<b>Kommunikation</b><br/> <b>Kommunikation</b><br/>
Hier haben Sie alle Infos zur internen Kommunikation Hier haben Sie alle Infos zur internen Kommunikation
auf einen Blick. Personensuche, Mailgruppen, Telefonnummern... auf einen Blick. Personensuche, Mailgruppen, Telefonnummern...
</p> </p>
</td> </td>
<td valign="top" width="50%"> <td valign="top" width="50%">
<p style="padding-left:30px; padding-right:30px;"> <p style="padding-left:30px; padding-right:30px;">
<b>LEHRAUFTRÄGE</b><br/> <b>LEHRAUFTRÄGE</b><br/>
Per Drag&Drop können schnell LektorInnen den Lehrveranstaltungen Per Drag&Drop können schnell LektorInnen den Lehrveranstaltungen
zugewiesen werden und daraus Lehraufträge zugewiesen werden und daraus Lehraufträge
erstellt werden. Die Gesamtkosten sind automatisch und erstellt werden. Die Gesamtkosten sind automatisch und
übersichtlich aufgestellt. Auch das nachträgliche Ändern übersichtlich aufgestellt. Auch das nachträgliche Ändern
von LektorInnen ist mit einem Klick erledigt.<br/><br/> von LektorInnen ist mit einem Klick erledigt.<br/><br/>
<b>MELDUNG</b><br/> <b>MELDUNG</b><br/>
Die gesamte BIS-Meldung wird hier automatisiert erstellt. Die gesamte BIS-Meldung wird hier automatisiert erstellt.
Plausibilitätsprüfungen säubern die Daten schon im Vorfeld, Plausibilitätsprüfungen säubern die Daten schon im Vorfeld,
damit bei der Meldung selbst der Aufwand so gering wie damit bei der Meldung selbst der Aufwand so gering wie
möglich bleibt. Sie können hier praktisch nichts mehr falsch möglich bleibt. Sie können hier praktisch nichts mehr falsch
machen. Das Zittern vor der BIS-Meldung war gestern!<br/><br/> machen. Das Zittern vor der BIS-Meldung war gestern!<br/><br/>
<b>EXTRAS</b><br/> <b>EXTRAS</b><br/>
</p> </p>
<ul style="padding-left:30px; padding-right:30px;"> <ul style="padding-left:30px; padding-right:30px;">
<li>Firmenverwaltung</li> <li>Firmenverwaltung</li>
<li>Reihungstestverwaltung</li> <li>Reihungstestverwaltung</li>
<li>Diverse Statistiken</li> <li>Diverse Statistiken</li>
<li>Zeugnisarchivierung</li> <li>Zeugnisarchivierung</li>
<li>Kontoführung der Studierenden</li> <li>Kontoführung der Studierenden</li>
<li>Entlehnsystem für Betriebsmittel</li> <li>Entlehnsystem für Betriebsmittel</li>
<li>Schnittstellen zum Zutrittskartensystem</li> <li>Schnittstellen zum Zutrittskartensystem</li>
<li>Verwaltung und Abrechung der Projektarbeiten<br/> <li>Verwaltung und Abrechung der Projektarbeiten<br/>
(Master Thesen etc.)</li> (Master Thesen etc.)</li>
<li>Incoming- und Outgoingverwaltung</li> <li>Incoming- und Outgoingverwaltung</li>
<li>Abschlussprüfungen</li> <li>Abschlussprüfungen</li>
<li>und vieles mehr!</li> <li>und vieles mehr!</li>
</ul> </ul>
</td> </td>
</tr> </tr>
</table> </table>
</td> </td>
</tr> </tr>
<tr> <tr>
<td colspan="7"> <td colspan="7">
<br/><br/> <br/><br/>
<a href="fhcomplete_logindaten.html" onclick="PopupZugangsdaten(this.href); return false">Zugangsdaten und Einstellungen</a> <a href="fhcomplete_logindaten.html" onclick="PopupZugangsdaten(this.href); return false">Zugangsdaten und Einstellungen</a>
<a href="http://fhcomplete.org/demo/content/fas.xul.php" target="blank"> <a href="http://fhcomplete.org/demo/content/fas.xul.php" target="blank">
<p style="text-align: center">Weiter zur Demoseite</p> <p style="text-align: center">Weiter zur Demoseite</p>
<img title="FAS-Screenshot" width="266" alt="FAS-Screenshot" src="skin/images/fas-screenshot.png"> <img title="FAS-Screenshot" width="266" alt="FAS-Screenshot" src="skin/images/fas-screenshot.png">
</a> </a>
<br/><br/> <br/><br/>
</td> </td>
</tr> </tr>
<tr height="60"> <tr height="60">
<td colspan="7"></td> <td colspan="7"></td>
</tr> </tr>
<tr> <tr>
<td colspan="7"> <td colspan="7">
<table align="center" border="0" cellpadding="0" cellspacing="0" width="10%"> <table align="center" border="0" cellpadding="0" cellspacing="0" width="10%">
<tr> <tr>
<td width="100%"> <td width="100%">
<p style="padding-left:30px; padding-right:30px;" > <p style="padding-left:30px; padding-right:30px;" >
<a style="text-decoration:none;font-size:12px;" href="fhcomplete_impressum.html">IMPRESSUM</a> <a style="text-decoration:none;font-size:12px;" href="fhcomplete_impressum.html">IMPRESSUM</a>
</p> </p>
</td> </td>
<td width="100%"> <td width="100%">
<p style="padding-left:30px; padding-right:30px;" > <p style="padding-left:30px; padding-right:30px;" >
<a style="text-decoration:none;font-size:12px;" href="fhcomplete_kontakt.html">KONTAKT</a> <a style="text-decoration:none;font-size:12px;" href="fhcomplete_kontakt.html">KONTAKT</a>
</p> </p>
</td> </td>
</tr> </tr>
</table> </table>
</td> </td>
</tr> </tr>
</table> </table>
</div> </div>
</body> </body>
</html> </html>
+19 -15
View File
@@ -21,7 +21,7 @@
require_once(dirname(__FILE__)."/jquery.php"); require_once(dirname(__FILE__)."/jquery.php");
echo ' echo '
<script> <script>
var TARGET = ""; var SERVICE_TARGET = "";
function _GET() function _GET()
{ {
var url = window.location.href; var url = window.location.href;
@@ -37,16 +37,16 @@ echo '
return vars; return vars;
} }
function AJAXCall(info, successfunction) function AJAXCall(action, successfunction)
{ {
if(TARGET == "") if(SERVICE_TARGET == "")
die("Es wurde kein AJAX-Target angegeben"); die("Es wurde kein AJAX-Target angegeben");
$.ajax( $.ajax(
{ {
url: TARGET, url: SERVICE_TARGET,
type: "POST", type: "POST",
dataType: "html", dataType: "html",
data: info, data: action,
timeout: 5000 timeout: 5000
}).done(function(result) }).done(function(result)
@@ -60,17 +60,20 @@ echo '
die(result); die(result);
return false; return false;
} }
if(res.erfolg) if(res.return)
{ {
try if(res.action != "")
{ {
var ret = JSON.parse(res.info); try
successfunction(ret); {
} var ret = JSON.parse(res.action);
catch(e) }
{ catch(e)
die(res.info); {
die(action.action + "<br><br>" + res.action);
}
} }
successfunction(ret);
} }
else else
{ {
@@ -79,13 +82,14 @@ echo '
}).fail(function(jqXHR, status) }).fail(function(jqXHR, status)
{ {
die(status); die("AJAX failed: " + status);
}); });
} }
function die(msg) function die(msg)
{ {
document.body.innerHTML = msg; var full = "<h1 style=\'color:#900;\'>Fehler:</h1><div>"+msg+"</div>";
document.body.innerHTML = full;
throw new Error(msg); throw new Error(msg);
} }
+6 -7
View File
@@ -31,12 +31,12 @@ function returnAJAX($success, $obj)
//if there is an error //if there is an error
if(error_get_last()) if(error_get_last())
$ret = array( $ret = array(
"erfolg" => false, "return" => false,
); );
else if(!$success) else if(!$success)
{ {
$ret = array( $ret = array(
"erfolg" => false, "return" => false,
"message" => $obj, "message" => $obj,
); );
} }
@@ -44,20 +44,19 @@ function returnAJAX($success, $obj)
else if (!$getuid = get_uid()) else if (!$getuid = get_uid())
{ {
$ret = array( $ret = array(
"erfolg" => false, "return" => false,
); );
} }
//if everything worked fine //if everything worked fine
else else
{ {
$ret = array( $ret = array(
"erfolg" => true, "return" => true,
"user" => $getuid, "action" => $obj,
"info" => $obj,
); );
} }
echo json_encode($ret); echo json_encode($ret);
if($ret["erfolg"] === false) if($ret["return"] === false)
die(""); die("");
} }
?> ?>
+128 -60
View File
@@ -46,17 +46,17 @@ class prestudent extends person
public $punkte; //rt_gesamtpunkte public $punkte; //rt_gesamtpunkte
public $rt_punkte1; public $rt_punkte1;
public $rt_punkte2; public $rt_punkte2;
public $rt_punkte3 = 0; public $rt_punkte3 = 0;
public $bismelden = true; public $bismelden = true;
public $anmerkung; public $anmerkung;
public $anmerkung_status; public $anmerkung_status;
public $mentor; public $mentor;
public $ext_id_prestudent; public $ext_id_prestudent;
public $dual = false; public $dual = false;
public $zgvdoktor_code; public $zgvdoktor_code;
public $zgvdoktorort; public $zgvdoktorort;
public $zgvdoktordatum; public $zgvdoktordatum;
public $zgvdoktornation; public $zgvdoktornation;
public $status_kurzbz; public $status_kurzbz;
public $studiensemester_kurzbz; public $studiensemester_kurzbz;
@@ -565,8 +565,8 @@ class prestudent extends person
( (
SELECT SELECT
*, (SELECT status_kurzbz FROM tbl_prestudentstatus *, (SELECT status_kurzbz FROM tbl_prestudentstatus
WHERE prestudent_id=prestudent.prestudent_id $stsemqry WHERE prestudent_id=prestudent.prestudent_id $stsemqry
ORDER BY datum DESC, insertamum DESC, ext_id DESC LIMIT 1) AS rolle ORDER BY datum DESC, insertamum DESC, ext_id DESC LIMIT 1) AS rolle
FROM tbl_prestudent prestudent ORDER BY prestudent_id FROM tbl_prestudent prestudent ORDER BY prestudent_id
) a, tbl_prestudentstatus, tbl_person ) a, tbl_prestudentstatus, tbl_person
WHERE a.rolle=tbl_prestudentstatus.status_kurzbz AND WHERE a.rolle=tbl_prestudentstatus.status_kurzbz AND
@@ -1118,9 +1118,9 @@ class prestudent extends person
$obj->ext_id_prestudent = $row->ext_id; $obj->ext_id_prestudent = $row->ext_id;
$obj->dual = $this->db_parse_bool($row->dual); $obj->dual = $this->db_parse_bool($row->dual);
$obj->ausstellungsstaat = $row->ausstellungsstaat; $obj->ausstellungsstaat = $row->ausstellungsstaat;
$obj->zgvdoktor_code = $row->zgvdoktor_code; $obj->zgvdoktor_code = $row->zgvdoktor_code;
$obj->zgvdoktorort = $row->zgvdoktorort; $obj->zgvdoktorort = $row->zgvdoktorort;
$obj->zgvdoktordatum = $row->zgvdoktordatum; $obj->zgvdoktordatum = $row->zgvdoktordatum;
$this->result[] = $obj; $this->result[] = $obj;
} }
@@ -1133,56 +1133,60 @@ class prestudent extends person
} }
} }
/** /**
* Gibt die eingetragenen ZGV zurück * Gibt die eingetragenen ZGV zurück
* @return array * @return array
*/ */
public function getZgv() { public function getZgv()
{
$zgv = array( $zgv = array
'bachelor' => array(), (
'master' => array(), 'bachelor' => array(),
// 'doktor' => array(), 'master' => array(),
); //'doktor' => array(),
$attribute = array( );
'art', $attribute = array
'ort', (
'datum', 'art',
'nation', 'ort',
); 'datum',
$db_attribute = array( 'nation',
'zgv_code', );
'zgvort', $db_attribute = array
'zgvdatum', (
'zgvnation', 'zgv_code',
'zgvmas_code', 'zgvort',
'zgvmaort', 'zgvdatum',
'zgvmadatum', 'zgvnation',
'zgvmanation', 'zgvmas_code',
'zgvdoktor_code', 'zgvmaort',
'zgvdoktorort', 'zgvmadatum',
'zgvdoktordatum', 'zgvmanation',
'zgvdoktornation', 'zgvdoktor_code',
); 'zgvdoktorort',
'zgvdoktordatum',
'zgvdoktornation',
);
foreach($this->result as $prestudent) { foreach($this->result as $prestudent)
{
foreach($zgv as &$value) { foreach($zgv as &$value)
{
foreach($attribute as $attribut) { foreach($attribute as $attribut)
$db_attribute_name = current($db_attribute); {
$db_attribute_name = current($db_attribute);
if($prestudent->$db_attribute_name) { if($prestudent->$db_attribute_name)
$value[$attribut] = $prestudent->$db_attribute_name; {
} $value[$attribut] = $prestudent->$db_attribute_name;
next($db_attribute); }
} next($db_attribute);
} }
reset($db_attribute); }
} reset($db_attribute);
}
return $zgv; return $zgv;
} }
/** /**
* Liefert die Anzahl der Bewerber im ausgewaehlten Bereich * Liefert die Anzahl der Bewerber im ausgewaehlten Bereich
@@ -1711,4 +1715,68 @@ class prestudent extends person
return false; 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 getAllBewerberFromStudienplanStudsem($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 (get_rolle_prestudent(prestudent_id, null)='Bewerber' OR get_rolle_prestudent(prestudent_id, null)='Wartender')
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;
}
}
} }
+191 -93
View File
@@ -1,24 +1,24 @@
<?php <?php
/* /*
* studienplatz.class.php * studienplatz.class.php
* *
* Copyright 2013 Technikum-Wien * Copyright 2013 Technikum-Wien
* *
* This program is free software; you can redistribute it and/or modify * 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 * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or * the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty oferr * but WITHOUT ANY WARRANTY; without even the implied warranty oferr
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
* MA 02110-1301, USA. * MA 02110-1301, USA.
* *
* *
* Authors: Christian Paminger <[email protected]> * Authors: Christian Paminger <[email protected]>
* Werner Masik <[email protected]> * Werner Masik <[email protected]>
@@ -29,35 +29,39 @@ require_once(__DIR__ .'/functions.inc.php');
class studienplatz extends basis_db class studienplatz extends basis_db
{ {
/** @var $new boolean */ /** @var $new boolean */
private $new = true; private $new = true;
/** @var DB-Result */ /** @var DB-Result */
private $result; private $result;
/** @var object */ /** @var object */
public $studienplatz = array(); public $studienplatz = array();
//Tabellenspalten //Tabellenspalten
/** @var integer */ /** @var integer */
private $studienplatz_id; private $studienplatz_id;
/** @var integer */ /** @var integer */
private $studiengang_kz; private $studiengang_kz;
/** @var string */ /** @var string */
private $orgform_kurzbz; private $orgform_kurzbz;
/** @var string */ /** @var string */
private $studiensemester_kurzbz; private $studiensemester_kurzbz;
/** @var integer */ /** @var integer */
private $ausbildungssemester; private $ausbildungssemester;
/** @var integer */ /** @var integer */
private $gpz; private $gpz;
/** @var integer */ /** @var integer */
private $npz; private $npz;
/** @var timestamp */ /** @var timestamp */
private $updateamum; private $updateamum;
/** @var string */ /** @var string */
private $updatevon; private $updatevon;
/** @var timestamp */ /** @var timestamp */
private $insertamum; private $insertamum;
/** @var string */ /** @var string */
private $insertvon; private $insertvon;
/** @var integer */
private $apz;
/** @var integer */
private $studienplan_id;
/** /**
* Konstruktor * Konstruktor
@@ -66,7 +70,7 @@ class studienplatz extends basis_db
public function __construct($studienplatz_id=null) public function __construct($studienplatz_id=null)
{ {
parent::__construct(); parent::__construct();
if(!is_null($studienplatz_id)) if(!is_null($studienplatz_id))
$this->load($studienplatz_id); $this->load($studienplatz_id);
} }
@@ -76,9 +80,10 @@ class studienplatz extends basis_db
switch ($name) switch ($name)
{ {
case 'gpz': case 'gpz':
case 'npz': case 'npz':
case 'ausbildungssemester': case 'ausbildungssemester':
case 'studienplatz_id': case 'studienplatz_id':
case 'studienplan_id':
if ($value != null && !is_numeric($value)) if ($value != null && !is_numeric($value))
throw new Exception("Attribute $name must be numeric! ($value)"); throw new Exception("Attribute $name must be numeric! ($value)");
$this->$name=$value; $this->$name=$value;
@@ -92,8 +97,8 @@ class studienplatz extends basis_db
{ {
return $this->$name; return $this->$name;
} }
/** /**
* Laedt einzelnen Studienplatz der ID $studienplatz_id * Laedt einzelnen Studienplatz der ID $studienplatz_id
* @param integer $studienplatz_id ID des zu ladenden Studienplatzes * @param integer $studienplatz_id ID des zu ladenden Studienplatzes
@@ -126,7 +131,6 @@ class studienplatz extends basis_db
$this->errormsg = 'Es ist kein Datensatz mit dieser ID vorhanden'; $this->errormsg = 'Es ist kein Datensatz mit dieser ID vorhanden';
return false; return false;
} }
return true; return true;
} }
@@ -135,31 +139,33 @@ class studienplatz extends basis_db
* @param type $target * @param type $target
* @param type $row * @param type $row
*/ */
private function mapRow($target,$row) { private function mapRow($target,$row) {
$target->studienplatz_id = $row->studienplatz_id; $target->studienplatz_id = $row->studienplatz_id;
$target->studiengang_kz = $row->studiengang_kz; $target->studiengang_kz = $row->studiengang_kz;
$target->orgform_kurzbz = $row->orgform_kurzbz; $target->orgform_kurzbz = $row->orgform_kurzbz;
$target->studiensemester_kurzbz = $row->studiensemester_kurzbz; $target->studiensemester_kurzbz = $row->studiensemester_kurzbz;
$target->ausbildungssemester = $row->ausbildungssemester; $target->ausbildungssemester = $row->ausbildungssemester;
$target->gpz = $row->gpz; $target->gpz = $row->gpz;
$target->npz = $row->npz; $target->npz = $row->npz;
$target->updateamum = $row->updateamum; $target->updateamum = $row->updateamum;
$target->updatevon = $row->updatevon; $target->updatevon = $row->updatevon;
$target->insertamum = $row->insertamum; $target->insertamum = $row->insertamum;
$target->insertvon = $row->insertvon; $target->insertvon = $row->insertvon;
$target->new = false; $target->apz = $row->apz;
$target->studienplan_id = $row->studienplan_id;
$target->new = false;
} }
/** /**
* Laedt alle Studienplaetze zu einem Studiengang und Semester. Ergebnis * Laedt alle Studienplaetze zu einem Studiengang und Semester. Ergebnis
* steht in result, wobei es nur einen Datensatz geben kann, wenn * steht in result, wobei es nur einen Datensatz geben kann, wenn
* keinAusbildungssemester = true ist. * keinAusbildungssemester = true ist.
* @param integer $studiengang_kz * @param integer $studiengang_kz
* @param string studiensemester_kurzbz * @param string studiensemester_kurzbz
* @param string orgform_kurzbz * @param string orgform_kurzbz
* @param boolean Ausbildungssemester ist optional. Wenn true werden * @param boolean Ausbildungssemester ist optional. Wenn true werden
* nur Datensätze geladen wo das Ausbildungssemester null ist. Wenn * nur Datensätze geladen wo das Ausbildungssemester null ist. Wenn
* false werden alle geladen wo ein Ausbildungssemester eingetragen * false werden alle geladen wo ein Ausbildungssemester eingetragen
* ist. * ist.
* @return true wenn ok, false im Fehlerfall * @return true wenn ok, false im Fehlerfall
*/ */
@@ -179,22 +185,63 @@ class studienplatz extends basis_db
//" AND art=".$this->db_add_param($art, FHC_STRING, false). //" AND art=".$this->db_add_param($art, FHC_STRING, false).
" AND orgform_kurzbz=".$this->db_add_param($orgform, FHC_STRING, false). " AND orgform_kurzbz=".$this->db_add_param($orgform, FHC_STRING, false).
" AND ausbildungssemester ".($keinAusbildungssemester ? 'is null':'is not null'); " AND ausbildungssemester ".($keinAusbildungssemester ? 'is null':'is not null');
$this->result = array(); $this->result = array();
if(!$this->db_query($qry)) if(!$this->db_query($qry))
{ {
return false; return false;
} }
while($row = $this->db_fetch_object()) while($row = $this->db_fetch_object())
{ {
$rec = new studienplatz(); $rec = new studienplatz();
$this->mapRow($rec, $row); $this->mapRow($rec, $row);
$this->result[] = $rec; $this->result[] = $rec;
} }
return true; return true;
} }
/**
* Laedt alle Studienplaetze zu einem Studiengang und Semester. Ergebnis
* steht in result, wobei es nur einen Datensatz geben kann, wenn
* keinAusbildungssemester = true ist.
* @param integer $studiengang_kz
* @param string studiensemester_kurzbz
* @param boolean Ausbildungssemester ist optional. Wenn true werden
* nur Datensätze geladen wo das Ausbildungssemester null ist. Wenn
* false werden alle geladen wo ein Ausbildungssemester eingetragen
* ist.
* @return true wenn ok, false im Fehlerfall
*/
public function load_studiengang_studiensemester($studiengang_kz, $studiensemester_kurzbz, $keinAusbildungssemester = true)
{
//Pruefen ob $studiengang_kz eine gueltige Zahl ist
if(!is_numeric($studiengang_kz) || $studiengang_kz == '')
{
$this->errormsg = 'studiengang_kz muss eine gültige Zahl sein';
return false;
}
//Lesen der Daten aus der Datenbank
$qry = "SELECT * FROM lehre.tbl_studienplatz RIGHT JOIN lehre.tbl_studienplan using(studienplan_id) WHERE studiengang_kz=".
$this->db_add_param($studiengang_kz, FHC_INTEGER, false).
" AND studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz, FHC_STRING, false).
" AND ausbildungssemester ".($keinAusbildungssemester ? 'is null':'is not null').
" AND studienplan_id IS NOT NULL;";
$this->result = array();
if(!$this->db_query($qry))
{
return false;
}
while($row = $this->db_fetch_object())
{
$this->result[] = $row;
}
return true;
}
/** /**
* Liefert Array mit GPZ und NPZ für die FÖBis relevanten Orgformen (BB, VZ, VBB). * Liefert Array mit GPZ und NPZ für die FÖBis relevanten Orgformen (BB, VZ, VBB).
* Dient als Ersatz für load_studiengang_studiensemester_orgform weil hiermit * Dient als Ersatz für load_studiengang_studiensemester_orgform weil hiermit
@@ -207,10 +254,10 @@ class studienplatz extends basis_db
{ {
// Semesterliste für where klausel erzeugen: // Semesterliste für where klausel erzeugen:
$startSemester= 'WS'.substr($studienjahr,0,4); $startSemester= 'WS'.substr($studienjahr,0,4);
$semesterList = generateSemesterList($startSemester,($zeitraum*2)-1); $semesterList = generateSemesterList($startSemester,($zeitraum*2)-1);
$semesterList_comma_separated = "'".join("','",$semesterList)."'"; $semesterList_comma_separated = "'".join("','",$semesterList)."'";
//Lesen der Daten aus der Datenbank //Lesen der Daten aus der Datenbank
$qry = "SELECT studiensemester_kurzbz,studiengang_kz, $qry = "SELECT studiensemester_kurzbz,studiengang_kz,
sum(case when orgform_kurzbz='VZ' then npz else 0 end) as npz_vz, sum(case when orgform_kurzbz='VZ' then npz else 0 end) as npz_vz,
@@ -220,30 +267,69 @@ class studienplatz extends basis_db
sum(case when orgform_kurzbz='VZ' then gpz else 0 end) as gpz_vz, sum(case when orgform_kurzbz='VZ' then gpz else 0 end) as gpz_vz,
sum(case when orgform_kurzbz='BB' then gpz else 0 end) as gpz_bb, sum(case when orgform_kurzbz='BB' then gpz else 0 end) as gpz_bb,
sum(case when orgform_kurzbz='VBB' then gpz else 0 end) as gpz_vbb, sum(case when orgform_kurzbz='VBB' then gpz else 0 end) as gpz_vbb,
sum(gpz) as gpz_gesamt sum(gpz) as gpz_gesamt
FROM lehre.tbl_studienplatz FROM lehre.tbl_studienplatz
WHERE ausbildungssemester is null and studiensemester_kurzbz IN ($semesterList_comma_separated) WHERE ausbildungssemester is null and studiensemester_kurzbz IN ($semesterList_comma_separated)
group by studiensemester_kurzbz,studiengang_kz"; group by studiensemester_kurzbz,studiengang_kz";
$this->result = array(); $this->result = array();
if(!$this->db_query($qry)) if(!$this->db_query($qry))
{ {
return false; return false;
} }
$result = array(); $result = array();
while($row = $this->db_fetch_object()) while($row = $this->db_fetch_object())
{ {
$result[$row->studiensemester_kurzbz][$row->studiengang_kz]['BB']['NPZ'] = $row->npz_bb; $result[$row->studiensemester_kurzbz][$row->studiengang_kz]['BB']['NPZ'] = $row->npz_bb;
$result[$row->studiensemester_kurzbz][$row->studiengang_kz]['VZ']['NPZ'] = $row->npz_vz; $result[$row->studiensemester_kurzbz][$row->studiengang_kz]['VZ']['NPZ'] = $row->npz_vz;
$result[$row->studiensemester_kurzbz][$row->studiengang_kz]['VBB']['NPZ'] = $row->npz_vbb; $result[$row->studiensemester_kurzbz][$row->studiengang_kz]['VBB']['NPZ'] = $row->npz_vbb;
$result[$row->studiensemester_kurzbz][$row->studiengang_kz]['gesamt']['NPZ'] = $row->npz_gesamt; $result[$row->studiensemester_kurzbz][$row->studiengang_kz]['gesamt']['NPZ'] = $row->npz_gesamt;
$result[$row->studiensemester_kurzbz][$row->studiengang_kz]['BB']['GPZ'] = $row->gpz_bb; $result[$row->studiensemester_kurzbz][$row->studiengang_kz]['BB']['GPZ'] = $row->gpz_bb;
$result[$row->studiensemester_kurzbz][$row->studiengang_kz]['VZ']['GPZ'] = $row->gpz_vz; $result[$row->studiensemester_kurzbz][$row->studiengang_kz]['VZ']['GPZ'] = $row->gpz_vz;
$result[$row->studiensemester_kurzbz][$row->studiengang_kz]['VBB']['GPZ'] = $row->gpz_vbb; $result[$row->studiensemester_kurzbz][$row->studiengang_kz]['VBB']['GPZ'] = $row->gpz_vbb;
$result[$row->studiensemester_kurzbz][$row->studiengang_kz]['gesamt']['GPZ'] = $row->gpz_gesamt; $result[$row->studiensemester_kurzbz][$row->studiengang_kz]['gesamt']['GPZ'] = $row->gpz_gesamt;
} }
return $result; return $result;
} }
/**
* Liefert alle Studienplätze eines Studiengangs und Semesters
* @param string $stg_kz z.B: -16
* @param string $studiensemester_kurzbz z.B: WS2015
* @return boolean|array false bei Fehler
*/
public function getFromStgKzAndStudsem($stg_kz, $studiensemester_kurzbz)
{
if(!is_numeric($stg_kz))
{
$this->errormsg='stg_kz muss eine gueltige Zahl sein';
return false;
}
if($studiensemester_kurzbz == "")
{
$this->errormsg='Es wurde kein gueltiges studiensemester_kurzbz uerbergeben';
return false;
}
//Lesen der Daten aus der Datenbank
$qry = "SELECT * FROM lehre.tbl_studienplatz
JOIN public.tbl_studiengang using(studiengang_kz)
WHERE studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz)."
AND studiengang_kz=".$this->db_add_param($stg_kz, FHC_INTEGER);
if($this->db_query($qry))
{
$result = array();
while($row = $this->db_fetch_object())
{
$result[] = $row;
}
return $result;
}
return false;
}
/** /**
* Prueft die Variablen auf Gueltigkeit * Prueft die Variablen auf Gueltigkeit
@@ -260,7 +346,7 @@ class studienplatz extends basis_db
{ {
$this->errormsg='studiengang_kz enthaelt ungueltige Zeichen'; $this->errormsg='studiengang_kz enthaelt ungueltige Zeichen';
return false; return false;
} }
if(mb_strlen($this->orgform_kurzbz)>3) if(mb_strlen($this->orgform_kurzbz)>3)
{ {
$this->errormsg = 'orgform_kurzbz darf nicht länger als 3 Zeichen sein'; $this->errormsg = 'orgform_kurzbz darf nicht länger als 3 Zeichen sein';
@@ -284,11 +370,19 @@ class studienplatz extends basis_db
{ {
$this->errormsg='npz enthaelt ungueltige Zeichen'; $this->errormsg='npz enthaelt ungueltige Zeichen';
return false; return false;
}if(!is_numeric($this->apz) && $this->apz!='')
{
$this->errormsg='apz enthaelt ungueltige Zeichen';
return false;
}if(!is_numeric($this->studienplan_id) && $this->studienplan_id!='')
{
$this->errormsg='studienplan_id enthaelt ungueltige Zeichen';
return false;
} }
$this->errormsg = ''; $this->errormsg = '';
return true; return true;
} }
/** /**
* Speichert den aktuellen Datensatz in die Datenbank * Speichert den aktuellen Datensatz in die Datenbank
* Wenn $neu auf true gesetzt ist wird ein neuer Datensatz angelegt * Wenn $neu auf true gesetzt ist wird ein neuer Datensatz angelegt
@@ -305,20 +399,22 @@ class studienplatz extends basis_db
{ {
//Neuen Datensatz einfuegen //Neuen Datensatz einfuegen
$qry='BEGIN;INSERT INTO lehre.tbl_studienplatz ('. $qry='BEGIN;INSERT INTO lehre.tbl_studienplatz ('.
'studiengang_kz, orgform_kurzbz, studiensemester_kurzbz, '. 'studiengang_kz, orgform_kurzbz, studiensemester_kurzbz, '.
'ausbildungssemester, gpz, npz, insertamum, insertvon, '. 'ausbildungssemester, gpz, npz, apz, studienplan_id insertamum, insertvon, '.
'updateamum, updatevon) VALUES('. 'updateamum, updatevon) VALUES('.
$this->db_add_param($this->studiengang_kz, FHC_INTEGER).', '. $this->db_add_param($this->studiengang_kz, FHC_INTEGER).', '.
$this->db_add_param($this->orgform_kurzbz).', '. $this->db_add_param($this->orgform_kurzbz).', '.
$this->db_add_param($this->studiensemester_kurzbz).', '. $this->db_add_param($this->studiensemester_kurzbz).', '.
$this->db_add_param($this->ausbildungssemester, FHC_INTEGER).', '. $this->db_add_param($this->ausbildungssemester, FHC_INTEGER).', '.
//$this->db_add_param($this->art).', '. //$this->db_add_param($this->art).', '.
$this->db_add_param($this->gpz, FHC_INTEGER).', '. $this->db_add_param($this->gpz, FHC_INTEGER).', '.
$this->db_add_param($this->npz, FHC_INTEGER).', '. $this->db_add_param($this->npz, FHC_INTEGER).', '.
'now(), '. $this->db_add_param($this->apz, FHC_INTEGER).', '.
$this->db_add_param($this->insertvon).', '. $this->db_add_param($this->studienplan_id, FHC_INTEGER).', '.
'now(), '. 'now(), '.
$this->db_add_param($this->updatevon).');'; $this->db_add_param($this->insertvon).', '.
'now(), '.
$this->db_add_param($this->updatevon).');';
} }
else else
{ {
@@ -328,19 +424,21 @@ class studienplatz extends basis_db
$this->errormsg = 'studienplatz_id muss eine gueltige Zahl sein'; $this->errormsg = 'studienplatz_id muss eine gueltige Zahl sein';
return false; return false;
} }
$qry='UPDATE lehre.tbl_studienplatz SET'. $qry='UPDATE lehre.tbl_studienplatz SET'.
' studiengang_kz='.$this->db_add_param($this->studiengang_kz).', '. ' studiengang_kz='.$this->db_add_param($this->studiengang_kz).', '.
' orgform_kurzbz='.$this->db_add_param($this->orgform_kurzbz).', '. ' orgform_kurzbz='.$this->db_add_param($this->orgform_kurzbz).', '.
' studiensemester_kurzbz='.$this->db_add_param($this->studiensemester_kurzbz).', '. ' studiensemester_kurzbz='.$this->db_add_param($this->studiensemester_kurzbz).', '.
' ausbildungssemester='.$this->db_add_param($this->ausbildungssemester).', '. ' ausbildungssemester='.$this->db_add_param($this->ausbildungssemester).', '.
//' art='.$this->db_add_param($this->art).', '. //' art='.$this->db_add_param($this->art).', '.
' gpz='.$this->db_add_param($this->gpz).', '. ' gpz='.$this->db_add_param($this->gpz).', '.
' npz='.$this->db_add_param($this->npz).', '. ' npz='.$this->db_add_param($this->npz).', '.
' updateamum= now(), '. ' apz='.$this->db_add_param($this->apz, FHC_INTEGER).', '.
' updatevon='.$this->db_add_param($this->updatevon). ' studienplan_id='.$this->db_add_param($this->studienplan_id, FHC_INTEGER).', '.
' WHERE studienplatz_id='.$this->db_add_param($this->studienplatz_id, FHC_INTEGER, false).';'; ' updateamum= now(), '.
' updatevon='.$this->db_add_param($this->updatevon).
' WHERE studienplatz_id='.$this->db_add_param($this->studienplatz_id, FHC_INTEGER, false).';';
} }
if($this->db_query($qry)) if($this->db_query($qry))
{ {
if($this->new) if($this->new)
@@ -371,7 +469,7 @@ class studienplatz extends basis_db
} }
else else
{ {
return false; return false;
} }
return $this->studienplatz_id; return $this->studienplatz_id;
@@ -399,7 +497,7 @@ class studienplatz extends basis_db
return true; return true;
} }
else else
{ {
return false; return false;
} }
} }
@@ -42,3 +42,9 @@ TD,TH
{ {
font-size: 9pt; font-size: 9pt;
} }
table.tablesorter tbody td
{
margin: 0;
padding: 0;
vertical-align: middle;
}
+404 -400
View File
@@ -1,400 +1,404 @@
<!ENTITY window.title "FAS"> <!ENTITY window.title "FAS">
<!ENTITY window.version "3.2a"> <!ENTITY window.version "3.2a">
<!-- MENUE --> <!-- MENUE -->
<!-- Datei --> <!-- Datei -->
<!ENTITY menu-file.label "Datei"> <!ENTITY menu-file.label "Datei">
<!ENTITY menu-file.accesskey "D"> <!ENTITY menu-file.accesskey "D">
<!ENTITY menu-file-close.key "D"> <!ENTITY menu-file-close.key "D">
<!ENTITY menu-file-close.label "Beenden"> <!ENTITY menu-file-close.label "Beenden">
<!ENTITY menu-file-close.accesskey "B"> <!ENTITY menu-file-close.accesskey "B">
<!-- Bearbeiten --> <!-- Bearbeiten -->
<!ENTITY menu-edit.label "Bearbeiten"> <!ENTITY menu-edit.label "Bearbeiten">
<!ENTITY menu-edit.accesskey "B"> <!ENTITY menu-edit.accesskey "B">
<!ENTITY menu-edit-undo.key ""> <!ENTITY menu-edit-undo.key "">
<!ENTITY menu-edit-undo.label "Undo"> <!ENTITY menu-edit-undo.label "Undo">
<!ENTITY menu-edit-undo.accesskey ""> <!ENTITY menu-edit-undo.accesskey "">
<!-- Einstellungen --> <!-- Einstellungen -->
<!ENTITY menu-prefs.label "Einstellungen"> <!ENTITY menu-prefs.label "Einstellungen">
<!ENTITY menu-prefs.accesskey "E"> <!ENTITY menu-prefs.accesskey "E">
<!ENTITY menu-prefs-stpltable.label "Stpl-Tabelle"> <!ENTITY menu-prefs-stpltable.label "Stpl-Tabelle">
<!ENTITY menu-prefs-stpltable.accesskey "T"> <!ENTITY menu-prefs-stpltable.accesskey "T">
<!ENTITY menu-prefs-stpltable-stundenplan.key "s"> <!ENTITY menu-prefs-stpltable-stundenplan.key "s">
<!ENTITY menu-prefs-stpltable-stundenplan.label "stundenplan"> <!ENTITY menu-prefs-stpltable-stundenplan.label "stundenplan">
<!ENTITY menu-prefs-stpltable-stundenplan.accesskey "s"> <!ENTITY menu-prefs-stpltable-stundenplan.accesskey "s">
<!ENTITY menu-prefs-stpltable-stundenplandev.key "d"> <!ENTITY menu-prefs-stpltable-stundenplandev.key "d">
<!ENTITY menu-prefs-stpltable-stundenplandev.label "stundenplandev"> <!ENTITY menu-prefs-stpltable-stundenplandev.label "stundenplandev">
<!ENTITY menu-prefs-stpltable-stundenplandev.accesskey "d"> <!ENTITY menu-prefs-stpltable-stundenplandev.accesskey "d">
<!ENTITY menu-prefs-kontofilterstg.key "B"> <!ENTITY menu-prefs-kontofilterstg.key "B">
<!ENTITY menu-prefs-kontofilterstg.label "Buchungen auf Studiengang filtern"> <!ENTITY menu-prefs-kontofilterstg.label "Buchungen auf Studiengang filtern">
<!ENTITY menu-prefs-kontofilterstg.accesskey "B"> <!ENTITY menu-prefs-kontofilterstg.accesskey "B">
<!-- Berichte --> <!-- Berichte -->
<!ENTITY menu-statistic.label "Berichte"> <!ENTITY menu-statistic.label "Berichte">
<!ENTITY menu-statistic.accesskey "R"> <!ENTITY menu-statistic.accesskey "R">
<!ENTITY menu-statistic-koordinatorstunden.key "K"> <!ENTITY menu-statistic-koordinatorstunden.key "K">
<!ENTITY menu-statistic-koordinatorstunden.label "Koordinatorstunden"> <!ENTITY menu-statistic-koordinatorstunden.label "Koordinatorstunden">
<!ENTITY menu-statistic-koordinatorstunden.accesskey "K"> <!ENTITY menu-statistic-koordinatorstunden.accesskey "K">
<!ENTITY menu-statistic-lehre.key "L"> <!ENTITY menu-statistic-lehre.key "L">
<!ENTITY menu-statistic-lehre.label "Lehre"> <!ENTITY menu-statistic-lehre.label "Lehre">
<!ENTITY menu-statistic-lehre.accesskey "L"> <!ENTITY menu-statistic-lehre.accesskey "L">
<!ENTITY menu-statistic-mitarbeiter.key "M"> <!ENTITY menu-statistic-mitarbeiter.key "M">
<!ENTITY menu-statistic-mitarbeiter.label "MitarbeiterInnen"> <!ENTITY menu-statistic-mitarbeiter.label "MitarbeiterInnen">
<!ENTITY menu-statistic-mitarbeiter.accesskey "M"> <!ENTITY menu-statistic-mitarbeiter.accesskey "M">
<!ENTITY menu-statistic-student.key "S"> <!ENTITY menu-statistic-student.key "S">
<!ENTITY menu-statistic-student.label "Studierende"> <!ENTITY menu-statistic-student.label "Studierende">
<!ENTITY menu-statistic-student.accesskey "S"> <!ENTITY menu-statistic-student.accesskey "S">
<!ENTITY menu-statistic-oehbeitraege.key "O"> <!ENTITY menu-statistic-oehbeitraege.key "O">
<!ENTITY menu-statistic-oehbeitraege.label "ÖH-Beiträge"> <!ENTITY menu-statistic-oehbeitraege.label "ÖH-Beiträge">
<!ENTITY menu-statistic-oehbeitraege.accesskey "O"> <!ENTITY menu-statistic-oehbeitraege.accesskey "O">
<!ENTITY menu-statistic-lehrauftraege.key "L"> <!ENTITY menu-statistic-lehrauftraege.key "L">
<!ENTITY menu-statistic-lehrauftraege.label "Lehraufträge"> <!ENTITY menu-statistic-lehrauftraege.label "Lehraufträge">
<!ENTITY menu-statistic-lehrauftraege.accesskey "L"> <!ENTITY menu-statistic-lehrauftraege.accesskey "L">
<!ENTITY menu-statistic-sublvplanung.key "V"> <!ENTITY menu-statistic-sublvplanung.key "V">
<!ENTITY menu-statistic-sublvplanung.label "LV-Planung"> <!ENTITY menu-statistic-sublvplanung.label "LV-Planung">
<!ENTITY menu-statistic-sublvplanung.accesskey "V"> <!ENTITY menu-statistic-sublvplanung.accesskey "V">
<!ENTITY menu-statistic-lvplanung.key "H"> <!ENTITY menu-statistic-lvplanung.key "H">
<!ENTITY menu-statistic-lvplanung.label "HTML"> <!ENTITY menu-statistic-lvplanung.label "HTML">
<!ENTITY menu-statistic-lvplanung.accesskey "H"> <!ENTITY menu-statistic-lvplanung.accesskey "H">
<!ENTITY menu-statistic-lvplanungexcel.key "E"> <!ENTITY menu-statistic-lvplanungexcel.key "E">
<!ENTITY menu-statistic-lvplanungexcel.label "EXCEL"> <!ENTITY menu-statistic-lvplanungexcel.label "EXCEL">
<!ENTITY menu-statistic-lvplanungexcel.accesskey "E"> <!ENTITY menu-statistic-lvplanungexcel.accesskey "E">
<!ENTITY menu-statistic-lehrauftragsliste.key "A"> <!ENTITY menu-statistic-lehrauftragsliste.key "A">
<!ENTITY menu-statistic-lehrauftragsliste.label "Lehrauftragsliste"> <!ENTITY menu-statistic-lehrauftragsliste.label "Lehrauftragsliste">
<!ENTITY menu-statistic-lehrauftragsliste.accesskey "A"> <!ENTITY menu-statistic-lehrauftragsliste.accesskey "A">
<!ENTITY menu-statistic-projektarbeit.key "P"> <!ENTITY menu-statistic-projektarbeit.key "P">
<!ENTITY menu-statistic-projektarbeit.label "Projektarbeit"> <!ENTITY menu-statistic-projektarbeit.label "Projektarbeit">
<!ENTITY menu-statistic-projektarbeit.accesskey "P"> <!ENTITY menu-statistic-projektarbeit.accesskey "P">
<!ENTITY menu-statistic-abschlusspruefung.key "B"> <!ENTITY menu-statistic-abschlusspruefung.key "B">
<!ENTITY menu-statistic-abschlusspruefung.label "Abschlussprüfung"> <!ENTITY menu-statistic-abschlusspruefung.label "Abschlussprüfung">
<!ENTITY menu-statistic-abschlusspruefung.accesskey "B"> <!ENTITY menu-statistic-abschlusspruefung.accesskey "B">
<!ENTITY menu-statistic-fehlendedokumente.key "D"> <!ENTITY menu-statistic-fehlendedokumente.key "D">
<!ENTITY menu-statistic-fehlendedokumente.label "Fehlende Dokumente"> <!ENTITY menu-statistic-fehlendedokumente.label "Fehlende Dokumente">
<!ENTITY menu-statistic-fehlendedokumente.accesskey "D"> <!ENTITY menu-statistic-fehlendedokumente.accesskey "D">
<!ENTITY menu-statistic-subnotenspiegel.key "N"> <!ENTITY menu-statistic-subnotenspiegel.key "N">
<!ENTITY menu-statistic-subnotenspiegel.label "Notenspiegel"> <!ENTITY menu-statistic-subnotenspiegel.label "Notenspiegel">
<!ENTITY menu-statistic-subnotenspiegel.accesskey "N"> <!ENTITY menu-statistic-subnotenspiegel.accesskey "N">
<!ENTITY menu-statistic-notenspiegel-excel.key "E"> <!ENTITY menu-statistic-notenspiegel-excel.key "E">
<!ENTITY menu-statistic-notenspiegel-excel.label "Notenspiegel EXCEL"> <!ENTITY menu-statistic-notenspiegel-excel.label "Notenspiegel EXCEL">
<!ENTITY menu-statistic-notenspiegel-excel.accesskey "E"> <!ENTITY menu-statistic-notenspiegel-excel.accesskey "E">
<!ENTITY menu-statistic-notenspiegel.key "H"> <!ENTITY menu-statistic-notenspiegel.key "H">
<!ENTITY menu-statistic-notenspiegel.label "Notenspiegel HTML"> <!ENTITY menu-statistic-notenspiegel.label "Notenspiegel HTML">
<!ENTITY menu-statistic-notenspiegel.accesskey "H"> <!ENTITY menu-statistic-notenspiegel.accesskey "H">
<!ENTITY menu-statistic-substatistik-bewerberstatistik.label "BewerberInnenstatistik"> <!ENTITY menu-statistic-substatistik-bewerberstatistik.label "BewerberInnenstatistik">
<!ENTITY menu-statistic-substatistik-bewerberstatistik.accesskey "B"> <!ENTITY menu-statistic-substatistik-bewerberstatistik.accesskey "B">
<!ENTITY menu-statistic-bewerberstatistik-html.key "H"> <!ENTITY menu-statistic-bewerberstatistik-html.key "H">
<!ENTITY menu-statistic-bewerberstatistik-html.label "HTML"> <!ENTITY menu-statistic-bewerberstatistik-html.label "HTML">
<!ENTITY menu-statistic-bewerberstatistik-html.accesskey "H"> <!ENTITY menu-statistic-bewerberstatistik-html.accesskey "H">
<!ENTITY menu-statistic-bewerberstatistik-excel.key "E"> <!ENTITY menu-statistic-bewerberstatistik-excel.key "E">
<!ENTITY menu-statistic-bewerberstatistik-excel.label "EXCEL"> <!ENTITY menu-statistic-bewerberstatistik-excel.label "EXCEL">
<!ENTITY menu-statistic-bewerberstatistik-excel.accesskey "E"> <!ENTITY menu-statistic-bewerberstatistik-excel.accesskey "E">
<!ENTITY menu-statistic-substatistik.key "S"> <!ENTITY menu-statistic-substatistik.key "S">
<!ENTITY menu-statistic-substatistik.label "Statistik"> <!ENTITY menu-statistic-substatistik.label "Statistik">
<!ENTITY menu-statistic-substatistik.accesskey "S"> <!ENTITY menu-statistic-substatistik.accesskey "S">
<!ENTITY menu-statistic-substatistik-studentenprosemester.label "Studierende/Semester"> <!ENTITY menu-statistic-substatistik-studentenprosemester.label "Studierende/Semester">
<!ENTITY menu-statistic-substatistik-studentenprosemester.accesskey "S"> <!ENTITY menu-statistic-substatistik-studentenprosemester.accesskey "S">
<!ENTITY menu-statistic-substatistik-studentenprosemester-excel.key "E"> <!ENTITY menu-statistic-substatistik-studentenprosemester-excel.key "E">
<!ENTITY menu-statistic-substatistik-studentenprosemester-excel.label "EXCEL"> <!ENTITY menu-statistic-substatistik-studentenprosemester-excel.label "EXCEL">
<!ENTITY menu-statistic-substatistik-studentenprosemester-excel.accesskey "E"> <!ENTITY menu-statistic-substatistik-studentenprosemester-excel.accesskey "E">
<!ENTITY menu-statistic-substatistik-studentenprosemester-html.key "H"> <!ENTITY menu-statistic-substatistik-studentenprosemester-html.key "H">
<!ENTITY menu-statistic-substatistik-studentenprosemester-html.label "HTML"> <!ENTITY menu-statistic-substatistik-studentenprosemester-html.label "HTML">
<!ENTITY menu-statistic-substatistik-studentenprosemester-html.accesskey "H"> <!ENTITY menu-statistic-substatistik-studentenprosemester-html.accesskey "H">
<!ENTITY menu-statistic-substatistik-alvsstatistik.label "ALVS-Statistik"> <!ENTITY menu-statistic-substatistik-alvsstatistik.label "ALVS-Statistik">
<!ENTITY menu-statistic-substatistik-alvsstatistik.accesskey "A"> <!ENTITY menu-statistic-substatistik-alvsstatistik.accesskey "A">
<!ENTITY menu-statistic-substatistik-alvsstatistik-excel.key "E"> <!ENTITY menu-statistic-substatistik-alvsstatistik-excel.key "E">
<!ENTITY menu-statistic-substatistik-alvsstatistik-excel.label "EXCEL"> <!ENTITY menu-statistic-substatistik-alvsstatistik-excel.label "EXCEL">
<!ENTITY menu-statistic-substatistik-alvsstatistik-excel.accesskey "E"> <!ENTITY menu-statistic-substatistik-alvsstatistik-excel.accesskey "E">
<!ENTITY menu-statistic-substatistik-alvsstatistik-html.key "H"> <!ENTITY menu-statistic-substatistik-alvsstatistik-html.key "H">
<!ENTITY menu-statistic-substatistik-alvsstatistik-html.label "HTML"> <!ENTITY menu-statistic-substatistik-alvsstatistik-html.label "HTML">
<!ENTITY menu-statistic-substatistik-alvsstatistik-html.accesskey "H"> <!ENTITY menu-statistic-substatistik-alvsstatistik-html.accesskey "H">
<!ENTITY menu-statistic-substatistik-lvplanunggesamtsj.key "L"> <!ENTITY menu-statistic-substatistik-lvplanunggesamtsj.key "L">
<!ENTITY menu-statistic-substatistik-lvplanunggesamtsj.label "LV-Planung Gesamt SJ"> <!ENTITY menu-statistic-substatistik-lvplanunggesamtsj.label "LV-Planung Gesamt SJ">
<!ENTITY menu-statistic-substatistik-lvplanunggesamtsj.accesskey "L"> <!ENTITY menu-statistic-substatistik-lvplanunggesamtsj.accesskey "L">
<!ENTITY menu-statistic-substatistik-lvplanunggesamtsj-excel.key "E"> <!ENTITY menu-statistic-substatistik-lvplanunggesamtsj-excel.key "E">
<!ENTITY menu-statistic-substatistik-lvplanunggesamtsj-excel.label "EXCEL"> <!ENTITY menu-statistic-substatistik-lvplanunggesamtsj-excel.label "EXCEL">
<!ENTITY menu-statistic-substatistik-lvplanunggesamtsj-excel.accesskey "E"> <!ENTITY menu-statistic-substatistik-lvplanunggesamtsj-excel.accesskey "E">
<!ENTITY menu-statistic-abgaengerstatistik.key "A"> <!ENTITY menu-statistic-abgaengerstatistik.key "A">
<!ENTITY menu-statistic-abgaengerstatistik.label "AbgängerInnenstatistik"> <!ENTITY menu-statistic-abgaengerstatistik.label "AbgängerInnenstatistik">
<!ENTITY menu-statistic-abgaengerstatistik.accesskey "A"> <!ENTITY menu-statistic-abgaengerstatistik.accesskey "A">
<!ENTITY menu-statistic-absolventenstatistik.key "B"> <!ENTITY menu-statistic-absolventenstatistik.key "B">
<!ENTITY menu-statistic-absolventenstatistik.label "AbsolventInnenstatistik"> <!ENTITY menu-statistic-absolventenstatistik.label "AbsolventInnenstatistik">
<!ENTITY menu-statistic-absolventenstatistik.accesskey "B"> <!ENTITY menu-statistic-absolventenstatistik.accesskey "B">
<!ENTITY menu-statistic-absolventenzahlen.key "Z"> <!ENTITY menu-statistic-absolventenzahlen.key "Z">
<!ENTITY menu-statistic-absolventenzahlen.label "AbsolventInnenzahlen"> <!ENTITY menu-statistic-absolventenzahlen.label "AbsolventInnenzahlen">
<!ENTITY menu-statistic-absolventenzahlen.accesskey "Z"> <!ENTITY menu-statistic-absolventenzahlen.accesskey "Z">
<!ENTITY menu-statistic-lektorenstatistik.key "L"> <!ENTITY menu-statistic-lektorenstatistik.key "L">
<!ENTITY menu-statistic-lektorenstatistik.label "LektorInnenstatistik"> <!ENTITY menu-statistic-lektorenstatistik.label "LektorInnenstatistik">
<!ENTITY menu-statistic-lektorenstatistik.accesskey "L"> <!ENTITY menu-statistic-lektorenstatistik.accesskey "L">
<!ENTITY menu-statistic-studentenstatistik.key "S"> <!ENTITY menu-statistic-studentenstatistik.key "S">
<!ENTITY menu-statistic-studentenstatistik.label "Studierendenstatistik"> <!ENTITY menu-statistic-studentenstatistik.label "Studierendenstatistik">
<!ENTITY menu-statistic-studentenstatistik.accesskey "S"> <!ENTITY menu-statistic-studentenstatistik.accesskey "S">
<!ENTITY menu-statistic-mitarbeiterstatistik.key "M"> <!ENTITY menu-statistic-mitarbeiterstatistik.key "M">
<!ENTITY menu-statistic-mitarbeiterstatistik.label "MitarbeiterInnenstatistik"> <!ENTITY menu-statistic-mitarbeiterstatistik.label "MitarbeiterInnenstatistik">
<!ENTITY menu-statistic-mitarbeiterstatistik.accesskey "M"> <!ENTITY menu-statistic-mitarbeiterstatistik.accesskey "M">
<!ENTITY menu-statistic-studentendetails.key "P"> <!ENTITY menu-statistic-studentendetails.key "P">
<!ENTITY menu-statistic-studentendetails.label "Personendetails Excel"> <!ENTITY menu-statistic-studentendetails.label "Personendetails Excel">
<!ENTITY menu-statistic-studentendetails.accesskey "P"> <!ENTITY menu-statistic-studentendetails.accesskey "P">
<!ENTITY menu-statistic-stromanalyse.key "S"> <!ENTITY menu-statistic-stromanalyse.key "S">
<!ENTITY menu-statistic-stromanalyse.label "Stromanalyse"> <!ENTITY menu-statistic-stromanalyse.label "Stromanalyse">
<!ENTITY menu-statistic-stromanalyse.accesskey "S"> <!ENTITY menu-statistic-stromanalyse.accesskey "S">
<!-- Dokumente --> <!-- Dokumente -->
<!ENTITY menu-dokumente.label "Dokumente"> <!ENTITY menu-dokumente.label "Dokumente">
<!ENTITY menu-dokumente.accesskey "D"> <!ENTITY menu-dokumente.accesskey "D">
<!ENTITY menu-dokumente-inskriptionsbestaetigung.key "I"> <!ENTITY menu-dokumente-inskriptionsbestaetigung.key "I">
<!ENTITY menu-dokumente-inskriptionsbestaetigung.label "Inskriptionsbestätigung"> <!ENTITY menu-dokumente-inskriptionsbestaetigung.label "Inskriptionsbestätigung">
<!ENTITY menu-dokumente-inskriptionsbestaetigung.accesskey "I"> <!ENTITY menu-dokumente-inskriptionsbestaetigung.accesskey "I">
<!ENTITY menu-dokumente-zeugnis.key "Z"> <!ENTITY menu-dokumente-zeugnis.key "Z">
<!ENTITY menu-dokumente-zeugnis.label "Zeugnis Deutsch"> <!ENTITY menu-dokumente-zeugnis.label "Zeugnis Deutsch">
<!ENTITY menu-dokumente-zeugnis.accesskey "Z"> <!ENTITY menu-dokumente-zeugnis.accesskey "Z">
<!ENTITY menu-dokumente-zeugniseng.key "E"> <!ENTITY menu-dokumente-zeugniseng.key "E">
<!ENTITY menu-dokumente-zeugniseng.label "Zeugnis Englisch"> <!ENTITY menu-dokumente-zeugniseng.label "Zeugnis Englisch">
<!ENTITY menu-dokumente-zeugniseng.accesskey "E"> <!ENTITY menu-dokumente-zeugniseng.accesskey "E">
<!ENTITY menu-dokumente-sammelzeugnis.key "A"> <!ENTITY menu-dokumente-sammelzeugnis.key "A">
<!ENTITY menu-dokumente-sammelzeugnis.label "Sammelzeugnis"> <!ENTITY menu-dokumente-sammelzeugnis.label "Sammelzeugnis">
<!ENTITY menu-dokumente-sammelzeugnis.accesskey "A"> <!ENTITY menu-dokumente-sammelzeugnis.accesskey "A">
<!ENTITY menu-dokumente-diplsupplement.key "S"> <!ENTITY menu-dokumente-diplsupplement.key "S">
<!ENTITY menu-dokumente-diplsupplement.label "Diploma Supplement"> <!ENTITY menu-dokumente-diplsupplement.label "Diploma Supplement">
<!ENTITY menu-dokumente-diplsupplement.accesskey "S"> <!ENTITY menu-dokumente-diplsupplement.accesskey "S">
<!ENTITY menu-dokumente-ausbildungsvertrag.key "A"> <!ENTITY menu-dokumente-ausbildungsvertrag.key "A">
<!ENTITY menu-dokumente-ausbildungsvertrag.label "Ausbildungsvertrag Deutsch"> <!ENTITY menu-dokumente-ausbildungsvertrag.label "Ausbildungsvertrag Deutsch">
<!ENTITY menu-dokumente-ausbildungsvertrag.accesskey "A"> <!ENTITY menu-dokumente-ausbildungsvertrag.accesskey "A">
<!ENTITY menu-dokumente-ausbildungsvertrag_englisch.key "U"> <!ENTITY menu-dokumente-ausbildungsvertrag_englisch.key "U">
<!ENTITY menu-dokumente-ausbildungsvertrag_englisch.label "Ausbildungsvertrag Englisch"> <!ENTITY menu-dokumente-ausbildungsvertrag_englisch.label "Ausbildungsvertrag Englisch">
<!ENTITY menu-dokumente-ausbildungsvertrag_englisch.accesskey "U"> <!ENTITY menu-dokumente-ausbildungsvertrag_englisch.accesskey "U">
<!ENTITY menu-dokumente-studienerfolg.label "Studienerfolgsbestaetigung Deutsch"> <!ENTITY menu-dokumente-studienerfolg.label "Studienerfolgsbestaetigung Deutsch">
<!ENTITY menu-dokumente-studienerfolg.accesskey "E"> <!ENTITY menu-dokumente-studienerfolg.accesskey "E">
<!ENTITY menu-dokumente-studienerfolg-normal.label "Normal"> <!ENTITY menu-dokumente-studienerfolg-normal.label "Normal">
<!ENTITY menu-dokumente-studienerfolg-normal.accesskey "N"> <!ENTITY menu-dokumente-studienerfolg-normal.accesskey "N">
<!ENTITY menu-dokumente-studienerfolg-finanzamt.label "Finanzamt"> <!ENTITY menu-dokumente-studienerfolg-finanzamt.label "Finanzamt">
<!ENTITY menu-dokumente-studienerfolg-finanzamt.accesskey "F"> <!ENTITY menu-dokumente-studienerfolg-finanzamt.accesskey "F">
<!ENTITY menu-dokumente-studienerfolg-allesemester.label "Alle Semester"> <!ENTITY menu-dokumente-studienerfolg-allesemester.label "Alle Semester">
<!ENTITY menu-dokumente-studienerfolg-allesemester-normal.label "Normal"> <!ENTITY menu-dokumente-studienerfolg-allesemester-normal.label "Normal">
<!ENTITY menu-dokumente-studienerfolg-allesemester-normal.accesskey "N"> <!ENTITY menu-dokumente-studienerfolg-allesemester-normal.accesskey "N">
<!ENTITY menu-dokumente-studienerfolg-allesemester-finanzamt.label "Finanzamt"> <!ENTITY menu-dokumente-studienerfolg-allesemester-finanzamt.label "Finanzamt">
<!ENTITY menu-dokumente-studienerfolg-allesemester-finanzamt.accesskey "F"> <!ENTITY menu-dokumente-studienerfolg-allesemester-finanzamt.accesskey "F">
<!ENTITY menu-dokumente-studienerfolgeng.label "Studienerfolgsbestaetigung Englisch"> <!ENTITY menu-dokumente-studienerfolgeng.label "Studienerfolgsbestaetigung Englisch">
<!ENTITY menu-dokumente-studienerfolgeng.accesskey "E"> <!ENTITY menu-dokumente-studienerfolgeng.accesskey "E">
<!ENTITY menu-dokumente-studienerfolgeng-normal.label "Normal"> <!ENTITY menu-dokumente-studienerfolgeng-normal.label "Normal">
<!ENTITY menu-dokumente-studienerfolgeng-normal.accesskey "N"> <!ENTITY menu-dokumente-studienerfolgeng-normal.accesskey "N">
<!ENTITY menu-dokumente-studienerfolgeng-finanzamt.label "Finanzamt"> <!ENTITY menu-dokumente-studienerfolgeng-finanzamt.label "Finanzamt">
<!ENTITY menu-dokumente-studienerfolgeng-finanzamt.accesskey "F"> <!ENTITY menu-dokumente-studienerfolgeng-finanzamt.accesskey "F">
<!ENTITY menu-dokumente-studienerfolgeng-allesemester.label "Alle Semester"> <!ENTITY menu-dokumente-studienerfolgeng-allesemester.label "Alle Semester">
<!ENTITY menu-dokumente-studienerfolgeng-allesemester-normal.label "Normal"> <!ENTITY menu-dokumente-studienerfolgeng-allesemester-normal.label "Normal">
<!ENTITY menu-dokumente-studienerfolgeng-allesemester-normal.accesskey "N"> <!ENTITY menu-dokumente-studienerfolgeng-allesemester-normal.accesskey "N">
<!ENTITY menu-dokumente-studienerfolgeng-allesemester-finanzamt.label "Finanzamt"> <!ENTITY menu-dokumente-studienerfolgeng-allesemester-finanzamt.label "Finanzamt">
<!ENTITY menu-dokumente-studienerfolgeng-allesemester-finanzamt.accesskey "F"> <!ENTITY menu-dokumente-studienerfolgeng-allesemester-finanzamt.accesskey "F">
<!ENTITY menu-dokumente-accountinfoblatt.label "Account InfoBlatt"> <!ENTITY menu-dokumente-accountinfoblatt.label "Account InfoBlatt">
<!ENTITY menu-dokumente-accountinfoblatt.accesskey "A"> <!ENTITY menu-dokumente-accountinfoblatt.accesskey "A">
<!ENTITY menu-dokumente-zutrittskarte.label "Zutrittskarte"> <!ENTITY menu-dokumente-zutrittskarte.label "Zutrittskarte">
<!ENTITY menu-dokumente-zutrittskarte.accesskey "Z"> <!ENTITY menu-dokumente-zutrittskarte.accesskey "Z">
<!ENTITY menu-dokumente-studienblatt.label "Studienblatt Deutsch"> <!ENTITY menu-dokumente-studienblatt.label "Studienblatt Deutsch">
<!ENTITY menu-dokumente-studienblatt.accesskey "B"> <!ENTITY menu-dokumente-studienblatt.accesskey "B">
<!ENTITY menu-dokumente-studienblatt_englisch.label "Studienblatt Englisch"> <!ENTITY menu-dokumente-studienblatt_englisch.label "Studienblatt Englisch">
<!ENTITY menu-dokumente-studienblatt_englisch.accesskey "T"> <!ENTITY menu-dokumente-studienblatt_englisch.accesskey "T">
<!ENTITY menu-dokumente-pruefungsprotokoll.label "Prüfungsprotokoll 1 (Alte Version)"> <!ENTITY menu-dokumente-pruefungsprotokoll.label "Prüfungsprotokoll 1 (Alte Version)">
<!ENTITY menu-dokumente-pruefungsprotokoll.accesskey "P"> <!ENTITY menu-dokumente-pruefungsprotokoll.accesskey "P">
<!ENTITY menu-dokumente-pruefungsprotokoll_englisch.label "Prüfungsprotokoll Englisch 1 (Alte Version)"> <!ENTITY menu-dokumente-pruefungsprotokoll_englisch.label "Prüfungsprotokoll Englisch 1 (Alte Version)">
<!ENTITY menu-dokumente-pruefungsprotokoll_englisch.accesskey "P"> <!ENTITY menu-dokumente-pruefungsprotokoll_englisch.accesskey "P">
<!ENTITY menu-dokumente-pruefungsprotokoll2.label "Prüfungsprotokoll Deutsch"> <!ENTITY menu-dokumente-pruefungsprotokoll2.label "Prüfungsprotokoll Deutsch">
<!ENTITY menu-dokumente-pruefungsprotokoll2.accesskey "P"> <!ENTITY menu-dokumente-pruefungsprotokoll2.accesskey "P">
<!ENTITY menu-dokumente-pruefungsprotokoll2_englisch.label "Prüfungsprotokoll Englisch"> <!ENTITY menu-dokumente-pruefungsprotokoll2_englisch.label "Prüfungsprotokoll Englisch">
<!ENTITY menu-dokumente-pruefungsprotokoll2_englisch.accesskey "P"> <!ENTITY menu-dokumente-pruefungsprotokoll2_englisch.accesskey "P">
<!ENTITY menu-dokumente-pruefungszeugnis.label "Prüfungszeugnis Deutsch"> <!ENTITY menu-dokumente-pruefungszeugnis.label "Prüfungszeugnis Deutsch">
<!ENTITY menu-dokumente-pruefungszeugnis.accesskey "Z"> <!ENTITY menu-dokumente-pruefungszeugnis.accesskey "Z">
<!ENTITY menu-dokumente-pruefungszeugnis_englisch.label "Prüfungszeugnis Englisch"> <!ENTITY menu-dokumente-pruefungszeugnis_englisch.label "Prüfungszeugnis Englisch">
<!ENTITY menu-dokumente-pruefungszeugnis_englisch.accesskey "G"> <!ENTITY menu-dokumente-pruefungszeugnis_englisch.accesskey "G">
<!ENTITY menu-dokumente-urkunde_deutsch.label "Urkunde Deutsch"> <!ENTITY menu-dokumente-urkunde_deutsch.label "Urkunde Deutsch">
<!ENTITY menu-dokumente-urkunde_deutsch.accesskey "D"> <!ENTITY menu-dokumente-urkunde_deutsch.accesskey "D">
<!ENTITY menu-dokumente-urkunde_englisch.label "Urkunde Englisch"> <!ENTITY menu-dokumente-urkunde_englisch.label "Urkunde Englisch">
<!ENTITY menu-dokumente-urkunde_englisch.accesskey "E"> <!ENTITY menu-dokumente-urkunde_englisch.accesskey "E">
<!-- CIS --> <!-- CIS -->
<!ENTITY menu-cis.label "CIS"> <!ENTITY menu-cis.label "CIS">
<!ENTITY menu-cis.accesskey "C"> <!ENTITY menu-cis.accesskey "C">
<!ENTITY menu-cis-studienplan.key "P"> <!ENTITY menu-cis-studienplan.key "P">
<!ENTITY menu-cis-studienplan.label "Studienplan"> <!ENTITY menu-cis-studienplan.label "Studienplan">
<!ENTITY menu-cis-studienplan.accesskey "P"> <!ENTITY menu-cis-studienplan.accesskey "P">
<!ENTITY menu-cis-notenliste.key "N"> <!ENTITY menu-cis-notenliste.key "N">
<!ENTITY menu-cis-notenliste.label "Notenliste"> <!ENTITY menu-cis-notenliste.label "Notenliste">
<!ENTITY menu-cis-notenliste.accesskey "N"> <!ENTITY menu-cis-notenliste.accesskey "N">
<!-- Extras --> <!-- Extras -->
<!ENTITY menu-extras.label "Extras"> <!ENTITY menu-extras.label "Extras">
<!ENTITY menu-extras.accesskey "X"> <!ENTITY menu-extras.accesskey "X">
<!ENTITY menu-extras-reihungstest.key "R"> <!ENTITY menu-extras-reihungstest.key "R">
<!ENTITY menu-extras-reihungstest.label "Reihungstestverwaltung"> <!ENTITY menu-extras-reihungstest.label "Reihungstestverwaltung">
<!ENTITY menu-extras-reihungstest.accesskey "R"> <!ENTITY menu-extras-reihungstest.accesskey "R">
<!ENTITY menu-extras-firma.key "F"> <!ENTITY menu-extras-firma.key "F">
<!ENTITY menu-extras-firma.label "Firmenverwaltung"> <!ENTITY menu-extras-firma.label "Firmenverwaltung">
<!ENTITY menu-extras-firma.accesskey "F"> <!ENTITY menu-extras-firma.accesskey "F">
<!ENTITY menu-extras-lvverwaltung.key "L"> <!ENTITY menu-extras-lvverwaltung.key "L">
<!ENTITY menu-extras-lvverwaltung.label "Lehrveranstaltungsverwaltung"> <!ENTITY menu-extras-lvverwaltung.label "Lehrveranstaltungsverwaltung">
<!ENTITY menu-extras-lvverwaltung.accesskey "L"> <!ENTITY menu-extras-lvverwaltung.accesskey "L">
<!ENTITY menu-extras-studienordnung.key "S"> <!ENTITY menu-extras-studienordnung.key "S">
<!ENTITY menu-extras-studienordnung.label "Studienordnung"> <!ENTITY menu-extras-studienordnung.label "Studienordnung">
<!ENTITY menu-extras-studienordnung.accesskey "S"> <!ENTITY menu-extras-studienordnung.accesskey "S">
<!ENTITY menu-extras-projektarbeitsbenotung.key "P"> <!ENTITY menu-extras-projektarbeitsbenotung.key "P">
<!ENTITY menu-extras-projektarbeitsbenotung.label "Projektarbeitsbenotung"> <!ENTITY menu-extras-projektarbeitsbenotung.label "Projektarbeitsbenotung">
<!ENTITY menu-extras-projektarbeitsbenotung.accesskey "P"> <!ENTITY menu-extras-projektarbeitsbenotung.accesskey "P">
<!ENTITY menu-extras-gruppenverwaltung.key "G"> <!ENTITY menu-extras-gruppenverwaltung.key "G">
<!ENTITY menu-extras-gruppenverwaltung.label "Gruppenverwaltung"> <!ENTITY menu-extras-gruppenverwaltung.label "Gruppenverwaltung">
<!ENTITY menu-extras-gruppenverwaltung.accesskey "G"> <!ENTITY menu-extras-gruppenverwaltung.accesskey "G">
<!ENTITY menu-extras-lehrfachverwaltung.key "E"> <!ENTITY menu-extras-lehrfachverwaltung.key "E">
<!ENTITY menu-extras-lehrfachverwaltung.label "Lehrfachverwaltung"> <!ENTITY menu-extras-lehrfachverwaltung.label "Lehrfachverwaltung">
<!ENTITY menu-extras-lehrfachverwaltung.accesskey "E"> <!ENTITY menu-extras-lehrfachverwaltung.accesskey "E">
<!ENTITY menu-extras-lektorenzuordnunginstitute.key "L"> <!ENTITY menu-extras-lektorenzuordnunginstitute.key "L">
<!ENTITY menu-extras-lektorenzuordnunginstitute.label "Lektorenzuordnung-Institute"> <!ENTITY menu-extras-lektorenzuordnunginstitute.label "Lektorenzuordnung-Institute">
<!ENTITY menu-extras-lektorenzuordnunginstitute.accesskey "L"> <!ENTITY menu-extras-lektorenzuordnunginstitute.accesskey "L">
<!ENTITY menu-extras-preinteressentenuebernahme.key "I"> <!ENTITY menu-extras-preinteressentenuebernahme.key "I">
<!ENTITY menu-extras-preinteressentenuebernahme.label "Preinteressenten übernehmen"> <!ENTITY menu-extras-preinteressentenuebernahme.label "Preinteressenten übernehmen">
<!ENTITY menu-extras-preinteressentenuebernahme.accesskey "I"> <!ENTITY menu-extras-preinteressentenuebernahme.accesskey "I">
<!ENTITY menu-extras-projektarbeitsabgaben.key "A"> <!ENTITY menu-extras-projektarbeitsabgaben.key "A">
<!ENTITY menu-extras-projektarbeitsabgaben.label "Projektarbeitstermine"> <!ENTITY menu-extras-projektarbeitsabgaben.label "Projektarbeitstermine">
<!ENTITY menu-extras-projektarbeitsabgaben.accesskey "A"> <!ENTITY menu-extras-projektarbeitsabgaben.accesskey "A">
<!-- BIS --> <!ENTITY menu-extras-aliquote_reduktion.key "Q">
<!ENTITY menu-bis.label "BIS"> <!ENTITY menu-extras-aliquote_reduktion.label "Aliquote Reduktion">
<!ENTITY menu-bis.accesskey "I"> <!ENTITY menu-extras-aliquote_reduktion.accesskey "Q">
<!ENTITY menu-bis.accesskey "I">
<!-- BIS -->
<!ENTITY menu-bis-mitarbeiter.key "M"> <!ENTITY menu-bis.label "BIS">
<!ENTITY menu-bis-mitarbeiter.label "Mitarbeiter"> <!ENTITY menu-bis.accesskey "I">
<!ENTITY menu-bis-mitarbeiter.accesskey "M"> <!ENTITY menu-bis.accesskey "I">
<!ENTITY menu-bis-mitarbeiter-import.key "I"> <!ENTITY menu-bis-mitarbeiter.key "M">
<!ENTITY menu-bis-mitarbeiter-import.label "Import"> <!ENTITY menu-bis-mitarbeiter.label "Mitarbeiter">
<!ENTITY menu-bis-mitarbeiter-import.accesskey "I"> <!ENTITY menu-bis-mitarbeiter.accesskey "M">
<!ENTITY menu-bis-mitarbeiter-export.key "E"> <!ENTITY menu-bis-mitarbeiter-import.key "I">
<!ENTITY menu-bis-mitarbeiter-export.label "Meldung generieren"> <!ENTITY menu-bis-mitarbeiter-import.label "Import">
<!ENTITY menu-bis-mitarbeiter-export.accesskey "E"> <!ENTITY menu-bis-mitarbeiter-import.accesskey "I">
<!ENTITY menu-bis-mitarbeiter-checkverwendung.key "V"> <!ENTITY menu-bis-mitarbeiter-export.key "E">
<!ENTITY menu-bis-mitarbeiter-checkverwendung.label "checkVerwendung"> <!ENTITY menu-bis-mitarbeiter-export.label "Meldung generieren">
<!ENTITY menu-bis-mitarbeiter-checkverwendung.accesskey "V"> <!ENTITY menu-bis-mitarbeiter-export.accesskey "E">
<!ENTITY menu-bis-mitarbeiter-checkfunktion.key "F"> <!ENTITY menu-bis-mitarbeiter-checkverwendung.key "V">
<!ENTITY menu-bis-mitarbeiter-checkfunktion.label "checkFunktion"> <!ENTITY menu-bis-mitarbeiter-checkverwendung.label "checkVerwendung">
<!ENTITY menu-bis-mitarbeiter-checkfunktion.accesskey "F"> <!ENTITY menu-bis-mitarbeiter-checkverwendung.accesskey "V">
<!ENTITY menu-bis-studenten.key "S"> <!ENTITY menu-bis-mitarbeiter-checkfunktion.key "F">
<!ENTITY menu-bis-studenten.label "Studenten"> <!ENTITY menu-bis-mitarbeiter-checkfunktion.label "checkFunktion">
<!ENTITY menu-bis-studenten.accesskey "S"> <!ENTITY menu-bis-mitarbeiter-checkfunktion.accesskey "F">
<!ENTITY menu-bis-studenten-export.key "E"> <!ENTITY menu-bis-studenten.key "S">
<!ENTITY menu-bis-studenten-export.label "Meldung generieren"> <!ENTITY menu-bis-studenten.label "Studenten">
<!ENTITY menu-bis-studenten-export.accesskey "E"> <!ENTITY menu-bis-studenten.accesskey "S">
<!ENTITY menu-bis-studenten-checkstudent.key "P"> <!ENTITY menu-bis-studenten-export.key "E">
<!ENTITY menu-bis-studenten-checkstudent.label "Plausibilitaetspruefung"> <!ENTITY menu-bis-studenten-export.label "Meldung generieren">
<!ENTITY menu-bis-studenten-checkstudent.accesskey "P"> <!ENTITY menu-bis-studenten-export.accesskey "E">
<!-- Hilfe --> <!ENTITY menu-bis-studenten-checkstudent.key "P">
<!ENTITY menu-help.label "Hilfe"> <!ENTITY menu-bis-studenten-checkstudent.label "Plausibilitaetspruefung">
<!ENTITY menu-help.accesskey "H"> <!ENTITY menu-bis-studenten-checkstudent.accesskey "P">
<!ENTITY menu-help-about.key "U"> <!-- Hilfe -->
<!ENTITY menu-help-about.label "Über FHComplete"> <!ENTITY menu-help.label "Hilfe">
<!ENTITY menu-help-about.accesskey "U"> <!ENTITY menu-help.accesskey "H">
<!ENTITY menu-help-manual.key "H"> <!ENTITY menu-help-about.key "U">
<!ENTITY menu-help-manual.label "DokuWiki FHComplete"> <!ENTITY menu-help-about.label "Über FHComplete">
<!ENTITY menu-help-manual.accesskey "H"> <!ENTITY menu-help-about.accesskey "U">
<!ENTITY menu-help-todo.key "T"> <!ENTITY menu-help-manual.key "H">
<!ENTITY menu-help-todo.label "Mantis Bugtracker"> <!ENTITY menu-help-manual.label "DokuWiki FHComplete">
<!ENTITY menu-help-todo.accesskey "T"> <!ENTITY menu-help-manual.accesskey "H">
<!ENTITY tab-prestudent-aufnahme.label "Reihungstest"> <!ENTITY menu-help-todo.key "T">
<!ENTITY tab-prestudent-aufnahme.anmeldung "Anmeldung zum Reihungstest am"> <!ENTITY menu-help-todo.label "Mantis Bugtracker">
<!ENTITY tab-prestudent-aufnahme.absolviert "Zum Reihungstest angetreten"> <!ENTITY menu-help-todo.accesskey "T">
<!ENTITY tab-prestudent-aufnahme.seminar "Reihungstest">
<!ENTITY tab-prestudent-aufnahme.label "Reihungstest">
<!ENTITY tab-prestudent-aufnahme.anmeldung "Anmeldung zum Reihungstest am">
<!ENTITY tab-prestudent-aufnahme.absolviert "Zum Reihungstest angetreten">
<!ENTITY tab-prestudent-aufnahme.seminar "Reihungstest">
+11 -7
View File
@@ -500,12 +500,10 @@ $error_msg='';
// Studierende holen, die nicht im Verteiler sind // Studierende holen, die nicht im Verteiler sind
echo '<BR>'; echo '<BR>';
$sql_query="SELECT uid, tbl_gruppe.gruppe_kurzbz $sql_query="SELECT uid
FROM FROM
public.tbl_benutzerfunktion public.tbl_benutzerfunktion
JOIN public.tbl_benutzer USING(uid) JOIN public.tbl_benutzer USING(uid)
JOIN public.tbl_studiengang USING(oe_kurzbz)
JOIN public.tbl_gruppe ON(tbl_gruppe.studiengang_kz=tbl_studiengang.studiengang_kz AND gruppe_kurzbz = 'TW_HSV')
WHERE WHERE
funktion_kurzbz='hsv' funktion_kurzbz='hsv'
AND tbl_benutzer.aktiv AND AND tbl_benutzer.aktiv AND
@@ -519,10 +517,10 @@ $error_msg='';
$error_msg.=$db->db_last_error(); $error_msg.=$db->db_last_error();
while($row = $db->db_fetch_object($result)) while($row = $db->db_fetch_object($result))
{ {
if($row->gruppe_kurzbz!='') if($row->uid!='')
{ {
setGeneriert($row->gruppe_kurzbz); setGeneriert('TW_HSV');
$sql_query="INSERT INTO public.tbl_benutzergruppe (uid, gruppe_kurzbz, insertamum, insertvon) VALUES ('$row->uid','".mb_strtoupper($row->gruppe_kurzbz)."', now(), 'mlists_generate')"; $sql_query="INSERT INTO public.tbl_benutzergruppe (uid, gruppe_kurzbz, insertamum, insertvon) VALUES (".$db->db_add_param($row->uid).",'TW_HSV', now(), 'mlists_generate')";
if(!$db->db_query($sql_query)) if(!$db->db_query($sql_query))
$error_msg.=$db->db_last_error().$sql_query; $error_msg.=$db->db_last_error().$sql_query;
echo '-'; echo '-';
@@ -584,7 +582,7 @@ $error_msg='';
echo '-'; echo '-';
flush(); flush();
} }
ob_flush();
// Studierende holen, die nicht im Verteiler sind // Studierende holen, die nicht im Verteiler sind
echo '<BR>'; echo '<BR>';
$sql_query="SELECT uid, tbl_gruppe.gruppe_kurzbz $sql_query="SELECT uid, tbl_gruppe.gruppe_kurzbz
@@ -637,6 +635,7 @@ $error_msg='';
echo "<br>Fehler:$sql_query"; echo "<br>Fehler:$sql_query";
flush(); flush();
ob_flush();
setGeneriert('TW_STDV'); setGeneriert('TW_STDV');
$sql_query="SELECT gruppe_kurzbz, uid FROM public.tbl_benutzergruppe $sql_query="SELECT gruppe_kurzbz, uid FROM public.tbl_benutzergruppe
WHERE gruppe_kurzbz='TW_STDV' WHERE gruppe_kurzbz='TW_STDV'
@@ -782,6 +781,7 @@ $error_msg='';
echo "<br>Fehler:$sql_query"; echo "<br>Fehler:$sql_query";
// Studierende holen, die nicht mehr in den Verteiler gehoeren // Studierende holen, die nicht mehr in den Verteiler gehoeren
flush(); flush();
ob_flush();
setGeneriert('TW_JGV'); setGeneriert('TW_JGV');
$sql_query="SELECT gruppe_kurzbz, uid FROM public.tbl_benutzergruppe $sql_query="SELECT gruppe_kurzbz, uid FROM public.tbl_benutzergruppe
WHERE gruppe_kurzbz='TW_JGV' WHERE gruppe_kurzbz='TW_JGV'
@@ -869,6 +869,7 @@ $error_msg='';
// *************************** // ***************************
// TW_STD_M abgleichen. Alle maennlichen Studenten // TW_STD_M abgleichen. Alle maennlichen Studenten
flush(); flush();
ob_flush();
setGeneriert('TW_STD_M'); setGeneriert('TW_STD_M');
echo 'TW_STD_M wird abgeglichen!<br>'; echo 'TW_STD_M wird abgeglichen!<br>';
@@ -915,6 +916,7 @@ $error_msg='';
// *************************** // ***************************
// TW_STD_W abgleichen. Alle weiblichen Studentinnen // TW_STD_W abgleichen. Alle weiblichen Studentinnen
flush(); flush();
ob_flush();
setGeneriert('TW_STD_W'); setGeneriert('TW_STD_W');
echo 'TW_STD_W wird abgeglichen!<br>'; echo 'TW_STD_W wird abgeglichen!<br>';
@@ -965,6 +967,7 @@ $error_msg='';
// Lektoren holen die nicht mehr in den Verteiler gehoeren // Lektoren holen die nicht mehr in den Verteiler gehoeren
echo $mlist_name.' wird abgeglichen!<BR>'; echo $mlist_name.' wird abgeglichen!<BR>';
flush(); flush();
ob_flush();
$sql_query = "SELECT distinct mitarbeiter_uid uid $sql_query = "SELECT distinct mitarbeiter_uid uid
from lehre.tbl_lehrveranstaltung, lehre.tbl_lehreinheit, lehre.tbl_moodle ,campus.vw_lehreinheit from lehre.tbl_lehrveranstaltung, lehre.tbl_lehreinheit, lehre.tbl_moodle ,campus.vw_lehreinheit
@@ -1382,6 +1385,7 @@ $error_msg='';
// Personen holen die nicht mehr in den Verteiler gehoeren // Personen holen die nicht mehr in den Verteiler gehoeren
echo $mlist_name.' wird abgeglichen!<BR>'; echo $mlist_name.' wird abgeglichen!<BR>';
flush(); flush();
ob_flush();
$sql_query="SELECT uid FROM public.tbl_benutzergruppe $sql_query="SELECT uid FROM public.tbl_benutzergruppe
WHERE WHERE
UPPER(gruppe_kurzbz)=UPPER('$mlist_name') AND UPPER(gruppe_kurzbz)=UPPER('$mlist_name') AND
@@ -0,0 +1,117 @@
<?php
/* Copyright (C) 2016 FH 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: Andreas Moik <[email protected]>
*/
require_once(dirname(__FILE__)."/../../include/meta/php_utils.php");
require_once(dirname(__FILE__).'/../../config/vilesci.config.inc.php');
require_once(dirname(__FILE__).'/../../include/globals.inc.php');
require_once(dirname(__FILE__).'/../../include/functions.inc.php');
require_once(dirname(__FILE__).'/../../include/benutzerberechtigung.class.php');
require_once(dirname(__FILE__).'/../../include/berechtigung.class.php');
require_once(dirname(__FILE__).'/../../include/studiengang.class.php');
require_once(dirname(__FILE__).'/../../include/studiensemester.class.php');
require_once(dirname(__FILE__).'/../../include/prestudent.class.php');
require_once(dirname(__FILE__).'/../../include/studienplatz.class.php');
$user = get_uid();
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($user);
if(!isset($_REQUEST["action"]))
die("keine Aktion erhalten");
$action = $_REQUEST["action"];
if(!isset($_REQUEST["studiengang_kz"]))
die("keine studiengang_kz erhalten");
$studiengang_kz = $_REQUEST["studiengang_kz"];
$studiengang = new studiengang($studiengang_kz);
if(!$rechte->isBerechtigt('student/stammdaten', $studiengang->oe_kurzbz, 'suid'))
die('Sie haben keine Berechtigung');
switch($action)
{
case "getStudenten":
if(!isset($_REQUEST["studienplan_id"]))
die("keine studienplan_id erhalten");
$studienplan_id = $_REQUEST["studienplan_id"];
if(!isset($_REQUEST["studiensemester_kurzbz"]))
die("keine studiensemester_kurzbz erhalten");
$studiensemester_kurzbz = $_REQUEST["studiensemester_kurzbz"];
$prestudent = new prestudent();
$return = $prestudent->getAllBewerberFromStudienplanStudsem($studienplan_id, $studiensemester_kurzbz, $studiengang_kz);
returnAJAX(true,json_encode($return));
break;
case "getStudiengaenge":
$studiengang = new studiengang();
$studiengang->getAll();
returnAJAX(true, json_encode($studiengang->result));
break;
case "getStudiensemester":
$studiensemester = new studiensemester();
$studiensemester->getAll();
returnAJAX(true, json_encode($studiensemester->studiensemester));
break;
case "getStudienplaene":
if(!isset($_REQUEST["studiensemester_kurzbz"]))
die("keine studiensemester_kurzbz erhalten");
$studiensemester_kurzbz = $_REQUEST["studiensemester_kurzbz"];
$studienplatz = new studienplatz();
$studienplatz->load_studiengang_studiensemester($studiengang_kz, $studiensemester_kurzbz, true);
returnAJAX(true, json_encode($studienplatz->result));
break;
case "setAufgenommene":
if(!isset($_REQUEST["prestudent_ids"]))
die("keine Studenten erhalten");
$prestudent_ids = json_decode($_REQUEST["prestudent_ids"]);
foreach($prestudent_ids as $i)
{
$prestudent = new prestudent($i);
$prestudent->getLastStatus($i);
$prestudent->status_kurzbz = "Aufgenommener";
$prestudent->new = true;
$prestudent->datum = date("Y-m-d H:i:s");
$prestudent->updatevon = $user;
$prestudent->updateamum = date("Y-m-d H:i:s");
$prestudent->save_rolle();
}
returnAJAX(true, "");
break;
default:
returnAJAX(false,"eine Aktion erhalten");
}
?>
+215
View File
@@ -0,0 +1,215 @@
<?php
/* Copyright (C) 2016 FH 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: Andreas Moik <[email protected]>
*/
?>
<!DOCTYPE html>
<html>
<head>
<title>Aliquote Reduktion</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" href="../../skin/fhcomplete.css" type="text/css">
<link rel="stylesheet" href="../../skin/vilesci.css" type="text/css">
<?php require_once(dirname(__FILE__).'/../../config/vilesci.config.inc.php'); ?>
<?php require_once(dirname(__FILE__)."/../../include/meta/angular.php"); ?>
<?php require_once(dirname(__FILE__)."/../../include/meta/angular-tablesorter.php"); ?>
<?php require_once(dirname(__FILE__)."/../../include/meta/js_utils.php"); ?>
<script>
function sortStudiengaenge(a,b)
{
if (a.kurzbzlang < b.kurzbzlang)
return -1;
else if (a.kurzbzlang > b.kurzbzlang)
return 1;
else
return 0;
}
var aliquoteReduktion = angular.module('aliqRed',['tableSort']).controller('aliqRedController',function($scope)
{
var aqr = this;
aqr.name = "Aliquote Reduktion";
aqr.studiensemester_kurzbz = _GET()["studiensemester_kurzbz"];
aqr.selectedStudiengang = Object();
aqr.selectedStudiengang.studiengang_kz = _GET()["studiengang_kz"];
aqr.selectedStudiensemester = "";
aqr.selectedStudienplan = "";
aqr.choosenStuds = 0;
aqr.studenten = [];
aqr.studiengaenge = [];
aqr.studiensemester = [];
aqr.studienplaene = [];
SERVICE_TARGET = "aliquote_reduktion.json.php"
if(!aqr.studiensemester_kurzbz)
die("Es wurde kein Studiensemester angegeben");
if(!aqr.selectedStudiengang.studiengang_kz)
die("Es wurde kein Studiengang angeben");
//bei jeder änderung des studiensemesters, sollen die studienplaene erneut geholt werden
$scope.$watch('aqr.selectedStudiengang', function (){aqr.loadStudienPlaene();},true);
$scope.$watch('aqr.selectedStudiensemester', function (){aqr.loadStudienPlaene();},true);
$scope.$watch('aqr.selectedStudienplan', function (){aqr.loadStudenten();},true);
AJAXCall({action:"getStudiensemester",studiengang_kz:aqr.selectedStudiengang.studiengang_kz},function(res){aqr.studiensemester=res;aqr.setStudiensemester(aqr.studiensemester_kurzbz);$scope.$apply();});
AJAXCall({action:"getStudiengaenge",studiengang_kz:aqr.selectedStudiengang.studiengang_kz},function(res){aqr.studiengaenge=res;aqr.studiengaenge.sort(sortStudiengaenge);aqr.setStudiengang(aqr.selectedStudiengang.studiengang_kz);$scope.$apply();});
aqr.submit = function()
{
if(aqr.choosenStuds < aqr.selectedStudienplan.apz)
{
if(!confirm("Es wurden zu wenig Studenten gewählt!"))
return;
}
else if(aqr.choosenStuds > aqr.selectedStudienplan.apz)
{
if(!confirm("Es wurden zu viel Studenten gewählt!"))
return;
}
var prestudent_ids = [];
aqr.studenten.forEach(function(i)
{
if(i.selected)
{
prestudent_ids.push(i.prestudent_id);
}
});
AJAXCall({action:"setAufgenommene",studiengang_kz:aqr.selectedStudiengang.studiengang_kz,prestudent_ids:JSON.stringify(prestudent_ids)},function(res){aqr.loadStudenten();});
}
aqr.countChoosen = function()
{
var buf = 0;
aqr.studenten.forEach(function(i)
{
if(i.selected)
{
buf ++;
}
});
aqr.choosenStuds = buf;
}
aqr.setStudiengang = function(studiengang_kz)
{
aqr.studiengaenge.forEach(function(i)
{
if(i.studiengang_kz == studiengang_kz)
{
aqr.selectedStudiengang = i;
return;
}
});
}
aqr.setStudiensemester = function(studiensemester_kurzbz)
{
aqr.studiensemester.forEach(function(i)
{
if(i.studiensemester_kurzbz == studiensemester_kurzbz)
{
aqr.selectedStudiensemester = i;
return;
}
});
}
aqr.loadStudienPlaene = function()
{
if(aqr.selectedStudiensemester != "")
{
aqr.selectedStudienplan = "";
aqr.studienplaene.clear;
AJAXCall({action:"getStudienplaene",studiengang_kz:aqr.selectedStudiengang.studiengang_kz,studiensemester_kurzbz:aqr.selectedStudiensemester.studiensemester_kurzbz},function(res)
{
aqr.studienplaene=res;
aqr.selectedStudienplan=aqr.studienplaene[0];
$scope.$apply();
});
}
}
aqr.loadStudenten = function()
{
aqr.studenten=[];
if(aqr.selectedStudienplan && aqr.selectedStudienplan.studienplan_id)
AJAXCall({action:"getStudenten",studiengang_kz:aqr.selectedStudiengang.studiengang_kz,studienplan_id:aqr.selectedStudienplan.studienplan_id,studiensemester_kurzbz:aqr.selectedStudiensemester.studiensemester_kurzbz},function(res)
{
aqr.studenten=res;
$scope.$apply();
});
}
});
</script>
</head>
<body class="Background_main">
<div ng-controller="aliqRedController as aqr" ng-app="aliqRed">
<h2>{{aqr.name}} {{aqr.selectedStudiengang.studiengang_kz}} {{aqr.selectedStudienplan.studienplatz_id}} </h2>
<select data-ng-options="stg.kurzbzlang for stg in aqr.studiengaenge" data-ng-model="aqr.selectedStudiengang"></select>
<select data-ng-options="stsem.studiensemester_kurzbz for stsem in aqr.studiensemester" data-ng-model="aqr.selectedStudiensemester"></select>
<span ng-if="aqr.selectedStudienplan"><select data-ng-options="stpl.bezeichnung for stpl in aqr.studienplaene" data-ng-model="aqr.selectedStudienplan"></select></span><span ng-if="!aqr.selectedStudienplan" style="color:#A33;">Keinen Studienplan gefunden!</span>
<span ng-if="aqr.studenten.length == 1">{{aqr.studenten.length}} Student</span>
<span ng-if="aqr.studenten.length > 1">{{aqr.studenten.length}} Studenten</span>
<span ng-if="aqr.studenten.length < 1">keine Student</span>
<table ts-wrapper>
<thead>
<tr>
<th ts-criteria="prestudent_id">ID</th>
<th ts-criteria="vorname">Vorname</th>
<th ts-criteria="nachname">Nachname</th>
<th ts-criteria="bezeichnung" ts-default="descending">ZGV Gruppe</th>
<th ts-criteria="rt_gesamtpunkte|parseFloat" ts-default="descending">RT Gesamt</th>
<th ts-criteria="laststatus">Status</th>
<th ng-if="aqr.selectedStudienplan.apz">{{aqr.choosenStuds}}/{{aqr.selectedStudienplan.apz}}</th>
<th ng-if="!aqr.selectedStudienplan.apz">Keine APZ</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="stud in aqr.studenten track by stud.prestudent_id" ng-click="aqr.countChoosen()" ts-repeat ts-hide-no-data>
<td>{{stud.prestudent_id}}</td>
<td>{{stud.vorname}}</td>
<td>{{stud.nachname}}</td>
<td ng-if="stud.bezeichnung">{{stud.bezeichnung}}</td>
<td ng-if="!stud.bezeichnung" style="font-weight: bold;">Keine Angabe</td>
<td>{{stud.rt_gesamtpunkte}}</td>
<td>{{stud.laststatus}}</td>
<td><input ng-if="aqr.selectedStudienplan.apz" type="checkbox" ng-model="stud.selected"/></td>
</tr>
</tbody>
</table>
<input style="float:right;" type="button" value="Annehmen" ng-click="aqr.submit()"/>
</div>
</body>
</html>