Direkte Zuordnung von Studierenden zu Lehreinheiten

* Direkte Zuordnung im FAS
* neues Boolean markiert direkte Gruppen
* Gruppen werden nicht vorgerückt
* Direkte Gruppen werden nicht bei der Lehreinheit und im
Lehrverbandsbaum angezeigt
This commit is contained in:
Andreas Österreicher
2019-01-16 08:22:43 +01:00
parent 7cfff391eb
commit 82fd967f00
14 changed files with 7594 additions and 6840 deletions
@@ -49,6 +49,7 @@ require_once('../../include/gruppe.class.php');
require_once('../../include/lehrveranstaltung.class.php');
require_once('../../include/datum.class.php');
require_once('../../include/vertrag.class.php');
require_once('../../include/benutzergruppe.class.php');
$user = get_uid();
$db = new basis_db();
@@ -1506,6 +1507,194 @@ if(!$error)
}
}
}
elseif(isset($_POST['type']) && $_POST['type']=='lehreinheit_direkt_user_add')
{
$lehreinheit_id = $_POST['lehreinheit_id'];
$uid = $_POST['uid'];
$lehreinheit = new lehreinheit();
$lehreinheit->load($lehreinheit_id);
$lva = new lehrveranstaltung($lehreinheit->lehrveranstaltung_id);
if (!$rechte->isBerechtigtMultipleOe('admin', $lva->getAllOe(), 'suid') &&
!$rechte->isBerechtigtMultipleOe('assistenz', $lva->getAllOe(), 'suid') &&
!$rechte->isBerechtigtMultipleOe('assistenz', $lva->getAllOe(), 'suid', $row->fachbereich_kurzbz) &&
!$rechte->isBerechtigtMultipleOe('admin', $lva->getAllOe(), 'suid', $row->fachbereich_kurzbz))
{
$error = true;
$return = false;
$errormsg = 'Keine Berechtigung';
}
if (!$error)
{
$lehreinheitgruppe = new lehreinheitgruppe();
if($lehreinheitgruppe->getDirectGroup($lehreinheit_id))
{
$gruppe_kurzbz = $lehreinheitgruppe->gruppe_kurzbz;
}
else
{
// Es gibt keine direkte Gruppe zu dieser LE
// es wird eine erstellt und zugewiesen
$gruppe_kurzbz = 'LE_'.$lehreinheit_id;
$gruppe = new gruppe();
if(!$gruppe->load($gruppe_kurzbz))
{
$gruppe->gruppe_kurzbz = $gruppe_kurzbz;
$gruppe->studiengang_kz = $lva->studiengang_kz;
$gruppe->semester = $lva->semester;
$gruppe->bezeichnung = 'LE_'.$lehreinheit_id;
$gruppe->aktiv = true;
$gruppe->mailgrp = false;
$gruppe->sichtbar = true;
$gruppe->generiert = false;
$gruppe->insertamum = date('Y-m-d H:i:s');
$gruppe->insertvon = $user;
$gruppe->orgform_kurzbz = $lva->orgform_kurzbz;
$gruppe->direktinskription = true;
if(!$gruppe->save(true))
{
$gruppe_kurzbz = '';
$errormsg = $gruppe->errormsg;
$return = false;
}
}
error_log("grp:".$gruppe_kurzbz);
if ($gruppe_kurzbz != '')
{
error_log("drin");
$lehreinheitgruppe = new lehreinheitgruppe();
$lehreinheitgruppe->lehreinheit_id = $lehreinheit_id;
$lehreinheitgruppe->gruppe_kurzbz = $gruppe_kurzbz;
$lehreinheitgruppe->studiengang_kz = $lva->studiengang_kz;
$lehreinheitgruppe->semester = $lva->semester;
$lehreinheitgruppe->insertamum = date('Y-m-d H:i:s');
$lehreinheitgruppe->inservon = $user;
if(!$lehreinheitgruppe->save(true))
{
$gruppe_kurzbz = '';
$return = false;
$errormsg = $lehreinheitgruppe->errormsg;;
error_log("fail");
}
else
{
error_log("ok");
}
}
}
error_log("nachher");
if ($gruppe_kurzbz != '')
{
error_log("drin2");
$benutzergruppe = new benutzergruppe();
if (!$benutzergruppe->load($uid, $gruppe_kurzbz, $lehreinheit->studiensemester_kurzbz))
{
$benutzergruppe->uid = $uid;
$benutzergruppe->gruppe_kurzbz = $gruppe_kurzbz;
$benutzergruppe->studiensemester_kurzbz = $lehreinheit->studiensemester_kurzbz;
$benutzergruppe->insertamum = date('Y-m-d H:i:s');
$benutzergruppe->insertvon = $user;
if ($benutzergruppe->save(true))
{
$return = true;
}
else
{
$errormsg = $benutzergruppe->errormsg;
$return = false;
}
}
else
{
error_log("Load Failed:".$uid.' '.$gruppe_kurzbz.' '.$lehreinheit->studiensemester_kurzbz);
$errormsg = $benutzergruppe->errormsg;
$return = false;
}
}
else
{
$errormsg .= 'Gruppe kann nicht erstellt werden';
$return = false;
}
}
}
elseif(isset($_POST['type']) && $_POST['type']=='lehreinheit_gruppe_direkt_del')
{
$gruppe_kurzbz = $_POST['gruppe_kurzbz'];
$uid = $_POST['uid'];
$lehreinheit_id = $_POST['lehreinheit_id'];
$lehreinheit = new lehreinheit();
$lehreinheit->load($lehreinheit_id);
$lva = new lehrveranstaltung($lehreinheit->lehrveranstaltung_id);
if (!$rechte->isBerechtigtMultipleOe('admin', $lva->getAllOe(), 'suid') &&
!$rechte->isBerechtigtMultipleOe('assistenz', $lva->getAllOe(), 'suid') &&
!$rechte->isBerechtigtMultipleOe('assistenz', $lva->getAllOe(), 'suid', $row->fachbereich_kurzbz) &&
!$rechte->isBerechtigtMultipleOe('admin', $lva->getAllOe(), 'suid', $row->fachbereich_kurzbz))
{
$error = true;
$return = false;
$errormsg = 'Keine Berechtigung';
}
if (!$error)
{
$lehreinheitgruppe = new lehreinheitgruppe();
if($lehreinheitgruppe->getDirectGroup($lehreinheit_id))
{
if ($lehreinheitgruppe->gruppe_kurzbz == $gruppe_kurzbz)
{
$benutzergruppe = new benutzergruppe();
if ($benutzergruppe->delete($uid, $gruppe_kurzbz))
{
// User entfernt, schauen ob noch personen drannhaengen und Gruppe ggf entfernen
$benutzergruppe->load_uids($gruppe_kurzbz, $lehreinheit->studiensemester_kurzbz);
if (!isset($benutzergruppe->uids))
{
// Gruppe ist leer und kann entfernt werden
// von der Lehreinheit entfernen
$lehreinheitgruppe_del = new lehreinheitgruppe();
$lehreinheitgruppe_del->delete($lehreinheitgruppe->lehreinheitgruppe_id);
// aus Stundenplan entfernen
// TODO
// Gruppe löschen
$gruppe = new gruppe();
$gruppe->delete($gruppe_kurzbz);
$return = true;
}
else
{
$return = true;
}
}
else
{
$errormsg = $benutergruppe->errormsg;
$return = false;
}
}
else
{
$errormsg = 'Gruppe passt nicht zur Lehreinheit';
$return = false;
}
}
else
{
$errormsg = 'Gruppe passt nicht zur Lehreinheit';
$return = false;
}
}
}
else
{
$return = false;
@@ -55,6 +55,11 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
?>
</menupopup>
</popupset>
<popupset>
<menupopup id="lehrveranstaltung-detail-gruppe-direkt-tree-popup">
<menuitem label="Entfernen" oncommand="LeGruppeDirektDel();" />
</menupopup>
</popupset>
<popupset>
<menupopup id="lehrveranstaltung-lektor-tree-popup">
<menuitem label="Entfernen" oncommand="LeMitarbeiterDel();" />
@@ -244,9 +249,10 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
</hbox>
<!-- ************* GRUPPEN ************** -->
<label id="lehrveranstaltung-detail-label-lehreinheitgruppe" value="Gruppen" />
<vbox flex="1">
<vbox flex="1" id="lehrveranstaltung-detail-gruppen-box">
<hbox flex="7">
<vbox flex="2">
<label id="lehrveranstaltung-detail-label-lehreinheitgruppe" value="Gruppen" />
<tree id="lehrveranstaltung-detail-tree-lehreinheitgruppe" seltype="single" hidecolumnpicker="false" flex="1" disabled="false"
datasources="rdf:null"
ref="http://www.technikum-wien.at/lehreinheitgruppe/liste"
@@ -298,6 +304,63 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
</rule>
</template>
</tree>
</vbox>
<spacer flex="1"/>
<vbox flex="2">
<label id="lehrveranstaltung-detail-label-lehreinheitgruppe-direkt" value="Direkt zugeordnete Personen" />
<tree id="lehrveranstaltung-detail-tree-lehreinheitgruppe-direkt" seltype="single" hidecolumnpicker="false" flex="1" disabled="false"
datasources="rdf:null"
ref="http://www.technikum-wien.at/lehreinheitdirekt"
flags="dont-build-content"
style="border: 1px solid black; min-height: 100px;"
context="lehrveranstaltung-detail-gruppe-direkt-tree-popup"
>
<treecols>
<treecol id="lehrveranstaltung-lehreinheitgruppedirekt-treecol-uid" label="UID" flex="4" hidden="false" persist="hidden, width, ordinal"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/lehreinheitdirekt/rdf#uid" />
<splitter class="tree-splitter"/>
<treecol id="lehrveranstaltung-lehreinheitgruppedirekt-treecol-vorname" label="Vorname" flex="2" hidden="false" persist="hidden, width, ordinal"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/lehreinheitdirekt/rdf#vorname" />
<treecol id="lehrveranstaltung-lehreinheitgruppedirekt-treecol-nachname" label="Nachname" flex="2" hidden="false" persist="hidden, width, ordinal"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/lehreinheitdirekt/rdf#nachname" />
<treecol id="lehrveranstaltung-lehreinheitgruppedirekt-treecol-gruppe_kurzbz" label="Gruppe" flex="2" hidden="true" persist="hidden, width, ordinal"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/lehreinheitdirekt/rdf#gruppe_kurzbz" />
</treecols>
<template>
<rule>
<treechildren>
<treeitem uri="rdf:*">
<treerow>
<treecell label="rdf:http://www.technikum-wien.at/lehreinheitdirekt/rdf#uid" />
<treecell label="rdf:http://www.technikum-wien.at/lehreinheitdirekt/rdf#vorname" />
<treecell label="rdf:http://www.technikum-wien.at/lehreinheitdirekt/rdf#nachname" />
<treecell label="rdf:http://www.technikum-wien.at/lehreinheitdirekt/rdf#gruppe_kurzbz" />
</treerow>
</treeitem>
</treechildren>
</rule>
</template>
</tree>
<hbox>
<menulist id="lehrveranstaltung-lehreinheitgruppedirekt-textbox-user"
editable="true" datasources="rdf:null" flex="1"
ref="http://www.technikum-wien.at/benutzer"
oninput="LeGruppeDirektLoad(this)">
<template>
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/benutzer/rdf#uid"
label="rdf:http://www.technikum-wien.at/benutzer/rdf#nachname rdf:http://www.technikum-wien.at/benutzer/rdf#vorname rdf:http://www.technikum-wien.at/benutzer/rdf#uid rdf:http://www.technikum-wien.at/benutzer/rdf#studiengang rdf:http://www.technikum-wien.at/benutzer/rdf#semester"
uri="rdf:*"/>
</menupopup>
</template>
</menulist>
<button label="zuordnen" oncommand="LeGruppeDirektAdd()" />
</hbox>
</vbox>
<spacer flex="2"/>
</hbox>
<spacer flex="1"/>
@@ -29,6 +29,7 @@ require_once('../../config/vilesci.config.inc.php');
var LeDetailLehrfach_id; //Lehrfach_id die nach dem Laden markiert werden soll
var LeDetailLehrfach_label; //Bezeichnung des Lehrfachs das markiert werden soll
var LeDetailGruppeDatasource; //Datasource fuer Gruppen DropDown
var LeDetailGruppeDirektDatasource; //Datasource fuer Direkt-Gruppen DropDown
var LeDetailLektorDatasource; //Datasource fuer Lektren DropDown
var LvAngebotGruppenDatasource; //Datasource fuer LV-Angebot Gruppen
var LvSelectLehreinheit_id; //Lehreinheit_id die nach dem Rebuild des Trees markiert werden soll
@@ -335,8 +336,7 @@ function LeNeu()
document.getElementById('lehrveranstaltung-tabbox').selectedIndex=0;
//Lektor-Tab und GruppenTree ausblenden
document.getElementById('lehrveranstaltung-detail-tree-lehreinheitgruppe').hidden=true;
document.getElementById('lehrveranstaltung-detail-label-lehreinheitgruppe').hidden=true;
document.getElementById('lehrveranstaltung-detail-gruppen-box').hidden=true;
document.getElementById('lehrveranstaltung-tab-lektor').collapsed=true;
//Lehrveranstaltungs_id holen
@@ -613,6 +613,7 @@ function LeDetailDisableFields(val)
document.getElementById('lehrveranstaltung-detail-textbox-unr').disabled=val;
document.getElementById('lehrveranstaltung-detail-textbox-lehrveranstaltung').disabled=val;
document.getElementById('lehrveranstaltung-detail-textbox-gewicht').disabled=val;
document.getElementById('lehrveranstaltung-lehreinheitgruppedirekt-textbox-user').disabled=val;
}
// ****
@@ -725,8 +726,7 @@ function LeAuswahl()
//Felder bei Lektorenzuordnung deaktivieren
LeMitarbeiterDisableFields(true);
document.getElementById('lehrveranstaltung-detail-tree-lehreinheitgruppe').hidden=false;
document.getElementById('lehrveranstaltung-detail-label-lehreinheitgruppe').hidden=false;
document.getElementById('lehrveranstaltung-detail-gruppen-box').hidden=false;
document.getElementById('lehrveranstaltung-tab-lektor').collapsed=false;
lehrveranstaltungNotenTreeloaded=false;
@@ -987,11 +987,58 @@ function LeAuswahl()
debug(e);
}
//Lehreinheitgruppe Direktzuordnung tree setzen
url='<?php echo APP_ROOT; ?>rdf/lehreinheit_direkt.rdf.php?lehreinheit_id='+lehreinheit_id+"&"+gettimestamp();
try
{
direkttree = document.getElementById('lehrveranstaltung-detail-tree-lehreinheitgruppe-direkt');
//Alte DS entfernen
var oldDatasources = direkttree.database.GetDataSources();
while(oldDatasources.hasMoreElements())
{
direkttree.database.RemoveDataSource(oldDatasources.getNext());
}
//Refresh damit die entfernten DS auch wirklich entfernt werden
direkttree.builder.rebuild();
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
LeDetailGruppeDirektDatasource = rdfService.GetDataSource(url);
LeDetailGruppeDirektDatasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
LeDetailGruppeDirektDatasource.QueryInterface(Components.interfaces.nsIRDFXMLSink);
direkttree.database.AddDataSource(LeDetailGruppeDirektDatasource);
}
catch(e)
{
debug(e);
}
// Notizen Laden
var lehreinheitnotiz = document.getElementById('lehrveranstaltung-box-notizen');
lehreinheitnotiz.LoadNotizTree('','','','','','','','',lehreinheit_id);
}
function LvDetailsGetCurrentLehreinheitId()
{
var tree = document.getElementById('lehrveranstaltung-tree');
if (tree.currentIndex==-1)
return;
try
{
//Ausgewaehlte Lehreinheit holen
var col = tree.columns ? tree.columns["lehrveranstaltung-treecol-lehreinheit_id"] : "lehrveranstaltung-treecol-lehreinheit_id";
var lehreinheit_id=tree.view.getCellText(tree.currentIndex,col);
if(lehreinheit_id!='')
return lehreinheit_id;
}
catch(e)
{}
return false;
}
//******** LehreinheitMitarbeiter **********//
// ****
@@ -1304,6 +1351,151 @@ function LeLektorTreeRefresh()
// ************* GRUPPEN ******************** //
// ****
// * Laedt das Dropdown fuer die Auswahl der Benutzer
// * bei direkter Gruppenzuordnung
// ****
function LeGruppeDirektLoad(menulist, filter)
{
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
if(typeof(filter) == 'undefined')
v = menulist.value;
else
v = filter;
if(v.length > 2)
{
var url = '<?php echo APP_ROOT; ?>rdf/benutzer.rdf.php?filter=' + encodeURIComponent(v) + '&' + gettimestamp();
var oldDatasources = menulist.database.GetDataSources();
while(oldDatasources.hasMoreElements())
{
menulist.database.RemoveDataSource(oldDatasources.getNext());
}
//Refresh damit die entfernten DS auch wirklich entfernt werden
menulist.builder.rebuild();
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
if(typeof(filter) == 'undefined')
var datasource = rdfService.GetDataSource(url);
else
var datasource = rdfService.GetDataSourceBlocking(url);
datasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
datasource.QueryInterface(Components.interfaces.nsIRDFXMLSink);
menulist.database.AddDataSource(datasource);
if(typeof(filter) != 'undefined')
menulist.builder.rebuild();
}
}
// ****
// * Loescht eine Person die direkt zu einer Lehreinheit zugeordnet ist
// *****
function LeGruppeDirektDel()
{
tree = document.getElementById('lehrveranstaltung-detail-tree-lehreinheitgruppe-direkt');
//Nachsehen ob Gruppe markiert wurde
var idx;
if(tree.currentIndex>=0)
idx = tree.currentIndex;
else
{
alert('Bitte zuerst einen Eintrag markieren');
return false;
}
try
{
var col = tree.columns ? tree.columns["lehrveranstaltung-lehreinheitgruppedirekt-treecol-gruppe_kurzbz"] : "lehrveranstaltung-lehreinheitgruppedirekt-treecol-gruppe_kurzbz";
var gruppe_kurzbz=tree.view.getCellText(idx,col);
var col = tree.columns ? tree.columns["lehrveranstaltung-lehreinheitgruppedirekt-treecol-uid"] : "lehrveranstaltung-lehreinheitgruppedirekt-treecol-uid";
var uid=tree.view.getCellText(idx,col);
var lehreinheit_id = LvDetailsGetCurrentLehreinheitId();
}
catch(e)
{
alert(e);
return false;
}
var req = new phpRequest('lvplanung/lehrveranstaltungDBDML.php','','');
neu = document.getElementById('lehrveranstaltung-detail-checkbox-new').checked;
req.add('type', 'lehreinheit_gruppe_direkt_del');
req.add('gruppe_kurzbz', gruppe_kurzbz);
req.add('uid', uid);
req.add('lehreinheit_id', lehreinheit_id);
var response = req.executePOST();
var val = new ParseReturnValue(response)
if (!val.dbdml_return)
{
alert(val.dbdml_errormsg)
}
else
{
//Refresh des Trees
LeDetailGruppeDirektTreeRefresh();
}
}
// ****
// * Fuegt eine Person zu einer Lehreinheit hinzu
// * Zuordnung erfolgt ueber eine direkte Gruppenzuordnung
// ****
function LeGruppeDirektAdd()
{
var user = MenulistGetSelectedValue('lehrveranstaltung-lehreinheitgruppedirekt-textbox-user');
var lehreinheit_id = LvDetailsGetCurrentLehreinheitId();
if(lehreinheit_id=='')
{
alert("Lehreinheit wurde nicht gefunden. Daten wurden nicht gespeichert!");
return;
}
var req = new phpRequest('lvplanung/lehrveranstaltungDBDML.php','','');
req.add('type', 'lehreinheit_direkt_user_add');
req.add('lehreinheit_id', lehreinheit_id);
req.add('uid', user);
var response = req.executePOST();
var val = new ParseReturnValue(response)
if (!val.dbdml_return)
{
alert(val.dbdml_errormsg)
}
else
{
//Refresh des Trees
LeDetailGruppeDirektTreeRefresh();
}
}
// ****
// * Refresht den Tree mit den direkt Zugeordneten Personen
// ****
function LeDetailGruppeDirektTreeRefresh()
{
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
try
{
LeDetailGruppeDirektDatasource.Refresh(true); //Blocking
gruppentree = document.getElementById('lehrveranstaltung-detail-tree-lehreinheitgruppe-direkt');
gruppentree.builder.rebuild();
}
catch(e)
{
debug(e);
}
}
// ****
// * Loescht die Zuordnung einer Gruppe zu einer
// * Lehreinheit
+18 -3
View File
@@ -48,6 +48,7 @@ class gruppe extends basis_db
public $gesperrt=false; // boolean
public $zutrittssystem=false; // boolean
public $aufnahmegruppe=false; // boolean
public $direktinskription=false;
/**
* Konstruktor - Laedt optional eine Gruppe
@@ -142,6 +143,7 @@ class gruppe extends basis_db
$this->gesperrt = $this->db_parse_bool($row->gesperrt);
$this->zutrittssystem = $this->db_parse_bool($row->zutrittssystem);
$this->aufnahmegruppe = $this->db_parse_bool($row->aufnahmegruppe);
$this->direktinskription = $this->db_parse_bool($row->direktinskription);
return true;
}
else
@@ -192,6 +194,7 @@ class gruppe extends basis_db
$grp_obj->gesperrt = $this->db_parse_bool($row->gesperrt);
$grp_obj->zutrittssystem = $this->db_parse_bool($row->zutrittssystem);
$grp_obj->aufnahmegruppe = $this->db_parse_bool($row->aufnahmegruppe);
$grp_obj->direktinskription = $this->db_parse_bool($row->direktinskription);
$this->result[] = $grp_obj;
}
@@ -289,6 +292,7 @@ class gruppe extends basis_db
$grp_obj->gesperrt = $this->db_parse_bool($row->gesperrt);
$grp_obj->zutrittssystem = $this->db_parse_bool($row->zutrittssystem);
$grp_obj->aufnahmegruppe = $this->db_parse_bool($row->aufnahmegruppe);
$grp_obj->direktinskription = $this->db_parse_bool($row->direktinskription);
$this->result[] = $grp_obj;
}
@@ -358,6 +362,11 @@ class gruppe extends basis_db
$this->errormsg = 'Aktiv muss ein boolscher Wert sein';
return false;
}
if(!is_bool($this->direktinskription))
{
$this->errormsg = 'direktinskription muss ein boolscher Wert sein';
return false;
}
if(mb_strlen($this->updatevon)>32)
{
$this->errormsg = 'Updatevon darf nicht laenger als 32 Zeichen sein';
@@ -397,7 +406,7 @@ class gruppe extends basis_db
$qry = 'INSERT INTO public.tbl_gruppe (gruppe_kurzbz, studiengang_kz, bezeichnung, semester, sort,
mailgrp, beschreibung, sichtbar, generiert, aktiv, lehre, content_visible,
updateamum, updatevon, insertamum, insertvon, orgform_kurzbz, gesperrt,
zutrittssystem, aufnahmegruppe)
zutrittssystem, aufnahmegruppe, direktinskription)
VALUES('.$this->db_add_param($kurzbz).','.
$this->db_add_param($this->studiengang_kz).','.
$this->db_add_param($this->bezeichnung).','.
@@ -417,7 +426,8 @@ class gruppe extends basis_db
$this->db_add_param($this->orgform_kurzbz).','.
$this->db_add_param($this->gesperrt, FHC_BOOLEAN).','.
$this->db_add_param($this->zutrittssystem, FHC_BOOLEAN).','.
$this->db_add_param($this->aufnahmegruppe, FHC_BOOLEAN).');';
$this->db_add_param($this->aufnahmegruppe, FHC_BOOLEAN).','.
$this->db_add_param($this->direktinskription, FHC_BOOLEAN).');';
}
else
{
@@ -438,7 +448,9 @@ class gruppe extends basis_db
' orgform_kurzbz='.$this->db_add_param($this->orgform_kurzbz).', '.
' gesperrt='.$this->db_add_param($this->gesperrt, FHC_BOOLEAN).', '.
' zutrittssystem='.$this->db_add_param($this->zutrittssystem, FHC_BOOLEAN).', '.
' aufnahmegruppe='.$this->db_add_param($this->aufnahmegruppe, FHC_BOOLEAN).' ';
' aufnahmegruppe='.$this->db_add_param($this->aufnahmegruppe, FHC_BOOLEAN).', '.
' direktinskription='.$this->db_add_param($this->direktinskription, FHC_BOOLEAN).' ';
if($this->gruppe_kurbzNeu != null)
{
$qry.=', gruppe_kurzbz='.$this->db_add_param($this->gruppe_kurbzNeu).' ';
@@ -538,6 +550,7 @@ class gruppe extends basis_db
$grp_obj->gesperrt = $this->db_parse_bool($row->gesperrt);
$grp_obj->zutrittssystem = $this->db_parse_bool($row->zutrittssystem);
$grp_obj->aufnahmegruppe = $this->db_parse_bool($row->aufnahmegruppe);
$grp_obj->direktinskription = $this->db_parse_bool($row->direktinskription);
$this->result[] = $grp_obj;
}
@@ -612,6 +625,7 @@ class gruppe extends basis_db
$grp_obj->gesperrt = $this->db_parse_bool($row->gesperrt);
$grp_obj->zutrittssystem = $this->db_parse_bool($row->zutrittssystem);
$grp_obj->aufnahmegruppe = $this->db_parse_bool($row->aufnahmegruppe);
$grp_obj->direktinskription = $this->db_parse_bool($row->direktinskription);
$this->result[] = $grp_obj;
}
@@ -682,6 +696,7 @@ class gruppe extends basis_db
$grp_obj->gesperrt = $this->db_parse_bool($row->gesperrt);
$grp_obj->zutrittssystem = $this->db_parse_bool($row->zutrittssystem);
$grp_obj->aufnahmegruppe = $this->db_parse_bool($row->aufnahmegruppe);
$grp_obj->direktinskription = $this->db_parse_bool($row->direktinskription);
$this->result[] = $grp_obj;
}
+46
View File
@@ -418,5 +418,51 @@ class lehreinheitgruppe extends basis_db
return false;
}
}
/**
* Prueft ob zu der Lehreinheit bereits eine direkte Gruppe zugeordnet ist
* @param $lehreinheit_id ID der lehreinheit
* @return true und objekt mit Gruppe falls vorhanden oder false im fehlerfall
*/
public function getDirectGroup($lehreinheit_id)
{
$qry = "
SELECT
tbl_lehreinheitgruppe.*
FROM
lehre.tbl_lehreinheitgruppe
JOIN public.tbl_gruppe USING(gruppe_kurzbz)
WHERE
tbl_gruppe.direktinskription
AND tbl_lehreinheitgruppe.lehreinheit_id=".$this->db_add_param($lehreinheit_id);
if($result = $this->db_query($qry))
{
if($row = $this->db_fetch_object($result))
{
$this->lehreinheitgruppe_id = $row->lehreinheitgruppe_id;
$this->lehreinheit_id = $row->lehreinheit_id;
$this->studiengang_kz = $row->studiengang_kz;
$this->semester = $row->semester;
$this->verband = $row->verband;
$this->gruppe = $row->gruppe;
$this->gruppe_kurzbz = $row->gruppe_kurzbz;
$this->updateamum = $row->updateamum;
$this->updatevon = $row->updatevon;
$this->insertamum = $row->insertamum;
$this->insertvon = $row->insertvon;
$this->ext_id = $row->ext_id;
return true;
}
else
return false;
}
else
{
$this->errormsg = 'Fehler beim Laden der Daten';
return false;
}
}
}
?>
+2 -1
View File
@@ -619,7 +619,7 @@ class student extends benutzer
nachname, vorname, vornamen, gebdatum, gebort, gebzeit, anmerkung, homepage, svnr,
ersatzkennzeichen, familienstand, geschlecht, anzahlkinder, tbl_person.aktiv, kurzbeschreibung,
tbl_benutzer.aktiv as bnaktiv, tbl_student.studiengang_kz, tbl_student.semester, tbl_student.verband,
tbl_student.gruppe, tbl_student.prestudent_id
tbl_student.gruppe, tbl_student.prestudent_id, tbl_benutzer.uid
FROM
public.tbl_person
JOIN public.tbl_benutzer USING(person_id)
@@ -671,6 +671,7 @@ class student extends benutzer
$l->verband = $row->verband;
$l->gruppe = $row->gruppe;
$l->prestudent_id = $row->prestudent_id;
$l->uid = $row->uid;
$this->result[]=$l;
}
}
+70
View File
@@ -0,0 +1,70 @@
<?php
/* Copyright (C) 2019 fhcomplete.org
*
* 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 Oesterreicher <oesi@technikum-wien.at>
*/
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/student.class.php');
$user = get_uid();
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($user);
if(!$rechte->isBerechtigt('lehre/lehrveranstaltung'))
die($rechte->errormsg);
$datum_obj = new datum();
$oRdf = new rdf('BENUTZER','http://www.technikum-wien.at/benutzer');
$filter = filter_input(INPUT_GET,'filter');
if (mb_strlen($filter) < 3)
die('Filter muss mindestens 3 Zeichen lang sein');
$benutzer = new student();
$benutzer->getTab($filter);
$studiengang = new studiengang();
$studiengang->getAll(null, false);
$oRdf->sendHeader();
$db = new basis_db();
$i=0;
foreach($benutzer->result as $row)
{
if(isset($studiengang->kuerzel_arr[$row->studiengang_kz]))
$stg = $studiengang->kuerzel_arr[$row->studiengang_kz];
else
$stg = '';
$i=$oRdf->newObjekt($i);
$oRdf->obj[$i]->setAttribut('uid',$row->uid,true);
$oRdf->obj[$i]->setAttribut('vorname',$row->vorname,true);
$oRdf->obj[$i]->setAttribut('nachname',$row->nachname,true);
$oRdf->obj[$i]->setAttribut('studiengang',$stg,true);
$oRdf->obj[$i]->setAttribut('semester',$row->semester,true);
$oRdf->addSequence($i);
$i++;
}
$oRdf->sendRdfText();
?>
+76
View File
@@ -0,0 +1,76 @@
<?php
/* Copyright (C) 2019 fhcomplete.org
*
* 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 Oesterreicher <oesi@technikum-wien.at>
*/
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');
$user = get_uid();
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($user);
if (!$rechte->isBerechtigt('lehre/lehrveranstaltung'))
die($rechte->errormsg);
$datum_obj = new datum();
$oRdf = new rdf('LEHREINHEITDIREKT','http://www.technikum-wien.at/lehreinheitdirekt');
$lehreinheit_id = filter_input(INPUT_GET,'lehreinheit_id');
if ($lehreinheit_id == '' || !is_numeric($lehreinheit_id))
{
die('LehreinheitID ungueltig');
}
$oRdf->sendHeader();
$db = new basis_db();
$qry = "
SELECT
uid, vorname, nachname, gruppe_kurzbz
FROM
lehre.tbl_lehreinheitgruppe
JOIN public.tbl_gruppe USING(gruppe_kurzbz)
JOIN public.tbl_benutzergruppe USING(gruppe_kurzbz)
JOIN public.tbl_benutzer USING(uid)
JOIN public.tbl_person USING(person_id)
WHERE
tbl_lehreinheitgruppe.lehreinheit_id=".$db->db_add_param($lehreinheit_id, FHC_INTEGER)."
AND tbl_gruppe.direktinskription
ORDER BY vorname, nachname";
if ($result = $db->db_query($qry))
{
$i = 0;
while ($row = $db->db_fetch_object($result))
{
$i = $oRdf->newObjekt($i);
$oRdf->obj[$i]->setAttribut('uid', $row->uid,true);
$oRdf->obj[$i]->setAttribut('vorname', $row->vorname,true);
$oRdf->obj[$i]->setAttribut('nachname', $row->nachname,true);
$oRdf->obj[$i]->setAttribut('gruppe_kurzbz', $row->gruppe_kurzbz,true);
$oRdf->addSequence($i);
$i++;
}
}
$oRdf->sendRdfText();
?>
+5
View File
@@ -70,6 +70,11 @@ foreach ($DAO_obj->lehreinheitgruppe as $row)
$bezeichnung = $row->gruppe_kurzbz;
$gruppe = new gruppe();
$gruppe->load($row->gruppe_kurzbz);
// Direkte Gruppen werden uebersprungen
if($gruppe->direktinskription)
continue;
$beschreibung = $gruppe->bezeichnung;
$qry_verplant = "SELECT 1 FROM lehre.tbl_stundenplandev
+25 -2
View File
@@ -355,7 +355,16 @@ $oRdf->sendHeader();
$row_lf = $db->db_fetch_object($result_lf);
//Gruppen holen
$qry = "SELECT upper(tbl_studiengang.typ::varchar(1) || tbl_studiengang.kurzbz) as kuerzel, * FROM lehre.tbl_lehreinheitgruppe LEFT JOIN public.tbl_studiengang USING(studiengang_kz) WHERE lehreinheit_id='$row_le->lehreinheit_id'";
$qry = "SELECT
upper(tbl_studiengang.typ::varchar(1) || tbl_studiengang.kurzbz) as kuerzel,
tbl_lehreinheitgruppe.*,
tbl_gruppe.direktinskription
FROM
lehre.tbl_lehreinheitgruppe
LEFT JOIN public.tbl_studiengang USING(studiengang_kz)
LEFT JOIN public.tbl_gruppe USING(gruppe_kurzbz)
WHERE lehreinheit_id=".$db->db_add_param($row_le->lehreinheit_id);
$result_grp = $db->db_query($qry);
$grp='';
while($row_grp = $db->db_fetch_object($result_grp))
@@ -363,8 +372,12 @@ $oRdf->sendHeader();
if($row_grp->gruppe_kurzbz=='')
$grp.=' '.$row_grp->kuerzel.trim($row_grp->semester).trim($row_grp->verband).trim($row_grp->gruppe);
else
{
// Direkte Gruppen werden nicht angezeigt
if(!$db->db_parse_bool($row_grp->direktinskription))
$grp.=' '.$row_grp->gruppe_kurzbz;
}
}
//Lektoren und Stunden holen
$qry = "SELECT kurzbz, semesterstunden, planstunden FROM lehre.tbl_lehreinheitmitarbeiter JOIN public.tbl_mitarbeiter USING(mitarbeiter_uid) WHERE lehreinheit_id='$row_le->lehreinheit_id'";
$result_lkt = $db->db_query($qry);
@@ -377,7 +390,17 @@ $oRdf->sendHeader();
$semesterstunden.=$row_lkt->semesterstunden.' ';
$planstunden.=$row_lkt->planstunden.' ';
}
$qry = "SELECT tbl_fachbereich.bezeichnung FROM public.tbl_fachbereich, lehre.tbl_lehrveranstaltung as lehrfach, lehre.tbl_lehreinheit WHERE tbl_fachbereich.oe_kurzbz=lehrfach.oe_kurzbz AND lehrfach.lehrveranstaltung_id=tbl_lehreinheit.lehrfach_id AND tbl_lehreinheit.lehreinheit_id=".$db->db_add_param($row_le->lehreinheit_id, FHC_INTEGER);
$qry = "SELECT
tbl_organisationseinheit.bezeichnung
FROM
public.tbl_organisationseinheit,
lehre.tbl_lehrveranstaltung as lehrfach,
lehre.tbl_lehreinheit
WHERE
tbl_organisationseinheit.oe_kurzbz = lehrfach.oe_kurzbz
AND lehrfach.lehrveranstaltung_id = tbl_lehreinheit.lehrfach_id
AND tbl_lehreinheit.lehreinheit_id = ".$db->db_add_param($row_le->lehreinheit_id, FHC_INTEGER);
$fachbereich='';
if($result_fb = $db->db_query($qry))
if($row_fb = $db->db_fetch_object($result_fb))
+13 -5
View File
@@ -98,11 +98,19 @@ if (count($berechtigt_studiengang)>0)
if (isset($_GET['studiengang_kz']))
$stg_kz_query='AND tbl_lehrverband.studiengang_kz='.$dbo->db_add_param($_GET['studiengang_kz'], FHC_INTEGER);
$sql_query="SELECT tbl_lehrverband.studiengang_kz, tbl_studiengang.bezeichnung, kurzbz,kurzbzlang, typ, tbl_lehrverband.semester, verband, gruppe, gruppe_kurzbz, tbl_lehrverband.bezeichnung AS lvb_bezeichnung, tbl_gruppe.bezeichnung AS grp_bezeichnung
FROM (public.tbl_studiengang JOIN public.tbl_lehrverband USING (studiengang_kz))
$sql_query="
SELECT
tbl_lehrverband.studiengang_kz, tbl_studiengang.bezeichnung, kurzbz,kurzbzlang, typ,
tbl_lehrverband.semester, verband, gruppe, gruppe_kurzbz,
tbl_lehrverband.bezeichnung AS lvb_bezeichnung, tbl_gruppe.bezeichnung AS grp_bezeichnung
FROM
(public.tbl_studiengang JOIN public.tbl_lehrverband USING (studiengang_kz))
LEFT OUTER JOIN public.tbl_gruppe ON (tbl_lehrverband.studiengang_kz=tbl_gruppe.studiengang_kz AND tbl_lehrverband.semester=tbl_gruppe.semester AND (tbl_lehrverband.verband='') AND tbl_gruppe.lehre AND tbl_gruppe.aktiv)
WHERE tbl_lehrverband.aktiv $stg_kz_query
ORDER BY erhalter_kz,typ, kurzbz, semester,verband,gruppe, gruppe_kurzbz;";
WHERE
(tbl_gruppe.direktinskription is null or tbl_gruppe.direktinskription=false)
AND tbl_lehrverband.aktiv $stg_kz_query
ORDER BY
erhalter_kz,typ, kurzbz, semester,verband,gruppe, gruppe_kurzbz;";
}
else
{
@@ -325,7 +333,7 @@ function draw_orgformsubmenu($stg_kz, $orgform)
$data = array();
$qry = "SELECT semester, verband, gruppe,'' as gruppe_kurzbz, bezeichnung, null as sort FROM public.tbl_lehrverband WHERE orgform_kurzbz=".$stg_obj->db_add_param($orgform)." AND studiengang_kz=".$stg_obj->db_add_param($stg_kz)." AND aktiv
UNION
SELECT semester, '' as verband, '' as gruppe, gruppe_kurzbz, bezeichnung, sort FROM public.tbl_gruppe WHERE studiengang_kz=".$stg_obj->db_add_param($stg_kz)." AND orgform_kurzbz=".$stg_obj->db_add_param($orgform)." AND lehre AND sichtbar
SELECT semester, '' as verband, '' as gruppe, gruppe_kurzbz, bezeichnung, sort FROM public.tbl_gruppe WHERE studiengang_kz=".$stg_obj->db_add_param($stg_kz)." AND orgform_kurzbz=".$stg_obj->db_add_param($orgform)." AND lehre AND sichtbar AND aktiv AND NOT direktinskription
UNION
SELECT semester, verband, gruppe,'' as gruppe_kurzbz, bezeichnung, null as sort FROM public.tbl_lehrverband WHERE studiengang_kz=".$stg_obj->db_add_param($stg_kz)." AND semester=0 AND aktiv
ORDER BY semester, verband, gruppe, sort, gruppe_kurzbz";
+1 -1
View File
@@ -116,7 +116,7 @@ foreach ($obj->result as $row)
<NOTE:lehrveranstaltung_kurzbz><![CDATA['.$lv_obj->kurzbz.']]></NOTE:lehrveranstaltung_kurzbz>
<NOTE:student_nachname><![CDATA['.$benutzer->nachname.']]></NOTE:student_nachname>
<NOTE:student_vorname><![CDATA['.$benutzer->vorname.']]></NOTE:student_vorname>
<NOTE:studiengang><![CDATA['.$stg_arr[$benutzer->studiengang_kz].']]></NOTE:studiengang>
<NOTE:studiengang><![CDATA['.(isset($stg_arr[$benutzer->studiengang_kz])?$stg_arr[$benutzer->studiengang_kz]:'').']]></NOTE:studiengang>
<NOTE:studiengang_kz><![CDATA['.$benutzer->studiengang_kz.']]></NOTE:studiengang_kz>
<NOTE:studiengang_lv><![CDATA['.$stg_arr[$lv_obj->studiengang_kz].']]></NOTE:studiengang_lv>
<NOTE:semester_lv><![CDATA['.$lv_obj->semester.']]></NOTE:semester_lv>
+13 -1
View File
@@ -2513,6 +2513,18 @@ if($result = $db->db_query("SELECT 1 FROM system.tbl_app WHERE app='reihungstest
}
}
// Spalte direktinskription fuer public.tbl_gruppe
if(!$result = @$db->db_query("SELECT direktinskription FROM public.tbl_gruppe LIMIT 1"))
{
$qry = "ALTER TABLE public.tbl_gruppe ADD COLUMN direktinskription boolean NOT NULL DEFAULT FALSE;
COMMENT ON COLUMN public.tbl_gruppe.direktinskription IS 'Verwendung fuer direkte Zuweisung zu Lehreinheit'";
if(!$db->db_query($qry))
echo '<strong>public.tbl_gruppe: '.$db->db_last_error().'</strong><br>';
else
echo '<br>public.tbl_gruppe: Spalte direktinskription hinzugefuegt';
}
// *** Pruefung und hinzufuegen der neuen Attribute und Tabellen
echo '<H2>Pruefe Tabellen und Attribute!</H2>';
@@ -2687,7 +2699,7 @@ $tabellen=array(
"public.tbl_fotostatus" => array("fotostatus_kurzbz","beschreibung"),
"public.tbl_funktion" => array("funktion_kurzbz","beschreibung","aktiv","fachbereich","semester"),
"public.tbl_geschaeftsjahr" => array("geschaeftsjahr_kurzbz","start","ende","bezeichnung"),
"public.tbl_gruppe" => array("gruppe_kurzbz","studiengang_kz","semester","bezeichnung","beschreibung","sichtbar","lehre","aktiv","sort","mailgrp","generiert","updateamum","updatevon","insertamum","insertvon","ext_id","orgform_kurzbz","gid","content_visible","gesperrt","zutrittssystem","aufnahmegruppe"),
"public.tbl_gruppe" => array("gruppe_kurzbz","studiengang_kz","semester","bezeichnung","beschreibung","sichtbar","lehre","aktiv","sort","mailgrp","generiert","updateamum","updatevon","insertamum","insertvon","ext_id","orgform_kurzbz","gid","content_visible","gesperrt","zutrittssystem","aufnahmegruppe","direktinskription"),
"public.tbl_kontakt" => array("kontakt_id","person_id","kontakttyp","anmerkung","kontakt","zustellung","updateamum","updatevon","insertamum","insertvon","ext_id","standort_id"),
"public.tbl_kontaktmedium" => array("kontaktmedium_kurzbz","beschreibung"),
"public.tbl_kontakttyp" => array("kontakttyp","beschreibung","bezeichnung_mehrsprachig"),
+141 -87
View File
@@ -31,6 +31,7 @@ require_once('../../include/lehreinheitmitarbeiter.class.php');
require_once('../../include/lehreinheitgruppe.class.php');
require_once('../../include/benutzerberechtigung.class.php');
require_once('../../include/mitarbeiter.class.php');
require_once('../../include/gruppe.class.php');
if (!$db = new basis_db())
die('Es konnte keine Verbindung zum Server aufgebaut werden.');
@@ -39,7 +40,7 @@ $user = get_uid();
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($user);
if(!$rechte->isBerechtigt('lehre/vorrueckung', null, 'suid'))
if (!$rechte->isBerechtigt('lehre/vorrueckung', null, 'suid'))
die($rechte->errormsg);
$stg_obj = new studiengang();
@@ -56,34 +57,33 @@ $studiengang_kz = (isset($_GET['studiengang_kz'])?$_GET['studiengang_kz']:'');
$semester = (isset($_GET['semester'])?$_GET['semester']:'');
$stsem_von = (isset($_GET['stsem_von'])?$_GET['stsem_von']:'');
$stsem_nach = (isset($_GET['stsem_nach'])?$_GET['stsem_nach']:'');
$text='';
$anzahl_lehreinheiten=0;
$anzahl_lehreinheitmitarbeiter=0;
$anzahl_lehreinheitgruppe=0;
$error_lehreinheit=0;
$error_lehreinheitmitarbeiter=0;
$error_lehreinheitgruppe=0;
$text = '';
$anzahl_lehreinheiten = 0;
$anzahl_lehreinheitmitarbeiter = 0;
$anzahl_lehreinheitgruppe = 0;
$error_lehreinheit = 0;
$error_lehreinheitmitarbeiter = 0;
$error_lehreinheitgruppe = 0;
if($stsem_von=='')
if ($stsem_von == '')
{
$stsem_obj = new studiensemester();
$stsem_von = $stsem_obj->getPrevious();
}
if($stsem_nach=='')
if ($stsem_nach == '')
{
$stsem_obj = new studiensemester();
$stsem_obj->getNextStudiensemester();
$stsem_nach = $stsem_obj->studiensemester_kurzbz;
}
echo '
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
echo '<!DOCTYPE HTML>
<html>
<head>
<title>Lehreinheit Vorrueckung</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" href="../../skin/vilesci.css" type="text/css">
<title>Lehreinheit Vorrueckung</title>
<meta charset="UTF-8">
<link rel="stylesheet" href="../../skin/vilesci.css" type="text/css">
</head>
<body style="background-color:#eeeeee;">
<h2>Lehreinheiten Vorr&uuml;ckung</h2>
@@ -93,10 +93,10 @@ echo 'Studiengang: <SELECT name="studiengang_kz">';
echo '<OPTION value="">---Stg ausw&auml;hlen---</OPTION>';
foreach($stg_obj->result as $stg)
{
if($studiengang_kz==$stg->studiengang_kz)
$selected='selected';
if ($studiengang_kz == $stg->studiengang_kz)
$selected = 'selected';
else
$selected='';
$selected = '';
echo '<OPTION value="'.$stg->studiengang_kz.'" '.$selected.'>'.$stg->kuerzel.' ('.$stg->kurzbzlang.')</OPTION>';
}
@@ -104,12 +104,12 @@ echo '</SELECT>';
echo ' Semester: <SELECT name="semester">';
echo '<OPTION value="">-- Alle --</OPTION>';
for($i=1;$i<=8;$i++)
for ($i = 1;$i <= 8;$i++)
{
if($semester==$i)
$selected='selected';
if ($semester == $i)
$selected = 'selected';
else
$selected='';
$selected = '';
echo '<OPTION value="'.$i.'" '.$selected.'>'.$i.'</OPTION>';
}
@@ -121,7 +121,7 @@ $stsem_obj->getAll();
foreach ($stsem_obj->studiensemester as $stsem)
{
if($stsem_von == $stsem->studiensemester_kurzbz)
if ($stsem_von == $stsem->studiensemester_kurzbz)
$selected = 'selected';
else
$selected = '';
@@ -134,7 +134,7 @@ echo ' Nach: <SELECT name="stsem_nach">';
foreach ($stsem_obj->studiensemester as $stsem)
{
if($stsem_nach == $stsem->studiensemester_kurzbz)
if ($stsem_nach == $stsem->studiensemester_kurzbz)
$selected = 'selected';
else
$selected = '';
@@ -146,22 +146,38 @@ echo '</SELECT>';
echo '&nbsp;&nbsp;<input type="submit" value="Vorrücken"><br>';
if (defined('VILESCI_STUNDENSATZ_VORRUECKUNG') && VILESCI_STUNDENSATZ_VORRUECKUNG != '' && is_numeric(VILESCI_STUNDENSATZ_VORRUECKUNG))
echo '<br><span style="color: blue">Alle Lehraufträge werden mit dem Stundensatz "'.VILESCI_STUNDENSATZ_VORRUECKUNG.'" vorgerückt</span>';
elseif (defined('VILESCI_STUNDENSATZ_VORRUECKUNG') && VILESCI_STUNDENSATZ_VORRUECKUNG != '' && VILESCI_STUNDENSATZ_VORRUECKUNG == 'default')
echo '<br><span style="color: blue">Alle Lehraufträge werden mit dem aktuell hinterlegten Standard-Stundensatz der/des Lehrenden vorgerückt</span>';
if (defined('VILESCI_STUNDENSATZ_VORRUECKUNG')
&& VILESCI_STUNDENSATZ_VORRUECKUNG != ''
&& is_numeric(VILESCI_STUNDENSATZ_VORRUECKUNG))
{
echo '<br><span style="color: blue">
Alle Lehraufträge werden mit dem Stundensatz "'.VILESCI_STUNDENSATZ_VORRUECKUNG.'" vorgerückt
</span>';
}
elseif (defined('VILESCI_STUNDENSATZ_VORRUECKUNG')
&& VILESCI_STUNDENSATZ_VORRUECKUNG != ''
&& VILESCI_STUNDENSATZ_VORRUECKUNG == 'default')
{
echo '<br><span style="color: blue">
Alle Lehraufträge werden mit dem aktuell hinterlegten Standard-Stundensatz der/des Lehrenden vorgerückt
</span>';
}
else
echo '<br><span style="color: blue">Alle Lehraufträge werden mit dem Stundensatz des Vorjahres vorgerückt</span>';
{
echo '<br><span style="color: blue">
Alle Lehraufträge werden mit dem Stundensatz des Vorjahres vorgerückt
</span>';
}
echo '</form>';
if($studiengang_kz!='' && $stsem_von!='' && $stsem_nach!='')
if ($studiengang_kz != '' && $stsem_von != '' && $stsem_nach != '')
{
$stg_obj = new studiengang();
if(!$stg_obj->load($studiengang_kz))
if (!$stg_obj->load($studiengang_kz))
die('Studiengang kann nicht geladen werden');
if(!$rechte->isBerechtigt('lehre/vorrueckung', $stg_obj->oe_kurzbz, 'suid'))
if (!$rechte->isBerechtigt('lehre/vorrueckung', $stg_obj->oe_kurzbz, 'suid'))
die($rechte->errormsg);
echo '<br>Starte Vorrückung '.$stg_arr[$studiengang_kz]." $semester von $stsem_von nach $stsem_nach ...";
@@ -172,10 +188,10 @@ if($studiengang_kz!='' && $stsem_von!='' && $stsem_nach!='')
WHERE
tbl_lehrveranstaltung.studiengang_kz=".$db->db_add_param($studiengang_kz)." AND
tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($stsem_von);
if($semester!='')
if ($semester != '')
$qry .= " AND tbl_lehrveranstaltung.semester=".$db->db_add_param($semester);
if($result = $db->db_query($qry))
if ($result = $db->db_query($qry))
{
$anzahl_von = $db->db_num_rows($result);
}
@@ -186,92 +202,114 @@ if($studiengang_kz!='' && $stsem_von!='' && $stsem_nach!='')
WHERE
tbl_lehrveranstaltung.studiengang_kz=".$db->db_add_param($studiengang_kz)." AND
tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($stsem_nach);
if($semester!='')
if ($semester != '')
$qry_nach .= " AND tbl_lehrveranstaltung.semester=".$db->db_add_param($semester);
if($result = $db->db_query($qry_nach))
if ($result = $db->db_query($qry_nach))
{
$anzahl_nach = $db->db_num_rows($result);
$baseurl = basename($_SERVER['REQUEST_URI']);
if ($anzahl_nach >= $anzahl_von && !isset($_GET['continue']))
{
echo '<br><br><span style="color:red">Es sind schon Lehreinheiten fuer das '.$stsem_nach.' in '.$stg_arr[$studiengang_kz].' '.$semester.' vorhanden. Trotzdem fortsetzen?</span><br><br>
echo '<br><br><span style="color:red">Es sind schon Lehreinheiten fuer das
'.$stsem_nach.' in '.$stg_arr[$studiengang_kz].' '.$semester.' vorhanden.
Trotzdem fortsetzen?</span><br><br>
<form action="'.$baseurl.'&continue" method="POST"><input type="submit" value="Fortsetzen"></form>';
die ();
}
}
if($result = $db->db_query($qry))
if ($result = $db->db_query($qry))
{
while($row = $db->db_fetch_object($result))
{
$text.="<br>Lehreinheit $row->lehreinheit_id wird vorgerueckt";
$text .= "<br>Lehreinheit $row->lehreinheit_id wird vorgerueckt";
$le_obj = new lehreinheit();
//Lehreinheit Neu Anlegen
if($le_obj->load($row->lehreinheit_id))
if ($le_obj->load($row->lehreinheit_id))
{
$le_obj->new=true;
$le_obj->studiensemester_kurzbz=$stsem_nach;
$le_obj->insertamum=date('Y-m-d H:i:s');
$le_obj->insertvon='Vorrueckung_'.$user;
$le_obj->ext_id='';
$le_obj->unr='';
$le_obj->new = true;
$le_obj->studiensemester_kurzbz = $stsem_nach;
$le_obj->insertamum = date('Y-m-d H:i:s');
$le_obj->insertvon = 'Vorrueckung_'.$user;
$le_obj->ext_id = '';
$le_obj->unr = '';
if($le_obj->save())
if ($le_obj->save())
{
$anzahl_lehreinheiten++;
//LehreinheitMitarbeiter Eintrag neu Anlengen
$qry_lem="SELECT mitarbeiter_uid FROM lehre.tbl_lehreinheitmitarbeiter
$qry_lem = "SELECT mitarbeiter_uid FROM lehre.tbl_lehreinheitmitarbeiter
WHERE lehreinheit_id=".$db->db_add_param($row->lehreinheit_id);
if($result_lem = $db->db_query($qry_lem))
if ($result_lem = $db->db_query($qry_lem))
{
while($row_lem = $db->db_fetch_object($result_lem))
while ($row_lem = $db->db_fetch_object($result_lem))
{
$lem_obj = new lehreinheitmitarbeiter();
if($lem_obj->load($row->lehreinheit_id, $row_lem->mitarbeiter_uid))
if ($lem_obj->load($row->lehreinheit_id, $row_lem->mitarbeiter_uid))
{
// Pruefen ob der Lektor ueber die im Config festgelegte Stundengrenze
// kommt und Meldung ausgeben
$qry_stundengrenze="SELECT mitarbeiter_uid,fixangestellt,SUM(semesterstunden) AS summe,
aktiv FROM lehre.tbl_lehreinheitmitarbeiter
$qry_stundengrenze="
SELECT
mitarbeiter_uid,fixangestellt,SUM(semesterstunden) AS summe, aktiv
FROM
lehre.tbl_lehreinheitmitarbeiter
JOIN lehre.tbl_lehreinheit USING (lehreinheit_id)
JOIN public.tbl_mitarbeiter USING (mitarbeiter_uid)
JOIN public.tbl_benutzer ON (uid=mitarbeiter_uid)
WHERE mitarbeiter_uid=".$db->db_add_param($row_lem->mitarbeiter_uid)."
WHERE
mitarbeiter_uid=".$db->db_add_param($row_lem->mitarbeiter_uid)."
AND studiensemester_kurzbz=".$db->db_add_param($stsem_von)."
GROUP BY mitarbeiter_uid,fixangestellt,aktiv";
//echo '<br>UNION<br>'.$qry_stundengrenze;
if($result_stundengrenze = $db->db_query($qry_stundengrenze))
GROUP BY
mitarbeiter_uid, fixangestellt, aktiv";
if ($result_stundengrenze = $db->db_query($qry_stundengrenze))
{
if($row_stundengrenze = $db->db_fetch_object($result_stundengrenze))
if ($row_stundengrenze = $db->db_fetch_object($result_stundengrenze))
{
if ($row_stundengrenze->fixangestellt=='f' && $row_stundengrenze->summe>WARN_SEMESTERSTD_FREI)
if (!$db->db_parse_bool($row_stundengrenze->fixangestellt)
&& $row_stundengrenze->summe > WARN_SEMESTERSTD_FREI)
{
$text.=" <span style='color:red'>Stundengrenze ".WARN_SEMESTERSTD_FREI." Stunden ueberschritten von $row_lem->mitarbeiter_uid</span>";
$text .= " <span style='color:red'>
Stundengrenze ".WARN_SEMESTERSTD_FREI." Stunden ueberschritten
von $row_lem->mitarbeiter_uid</span>";
}
elseif ($row_stundengrenze->fixangestellt=='t' && $row_stundengrenze->summe>WARN_SEMESTERSTD_FIX)
elseif ($db->db_parse_bool($row_stundengrenze->fixangestellt)
&& $row_stundengrenze->summe > WARN_SEMESTERSTD_FIX)
{
$text.=" <span style='color:red'>Stundengrenze ".WARN_SEMESTERSTD_FIX." Stunden ueberschritten von $row_lem->mitarbeiter_uid</span>";
$text .= " <span style='color:red'>
Stundengrenze ".WARN_SEMESTERSTD_FIX." Stunden ueberschritten
von $row_lem->mitarbeiter_uid</span>";
}
// Meldung, wenn Benutzer inaktiv
if ($row_stundengrenze->aktiv == 'f')
if ($db->db_parse_bool($row_stundengrenze->aktiv) == false)
{
$text.="; <span style='color:orange'>Achtung! MitarbeiterIn <b>$row_lem->mitarbeiter_uid</b> ist nicht aktiv</span>";
$text .= "; <span style='color:orange'>Achtung! MitarbeiterIn
<b>$row_lem->mitarbeiter_uid</b> ist nicht aktiv</span>";
}
}
}
$lem_obj->lehreinheit_id=$le_obj->lehreinheit_id;
$lem_obj->lehreinheit_id = $le_obj->lehreinheit_id;
$lem_obj->new = true;
// Wenn VILESCI_STUNDENSATZ_VORRUECKUNG definiert ist, wird nicht der Stundensatz des Vorjahres verwendet
// Wenn VILESCI_STUNDENSATZ_VORRUECKUNG numerisch ist, wird dieser Wert fuer den Stundensatz verwendet
if (defined('VILESCI_STUNDENSATZ_VORRUECKUNG') && VILESCI_STUNDENSATZ_VORRUECKUNG != '' && is_numeric(VILESCI_STUNDENSATZ_VORRUECKUNG))
// Wenn VILESCI_STUNDENSATZ_VORRUECKUNG definiert ist,
// wird nicht der Stundensatz des Vorjahres verwendet
// Wenn VILESCI_STUNDENSATZ_VORRUECKUNG numerisch ist,
// wird dieser Wert fuer den Stundensatz verwendet
if (defined('VILESCI_STUNDENSATZ_VORRUECKUNG')
&& VILESCI_STUNDENSATZ_VORRUECKUNG != ''
&& is_numeric(VILESCI_STUNDENSATZ_VORRUECKUNG))
{
$lem_obj->stundensatz = VILESCI_STUNDENSATZ_VORRUECKUNG;
}
// Wenn VILESCI_STUNDENSATZ_VORRUECKUNG default ist, wird der Standard-Stundensatz des jeweiligen Lektors geladen und gespeichert
elseif (defined('VILESCI_STUNDENSATZ_VORRUECKUNG') && VILESCI_STUNDENSATZ_VORRUECKUNG != '' && VILESCI_STUNDENSATZ_VORRUECKUNG == 'default')
// Wenn VILESCI_STUNDENSATZ_VORRUECKUNG default ist,
//wird der Standard-Stundensatz des jeweiligen Lektors geladen und gespeichert
elseif (defined('VILESCI_STUNDENSATZ_VORRUECKUNG')
&& VILESCI_STUNDENSATZ_VORRUECKUNG != ''
&& VILESCI_STUNDENSATZ_VORRUECKUNG == 'default')
{
$stundensatz = new mitarbeiter($row_lem->mitarbeiter_uid);
$lem_obj->stundensatz = $stundensatz->stundensatz;
@@ -279,83 +317,99 @@ if($studiengang_kz!='' && $stsem_von!='' && $stsem_nach!='')
$lem_obj->insertamum = date('Y-m-d H:i:s');
$lem_obj->insertvon = 'Vorrueckung_'.$user;
$lem_obj->ext_id = '';
$lem_obj->vertrag_id='';
$lem_obj->vertrag_id = '';
if(!$lem_obj->save())
if (!$lem_obj->save())
{
$error_lehreinheitmitarbeiter++;
$text.='Fehler beim Anlegen des Lehreinheitmitarbeiter Eintrages: '.$lem_obj->errormsg;
$text .= 'Fehler beim Anlegen des Lehreinheitmitarbeiter
Eintrages: '.$lem_obj->errormsg;
}
else
$anzahl_lehreinheitmitarbeiter++;
}
else
{
$text.='Fehler beim Laden der Mitarbeiter';
$text .= 'Fehler beim Laden der Mitarbeiter';
$error_lehreinheitmitarbeiter++;
}
}
}
else
{
$text.='Fehler beim Laden der Mitarbeiter '.$db->db_last_error();
$text .= 'Fehler beim Laden der Mitarbeiter '.$db->db_last_error();
$error_lehreinheitmitarbeiter++;
}
//LehreinheitGruppe Eintrag neu Anlegen
$qry_leg="SELECT lehreinheitgruppe_id FROM lehre.tbl_lehreinheitgruppe
WHERE lehreinheit_id=".$db->db_add_param($row->lehreinheit_id)."
$qry_leg = "
SELECT
lehreinheitgruppe_id
FROM
lehre.tbl_lehreinheitgruppe
WHERE
lehreinheit_id=".$db->db_add_param($row->lehreinheit_id)."
AND NOT (tbl_lehreinheitgruppe.semester='0' AND tbl_lehreinheitgruppe.verband='I')";
if($result_leg = $db->db_query($qry_leg))
if ($result_leg = $db->db_query($qry_leg))
{
while($row_leg = $db->db_fetch_object($result_leg))
{
$leg_obj = new lehreinheitgruppe();
if($leg_obj->load($row_leg->lehreinheitgruppe_id))
if ($leg_obj->load($row_leg->lehreinheitgruppe_id))
{
$leg_obj->lehreinheit_id=$le_obj->lehreinheit_id;
// Direktinskriptionsgruppen werden nicht vorgerückt
if ($leg_obj->gruppe_kurzbz != '')
{
$grp = new gruppe();
$grp->load($leg_obj->gruppe_kurzbz);
if ($grp->direktinskription)
continue;
}
$leg_obj->lehreinheit_id = $le_obj->lehreinheit_id;
$leg_obj->new = true;
$leg_obj->insertamum = date('Y-m-d H:i:s');
$leg_obj->insertvon = 'Vorrueckung_'.$user;
$leg_obj->ext_id = '';
if(!$leg_obj->save())
if (!$leg_obj->save())
{
$error_lehreinheitgruppe++;
$text.='Fehler beim Anlegen des Lehreinheitgruppe Eintrages: '.$leg_obj->errormsg;
$text .= 'Fehler beim Anlegen des Lehreinheitgruppe Eintrages: '.$leg_obj->errormsg;
}
else
$anzahl_lehreinheitgruppe++;
}
else
{
$text.='Fehler beim Laden der Gruppe '.$leg_obj->errormsg.' '.$db->db_last_error();
$text .= 'Fehler beim Laden der Gruppe '.$leg_obj->errormsg.' '.$db->db_last_error();
$error_lehreinheitgruppe++;
}
}
}
else
{
$text.='Fehler beim Auslesen der Gruppen';
$text .= 'Fehler beim Auslesen der Gruppen';
$error_lehreinheitgruppe++;
}
}
else
{
$error_lehreinheit++;
$text.='Fehler beim Speichern der Lehreinheit '.$le_obj->errormsg;
$text .= 'Fehler beim Speichern der Lehreinheit '.$le_obj->errormsg;
}
}
else
{
$error_lehreinheit++;
$text.='Fehler beim Laden der Lehreinheit '.$le_obj->errormsg;
$text .= 'Fehler beim Laden der Lehreinheit '.$le_obj->errormsg;
}
}
}
else
{
$text.='Fehler beim Laden der Lehreinheiten '.$db->db_last_error();
$text .= 'Fehler beim Laden der Lehreinheiten '.$db->db_last_error();
$error_lehreinheit++;
}