Files
FHC-Core/content/lvplanung/timetable-week.xul.php
T
Andreas Österreicher 299d5f528d Problem behoben beim Verschieben von Stundenblöcken mit Kollision.
Wenn bei einer Stundenverschiebung eine der geblockten Stunden
kollidiert wird nun keine Verschiebung durchgeführt. Bisher wurden die
Stunden die zu keiner kollision führten dennoch durchgeführt. Die
Kollidierende Stunde blieb am Ursprung.
2018-01-09 17:50:00 +01:00

731 lines
21 KiB
PHP

<?php
/* Copyright (C) 2008 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> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
* Gerald Simane-Sequens <gerald.simane-sequens@technikum-wien.at>.
*/
header("Content-type: application/vnd.mozilla.xul+xml");
require_once('../../config/vilesci.config.inc.php');
require_once('../../include/globals.inc.php');
require_once('../../include/functions.inc.php');
require_once('../../include/benutzerberechtigung.class.php');
require_once('../../include/lehreinheit.class.php');
require_once('../../include/zeitwunsch.class.php');
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'];
// Startwerte setzen
$db_stpl_table=null;
$db = new basis_db();
echo '<?xml-stylesheet href="'.APP_ROOT.'skin/tempus.css" type="text/css"?>';
$uid = get_uid();
//Berechtigung pruefen
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($uid);
if(!$rechte->isBerechtigt('lehre/lvplan'))
die('Sie haben keine Berechtigung fuer diese Seite');
$error_msg='';
$kollision_msg='';
// Benutzerdefinierte Variablen laden
loadVariables($uid);
if (!isset($ignore_kollision))
$ignore_kollision=(boolean)false;
elseif ($ignore_kollision=='false')
$ignore_kollision=(boolean)false;
else
$ignore_kollision=(boolean)true;
if (!isset($alle_unr_mitladen))
$alle_unr_mitladen=(boolean)false;
elseif ($alle_unr_mitladen=='false')
$alle_unr_mitladen=(boolean)false;
else
$alle_unr_mitladen=(boolean)true;
// Bezeichnungen fuer Tabellen und Views
$lva_stpl_view=VIEW_BEGIN.'lva_'.$db_stpl_table;
// Variablen uebernehmen
if (isset($_GET['aktion']))
$aktion=$_GET['aktion'];
else
$aktion=null;
if (isset($_GET['semesterplan']))
$semesterplan=$_GET['semesterplan'];
else
$semesterplan=false;
if (isset($_GET['new_stunde']))
$new_stunde=$_GET['new_stunde'];
if (isset($_GET['new_datum']))
$new_datum=$_GET['new_datum'];
if (isset($_GET['old_ort']))
$old_ort=$_GET['old_ort'];
if (isset($_GET['new_ort']))
$new_ort=$_GET['new_ort'];
if (isset($_GET['kollisionsanzahl']))
$kollisionsanzahl=$_GET['kollisionsanzahl'];
else
$kollisionsanzahl=0;
if (isset($_GET['ort']))
$ort=$_GET['ort'];
else
$ort=null;
if (isset($_GET['datum']))
$datum=$_GET['datum'];
if (isset($_GET['type']))
$type=$_GET['type'];
if (isset($_GET['stg_kz']))
$stg_kz=$_GET['stg_kz'];
else
$stg_kz=null;
if (isset($_GET['sem']))
$sem=$_GET['sem'];
else
$sem=null;
if (isset($_GET['ver']))
$ver=$_GET['ver'];
else
$ver=null;
if (isset($_GET['grp']))
$grp=$_GET['grp'];
else
$grp=null;
if (isset($_GET['pers_uid']))
$pers_uid=$_GET['pers_uid'];
if (isset($_GET['gruppe']))
$gruppe=$_GET['gruppe'];
else
$gruppe=null;
if (isset($_GET['semester_aktuell']))
$semester_aktuell=$_GET['semester_aktuell'];
if (!isset($semester_aktuell) && $semesterplan)
$error_msg.='Studien-Semester ist nicht gesetzt!';
if(isset($_GET['fachbereich_kurzbz']))
$fachbereich_kurzbz = $_GET['fachbereich_kurzbz'];
else
$fachbereich_kurzbz=null;
if (isset($_GET['new_unr']))
$new_unr=$_GET['new_unr'];
else
$new_unr=null;
if (isset($_GET['new_blockung']))
$new_blockung=$_GET['new_blockung'];
else
$new_blockung=null;
?>
<!DOCTYPE page SYSTEM "chrome://tempus/locale/de-AT/tempus.dtd">
<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"/>
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/DragAndDrop.js"/>
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/dragboard.js.php"/>
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/functions.js.php"/>
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/phpRequest.js.php" />
<?php
if (isset($semesterplan) && $semesterplan)
echo '<script type="application/x-javascript" src="'.APP_ROOT.'content/lvplanung/stpl-semester-overlay.js.php"/>';
else
echo '<script type="application/x-javascript" src="'.APP_ROOT.'content/lvplanung/stpl-week-overlay.js.php"/>';
?>
<scrollbox id="timetable-week-scrollbox" flex="1" style="overflow:auto;" orient="vertical">
<vbox id="boxTimeTableWeek" flex="5">
<keyset>
<key id="timetable-week-key-delete" keycode="VK_DELETE" oncommand="TimetableDeleteEntries();"/>
</keyset>
<?php
$user=NULL;
// User bestimmen
if (!isset($type))
$type='lektor';
if (!isset($pers_uid))
$pers_uid=$uid;
// Datums Format
//if(!$db->db_query("SET datestyle TO ISO;"))
// $error_msg=$db->db_last_error();
// ****************************************************************************
// Variablen fuer Aktionen setzen
if ($aktion=='lva_single_search' || $aktion=='lva_single_set'
|| $aktion=='lva_multi_search' || $aktion=='lva_multi_set'
|| $aktion=='lva_stpl_del_multi' || $aktion=='lva_stpl_del_single')
{
$i=0;
$name_lva_id='lva_id'.$i;
while ($i<100 && isset($_GET[$name_lva_id]))
{
$lva_id[$i]=$_GET[$name_lva_id];
//$error_msg.=$lva_id[$i];
$name_lva_id='lva_id'.++$i;
}
$lva_id=array_unique($lva_id);
}
if ($aktion=='stpl_move' || $aktion=='stpl_single_search' || $aktion=='stpl_set' || $aktion=='stpl_delete_single')
{
$i=0;
$name_stpl_id='stundenplan_id'.$i;
while ($i<100 && isset($_GET[$name_stpl_id]))
{
$stpl_id[]=$_GET[$name_stpl_id];
//echo $stpl_id[$i];
$name_stpl_id='stundenplan_id'.++$i;
}
// Mehrfachauswahl uebernehmen
$j=0;
$name_stpl_idx='x'.$j.'stundenplan_id0';
while ($j<100 && isset($_GET[$name_stpl_idx]))
{
$i=0;
$name_stpl_id='x'.$j.'stundenplan_id'.$i;
while ($i<100 && isset($_GET[$name_stpl_id]))
{
$stpl_idx[]=$_GET[$name_stpl_id];
$name_stpl_id='x'.$j.'stundenplan_id'.++$i;
}
$name_stpl_idx='x'.++$j.'stundenplan_id0';
}
//ReservierungsIDs
$i=0;
$name_res_id='reservierung_id'.$i;
while ($i<100 && isset($_GET[$name_res_id]))
{
$res_id[]=$_GET[$name_res_id];
$name_res_id='reservierung_id'.++$i;
}
// Mehrfachauswahl uebernehmen
$j=0;
$name_res_idx='x'.$j.'reservierung_id0';
while ($j<100 && isset($_GET[$name_res_idx]))
{
$i=0;
$name_res_id='x'.$j.'reservierung_id'.$i;
while ($i<100 && isset($_GET[$name_res_id]))
{
$res_idx[]=$_GET[$name_res_id];
$name_res_id='x'.$j.'reservierung_id'.++$i;
}
$name_res_idx='x'.++$j.'reservierung_id0';
}
}
// ****************************************************************************
// Aktionen durchfuehren
$db->db_query('BEGIN;');
// *************** Stunden verschieben ****************************************
if ($aktion=='stpl_move' || $aktion=='stpl_set')
{
$undo='';
$sql='';
$moved=array();
foreach ($stpl_id as $stundenplan_id)
{
$moved[]=$stundenplan_id;
$lehrstunde=new lehrstunde();
$lehrstunde->load($stundenplan_id,$db_stpl_table);
if($rechte->isBerechtigt('lehre/lvplan',$lehrstunde->studiengang_kz,'ui'))
{
$undo.=$lehrstunde->getUndo($db_stpl_table);
$diffStunde=$new_stunde-$lehrstunde->stunde;
$lehrstunde->datum=$new_datum;
$lehrstunde->stunde=$new_stunde;
if ($ort!=$old_ort)
$lehrstunde->ort_kurzbz=$ort;
if ($aktion=='stpl_set')
$lehrstunde->ort_kurzbz=$new_ort;
if($new_unr!='')
$lehrstunde->unr = $new_unr;
$kollision=$lehrstunde->kollision($db_stpl_table);
if ($kollision && !$ignore_kollision)
$kollision_msg.=$lehrstunde->errormsg;
if (!$kollision || $ignore_kollision || $kollisionsanzahl>0)
{
if(!$lehrstunde->save($uid,$db_stpl_table))
$error_msg.=$lehrstunde->errormsg;
$sql.=$lehrstunde->lastqry;
}
}
else
{
$error_msg.="Sie haben keine Berechtigung zur Verschiebung von Stunden des Studienganges ".$lehrstunde->studiengang;
}
}
// Mehrfachauswahl
if (isset($stpl_idx))
{
foreach ($stpl_idx as $stundenplan_id)
{
if(!in_array($stundenplan_id, $moved))
{
$lehrstunde=new lehrstunde();
$lehrstunde->load($stundenplan_id,$db_stpl_table);
if($rechte->isBerechtigt('lehre/lvplan',$lehrstunde->studiengang_kz,'ui'))
{
$undo.=$lehrstunde->getUndo($db_stpl_table);
$lehrstunde->datum=$new_datum;
$lehrstunde->stunde+=$diffStunde;
if ($ort!=$old_ort)
$lehrstunde->ort_kurzbz=$ort;
if ($aktion=='stpl_set')
$lehrstunde->ort_kurzbz=$new_ort;
if($new_unr!='')
$lehrstunde->unr = $new_unr;
$kollision=$lehrstunde->kollision($db_stpl_table);
if ($kollision && !$ignore_kollision)
$kollision_msg.=$lehrstunde->errormsg;
if (!$kollision || $ignore_kollision || $kollisionsanzahl>0)
{
if(!$lehrstunde->save($uid,$db_stpl_table))
$error_msg.=$lehrstunde->errormsg;
$sql.=$lehrstunde->lastqry;
}
}
else
{
$error_msg.="Sie haben keine Berechtigung zur Verschiebung von Stunden des Studienganges ".$lehrstunde->studiengang;
}
}
}
}
//UNDO Befehl schreiben
if($undo!='' && $error_msg=='' && $sql!='' && $kollision_msg=='')
{
$log = new log();
$log->executetime = date('Y-m-d H:i:s');
$log->sqlundo = $undo;
$log->sql = $sql;
$log->beschreibung = 'Stundenverschiebung '.$new_datum.'('.$new_stunde.') '.$ort;
$log->mitarbeiter_uid = $uid;
if(!$log->save(true))
$error_msg.='Fehler: '.$log->errormsg;
}
}
// ****************** STPL Delete *******************************
elseif ($aktion=='stpl_delete_single' || $aktion=='stpl_delete_block')
{
$lehrstunde=new lehrstunde();
if($rechte->isBerechtigt('lehre/lvplan',null,'uid'))
{
//Einzelne Stunden entfernen
if(isset($stpl_id))
{
foreach ($stpl_id as $stundenplan_id)
{
$lehrstunde->delete($stundenplan_id,$db_stpl_table);
$error_msg.=$lehrstunde->errormsg;
}
}
//Loeschen von mehreren Stunden
if(isset($stpl_idx))
{
foreach ($stpl_idx as $stundenplan_id)
{
$lehrstunde->delete($stundenplan_id,$db_stpl_table);
$error_msg.=$lehrstunde->errormsg;
}
}
if(isset($res_id))
{
foreach ($res_id as $reservierung_id)
{
$reservierung = new reservierung();
$reservierung->load($reservierung_id);
$deletetext = ' AND datum='.$reservierung->datum.' AND stunde='.$reservierung->stunde.' AND titel='.$reservierung->titel.' AND beschreibung='.$reservierung->beschreibung.' AND uid='.$reservierung->uid.';';
$reservierung->delete($reservierung_id);
$error_msg.=$reservierung->errormsg;
//UNDO Befehl zum mitloggen von geloeschten Reservierungen
if($error_msg=='')
{
$log = new log();
$log->executetime = date('Y-m-d H:i:s');
$log->sqlundo = '';
$log->sql = 'DELETE FROM campus.tbl_reservierung WHERE reservierung_id='.$reservierung_id.$deletetext;
$log->beschreibung = 'Löschen der Reservierung '.$reservierung_id;
$log->mitarbeiter_uid = $uid;
if(!$log->save(true))
$error_msg.='Fehler: '.$log->errormsg;
}
}
}
//Loeschen von mehreren Reservierungen
if(isset($res_idx))
{
foreach ($res_idx as $reservierung_id)
{
$reservierung = new reservierung();
$reservierung->load($reservierung_id);
$deletetext = ' AND datum='.$reservierung->datum.' AND stunde='.$reservierung->stunde.' AND titel='.$reservierung->titel.' AND beschreibung='.$reservierung->beschreibung.' AND uid='.$reservierung->uid.';';
$reservierung->delete($reservierung_id);
$error_msg.=$reservierung->errormsg;
//UNDO Befehl zum mitloggen von geloeschten Reservierungen
if($error_msg=='')
{
$log = new log();
$log->executetime = date('Y-m-d H:i:s');
$log->sqlundo = '';
$log->sql = 'DELETE FROM campus.tbl_reservierung WHERE reservierung_id='.$reservierung_id.$deletetext;
$log->beschreibung = 'Löschen der Reservierung '.$reservierung_id;
$log->mitarbeiter_uid = $uid;
if(!$log->save(true))
$error_msg.='Fehler: '.$log->errormsg;
}
}
}
}
else
{
$error_msg.="Sie haben keine Berechtigung fuer diese Aktion";
}
}
// ******************** Lehrveranstaltung setzen ******************************
elseif ($aktion=='lva_single_set')
{
if($rechte->isBerechtigt('lehre/lvplan',null,'ui'))
{
$z=0;
foreach ($lva_id AS $le_id)
{
$lva[$z]=new lehreinheit();
$lva[$z]->loadLE($le_id);
if($new_unr!='')
$lva[$z]->unr=$new_unr;
if($new_blockung!='')
$lva[$z]->stundenblockung=$new_blockung;
//$error_msg.='test'.$le_id.($lva[$i]->errormsg).($lva[$i]->stundenblockung);
for ($j=0;$j<$lva[$z]->stundenblockung && $error_msg=='';$j++)
if (!$lva[$z]->check_lva($new_datum,$new_stunde+$j,$new_ort,$db_stpl_table) && !$ignore_kollision)
$kollision_msg.=$lva[$z]->errormsg."\n";
$z++;
}
for ($i=0;$i<$z && $error_msg=='';$i++)
{
if($new_unr!='')
$lva[$i]->unr=$new_unr;
if($new_blockung!='')
$lva[$i]->stundenblockung=$new_blockung;
for ($j=0;$j<$lva[$i]->stundenblockung;$j++)
{
if (!$lva[$i]->save_stpl($new_datum,$new_stunde+$j,$new_ort,$db_stpl_table,$uid))
$error_msg.='Error: '.$lva[$i]->errormsg;
}
}
}
else
{
$error_msg.="Sie haben keine Berechtigung fuer diese Aktion";
}
}
//******************* Multi Verplanung ***************
elseif ($aktion=='lva_multi_set')
{
if($rechte->isBerechtigt('lehre/lvplan',null,'ui'))
{
// Ferien holen
$ferien=new ferien();
if ($type=='verband')
$ferien->getAll($stg_kz);
else
$ferien->getAll(0);
// Ende holen
if (!$result_semester=$db->db_query("SELECT * FROM public.tbl_studiensemester WHERE studiensemester_kurzbz=".$db->db_add_param($semester_aktuell).";"))
die ($db->db_last_error());
if ($db->db_num_rows()>0)
{
$row = $db->db_fetch_object();
$ende = $row->ende;
}
else
$error_msg.="Fatal Error: Ende Datum ist nicht gesetzt ($semester_aktuell)!";
$ende=mktime(0,0,1,substr($ende,5,2),substr($ende,8,2),substr($ende,0,4));
$anz_lvas=count($lva_id);
// Arrays intitialisieren
$wochenrythmus=array();
$verplant=array();
$block=array();
$wochenrythmus=array();
$semesterstunden=array();
$planstunden=array();
$offenestunden=array();
// LVAs holen
$sql_query='SELECT * FROM lehre.'.$lva_stpl_view.' WHERE';
$lvas='';
foreach ($lva_id as $id)
$lvas.=' OR lehreinheit_id='.$id;
$lvas=substr($lvas,3);
$sql_query.=$lvas;
if(!$result_lva = $db->db_query($sql_query))
$error_msg.=$db->db_last_error();
$num_rows_lva=$db->db_num_rows($result_lva);
// Daten aufbereiten
for ($i=0;$i<$num_rows_lva;$i++)
{
$row=$db->db_fetch_object($result_lva,$i);
$verplant[]=$row->verplant;
$block[]=$row->stundenblockung;
$wochenrythmus[]=$row->wochenrythmus;
$semesterstunden[]=$row->semesterstunden;
$planstunden[]=$row->planstunden;
$offenestunden[]=$row->planstunden-$row->verplant;
}
// Variablen eindeutig?
// Offene Stunden
$os=$offenestunden[0];
$offenestunden=array_unique($offenestunden);
if (count($offenestunden)==1)
$offenestunden=$os;
else
$error_msg.='Offene Stunden sind nicht eindeutig!';
//Blockung
$blk=$block[0];
$block=array_unique($block);
if (count($block)==1)
$block=$blk;
else
$error_msg.='Blockung ist nicht eindeutig!';
//Wochenrythmus
$wr=$wochenrythmus[0];
$wochenrythmus=array_unique($wochenrythmus);
if (count($wochenrythmus)==1)
$wochenrythmus=$wr;
else
$error_msg.='Wochenrythmus ist nicht eindeutig!';
$count=0;
$rest=$offenestunden;
if ($rest<=0)
$error_msg.='Es sind bereits alle Stunden verplant!'.$rest;
if ($error_msg=='')
{
$d=mktime(0,0,1,substr($new_datum,5,2),substr($new_datum,8),substr($new_datum,0,4));
while ($rest>0 && $d<$ende)
{
if ($rest<$block && $rest>0)
$block=$rest;
//LVAs holen und pruefen ob moeglich
for ($i=0;$i<$anz_lvas;$i++)
{
$lva[$i]=new lehreinheit();
$lva[$i]->loadLE($lva_id[$i]);
for ($j=0;$j<$block;$j++)
if (!$lva[$i]->check_lva($new_datum,$new_stunde+$j,$new_ort,$db_stpl_table) && !$ignore_kollision)
$kollision_msg.=$lva[$i]->errormsg;
}
// LVAs setzen
for ($i=0;$i<$anz_lvas && $error_msg=='';$i++)
for ($j=0;$j<$block;$j++)
if (!$lva[$i]->save_stpl($new_datum,$new_stunde+$j,$new_ort,$db_stpl_table,$uid))
$error_msg.=$lva[$i]->errormsg;
$d=jump_week($d,$wochenrythmus);
while ($ferien->isferien($d))
$d=jump_week($d,$wochenrythmus);
// Es kann sein, dass die Zeitumstellung (1 Stunde) Probleme macht
// Falls 23 Uhr eine Stunde nach vor
$new_datum=date('Y-m-d',$d);
$rest-=$block;
}
}
}
else
{
$error_msg.="Sie haben keine Berechtigung fuer diese Aktion";
}
}
// Lehrveranstaltungen aus dem Stundenplan loeschen
elseif ($aktion=='lva_stpl_del_multi' || $aktion=='lva_stpl_del_single')
{
if($rechte->isBerechtigt('lehre/lvplan',null,'uid'))
{
$result_semester = $db->db_query("SELECT start,ende FROM public.tbl_studiensemester WHERE studiensemester_kurzbz='".addslashes($semester_aktuell)."';");
if ($db->db_num_rows()>0)
{
$start=date('Y-m-d',$datum);
if ($aktion=='lva_stpl_del_multi')
{
$row = $db->db_fetch_object($result_semester);
$ende = $row->ende;
}
else
$ende=date('Y-m-d',jump_week($datum,1));
$anz_lvas=count($lva_id);
$sql_query_lvaid='';
$sql_query='DELETE FROM lehre.'.TABLE_BEGIN.$db_stpl_table.' WHERE (';
for ($i=0;$i<$anz_lvas;$i++)
$sql_query_lvaid.=' OR lehreinheit_id='.$lva_id[$i];
$sql_query_lvaid=substr($sql_query_lvaid,3);
$sql_query.=$sql_query_lvaid;
$sql_query.=") AND datum>='$start' AND datum<'$ende'";
if(!$result_lva_del=$db->db_query($sql_query))
$error_msg.=$db->db_last_error();
}
else
$error_msg.='Studiensemester '.$semester_aktuell.' konnte nicht gefunden werden!';
}
else
$error_msg.="Sie haben keine Berechtigung fuer diese Aktion";
}
if ($error_msg=='' && ($kollision_msg=='' || $kollisionsanzahl>0))
{
$db->db_query('COMMIT;');
if($kollisionsanzahl>0)
$error_msg.="\nStunden wurden verplant\n";
}
else
$db->db_query('ROLLBACK;');
$error_msg.=$kollision_msg;
// Stundenplan erstellen
$stdplan=new wochenplan($type);
if (!isset($datum))
$datum=time();
if (!isset($semesterplan) || !$semesterplan)
$begin=$ende=$datum;
else
{
$db->db_query("SELECT start,ende FROM public.tbl_studiensemester WHERE studiensemester_kurzbz='".addslashes($semester_aktuell)."';");
if ($db->db_num_rows()>0)
{
$row = $db->db_fetch_object();
$begin=strtotime($row->start);
$ende=strtotime($row->ende);
}
else
$error_msg.='Studiensemester '.$semester_aktuell.' konnte nicht gefunden werden!';
}
// Benutzergruppe
$stdplan->user=$user;
// aktueller Benutzer
$stdplan->user_uid=$uid;
// Zusaetzliche Daten laden
if (! $stdplan->load_data($type,$pers_uid,$ort,$stg_kz,$sem,$ver,$grp,$gruppe,$fachbereich_kurzbz) && $error_msg!='')
$error_msg.=$stdplan->errormsg;
// Stundenplan einer Woche laden
//if (! $stdplan->load_week($datum,$db_stpl_table))
// $error_msg.=$stdplan->errormsg;
while ($begin<=$ende)
{
$stdplan->init_stdplan();
$datum=$begin;
$begin=strtotime("+1 week",$begin);
// Zeitwuensche laden falls benoetigt
$zeitwunsch=null;
if ($type=='lektor' || $aktion=='lva_single_search' || $aktion=='lva_multi_search')
{
$wunsch=new zeitwunsch();
if ($type=='lektor')
if ($wunsch->loadPerson($pers_uid,$datum))
$zeitwunsch=$wunsch->zeitwunsch;
else
$error_msg.=$wunsch->errormsg;
if ($aktion=='lva_single_search' || $aktion=='lva_multi_search')
if ($wunsch->loadZwLE($lva_id,$datum))
$zeitwunsch=$wunsch->zeitwunsch;
else
$error_msg.=$wunsch->errormsg;
}
// Stundenplan einer Woche laden
if (! $stdplan->load_week($datum,$db_stpl_table, $alle_unr_mitladen))
$error_msg.=$stdplan->errormsg;
//Raumvorschlag setzen
if ($aktion=='lva_single_search' || $aktion=='lva_multi_search')
if (! $stdplan->load_lva_search($datum,$lva_id,$db_stpl_table, $aktion))
$error_msg.=$stdplan->errormsg;
if ($aktion=='stpl_single_search')
{
if(isset($stpl_id))
{
if (! $stdplan->load_stpl_search($datum,$stpl_id,$db_stpl_table))
$error_msg.=$stdplan->errormsg;
}
else
$error_msg.='Derzeit gibt es keinen Raumvorschlag fuer Reservierungen';
}
// Stundenplan der Woche drucken
$stdplan->draw_week_xul($semesterplan,$uid,$zeitwunsch, $ignore_kollision, $kollision_student, $max_kollision);
}
?>
</vbox>
</scrollbox>
<label id="TimeTableWeekErrors"><?php echo htmlspecialchars($error_msg); ?></label>
<script type="application/x-javascript">
<?php
if ($error_msg!='')
echo "alert('".str_replace("'",'"',str_replace(chr(10),'\n',htmlspecialchars($error_msg)))."');";
?>
top.document.getElementById("statusbarpanel-text").setAttribute("label","<?php echo str_replace(chr(10),' ',htmlspecialchars($PHP_SELF.$error_msg)); ?>");
</script>
</window>