- Übersicht über die LVs mit Plätzen für Incoming

- Kollisionsplanung auf Studentenebene direkt beim Verplanen im Tempus 
- Scrollposition im Tempus bleibt nach dem verschieben einer Stunde erhalten
- Semesterplan wird beim Starten nicht mehr automatisch geladen
- Diverse Bugfixes beim Bearbeiten und Anlegen von Lehreinheiten
This commit is contained in:
Andreas Österreicher
2010-05-11 06:44:50 +00:00
parent 8ff16e0d4e
commit 88409c6532
26 changed files with 823 additions and 458 deletions
+138
View File
@@ -0,0 +1,138 @@
<?php
/* Copyright (C) 2010 Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger < christian.paminger@technikum-wien.at >
* Andreas Oesterreicher < andreas.oesterreicher@technikum-wien.at >
* Rudolf Hangl < rudolf.hangl@technikum-wien.at >
*/
require_once('../../../config/cis.config.inc.php');
require_once('../../../include/studiensemester.class.php');
require_once('../../../include/studiengang.class.php');
$db = new basis_db();
$stsem = new studiensemester();
$stsem->getNextStudiensemester();
$stg = new studiengang();
$stg->getAll();
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link href="../../../skin/style.css.php" rel="stylesheet" type="text/css">
<link href="../../../include/js/tablesort/table.css" rel="stylesheet" type="text/css">
<script src="../../../include/js/tablesort/table.js" type="text/javascript"></script>
<title>Lehrveranstaltungen - &Uuml;bersicht</title>
</head>
<body>
<?php
echo '
<table class="tabcontent" id="inhalt">
<tr>
<td class="tdwidth10">&nbsp;</td>
<td>
<table class="tabcontent">
<tr>
<td class="ContentHeader">
<font class="ContentHeader">&nbsp;Lehrveranstaltungen - &Uuml;bersicht ('.$stsem->studiensemester_kurzbz.')</font>
</td>
</tr>
<tr>
<td>&nbsp;</td>
</tr>
<tr>
<td>
';
$qry = "SELECT
*,
(
SELECT
count(*)
FROM
campus.vw_student_lehrveranstaltung
JOIN public.tbl_student ON(uid=student_uid)
JOIN public.tbl_prestudentstatus USING(prestudent_id)
WHERE
lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id AND
lehreinheit_id in (SELECT lehreinheit_id FROM lehre.tbl_lehreinheit
WHERE lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id
AND tbl_lehreinheit.studiensemester_kurzbz='$stsem->studiensemester_kurzbz')
AND tbl_prestudentstatus.status_kurzbz='Incoming'
GROUP BY uid
) as anzahlincoming
FROM
lehre.tbl_lehrveranstaltung
WHERE
tbl_lehrveranstaltung.incoming>0 AND
tbl_lehrveranstaltung.aktiv AND
tbl_lehrveranstaltung.lehre
";
echo '<table width="100%" class="table-autosort:3 table-stripeclass:alternate table-autostripe">
<thead>
<tr class="liste">
<th class="table-sortable:numeric">ID</th>
<th class="table-sortable:default">Studiengang</th>
<th class="table-sortable:numeric">Semester</th>
<th class="table-sortable:default">Lehrveranstaltung</th>
<th class="table-sortable:default">Lehrveranstaltung Englisch</th>
<th>LV-Info</th>
<th class="table-sortable:numeric">Pl&auml;tze gesamt</th>
<th class="table-sortable:numeric">Freie Pl&auml;tze</th>
</tr>
</thead>
<tbody>';
if($result = $db->db_query($qry))
{
$i=0;
while($row = $db->db_fetch_object($result))
{
$freieplaetze = $row->incoming - $row->anzahlincoming;
if($freieplaetze<0)
$freieplaetze=0;
$i++;
echo '<tr class="liste'.($i%2).'">';
echo '<td>',$row->lehrveranstaltung_id,'</td>';
echo '<td>',$stg->kuerzel_arr[$row->studiengang_kz],'</td>';
echo '<td>',$row->semester,'</td>';
echo '<td>',$row->bezeichnung,'</td>';
echo '<td>',$row->bezeichnung_english,'</td>';
echo '<td>
<a href="#Deutsch" class="Item" onclick="javascript:window.open(\'ects/preview.php?lv='.$row->lehrveranstaltung_id.'&amp;language=de\',\'Lehrveranstaltungsinformation\',\'width=700,height=750,resizable=yes,menuebar=no,toolbar=no,status=yes,scrollbars=yes\');return false;">Deutsch&nbsp;</a>
<a href="#Englisch" class="Item" onclick="javascript:window.open(\'ects/preview.php?lv='.$row->lehrveranstaltung_id.'&amp;language=en\',\'Lehrveranstaltungsinformation\',\'width=700,height=750,resizable=yes,menuebar=no,toolbar=no,status=yes,scrollbars=yes\');return false;">Englisch</a>
</td>';
echo '<td>',$row->incoming,'</td>';
echo '<td>',$freieplaetze,'</td>';
echo '</tr>';
}
}
echo '</tbody></table>';
?>
</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>
+4
View File
@@ -170,7 +170,10 @@ var LeLvbgrpDDObserver=
var child = { }
if(lehreinheit_id=='')
{
alert('Eine Gruppe kann nur zu einer Lehreinheit hinzugefügt werden. Nicht aber zu einer Lehrveranstaltung');
return false;
}
quell_gruppe=dropdata.data;
var arr = quell_gruppe.split("&");
@@ -499,6 +502,7 @@ var boardObserver=
{
if (dropdata.data!="")
{
saveScrollPositionTimeTableWeek();
var stplData=document.getElementById('TimeTableWeekData');
var datum=stplData.getAttribute("datum");
var type=stplData.getAttribute("stpl_type");
-1
View File
@@ -471,7 +471,6 @@ if(!$error)
$variable = new variable();
$variable->uid = $user;
$variable->new = false;
// Aendert die Variable Studiensemester
if(isset($_POST['stsem']))
+12 -4
View File
@@ -807,14 +807,22 @@ if(!$error)
if(!$leg->checkVorhanden())
{
if($leg->save(true))
if($leg->errormsg=='')
{
$return = true;
if($leg->save(true))
{
$return = true;
}
else
{
$return = false;
$errormsg = $leg->errormsg;
}
}
else
else
{
$return = false;
$errormsg = $leg->errormsg;
$errormsg=$leg->errormsg;
}
}
else
@@ -519,6 +519,7 @@ function LeDetailReset()
document.getElementById('lehrveranstaltung-detail-menulist-raumtypalternativ').value='Dummy';
document.getElementById('lehrveranstaltung-detail-menulist-studiensemester').value=getStudiensemester();
document.getElementById('lehrveranstaltung-detail-menulist-lehrform').value='UE';
document.getElementById('lehrveranstaltung-detail-textbox-lehreinheit_id').value='';
//mitarbeiterlehreinheit tree leeren
lektortree = document.getElementById('lehrveranstaltung-detail-tree-lehreinheitmitarbeiter');
@@ -57,7 +57,7 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>';
</toolbar>
</toolbox>
<iframe id="iframeTimeTableSemester" name="TimeTableSemester" flex="1"
src="<?php echo APP_ROOT; ?>content/lvplanung/timetable-week.xul.php?semesterplan=true" />
<iframe id="iframeTimeTableSemester" name="TimeTableSemester" flex="1" />
<!-- src="<?php echo APP_ROOT; ?>content/lvplanung/timetable-week.xul.php?semesterplan=true"-->
</vbox>
</overlay>
+36 -1
View File
@@ -23,6 +23,7 @@
require_once('../../config/vilesci.config.inc.php');
?>
// LVA-Panel aktualisieren
function onLVARefresh()
{
@@ -210,6 +211,7 @@ function onStplSearchRoom(event)
function StplSearchRoom(target)
{
saveScrollPositionTimeTableWeek();
if(typeof(target)==='undefined')
target = document.popupNode;
@@ -239,6 +241,7 @@ function StplSearchRoom(target)
function onStplDelete(aktion)
{
saveScrollPositionTimeTableWeek();
var contentFrame=document.getElementById('iframeTimeTableWeek');
var daten=document.getElementById('TimeTableWeekData');
var datum=parseInt(daten.getAttribute("datum"));
@@ -424,4 +427,36 @@ function STPLDetailDelete()
treeStplDetails.setAttribute('datasources', STPLlastDetailUrl);
}
}
}
}
// ****
// * Speichert die aktuelle Scrollposition der Wochenuebersicht.
// * Nach dem neuladen der Uebersicht, kann die Scrollposition mit setScrollpositionTimeTableWeek wieder gesetzt werden
// ****
function saveScrollPositionTimeTableWeek()
{
var sbox = document.getElementById('timetable-week-scrollbox');
if(sbox)
{
var xpcomInterface = sbox.boxObject.QueryInterface(Components.interfaces.nsIScrollBoxObject);
var x={};
var y={};
xpcomInterface.getPosition(x, y);
window.parent.TimeTableWeekPositionX=x.value;
window.parent.TimeTableWeekPositionY=y.value;
}
}
// ****
// * Setzt die Scrollposition wieder auf den Stand zurueck der zuvor mittels saveScrollPositionTimeTableWeek gespeichert wurde
// ****
function setScrollpositionTimeTableWeek()
{
var sbox = document.getElementById('timetable-week-scrollbox');
if(sbox)
{
var xpcomInterface = sbox.boxObject.QueryInterface(Components.interfaces.nsIScrollBoxObject);
xpcomInterface.scrollTo(window.parent.TimeTableWeekPositionX, window.parent.TimeTableWeekPositionY);
}
}
+12 -9
View File
@@ -32,7 +32,6 @@ require_once('../../include/wochenplan.class.php');
require_once('../../include/reservierung.class.php');
require_once('../../include/log.class.php');
echo '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>';
echo '<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>';
$PHP_SELF = $_SERVER['PHP_SELF'];
@@ -126,6 +125,7 @@ if (!isset($semester_aktuell) && $semesterplan)
<window id="windowTimeTableWeek"
xmlns:html="http://www.w3.org/1999/xhtml"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
<?php echo ((isset($semesterplan) && $semesterplan)?'':'onload="setScrollpositionTimeTableWeek()"'); ?>
>
<script type="application/x-javascript" src="chrome://global/content/nsTransferable.js"/>
@@ -138,7 +138,8 @@ if (isset($semesterplan) && $semesterplan)
else
echo '<script type="application/x-javascript" src="'.APP_ROOT.'content/lvplanung/stpl-week-overlay.js.php"/>';
?>
<vbox id="boxTimeTableWeek" flex="5" style="overflow:auto;">
<scrollbox id="timetable-week-scrollbox" flex="1" style="overflow:auto;" orient="vertical">
<vbox id="boxTimeTableWeek" flex="5">
<?php
$user=NULL;
@@ -266,7 +267,7 @@ if ($aktion=='stpl_move' || $aktion=='stpl_set')
}
//UNDO Befehl schreiben
if($undo!='')
if($undo!='' && $error_msg=='')
{
$log = new log();
$log->executetime = date('Y-m-d H:i:s');
@@ -275,7 +276,7 @@ if ($aktion=='stpl_move' || $aktion=='stpl_set')
$log->beschreibung = 'Stundenverschiebung '.$new_datum.'('.$new_stunde.') '.$ort;
$log->mitarbeiter_uid = $uid;
if(!$log->save(true))
$error_msg.='Fehler beim Schreiben des UNDO Befehls'.$log->errormsg;
$error_msg.='Fehler: '.$log->errormsg;
}
}
@@ -515,8 +516,8 @@ if (! $stdplan->load_data($type,$pers_uid,$ort,$stg_kz,$sem,$ver,$grp,$gruppe) &
$error_msg.=$stdplan->errormsg;
// Stundenplan einer Woche laden
if (! $stdplan->load_week($datum,$db_stpl_table))
$error_msg.=$stdplan->errormsg;
//if (! $stdplan->load_week($datum,$db_stpl_table))
// $error_msg.=$stdplan->errormsg;
while ($begin<=$ende)
{
$stdplan->init_stdplan();
@@ -545,20 +546,22 @@ while ($begin<=$ende)
}
// Stundenplan der Woche drucken
$stdplan->draw_week_xul($semesterplan,$uid,$zeitwunsch, $ignore_kollision);
$stdplan->draw_week_xul($semesterplan,$uid,$zeitwunsch, $ignore_kollision, $kollision_student);
}
?>
</vbox>
</scrollbox>
<label id="TimeTableWeekErrors"><?php echo htmlspecialchars($error_msg); ?></label>
<script type="application/x-javascript">
<?php
if ($error_msg!='')
echo "alert('".str_replace("'",'"',$error_msg)."');";
echo "alert('".str_replace("'",'"',str_replace(chr(10),'',htmlspecialchars($error_msg)))."');";
?>
top.document.getElementById("statusbarpanel-text").setAttribute("label","<?php echo htmlspecialchars($PHP_SELF.$error_msg); ?>");
top.document.getElementById("statusbarpanel-text").setAttribute("label","<?php echo str_replace(chr(10),' ',htmlspecialchars($PHP_SELF.$error_msg)); ?>");
</script>
</window>
@@ -185,7 +185,7 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
</row>
<row>
<label value="Firma" control="student-projektarbeit-menulist-firma"/>
<box class="Firma" id="student-projektarbeit-menulist-firma" />
<box class="Firma" id="student-projektarbeit-menulist-firma" disabled="true"/>
<!--
<hbox>
<menulist id="student-projektarbeit-menulist-firma" disabled="true"
+4
View File
@@ -24,6 +24,10 @@ require_once('../config/vilesci.config.inc.php');
var menuUndoDatasource=0;
var STPLlastDetailUrl='leer';
//Speichert die Position der Scrollbalken in der Wochenuebersicht
TimeTableWeekPositionX=0;
TimeTableWeekPositionY=0;
// ----------------------------------------------------------
// ------- CLASS Progressmeter ------------------------------
function Progressmeter(progress_id)
+16 -1
View File
@@ -49,6 +49,7 @@ echo '<?xml-stylesheet href="datepicker/datepicker.css" type="text/css"?>';
<command id="menu-prefs-ignore_kollision:command" oncommand="variableChange('ignore_kollision','menu-prefs-ignore_kollision');"/>
<command id="menu-prefs-ignore_zeitsperre:command" oncommand="variableChange('ignore_zeitsperre','menu-prefs-ignore_zeitsperre');"/>
<command id="menu-prefs-ignore_reservierung:command" oncommand="variableChange('ignore_reservierung','menu-prefs-ignore_reservierung');"/>
<command id="menu-prefs-kollision_student:command" oncommand="variableChange('kollision_student','menu-prefs-kollision_student');"/>
<command id="menu-extras-kollisionstudent:command" oncommand="KollisionStudentShow();"/>
<command id="menu-extras-lvplanwartung:command" oncommand="LVPlanWartungShow();"/>
<command id="menu-extras-rescheck:command" oncommand="ResCheckShow();"/>
@@ -120,7 +121,7 @@ echo '<?xml-stylesheet href="datepicker/datepicker.css" type="text/css"?>';
</menupopup>
</menu>
<?php
if($rechte->isBerechtigt('admin') || $rechte->isBerechtigt('lv-plan'))
if($rechte->isBerechtigt('lv-plan'))
{
?>
<menu id="menu-prefs-stpltable" label="&menu-prefs-stpltable.label;" accesskey="&menu-prefs-stpltable.accesskey;">
@@ -173,6 +174,16 @@ echo '<?xml-stylesheet href="datepicker/datepicker.css" type="text/css"?>';
checkbox ="true"
checked ="<?php echo $ignore_reservierung;?>"
/>
<menuitem
id ="menu-prefs-kollision_student"
type ="checkbox"
key ="menu-prefs-kollision_student:key"
label ="&menu-prefs-kollision_student.label;"
command ="menu-prefs-kollision_student:command"
accesskey ="&menu-prefs-kollision_student.accesskey;"
checkbox ="true"
checked ="<?php echo $kollision_student;?>"
/>
<?php
}
?>
@@ -258,6 +269,10 @@ echo '<?xml-stylesheet href="datepicker/datepicker.css" type="text/css"?>';
oncommand="studiensemesterChange('', 1)"
/>
</statusbarpanel>
<?php
if($rechte->isBerechtigt('system/developer'))
echo '<statusbarpanel label="'.DB_NAME.'"/>';
?>
<statusbarpanel id="statusbarpanel-db_table" label="<?php echo $db_stpl_table; ?>"/>
<statusbarpanel>
<toolbarbutton id="statusbarpanel-ignore_kollision" label="Kollisionscheck <?php echo ($ignore_kollision=='true'?'AUS':'AN'); ?>" <?php echo ($ignore_kollision=='true'?'style="background-color: RED;"':'');?> oncommand="updateignorekollision()"/>
+2 -2
View File
@@ -279,7 +279,7 @@ class adresse extends basis_db
$this->addslashes($this->name).', '.
$this->addslashes($this->strasse).', '.
$this->addslashes($this->plz).', '.
$this->addslashes($this->typ).', '.
$this->addslashes(trim($this->typ)).', '.
$this->addslashes($this->ort).', '.
$this->addslashes($this->nation).', now(), '.
$this->addslashes($this->insertvon).', '.
@@ -303,7 +303,7 @@ class adresse extends basis_db
' name='.$this->addslashes($this->name).', '.
' strasse='.$this->addslashes($this->strasse).', '.
' plz='.$this->addslashes($this->plz).', '.
' typ='.$this->addslashes($this->typ).', '.
' typ='.$this->addslashes(trim($this->typ)).', '.
' ort='.$this->addslashes($this->ort).', '.
' nation='.$this->addslashes($this->nation).', '.
' gemeinde='.$this->addslashes($this->gemeinde).', '.
+7 -1
View File
@@ -288,7 +288,13 @@ function loadVariables($user)
global $ignore_kollision;
$ignore_kollision='false';
}
if (!isset($kollision_student))
{
global $kollision_student;
$kollision_student='false';
}
if (!isset($ignore_zeitsperre))
{
global $ignore_zeitsperre;
+2 -2
View File
@@ -377,9 +377,9 @@ class lehreinheitgruppe extends basis_db
lehreinheit_id='".addslashes($this->lehreinheit_id)."' AND
studiengang_kz='".addslashes($this->studiengang_kz)."'";
if($this->semester!='')
$qry.=" AND trim(semester)='".addslashes($this->semester)."'";
$qry.=" AND semester='".addslashes($this->semester)."'";
else
$qry.=" AND (trim(semester)='' OR semester is null)";
$qry.=" AND (semester='' OR semester is null)";
if($this->verband!='')
$qry.=" AND trim(verband)='".addslashes($this->verband)."'";
+16
View File
@@ -204,6 +204,22 @@ class lehreinheitmitarbeiter extends basis_db
if($new)
{
//Pruefen ob dieser Mitarbeiter schon zugeordnet ist
$qry = "SELECT * FROM lehre.tbl_lehreinheitmitarbeiter WHERE lehreinheit_id='".addslashes($this->lehreinheit_id)."' AND mitarbeiter_uid='".addslashes($this->mitarbeiter_uid)."'";
if($this->db_query($qry))
{
if($this->db_num_rows()>0)
{
$this->errormsg='Der Mitarbeiter ist bereits zugeteilt!';
return false;
}
}
else
{
$this->errormsg='Fehler beim Pruefen der Zuordnung';
return false;
}
//ToDo ID entfernen
$qry = 'INSERT INTO lehre.tbl_lehreinheitmitarbeiter (lehreinheit_id, mitarbeiter_uid, semesterstunden, planstunden,
stundensatz, faktor, anmerkung, lehrfunktion_kurzbz, bismelden, ext_id, insertamum, insertvon)
+179 -81
View File
@@ -29,6 +29,7 @@
*/
require_once(dirname(__FILE__).'/basis_db.class.php');
require_once(dirname(__FILE__).'/studiensemester.class.php');
require_once(dirname(__FILE__).'/variable.class.php');
class lehrstunde extends basis_db
{
@@ -525,107 +526,65 @@ class lehrstunde extends basis_db
/**
* Prueft die geladene Lehrveranstaltung auf Kollisionen im Stundenplan.
* Rueckgabewert 'false' und die Fehlermeldung steht in '$this->errormsg'.
* @param string datum gewuenschtes Datum YYYY-MM-TT
* @param integer stunde gewuenschte Stunde
* @param string ort gewuenschter Ort
* Bei einer Kollision steht der Grund der Kollision in '$this->errormsg'.
* @param string db_stpl_table Tabllenname des Stundenplans im DBMS
* @return boolean true=ok, false=fehler
* @return boolean true=kollision, false=keine kollision
*/
public function kollision($stpl_table='stundenplandev')
{
$ignore_reservation=false;
$variablen_obj = new variable();
$variablen_obj->loadVariables(get_uid());
$kollision_student = $variablen_obj->variable->kollision_student;
$ignore_reservierung = $variablen_obj->variable->ignore_reservierung;
$ignore_zeitsperre = $variablen_obj->variable->ignore_zeitsperre;
//Kollisionspruefung auf Studentenebene
if($kollision_student=='true' && $this->kollision_student($stpl_table))
return true;
// Parameter Checken
// Bezeichnung der Stundenplan-Tabelle und des Keys
$stpl_id=$stpl_table.TABLE_ID;
$stpl_table='lehre.'.VIEW_BEGIN.$stpl_table;
// Datenbank abfragen
$sql_query="SELECT $stpl_id AS id, lektor, stg_kurzbz, ort_kurzbz, semester, verband, gruppe, gruppe_kurzbz, datum, stunde FROM $stpl_table
WHERE datum='$this->datum' AND stunde=$this->stunde AND (ort_kurzbz='$this->ort_kurzbz' OR ";
WHERE datum='$this->datum' AND stunde=$this->stunde AND (ort_kurzbz='$this->ort_kurzbz' ";
if ($this->lektor_uid!='_DummyLektor')
$sql_query.="(uid='$this->lektor_uid' AND uid!='_DummyLektor') OR ";
$sql_query.="(studiengang_kz=$this->studiengang_kz AND semester=$this->sem";
if ($this->ver!=null && $this->ver!='' && $this->ver!=' ')
$sql_query.=" AND (verband='$this->ver' OR verband IS NULL OR verband='' OR verband=' ')";
if ($this->grp!=null && $this->grp!='' && $this->grp!=' ')
$sql_query.=" AND (gruppe='$this->grp' OR gruppe IS NULL OR gruppe='' OR gruppe=' ')";
if ($this->gruppe_kurzbz!=null && $this->gruppe_kurzbz!='' && $this->gruppe_kurzbz!=' ')
$sql_query.=" AND (gruppe_kurzbz='$this->gruppe_kurzbz')";
$sql_query.=")) AND unr!=$this->unr";
$sql_query.=" OR (uid='$this->lektor_uid' AND uid!='_DummyLektor') ";
if (!$this->db_query($sql_query))
//Wenn eine Kollisionspruefung auf Studentenebene durchgefuehrt wird, werden die LVB nicht gecheckt
if(!$kollision_student)
{
$sql_query.=" OR (studiengang_kz=$this->studiengang_kz AND semester=$this->sem";
if ($this->ver!=null && $this->ver!='' && $this->ver!=' ')
$sql_query.=" AND (verband='$this->ver' OR verband IS NULL OR verband='' OR verband=' ')";
if ($this->grp!=null && $this->grp!='' && $this->grp!=' ')
$sql_query.=" AND (gruppe='$this->grp' OR gruppe IS NULL OR gruppe='' OR gruppe=' ')";
if ($this->gruppe_kurzbz!=null && $this->gruppe_kurzbz!='' && $this->gruppe_kurzbz!=' ')
$sql_query.=" AND (gruppe_kurzbz='$this->gruppe_kurzbz' OR gruppe_kurzbz IS null)";
$sql_query.=")";
}
$sql_query.=") AND unr!=$this->unr";
if (!$erg_stpl = $this->db_query($sql_query))
{
$this->errormsg=$sql_query.$this->db_last_error();
return true;
}
$erg_stpl = $this->db_result;
$anz=$this->db_num_rows($erg_stpl);
//Check
if ($anz==0)
{
// Zeitsperren pruefen
if ($this->lektor_uid!='_DummyLektor')
{
// Datenbank abfragen ( studiengang_kz, titel, beschreibung )
$sql_query="SELECT zeitsperre_id,zeitsperretyp_kurzbz,mitarbeiter_uid AS lektor,vondatum,vonstunde,bisdatum,bisstunde
FROM campus.tbl_zeitsperre
WHERE mitarbeiter_uid='$this->lektor_uid'
AND (vondatum<'$this->datum' OR (vondatum='$this->datum' AND (vonstunde<=$this->stunde OR vonstunde IS NULL)))
AND (bisdatum>'$this->datum' OR (bisdatum='$this->datum' AND (bisstunde>=$this->stunde OR bisstunde IS NULL)));";
//echo $sql_query.'<br>';
if (!$this->db_query($sql_query))
{
$this->errormsg=$sql_query.$this->db_last_error();
return true;
}
$erg_zs = $this->db_result;
$anz_zs=$this->db_num_rows($erg_zs);
//Check
if ($anz_zs!=0)
{
$row = $this->db_fetch_object($erg_zs);
$this->errormsg="Kollision (Zeitsperre): $row->zeitsperre_id|$row->lektor|$row->zeitsperretyp_kurzbz - $row->vondatum/$row->vonstunde|$row->bisdatum/$row->bisstunde";
return true;
}
}
// Reservierungen pruefen?
if (!$ignore_reservation)
{
// Datenbank abfragen ( studiengang_kz, titel, beschreibung )
$sql_query="SELECT reservierung_id AS id, uid AS lektor, stg_kurzbz, ort_kurzbz, semester, verband, gruppe, gruppe_kurzbz, datum, stunde
FROM lehre.vw_reservierung
WHERE datum='$this->datum' AND stunde=$this->stunde AND (ort_kurzbz='$this->ort_kurzbz' OR ";
if ($this->lektor_uid!='_DummyLektor')
$sql_query.="(uid='$this->lektor_uid' AND uid!='_DummyLektor') OR ";
$sql_query.="(studiengang_kz=$this->studiengang_kz AND semester=$this->sem";
if ($this->ver!=null && $this->ver!='' && $this->ver!=' ')
$sql_query.=" AND (verband='$this->ver' OR verband IS NULL OR verband='' OR verband=' ')";
if ($this->grp!=null && $this->grp!='' && $this->grp!=' ')
$sql_query.=" AND (gruppe='$this->grp' OR gruppe IS NULL OR gruppe='' OR gruppe=' ')";
if ($this->gruppe_kurzbz!=null && $this->gruppe_kurzbz!='' && $this->gruppe_kurzbz!=' ')
$sql_query.=" AND (gruppe_kurzbz='$this->gruppe_kurzbz')";
$sql_query.="))";
//echo $sql_query.'<br>';
if (!$this->db_query($sql_query))
{
$this->errormsg=$sql_query.$this->db_last_error();
return true;
}
$erg_res = $this->db_result;
$anz_res = $this->db_num_rows($erg_res);
//Check
if ($anz_res==0)
{
return false;
}
else
{
$row = $this->db_fetch_object($erg_res);
$this->errormsg="Kollision (Reservierung): $row->id|$row->lektor|$row->ort_kurzbz|$row->stg_kurzbz-$row->semester$row->verband$row->gruppe$row->gruppe_kurzbz - $row->datum/$row->stunde";
return true;
}
}
if($ignore_zeitsperre=='false' && $this->lektor_uid!='_DummyLektor' && $this->kollision_zeitsperre())
return true;
// Reservierungen pruefen
if ($ignore_reservierung=='false' && $this->kollision_reservierung())
return true;
return false;
}
else
@@ -635,6 +594,145 @@ class lehrstunde extends basis_db
return true;
}
}
/**
* Prueft ob eine Kollision mit den Zeitsperren vorhanden ist
*
* @return boolean true=kollision, false=keine kollision
*/
public function kollision_zeitsperre()
{
$sql_query="SELECT
zeitsperre_id,zeitsperretyp_kurzbz,mitarbeiter_uid AS lektor,vondatum,vonstunde,bisdatum,bisstunde
FROM campus.tbl_zeitsperre
WHERE mitarbeiter_uid='$this->lektor_uid'
AND (vondatum<'$this->datum' OR (vondatum='$this->datum' AND (vonstunde<=$this->stunde OR vonstunde IS NULL)))
AND (bisdatum>'$this->datum' OR (bisdatum='$this->datum' AND (bisstunde>=$this->stunde OR bisstunde IS NULL)));";
if (!$erg_zs = $this->db_query($sql_query))
{
$this->errormsg=$sql_query.$this->db_last_error();
return true;
}
$anz_zs=$this->db_num_rows($erg_zs);
if ($anz_zs!=0)
{
$row = $this->db_fetch_object($erg_zs);
$this->errormsg="Kollision (Zeitsperre): $row->zeitsperre_id|$row->lektor|$row->zeitsperretyp_kurzbz - $row->vondatum/$row->vonstunde|$row->bisdatum/$row->bisstunde";
return true;
}
return false;
}
/**
* Prueft ob eine LV-Plan Kollision mit den Reservierungen besteht
*
* @return boolean true=kollision, false=keine kollision
*/
public function kollision_reservierung()
{
$sql_query="SELECT
reservierung_id AS id, uid AS lektor, stg_kurzbz, ort_kurzbz,
semester, verband, gruppe, gruppe_kurzbz, datum, stunde
FROM lehre.vw_reservierung
WHERE
datum='$this->datum' AND
stunde=$this->stunde AND
(ort_kurzbz='$this->ort_kurzbz' OR ";
if ($this->lektor_uid!='_DummyLektor')
$sql_query.="(uid='$this->lektor_uid' AND uid!='_DummyLektor') OR ";
$sql_query.="(studiengang_kz=$this->studiengang_kz AND semester=$this->sem";
if ($this->ver!=null && $this->ver!='' && $this->ver!=' ')
$sql_query.=" AND (verband='$this->ver' OR verband IS NULL OR verband='' OR verband=' ')";
if ($this->grp!=null && $this->grp!='' && $this->grp!=' ')
$sql_query.=" AND (gruppe='$this->grp' OR gruppe IS NULL OR gruppe='' OR gruppe=' ')";
if ($this->gruppe_kurzbz!=null && $this->gruppe_kurzbz!='' && $this->gruppe_kurzbz!=' ')
$sql_query.=" AND (gruppe_kurzbz='$this->gruppe_kurzbz')";
$sql_query.="))";
if (!$erg_res = $this->db_query($sql_query))
{
$this->errormsg=$sql_query.$this->db_last_error();
return true;
}
$anz_res = $this->db_num_rows($erg_res);
if ($anz_res!=0)
{
$row = $this->db_fetch_object($erg_res);
$this->errormsg="Kollision (Reservierung): $row->id|$row->lektor|$row->ort_kurzbz|$row->stg_kurzbz-$row->semester$row->verband$row->gruppe$row->gruppe_kurzbz - $row->datum/$row->stunde";
return true;
}
return false;
}
/**
* Prueft eine Kollision auf Studentenebene
* Es werden nur die Kollisionen der Studenten abgefragt
* Raum, Lektor, Reservierung, Zeitsperren, etc werden hier nicht geprueft
*
* @param $stpl_table
* @return boolean true=kollision, false=keine kollision
*/
public function kollision_student($stpl_table='stundenplandev')
{
// Parameter Checken
// Bezeichnung der Stundenplan-Tabelle
$stpl_table='lehre.'.VIEW_BEGIN.$stpl_table;
$sql_query = "SELECT *
FROM ".$stpl_table."_student_unr
WHERE datum='$this->datum' AND stunde='$this->stunde' AND student_uid IN(
SELECT uid FROM public.vw_gruppen WHERE
";
$sql_query.="(studiengang_kz=$this->studiengang_kz AND semester=$this->sem
AND studiensemester_kurzbz=(
SELECT tbl_studiensemester.studiensemester_kurzbz
FROM
public.tbl_studiensemester
WHERE
tbl_studiensemester.ende >= '$this->datum'
AND tbl_studiensemester.start <='$this->datum' LIMIT 1)";
if ($this->gruppe_kurzbz!=null && $this->gruppe_kurzbz!='' && $this->gruppe_kurzbz!=' ')
$sql_query.=" AND (gruppe_kurzbz='$this->gruppe_kurzbz')";
else
{
if ($this->ver!=null && $this->ver!='' && $this->ver!=' ')
$sql_query.=" AND (verband='$this->ver')";
else
$sql_query.=" AND (verband IS NULL OR verband='' OR verband=' ')";
if ($this->grp!=null && $this->grp!='' && $this->grp!=' ')
$sql_query.=" AND (gruppe='$this->grp')";
else
$sql_query.=" AND (gruppe IS NULL OR gruppe='' OR gruppe=' ')";
}
$sql_query.=")) AND unr!=$this->unr";
if (!$erg_stpl=$this->db_query($sql_query))
{
$this->errormsg=$sql_query.$this->db_last_error();
return true;
}
$anz=$this->db_num_rows($erg_stpl);
if ($anz>0)
{
$row = $this->db_fetch_object($erg_stpl);
$this->errormsg="Kollision Student ($stpl_table): $row->student_uid $row->datum/$row->stunde ";
return true;
}
else
{
return false;
}
}
}
?>
+26 -6
View File
@@ -53,6 +53,7 @@ class lehrveranstaltung extends basis_db
public $updatevon; // string
public $sprache='German'; // varchar(16)
public $sort; // smallint
public $incoming; // smallint
public $zeugnis=true; // boolean
public $projektarbeit; // boolean
public $koordinator; // varchar(16)
@@ -116,6 +117,7 @@ class lehrveranstaltung extends basis_db
$this->updatevon=$row->updatevon;
$this->sprache=$row->sprache;
$this->sort=$row->sort;
$this->incoming=$row->incoming;
$this->zeugnis=($row->zeugnis=='t'?true:false);
$this->projektarbeit=($row->projektarbeit=='t'?true:false);
$this->koordinator=$row->koordinator;
@@ -167,6 +169,7 @@ class lehrveranstaltung extends basis_db
$lv_obj->updatevon=$row->updatevon;
$lv_obj->sprache=$row->sprache;
$lv_obj->sort=$row->sort;
$lv_obj->incoming=$row->incoming;
$lv_obj->zeugnis=($row->zeugnis=='t'?true:false);
$lv_obj->projektarbeit=($row->projektarbeit=='t'?true:false);
$lv_obj->koordinator=$row->koordinator;
@@ -234,7 +237,7 @@ class lehrveranstaltung extends basis_db
if ($sort == "bezeichnung")
$qry .= " ORDER BY bezeichnung";
else if (is_null($sort) || empty($sort))
elseif (is_null($sort) || empty($sort))
$qry .= " ORDER BY semester, bezeichnung";
else
$qry .= " ORDER BY $sort ";
@@ -273,6 +276,7 @@ class lehrveranstaltung extends basis_db
$lv_obj->updatevon=$row->updatevon;
$lv_obj->sprache=$row->sprache;
$lv_obj->sort=$row->sort;
$lv_obj->incoming=$row->incoming;
$lv_obj->zeugnis=($row->zeugnis=='t'?true:false);
$lv_obj->projektarbeit=($row->projektarbeit=='t'?true:false);
$lv_obj->koordinator=$row->koordinator;
@@ -285,7 +289,7 @@ class lehrveranstaltung extends basis_db
return true;
}
/**
/**
* Liefert alle Lehrveranstaltungen zu einem Studiengang/Semester
* @param $studiengang_kz
* @param $semester
@@ -344,11 +348,11 @@ class lehrveranstaltung extends basis_db
if ($sort == "bezeichnung")
$qry .= " ORDER BY bezeichnung";
else if (is_null($sort) || empty($sort))
elseif (is_null($sort) || empty($sort))
$qry .= " ORDER BY semester, bezeichnung";
else
$qry .= " ORDER BY $sort ";
#echo "<hr> $qry <hr>";
//Datensaetze laden
if(!$this->db_query($qry))
{
@@ -383,6 +387,7 @@ class lehrveranstaltung extends basis_db
$lv_obj->updatevon=$row->updatevon;
$lv_obj->sprache=$row->sprache;
$lv_obj->sort=$row->sort;
$lv_obj->incoming=$row->incoming;
$lv_obj->zeugnis=($row->zeugnis=='t'?true:false);
$lv_obj->projektarbeit=($row->projektarbeit=='t'?true:false);
$lv_obj->koordinator=$row->koordinator;
@@ -442,6 +447,7 @@ class lehrveranstaltung extends basis_db
$lv_obj->updatevon=$row->updatevon;
$lv_obj->sprache=$row->sprache;
$lv_obj->sort=$row->sort;
$lv_obj->incoming=$row->incoming;
$lv_obj->zeugnis=($row->zeugnis=='t'?true:false);
$lv_obj->projektarbeit=($row->projektarbeit=='t'?true:false);
$lv_obj->koordinator=$row->koordinator;
@@ -516,6 +522,16 @@ class lehrveranstaltung extends basis_db
$this->errormsg = 'Semesterstunden muss ein eine gueltige ganze Zahl sein';
return false;
}
if($this->sort!='' && !isint($this->sort))
{
$this->errormsg = 'Sort muss ein eine gueltige ganze Zahl sein';
return false;
}
if($this->incoming!='' && !isint($this->incoming))
{
$this->errormsg = 'Sort muss ein eine gueltige ganze Zahl sein';
return false;
}
$this->errormsg = '';
return true;
}
@@ -538,7 +554,7 @@ class lehrveranstaltung extends basis_db
//Neuen Datensatz anlegen
$qry = 'BEGIN; INSERT INTO lehre.tbl_lehrveranstaltung (studiengang_kz, bezeichnung, kurzbz, lehrform_kurzbz,
semester, ects, semesterstunden, anmerkung, lehre, lehreverzeichnis, aktiv, ext_id, insertamum,
insertvon, planfaktor, planlektoren, planpersonalkosten, plankostenprolektor, updateamum, updatevon, sort,zeugnis, projektarbeit, sprache, koordinator, bezeichnung_english, orgform_kurzbz) VALUES ('.
insertvon, planfaktor, planlektoren, planpersonalkosten, plankostenprolektor, updateamum, updatevon, sort,zeugnis, projektarbeit, sprache, koordinator, bezeichnung_english, orgform_kurzbz,incoming) VALUES ('.
$this->addslashes($this->studiengang_kz).', '.
$this->addslashes($this->bezeichnung).', '.
$this->addslashes($this->kurzbz).', ';
@@ -568,7 +584,8 @@ class lehrveranstaltung extends basis_db
$this->addslashes($this->sprache).','.
$this->addslashes($this->koordinator).','.
$this->addslashes($this->bezeichnung_english).','.
$this->addslashes($this->orgform_kurzbz).');';
$this->addslashes($this->orgform_kurzbz).','.
$this->addslashes($this->incoming).');';
}
else
{
@@ -608,6 +625,7 @@ class lehrveranstaltung extends basis_db
'updateamum='.$this->addslashes($this->updateamum) .','.
'updatevon='.$this->addslashes($this->updatevon) .','.
'sort='.$this->addslashes($this->sort) .','.
'incoming='.$this->addslashes($this->incoming).','.
'zeugnis='.($this->zeugnis?'true':'false').','.
'projektarbeit='.($this->projektarbeit?'true':'false').','.
'koordinator='.$this->addslashes($this->koordinator).','.
@@ -705,6 +723,7 @@ class lehrveranstaltung extends basis_db
$lv_obj->updatevon=$row->updatevon;
$lv_obj->sprache=$row->sprache;
$lv_obj->sort=$row->sort;
$lv_obj->incoming=$row->incoming;
$lv_obj->zeugnis=($row->zeugnis=='t'?true:false);
$lv_obj->projektarbeit=($row->projektarbeit=='t'?true:false);
$lv_obj->zeugnis=$row->koordinator;
@@ -781,6 +800,7 @@ class lehrveranstaltung extends basis_db
$l->insertamum = $row->insertamum;
$l->insertvon = $row->insertvon;
$l->sort = $row->sort;
$l->incoming = $row->incoming;
$l->zeugnis = ($row->zeugnis=='t'?true:false);
$l->projektarbeit = ($row->projektarbeit=='t'?true:false);
$l->koordinator = $row->koordinator;
+2 -2
View File
@@ -167,7 +167,7 @@ $menu=array
'link'=>'left.php?categorie=Inventar', 'target'=>'nav',
'Inventar'=> array
(
'name'=>'Inventar', 'permissions'=>array('admin','wawi','support'),
'name'=>'Inventar', 'permissions'=>array('admin','wawi','support','wawi/inventar'),
'Neu'=>array('name'=>'Neu', 'link'=>'inventar/inventar_pflege.php', 'target'=>'main'),
'Suche'=>array('name'=>'Suche', 'link'=>'inventar/inventar.php', 'target'=>'main'),
'AfA'=>array('name'=>'AfA', 'link'=>'inventar/inventar_afa.php', 'target'=>'main'),
@@ -176,7 +176,7 @@ $menu=array
),
'WAWI'=> array
(
'name'=>'WAWI', 'permissions'=>array('admin','wawi','support'),
'name'=>'WAWI', 'permissions'=>array('admin','wawi','support','wawi/inventar'),
'Suche'=>array('name'=>'Suche', 'link'=>'inventar/bestellung.php', 'target'=>'main'),
),
),
+14
View File
@@ -109,6 +109,18 @@ class variable extends basis_db
if(is_null($new))
$new = $this->new;
if(!is_bool($new))
{
$qry ="SELECT * FROM public.tbl_variable WHERE uid='".addslashes($this->uid)."' AND name='".addslashes($this->name)."';";
if($this->db_query($qry))
{
if($this->db_num_rows()==0)
$new=true;
else
$new=false;
}
}
//Variablen auf Gueltigkeit pruefen
if(!$this->validate())
return false;
@@ -247,6 +259,8 @@ class variable extends basis_db
if (!isset($this->variable->ignore_reservierung))
$this->variable->ignore_reservierung='false';
if (!isset($this->variable->kollision_student))
$this->variable->kollision_student='false';
return true;
}
+61 -17
View File
@@ -848,7 +848,7 @@ class wochenplan extends basis_db
* @param datum Datum eines Tages in der angeforderten Woche
* @return true oder false
*/
public function draw_week_xul($semesterplan, $uid, $wunsch=null, $ignore_kollision=false)
public function draw_week_xul($semesterplan, $uid, $wunsch=null, $ignore_kollision=false, $kollision_student=false)
{
//echo $wunsch;
global $cfgStdBgcolor;
@@ -924,7 +924,7 @@ class wochenplan extends basis_db
{
$isferien=$ferien->isferien($datum);
echo '<row><vbox>';
echo '<html:div><html:small>'.date("l",$datum).'<html:br /></html:small>'.date("j.m y",$datum).'</html:div>';
echo '<html:div><html:small>'.date("l",$datum).'<html:br /></html:small>'.date("j.m. y",$datum).'</html:div>';
echo '</vbox>';
for ($k=0; $k<$num_rows_stunde; $k++)
{
@@ -993,19 +993,58 @@ class wochenplan extends basis_db
$a_unr[]=$lehrstunde->unr;
$a_lvb[$lehrstunde->unr][]=$lehrstunde->sem.$lehrstunde->ver.$lehrstunde->grp;
}
// Unterrichtsnummer (Kollision?)
$a_unr=array_unique($a_unr);
$kollision+=count($a_unr);
// Ist es bei LVB-Ansicht wirklich eine Kollision?
if ($kollision>0 && $this->type=='verband')
//Kollisionspruefung Studentenebene
if($kollision_student=='true')
{
$kollision=0;
$a=0;
foreach ($a_unr as $unr)
$studiensemester = getStudiensemesterFromDatum(date('Y-m-d',$datum));
$qry = "SELECT datum, stunde, student_uid, count(student_uid) AS anzahl
FROM (
SELECT sub_stpl_uid.unr, sub_stpl_uid.datum, sub_stpl_uid.stunde, sub_stpl_uid.student_uid
FROM ( SELECT stpl.unr, stpl.datum, stpl.stunde, tbl_benutzergruppe.uid AS student_uid
FROM lehre.tbl_stundenplandev stpl
JOIN public.tbl_benutzergruppe USING (gruppe_kurzbz)
WHERE tbl_benutzergruppe.studiensemester_kurzbz::text = '".$studiensemester."'
GROUP BY stpl.unr, stpl.datum, stpl.stunde, tbl_benutzergruppe.uid
UNION
SELECT stpl.unr, stpl.datum, stpl.stunde, tbl_studentlehrverband.student_uid
FROM lehre.tbl_stundenplandev stpl
JOIN public.tbl_studentlehrverband ON stpl.gruppe_kurzbz IS NULL AND stpl.studiengang_kz = tbl_studentlehrverband.studiengang_kz AND stpl.semester = tbl_studentlehrverband.semester AND (stpl.verband = tbl_studentlehrverband.verband OR stpl.verband = ' '::bpchar AND stpl.verband <> tbl_studentlehrverband.verband) AND (stpl.gruppe = tbl_studentlehrverband.gruppe OR stpl.gruppe = ' '::bpchar AND stpl.gruppe <> tbl_studentlehrverband.gruppe)
WHERE tbl_studentlehrverband.studiensemester_kurzbz::text = '".$studiensemester."'
GROUP BY stpl.unr, stpl.datum, stpl.stunde, tbl_studentlehrverband.student_uid) sub_stpl_uid
GROUP BY sub_stpl_uid.unr, sub_stpl_uid.datum, sub_stpl_uid.stunde, sub_stpl_uid.student_uid
) as a
WHERE datum='".date('Y-m-d',$datum)."' AND stunde='$j'
GROUP BY datum, stunde, student_uid
HAVING count(student_uid)>1
ORDER BY datum, stunde, student_uid LIMIT 1;
";
if($this->db_query($qry))
if($this->db_num_rows()>0)
$kollision++;
}
else
{
//Kollisionspruefung LVB Ebene
// Ist es bei LVB-Ansicht wirklich eine Kollision?
if ($kollision>0 && $this->type=='verband')
{
array_unique($a_lvb[$unr]);
$lvb[$a++]=$a_lvb[$unr];
}
$kollision=0;
$a=0;
foreach ($a_unr as $unr)
{
array_unique($a_lvb[$unr]);
$lvb[$a++]=$a_lvb[$unr];
}
for ($a=0;$a<count($lvb)-1;$a++)
for ($b=0;$b<count($lvb[$a]);$b++)
for ($c=$a+1;$c<count($lvb);$c++)
@@ -1013,16 +1052,18 @@ class wochenplan extends basis_db
{
$s1=mb_substr($lvb[$a][$b],0,1);
$s2=mb_substr($lvb[$c][$d],0,1);
$v1=mb_substr($lvb[$a][$b],1,1);
$v2=mb_substr($lvb[$c][$d],1,1);
$g1=mb_substr($lvb[$a][$b],2,1);
$g2=mb_substr($lvb[$c][$d],2,1);
$v1=trim(mb_substr($lvb[$a][$b],1,1));
$v2=trim(mb_substr($lvb[$c][$d],1,1));
$g1=trim(mb_substr($lvb[$a][$b],2,1));
$g2=trim(mb_substr($lvb[$c][$d],2,1));
if ($s1==$s2 || !$s1 || $s1=='' || $s1=='0' || !$s2 || $s2=='' || $s2=='0')
if ($v1==$v2 || !$v1 || $v1=='' || $v1=='0' || !$v2 || $v2=='' || $v2=='0')
if ($g1==$g2 || !$g1 || $g1=='' || $g1=='0' || !$g2 || $g2=='' || $g2=='0')
$kollision++;
}
}
}
}
// Kollision anzeigen?
if ($ignore_kollision)
$kollision=0;
@@ -1141,14 +1182,17 @@ class wochenplan extends basis_db
$blink_aus='';
}
$stg_obj = new studiengang();
$stg_obj->load($stg_kz);
// Ausgabe
echo '<button id="buttonSTPL'.$count++.'"
tooltiptext="('.$updatevonam.') '.$titel.' - '.$anmerkung.'"
style="border-width:1px;'.((isset($farbe) && $farbe!='')?'background-color:#'.$farbe:'').';"
styleOrig="border-width:1px;'.((isset($farbe) && $farbe!='')?'background-color:#'.$farbe:'').'" ';
if ($berechtigung->isBerechtigt('lv-plan',$stg_kz,'uid') || $berechtigung->isBerechtigt('lv-plan',0,'uid') || $berechtigung->isBerechtigt('admin',0,'uid') || $berechtigung->isBerechtigt('admin',$stg_kz,'uid'))
styleOrig="border-width:1px;'.((isset($farbe) && $farbe!='')?'background-color:#'.$farbe:'').';" ';
if ($berechtigung->isBerechtigt('lehre/lvplan',$stg_obj->oe_kurzbz,'uid'))
echo ' context="stplPopupMenue" ';
if ($berechtigung->isBerechtigt('lv-plan',$stg_kz,'u') || $berechtigung->isBerechtigt('lv-plan',0,'u') || $berechtigung->isBerechtigt('admin',0,'u') || $berechtigung->isBerechtigt('admin',$stg_kz,'u'))
if ($berechtigung->isBerechtigt('lehre/lvplan',$stg_obj->oe_kurzbz,'u'))
echo 'ondraggesture="nsDragAndDrop.startDrag(event,listObserver)" ';
echo 'ondragdrop="nsDragAndDrop.drop(event,boardObserver)"
ondragover="nsDragAndDrop.dragOver(event,boardObserver)"
+4
View File
@@ -50,6 +50,10 @@
<!ENTITY menu-prefs-ignore_kollision.label "ignore_kollision">
<!ENTITY menu-prefs-ignore_kollision.accesskey "k">
<!ENTITY menu-prefs-kollision_student.key "s">
<!ENTITY menu-prefs-kollision_student.label "kollision_student">
<!ENTITY menu-prefs-kollision_student.accesskey "s">
<!ENTITY menu-help-about.key "U">
<!ENTITY menu-help-about.label "Über FHComplete">
<!ENTITY menu-help-about.accesskey "U">
+16 -1
View File
@@ -973,6 +973,10 @@ if(!@$db->db_query('SELECT gid FROM public.tbl_gruppe'))
OR trim(tbl_lehrverband.gruppe)=''
OR tbl_studentlehrverband.gruppe is null
);
GRANT SELECT ON public.vw_gruppen TO admin;
GRANT SELECT ON public.vw_gruppen TO web;
CREATE INDEX idx_benutzer_aktiv ON public.tbl_benutzer (aktiv);
";
if(!$db->db_query($qry))
@@ -981,6 +985,17 @@ if(!@$db->db_query('SELECT gid FROM public.tbl_gruppe'))
echo 'tbl_gruppe/tbl_lehrverband: GID wurde hinzugefuegt! (inklusive Trigger und View)<br>';
}
//Spalte incoming zur Lehrveranstaltung hinzufuegen. Legt fest wie viele Incoming an der LV teilnehmen duerfen
if(!@$db->db_query('SELECT incoming FROM lehre.tbl_lehrveranstaltung'))
{
$qry = "ALTER TABLE lehre.tbl_lehrveranstaltung ADD COLUMN incoming smallint DEFAULT null;";
if(!$db->db_query($qry))
echo '<strong>lehre.tbl_lehrveranstaltung: '.$db->db_last_error().'</strong><br>';
else
echo 'lehre.tbl_lehrveranstaltung: Spalte incoming hinzugefuegt<br>';
}
echo '<br>';
$tabellen=array(
@@ -1050,7 +1065,7 @@ $tabellen=array(
"lehre.tbl_lehrfach" => array("lehrfach_id","studiengang_kz","fachbereich_kurzbz","kurzbz","bezeichnung","farbe","aktiv","semester","sprache","updateamum","updatevon","insertamum","insertvon","ext_id"),
"lehre.tbl_lehrform" => array("lehrform_kurzbz","bezeichnung","verplanen"),
"lehre.tbl_lehrfunktion" => array("lehrfunktion_kurzbz","beschreibung","standardfaktor","sort"),
"lehre.tbl_lehrveranstaltung" => array("lehrveranstaltung_id","kurzbz","bezeichnung","lehrform_kurzbz","studiengang_kz","semester","sprache","ects","semesterstunden","anmerkung","lehre","lehreverzeichnis","aktiv","planfaktor","planlektoren","planpersonalkosten","plankostenprolektor","koordinator","sort","zeugnis","projektarbeit","updateamum","updatevon","insertamum","insertvon","ext_id","bezeichnung_english","orgform_kurzbz"),
"lehre.tbl_lehrveranstaltung" => array("lehrveranstaltung_id","kurzbz","bezeichnung","lehrform_kurzbz","studiengang_kz","semester","sprache","ects","semesterstunden","anmerkung","lehre","lehreverzeichnis","aktiv","planfaktor","planlektoren","planpersonalkosten","plankostenprolektor","koordinator","sort","zeugnis","projektarbeit","updateamum","updatevon","insertamum","insertvon","ext_id","bezeichnung_english","orgform_kurzbz","incoming"),
"lehre.tbl_moodle" => array("lehrveranstaltung_id","lehreinheit_id","moodle_id","mdl_course_id","studiensemester_kurzbz","gruppen","insertamum","insertvon"),
"lehre.tbl_note" => array("note","bezeichnung","anmerkung","farbe"),
"lehre.tbl_note" => array("note","bezeichnung","anmerkung","farbe"),
+246 -126
View File
@@ -26,19 +26,28 @@ require_once('../../include/functions.inc.php');
require_once('../../include/benutzerberechtigung.class.php');
require_once('../../include/fachbereich.class.php');
require_once('../../include/lvinfo.class.php');
require_once('../../include/lehrveranstaltung.class.php');
if (!$db = new basis_db())
die('Es konnte keine Verbindung zum Server aufgebaut werden.');
$s=new studiengang();
$s->getAll('typ, kurzbz', false);
$studiengang=$s->result;
$user = get_uid();
$oe_studiengang='';
if (isset($_GET['stg_kz']) || isset($_POST['stg_kz']))
{
$stg_kz=(isset($_GET['stg_kz'])?$_GET['stg_kz']:$_POST['stg_kz']);
if($stg_kz!='')
{
$stg_obj = new studiengang();
if(!$stg_obj->load($stg_kz))
die('Studiengang kann nicht geladen werden');
$oe_studiengang = $stg_obj->oe_kurzbz;
}
}
else
$stg_kz='';
@@ -57,112 +66,221 @@ if(!is_numeric($stg_kz) && $stg_kz!='')
if(!is_numeric($semester))
$semester=0;
$fachbereich_kurzbz = (isset($_REQUEST['fachbereich_kurzbz'])?$_REQUEST['fachbereich_kurzbz']:'');
$oe_fachbereich='';
if(isset($_REQUEST['fachbereich_kurzbz']))
{
$fachbereich_kurzbz = $_REQUEST['fachbereich_kurzbz'];
if($fachbereich_kurzbz!='')
{
$fb_obj = new fachbereich();
if(!$fb_obj->load($fachbereich_kurzbz))
die('Institut konnte nicht geladen werden');
$oe_fachbereich = $fb_obj->oe_kurzbz;
}
}
else
$fachbereich_kurzbz = '';
//Wenn kein Fachbereich und kein Studiengang gewaehlt wurde
//dann wird der Studiengang auf 0 gesetzt da sonst die zu ladende liste zu lang wird
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($user);
$write_admin=false;
$write_low=false;
if(!$rechte->isBerechtigt('admin', $stg_kz, 'suid')
&& !$rechte->isBerechtigt('assistenz', $stg_kz, 'suid')
&& !$rechte->isBerechtigt('assistenz', null, 'suid', $fachbereich_kurzbz))
die('Sie haben keine Berechtigung für diesen Studiengang');
if($rechte->isBerechtigt('lehre/lehrveranstaltung', $oe_studiengang, 'suid')
|| $rechte->isBerechtigt('lehre/lehrveranstaltung', $oe_fachbereich, 'suid'))
$write_admin=true;
if($rechte->isBerechtigt('lehre/lehrveranstaltung:begrenzt', $oe_studiengang, 'suid')
|| $rechte->isBerechtigt('lehre/lehrveranstaltung:begrenzt', $oe_fachbereich, 'suid'))
$write_low=true;
if(!$rechte->isBerechtigt('lehre/lehrveranstaltung:begrenzt'))
die('Sie haben keine Berechtigung fuer diese Seite');
if(isset($_GET['lvid']) && is_numeric($_GET['lvid']))
{
if($rechte->isBerechtigt('admin', $stg_kz, 'suid'))
if($write_admin)
{
//Lehrevz Speichern
if(isset($_POST['lehrevz']))
{
$qry = "UPDATE lehre.tbl_lehrveranstaltung SET lehreverzeichnis='".addslashes($_POST['lehrevz'])."' WHERE lehrveranstaltung_id='".$_GET['lvid']."'";
if(!$db->db_query($qry))
echo "Fehler beim Speichern!";
else
echo "Erfolgreich gespeichert";
$lv_obj = new lehrveranstaltung();
if($lv_obj->load($_GET['lvid']))
{
$lv_obj->lehreverzeichnis=$_POST['lehrevz'];
$lv_obj->updateamum = date('Y-m-d H:i:s');
$lv_obj->updatevon = $user;
if($lv_obj->save(false))
echo 'Erfolgreich gespeichert';
else
echo 'Fehler beim Speichern:'.$lv_obj->errormsg;
}
else
echo 'Fehler beim Laden der LV:'.$lv_obj->errormsg;
}
//Aktiv Feld setzen
if(isset($_GET['aktiv']))
{
$qry = "UPDATE lehre.tbl_lehrveranstaltung SET aktiv=".($_GET['aktiv']=='t'?'false':'true')." WHERE lehrveranstaltung_id='".$_GET['lvid']."'";
if(!$db->db_query($qry))
echo "Fehler beim Speichen!";
else
echo "Erfolgreich gespeichert";
$lv_obj = new lehrveranstaltung();
if($lv_obj->load($_GET['lvid']))
{
$lv_obj->aktiv=($_GET['aktiv']=='t'?false:true);
$lv_obj->updateamum = date('Y-m-d H:i:s');
$lv_obj->updatevon = $user;
if($lv_obj->save(false))
echo 'Erfolgreich gespeichert';
else
echo 'Fehler beim Speichern:'.$lv_obj->errormsg;
}
else
echo 'Fehler beim Laden der LV:'.$lv_obj->errormsg;
}
//Organisationsform Speichern
if(isset($_POST['orgform']))
{
$qry = "UPDATE lehre.tbl_lehrveranstaltung SET orgform_kurzbz=".($_POST['orgform']==''?'null':"'".addslashes($_POST['orgform'])."'")." WHERE lehrveranstaltung_id='".$_GET['lvid']."'";
if(!$db->db_query($qry))
echo "Fehler beim Speichern!";
else
echo "Erfolgreich gespeichert";
$lv_obj = new lehrveranstaltung();
if($lv_obj->load($_GET['lvid']))
{
$lv_obj->orgform_kurzbz=$_POST['orgform'];
$lv_obj->updateamum = date('Y-m-d H:i:s');
$lv_obj->updatevon = $user;
if($lv_obj->save(false))
echo 'Erfolgreich gespeichert';
else
echo 'Fehler beim Speichern:'.$lv_obj->errormsg;
}
else
echo 'Fehler beim Laden der LV:'.$lv_obj->errormsg;
}
}
//LVInfo kopieren
if(isset($_POST['source_id']))
if($write_low || $write_admin)
{
$lvinfo = new lvinfo();
if(!$lvinfo->copy($_POST['source_id'], $_GET['lvid']))
echo 'Fehler beim Kopieren';
else
echo 'Erfolgreich gespeichert';
}
//LVInfo kopieren
if(isset($_POST['source_id']))
{
$lvinfo = new lvinfo();
if(!$lvinfo->copy($_POST['source_id'], $_GET['lvid']))
echo 'Fehler beim Kopieren';
else
echo 'Erfolgreich gespeichert';
}
//Lehre Feld setzen
if(isset($_GET['lehre']))
{
$lv_obj = new lehrveranstaltung();
if($lv_obj->load($_GET['lvid']))
{
$lv_obj->lehre=($_GET['lehre']=='t'?false:true);
$lv_obj->updateamum = date('Y-m-d H:i:s');
$lv_obj->updatevon = $user;
if($lv_obj->save(false))
echo 'Erfolgreich gespeichert';
else
echo 'Fehler beim Speichern:'.$lv_obj->errormsg;
}
else
echo 'Fehler beim Laden der LV:'.$lv_obj->errormsg;
}
//Lehre Feld setzen
if(isset($_GET['lehre']))
{
$qry = "UPDATE lehre.tbl_lehrveranstaltung SET lehre=".($_GET['lehre']=='t'?'false':'true')." WHERE lehrveranstaltung_id='".$_GET['lvid']."'";
if(!$db->db_query($qry))
echo "Fehler beim Speichen!";
else
echo "Erfolgreich gespeichert";
//Zeugnis Feld setzen
if(isset($_GET['zeugnis']))
{
$lv_obj = new lehrveranstaltung();
if($lv_obj->load($_GET['lvid']))
{
$lv_obj->zeugnis=($_GET['zeugnis']=='t'?false:true);
$lv_obj->updateamum = date('Y-m-d H:i:s');
$lv_obj->updatevon = $user;
if($lv_obj->save(false))
echo 'Erfolgreich gespeichert';
else
echo 'Fehler beim Speichern:'.$lv_obj->errormsg;
}
else
echo 'Fehler beim Laden der LV:'.$lv_obj->errormsg;
}
//Sort Speichern
if(isset($_POST['sort']))
{
$lv_obj = new lehrveranstaltung();
if($lv_obj->load($_GET['lvid']))
{
$lv_obj->sort=$_POST['sort'];
$lv_obj->updateamum = date('Y-m-d H:i:s');
$lv_obj->updatevon = $user;
if($lv_obj->save(false))
echo 'Erfolgreich gespeichert';
else
echo 'Fehler beim Speichern:'.$lv_obj->errormsg;
}
else
echo 'Fehler beim Laden der LV:'.$lv_obj->errormsg;
}
//Incoming Speichern
if(isset($_POST['incoming']))
{
$lv_obj = new lehrveranstaltung();
if($lv_obj->load($_GET['lvid']))
{
$lv_obj->incoming=$_POST['incoming'];
$lv_obj->updateamum = date('Y-m-d H:i:s');
$lv_obj->updatevon = $user;
if($lv_obj->save(false))
echo 'Erfolgreich gespeichert';
else
echo 'Fehler beim Speichern:'.$lv_obj->errormsg;
}
else
echo 'Fehler beim Laden der LV:'.$lv_obj->errormsg;
}
//FBK Speichern
if(isset($_POST['fbk']))
{
$lv_obj = new lehrveranstaltung();
if($lv_obj->load($_GET['lvid']))
{
$lv_obj->koordinator=$_POST['fbk'];
$lv_obj->updateamum = date('Y-m-d H:i:s');
$lv_obj->updatevon = $user;
if($lv_obj->save(false))
echo 'Erfolgreich gespeichert';
else
echo 'Fehler beim Speichern:'.$lv_obj->errormsg;
}
else
echo 'Fehler beim Laden der LV:'.$lv_obj->errormsg;
}
//Projektarbeit Feld setzen
if(isset($_GET['projektarbeit']))
{
$lv_obj = new lehrveranstaltung();
if($lv_obj->load($_GET['lvid']))
{
$lv_obj->projektarbeit=($_GET['projektarbeit']=='t'?false:true);
$lv_obj->updateamum = date('Y-m-d H:i:s');
$lv_obj->updatevon = $user;
if($lv_obj->save(false))
echo 'Erfolgreich gespeichert';
else
echo 'Fehler beim Speichern:'.$lv_obj->errormsg;
}
else
echo 'Fehler beim Laden der LV:'.$lv_obj->errormsg;
}
}
//Zeugnis Feld setzen
if(isset($_GET['zeugnis']))
else
{
$qry = "UPDATE lehre.tbl_lehrveranstaltung SET zeugnis=".($_GET['zeugnis']=='t'?'false':'true')." WHERE lehrveranstaltung_id='".$_GET['lvid']."'";
if(!$db->db_query($qry))
echo "Fehler beim Speichen!";
else
echo "Erfolgreich gespeichert";
}
//Sort Speichern
if(isset($_POST['sort']))
{
$qry = "UPDATE lehre.tbl_lehrveranstaltung SET sort=".($_POST['sort']!=''?"'".addslashes($_POST['sort'])."'":'null')." WHERE lehrveranstaltung_id='".$_GET['lvid']."'";
if(!$db->db_query($qry))
echo "Fehler beim Speichern!";
else
echo "Erfolgreich gespeichert";
}
//FBK Speichern
if(isset($_POST['fbk']))
{
$qry = "UPDATE lehre.tbl_lehrveranstaltung SET koordinator=".($_POST['fbk']==''?'null':"'".addslashes($_POST['fbk'])."'")." WHERE lehrveranstaltung_id='".$_GET['lvid']."'";
if(!$db->db_query($qry))
echo "Fehler beim Speichern!";
else
echo "Erfolgreich gespeichert";
}
//Projektarbeit Feld setzen
if(isset($_GET['projektarbeit']))
{
$qry = "UPDATE lehre.tbl_lehrveranstaltung SET projektarbeit=".($_GET['projektarbeit']=='t'?'false':'true')." WHERE lehrveranstaltung_id='".$_GET['lvid']."'";
//echo $qry;
if(!$db->db_query($qry))
echo "Fehler beim Speichen!";
else
echo "Erfolgreich gespeichert";
echo 'Sie haben keine Schreibrechte fuer diese Seite';
}
}
@@ -209,7 +327,7 @@ if($result = $db->db_query($qry))
//Wenn nicht admin, dann nur die aktiven anzeigen
$aktiv='';
$isaktiv=trim($isaktiv);
if(!$rechte->isBerechtigt('admin'))
if(!$write_admin)
$aktiv = ' AND tbl_lehrveranstaltung.aktiv=true';
else
{
@@ -249,9 +367,11 @@ $s=array();
$outp.="<form action='".$_SERVER['PHP_SELF']."' method='GET' onsubmit='return checksubmit();'>";
$outp.=" Studiengang <SELECT name='stg_kz' id='select_stg_kz'>";
$outp.="<OPTION value='' ".($stg_kz==''?'selected':'').">-- Alle --</OPTION>";
$stg_berechtigt = $rechte->getStgKz('lehre/lehrveranstaltung:begrenzt');
foreach ($studiengang as $stg)
{
if($rechte->isBerechtigt('admin', $stg->studiengang_kz, 'suid') || $rechte->isBerechtigt('assistenz', $stg->studiengang_kz, 'suid'))
if(in_array($stg->studiengang_kz, $stg_berechtigt))
{
$outp.="<OPTION value='$stg->studiengang_kz' ".($stg->studiengang_kz==$stg_kz?'selected':'').">$stg->kuerzel - $stg->kurzbzlang</OPTION>";
}
@@ -273,6 +393,7 @@ $outp.= ' Institut <SELECT name="fachbereich_kurzbz" id="select_fachbereich_kurz
$fachb = new fachbereich();
$fachb->getAll();
$outp.= "<OPTION value='' ".($fachbereich_kurzbz==''?'selected':'').">-- Alle --</OPTION>";
$fachbereich_berechtigt = $rechte->getFbKz('lehre/lehrveranstaltung:begrenzt');
foreach ($fachb->result as $fb)
{
if($fachbereich_kurzbz==$fb->fachbereich_kurzbz)
@@ -280,15 +401,13 @@ foreach ($fachb->result as $fb)
else
$selected = '';
if($rechte->isBerechtigt('admin', 0, 'suid') ||
$rechte->isBerechtigt('assistenz', null, 'suid', $fb->fachbereich_kurzbz) ||
$rechte->isBerechtigt('admin', null, 'suid', $fb->fachbereich_kurzbz))
$outp.= "<OPTION value='$fb->fachbereich_kurzbz' $selected>$fb->fachbereich_kurzbz</OPTION>";
if(in_array($fb->fachbereich_kurzbz, $fachbereich_berechtigt))
$outp.= "<OPTION value='$fb->fachbereich_kurzbz' $selected>$fb->fachbereich_kurzbz</OPTION>";
}
$outp.= '</SELECT>';
if($rechte->isBerechtigt('admin'))
if($write_admin)
{
//Aktiv DropDown
$outp.= ' Aktiv <SELECT name="isaktiv" id="isaktiv">';
@@ -309,28 +428,25 @@ $outp .="</form>";
echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Lehrveranstaltung Verwaltung</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" href="../../skin/vilesci.css" type="text/css">
<link rel="stylesheet" href="../../include/js/tablesort/table.css" type="text/css">
<script src="../../include/js/tablesort/table.js" type="text/javascript"></script>
<script language="Javascript">
var isaktiv="'.$isaktiv.'";
function checksubmit()
{
//alert(document.getElementById("select_stg_kz").value+" : "+document.getElementById("select_fachbereich_kurzbz").value);
//return false;
if(document.getElementById("select_stg_kz").value==\'\' && document.getElementById("select_fachbereich_kurzbz").value==\'\')
{
alert("Studiengang und Fachbereich dürfen nicht gleichzeitig auf \'Alle\' gesetzt sein");
return false;
}
else
return true;
}
</script>
<title>Lehrveranstaltung Verwaltung</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" href="../../skin/vilesci.css" type="text/css">
<link rel="stylesheet" href="../../include/js/tablesort/table.css" type="text/css">
<script src="../../include/js/tablesort/table.js" type="text/javascript"></script>
<script type="text/javascript">
var isaktiv="'.$isaktiv.'";
function checksubmit()
{
if(document.getElementById("select_stg_kz").value==\'\' && document.getElementById("select_fachbereich_kurzbz").value==\'\')
{
alert("Studiengang und Fachbereich dürfen nicht gleichzeitig auf \'Alle\' gesetzt sein");
return false;
}
else
return true;
}
</script>
</head>
<body class="Background_main">
';
@@ -341,7 +457,7 @@ echo $outp;
echo '</td><td>';
//Neu Button
if($rechte->isBerechtigt('admin'))
if($write_admin)
echo "<input type='button' onclick='parent.lv_detail.location=\"lehrveranstaltung_details.php?neu=true&stg_kz=$stg_kz&semester=$semester\"' value='Neu'/>";
echo '</td></tr></table>';
@@ -357,17 +473,18 @@ if ($result_lv!=0)
<th class='table-sortable:default'>Bezeichnung</th>
<th class='table-sortable:default'>LF</th>
<th class='table-sortable:default'>Stg</th>
<th class='table-sortable:default'>Organisationsform</th>
<th class='table-sortable:default'>SS</th>
<th class='table-sortable:default'>Orgform</th>
<th class='table-sortable:default' title='Semesterstunden'>SS</th>
<th class='table-sortable:default'>ECTS</th>
<th class='table-sortable:default'>Lehre</th>
<th class='table-sortable:default'>LehreVz</th>
<th class='table-sortable:default' title='Verzeichnisname im Filesystem'>LehreVz</th>
<th class='table-sortable:default'>Aktiv</th>
<th class='table-sortable:numeric'>Sort</th>
<th class='table-sortable:numeric' title='Sortierreihenfolge der LV am Zeugnis'>Sort</th>
<th class='table-sortable:numeric' title='Anzahl der Incoming die an dieser LV teilnehmen duerfen'>Incoming</th>
<th class='table-sortable:default'>Zeugnis</th>
<th class='table-sortable:default'>BA/DA</th>
<th class='table-sortable:default' title='Soll diese Lehrveranstaltung bei Diplom-/Bachelorarbeit ausgewaehlt werden koennen?'>BA/DA</th>
<th class='table-sortable:default'>Koordinator</th>
<th class='table-sortable:default'>LVInfo</th>\n";
<th class='table-sortable:default'>LV-Info</th>\n";
echo "</tr></thead>";
echo "<tbody>";
for($i=0;$i<$num_rows;$i++)
@@ -377,7 +494,7 @@ if ($result_lv!=0)
//ID
echo "<td align='right'>";
if($rechte->isBerechtigt('admin'))
if($write_admin)
echo "<a href='lehrveranstaltung_details.php?lv_id=$row->lehrveranstaltung_id' target='lv_detail'>$row->lehrveranstaltung_id</a>";
else
echo "$row->lehrveranstaltung_id";
@@ -386,7 +503,7 @@ if ($result_lv!=0)
echo "<td>$row->kurzbz</td>";
//Bezeichnung
echo "<td>";
if($rechte->isBerechtigt('admin'))
if($write_admin)
echo "<a href='lehrveranstaltung_details.php?lv_id=$row->lehrveranstaltung_id' target='lv_detail'>$row->bezeichnung</a>";
else
echo $row->bezeichnung;
@@ -395,7 +512,7 @@ if ($result_lv!=0)
echo "<td>".$s[$row->studiengang_kz]->kurzbz."</td>";
//Organisationsform
echo "<td style='white-space:nowrap;'>";
if($rechte->isBerechtigt('admin'))
if($write_admin)
{
echo "<form action='".$_SERVER['PHP_SELF']."?lvid=$row->lehrveranstaltung_id&stg_kz=$stg_kz&semester=$semester&fachbereich_kurzbz=$fachbereich_kurzbz&isaktiv=$isaktiv' method='POST'>";
echo "<SELECT name='orgform'>";
@@ -430,14 +547,14 @@ if ($result_lv!=0)
echo "<td align='center'><a href='".$_SERVER['PHP_SELF']."?lvid=$row->lehrveranstaltung_id&stg_kz=$stg_kz&semester=$semester&lehre=$row->lehre&isaktiv=$isaktiv&fachbereich_kurzbz=$fachbereich_kurzbz'><img src='../../skin/images/".($row->lehre=='t'?'true.png':'false.png')."' height='20'></a></td>";
//LehreVz
echo "<td style='white-space:nowrap;'>";
if($rechte->isBerechtigt('admin'))
if($write_admin)
echo "<form action='".$_SERVER['PHP_SELF']."?lvid=$row->lehrveranstaltung_id&stg_kz=$stg_kz&semester=$semester&isaktiv=$isaktiv&fachbereich_kurzbz=$fachbereich_kurzbz' method='POST'><input type='text' value='$row->lehreverzeichnis' size='4' name='lehrevz'><input type='submit' value='ok'></form>";
else
echo $row->lehreverzeichnis;
echo "</td>";
//Aktiv
echo "<td align='center' style='white-space:nowrap;'>";
if($rechte->isBerechtigt('admin'))
if($write_admin)
echo "<a href='".$_SERVER['PHP_SELF']."?lvid=$row->lehrveranstaltung_id&stg_kz=$stg_kz&semester=$semester&aktiv=$row->aktiv&isaktiv=$isaktiv&fachbereich_kurzbz=$fachbereich_kurzbz'><img src='../../skin/images/".($row->aktiv=='t'?'true.png':'false.png')."' height='20'></a>";
else
echo ($row->aktiv?'Ja':'Nein');
@@ -447,6 +564,11 @@ if ($result_lv!=0)
echo "<div style='display: none'>$row->sort</div>";
echo "<form action='".$_SERVER['PHP_SELF']."?lvid=$row->lehrveranstaltung_id&stg_kz=$stg_kz&semester=$semester&isaktiv=$isaktiv&fachbereich_kurzbz=$fachbereich_kurzbz' method='POST'><input type='text' value='$row->sort' size='4' name='sort'><input type='submit' value='ok'></form>";
echo "</td>";
//Incoming
echo "<td style='white-space:nowrap;'>";
echo "<div style='display: none'>$row->incoming</div>";
echo "<form action='".$_SERVER['PHP_SELF']."?lvid=$row->lehrveranstaltung_id&stg_kz=$stg_kz&semester=$semester&isaktiv=$isaktiv&fachbereich_kurzbz=$fachbereich_kurzbz' method='POST'><input type='text' value='$row->incoming' size='4' name='incoming'><input type='submit' value='ok'></form>";
echo "</td>";
//Zeugnis
echo "<td align='center'><a href='".$_SERVER['PHP_SELF']."?lvid=$row->lehrveranstaltung_id&stg_kz=$stg_kz&semester=$semester&zeugnis=$row->zeugnis&isaktiv=$isaktiv&fachbereich_kurzbz=$fachbereich_kurzbz'><img src='../../skin/images/".($row->zeugnis=='t'?'true.png':'false.png')."' height='20'></a></td>";
//Projektarbeit
@@ -464,7 +586,7 @@ if ($result_lv!=0)
echo "<option value='$fb_uid' $selected>".$fb_k['nachname']." ".$fb_k['vorname']."</option>";
}
echo "</SELECT><input type='submit' value='ok' name='submitfbk'></form>";
echo "</td>";
echo '</td>';
echo '<td nowrap>';
//LVInfo
$lvinfo = new lvinfo();
@@ -484,11 +606,9 @@ if ($result_lv!=0)
}
else
echo "Kein Eintrag gefunden!";
echo 'Kein Eintrag gefunden!';
?>
</tbody>
</table>
<br>
</body>
</tbody>
</table>
</body>
</html>
+18 -8
View File
@@ -49,6 +49,10 @@
{
$lv->new=false;
}
else
{
die('Fehler beim Laden der Lehrveranstaltung');
}
}
else
{
@@ -77,6 +81,7 @@
$lv->updateamum = date('Y-m-d H:i:s');
$lv->updatevon = $user;
$lv->sort = $_POST['sort'];
$lv->incoming = $_POST['incoming'];
$lv->zeugnis = isset($_POST['zeugnis']);
$lv->projektarbeit = isset($_POST['projektarbeit']);
$lv->orgform_kurzbz = $_POST['orgform_kurzbz'];
@@ -259,6 +264,14 @@
$htmlstr .= "</SELECT>";
$htmlstr .= " </td>";
$htmlstr .= " <td></td>";
$htmlstr .= " <td>Incomingpl&auml;tze</td>";
$htmlstr .= " <td><input type='text' name='incoming' value='$lv->incoming' maxlength='2'></td>";
$htmlstr .= " </tr><tr>\n";
$htmlstr .= " <td></td>";
$htmlstr .= " <td></td>";
$htmlstr .= " <td></td>";
$htmlstr .= " <td></td>";
$htmlstr .= " <td></td>";
$htmlstr .= " <td><input type='submit' value='Speichern' name='schick'></td>";
$htmlstr .= " </tr>\n";
@@ -272,14 +285,11 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Lehrveranstaltung - Details</title>
<link rel="stylesheet" href="../../skin/vilesci.css" type="text/css">
<script src="../../include/js/mailcheck.js"></script>
<script src="../../include/js/datecheck.js"></script>
<script type="text/javascript">
</script>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Lehrveranstaltung - Details</title>
<link rel="stylesheet" href="../../skin/vilesci.css" type="text/css">
<script src="../../include/js/mailcheck.js"></script>
<script src="../../include/js/datecheck.js"></script>
</head>
<body style="background-color:#eeeeee;">
-187
View File
@@ -1,187 +0,0 @@
<?php
/* Copyright (C) 2006 Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger < christian.paminger@technikum-wien.at >
* Andreas Oesterreicher < andreas.oesterreicher@technikum-wien.at >
* Rudolf Hangl < rudolf.hangl@technikum-wien.at >
* Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at >
*/
/*
Entfernen (doppelter) Interessenten
*/
require_once('../../config/vilesci.config.inc.php');
require_once('../../include/basis_db.class.php');
if (!$db = new basis_db())
die('Es konnte keine Verbindung zum Server aufgebaut werden.');
require_once('../../include/functions.inc.php');
function myaddslashes($var)
{
return ($var!=''?"'".addslashes($var)."'":'null');
}
$msg='';
//prestudent_id
if (isset($_GET['prestudent']) || isset($_POST['prestudent']))
{
$prestudent=(isset($_GET['prestudent'])?$_GET['prestudent']:$_POST['prestudent']);
}
else
{
$prestudent='';
}
//person_id
if (isset($_GET['person']) || isset($_POST['person']))
{
$person=(isset($_GET['person'])?$_GET['person']:$_POST['person']);
}
else
{
$person='';
}
if($person!='' && $prestudent!='')
{
$qry="SELECT * FROM public.tbl_prestudent WHERE person_id=".$person.";";
if($result = $db->db_query($qry))
{
if($db->db_num_rows($result)>1)
{
$q2="SELECT * FROM public.tbl_prestudent WHERE person_id=".$person." AND prestudent_id=".$prestudent.";";
if($result2 = $db->db_query($q2))
{
if($db->db_num_rows($result2)<1)
{
//kein prestudent mit eingegebener person_id und prestudent_id gefunden
$msg="Die Eingaben passen nicht zusammen!";
}
else
{
$q3="SELECT * FROM public.tbl_prestudentstatus WHERE prestudent_id=".$prestudent." AND status_kurzbz='Interessent';";
if($result3 = $db->db_query($q3))
{
if($db->db_num_rows($result3)==1)
{
//mehrere prestudenten an diesem studenten => nur prestudentrolle und prestudent werden gelöscht
$del="DELETE FROM public.tbl_prestudentstatus WHERE prestudent_id=".$prestudent." AND status_kurzbz='Interessent';DELETE FROM public.tbl_prestudent WHERE prestudent_id=".$prestudent.";";
if($db->db_query($del))
{
$msg="Prestudent mit ID ".$prestudent." und Prestudentrolle Interessent entfernt.<br>".mb_eregi_replace(";DELETE",";<br>DELETE",$del);
}
else
{
$msg="Fehler bei: ".$del;
}
}
else
{
$msg="Eingabedaten zeigen nicht auf einen Interessenten!";
}
}
}
}
}
elseif($db->db_num_rows($result)==1)
{
if($row = $db->db_fetch_object($result))
{
if($row->prestudent_id==$prestudent)
{
$q3="SELECT * FROM public.tbl_prestudentstatus WHERE prestudent_id=".$prestudent." AND status_kurzbz='Interessent';";
if($result3 = $db->db_query($q3))
{
if($db->db_num_rows($result3)==1)
{
//löschen von prestudentrolle, prestudent, adresse, kontakt und person werden gelöscht
$del="DELETE FROM public.tbl_prestudentstatus WHERE prestudent_id=".$prestudent." AND status_kurzbz='Interessent';DELETE FROM public.tbl_prestudent WHERE prestudent_id=".$prestudent.";DELETE FROM public.tbl_adresse WHERE person_id=".$person.";DELETE FROM public.tbl_kontakt WHERE person_id=".$person.";DELETE FROM public.tbl_person WHERE person_id=".$person.";";
if($db->db_query($del))
{
$msg="Prestudent mit ID ".$prestudent." und Person mit ID ".$person." entfernt.<br>".mb_eregi_replace(";DELETE",";<br>DELETE",$del);
}
else
{
$msg="Fehler bei: ".$del;
}
}
else
{
$msg="Eingabedaten zeigen nicht auf einen Interessenten!";
}
}
}
else
{
$msg="Eingaben passen nicht zusammen!";
}
}
}
else
{
//kein prestudent gefunden
$msg="Keinen Prestudent mit dieser person_id gefunden! Bitte Eingabe überprüfen!";
}
}
}
else
{
$msg="Bitte beide Parameter eingeben!";
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link href="../../skin/vilesci.css" rel="stylesheet" type="text/css">
<title>Entfernen von (doppelten) Interessenten</title>
</head>
<body>
<H1>Entfernen von (doppelten) Interessenten</H1>
<?php
echo "<form name='suche' action='interessent_entfernen.php' method='POST'>";
echo "<table><tr>";
echo "<th>prestudent_id</th><th>person_id</th><th>&nbsp;</th>";
echo "<tr>";
echo "<td><input name=\"prestudent\" type=\"text\" value=\"$prestudent\" size=\"16\" maxlength=\"8\"></td>";
echo "<td><input name='person' type='text' value=\"$person\" size='16' maxlength='8'></td>";
echo "<td><input type='submit' value=' entfernen '></td></tr>";
echo "</table></form>";
?>
<br>
<center><h2><?php echo "<span style=\"font-size:0.7em\">".
#substr(CONN_STRING,strpos(CONN_STRING,'dbname=')+7,strpos(CONN_STRING,'user=')-strpos(CONN_STRING,'dbname=')-7).": ".
$msg."</span>"; ?></h2></center>
<br>
</tr>
</table>
</body>
</html>
+4 -6
View File
@@ -20,12 +20,7 @@
* Rudolf Hangl < rudolf.hangl@technikum-wien.at >
* Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at >
*/
require_once('../../config/vilesci.config.inc.php');
require_once('../../include/basis_db.class.php');
if (!$db = new basis_db())
die('Es konnte keine Verbindung zum Server aufgebaut werden.');
require_once('../../config/vilesci.config.inc.php');
require_once('../../include/functions.inc.php');
require_once('../../include/benutzerberechtigung.class.php');
require_once('../../include/studiengang.class.php');
@@ -40,6 +35,9 @@ require_once('../../include/firma.class.php');
$user = get_uid();
if (!$db = new basis_db())
die('Es konnte keine Verbindung zum Server aufgebaut werden.');
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($user);