This commit is contained in:
kindlm
2015-06-10 19:50:22 +02:00
39 changed files with 1342 additions and 199 deletions
+32 -6
View File
@@ -34,6 +34,7 @@ require_once('../../../include/phrasen.class.php');
require_once('../../../include/studiengang.class.php');
require_once('../../../include/lehrveranstaltung.class.php');
require_once('../../../include/pruefung.class.php');
require_once('../../../include/benutzerberechtigung.class.php');
$sprache = getSprache();
$p = new phrasen($sprache);
@@ -71,6 +72,23 @@ else
$stsem = '';
$user = get_uid();
if(isset($_GET['uid']))
{
// Administratoren duerfen die UID als Parameter uebergeben um die Notenliste
// von anderen Personen anzuzeigen
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($user);
if($rechte->isBerechtigt('admin'))
{
$user = $_GET['uid'];
$getParam = "&uid=" . $user;
}
else
$getParam = "";
}
$datum_obj = new datum();
$error = '';
@@ -118,12 +136,13 @@ else
echo "<b>".$p->t('global/name').":</b> $vorname $nachname<br />";
echo "<b>".$p->t('global/studiengang').":</b> $stg_name<br />";
echo "<b>".$p->t('global/studiensemester')."</b> <SELECT name='stsem' onChange=\"MM_jumpMenu('self',this,0)\">";
echo "<OPTION value='notenliste.php?stsem=alle".$getParam."'>alle Semester</OPTION>";
foreach ($stsem_obj->studiensemester as $semrow)
{
if($stsem == $semrow->studiensemester_kurzbz)
echo "<OPTION value='notenliste.php?stsem=$semrow->studiensemester_kurzbz' selected>$semrow->studiensemester_kurzbz</OPTION>";
echo "<OPTION value='notenliste.php?stsem=".$semrow->studiensemester_kurzbz.$getParam."' selected>$semrow->studiensemester_kurzbz</OPTION>";
else
echo "<OPTION value='notenliste.php?stsem=$semrow->studiensemester_kurzbz'>$semrow->studiensemester_kurzbz</OPTION>";
echo "<OPTION value='notenliste.php?stsem=".$semrow->studiensemester_kurzbz.$getParam."'>$semrow->studiensemester_kurzbz</OPTION>";
}
echo "</SELECT><br />";
@@ -131,7 +150,15 @@ else
echo "<br />";
//Lehrveranstaltungen und Noten holen
$qry = "SELECT
if($stsem != "alle")
{
$sqlFilter = " AND tbl_zeugnisnote.studiensemester_kurzbz = ".$db->db_add_param($stsem)."
AND (tbl_lvgesamtnote.studiensemester_kurzbz = ".$db->db_add_param($stsem)." OR tbl_lvgesamtnote.studiensemester_kurzbz is null) ";
}
else
$sqlFilter = "";
$qry = "SELECT
tbl_lehrveranstaltung.lehrveranstaltung_id, tbl_zeugnisnote.note, tbl_zeugnisnote.punkte,
tbl_lvgesamtnote.note as lvnote, tbl_lvgesamtnote.punkte as lvpunkte,
tbl_zeugnisnote.benotungsdatum, tbl_lvgesamtnote.freigabedatum,
@@ -142,9 +169,8 @@ else
campus.tbl_lvgesamtnote
USING (lehrveranstaltung_id, student_uid, studiensemester_kurzbz)
WHERE
tbl_zeugnisnote.student_uid = ".$db->db_add_param($user)."
AND tbl_zeugnisnote.studiensemester_kurzbz = ".$db->db_add_param($stsem)."
AND (tbl_lvgesamtnote.studiensemester_kurzbz = ".$db->db_add_param($stsem)." OR tbl_lvgesamtnote.studiensemester_kurzbz is null)
tbl_zeugnisnote.student_uid = ".$db->db_add_param($user)
.$sqlFilter."
AND tbl_lehrveranstaltung.lehrveranstaltung_id = tbl_zeugnisnote.lehrveranstaltung_id
ORDER BY bezeichnung";
+2
View File
@@ -90,6 +90,8 @@ if(isset($_GET['abschlusspruefung_id']))
$params.='&abschlusspruefung_id='.$_GET['abschlusspruefung_id'];
if(isset($_GET['typ']))
$params.='&typ='.$_GET['typ'];
if(isset($_GET['all']))
$params.='&all=1';
if(isset($_GET['output']))
$output=$_GET['output'];
else
@@ -26,6 +26,7 @@ require_once('../../../include/functions.inc.php');
require_once('../../../include/studiensemester.class.php');
require_once('../../../include/basis_db.class.php');
require_once('../../../include/phrasen.class.php');
require_once('../../../include/benutzerberechtigung.class.php');
$sprache = getSprache();
$p = new phrasen($sprache);
@@ -33,12 +34,24 @@ $p = new phrasen($sprache);
if (!$db = new basis_db())
die($p->t('global/fehlerBeimOeffnenDerDatenbankverbindung'));
$uid=get_uid();
if(isset($_GET['lang']) && $_GET['lang']=='en')
$xsl = 'StudienerfolgEng';
else
$xsl = 'Studienerfolg';
$uid=get_uid();
if(isset($_GET['uid']))
{
// Administratoren duerfen die UID als Parameter uebergeben um die Studienerfolgsbestätigung
// von anderen Personen anzuzeigen
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($uid);
if($rechte->isBerechtigt('admin'))
$uid=$_GET['uid'];
}
if(isset($_GET['lang']) && $_GET['lang']=='en')
$xsl = 'StudienerfolgEng';
else
$xsl = 'Studienerfolg';
echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
@@ -56,7 +69,13 @@ function createStudienerfolg()
finanzamt = "&typ=finanzamt";
else
finanzamt = "";
window.location.href= "../pdfExport.php?xml=studienerfolg.rdf.php&xsl='.$xsl.'&ss="+stsem+"&uid='.$uid.'"+finanzamt;
if(stsem == "alle")
alle = "&all=1";
else
alle = "";
window.location.href= "../pdfExport.php?xml=studienerfolg.rdf.php&xsl='.$xsl.'&ss="+stsem+"&uid='.$uid.'"+finanzamt+alle;
}
</script>
</head>
@@ -69,6 +88,7 @@ $qry = "SELECT distinct studiensemester_kurzbz FROM campus.vw_student JOIN publi
if($result = $db->db_query($qry))
{
echo $p->t('global/studiensemester').': <SELECT id="stsem">';
echo '<OPTION value="alle">alle Semester</OPTION>';
$stsem_obj = new studiensemester();
$stsem = $stsem_obj->getPrevious();
+98 -25
View File
@@ -79,7 +79,10 @@ $num_rows_stunde=$db->db_num_rows($result_stunde);
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" href="../../../skin/style.css.php" type="text/css">
<script src="../../../include/js/jquery1.9.min.js" type="text/javascript"></script>
<script src="../../../include/js/jquery.ui.timepicker.js" type="text/javascript" ></script>
<link href="../../../skin/jquery.css" rel="stylesheet" type="text/css"/>
<link href="../../../skin/jquery.ui.timepicker.css" rel="stylesheet" type="text/css"/>
<link href="../../../skin/jquery-ui-1.9.2.custom.min.css" rel="stylesheet" type="text/css">
<?php
// ADDONS laden
$addon_obj = new addon();
@@ -102,10 +105,31 @@ $( document ).ready(function()
addon[i].init("cis/private/profile/urlaubstool.php", {uid:\''.$uid.'\'});
}
}
$( ".datepicker_datum" ).datepicker({
changeMonth: true,
changeYear: true,
dateFormat: "dd.mm.yy",
});
$( ".timepicker" ).timepicker({
showPeriodLabels: false,
hourText: "'.$p->t("global/stunde").'",
minuteText: "'.$p->t("global/minute").'",
hours: {starts: 7,ends: 22},
rows: 4,
});
});
</script>';
?>
<style>
.dd_breit
{
width:460px;
}
</style>
<script language="Javascript">
function conf_del()
{
@@ -180,6 +204,43 @@ function checkdatum()
return true;
}
function showHideBezeichnungDropDown()
{
var dd = document.zeitsperre_form.zeitsperretyp_kurzbz;
var sp = document.getElementById('dienstv_span');
if (dd.options[dd.selectedIndex].value == 'DienstV')
{
var str = '<select name="bezeichnung" class="dd_breit">';
str += '<option value="Eheschließung">a) Eigene Eheschließung</option>';
str += '<option value="Geburt eigenes Kind">b) Geburt eines Kindes der Ehefrau/Lebensgefährtin</option>';
str += '<option value="Heirat Kind/Geschwister">c) Eheschließung eines Kindes/eigener Geschwister</option>';
str += '<option value="Eigene Sponsion/Promotion">d) Teilnahme an eigener Sponsion/Promotion</option>';
str += '<option value="Lebensbedr. Erkrankung P/K/E">e) Lebensbedrohliche Erkrankung Partner/Kinder/Eltern</option>';
str += '<option value="Ableben P/K/E">f) Ableben Partner/Kinder/Elternteil</option>';
str += '<option value="Bestattung G/S/G">g) Teilnahme an Bestattung Geschwister/Schwiegereltern/eigener Großeltern</option>';
str += '<option value="Wohnungswechsel">h) Wohnungswechsel in eigenen Haushalt</option>';
str += '</select>';
sp.innerHTML = str;
}
else
{
sp.innerHTML = '<input type="text" name="bezeichnung" maxlength="32" size="32" value="">';
}
if (dd.options[dd.selectedIndex].value == 'Urlaub')
document.getElementById('resturlaub').style.visibility = 'visible';
else
document.getElementById('resturlaub').style.visibility = 'hidden';
}
function setBisDatum()
{
document.zeitsperre_form.bisdatum.value = document.zeitsperre_form.vondatum.value;
}
</script>
</head>
@@ -426,7 +487,7 @@ if($result = $db->db_query($qry))
//liste aller zeitsperren ausgeben
if(count($zeit->result)>0)
{
$content_table.= '<table><tr class="liste"><th>'.$p->t('global/bezeichnung').'</th><th>'.$p->t('zeitsperre/grund').'</th><th>'.$p->t('global/von').'</th><th>'.$p->t('global/bis').'</th><th>'.$p->t('urlaubstool/vertretung').'</th><th>'.$p->t('urlaubstool/erreichbarkeit').'</th><th>'.$p->t('zeitsperre/freigegeben').'</th></tr>';
$content_table.= '<table><tr class="liste"><th>'.$p->t('global/bezeichnung').'</th><th>'.$p->t('zeitsperre/grund').'</th><th>'.$p->t('global/von').'</th><th>'.$p->t('global/bis').'</th><th>'.$p->t('urlaubstool/vertretung').'</th><th>'.$p->t('urlaubstool/erreichbarkeit').'</th><th>'.$p->t('zeitsperre/freigegeben').'</th><th colspan="2"></th></tr>';
$i=0;
foreach ($zeit->result as $row)
{
@@ -447,11 +508,16 @@ if(count($zeit->result)>0)
<td>".(isset($row_vertretung->kurzbz)?$row_vertretung->kurzbz:'')."</td>
<td>".(isset($erreichbarkeit_arr[$row->erreichbarkeit])?$erreichbarkeit_arr[$row->erreichbarkeit]:'')."</td>
<td align='center'>".($row->freigabeamum!=''?'Ja':'')."</td>";
$content_table.="<td><a href='$PHP_SELF?type=edit&id=$row->zeitsperre_id' class='Item'>".$p->t('zeitsperre/edit')."</a></td>";
if ($row->zeitsperretyp_kurzbz == 'DienstV')
$content_table .= '<td>&nbsp;</td>';
else
$content_table.="<td><a href='$PHP_SELF?type=edit&id=$row->zeitsperre_id' class='Item'>".$p->t('zeitsperre/edit')."</a></td>";
if($row->freigabeamum=='' || $row->zeitsperretyp_kurzbz!='Urlaub')
{
$content_table.="\n<td><a href='$PHP_SELF?type=delete_sperre&id=$row->zeitsperre_id' onclick='return conf_del()' class='Item'>".$p->t('zeitsperre/loeschen')."</a></td>";
}
else
$content_table .= '<td>&nbsp;</td>';
$content_table.="</tr>";
}
$content_table.= '</table>';
@@ -485,19 +551,21 @@ if($zeitsperre->freigabeamum!='' && $zeitsperre->zeitsperretyp_kurzbz=='Urlaub')
$readonly=' readonly="readonly"'; //für Textfelder
$disabled=' disabled'; //für select-options
$style=' style="border: 1px solid #999; color: #999;"'; //disabled-Optik
$class = '';
}
else
{
$readonly='';
$disabled='';
$style='';
$class = ' class="datepicker_datum"';
}
//formular zum editieren und neu anlegen der zeitsperren
$content_form='';
$content_form.= '<form method="POST" action="'.$action.'" onsubmit="return checkdatum()">';
$content_form.= '<form method="POST" name="zeitsperre_form" action="'.$action.'" onsubmit="return checkdatum()">';
$content_form.= "<table>\n";
$content_form.= '<tr><td>'.$p->t('zeitsperre/grund').'</td><td><SELECT name="zeitsperretyp_kurzbz"'.$style.'>';
$content_form.= '<tr><td style="width:150px">'.$p->t('zeitsperre/grund').'</td><td colspan="2" style="width:450px"><SELECT name="zeitsperretyp_kurzbz"'.$style.' onchange="showHideBezeichnungDropDown()" class="dd_breit">';
//dropdown fuer zeitsperretyp
$qry = "SELECT * FROM campus.tbl_zeitsperretyp ORDER BY zeitsperretyp_kurzbz";
if($result = $db->db_query($qry))
@@ -510,13 +578,13 @@ if($result = $db->db_query($qry))
$content_form.= "<OPTION value='$row->zeitsperretyp_kurzbz'$disabled>$row->zeitsperretyp_kurzbz - $row->beschreibung</OPTION>";
}
}
$content_form.= '</SELECT>';
$content_form.= '<tr><td>'.$p->t('global/bezeichnung').'</td><td><input'.$style.' type="text" name="bezeichnung" maxlength="32" value="'.$zeitsperre->bezeichnung.'"'.$readonly.'></td></tr>';
$content_form.= '<tr><td>'.$p->t('global/von').'</td><td><input'.$style.' type="text" size="10" maxlength="10" name="vondatum" id="vondatum" value="'.($zeitsperre->vondatum!=''?date('d.m.Y',$datum_obj->mktime_fromdate($zeitsperre->vondatum)):(!isset($_POST['vondatum'])?date('d.m.Y'):$_POST['vondatum'])).'"'.$readonly.'> ';
$content_form.= '</SELECT></td></tr>';
$content_form.= '<tr><td>'.$p->t('global/bezeichnung').'</td><td colspan="2"><span id="dienstv_span"><input'.$style.' type="text" size="32" name="bezeichnung" maxlength="32" value="'.$zeitsperre->bezeichnung.'"'.$readonly.'></span></td></tr>';
$content_form.= '<tr><td>'.$p->t('global/von').'</td><td><input'.$style.' type="text" '.$class.' size="10" maxlength="10" name="vondatum" id="vondatum" value="'.($zeitsperre->vondatum!=''?date('d.m.Y',$datum_obj->mktime_fromdate($zeitsperre->vondatum)):(!isset($_POST['vondatum'])?date('d.m.Y'):$_POST['vondatum'])).'"'.$readonly.'> <a href="javascript:void(0);" onClick="setBisDatum()">&dArr;</a></td><td style="text-align:right;"> ';
//dropdown fuer vonstunde
$content_form.= $p->t('zeitsperre/stundeInklusive');
$content_form.= "<SELECT name='vonstunde'$style>\n";
$content_form.= " <SELECT name='vonstunde'$style>\n";
if($zeitsperre->vonstunde=='')
$content_form.= "<OPTION value='' selectd>*</OPTION>\n";
else
@@ -534,10 +602,10 @@ for($i=0;$i<$num_rows_stunde;$i++)
$content_form.= "</SELECT></td></tr>";
$content_form.= '<tr><td>'.$p->t('global/bis').'</td><td><input'.$style.' type="text" size="10" maxlength="10" name="bisdatum" id="bisdatum" value="'.($zeitsperre->bisdatum!=''?date('d.m.Y',$datum_obj->mktime_fromdate($zeitsperre->bisdatum)):(!isset($_POST['bisdatum'])?date('d.m.Y'):$_POST['bisdatum'])).'"'.$readonly.'> ';
$content_form.= '<tr><td>'.$p->t('global/bis').'</td><td><input'.$style.' type="text" '.$class.' size="10" maxlength="10" name="bisdatum" id="bisdatum" value="'.($zeitsperre->bisdatum!=''?date('d.m.Y',$datum_obj->mktime_fromdate($zeitsperre->bisdatum)):(!isset($_POST['bisdatum'])?date('d.m.Y'):$_POST['bisdatum'])).'"'.$readonly.'></td><td style="text-align:right;"> ';
//dropdown fuer bisstunde
$content_form.= $p->t('zeitsperre/stundeInklusive');
$content_form.= "<SELECT name='bisstunde'$style>\n";
$content_form.= " <SELECT name='bisstunde'$style>\n";
if($zeitsperre->bisstunde=='')
$content_form.= "<OPTION value='' selectd>*</OPTION>\n";
@@ -555,18 +623,9 @@ for($i=0;$i<$num_rows_stunde;$i++)
$content_form.= "</SELECT></td></tr>";
$content_form.= "<tr><td>".$p->t('urlaubstool/erreichbarkeit')."</td><td><SELECT name='erreichbarkeit'>";
foreach ($erreichbarkeit_arr as $erreichbarkeit_key=>$erreichbarkeit_beschreibung)
{
if($zeitsperre->erreichbarkeit_kurzbz == $erreichbarkeit_key)
$content_form.= "<OPTION value='$erreichbarkeit_key' selected>$erreichbarkeit_beschreibung</OPTION>\n";
else
$content_form.= "<OPTION value='$erreichbarkeit_key'>$erreichbarkeit_beschreibung</OPTION>\n";
}
$content_form.= '</SELECT></td></tr>';
$content_form.= "<tr><td>".$p->t('urlaubstool/vertretung')."</td><td><SELECT name='vertretung_uid' id='vertretung_uid'>";
$content_form.= "<tr><td>".$p->t('urlaubstool/vertretung')."</td><td colspan='2'><SELECT name='vertretung_uid' id='vertretung_uid' class='dd_breit'>";
//dropdown fuer vertretung
$qry = "SELECT * FROM campus.vw_mitarbeiter WHERE uid not LIKE '\\\_%' ORDER BY nachname, vorname";
@@ -583,14 +642,28 @@ if($result = $db->db_query($qry))
}
}
$content_form.= '</SELECT></td></tr>';
$content_form.= '<tr><td>&nbsp;</td><td>';
$content_form.= "<tr><td>".$p->t('urlaubstool/erreichbarkeit')."</td><td><SELECT name='erreichbarkeit'>";
foreach ($erreichbarkeit_arr as $erreichbarkeit_key=>$erreichbarkeit_beschreibung)
{
if($zeitsperre->erreichbarkeit_kurzbz == $erreichbarkeit_key)
$content_form.= "<OPTION value='$erreichbarkeit_key' selected>$erreichbarkeit_beschreibung</OPTION>\n";
else
$content_form.= "<OPTION value='$erreichbarkeit_key'>$erreichbarkeit_beschreibung</OPTION>\n";
}
$content_form.= '</SELECT></td>';
$content_form.= '<td style="text-align:right;">';
if(isset($_GET['type']) && $_GET['type']=='edit')
$content_form.= "<input type='submit' name='submit_zeitsperre' value='".$p->t('global/speichern')."'>";
else
$content_form.= "<input type='submit' name='submit_zeitsperre' value='".$p->t('global/hinzufuegen')."'>";
$content_form.= '</td></tr>';
$content_form.= "<tr><td>&nbsp;</td><td style='color:red'>".$p->t('zeitsperre/achtungEsWerdenAlleEingegebenenTage')."</td</tr>";
$content_form .= '<tr><td colspan="3">&nbsp;</td></tr>';
$content_form.= "<tr><td colspan='3' style='color:red'>".$p->t('zeitsperre/achtungEsWerdenAlleEingegebenenTage')."</td></tr>";
$content_form.= '</table></form>';
// ******* RESTURLAUB ******** //
@@ -672,7 +745,7 @@ echo '<tr>';
echo "<td class='tdvertical'>";
echo $content_form;
echo '</td>';
echo "<td class='tdvertical'><div id='resturlaub'>$content_resturlaub</div></td>";
echo "<td class='tdvertical'><div id='resturlaub' style='visibility:hidden;'>$content_resturlaub</div></td>";
echo '</tr><tr><td colspan=2>';
echo $content_table;
echo '</td>';
+52 -14
View File
@@ -48,6 +48,19 @@ if (!$db = new basis_db())
$user = get_uid();
$datum = new datum();
if ($user == 'foo')
{
$za_simple = 1;
$activities = array('Arbeit', 'Pause', 'Arztbesuch', 'Dienstreise', 'Behoerde');
}
else
{
$za_simple = 0;
$activities = array('Design', 'Operativ', 'Betrieb', 'Pause', 'Arztbesuch', 'Dienstreise', 'Behoerde');
}
$activities_str = "'".implode("','", $activities)."'";
// definiert bis zu welchem Datum die Eintragung nicht mehr möglich ist
$gesperrt_bis = '2015-01-31';
$sperrdatum = date('c', strtotime($gesperrt_bis));
@@ -495,6 +508,8 @@ if($projekt->getProjekteMitarbeiter($user, true))
<tr>
<td>';
echo '<table>';
if($za_simple == 0)
{
//Projekt
echo '<tr>
<td>'.$p->t("zeitaufzeichnung/projekt").'</td>
@@ -570,16 +585,22 @@ if($projekt->getProjekteMitarbeiter($user, true))
echo '<option value="'.$db->convert_html_chars($row->oe_kurzbz).'" '.$selected.' '.$class.'>'.$db->convert_html_chars($row->bezeichnung.' ('.$row->organisationseinheittyp_kurzbz).')</option>';
}
echo '</SELECT></td></tr>';
}
//Aktivitaet
echo '<tr>';
echo '<td>'.$p->t("zeitaufzeichnung/aktivitaet").'</td><td colspan="4">';
$qry = "SELECT * FROM fue.tbl_aktivitaet ORDER by sort,beschreibung";
//if ($za_simple == 1)
$qry = "SELECT * FROM fue.tbl_aktivitaet where aktivitaet_kurzbz in (".$activities_str.") ORDER by sort,beschreibung";
//else
// $qry = "SELECT * FROM fue.tbl_aktivitaet where sort != 5 or sort is null ORDER by sort,beschreibung";
if($result = $db->db_query($qry))
{
echo '<SELECT name="aktivitaet">
<OPTION value="">-- '.$p->t('zeitaufzeichnung/keineAuswahl').' --</OPTION>';
echo '<SELECT name="aktivitaet">';
if ($za_simple == 0)
echo '<OPTION value="">-- '.$p->t('zeitaufzeichnung/keineAuswahl').' --</OPTION>';
//else
// echo '<OPTION value="Arbeit">Arbeit</OPTION>';
while($row = $db->db_fetch_object($result))
{
if($aktivitaet_kurzbz == $row->aktivitaet_kurzbz)
@@ -593,6 +614,8 @@ if($projekt->getProjekteMitarbeiter($user, true))
}
echo '</td></tr>';
if ($za_simple == 0)
{
// Service
echo '<tr>
<td>'.$p->t('zeitaufzeichnung/service').'</td>
@@ -634,6 +657,8 @@ if($projekt->getProjekteMitarbeiter($user, true))
<input type="text" id="kartennummer" name="kartennummer" placeholder="'.$p->t("zeitaufzeichnung/kartennummer").'"></td>
</tr>';
echo '<tr><td colspan="4">&nbsp;</td></tr>';
}
//Start/Ende
$von_ts = $datum->mktime_fromtimestamp($datum->formatDatum($von, $format='Y-m-d H:i:s'));
$bis_ts = $datum->mktime_fromtimestamp($datum->formatDatum($bis, $format='Y-m-d H:i:s'));
@@ -644,15 +669,28 @@ if($projekt->getProjekteMitarbeiter($user, true))
<td style="width:50px; white-space: nowrap">
<input type="text" class="datepicker_datum" id="von_datum" name="von_datum" value="'.$db->convert_html_chars($datum->formatDatum($von, $format='d.m.Y')).'" size="9">
<input type="text" class="timepicker" id="von_uhrzeit" name="von_uhrzeit" value="'.$db->convert_html_chars($datum->formatDatum($von, $format='H:i')).'" size="4">
<img style="vertical-align:bottom; cursor:pointer" src="../../../skin/images/timetable.png" title="'.$p->t("zeitaufzeichnung/aktuelleZeitLaden").'" onclick="setvondatum()">&nbsp;
<img style="vertical-align:bottom; cursor:pointer" src="../../../skin/images/arrow-next.png" title="'.$p->t("zeitaufzeichnung/alsEndzeitUebernehmen").'" onclick="uebernehmen()">
</td>
<td align="center">&nbsp;&nbsp;+
<input type="text" style="width: 25px;" maxlength="3" id="diff" name="diff" value="'.$db->convert_html_chars($diff/60).'" oninput="addieren()">
min.
</td><td>
<img style="vertical-align:bottom; cursor:pointer" src="../../../skin/images/arrow-previous.png" title="'.$p->t("zeitaufzeichnung/alsStartzeitUebernehmen").'" onclick="uebernehmen1()">&nbsp;
<img style="vertical-align:bottom; cursor:pointer" src="../../../skin/images/timetable.png" title="'.$p->t("zeitaufzeichnung/aktuelleZeitLaden").'" onclick="setbisdatum()">
</td>';
if ($za_simple == 0)
{
echo '
<td align="center">
<img style="vertical-align:bottom; cursor:pointer" src="../../../skin/images/timetable.png" title="'.$p->t("zeitaufzeichnung/aktuelleZeitLaden").'" onclick="setvondatum()">&nbsp;
<img style="vertical-align:bottom; cursor:pointer" src="../../../skin/images/arrow-next.png" title="'.$p->t("zeitaufzeichnung/alsEndzeitUebernehmen").'" onclick="uebernehmen()">
&nbsp;&nbsp;+
<input type="text" style="width: 25px;" maxlength="3" id="diff" name="diff" value="'.$db->convert_html_chars($diff/60).'" oninput="addieren()">
min.
<img style="vertical-align:bottom; cursor:pointer" src="../../../skin/images/arrow-previous.png" title="'.$p->t("zeitaufzeichnung/alsStartzeitUebernehmen").'" onclick="uebernehmen1()">&nbsp;
<img style="vertical-align:bottom; cursor:pointer" src="../../../skin/images/timetable.png" title="'.$p->t("zeitaufzeichnung/aktuelleZeitLaden").'" onclick="setbisdatum()">
</td>';
}
else
{
echo '<td align="center">&nbsp;-&nbsp;</td>';
}
echo '
<td>
<input type="text" class="datepicker_datum" id="bis_datum" name="bis_datum" value="'.$db->convert_html_chars($datum->formatDatum($bis, $format='d.m.Y')).'" size="9">
<input type="text" class="timepicker" id="bis_uhrzeit" name="bis_uhrzeit" value="'.$db->convert_html_chars($datum->formatDatum($bis, $format='H:i')).'" size="4">
</td>
+1
View File
@@ -16,6 +16,7 @@ define('CIS_LEHRVERANSTALTUNG_MAILSTUDIERENDE_ANZEIGEN',true);
define('CIS_LEHRVERANSTALTUNG_STUDENTENUPLOAD_ANZEIGEN',true);
define('CIS_LEHRVERANSTALTUNG_SEMESTERPLAN_ANZEIGEN',true);
define('CIS_LEHRVERANSTALTUNG_LVINFO_ANZEIGEN',true);
define('CIS_LEHRVERANSTALTUNG_LEISTUNGSUEBERSICHT_ANZEIGEN',true);
define('CIS_LEHRVERANSTALTUNG_SEMESTERINFO_ANZEIGEN',true);
define('CIS_LEHRVERANSTALTUNG_LEHRFACH_ANZEIGEN',false);
define('CIS_LEHRVERANSTALTUNG_GESAMTNOTE_ANZEIGEN', true);
+2
View File
@@ -132,6 +132,8 @@ define('MAIL_LVPLAN','invalid@technikum-wien.at');
define('MAIL_IT','invalid@technikum-wien.at');
// Support
define('MAIL_SUPPORT','invalid@technikum-wien.at');
// Lehrgaenge
define('MAIL_LG','invalid@technikum-wien.at');
// Default Anmerkung fuer neue Lehreinheiten
// Beispiel: 'Abhaengigkeiten von anderen LV\'s\n\nSpez. Software/Equipment:\n\n'
+52 -10
View File
@@ -458,19 +458,61 @@ var boardObserver=
},
onDragEnter: function (evt,flavour,session)
{
var styleNow=evt.target.getAttribute("style");
if (evt.target.tagName=="label")
evt.target.setAttribute("style","background-color:#AAFFAA;");
else
evt.target.setAttribute("style",styleNow+";border:1px dashed black;");
if(typeof evt.target.getAttribute == 'function')
{
var styleNow=evt.target.getAttribute("style");
if (evt.target.tagName=="label")
{
evt.target.setAttribute("style","background-color:#AAFFAA;");
var tagesinfo = evt.target.parentNode.getElementsByClassName('stplweek_tagesinfo');
if(typeof tagesinfo[0]!='undefined')
{
var Tagesinfostyle = tagesinfo[0].getAttribute("style");
tagesinfo[0].setAttribute("style",Tagesinfostyle+";visibility:visible;");
}
}
else
{
evt.target.setAttribute("style",styleNow+";border:1px dashed black;");
var tagesinfo = evt.target.getElementsByClassName('stplweek_tagesinfo');
if(typeof tagesinfo[0]!='undefined')
{
var Tagesinfostyle = tagesinfo[0].getAttribute("style");
tagesinfo[0].setAttribute("style",Tagesinfostyle+";visibility:visible;");
}
}
}
},
onDragExit: function (evt,flavour,session)
{
var styleNow=evt.target.getAttribute("style");
if (evt.target.tagName=="label")
evt.target.setAttribute("style","");
else
evt.target.setAttribute("style",styleNow+";border:1px solid black;");
if(typeof evt.target.getAttribute == 'function')
{
var styleNow=evt.target.getAttribute("style");
if (evt.target.tagName=="label")
{
evt.target.setAttribute("style","");
var tagesinfo = evt.target.parentNode.getElementsByClassName('stplweek_tagesinfo');
if(typeof tagesinfo[0]!='undefined')
{
var Tagesinfostyle = tagesinfo[0].getAttribute("style");
tagesinfo[0].setAttribute("style",Tagesinfostyle+";visibility:hidden;");
}
}
else
{
evt.target.setAttribute("style",styleNow+";border:1px solid black;");
var tagesinfo = evt.target.getElementsByClassName('stplweek_tagesinfo');
if(typeof tagesinfo[0]!='undefined')
{
var Tagesinfostyle = tagesinfo[0].getAttribute("style");
tagesinfo[0].setAttribute("style",Tagesinfostyle+";visibility:hidden;");
}
}
}
},
onDragOver: function(evt,flavour,session)
{
+19
View File
@@ -147,6 +147,8 @@ foreach($addon_obj->result as $addon)
<command id="menu-dokumente-urkunde_englisch:command" oncommand="StudentAbschlusspruefungPrintUrkundeMultiple(event, 'englisch')"/>
<command id="menu-dokumente-ausbildungsvertrag:command" oncommand="StudentPrintAusbildungsvertrag(event);"/>
<command id="menu-dokumente-ausbildungsvertrag_englisch:command" oncommand="StudentPrintAusbildungsvertragEnglisch(event);"/>
<command id="menu-cis-studienplan:command" oncommand="StudentCisStudienplan(event);"/>
<command id="menu-cis-notenliste:command" oncommand="StudentCisNotenliste(event);"/>
<command id="menu-extras-reihungstest:command" oncommand="ExtrasShowReihungstest();"/>
<command id="menu-extras-firma:command" oncommand="ExtrasShowFirmenverwaltung();"/>
<command id="menu-extras-lvverwaltung:command" oncommand="ExtrasShowLVverwaltung();"/>
@@ -721,6 +723,23 @@ foreach($addon_obj->result as $addon)
accesskey = "&menu-dokumente-ausbildungsvertrag_englisch.accesskey;"/>
</menupopup>
</menu>
<!-- ***** CIS ***** -->
<menu id="menu-cis" label="&menu-cis.label;" accesskey="&menu-cis.accesskey;">
<menupopup id="menu-cis-popup">
<menuitem
id = "menu-cis-studienplan"
key = "menu-cis-studienplan:key"
label = "&menu-cis-studienplan.label;"
command = "menu-cis-studienplan:command"
accesskey = "&menu-cis-studienplan.accesskey;"/>
<menuitem
id = "menu-cis-notenliste"
key = "menu-cis-notenliste:key"
label = "&menu-cis-notenliste.label;"
command = "menu-cis-notenliste:command"
accesskey = "&menu-cis-notenliste.accesskey;"/>
</menupopup>
</menu>
<!-- ***** Zusatzmenues inkludieren ***** -->
<?php
include('../include/'.EXT_FKT_PATH.'/fas_zusatzmenues.inc.php');
+67 -36
View File
@@ -136,26 +136,27 @@ function LehrauftragAufFirma($mitarbeiter_uid)
* @param $studiensemester_kurzbz
* @return string
*/
function getStundenproInstitut($mitarbeiter_uid, $studiensemester_kurzbz)
function getStundenproInstitut($mitarbeiter_uid, $studiensemester_kurzbz, $oe_arr)
{
global $db;
$ret="Der Lektor ist in folgenden Organisationseinheiten zugeteilt:\n";
//Liste mit den Stunden in den jeweiligen Instituten anzeigen
$qry = "SELECT sum(tbl_lehreinheitmitarbeiter.semesterstunden) as summe, tbl_organisationseinheit.bezeichnung
$qry = "SELECT sum(tbl_lehreinheitmitarbeiter.semesterstunden) as summe, tbl_studiengang.bezeichnung
FROM
lehre.tbl_lehreinheitmitarbeiter
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
JOIN lehre.tbl_lehrveranstaltung as lehrfach ON(lehrfach_id=lehrfach.lehrveranstaltung_id)
JOIN public.tbl_organisationseinheit USING(oe_kurzbz)
JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id)
JOIN public.tbl_studiengang USING(studiengang_kz)
WHERE
mitarbeiter_uid=".$db->db_add_param($mitarbeiter_uid)." AND
studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz)." AND
faktor>0 AND
stundensatz>0 AND
bismelden
GROUP BY tbl_organisationseinheit.bezeichnung";
bismelden AND
tbl_studiengang.oe_kurzbz in(".$db->db_implode4SQL($oe_arr).")
GROUP BY tbl_studiengang.bezeichnung";
if($result = $db->db_query($qry))
{
@@ -180,17 +181,19 @@ if(!$error)
FROM lehre.tbl_lehrveranstaltung, lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung as lehrfach
WHERE tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_lehreinheit.lehrveranstaltung_id AND
tbl_lehreinheit.lehrfach_id=lehrfach.lehrveranstaltung_id AND lehreinheit_id=".$db->db_add_param($_POST['lehreinheit_id'], FHC_INTEGER);
if($result = $db->db_query($qry))
{
if($row = $db->db_fetch_object($result))
{
$lva = new lehrveranstaltung($row->lehrveranstaltung_id);
if(!$rechte->isBerechtigtMultipleOe('admin', $lva->getAllOe(), 'suid') &&
!$rechte->isBerechtigtMultipleOe('assistenz', $lva->getAllOe(), 'suid') &&
!$rechte->isBerechtigtMultipleOe('lv-plan', $lva->getAllOe(), 'suid') &&
!$rechte->isBerechtigtMultipleOe('assistenz', $lva->getAllOe(), 'suid', $row->fachbereich_kurzbz) &&
!$rechte->isBerechtigtMultipleOe('admin', $lva->getAllOe(), 'suid', $row->fachbereich_kurzbz))
$oe_arr = $lva->getAllOe();
if(!$rechte->isBerechtigtMultipleOe('admin', $oe_arr, 'suid') &&
!$rechte->isBerechtigtMultipleOe('assistenz', $oe_arr, 'suid') &&
!$rechte->isBerechtigtMultipleOe('lv-plan', $oe_arr, 'suid') &&
!$rechte->isBerechtigtMultipleOe('assistenz', $oe_arr, 'suid', $row->fachbereich_kurzbz) &&
!$rechte->isBerechtigtMultipleOe('admin', $oe_arr, 'suid', $row->fachbereich_kurzbz))
{
$error = true;
$return = false;
@@ -280,14 +283,18 @@ if(!$error)
$ma = new mitarbeiter();
$ma->load($lem->mitarbeiter_uid);
$fixangestellt=$ma->fixangestellt;
$oe_obj = new organisationseinheit();
$stunden_oe_kurzbz=null;
$stg_obj = new studiengang();
$stg_obj->load($lva->studiengang_kz);
//Maximale Stundenanzahl ermitteln
if($fixangestellt)
$max_stunden = WARN_SEMESTERSTD_FIX;
list($stunden_oe_kurzbz, $max_stunden) = $oe_obj->getStundengrenze($stg_obj->oe_kurzbz, true);
else
{
$max_stunden = WARN_SEMESTERSTD_FREI;
}
list($stunden_oe_kurzbz, $max_stunden) = $oe_obj->getStundengrenze($stg_obj->oe_kurzbz, false);
//Summe der Stunden ermitteln
$le = new lehreinheit();
@@ -306,23 +313,31 @@ if(!$error)
//Stundenreduzierung immer moeglich
if(($lem->semesterstunden>$semesterstunden_alt) || $neue_stunden_eingerechnet)
{
$oe_obj = new organisationseinheit();
$oe_arr = $oe_obj->getChilds($stunden_oe_kurzbz);
$qry = "SELECT ";
if($alte_stunden_eingerechnet && $neue_stunden_eingerechnet)
$qry.=" (sum(semesterstunden)-($semesterstunden_alt)+($lem->semesterstunden)) as summe";
$qry.=" (sum(tbl_lehreinheitmitarbeiter.semesterstunden)-($semesterstunden_alt)+($lem->semesterstunden)) as summe";
elseif($alte_stunden_eingerechnet && !$neue_stunden_eingerechnet)
$qry.=" (sum(semesterstunden)-($semesterstunden_alt)) as summe";
$qry.=" (sum(tbl_lehreinheitmitarbeiter.semesterstunden)-($semesterstunden_alt)) as summe";
elseif(!$alte_stunden_eingerechnet && $neue_stunden_eingerechnet)
$qry.=" (sum(semesterstunden)+($lem->semesterstunden)) as summe";
$qry.=" (sum(tbl_lehreinheitmitarbeiter.semesterstunden)+($lem->semesterstunden)) as summe";
elseif(!$alte_stunden_eingerechnet && !$neue_stunden_eingerechnet)
$qry.=" (sum(semesterstunden)) as summe";
$qry.=" (sum(tbl_lehreinheitmitarbeiter.semesterstunden)) as summe";
$qry.=" FROM
lehre.tbl_lehreinheitmitarbeiter JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
lehre.tbl_lehreinheitmitarbeiter
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id)
JOIN public.tbl_studiengang USING(studiengang_kz)
WHERE
mitarbeiter_uid=".$db->db_add_param($lem->mitarbeiter_uid)." AND
studiensemester_kurzbz=".$db->db_add_param($le->studiensemester_kurzbz)." AND
faktor>0 AND
stundensatz>0 AND
bismelden";
if(count($oe_arr)>0)
$qry.=" AND tbl_studiengang.oe_kurzbz in(".$db->db_implode4SQL($oe_arr).")";
if($db->db_query($qry))
{
@@ -337,7 +352,7 @@ if(!$error)
//Warnung wenn die Stundenzahl ueberschritten wurde
$return = false;
$error = true;
$errormsg = "ACHTUNG: Die maximal erlaubte Semesterstundenanzahl des Lektors von $max_stunden Stunden wurde ueberschritten!\n Daten wurden NICHT gespeichert!\n\n";
$errormsg = "ACHTUNG: Die maximal erlaubte Semesterstundenanzahl des Lektors von $max_stunden Stunden ($stunden_oe_kurzbz) wurde ueberschritten!\n Daten wurden NICHT gespeichert!\n\n";
}
}
else
@@ -345,10 +360,10 @@ if(!$error)
$return = true;
$error = false;
$warnung = true;
$errormsg = "Hinweis: Die maximal erlaubte Semesterstundenanzahl des Lektors von $max_stunden Stunden wurde ueberschritten!\n Daten wurden gespeichert!\n\n";
$errormsg = "Hinweis: Die maximal erlaubte Semesterstundenanzahl des Lektors von $max_stunden Stunden ($stunden_oe_kurzbz) wurde ueberschritten!\n Daten wurden gespeichert!\n\n";
}
$errormsg.=getStundenproInstitut($lem->mitarbeiter_uid, $le->studiensemester_kurzbz);
$errormsg.=getStundenproInstitut($lem->mitarbeiter_uid, $le->studiensemester_kurzbz, $oe_arr);
}
}
else
@@ -480,46 +495,62 @@ if(!$error)
}
$maxstunden=9999;
$oe_obj = new organisationseinheit();
$stunden_oe_kurzbz=null;
$stg_obj = new studiengang();
$stg_obj->load($lva->studiengang_kz);
//Maximale Stundenanzahl ermitteln
if($fixangestellt)
$max_stunden = WARN_SEMESTERSTD_FIX;
list($stunden_oe_kurzbz, $max_stunden) = $oe_obj->getStundengrenze($stg_obj->oe_kurzbz, true);
else
{
$max_stunden = WARN_SEMESTERSTD_FREI;
}
list($stunden_oe_kurzbz, $max_stunden) = $oe_obj->getStundengrenze($stg_obj->oe_kurzbz, false);
//Bei freien Lektoren muss geprueft werden ob die Stundengrenze erreicht wurde
if(!$fixangestellt && !LehrauftragAufFirma($lem->mitarbeiter_uid))
{
//Summe der Stunden ermitteln
$le = new lehreinheit();
$le->load($lem->lehreinheit_id);
$oe_obj = new organisationseinheit();
$oe_arr = $oe_obj->getChilds($stunden_oe_kurzbz);
$qry = "SELECT
sum(semesterstunden) as summe
sum(tbl_lehreinheitmitarbeiter.semesterstunden) as summe
FROM
lehre.tbl_lehreinheitmitarbeiter JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
lehre.tbl_lehreinheitmitarbeiter
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id)
JOIN public.tbl_studiengang USING(studiengang_kz)
WHERE
mitarbeiter_uid=".$db->db_add_param($lem->mitarbeiter_uid)." AND
studiensemester_kurzbz=".$db->db_add_param($le->studiensemester_kurzbz)." AND
faktor>0 AND
stundensatz>0 AND
bismelden";
if(count($oe_arr)>0)
$qry.=" AND tbl_studiengang.oe_kurzbz in(".$db->db_implode4SQL($oe_arr).")";
if($result_std = $db->db_query($qry))
{
if($row_std = $db->db_fetch_object($result_std))
{
//Grenze ueberschritten
if($row_std->summe>=WARN_SEMESTERSTD_FREI)
if($row_std->summe>=$max_stunden)
{
$return = false;
$error = true;
$errormsg = "ACHTUNG: Die maximal erlaubte Semesterstundenanzahl des Lektors von $max_stunden Stunden wurde ueberschritten!\n Daten wurden NICHT gespeichert!\n\n";
$errormsg.=getStundenproInstitut($lem->mitarbeiter_uid, $le->studiensemester_kurzbz);
$errormsg = "ACHTUNG: Die maximal erlaubte Semesterstundenanzahl des Lektors von $max_stunden Stunden ($stunden_oe_kurzbz) wurde ueberschritten!\n Daten wurden NICHT gespeichert!\n\n";
$errormsg.=getStundenproInstitut($lem->mitarbeiter_uid, $le->studiensemester_kurzbz,$oe_arr);
}
else
{
//Stunden berechnen die noch maximal unterrichtet werden darf
$maxstunden = WARN_SEMESTERSTD_FREI-$row_std->summe;
$maxstunden = $max_stunden-$row_std->summe;
}
}
}
@@ -759,6 +759,12 @@ function LeAuswahl()
document.getElementById('lehrveranstaltung-tab-lvangebot').collapsed=false;
LvAngebotLoad(lehrveranstaltung_id);
if(document.getElementById('lehrveranstaltung-tabs').selectedItem==document.getElementById('lehrveranstaltung-tab-termine'))
{
// Termine Laden
document.getElementById('lehrveranstaltung-termine').setAttribute('src','termine.xul.php?lehrveranstaltung_id='+lehrveranstaltung_id);
}
LeDetailDisableFields(true);
//Details zuruecksetzen
LeDetailReset();
@@ -779,6 +785,12 @@ function LeAuswahl()
//LV-Angebot Tab ausblenden
document.getElementById('lehrveranstaltung-tab-lvangebot').collapsed=true;
if(document.getElementById('lehrveranstaltung-tabs').selectedItem==document.getElementById('lehrveranstaltung-tab-termine'))
{
// Termine Laden
document.getElementById('lehrveranstaltung-termine').setAttribute('src','termine.xul.php?lehreinheit_id='+lehreinheit_id);
}
document.getElementById('lehrveranstaltung-toolbar-neu').disabled=true;
document.getElementById('lehrveranstaltung-toolbar-del').disabled=false;
@@ -2327,3 +2339,29 @@ function LvAngebotNew()
LvAngebotReset();
LvAngebotGruppeTreeRefresh();
}
/**
* Laedt die Termine einer Lehrveranstaltung/Lehreinheit wenn auf den Tab gewechselt wird
*/
function LehrveranstaltungTermineIFrameLoad()
{
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);
var col = tree.columns ? tree.columns["lehrveranstaltung-treecol-lehrveranstaltung_id"] : "lehrveranstaltung-treecol-lehrveranstaltung_id";
var lehrveranstaltung_id=tree.view.getCellText(tree.currentIndex,col);
if(lehreinheit_id!='')
document.getElementById('lehrveranstaltung-termine').setAttribute('src','termine.xul.php?lehreinheit_id='+lehreinheit_id);
else
document.getElementById('lehrveranstaltung-termine').setAttribute('src','termine.xul.php?lehrveranstaltung_id='+lehrveranstaltung_id);
}
catch(e)
{}
}
@@ -248,6 +248,7 @@ echo '<?xul-overlay href="'.APP_ROOT.'content/lvplanung/lehrveranstaltungnotenov
<tab id="lehrveranstaltung-tab-noten" label="Noten" />
<tab id="lehrveranstaltung-tab-notizen" label="Notizen" />
<tab id="lehrveranstaltung-tab-lvangebot" label="LV-Angebot" />
<tab id="lehrveranstaltung-tab-termine" label="Termine" onclick="LehrveranstaltungTermineIFrameLoad()"/>
</tabs>
<tabpanels id="lehrveranstaltung-tabpanels-main" flex="1">
<vbox id="lehrveranstaltung-detail" />
@@ -257,6 +258,7 @@ echo '<?xul-overlay href="'.APP_ROOT.'content/lvplanung/lehrveranstaltungnotenov
<box class="Notiz" flex="1" id="lehrveranstaltung-box-notizen"/>
</vbox>
<vbox id="lehrveranstaltung-lvangebot" />
<iframe id="lehrveranstaltung-termine" src="" style="margin-top:10px;" />
</tabpanels>
</tabbox>
</vbox>
+3 -3
View File
@@ -494,7 +494,7 @@ function onStplDetail(event)
window.parent.STPLlastDetailUrl = url;
//alert(url+' - '+window.parent.STPLlastDetailUrl);
var treeStplDetails=parent.document.getElementById('treeStplDetails');
treeStplDetails.setAttribute('datasources',url);
treeStplDetails.setAttribute('datasources',url+"&ts="+gettimestamp());
}
@@ -581,7 +581,7 @@ function STPLDetailSave(dialog)
var treeStplDetails=parent.document.getElementById('treeStplDetails');
//alert('url'+STPLlastDetailUrl);
treeStplDetails.setAttribute('datasources', '');
treeStplDetails.setAttribute('datasources', STPLlastDetailUrl);
treeStplDetails.setAttribute('datasources', STPLlastDetailUrl+"&ts="+gettimestamp());
return true;
}
@@ -642,7 +642,7 @@ function STPLDetailDelete()
var treeStplDetails=parent.document.getElementById('treeStplDetails');
//alert('url'+STPLlastDetailUrl);
treeStplDetails.setAttribute('datasources', '');
treeStplDetails.setAttribute('datasources', STPLlastDetailUrl);
treeStplDetails.setAttribute('datasources', STPLlastDetailUrl+"&ts="+gettimestamp());
}
}
}
+7
View File
@@ -275,6 +275,10 @@ if ($aktion=='stpl_move' || $aktion=='stpl_set')
$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;
@@ -308,6 +312,9 @@ if ($aktion=='stpl_move' || $aktion=='stpl_set')
$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;
@@ -601,6 +601,13 @@ function MitarbeiterAuswahl()
// ***** BETRIEBSMITTEL *****
document.getElementById('mitarbeiter-betriebsmittel').setAttribute('src','betriebsmitteloverlay.xul.php?person_id='+person_id+'&uid='+uid);
if(document.getElementById('mitarbeiter-tabs').selectedItem==document.getElementById('mitarbeiter-tab-termine'))
{
// ***** Termine *****
document.getElementById('mitarbeiter-termine').setAttribute('src','termine.xul.php?mitarbeiter_uid='+uid);
}
// **** VERWENDUNG ****
verwendungtree = document.getElementById('mitarbeiter-tree-verwendung');
url='<?php echo APP_ROOT;?>rdf/bisverwendung.rdf.php?uid='+uid+"&"+gettimestamp();
@@ -1885,3 +1892,13 @@ function MitarbeiterShowPersonendetails()
person_id = document.getElementById('mitarbeiter-detail-textbox-person_id').value;
window.open('<?php echo APP_ROOT ?>vilesci/personen/personendetails.php?id='+person_id,'Personendetails','');
}
function MitarbeiterTermineIFrameLoad()
{
uid = document.getElementById('mitarbeiter-detail-textbox-uid').value;
if(uid!='')
{
url = 'termine.xul.php?mitarbeiter_uid='+uid+'&ts='+gettimestamp();
document.getElementById('mitarbeiter-termine').setAttribute('src',url);
}
}
@@ -258,6 +258,7 @@ echo '<?xul-overlay href="'.APP_ROOT.'content/mitarbeiter/mitarbeitervertragover
echo '<tab id="mitarbeiter-tab-vertrag" label="Verträge" />';
?>
<tab id="mitarbeiter-tab-termine" label="Termine" onclick="MitarbeiterTermineIFrameLoad()" />
</tabs>
<tabpanels id="mitarbeiter-tabpanels-main" flex="1">
<vbox id="mitarbeiter-detail-stammdaten" style="margin-top:10px;" />
@@ -271,6 +272,7 @@ echo '<?xul-overlay href="'.APP_ROOT.'content/mitarbeiter/mitarbeitervertragover
if($rechte->isBerechtigt('vertrag/mitarbeiter'))
echo '<vbox id="mitarbeiter-vertrag" style="margin-top:10px;" />';
?>
<iframe id="mitarbeiter-termine" src="" style="margin-top:10px;" />
</tabpanels>
</tabbox>
</vbox>
@@ -43,7 +43,25 @@ if(isset($_GET['stsem']))
else
$semester_aktuell = $stsem->getaktorNext();
//UID als Kommandozeilenparameter
if(isset($_SERVER['argv']) && isset($_SERVER['argv'][1]) && !strstr($_SERVER['argv'][1],'='))
{
$oe_kurzbz = $_SERVER['argv'][1];
}
else
{
if(isset($_GET['oe_kurzbz']))
$oe_kurzbz = $_GET['oe_kurzbz'];
else
{
$stg = new studiengang();
$stg->load('0');
$oe_kurzbz = $stg->oe_kurzbz;
}
}
$file = 'lehrauftragsliste.xls';
$file = tempnam('/tmp','lehrauftragsliste_').'.xls';
// Creating a workbook
echo 'Lehrauftragslisten werden erstellt. Bitte warten!<BR>';
@@ -51,6 +69,17 @@ flush();
$workbook = new Spreadsheet_Excel_Writer($file);
$workbook->setVersion(8);
$db = new basis_db();
$stg = new studiengang();
$stg->getStudiengaengeFromOe($oe_kurzbz);
$stg_arr=array();
if(count($stg->result)>0)
{
foreach($stg->result as $row)
{
$stg_arr[] = $row->studiengang_kz;
}
}
//Studiengaenge ermitteln bei denen sich die lektorzuordnung innerhalb der letzten 31 Tage geaendert haben
$qry_stg = "SELECT distinct studiengang_kz
FROM (
@@ -77,13 +106,37 @@ $qry_stg = "SELECT distinct studiengang_kz
tbl_lehreinheit.lehrveranstaltung_id = tbl_lehrveranstaltung.lehrveranstaltung_id
) as foo
";
if(count($stg_arr)>0)
$qry_stg.=" WHERE studiengang_kz in (".$db->db_implode4SQL($stg_arr).")";
$liste_gesamt = array();
$gesamt =& $workbook->addWorksheet('Gesamt');
$gesamt->setInputEncoding('utf-8');
$gesamtsheet_row=1;
//Formate Definieren
$format_bold =& $workbook->addFormat();
$format_bold->setBold();
$workbook->setCustomColor(10, 255, 186, 179);
$format_colored =& $workbook->addFormat();
$format_colored->setFgColor(10);
$format_number_colored =& $workbook->addFormat();
$format_number_colored->setNumFormat('0,0.00');
//$format_number_colored->setNumFormat('0.00');
$format_number_colored->setFgColor(10);
$format_number =& $workbook->addFormat();
$format_number->setNumFormat('0,0.00');
$format_number_bold =& $workbook->addFormat();
$format_number_bold->setNumFormat('0,0.00');
//$format_number_bold->setNumFormat('0.00');
$format_number_bold->setBold();
$format_normal = & $workbook->addFormat();
if($result_stg = $db->db_query($qry_stg))
{
while($row_stg = $db->db_fetch_object($result_stg))
@@ -96,28 +149,6 @@ if($result_stg = $db->db_query($qry_stg))
$worksheet =& $workbook->addWorksheet($studiengang->kuerzel);
$worksheet->setInputEncoding('utf-8');
//echo "Writing $studiengang->kuerzel ...".microtime()."<br>";
//Formate Definieren
$format_bold =& $workbook->addFormat();
$format_bold->setBold();
$workbook->setCustomColor(10, 255, 186, 179);
$format_colored =& $workbook->addFormat();
$format_colored->setFgColor(10);
$format_number_colored =& $workbook->addFormat();
$format_number_colored->setNumFormat('0,0.00');
//$format_number_colored->setNumFormat('0.00');
$format_number_colored->setFgColor(10);
$format_number =& $workbook->addFormat();
$format_number->setNumFormat('0,0.00');
$format_number_bold =& $workbook->addFormat();
$format_number_bold->setNumFormat('0,0.00');
//$format_number_bold->setNumFormat('0.00');
$format_number_bold->setBold();
$format_normal = & $workbook->addFormat();
$i=0;
$gesamtsheet_row++;
@@ -449,9 +480,15 @@ if($result_stg = $db->db_query($qry_stg))
public.tbl_person JOIN lehre.tbl_projektbetreuer USING (person_id)
JOIN lehre.tbl_projektarbeit USING (projektarbeit_id)
JOIN lehre.tbl_lehreinheit USING (lehreinheit_id)
JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id)
WHERE
studiensemester_kurzbz=".$db->db_add_param($semester_aktuell)." AND
stunden>0
stunden>0";
if(count($stg_arr)>0)
$qry.=" AND tbl_lehrveranstaltung.studiengang_kz IN(".$db->db_implode4SQL($stg_arr).")";
$qry.="
GROUP BY
studiensemester_kurzbz,person_id,nachname,vorname, titelpre
ORDER BY
@@ -469,6 +506,8 @@ if($result_stg = $db->db_query($qry_stg))
$worksheet->write(2,++$i,"Stunden", $format_bold);
$worksheet->write(2,++$i,"Kosten", $format_bold);
$format = $format_normal;
$formatnb = $format_number;
if($result = $db->db_query($qry))
{
$zeile=3;
@@ -500,14 +539,21 @@ if($result_stg = $db->db_query($qry_stg))
$subject = "Lehrauftragsliste ".date('d.m.Y');
$message = "Dies ist eine automatische eMail!\n\nAnbei die Lehrauftragslisten vom ".date('d.m.Y');
$message.= "\n\nJederzeit abrufbar unter ".APP_ROOT.'content/statistik/lehrauftragsliste_mail.xls.php';
if($oe_kurzbz!='')
$message.="&oe_kurzbz=".$oe_kurzbz;
$fileatttype = "application/xls";
$fileattname = "lehrauftragsliste_".date('Y_m_d').".xls";
$mail = new mail(MAIL_GST, 'noreply@'.DOMAIN, $subject, $message);
$empfaenger = MAIL_GST;
if($oe_kurzbz=='lehrgang')
$empfaenger = MAIL_LG;
$mail = new mail($empfaenger, 'noreply@'.DOMAIN, $subject, $message);
$mail->addAttachmentBinary($file, $fileatttype, $fileattname);
if($mail->send())
echo 'Email mit Lehrauftragslisten wurde an '.MAIL_GST.' versandt!';
echo 'Email mit Lehrauftragslisten wurde an '.$empfaenger.' versandt!';
else
echo "Fehler beim Versenden der Lehrauftragsliste";
}
+128
View File
@@ -0,0 +1,128 @@
<?php
/* Copyright (C) 2015 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 <andreas.oesterreicher@technikum-wien.at>
*/
/**
* Exportiert die Termine von Lehreinheiten/Lehrveranstaltung/Studierenden/Mitarbeitern
*/
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/variable.class.php');
require_once('../../include/lehrstunde.class.php');
require_once('../../include/datum.class.php');
require_once('../../include/stunde.class.php');
require_once('../../include/Excel/excel.php');
$user = get_uid();
$variable = new variable();
$variable->loadVariables($user);
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($user);
if(!$rechte->isBerechtigt('assistenz') && !$rechte->isBerechtigt('lvplan') && !$rechte->isBerechtigt('admin'))
die($rechte->errormsg);
$stunde = new stunde();
$stunde->loadAll();
$stunden_arr=array();
foreach($stunde->stunden as $row)
{
$stunden_arr[$row->stunde]['beginn']=$row->beginn->format('H:i');
$stunden_arr[$row->stunde]['ende']=$row->ende->format('H:i');
}
$datum_obj = new datum();
$lehrveranstaltung_id = filter_input(INPUT_GET, 'lehrveranstaltung_id');
$lehreinheit_id = filter_input(INPUT_GET, 'lehreinheit_id');
$mitarbeiter_uid = filter_input(INPUT_GET,'mitarbeiter_uid');
$student_uid = filter_input(INPUT_GET,'student_uid');
$db = new basis_db();
$lehrstunde = new lehrstunde();
//$variable->variable->db_stpl_table
$lehrstunde->getStundenplanData('stundenplan', $lehrveranstaltung_id, $variable->variable->semester_aktuell, $lehreinheit_id, $mitarbeiter_uid, $student_uid);
function writecol($zeile, $i, $content)
{
global $worksheet, $maxlength;
$worksheet->write($zeile, $i, $content);
if(mb_strlen($content)>$maxlength[$i])
$maxlength[$i]=mb_strlen($content);
}
$maxlength= array();
$zeile=1;
// Creating a workbook
$workbook = new Spreadsheet_Excel_Writer();
// sending HTTP headers
$workbook->send("Termine". "_" . date("d_m_Y") . ".xls");
$workbook->setVersion(8);
// Creating a worksheet
$worksheet =& $workbook->addWorksheet("Termine");
$worksheet->setInputEncoding('utf-8');
$format_bold =& $workbook->addFormat();
$format_bold->setBold();
$format_title =& $workbook->addFormat();
$format_title->setBold();
// let's merge
$format_title->setAlign('merge');
//Zeilenueberschriften ausgeben
$headline=array('Datum','Von','Bis','Ort','Lektoren','Gruppen','Lehrfach','StundeVon','StundeBis');
$i=0;
foreach ($headline as $title)
{
$worksheet->write(0,$i,$title, $format_bold);
$maxlength[$i]=mb_strlen($title);
$i++;
}
foreach($lehrstunde->result as $row)
{
$i=0;
writecol($zeile, $i++, $datum_obj->formatDatum($row->datum,'d.m.Y'));
writecol($zeile, $i++, $stunden_arr[$row->stundevon]['beginn']);
writecol($zeile, $i++, $stunden_arr[$row->stundebis]['ende']);
writecol($zeile, $i++, implode(',',$row->orte));
writecol($zeile, $i++, implode(',',$row->lektoren));
writecol($zeile, $i++, implode(',',$row->gruppen));
writecol($zeile, $i++, $row->lehrfach_bezeichnung);
writecol($zeile, $i++, $row->stundevon);
writecol($zeile, $i++, $row->stundebis);
$zeile++;
}
//Die Breite der Spalten setzen
foreach($maxlength as $i=>$breite)
$worksheet->setColumn($i, $i, $breite+2);
$workbook->close();
?>
+2
View File
@@ -369,6 +369,7 @@ else
<tab id="student-tab-gruppen" label="Gruppen" onclick="StudentGruppenLoadData();"/>
<tab id="student-tab-funktionen" label="Funktionen" onclick="StudentFunktionIFrameLoad();"/>
<tab id="student-tab-notizen" label="Notizen"/>
<tab id="student-tab-termine" label="Termine" onclick="StudentTermineIFrameLoad();"/>
</tabs>
<tabpanels id="student-tabpanels-main" flex="1">
<vbox id="student-detail" style="margin-top:10px;" />
@@ -392,6 +393,7 @@ else
<vbox id="student-box-notiz">
<box class="Notiz" flex="1" id="student-box-notizen"/>
</vbox>
<iframe id="student-termine" src="" style="margin-top:10px;" />
</tabpanels>
</tabbox>
</vbox>
+56
View File
@@ -1525,6 +1525,13 @@ function StudentAuswahl()
url = '<?php echo APP_ROOT; ?>content/funktionen.xul.php?uid='+uid;
document.getElementById('student-funktionen').setAttribute('src',url);
}
// ***** Termine *****
if(document.getElementById('student-content-tabs').selectedItem==document.getElementById('student-tab-termine'))
{
document.getElementById('student-termine').setAttribute('src','termine.xul.php?student_uid='+uid);
}
}
// Notizen laden
@@ -5289,6 +5296,19 @@ function StudentFunktionIFrameLoad()
}
}
// ****
// * Laedt den Termine IFrame
// ****
function StudentTermineIFrameLoad()
{
uid = document.getElementById('student-detail-textbox-uid').value;
if(uid!='')
{
url = 'termine.xul.php?student_uid='+uid+'&ts='+gettimestamp();
document.getElementById('student-termine').setAttribute('src',url);
}
}
// ****
// * Funktionen IFrame ins leere zeigen lassen
// ****
@@ -5387,3 +5407,39 @@ function StudentPrestudentRolleVorruecken()
return true;
}
}
// ****
// * Öffnet den Studienplan des Studenten im CIS
// ****
function StudentCisStudienplan(event)
{
var tree = document.getElementById('student-tree');
if (tree.currentIndex == -1)
{
alert("Bitte wählen Sie einen Studenten aus.");
return false;
}
var col = tree.columns ? tree.columns["student-treecol-uid"] : "student-treecol-uid";
var uid = tree.view.getCellText(tree.currentIndex,col);
window.open('<?php echo CIS_ROOT; ?>cis/private/profile/studienplan.php?uid='+uid);
}
// ****
// * Öffnet die Notenliste des Studenten im CIS
// ****
function StudentCisNotenliste(event)
{
var tree = document.getElementById('student-tree');
if (tree.currentIndex == -1)
{
alert("Bitte wählen Sie einen Studenten aus.");
return false;
}
var col = tree.columns ? tree.columns["student-treecol-uid"] : "student-treecol-uid";
var uid = tree.view.getCellText(tree.currentIndex,col);
window.open('<?php echo CIS_ROOT; ?>cis/private/lehre/notenliste.php?uid='+uid);
}
+75
View File
@@ -0,0 +1,75 @@
<?php
/* Copyright (C) 2015 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 <andreas.oesterreicher@technikum-wien.at>
*/
require_once('../config/vilesci.config.inc.php');
?>
// ********** FUNKTIONEN ********** //
var TermineLehreinheitID='';
var TermineLehrveranstaltungID='';
var TermineMitarbeiterUID='';
var TermineStudentUID='';
// ****
// * Laedt die Trees
// ****
function loadTermine(lehreinheit_id, lehrveranstaltung_id, mitarbeiter_uid, student_uid)
{
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
TermineLehreinheitID=lehreinheit_id;
TermineLehrveranstaltungID=lehrveranstaltung_id;
TermineMitarbeiterUID=mitarbeiter_uid;
TermineStudentUID=student_uid;
//Termine laden
url = "<?php echo APP_ROOT; ?>rdf/termine.rdf.php?ts="+gettimestamp();
if(lehreinheit_id!='')
url=url+"&lehreinheit_id="+lehreinheit_id;
if(lehrveranstaltung_id!='')
url=url+"&lehrveranstaltung_id="+lehrveranstaltung_id;
if(mitarbeiter_uid!='')
url=url+"&mitarbeiter_uid="+mitarbeiter_uid;
if(student_uid!='')
url=url+"&student_uid="+student_uid;
var treeTermine=document.getElementById('termine-tree');
//Alte DS entfernen
var oldDatasources = treeTermine.database.GetDataSources();
while(oldDatasources.hasMoreElements())
{
treeTermine.database.RemoveDataSource(oldDatasources.getNext());
}
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
var TerminTreeDatasource = rdfService.GetDataSource(url);
TerminTreeDatasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
treeTermine.database.AddDataSource(TerminTreeDatasource);
}
/**
* Exportiert die Termine
*/
function TermineExport()
{
var url = 'statistik/termine.xls.php?lehreinheit_id='+TermineLehreinheitID+'&lehrveranstaltung_id='+TermineLehrveranstaltungID+'&mitarbeiter_uid='+TermineMitarbeiterUID+'&student_uid='+TermineStudentUID;
window.open(url);
}
+130
View File
@@ -0,0 +1,130 @@
<?php
/* Copyright (C) 2015 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 <andreas.oesterreicher@technikum-wien.at>
*/
header("Cache-Control: no-cache");
header("Cache-Control: post-check=0, pre-check=0",false);
header("Expires Mon, 26 Jul 1997 05:00:00 GMT");
header("Pragma: no-cache");
header("Content-type: application/vnd.mozilla.xul+xml");
require_once('../config/vilesci.config.inc.php');
echo '<?xml version="1.0" encoding="UTF-8"?>'."\n";
echo '<?xml-stylesheet href="'.APP_ROOT.'skin/tempus.css" type="text/css"?>';
echo '<?xml-stylesheet href="'.APP_ROOT.'content/bindings.css" type="text/css"?>';
$lehreinheit_id = filter_input(INPUT_GET, 'lehreinheit_id');
$lehrveranstaltung_id = filter_input(INPUT_GET, 'lehrveranstaltung_id');
$mitarbeiter_uid = filter_input(INPUT_GET,'mitarbeiter_uid');
$student_uid = filter_input(INPUT_GET,'student_uid');
?>
<window id="termine-window" title="termine"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
onload="loadTermine(<?php echo "'".$lehreinheit_id."','".$lehrveranstaltung_id."','".$mitarbeiter_uid."','".$student_uid."'"; ?>);"
>
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/termine.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" />
<vbox flex="1">
<groupbox id="termine-groupbox-termine" flex="1">
<caption label="Termine" />
<hbox flex="1">
<tree id="termine-tree" seltype="single" hidecolumnpicker="false" flex="1"
datasources="rdf:null" ref="http://www.technikum-wien.at/termine"
persist="hidden, height"
>
<treecols>
<treecol id="termine-treecol-datum" label="Datum" flex="1" hidden="false"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/termine/rdf#datum_iso" onclick="termineTreeSort()"/>
<splitter class="tree-splitter"/>
<treecol id="termine-treecol-stundevon" label="Stunde Von" flex="1" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/termine/rdf#stundevon" onclick="termineTreeSort()"/>
<splitter class="tree-splitter"/>
<treecol id="termine-treecol-stundebis" label="Stunde Bis" flex="1" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/termine/rdf#stundebis" onclick="termineTreeSort()"/>
<splitter class="tree-splitter"/>
<treecol id="termine-treecol-uhrzeitvon" label="Von" flex="1" hidden="false"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/termine/rdf#uhrzeitvon" onclick="termineTreeSort()"/>
<splitter class="tree-splitter"/>
<treecol id="termine-treecol-uhrzeitbis" label="Bis" flex="1" hidden="false"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/termine/rdf#uhrzeitbis" onclick="termineTreeSort()"/>
<splitter class="tree-splitter"/>
<treecol id="termine-treecol-gruppen" label="Gruppen" flex="3" hidden="false"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/termine/rdf#gruppen" onclick="termineTreeSort()"/>
<splitter class="tree-splitter"/>
<treecol id="termine-treecol-ort" label="Ort" flex="2" hidden="false"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/termine/rdf#ort" onclick="termineTreeSort()"/>
<splitter class="tree-splitter"/>
<treecol id="termine-treecol-lektor" label="Lektor" flex="2" hidden="false"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/termine/rdf#lektor" onclick="termineTreeSort()"/>
<splitter class="tree-splitter"/>
<treecol id="termine-treecol-lehrfach" label="Lehrfach" flex="4" hidden="false"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/termine/rdf#lehrfach" onclick="termineTreeSort()"/>
<splitter class="tree-splitter"/>
<treecol id="termine-treecol-anwesend" label="Anwesend" flex="1" hidden="false"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/termine/rdf#anwesend" onclick="termineTreeSort()"/>
<splitter class="tree-splitter"/>
<treecol id="termine-treecol-datum_iso" label="DatumISO" flex="1" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/termine/rdf#datum_iso" onclick="termineTreeSort()"/>
<splitter class="tree-splitter"/>
</treecols>
<template>
<rule>
<treechildren>
<treeitem uri="rdf:*">
<treerow>
<treecell label="rdf:http://www.technikum-wien.at/termine/rdf#datum" />
<treecell label="rdf:http://www.technikum-wien.at/termine/rdf#stundevon" />
<treecell label="rdf:http://www.technikum-wien.at/termine/rdf#stundebis" />
<treecell label="rdf:http://www.technikum-wien.at/termine/rdf#uhrzeitvon" />
<treecell label="rdf:http://www.technikum-wien.at/termine/rdf#uhrzeitbis" />
<treecell label="rdf:http://www.technikum-wien.at/termine/rdf#gruppen" />
<treecell label="rdf:http://www.technikum-wien.at/termine/rdf#ort" />
<treecell label="rdf:http://www.technikum-wien.at/termine/rdf#lektor" />
<treecell label="rdf:http://www.technikum-wien.at/termine/rdf#lehrfach" />
<treecell label="rdf:http://www.technikum-wien.at/termine/rdf#anwesend" />
<treecell label="rdf:http://www.technikum-wien.at/termine/rdf#datum_iso" />
</treerow>
</treeitem>
</treechildren>
</rule>
</template>
</tree>
</hbox>
</groupbox>
<button label="Exportieren" oncommand="TermineExport()"/>
</vbox>
</window>
+3 -2
View File
@@ -342,7 +342,8 @@ class akte extends basis_db
{
$qry = "SELECT
akte_id, person_id, dokument_kurzbz, mimetype, erstelltam, gedruckt,
titel, bezeichnung, updateamum, insertamum, updatevon, insertvon, uid
titel, bezeichnung, updateamum, insertamum, updatevon, insertvon, uid,
dms_id,nachgereicht,anmerkung,titel_intern,anmerkung_intern
FROM public.tbl_akte WHERE person_id=".$this->db_add_param($person_id, FHC_INTEGER);
$qry.=" AND dokument_kurzbz IN ('Lebenslf','Motivat','LearnAgr')";
@@ -372,7 +373,7 @@ class akte extends basis_db
$akten->nachgereicht = $this->db_parse_bool($row->nachgereicht);
$akten->anmerkung = $row->anmerkung;
$akten->titel_intern = $row->titel_intern;
$akten->anmerkung_intern = $row->anmerkung_inter;
$akten->anmerkung_intern = $row->anmerkung_intern;
$this->result[] = $akten;
}
+35
View File
@@ -349,4 +349,39 @@ class anwesenheit extends basis_db
return 'green';
}
}
/**
* Prueft ob Anwesenheiten erfasst wurden
* @param $lehreinheit_id ID der Lehreinheit
* @param $datum Datum
* @param $uid UID des Studierenden
* @return boolean true wenn vorhanden, sonst false
*/
public function AnwesenheitExists($lehreinheit_id, $datum, $uid=null)
{
$qry = "SELECT
1
FROM
campus.tbl_anwesenheit
WHERE
anwesend=true
AND lehreinheit_id=".$this->db_add_param($lehreinheit_id)."
AND datum=".$this->db_add_param($datum);
if($uid!='')
$qry.=" AND uid=".$this->db_add_param($uid);
if($result = $this->db_query($qry))
{
if($this->db_num_rows($result)>0)
return true;
else
return false;
}
else
{
$this->errormsg = 'Fehler beim Laden der Daten';
return false;
}
}
}
+1
View File
@@ -65,6 +65,7 @@ abstract class db extends basis
abstract function db_parse_bool($var);
abstract function db_implode4SQL($var);
abstract function db_getResultJSON($result = null);
abstract function db_parse_array($var);
/**
+78
View File
@@ -156,6 +156,8 @@ class lehrstunde extends basis_db
$sql_query='UPDATE '.$stpl_table;
$sql_query.=" SET datum=".$this->db_add_param($this->datum).", stunde=".$this->db_add_param($this->stunde);
$sql_query.=", ort_kurzbz=".$this->db_add_param($this->ort_kurzbz).", mitarbeiter_uid=".$this->db_add_param($this->lektor_uid);
if($this->unr!='')
$sql_query.=", unr=".$this->db_add_param($this->unr);
$sql_query.=", updateamum=now(), updatevon=".$this->db_add_param($uid);
$sql_query.=" WHERE $stpl_id=".$this->db_add_param($this->stundenplan_id);
@@ -889,6 +891,82 @@ class lehrstunde extends basis_db
}
return $result;
}
public function getStundenplanData($db_stpl_table, $lehrveranstaltung_id=null, $studiensemester_kurzbz=null, $lehreinheit_id=null, $mitarbeiter_uid=null, $student_uid=null)
{
$qry = "SELECT
stpl.datum, min(stpl.stunde) as stundevon, max(stpl.stunde) as stundebis,
stpl.lehreinheit_id, lehrfach.bezeichnung as lehrfach_bezeichnung,
array_agg(
CASE WHEN gruppe_kurzbz is not null THEN gruppe_kurzbz
ELSE (SELECT UPPER(typ || kurzbz) FROM public.tbl_studiengang WHERE studiengang_kz=stpl.studiengang_kz) || COALESCE(stpl.semester,'0') || COALESCE(stpl.verband,'') || COALESCE(stpl.gruppe,'')
END) as gruppen, array_agg(mitarbeiter_uid) as lektoren,
array_agg(ort_kurzbz) as orte
FROM
lehre.tbl_".$db_stpl_table." as stpl
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
JOIN lehre.tbl_lehrveranstaltung as lehrfach ON(tbl_lehreinheit.lehrfach_id=lehrfach.lehrveranstaltung_id)
WHERE ";
if($lehrveranstaltung_id!='')
{
$qry.=" lehreinheit_id in(SELECT lehreinheit_id FROM lehre.tbl_lehreinheit
WHERE lehrveranstaltung_id=".$this->db_add_param($lehrveranstaltung_id)."
AND studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz).")";
}
elseif($lehreinheit_id!='')
{
$qry.=" lehreinheit_id=".$this->db_add_param($lehreinheit_id);
}
elseif($mitarbeiter_uid!='')
{
$qry.=" mitarbeiter_uid=".$this->db_add_param($mitarbeiter_uid)." AND lehreinheit_id IN(
SELECT
lehreinheit_id
FROM
lehre.tbl_lehreinheitmitarbeiter
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
WHERE mitarbeiter_uid=".$this->db_add_param($mitarbeiter_uid)." AND studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz).")";
}
elseif($student_uid!='')
{
$qry.=" lehreinheit_id in (
SELECT
lehreinheit_id
FROM
campus.vw_student_lehrveranstaltung
WHERE
uid=".$this->db_add_param($student_uid)." AND studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz).")";
}
else
return false;
$qry.="GROUP BY stpl.datum, stpl.unr, stpl.lehreinheit_id, lehrfach.bezeichnung
ORDER BY stpl.datum, min(stpl.stunde), stpl.unr, stpl.lehreinheit_id";
if($result = $this->db_query($qry))
{
while($row = $this->db_fetch_object($result))
{
$obj = new stdClass();
$obj->datum = $row->datum;
$obj->stundevon = $row->stundevon;
$obj->stundebis = $row->stundebis;
$obj->gruppen = array_unique($this->db_parse_array($row->gruppen));
$obj->lektoren = array_unique($this->db_parse_array($row->lektoren));
$obj->orte = array_unique($this->db_parse_array($row->orte));
$obj->lehrfach_bezeichnung = $row->lehrfach_bezeichnung;
$obj->lehreinheit_id = $row->lehreinheit_id;
$this->result[] = $obj;
}
return true;
}
else
return false;
}
}
?>
+37
View File
@@ -724,5 +724,42 @@ class organisationseinheit extends basis_db
return false;
}
}
/**
* Ermittelt die Stundenobergrenze fuer Lektoren
* Dabei wird im OE Baum nach oben nach Stundengrenzen gesucht und die niedrigste Stundengrenze ermittelt
* @param $oe_kurzbz Organisationseinheit
* @param $fixangestellt boolean legt fest ob die Grenze
* fuer Freie oder Fixangestellte Lektoren ermittelt werden soll
* @return array(oe_kurzbz, numeric Anzahl der Stunden)
*/
public function getStundengrenze($oe_kurzbz, $fixangestellt=true)
{
if($fixangestellt)
$fixfrei='fix';
else
$fixfrei='frei';
$qry = "
WITH RECURSIVE oes(oe_kurzbz, oe_parent_kurzbz) as
(
SELECT oe_kurzbz, oe_parent_kurzbz FROM public.tbl_organisationseinheit
WHERE oe_kurzbz=".$this->db_add_param($oe_kurzbz)."
UNION ALL
SELECT o.oe_kurzbz, o.oe_parent_kurzbz FROM public.tbl_organisationseinheit o, oes
WHERE o.oe_kurzbz=oes.oe_parent_kurzbz
)
SELECT oe_kurzbz, warn_semesterstunden_".$fixfrei." as stunden
FROM oes JOIN public.tbl_organisationseinheit USING(oe_kurzbz)
ORDER BY warn_semesterstunden_".$fixfrei." asc limit 1";
if($result = $this->db_query($qry))
{
if($row = $this->db_fetch_object($result))
{
return array($row->oe_kurzbz, $row->stunden);
}
}
}
}
?>
+18
View File
@@ -342,5 +342,23 @@ class basis_db extends db
}
return $string;
}
/**
* Erstellt aus einem DB Array ein PHP Array
* @param $var DB Result Array Spalte
* @return php array
*/
public function db_parse_array($var)
{
if ($var == '')
return;
preg_match_all('/(?<=^\{|,)(([^,"{]*)|\s*"((?:[^"\\\\]|\\\\(?:.|[0-9]+|x[0-9a-f]+))*)"\s*)(,|(?<!^\{)(?=\}$))/i', $var, $matches, PREG_SET_ORDER);
$values = array();
foreach ($matches as $match)
{
$values[] = $match[3] != '' ? stripcslashes($match[3]) : (strtolower($match[2]) == 'null' ? null : $match[2]);
}
return $values;
}
}
?>
+74
View File
@@ -798,4 +798,78 @@ class studiengang extends basis_db
return false;
}
}
/**
* Laedt alle Studiengaenge in einer Organisationseinheit
* @param varchar $oe_kurzbz Organisationseinheit
* @param boolean $aktiv Wenn true dann werden nur aktive Studiengaenge geliefert
* @return boolean
*/
public function getStudiengaengeFromOe($oe_kurzbz, $aktiv=true)
{
$qry ="WITH RECURSIVE oes(oe_kurzbz) as
(
SELECT oe_kurzbz FROM public.tbl_organisationseinheit WHERE oe_kurzbz=".$this->db_add_param($oe_kurzbz)."
UNION
SELECT tbl_organisationseinheit.oe_kurzbz FROM public.tbl_organisationseinheit JOIN oes ON(oe_parent_kurzbz=oes.oe_kurzbz)
)
SELECT * FROM public.tbl_studiengang JOIN oes USING(oe_kurzbz) WHERE oe_kurzbz = oes.oe_kurzbz";
if($aktiv===true)
{
$qry.=" AND tbl_studiengang.aktiv";
}
if($this->db_query($qry))
{
while($row = $this->db_fetch_object())
{
$obj = new studiengang();
$obj->studiengang_kz = $row->studiengang_kz;
$obj->kurzbz = $row->kurzbz;
$obj->kurzbzlang = $row->kurzbzlang;
$obj->bezeichnung = $row->bezeichnung;
$obj->english = $row->english;
$obj->typ = $row->typ;
$obj->farbe = $row->farbe;
$obj->email = $row->email;
$obj->max_semester = $row->max_semester;
$obj->max_verband = $row->max_verband;
$obj->max_gruppe = $row->max_gruppe;
$obj->erhalter_kz = $row->erhalter_kz;
$obj->bescheid = $row->bescheid;
$obj->bescheidbgbl1 = $row->bescheidbgbl1;
$obj->bescheidbgbl2 = $row->bescheidbgbl2;
$obj->bescheidgz = $row->bescheidgz;
$obj->bescheidvom = $row->bescheidvom;
$obj->ext_id = $row->ext_id;
$obj->kuerzel = mb_strtoupper($row->typ . $row->kurzbz);
$obj->orgform_kurzbz = $row->orgform_kurzbz;
$obj->zusatzinfo_html = $row->zusatzinfo_html;
$obj->sprache = $row->sprache;
$obj->testtool_sprachwahl = $this->db_parse_bool($row->testtool_sprachwahl);
$obj->studienplaetze = $row->studienplaetze;
$obj->oe_kurzbz = $row->oe_kurzbz;
$obj->lgartcode = $row->lgartcode;
$obj->telefon = $row->telefon;
$obj->titelbescheidvom = $row->titelbescheidvom;
$obj->onlinebewerbung = $this->db_parse_bool($row->onlinebewerbung);
$obj->moodle = $this->db_parse_bool($row->moodle);
$obj->mischform = $this->db_parse_bool($row->mischform);
$obj->projektarbeit_note_anzeige = $this->db_parse_bool($row->projektarbeit_note_anzeige);
$obj->bezeichnung_arr['German'] = $obj->bezeichnung;
$obj->bezeichnung_arr['English'] = $obj->english;
$this->result[] = $obj;
}
return true;
}
else
{
$this->errormsg = "Fehler bei der Datenbankabfrage aufgetreten.";
return false;
}
}
}
+64 -61
View File
@@ -273,76 +273,79 @@ function checkZeilenUmbruch()
checkZeilenUmbruch();
$eintraegeprozeile++;
echo '<td class="tdvertical" align="center">';
if(CIS_LEHRVERANSTALTUNG_LEISTUNGSUEBERSICHT_ANZEIGEN || $is_lector)
{
if($angemeldet || $is_lector)
echo '<img class="lv" src="../../../skin/images/button_listen.png"><br>';
$eintraegeprozeile++;
echo '<td class="tdvertical" align="center">';
if((CIS_LEHRVERANSTALTUNG_LEISTUNGSUEBERSICHT_ANZEIGEN && $angemeldet) || $is_lector)
echo '<img class="lv" src="../../../skin/images/button_listen.png"><br>';
if($is_lector)
{
//Anwesenheitsliste
echo "<b><a href='anwesenheitsliste.php?stg_kz=$studiengang_kz&sem=$semester&lvid=$lvid&stsem=$angezeigtes_stsem' class='Item'>".$p->t('lehre/anwesenheitsUndNotenlisten')."</a></b><br>";
}
if($is_lector)
{
//Anwesenheitsliste
echo "<b><a href='anwesenheitsliste.php?stg_kz=$studiengang_kz&sem=$semester&lvid=$lvid&stsem=$angezeigtes_stsem' class='Item'>".$p->t('lehre/anwesenheitsUndNotenlisten')."</a></b><br>";
}
//Leistungsuebersicht
$dir_name=$DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester.'/'.mb_strtolower($short_short_name).'/leistung';
//Leistungsuebersicht
$dir_name=$DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester.'/'.mb_strtolower($short_short_name).'/leistung';
$dest_dir = @dir($dir_name);
if(!@is_dir($dest_dir->path))
{
if(!@is_dir(DOC_ROOT.'/documents/'.mb_strtolower($kurzbz)))
$dest_dir = @dir($dir_name);
if(!@is_dir($dest_dir->path))
{
exec('mkdir -m 755 '.escapeshellarg(DOC_ROOT.'/documents/'.mb_strtolower($kurzbz)));
exec('sudo chown www-data:teacher '.escapeshellarg(DOC_ROOT.'/documents/'.mb_strtolower($kurzbz)));
}
if(!@is_dir(DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester))
{
exec('mkdir -m 755 '.escapeshellarg(DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester));
exec('sudo chown www-data:teacher '.escapeshellarg(DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester));
}
if(!@is_dir(DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester.'/'.mb_strtolower($short_short_name)))
{
exec('mkdir -m 755 '.escapeshellarg(DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester.'/'.mb_strtolower($short_short_name)));
exec('sudo chown www-data:teacher '.escapeshellarg(DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester.'/'.mb_strtolower($short_short_name)));
}
if(!@is_dir(DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester.'/'.mb_strtolower($short_short_name).'/leistung'))
{
exec('mkdir -m 775 '.escapeshellarg(DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester.'/'.mb_strtolower($short_short_name).'/leistung'));
exec('sudo chown www-data:teacher '.escapeshellarg(DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester.'/'.mb_strtolower($short_short_name).'/leistung'));
}
}
if($dest_dir)
{
$dir_empty = true;
while($entry = $dest_dir->read())
{
if($entry != "." && $entry != "..")
if(!@is_dir(DOC_ROOT.'/documents/'.mb_strtolower($kurzbz)))
{
$dir_empty = false;
break;
exec('mkdir -m 755 '.escapeshellarg(DOC_ROOT.'/documents/'.mb_strtolower($kurzbz)));
exec('sudo chown www-data:teacher '.escapeshellarg(DOC_ROOT.'/documents/'.mb_strtolower($kurzbz)));
}
if(!@is_dir(DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester))
{
exec('mkdir -m 755 '.escapeshellarg(DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester));
exec('sudo chown www-data:teacher '.escapeshellarg(DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester));
}
if(!@is_dir(DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester.'/'.mb_strtolower($short_short_name)))
{
exec('mkdir -m 755 '.escapeshellarg(DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester.'/'.mb_strtolower($short_short_name)));
exec('sudo chown www-data:teacher '.escapeshellarg(DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester.'/'.mb_strtolower($short_short_name)));
}
if(!@is_dir(DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester.'/'.mb_strtolower($short_short_name).'/leistung'))
{
exec('mkdir -m 775 '.escapeshellarg(DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester.'/'.mb_strtolower($short_short_name).'/leistung'));
exec('sudo chown www-data:teacher '.escapeshellarg(DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester.'/'.mb_strtolower($short_short_name).'/leistung'));
}
}
}
if($angemeldet || $is_lector)
{
if(isset($dest_dir) && isset($dir_empty) && $dir_empty == false)
{
echo '<a href="'.$dest_dir->path.'" target="_blank">';
echo '<strong>'.$p->t('lehre/leistungsuebersicht').'</strong>';
echo '</a>';
}
else
{
echo '<strong>'.$p->t('lehre/leistungsuebersicht').'</strong>';
}
}
echo '</td>';
if($dest_dir)
{
$dir_empty = true;
while($entry = $dest_dir->read())
{
if($entry != "." && $entry != "..")
{
$dir_empty = false;
break;
}
}
}
if(CIS_LEHRVERANSTALTUNG_LEISTUNGSUEBERSICHT_ANZEIGEN && ($angemeldet || $is_lector))
{
if(isset($dest_dir) && isset($dir_empty) && $dir_empty == false)
{
echo '<a href="'.$dest_dir->path.'" target="_blank">';
echo '<strong>'.$p->t('lehre/leistungsuebersicht').'</strong>';
echo '</a>';
}
else
{
echo '<strong>'.$p->t('lehre/leistungsuebersicht').'</strong>';
}
}
echo '</td>';
}
checkZeilenUmbruch();
//Keine Newsgroups fuer Studiengang '0' (Freifaecher) anzeigen
+8 -4
View File
@@ -1356,6 +1356,7 @@ class wochenplan extends basis_db
$z=0;
$reservierung=false;
$stundenplan_ids=array();
$titel='';
if(isset($raumcheck))
unset($raumcheck);
@@ -1401,7 +1402,7 @@ class wochenplan extends basis_db
}
if(isset($lehrstunde->farbe) && $farbe=='')
$farbe=$lehrstunde->farbe;
$titel=htmlspecialchars($lehrstunde->titel);
$titel.=htmlspecialchars($lehrstunde->titel);
$anmerkung=htmlspecialchars($lehrstunde->anmerkung);
$tooltip_anmerkung[]=$titel.' '.$anmerkung;
}
@@ -1417,9 +1418,12 @@ class wochenplan extends basis_db
if(isset($lktcheck[$lehrstunde->lektor]) && $lktcheck[$lehrstunde->lektor]!=$lehrstunde->unr)
{
$kollision++;
$kollisionsmeldungen[$lehrstunde->unr][]=" LektorIn ".$lehrstunde->lektor; //." ".$lehrstunde->unr."!=".$lktcheck[$lehrstunde->lektor];
$kollisionsmeldungen[$lktcheck[$lehrstunde->lektor]][]=" LektorIn ".$lehrstunde->lektor; //." ".$lehrstunde->unr."!=".$lktcheck[$lehrstunde->lektor];
if(!in_array($lehrstunde->lektor_uid, unserialize(KOLLISIONSFREIE_USER)))
{
$kollision++;
$kollisionsmeldungen[$lehrstunde->unr][]=" LektorIn ".$lehrstunde->lektor; //." ".$lehrstunde->unr."!=".$lktcheck[$lehrstunde->lektor];
$kollisionsmeldungen[$lktcheck[$lehrstunde->lektor]][]=" LektorIn ".$lehrstunde->lektor; //." ".$lehrstunde->unr."!=".$lktcheck[$lehrstunde->lektor];
}
}
else
$lktcheck[$lehrstunde->lektor]=$lehrstunde->unr;
+1 -1
View File
@@ -482,7 +482,7 @@ class zeitsperre extends basis_db
$qry = "select datum::date, freigabevon, zeitsperretyp_kurzbz
from (SELECT generate_series(vondatum::timestamp, bisdatum::timestamp, '1 day') as datum, freigabevon, mitarbeiter_uid, zeitsperretyp_kurzbz FROM campus.tbl_zeitsperre where vonstunde is null and bisstunde is null) a
where a.mitarbeiter_uid = ".$this->db_add_param($uid)." and datum>(now() - interval '50 Days') and zeitsperretyp_kurzbz in ('Krank','Urlaub', 'ZA', 'DienstV')";
where a.mitarbeiter_uid = ".$this->db_add_param($uid)." and datum>(now() - interval '50 Days') and zeitsperretyp_kurzbz in ('Krank','Urlaub', 'ZA', 'DienstV','PflegeU')";
+12
View File
@@ -285,6 +285,18 @@
<!ENTITY menu-dokumente-urkunde_englisch.label "Urkunde Englisch">
<!ENTITY menu-dokumente-urkunde_englisch.accesskey "E">
<!-- CIS -->
<!ENTITY menu-cis.label "CIS">
<!ENTITY menu-cis.accesskey "C">
<!ENTITY menu-cis-studienplan.key "P">
<!ENTITY menu-cis-studienplan.label "Studienplan">
<!ENTITY menu-cis-studienplan.accesskey "P">
<!ENTITY menu-cis-notenliste.key "N">
<!ENTITY menu-cis-notenliste.label "Notenliste">
<!ENTITY menu-cis-notenliste.accesskey "N">
<!-- Extras -->
<!ENTITY menu-extras.label "Extras">
<!ENTITY menu-extras.accesskey "X">
Regular → Executable
+1 -1
View File
@@ -15,7 +15,7 @@ $this->phrasen['zeitsperre/edit']='edit';
$this->phrasen['zeitsperre/loeschen']='löschen';
$this->phrasen['zeitsperre/wollenSieEintragWirklichLoeschen']='Wollen Sie diesen Eintrag wirklich löschen';
$this->phrasen['zeitsperre/stundeInklusive']='Stunde (inklusive)';
$this->phrasen['zeitsperre/achtungEsWerdenAlleEingegebenenTage']='Achtung: Es werden alle eingegebenen Tage bei der Berechnung berücksichtigt. Daher müssen mehrtägige Zeitsperren<br> an Unterbrechungen wie Wochenenden oder Feiertagen unterteilt werden!';
$this->phrasen['zeitsperre/achtungEsWerdenAlleEingegebenenTage']='<b>Achtung:</b> Es werden alle eingegebenen Tage bei der Berechnung berücksichtigt.<br>Daher müssen mehrtägige Zeitsperren an Unterbrechungen wie Wochenenden oder Feiertagen unterteilt werden!';
$this->phrasen['zeitsperre/urlaubImGeschaeftsjahr']='Urlaub im Geschäftsjahr';
$this->phrasen['zeitsperre/sieHabenKeineBerechtigungZuAendern']='Sie haben keine Berechtigung die Zeitsperre zu ändern.';
$this->phrasen['zeitsperre/vonDatumIstUngueltigNullenAngeben']='Von-Datum ist ungültig. Bitte beachten Sie, dass führende Nullen angegeben werden müssen (Beispiel: 01.01.2008)';
+12
View File
@@ -282,6 +282,18 @@
<!ENTITY menu-dokumente-urkunde_englisch.label "Urkunde Englisch">
<!ENTITY menu-dokumente-urkunde_englisch.accesskey "E">
<!-- CIS -->
<!ENTITY menu-cis.label "CIS">
<!ENTITY menu-cis.accesskey "C">
<!ENTITY menu-cis-studienplan.key "P">
<!ENTITY menu-cis-studienplan.label "Studienplan">
<!ENTITY menu-cis-studienplan.accesskey "P">
<!ENTITY menu-cis-notenliste.key "N">
<!ENTITY menu-cis-notenliste.label "Notenliste">
<!ENTITY menu-cis-notenliste.accesskey "N">
<!-- Extras -->
<!ENTITY menu-extras.label "Extras">
<!ENTITY menu-extras.accesskey "X">
Regular → Executable
+1 -1
View File
@@ -15,7 +15,7 @@ $this->phrasen['zeitsperre/edit']='edit';
$this->phrasen['zeitsperre/loeschen']='delete';
$this->phrasen['zeitsperre/wollenSieEintragWirklichLoeschen']='Do you want to delete this entry';
$this->phrasen['zeitsperre/stundeInklusive']='Hour (inclusive)';
$this->phrasen['zeitsperre/achtungEsWerdenAlleEingegebenenTage']='Notice: All the days entered will be considered vacation days! Therefore, it is necessary to divide longer vacations so that they do not include weekends or holidays!';
$this->phrasen['zeitsperre/achtungEsWerdenAlleEingegebenenTage']='<b>Notice:</b> All the days entered will be considered vacation days!<br>Therefore, it is necessary to divide longer vacations so that they do not include weekends or holidays!';
$this->phrasen['zeitsperre/urlaubImGeschaeftsjahr']='Vacation in business year';
$this->phrasen['zeitsperre/sieHabenKeineBerechtigungZuAendern']='You are not authorized to change this unvailability.';
$this->phrasen['zeitsperre/vonDatumIstUngueltigNullenAngeben']='The vacation start date is invalid. Please note that the dates are to be given in the following format dd.mm.yyyy (Example: 31.01.2012)';
+97
View File
@@ -0,0 +1,97 @@
<?php
/* Copyright (C) 2015 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/variable.class.php');
require_once('../include/lehrstunde.class.php');
require_once('../include/datum.class.php');
require_once('../include/stunde.class.php');
require_once('../include/anwesenheit.class.php');
$user = get_uid();
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($user);
if(!$rechte->isBerechtigt('assistenz') && !$rechte->isBerechtigt('lvplan') && !$rechte->isBerechtigt('admin'))
die($rechte->errormsg);
$variable = new variable();
$variable->loadVariables($user);
$stunde = new stunde();
$stunde->loadAll();
$stunden_arr=array();
foreach($stunde->stunden as $row)
{
$stunden_arr[$row->stunde]['beginn']=$row->beginn->format('H:i');
$stunden_arr[$row->stunde]['ende']=$row->ende->format('H:i');
}
$datum_obj = new datum();
$oRdf = new rdf('TERMINE','http://www.technikum-wien.at/termine');
$lehrveranstaltung_id = filter_input(INPUT_GET, 'lehrveranstaltung_id');
$lehreinheit_id = filter_input(INPUT_GET, 'lehreinheit_id');
$mitarbeiter_uid = filter_input(INPUT_GET,'mitarbeiter_uid');
$student_uid = filter_input(INPUT_GET,'student_uid');
$oRdf->sendHeader();
$db = new basis_db();
$lehrstunde = new lehrstunde();
//$variable->variable->db_stpl_table
$lehrstunde->getStundenplanData('stundenplan', $lehrveranstaltung_id, $variable->variable->semester_aktuell, $lehreinheit_id, $mitarbeiter_uid, $student_uid);
$i=0;
if(isset($lehrstunde->result) && is_array($lehrstunde->result))
{
foreach($lehrstunde->result as $row)
{
$i=$oRdf->newObjekt($i);
$oRdf->obj[$i]->setAttribut('datum',$datum_obj->formatDatum($row->datum,'d.m.Y'),true);
$oRdf->obj[$i]->setAttribut('stundevon',$row->stundevon,true);
$oRdf->obj[$i]->setAttribut('stundebis',$row->stundebis,true);
$oRdf->obj[$i]->setAttribut('uhrzeitvon',$stunden_arr[$row->stundevon]['beginn'],true);
$oRdf->obj[$i]->setAttribut('uhrzeitbis',$stunden_arr[$row->stundebis]['ende'],true);
$oRdf->obj[$i]->setAttribut('gruppen',implode(',',$row->gruppen),true);
$oRdf->obj[$i]->setAttribut('lektor',implode(',',$row->lektoren),true);
$oRdf->obj[$i]->setAttribut('ort',implode(',',$row->orte),true);
$oRdf->obj[$i]->setAttribut('lehrfach',$row->lehrfach_bezeichnung,true);
$oRdf->obj[$i]->setAttribut('lehreinheit_id',$row->lehreinheit_id,true);
$anwesenheit = new anwesenheit();
if($anwesenheit->AnwesenheitExists($row->lehreinheit_id, $row->datum, $student_uid))
$anwesend='Ja';
else
$anwesend='Nein';
$oRdf->obj[$i]->setAttribut('anwesend',$anwesend,true);
$oRdf->obj[$i]->setAttribut('datum_iso',$row->datum,true);
$oRdf->addSequence($i);
$i++;
}
}
$oRdf->sendRdfText();
?>
+1 -1
View File
@@ -154,11 +154,11 @@ toolbarbutton.stplweekoverlay-toolbarbutton:hover
.stplweek_vbox:hover .stplweek_tagesinfo
{
color: #AAAAAA;
visibility:visible;
}
.stplweek_tagesinfo
{
color: #AAAAAA;
visibility:hidden;
}
+16 -2
View File
@@ -3146,6 +3146,20 @@ if($result = @$db->db_query("SELECT 1 FROM system.tbl_berechtigung WHERE berecht
}
}
// Neue Spalte fuer maximale Stundenanzahl bei OE
if(!$result = @$db->db_query("SELECT warn_semesterstunden_frei FROM public.tbl_organisationseinheit LIMIT 1"))
{
$qry = "
ALTER TABLE public.tbl_organisationseinheit ADD COLUMN warn_semesterstunden_frei numeric(8,2);
ALTER TABLE public.tbl_organisationseinheit ADD COLUMN warn_semesterstunden_fix numeric(8,2);
";
if(!$db->db_query($qry))
echo '<strong>public.tbl_organisationseinheit '.$db->db_last_error().'</strong><br>';
else
echo ' public.tbl_organisationseinheit: neue Spalte warn_semesterstunden_frei, warn_semesterstunden_fix hinzugefuegt!<br>';
}
echo '<br><br><br>';
$tabellen=array(
@@ -3195,7 +3209,7 @@ $tabellen=array(
"campus.tbl_freebusy" => array("freebusy_id","uid","freebusytyp_kurzbz","url","aktiv","bezeichnung","insertamum","insertvon","updateamum","updatevon"),
"campus.tbl_freebusytyp" => array("freebusytyp_kurzbz","bezeichnung","beschreibung","url_vorlage"),
"campus.tbl_infoscreen" => array("infoscreen_id","bezeichnung","beschreibung","ipadresse"),
"campus.tbl_infoscreen_content" => array("infoscreen_content_id","infoscreen_id","content_id","gueltigvon","gueltigbis","insertamum","insertvon","updateamum","updatevon","refreshzeit"),
"campus.tbl_infoscreen_content" => array("infoscreen_content_id","infoscreen_id","content_id","gueltigvon","gueltigbis","insertamum","insertvon","updateamum","updatevon","refreshzeit","exklusiv"),
"campus.tbl_legesamtnote" => array("student_uid","lehreinheit_id","note","benotungsdatum","updateamum","updatevon","insertamum","insertvon"),
"campus.tbl_lehre_tools" => array("lehre_tools_id","bezeichnung","kurzbz","basis_url","logo_dms_id"),
"campus.tbl_lehre_tools_organisationseinheit" => array("lehre_tools_id","oe_kurzbz","aktiv"),
@@ -3327,7 +3341,7 @@ $tabellen=array(
"public.tbl_notiz_dokument" => array("notiz_id","dms_id"),
"public.tbl_ort" => array("ort_kurzbz","bezeichnung","planbezeichnung","max_person","lehre","reservieren","aktiv","lageplan","dislozierung","kosten","ausstattung","updateamum","updatevon","insertamum","insertvon","ext_id","stockwerk","standort_id","telefonklappe","content_id","m2","gebteil","oe_kurzbz"),
"public.tbl_ortraumtyp" => array("ort_kurzbz","hierarchie","raumtyp_kurzbz"),
"public.tbl_organisationseinheit" => array("oe_kurzbz", "oe_parent_kurzbz", "bezeichnung","organisationseinheittyp_kurzbz", "aktiv","mailverteiler","freigabegrenze","kurzzeichen","lehre","standort"),
"public.tbl_organisationseinheit" => array("oe_kurzbz", "oe_parent_kurzbz", "bezeichnung","organisationseinheittyp_kurzbz", "aktiv","mailverteiler","freigabegrenze","kurzzeichen","lehre","standort","warn_semesterstunden_frei","warn_semesterstunden_fix"),
"public.tbl_organisationseinheittyp" => array("organisationseinheittyp_kurzbz", "bezeichnung", "beschreibung"),
"public.tbl_person" => array("person_id","staatsbuergerschaft","geburtsnation","sprache","anrede","titelpost","titelpre","nachname","vorname","vornamen","gebdatum","gebort","gebzeit","foto","anmerkung","homepage","svnr","ersatzkennzeichen","familienstand","geschlecht","anzahlkinder","aktiv","insertamum","insertvon","updateamum","updatevon","ext_id","bundesland_code","kompetenzen","kurzbeschreibung","zugangscode", "foto_sperre","matr_nr"),
"public.tbl_person_fotostatus" => array("person_fotostatus_id","person_id","fotostatus_kurzbz","datum","insertamum","insertvon","updateamum","updatevon"),