mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-16 22:42:16 +00:00
Merge branch 'master' of https://github.com/FH-Complete/FHC-Core
This commit is contained in:
@@ -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";
|
||||
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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> </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> </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()">⇓</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> </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> </td><td style='color:red'>".$p->t('zeitsperre/achtungEsWerdenAlleEingegebenenTage')."</td</tr>";
|
||||
|
||||
$content_form .= '<tr><td colspan="3"> </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>';
|
||||
|
||||
@@ -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"> </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()">
|
||||
<img style="vertical-align:bottom; cursor:pointer" src="../../../skin/images/arrow-next.png" title="'.$p->t("zeitaufzeichnung/alsEndzeitUebernehmen").'" onclick="uebernehmen()">
|
||||
</td>
|
||||
<td align="center"> +
|
||||
<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()">
|
||||
<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()">
|
||||
<img style="vertical-align:bottom; cursor:pointer" src="../../../skin/images/arrow-next.png" title="'.$p->t("zeitaufzeichnung/alsEndzeitUebernehmen").'" onclick="uebernehmen()">
|
||||
|
||||
+
|
||||
<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()">
|
||||
<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"> - </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>
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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');
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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";
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
?>
|
||||
@@ -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>
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
@@ -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>
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
/**
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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')";
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -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
@@ -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)';
|
||||
|
||||
@@ -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
@@ -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)';
|
||||
|
||||
@@ -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
@@ -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
@@ -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"),
|
||||
|
||||
Reference in New Issue
Block a user