This commit is contained in:
kindlm
2015-10-16 12:20:51 +02:00
37 changed files with 2177 additions and 832 deletions
@@ -45,6 +45,7 @@ require_once('../../../../include/mail.class.php');
require_once('../../../../include/phrasen.class.php');
require_once('../../../../include/note.class.php');
require_once('../../../../include/notenschluessel.class.php');
require_once('../../../../include/studienplan.class.php');
$summe_stud=0;
$summe_t2=0;
@@ -57,7 +58,7 @@ $p = new phrasen($sprache);
if (!$db = new basis_db())
die($p->t('global/fehlerBeimOeffnenDerDatenbankverbindung'));
$debg=(isset($_REQUEST['debug'])?$_REQUEST['debug']:'');
$debg=(isset($_REQUEST['debug'])?$_REQUEST['debug']:'');
$user = get_uid();
if(!check_lektor($user))
@@ -108,10 +109,10 @@ echo '<!DOCTYPE HTML>
<title>Gesamtnote</title>
<link href="../../../../skin/jquery.css" rel="stylesheet" type="text/css"/>
<link href="../../../../skin/jquery-ui-1.9.2.custom.min.css" rel="stylesheet" type="text/css">
<script src="../../../../include/js/jquery1.9.min.js" type="text/javascript"></script>
<script src="../../../../include/js/jquery1.9.min.js" type="text/javascript"></script>
<style type="text/css">
.td_datum
.td_datum
{
width:70px;
text-align: left;
@@ -127,10 +128,10 @@ echo '<!DOCTYPE HTML>
font-size: 8pt;
padding: 4px;
}
</style>
<script language="JavaScript" type="text/javascript">
var noten_array=Array();
';
@@ -143,7 +144,7 @@ foreach($noten_obj->result as $row)
$noten_array[$row->note]['aktiv']=$row->aktiv;
$noten_array[$row->note]['lehre']=$row->lehre;
}
?>
function getTopOffset()
{
@@ -186,18 +187,18 @@ foreach($noten_obj->result as $row)
punkte = document.getElementById(uid).punkte.value;
else
punkte='';
note_orig = document.getElementById(uid).note_orig.value;
//Request erzeugen und die Note speichern
stud_uid = uid;
var jetzt = new Date();
var ts = jetzt.getTime();
var url= '<?php echo "lvgesamtnoteeintragen.php?lvid=".urlencode($lvid)."&stsem=".urlencode($stsem); ?>';
url += '&submit=1&student_uid='+encodeURIComponent(uid)+"&note="+encodeURIComponent(note)+"&punkte="+encodeURIComponent(punkte)+"&"+ts;
$.ajax({
type:"GET",
url: url,
@@ -208,7 +209,7 @@ foreach($noten_obj->result as $row)
var note = document.getElementById(uid).note.value;
var resp = result;
if (resp == "neu" || resp == "update" || resp == "update_f")
{
{
notentd = document.getElementById("note_"+uid);
while (notentd.childNodes.length>0)
{
@@ -236,17 +237,17 @@ foreach($noten_obj->result as $row)
}
});
}
// *************************************************
// * Formular zum Eintragen einer Pruefung erstellen
// *************************************************
function pruefungAnlegen(uid,datum,note,lehreinheit_id,punkte)
{
var str = "<form name='nachpruefung_form'><center><table style='width:95%'><tr><td colspan='2' align='right'><a href='#' onclick='closeDiv();'>X</a></td></tr>";
var anlegendiv = document.getElementById("nachpruefung_div");
var y = getTopOffset();
y = y+50;
y = y+50;
anlegendiv.style.top = y+"px";
str += "<tr><td colspan='2'><b><?php echo $p->t('benotungstool/pruefungAnlegenFuer');?> "+uid+":</b></td></tr>";
@@ -275,13 +276,13 @@ foreach($noten_obj->result as $row)
echo '</select></td>';
?>';
str += "</tr><tr><td colspan='2' align='center'><input type='button' name='speichern' value='<?php echo $p->t('global/speichern');?>' onclick='pruefungSpeichern();'></td></tr>";
str += "</table></center></form>";
anlegendiv.innerHTML = str;
str += "</table></center></form>";
anlegendiv.innerHTML = str;
anlegendiv.style.visibility = "visible";
$('#pruefungsdatum').datepicker();
$('#pruefungnoteselect').val(note);
}
// **********************************************
// * Speichern der Pruefung
// **********************************************
@@ -292,34 +293,34 @@ foreach($noten_obj->result as $row)
var punkte = document.nachpruefung_form.punkte.value;
else
var punkte='';
var datum = document.nachpruefung_form.datum.value;
var datum = document.nachpruefung_form.datum.value;
var datum_test = datum.split(".");
if (datum_test[0].length != 2 || datum_test[1].length != 2 || datum_test[2].length!=4 || isNaN(datum_test[2]) || datum_test[1]>12 || datum_test[1]<1 || datum_test[0]>31 || datum_test[0]<1)
alert("Invalid Date Format: DD.MM.YYYY");
else
{
var anlegendiv = document.getElementById("nachpruefung_div");
var anlegendiv = document.getElementById("nachpruefung_div");
var note = document.nachpruefung_form.note.value;
if (note == "" || isNaN(note))
{
document.nachpruefung_form.note.value = "9";
note = "9";
}
}
var uid = document.nachpruefung_form.uid.value;
var lehreinheit_id = document.nachpruefung_form.le_id.value;
var jetzt = new Date();
var ts = jetzt.getTime();
var url= '<?php echo "nachpruefungeintragen.php?lvid=$lvid&stsem=$stsem"; ?>';
url += '&submit=1&student_uid='+uid+'&note='+note+'&datum='+datum+'&lehreinheit_id_pr='+lehreinheit_id+'&punkte='+punkte+'&'+ts;
$.ajax({
type:"GET",
url: url,
success:function(result)
{
var anlegendiv = document.getElementById("nachpruefung_div");
var anlegendiv = document.getElementById("nachpruefung_div");
var datum = document.nachpruefung_form.datum.value;
var note = document.nachpruefung_form.note.value;
if(document.nachpruefung_form.punkte)
@@ -329,12 +330,12 @@ foreach($noten_obj->result as $row)
var uid = document.nachpruefung_form.uid.value;
var lehreinheit_id = document.nachpruefung_form.le_id.value;
var resp = result;
if (resp == "neu" || resp == "update" || resp == "update_f" || resp == "update_pr")
{
if (resp != "update_pr")
{
notentd = document.getElementById("note_"+uid);
notentd = document.getElementById("note_"+uid);
while (notentd.childNodes.length>0)
{
notentd.removeChild(notentd.lastChild);
@@ -345,12 +346,12 @@ foreach($noten_obj->result as $row)
var notentext = noten_array[note];
notenode = document.createTextNode(notentext);
notentd.appendChild(notenode);
}
}
notenstatus = document.getElementById("status_"+uid);
if (resp == "update_f")
notenstatus.innerHTML = "<img src='../../../../skin/images/changed.png'>";
document.getElementById("lvnoteneingabe_"+uid).style.visibility = "hidden";
anlegendiv.innerHTML = "";
anlegendiv.style.visibility = "hidden";
document.getElementById("span_"+uid).innerHTML = "<table><tr><td class='td_datum'>"+datum+"</td><td class='td_note'>"+noten_array[note]+"<td><input type='button' name='anlegen' value='<?php echo $p->t('global/aendern'); ?>' onclick='pruefungAnlegen(\""+uid+"\",\""+datum+"\",\""+note+"\",\""+lehreinheit_id+"\")'></td></tr></table>";
@@ -370,7 +371,7 @@ foreach($noten_obj->result as $row)
anlegendiv.innerHTML = "";
anlegendiv.style.visibility = "hidden";
}
function OnFreigabeSubmit()
{
if(document.getElementById('textbox-freigabe-passwort').value.length==0)
@@ -380,9 +381,9 @@ foreach($noten_obj->result as $row)
}
return true;
}
/**
* Wird bei der Punkteeingabe aufgerufen und laedt
* Wird bei der Punkteeingabe aufgerufen und laedt
* die dazupassende Noten anhand des Notenschluessels
*/
function PunkteEingabe(idx)
@@ -395,15 +396,15 @@ foreach($noten_obj->result as $row)
$.ajax({
type:"POST",
url:"lvgesamtnote_worker.php",
data: { lehrveranstaltung_id: '<?php echo $lvid; ?>',
punkte: punkte,
data: { lehrveranstaltung_id: '<?php echo $lvid; ?>',
punkte: punkte,
work: 'getGradeFromPoints',
studiensemester_kurzbz: '<?php echo $stsem;?>'
},
success:function(result)
{
note=result;
var notendropdown = $('#dropdown-note-'+idx);
notendropdown.val(note);
notendropdown.prop('disabled',true);
@@ -422,7 +423,7 @@ foreach($noten_obj->result as $row)
}
/**
* Wird bei der Punkteeingabe aufgerufen und laedt
* Wird bei der Punkteeingabe aufgerufen und laedt
* die dazupassende Noten anhand des Notenschluessels
*/
function PruefungPunkteEingabe()
@@ -436,15 +437,15 @@ foreach($noten_obj->result as $row)
$.ajax({
type:"POST",
url:"lvgesamtnote_worker.php",
data: { lehrveranstaltung_id: '<?php echo $lvid; ?>',
punkte: punkte,
data: { lehrveranstaltung_id: '<?php echo $lvid; ?>',
punkte: punkte,
work: 'getGradeFromPoints',
studiensemester_kurzbz: '<?php echo $stsem;?>'
},
success:function(result)
{
note=result;
var notendropdown = $('#pruefungnoteselect');
notendropdown.val(note);
notendropdown.prop('disabled',true);
@@ -466,29 +467,29 @@ foreach($noten_obj->result as $row)
// * Oeffnet ein Fenster fuer den Import von Noten aus dem Excel
// ****
function GradeImport()
{
{
var str = "<form name='gradeimport_form'><center><table style='width:95%'><tr><td colspan='2' align='right'><a href='#' onclick='closeDiv();'>X</a></td></tr>";
var anlegendiv = document.getElementById("nachpruefung_div");
var y = getTopOffset();
y = y+50;
y = y+50;
anlegendiv.style.top = y+"px";
str += '<tr><td><?php echo $p->t('benotungstool/importAnweisung');?>:</td>';
str += '<td></td><tr><td><textarea id="noteimporttextarea" name="notenimport"></textarea></td></tr>';
str += "<tr><td><input type='button' name='speichern' value='<?php echo $p->t('global/speichern');?>' onclick='saveGradeBulk();'>";
str += "</td><td></td></tr></table></center></form>";
anlegendiv.innerHTML = str;
str += "</td><td></td></tr></table></center></form>";
anlegendiv.innerHTML = str;
anlegendiv.style.visibility = "visible";
$('#noteimporttextarea').focus();
}
// Speichert die Noten ueber den Import
// Speichert die Noten ueber den Import
function saveGradeBulk()
{
data = $('#noteimporttextarea').val();
closeDiv();
//Reihen ermitteln
var rows = data.split("\n");
var i=0;
@@ -499,7 +500,7 @@ foreach($noten_obj->result as $row)
for(row in rows)
{
zeile = rows[row].split(" ");
if(zeile[0]!='' && zeile[1]!='')
{
gradedata['matrikelnr_'+i]=zeile[0];
@@ -513,10 +514,10 @@ foreach($noten_obj->result as $row)
i++;
}
}
if(i>0)
{
var jetzt = new Date();
var ts = jetzt.getTime();
var url= '<?php echo "lvgesamtnoteeintragen.php?lvid=".urlencode($lvid)."&stsem=".urlencode($stsem); ?>';
@@ -539,7 +540,7 @@ foreach($noten_obj->result as $row)
alert('Request fehlgeschlagen');
}
});
}
else
{
@@ -556,41 +557,41 @@ foreach($noten_obj->result as $row)
<?php
//wenn eine Uebung oder LE-Gesamtnote existiert die Note aus dem Uebungstool uebernehmen
//sonst aus dem Moodle
$qry = "SELECT
1
FROM
lehre.tbl_lehrveranstaltung
$qry = "SELECT
1
FROM
lehre.tbl_lehrveranstaltung
JOIN lehre.tbl_lehreinheit USING(lehrveranstaltung_id)
JOIN campus.tbl_uebung USING(lehreinheit_id)
WHERE
WHERE
studiensemester_kurzbz=".$db->db_add_param($stsem)." AND
lehrveranstaltung_id=".$db->db_add_param($lvid, FHC_INTEGER)."
UNION
SELECT
SELECT
1
FROM
campus.tbl_legesamtnote
WHERE
lehreinheit_id in (SELECT lehreinheit_id FROM lehre.tbl_lehreinheit
campus.tbl_legesamtnote
WHERE
lehreinheit_id in (SELECT lehreinheit_id FROM lehre.tbl_lehreinheit
WHERE studiensemester_kurzbz=".$db->db_add_param($stsem)." AND
lehrveranstaltung_id=".$db->db_add_param($lvid, FHC_INTEGER).")
";
if($result = $db->db_query($qry))
{
if($db->db_num_rows($result)>0)
$grade_from_moodle=false;
else
else
{
if(MOODLE)
$grade_from_moodle=true;
else
else
$grade_from_moodle=false;
}
}
else
else
die($p->t('global/fehleraufgetreten'));
//Kopfzeile
echo '
<table width="100%"><tr><td>
@@ -619,7 +620,7 @@ if(!$rechte->isBerechtigt('admin',0) &&
!$rechte->isBerechtigt('lehre',$lv_obj->studiengang_kz))
{
$qry = "SELECT lehreinheit_id FROM lehre.tbl_lehrveranstaltung JOIN lehre.tbl_lehreinheit USING(lehrveranstaltung_id)
JOIN lehre.tbl_lehreinheitmitarbeiter USING(lehreinheit_id)
JOIN lehre.tbl_lehreinheitmitarbeiter USING(lehreinheit_id)
WHERE tbl_lehrveranstaltung.lehrveranstaltung_id=".$db->db_add_param($lvid, FHC_INTEGER)." AND
tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($stsem)." AND tbl_lehreinheitmitarbeiter.mitarbeiter_uid=".$db->db_add_param($user).';';
if($result = $db->db_query($qry))
@@ -627,7 +628,7 @@ if(!$rechte->isBerechtigt('admin',0) &&
if($db->db_num_rows($result)==0)
die($p->t('global/keineBerechtigungFuerDieseSeite'));
}
else
else
{
die($p->t('global/fehleraufgetreten'));
}
@@ -649,14 +650,19 @@ if (isset($_REQUEST["freigabe"]) and ($_REQUEST["freigabe"] == 1))
{
$jetzt = date("Y-m-d H:i:s");
$neuenoten = 0;
$studlist = "<table border='1'><tr><td><b>".$p->t('global/personenkz')."</b></td><td><b>".$p->t('global/nachname')."</b></td><td><b>".$p->t('global/vorname')."</b></td><td><b>".$p->t('benotungstool/note')."</b></td></tr>\n";
$studlist = "<table border='1'><tr><td><b>".$p->t('global/personenkz')."</b></td><td><b>".$p->t('global/nachname')."</b></td><td><b>".$p->t('global/vorname')."</b></td>";
if(defined('CIS_GESAMTNOTE_PUNKTE') && CIS_GESAMTNOTE_PUNKTE)
{
$studlist.="<td><b>".$p->t('benotungstool/punkte')."</b></td>\n";
}
$studlist.="<td><b>".$p->t('benotungstool/note')."</b></td></tr>\n";
// studentenquery
$qry_stud = "SELECT
DISTINCT uid, vorname, nachname, matrikelnr
FROM
campus.vw_student_lehrveranstaltung
JOIN campus.vw_student USING(uid)
// studentenquery
$qry_stud = "SELECT
DISTINCT uid, vorname, nachname, matrikelnr
FROM
campus.vw_student_lehrveranstaltung
JOIN campus.vw_student USING(uid)
WHERE
studiensemester_kurzbz = ".$db->db_add_param($stsem)."
AND lehrveranstaltung_id = ".$db->db_add_param($lvid, FHC_INTEGER)."
@@ -665,45 +671,57 @@ if (isset($_REQUEST["freigabe"]) and ($_REQUEST["freigabe"] == 1))
{
$i=1;
while($row_stud = $db->db_fetch_object($result_stud))
{
{
$lvgesamtnote = new lvgesamtnote();
if ($lvgesamtnote->load($lvid,$row_stud->uid,$stsem))
{
if ($lvgesamtnote->benotungsdatum > $lvgesamtnote->freigabedatum)
{
if ($lvgesamtnote->benotungsdatum > $lvgesamtnote->freigabedatum)
{
$lvgesamtnote->freigabedatum = $jetzt;
$lvgesamtnote->freigabevon_uid = $user;
$lvgesamtnote->save($new=null);
$studlist .= "<tr><td>".trim($row_stud->matrikelnr)."</td><td>".trim($row_stud->nachname)."</td><td>".trim($row_stud->vorname)."</td><td>".trim($lvgesamtnote->note)."</td></tr>\n";
$studlist .= "<tr><td>".trim($row_stud->matrikelnr)."</td>";
$studlist .= "<td>".trim($row_stud->nachname)."</td>";
$studlist .= "<td>".trim($row_stud->vorname)."</td>";
if(defined('CIS_GESAMTNOTE_PUNKTE') && CIS_GESAMTNOTE_PUNKTE)
{
$studlist.="<td>".($lvgesamtnote->punkte!=''?trim(number_format($lvgesamtnote->punkte,2)):'')."</td>\n";
}
$studlist.="<td>".$noten_array[trim($lvgesamtnote->note)]['bezeichnung']."</td></tr>\n";
$neuenoten++;
}
}
}
}
}
$studlist .= "</table>";
//mail an assistentin und den user selber verschicken
//mail an assistentin und den user selber verschicken
if ($neuenoten > 0)
{
$lv = new lehrveranstaltung($lvid);
$sg = new studiengang($lv->studiengang_kz);
$lektor_adresse = $user."@".DOMAIN;
$adressen = $sg->email.", ".$user."@".DOMAIN;
$studienplan = new studienplan();
$studienplan->getStudienplanLehrveranstaltung($lvid, $stsem);
$studienplan_bezeichnung='';
foreach($studienplan->result as $row)
$studienplan_bezeichnung.=$row->bezeichnung.' ';
$mit = new mitarbeiter();
$mit->load($user);
$freigeber = "<b>".mb_strtoupper($user)."</b>";
$mail = new mail($adressen, 'vilesci@'.DOMAIN, 'Notenfreigabe '.$lv->bezeichnung,'');
$htmlcontent="<html><body><b>".$sg->kuerzel.' '.$lv->semester.'.Semester '.$lv->bezeichnung." - ".$stsem."</b> (".$lv->semester.". Sem.) <br><br>".$p->t('global/benutzer')." ".$freigeber." (".$mit->kurzbz.") ".$p->t('benotungstool/hatDieLvNotenFuerFolgendeStudenten').":<br><br>\n".$studlist."<br>".$p->t('abgabetool/mailVerschicktAn').": ".$adressen."</body></html>";
$mail = new mail($adressen, 'vilesci@'.DOMAIN, 'Notenfreigabe '.$lv->bezeichnung." ".$lv->orgform_kurzbz.' - '.$studienplan_bezeichnung,'');
$htmlcontent="<html><body><b>".$sg->kuerzel.' '.$lv->semester.'.Semester '.$lv->bezeichnung." ".$lv->orgform_kurzbz." - ".$stsem."</b> (".$lv->semester.". Sem.) <br><br>".$p->t('global/benutzer')." ".$freigeber." (".$mit->kurzbz.") ".$p->t('benotungstool/hatDieLvNotenFuerFolgendeStudenten').":<br><br>\n".$studlist."<br>".$p->t('abgabetool/mailVerschicktAn').": ".$adressen."</body></html>";
$mail->setHTMLContent($htmlcontent);
$mail->setReplyTo($lektor_adresse);
$mail->send();
}
}
}
else
else
{
echo '<span><font class="error">'.$p->t('gesamtnote/passwortFalsch').'</font></span>';
}
@@ -724,11 +742,11 @@ if ($pr_all->getPruefungenLV($lvid,"Termin2",$stsem))
if ($pr_all->result)
{
foreach ($pr_all->result as $pruefung)
{
{
$studpruef_arr[$pruefung->student_uid][$pruefung->lehreinheit_id]["note"] = $pruefung->note;
$studpruef_arr[$pruefung->student_uid][$pruefung->lehreinheit_id]["punkte"] = $pruefung->punkte;
$studpruef_arr[$pruefung->student_uid][$pruefung->lehreinheit_id]["datum"] = $datum_obj->formatDatum($pruefung->datum,'d.m.Y');
}
}
}
}
$summe_t2=count($studpruef_arr);
@@ -739,11 +757,11 @@ if ($pr_komm->getPruefungenLV($lvid,"kommPruef",$stsem))
if ($pr_komm->result)
{
foreach ($pr_komm->result as $kpruefung)
{
{
$studpruef_komm[$kpruefung->student_uid][$kpruefung->lehreinheit_id]["note"] = $kpruefung->note;
$studpruef_komm[$kpruefung->student_uid][$kpruefung->lehreinheit_id]["punkte"] = $kpruefung->punkte;
$studpruef_komm[$kpruefung->student_uid][$kpruefung->lehreinheit_id]["datum"] = $datum_obj->formatDatum($kpruefung->datum,'d.m.Y');
}
}
}
}
$summe_komm=count($studpruef_komm);
@@ -823,13 +841,13 @@ echo "
}
}
// studentenquery
$qry_stud = "SELECT
DISTINCT uid, vorname, nachname, matrikelnr
FROM
campus.vw_student_lehrveranstaltung
JOIN campus.vw_student USING(uid)
WHERE
// studentenquery
$qry_stud = "SELECT
DISTINCT uid, vorname, nachname, matrikelnr
FROM
campus.vw_student_lehrveranstaltung
JOIN campus.vw_student USING(uid)
WHERE
studiensemester_kurzbz = ".$db->db_add_param($stsem)."
AND lehrveranstaltung_id = ".$db->db_add_param($lvid)."
ORDER BY nachname, vorname ";
@@ -841,14 +859,14 @@ echo "
$summe_stud=$db->db_num_rows($result_stud);
while($row_stud = $db->db_fetch_object($result_stud))
{
echo "<tr class='liste".($i%2)."'>
<td><a href='mailto:$row_stud->uid@".DOMAIN."'><img src='../../../../skin/images/button_mail.gif'></a></td>";
echo "
<td>$row_stud->uid</td>
<td>$row_stud->nachname</td>
<td>$row_stud->vorname</td>";
$note_les_str = '';
$le_anz = 0;
$note_le = 0;
@@ -863,18 +881,18 @@ echo "
//Noten aus Moodle
if (!isset($moodle_course))
$moodle_course = new moodle19_course();
if (!$mdldaten = $moodle_course->loadNoten($lvid, $stsem, '', true,$debg))
$mdldaten='';
}
$mdldaten='';
}
// Verarbeitet die Kursdaten
if (!is_null($mdldaten) && is_array($mdldaten))
{
reset($mdldaten);
reset($mdldaten);
$title="";
$mdl_shortname='';
for ($imdldaten=0;$imdldaten<count($mdldaten) ;$imdldaten++)
{
for ($imdldaten=0;$imdldaten<count($mdldaten) ;$imdldaten++)
{
$mdldata=$mdldaten[$imdldaten]->result;
$kursArr=(isset($mdldata[2])?$mdldata[2]:array());
@@ -884,49 +902,49 @@ echo "
$note=0;
$userGef=false;
reset($kursArr);
for ($iKurs=0;$iKurs<count($kursArr) ;$iKurs++)
{
reset($kursArr);
for ($iKurs=0;$iKurs<count($kursArr) ;$iKurs++)
{
if (isset($kursArr[$iKurs]) && isset($kursArr[$iKurs][2]) && isset($kursArr[$iKurs][6]) && strtolower(trim($row_stud->uid))==strtolower(trim($kursArr[$iKurs][2])) )
{
$note=trim($kursArr[$iKurs][6]);
$userGef=true;
if (is_numeric($note) || $debg)
{
if (is_numeric($note))
{
$note_le += $note;
$le_anz += 1;
}
}
if ($note == 5)
$leneg = " style='color:red; font-weight:bold'";
else
$leneg = " style='font-weight:bold'";
$mdl_shortname=$mdldaten[$imdldaten]->mdl_shortname;
$title="\r\nMoodle 1.9 KursID: ".$mdldaten[$imdldaten]->mdl_course_id ."\r\n\r\n".$kursname.', '.$mdl_shortname."\r\n";
foreach ($kursasObj[$iKurs] as $key => $value)
foreach ($kursasObj[$iKurs] as $key => $value)
{
$title.=$key."=>".$value."\r\n";
}
}
$note_les_str .= "<span ".$leneg.">".$note."</span> <span title='".$title."' style='font-size:10px'>(".$mdl_shortname.")</span> ";
}
}
} // ende If Richtiger User
if ($userGef)
{
$iKurs=count($kursArr)+1; // diesen USER for beenden - user wurde gefunden
}
$iKurs=count($kursArr)+1; // diesen USER for beenden - user wurde gefunden
}
} // ende Kursschleife
} // MoodleKurse abarbeiten
#echo "<p><h1> $title Anzahl Noten gef. $le_anz $note_le </h1></p>";
}
}
else
{
if(defined('CONN_STRING_MOODLE'))
@@ -964,17 +982,17 @@ echo "
}
}
}
else
else
{
//Noten aus Uebungstool
$le = new lehreinheit();
$le->load_lehreinheiten($lvid, $stsem);
foreach($le->lehreinheiten as $l)
{
foreach($le->lehreinheiten as $l)
{
$legesamtnote = new legesamtnote($l->lehreinheit_id);
if (!$legesamtnote->load($row_stud->uid,$l->lehreinheit_id))
{
{
//$note_les_str .= "- (".$l->lehreinheit_id.")";
}
else
@@ -988,8 +1006,8 @@ echo "
$note_les_str .= "<span".$leneg.">".$legesamtnote->note."</span> (".$l->lehreinheit_id.") ";
}
}
}
}
if ($lvgesamtnote = new lvgesamtnote($lvid,$row_stud->uid,$stsem))
{
$note_lv = $lvgesamtnote->note;
@@ -1000,7 +1018,7 @@ echo "
$note_lv = null;
$punkte_lv = null;
}
$punkte_vorschlag='';
if (!is_null($note_lv))
$note_vorschlag = $note_lv;
@@ -1014,7 +1032,7 @@ echo "
}
else
{
$note_vorschlag = round($note_le/$le_anz);
$note_vorschlag = round($note_le/$le_anz);
}
}
else
@@ -1022,15 +1040,15 @@ echo "
if ($zeugnisnote = new zeugnisnote($lvid, $row_stud->uid, $stsem))
$znote = $zeugnisnote->note;
else
$znote = null;
$znote = null;
echo "<td style='white-space: nowrap;'>".$note_les_str."&nbsp;</td>";
if (key_exists($row_stud->uid,$studpruef_arr))
if (key_exists($row_stud->uid,$studpruef_arr))
$hide = "style='display:none;visibility:hidden;'";
else
$hide = "style='display:block;visibility:visible;'";
$hide = "style='display:block;visibility:visible;'";
if(!defined('CIS_GESAMTNOTE_UEBERSCHREIBEN') || CIS_GESAMTNOTE_UEBERSCHREIBEN || (!CIS_GESAMTNOTE_UEBERSCHREIBEN && is_null($znote)))
{
@@ -1045,7 +1063,7 @@ echo "
//$punkte_lv = $punkte_vorschlag;
echo '<input type="text" name="punkte" id="textbox-punkte-'.$i.'" value="'.$punkte_vorschlag.'" size="3" oninput="PunkteEingabe('.$i.')"/>';
}
// Noten DropDown
if($punkte_vorschlag!='' && CIS_GESAMTNOTE_PUNKTE)
$disabled='disabled="disabled"';
@@ -1074,12 +1092,12 @@ echo "
{
echo '<td></td>';
}
if(isset($noten_array[$note_lv]) && $noten_array[$note_lv]['positiv']==false)
$negmarkier = " style='color:red; font-weight:bold;'";
else
$negmarkier = "";
$negmarkier = "";
// LV Note
echo '<td align="center" id="note_'.$row_stud->uid.'"><span '.$negmarkier.'>';
if(isset($noten_array[$note_lv]))
@@ -1087,16 +1105,16 @@ echo "
if($punkte_lv!='')
echo ' ('.number_format($punkte_lv,2).')';
echo '</span></td>';
//status
echo "<td align='center' id='status_$row_stud->uid'>";
echo "<td align='center' id='status_$row_stud->uid'>";
if (!$lvgesamtnote->freigabedatum)
echo "<img src='../../../../skin/images/offen.png'>";
echo "<img src='../../../../skin/images/offen.png'>";
else if ($lvgesamtnote->benotungsdatum > $lvgesamtnote->freigabedatum)
echo "<img src='../../../../skin/images/changed.png'>";
else
echo "<img src='../../../../skin/images/ok.png'>";
echo "</td>";
if (($znote) && ($note_lv != $znote))
$stylestr = " style='color:red; border-color:red; border-style:solid; border-width:1px;'";
@@ -1110,20 +1128,20 @@ echo "
$summe_ng++;
// Pruefung 2.Termin
if (key_exists($row_stud->uid, $studpruef_arr))
if (key_exists($row_stud->uid, $studpruef_arr))
{
echo "<td colspan='2'>";
echo "<span id='span_".$row_stud->uid."'>";
echo "<table>";
$le_id_arr = array();
$le_id_arr = array();
$le_id_arr = array_keys($studpruef_arr[$row_stud->uid]);
foreach ($le_id_arr as $le_id_stud)
{
{
$pr_note = $studpruef_arr[$row_stud->uid][$le_id_stud]["note"];
$pr_punkte = $studpruef_arr[$row_stud->uid][$le_id_stud]["punkte"];
$pr_datum = $studpruef_arr[$row_stud->uid][$le_id_stud]["datum"];
$pr_le_id = $le_id_stud;
if($pr_punkte!='')
$pr_notenbezeichnung = $noten_array[$pr_note]['bezeichnung'].' ('.number_format($pr_punkte,2).')';
else
@@ -1135,33 +1153,33 @@ echo "
<td><input type="button" name="anlegen" value="'.$p->t('global/aendern').'" onclick="pruefungAnlegen(\''.$row_stud->uid.'\',\''.$pr_datum.'\',\''.$pr_note.'\',\''.$pr_le_id.'\',\''.$pr_punkte.'\')"><td>
</tr>';
}
echo "</table>";
echo "</table>";
echo "</span>";
echo "</td>";
}
else
{
if (!is_null($note_lv) || !is_null($znote))
if (!is_null($note_lv) || !is_null($znote))
echo "<td colspan='2'><span id='span_".$row_stud->uid."'><input type='button' name='anlegen' value='".$p->t('benotungstool/anlegen')."' onclick='pruefungAnlegen(\"".$row_stud->uid."\",\"\",\"\",\"\",\"\")'></span></td>";
else
echo "<td colspan='2'></td>";
echo "<td colspan='2'></td>";
}
// komm Pruefung
if (key_exists($row_stud->uid,$studpruef_komm))
if (key_exists($row_stud->uid,$studpruef_komm))
{
echo "<td colspan='2'>";
echo "<span id='span_".$row_stud->uid."'>";
echo "<table>";
$le_id_arr = array();
$le_id_arr = array();
$le_id_arr = array_keys($studpruef_komm[$row_stud->uid]);
foreach ($le_id_arr as $le_id_stud)
{
{
$pr_note = $studpruef_komm[$row_stud->uid][$le_id_stud]["note"];
$pr_punkte = $studpruef_komm[$row_stud->uid][$le_id_stud]["punkte"];
$pr_datum = $studpruef_komm[$row_stud->uid][$le_id_stud]["datum"];
$pr_le_id = $le_id_stud;
if($pr_punkte!='')
$pr_notenbezeichnung = $noten_array[$pr_note]['bezeichnung'].' ('.$pr_punkte.')';
else
@@ -1172,15 +1190,15 @@ echo "
<td class="td_note">'.$pr_notenbezeichnung.'</td>
</tr>';
}
echo "</table>";
echo "</table>";
echo "</span>";
echo "</td>";
}
else
{
echo "<td colspan='2'></td>";
echo "<td colspan='2'></td>";
}
echo "</tr>";
$i++;
}
@@ -220,6 +220,7 @@ function showHideBezeichnungDropDown()
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 += '<option value="Bundesheer">i) Einberufung Bundesheer</option>';
str += '</select>';
sp.innerHTML = str;
+3
View File
@@ -86,6 +86,9 @@ define('LVPLAN_SYNC_ENDE','');
// Soll nach dem LVPlan Sync automatisch das Horde Sync angestoßen werden
define('LVPLAN_HORDE_SYNC',false);
// Format der Tagesinfo im Tempus %t = Wochentag %b = Begin der Stunde %e = Ende der Stunde %s = Stunde
define('TEMPUS_TAGESINFO_FORMAT','%t %b');
/*
* VORRUECKUNG_LEHRVERBAND_MAX_SEMESTER
* leer: Studentlehrverband Semester wird bei der Vorrueckung normal weitergezaehlt bis zum max_semester des Studienganges
+162 -1
View File
@@ -863,8 +863,109 @@ if(!$error)
}
}
}
elseif(isset($_POST['type']) && $_POST['type']=='lehreinheit_lektor_del_lvplan')
{
//Pruefen ob dieser Lektor im Stundenplan schon verplant wurde
$qry = "SELECT tbl_lehrveranstaltung.studiengang_kz, tbl_lehrveranstaltung.lehrveranstaltung_id
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($db->db_query($qry))
{
if($row = $db->db_fetch_object())
{
$lva = new lehrveranstaltung($row->lehrveranstaltung_id);
if(!$rechte->isBerechtigtMultipleOe('lv-plan/lektorentfernen', $lva->getAllOe(), 'suid'))
{
$error = true;
$return = false;
$errormsg = 'Keine Berechtigung';
}
}
else
{
$error = true;
$return = false;
$errormsg = 'Lehreinheit wurde nicht gefunden';
}
}
else
{
$error = true;
$return = false;
$errormsg = 'Lehreinheit wurde nicht gefunden';
}
// Wenn nur noch dieser Lektor im LVPlan verplant ist, dann wird das loeschen verhindert
// da sonst der gesamte LVPlan der Lehreinheit weg ist
$qry = "SELECT
distinct mitarbeiter_uid
FROM
lehre.tbl_stundenplandev
WHERE
lehreinheit_id=".$db->db_add_param($_POST['lehreinheit_id'], FHC_INTEGER);
if($result = $db->db_query($qry))
{
if($db->db_num_rows($result)<2)
{
$error = true;
$return = false;
$errormsg='Dieser Lektor kann nicht aus dem LVPlan entfernt werden da dies der letzte verplante Lektor ist';
}
}
// Wenn Ressourcen an einem der Stundenplaneintraege haengen die geloescht werden wuerden
// dann wird das loeschen verhindert
$qry = "SELECT
1
FROM
lehre.tbl_stundenplandev
JOIN lehre.tbl_stundenplan_betriebsmittel USING(stundenplandev_id)
WHERE
tbl_stundenplandev.lehreinheit_id=".$db->db_add_param($_POST['lehreinheit_id'], FHC_INTEGER)."
AND tbl_stundenplandev.mitarbeiter_uid=".$db->db_add_param($_POST['mitarbeiter_uid']);
if($result = $db->db_query($qry))
{
if($db->db_num_rows($result)>0)
{
$return = false;
$error = true;
$errormsg = 'Gruppe kann nicht entfernt werden da bereits Ressourcen zugeordnet wurden';
}
}
else
{
$return = false;
$error = true;
$errormsg = 'Fehler bei Datenbankabfrage';
}
if(!$error)
{
$qry = "DELETE FROM lehre.tbl_stundenplandev
WHERE
lehreinheit_id=".$db->db_add_param($_POST['lehreinheit_id'], FHC_INTEGER)."
AND mitarbeiter_uid=".$db->db_add_param($_POST['mitarbeiter_uid']);
if($db->db_query($qry))
{
$error = false;
$return = true;
}
else
{
$errormsg = 'Fehler beim Entfernen des LV-Plans: '.$db->db_last_error();
$return = false;
$error = true;
}
}
}
elseif(isset($_POST['type']) && $_POST['type']=='lehreinheit_gruppe_del_lvplan')
{
//Pruefen ob diese Gruppe im Stundenplan schon verplant wurde
$qry = "SELECT tbl_lehrveranstaltung.studiengang_kz, tbl_lehrveranstaltung.lehrveranstaltung_id,
(SELECT fachbereich_kurzbz FROM public.tbl_fachbereich WHERE oe_kurzbz=lehrfach.oe_kurzbz) as fachbereich_kurzbz
FROM lehre.tbl_lehrveranstaltung, lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung as lehrfach
@@ -897,9 +998,69 @@ if(!$error)
$errormsg = 'Lehreinheit wurde nicht gefunden';
}
//Pruefen ob diese Gruppe im Stundenplan schon verplant wurde
// Wenn nur noch diese eine Gruppe im LVPlan verplant ist, dann wird das loeschen verhindert
// da sonst der gesamte LVPlan der Lehreinheit weg ist
$qry = "SELECT
distinct studiengang_kz, semester, verband, gruppe, gruppe_kurzbz
FROM
lehre.tbl_stundenplandev
WHERE
lehreinheit_id=(SELECT lehreinheit_id FROM lehre.tbl_lehreinheitgruppe WHERE lehreinheitgruppe_id=".$db->db_add_param($_POST['lehreinheitgruppe_id'], FHC_INTEGER).")";
if($result = $db->db_query($qry))
{
if($db->db_num_rows($result)<2)
{
$error = true;
$return = false;
$errormsg='Diese Gruppe kann nicht aus dem LVPlan entfernt werden da dies die letzte verplante Gruppe ist';
}
}
// Wenn Ressourcen an einem der Stundenplaneintraege haengen die geloescht werden wuerden
// dann wird das loeschen verhindert
$qry = "SELECT
1
FROM
lehre.tbl_stundenplandev
JOIN lehre.tbl_stundenplan_betriebsmittel USING(stundenplandev_id)
JOIN lehre.tbl_lehreinheitgruppe USING(lehreinheit_id)
WHERE
tbl_lehreinheitgruppe.lehreinheitgruppe_id=".$db->db_add_param($_POST['lehreinheitgruppe_id'], FHC_INTEGER)."
AND
(
(
tbl_lehreinheitgruppe.gruppe_kurzbz is not null
AND
tbl_lehreinheitgruppe.gruppe_kurzbz=tbl_stundenplandev.gruppe_kurzbz
)
OR
(
tbl_lehreinheitgruppe.gruppe_kurzbz is null
AND
tbl_lehreinheitgruppe.studiengang_kz=tbl_stundenplandev.studiengang_kz
AND
tbl_lehreinheitgruppe.semester=tbl_stundenplandev.semester
AND
tbl_lehreinheitgruppe.verband = tbl_stundenplandev.verband
AND
tbl_lehreinheitgruppe.gruppe = tbl_stundenplandev.gruppe
)
)";
if($result = $db->db_query($qry))
{
if($db->db_num_rows($result)>0)
{
$return = false;
$error = true;
$errormsg = 'Gruppe kann nicht entfernt werden da bereits Ressourcen zugeordnet wurden';
}
}
if(!$error)
{
$qry = "DELETE FROM lehre.tbl_stundenplandev
WHERE
(lehreinheit_id, studiengang_kz, semester, trim(COALESCE(verband,'')), trim(COALESCE(gruppe,'')), trim(COALESCE(gruppe_kurzbz,''))) =
@@ -57,6 +57,13 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
<popupset>
<menupopup id="lehrveranstaltung-lektor-tree-popup">
<menuitem label="Entfernen" oncommand="LeMitarbeiterDel();" />
<?php
if($rechte->isBerechtigt('lv-plan/lektorentfernen'))
{
echo '<menuseparator />';
echo '<menuitem label="Stunden aus LV-Plan entfernen" oncommand="LeLektorDelLVPlan();" />';
}
?>
</menupopup>
</popupset>
<popupset>
@@ -329,6 +336,10 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/lehreinheitmitarbeiter/rdf#lehreinheit_id"/>
<splitter class="tree-splitter"/>
<treecol id="lehrveranstaltung-lehreinheitmitarbeiter-treecol-verplant" label="Verplant" flex="2" hidden="false"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/lehreinheitmitarbeiter/rdf#verplant"/>
<splitter class="tree-splitter"/>
</treecols>
<template>
<rule>
@@ -339,6 +350,7 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
<treecell label="rdf:http://www.technikum-wien.at/lehreinheitmitarbeiter/rdf#vorname" />
<treecell label="rdf:http://www.technikum-wien.at/lehreinheitmitarbeiter/rdf#mitarbeiter_uid" />
<treecell label="rdf:http://www.technikum-wien.at/lehreinheitmitarbeiter/rdf#lehreinheit_id" />
<treecell src="../skin/images/verplant_rdf:http://www.technikum-wien.at/lehreinheitmitarbeiter/rdf#verplant^.png" />
</treerow>
</treeitem>
</treechildren>
@@ -271,43 +271,49 @@ if(defined('FAS_GESAMTNOTE_PRUEFUNGSHONORAR') && FAS_GESAMTNOTE_PRUEFUNGSHONORAR
<hbox>
<groupbox id="lehrveranstaltung-noten-groupbox-pruefung">
<caption label="Prüfungshonorar" />
<hbox>
<label value="Mitarbeiter" control="lehrveranstaltung-noten-pruefung-menulist-mitarbeiter"/>
<menulist id="lehrveranstaltung-noten-pruefung-menulist-mitarbeiter"
datasources="'.APP_ROOT.'rdf/mitarbeiter.rdf.php" flex="1"
ref="http://www.technikum-wien.at/mitarbeiter/_alle"
minwidth="250"
>
<template>
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#uid"
label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#nachname rdf:http://www.technikum-wien.at/mitarbeiter/rdf#vorname ( rdf:http://www.technikum-wien.at/mitarbeiter/rdf#uid )"
uri="rdf:*"/>
</menupopup>
</template>
</menulist>
<label value="Prüfungstyp" control="lehrveranstaltung-noten-pruefung-menulist-vertragstyp"/>
<menulist id="lehrveranstaltung-noten-pruefung-menulist-vertragstyp"
datasources="'.APP_ROOT.'rdf/vertragstyp.rdf.php" flex="1"
ref="http://www.technikum-wien.at/vertragstyp"
minwidth="250"
>
<template>
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/vertragstyp/rdf#vertragstyp_kurzbz"
label="rdf:http://www.technikum-wien.at/vertragstyp/rdf#vertragstyp_bezeichnung"
uri="rdf:*"/>
</menupopup>
</template>
</menulist>
<label value="Satz pro Prüfung" control="lehrveranstaltung-noten-pruefung-textbox-satz"/>
<textbox id="lehrveranstaltung-noten-pruefung-textbox-satz" size="2" oninput="LehrveranstaltungNotenPruefungCalculate()"/>
<label value="Anzahl Prüfungen" control="lehrveranstaltung-noten-pruefung-textbox-anzahl"/>
<textbox id="lehrveranstaltung-noten-pruefung-textbox-anzahl" size="2" oninput="LehrveranstaltungNotenPruefungCalculate()"/>
<label value="0.0" id="lehrveranstaltung-noten-pruefung-label-gesamt"/>
<button id="lehrveranstaltung-noten-pruefung-button-save" label="Speichern" oncommand="LehrveranstaltungNotenPruefungSave();" />
<spacer flex="1"/>
</hbox>
<vbox>
<hbox>
<label value="Mitarbeiter" control="lehrveranstaltung-noten-pruefung-menulist-mitarbeiter"/>
<menulist id="lehrveranstaltung-noten-pruefung-menulist-mitarbeiter"
datasources="'.APP_ROOT.'rdf/mitarbeiter.rdf.php" flex="1"
ref="http://www.technikum-wien.at/mitarbeiter/_alle"
minwidth="250"
>
<template>
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#uid"
label="rdf:http://www.technikum-wien.at/mitarbeiter/rdf#nachname rdf:http://www.technikum-wien.at/mitarbeiter/rdf#vorname ( rdf:http://www.technikum-wien.at/mitarbeiter/rdf#uid )"
uri="rdf:*"/>
</menupopup>
</template>
</menulist>
<label value="Prüfungstyp" control="lehrveranstaltung-noten-pruefung-menulist-vertragstyp"/>
<menulist id="lehrveranstaltung-noten-pruefung-menulist-vertragstyp"
datasources="'.APP_ROOT.'rdf/vertragstyp.rdf.php" flex="1"
ref="http://www.technikum-wien.at/vertragstyp"
minwidth="250"
>
<template>
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/vertragstyp/rdf#vertragstyp_kurzbz"
label="rdf:http://www.technikum-wien.at/vertragstyp/rdf#vertragstyp_bezeichnung"
uri="rdf:*"/>
</menupopup>
</template>
</menulist>
<label value="Satz pro Prüfung" control="lehrveranstaltung-noten-pruefung-textbox-satz"/>
<textbox id="lehrveranstaltung-noten-pruefung-textbox-satz" size="2" oninput="LehrveranstaltungNotenPruefungCalculate()"/>
<label value="Anzahl Prüfungen" control="lehrveranstaltung-noten-pruefung-textbox-anzahl"/>
<textbox id="lehrveranstaltung-noten-pruefung-textbox-anzahl" size="2" oninput="LehrveranstaltungNotenPruefungCalculate()"/>
<label value="0.0" id="lehrveranstaltung-noten-pruefung-label-gesamt"/>
<spacer flex="1"/>
</hbox>
<hbox>
<label value="Anmerkung" control="lehrveranstaltung-noten-pruefung-textbox-anmerkung"/>
<textbox id="lehrveranstaltung-noten-pruefung-textbox-anmerkung" size="60"/>
<button id="lehrveranstaltung-noten-pruefung-button-save" label="Speichern" oncommand="LehrveranstaltungNotenPruefungSave();" />
</hbox>
</vbox>
</groupbox>
</hbox>';
}
@@ -1308,7 +1308,7 @@ function LeGruppeDel()
}
// ****
// * Loescht den LVPlan einer Gruppe zu einer aus dem LVPlan
// * Loescht den LVPlan einer Gruppe zu einer Lehreinheit aus dem LVPlan
// ****
function LeGruppeDelLVPlan()
{
@@ -1360,6 +1360,61 @@ function LeGruppeDelLVPlan()
}
}
// ****
// * Loescht den LVPlan eines Lektors zu einer Lehreinheit aus dem LVPlan
// ****
function LeLektorDelLVPlan()
{
tree = document.getElementById('lehrveranstaltung-detail-tree-lehreinheitmitarbeiter');
//Nachsehen ob Lektor markiert wurde
var idx;
if(tree.currentIndex>=0)
idx = tree.currentIndex;
else
{
alert('Bitte zuerst einen Lektor markieren');
return false;
}
try
{
//Lehreinheit_id holen
var col = tree.columns ? tree.columns["lehrveranstaltung-lehreinheitmitarbeiter-treecol-lehreinheit_id"] : "lehrveranstaltung-lehreinheitmitarbeiter-treecol-lehreinheit_id";
var lehreinheit_id=tree.view.getCellText(idx,col);
var col = tree.columns ? tree.columns["lehrveranstaltung-lehreinheitmitarbeiter-treecol-mitarbeiter_uid"] : "lehrveranstaltung-lehreinheitmitarbeiter-treecol-mitarbeiter_uid";
var mitarbeiter_uid=tree.view.getCellText(idx,col);
}
catch(e)
{
alert(e);
return false;
}
if(!confirm("Sind Sie sicher dass Sie diesen Mitarbeiter aus dem LVPlan entfernen wollen?"))
return false;
var req = new phpRequest('lvplanung/lehrveranstaltungDBDML.php','','');
req.add('type', 'lehreinheit_lektor_del_lvplan');
req.add('lehreinheit_id', lehreinheit_id);
req.add('mitarbeiter_uid', mitarbeiter_uid);
var response = req.executePOST();
var val = new ParseReturnValue(response)
if (!val.dbdml_return)
{
alert(val.dbdml_errormsg)
}
else
{
//Refresh des Trees
LeLektorTreeRefresh();
LvTreeRefresh();
}
}
// ****
// * Gruppen Tree Refreshen
// ****
@@ -2473,6 +2528,7 @@ function LehrveranstaltungNotenPruefungCalculate()
var gesamt = satz*anzahl;
document.getElementById('lehrveranstaltung-noten-pruefung-label-gesamt').value=gesamt;
document.getElementById('lehrveranstaltung-noten-pruefung-textbox-anmerkung').value=satz+'€ * '+anzahl;
}
function LehrveranstaltungNotenPruefungSave()
@@ -2481,6 +2537,7 @@ function LehrveranstaltungNotenPruefungSave()
var satz = document.getElementById('lehrveranstaltung-noten-pruefung-textbox-satz').value;
var anzahl = document.getElementById('lehrveranstaltung-noten-pruefung-textbox-anzahl').value;
var vertragstyp_kurzbz = document.getElementById('lehrveranstaltung-noten-pruefung-menulist-vertragstyp').value;
var anmerkung = document.getElementById('lehrveranstaltung-noten-pruefung-textbox-anmerkung').value;
satz = satz.replace(',','.');
if(mitarbeiter_uid == '' || satz == '' || anzahl == '' || vertragstyp_kurzbz=='')
@@ -2518,7 +2575,7 @@ function LehrveranstaltungNotenPruefungSave()
req.add('vertragstyp_kurzbz', vertragstyp_kurzbz);
req.add('betrag', gesamt);
req.add('bezeichnung', 'Pruefungshonorar '+lv_studiengang+' '+lv_semester+' '+lv_bezeichnung+' '+lehrveranstaltung_id);
req.add('anmerkung', satz+'€ * '+anzahl);
req.add('anmerkung', anmerkung);
req.add('vertragsdatum', datum);
req.add('lehrveranstaltung_id',lehrveranstaltung_id);
@@ -2539,5 +2596,6 @@ function LehrveranstaltungNotenPruefungSave()
document.getElementById('lehrveranstaltung-noten-pruefung-textbox-satz').value='';
document.getElementById('lehrveranstaltung-noten-pruefung-textbox-anzahl').value='';
document.getElementById('lehrveranstaltung-noten-pruefung-label-gesamt').value='';
document.getElementById('lehrveranstaltung-noten-pruefung-textbox-anmerkung').value='';
}
}
+1
View File
@@ -195,6 +195,7 @@ if(!$error)
$verwendung->updateamum = date('Y-m-d H:i:s');
$verwendung->updatevon = $user;
$verwendung->dv_art = $_POST['dv_art'];
$verwendung->inkludierte_lehre = $_POST['inkludierte_lehre'];
if($verwendung->save())
{
@@ -1136,7 +1136,7 @@ function MitarbeiterVerwendungBearbeiten()
bisverwendung_id=tree.view.getCellText(tree.currentIndex,col);
//Dialog laden
window.open("<?php echo APP_ROOT; ?>content/mitarbeiter/mitarbeiterverwendungdialog.xul.php?mitarbeiter_uid="+mitarbeiter_uid+"&bisverwendung_id="+bisverwendung_id,"popup","chrome, status=no, width=500, height=350, centerscreen, resizable");
window.open("<?php echo APP_ROOT; ?>content/mitarbeiter/mitarbeiterverwendungdialog.xul.php?mitarbeiter_uid="+mitarbeiter_uid+"&bisverwendung_id="+bisverwendung_id,"popup","chrome, status=no, width=500, height=400, centerscreen, resizable");
}
// ****
@@ -1166,6 +1166,7 @@ function MitarbeiterVerwendungSpeichern(dialog, bisverwendung_id, mitarbeiter_ui
ende = dialog.getElementById('mitarbeiter-verwendung-detail-datum-ende').value;
vertragsstunden = dialog.getElementById('mitarbeiter-verwendung-detail-textbox-vertragsstunden').value;
dv_art = dialog.getElementById('mitarbeiter-verwendung-detail-textbox-dv_art').value;
inkludierte_lehre = dialog.getElementById('mitarbeiter-verwendung-detail-textbox-inkludierte_lehre').value;
if(verwendung_code=='1' || verwendung_code=='5' || verwendung_code=='6')
{
@@ -1222,6 +1223,7 @@ function MitarbeiterVerwendungSpeichern(dialog, bisverwendung_id, mitarbeiter_ui
req.add('ende', ConvertDateToISO(ende));
req.add('vertragsstunden', vertragsstunden);
req.add('dv_art', dv_art);
req.add('inkludierte_lehre', inkludierte_lehre);
var response = req.executePOST();
@@ -34,28 +34,28 @@ function MitarbeiterVerwendungInit(mitarbeiter_uid, bisverwendung_id)
{
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
MitarbeiterVerwendungDetailMitarbeiterUid=mitarbeiter_uid;
if(bisverwendung_id!='')
{
//Wenn eine BisverwendungID uebergeben wird, dann wird dieser Datensatz geladen
MitarbeiterVerwendungDetailNeu='false';
MitarbeiterVerwendungDetailBisverwendungId=bisverwendung_id;
//Laden der Daten
//Daten holen
var url = '<?php echo APP_ROOT ?>rdf/bisverwendung.rdf.php?bisverwendung_id='+bisverwendung_id+'&'+gettimestamp();
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].
getService(Components.interfaces.nsIRDFService);
var dsource = rdfService.GetDataSourceBlocking(url);
var subject = rdfService.GetResource("http://www.technikum-wien.at/bisverwendung/" + bisverwendung_id);
var predicateNS = "http://www.technikum-wien.at/bisverwendung/rdf";
//RDF parsen
ba1code = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#ba1code" ));
ba2code = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#ba2code" ));
beschausmasscode = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#beschausmasscode" ));
@@ -68,12 +68,13 @@ function MitarbeiterVerwendungInit(mitarbeiter_uid, bisverwendung_id)
ende = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#ende" ));
vertragsstunden = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#vertragsstunden" ));
dv_art = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#dv_art" ));
inkludierte_lehre = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#inkludierte_lehre" ));
}
else
{
//neuer Datensatz wird angelegt
MitarbeiterVerwendungDetailNeu='true';
//Defaultwerte
ba1code=3; //fixer Dienstvertrag
ba2code=1; //unbefristet
@@ -86,8 +87,9 @@ function MitarbeiterVerwendungInit(mitarbeiter_uid, bisverwendung_id)
ende='';
vertragsstunden='38.5';
dv_art='';
inkludierte_lehre='';
}
document.getElementById('mitarbeiter-verwendung-detail-menulist-beschart1').value=ba1code;
document.getElementById('mitarbeiter-verwendung-detail-menulist-beschart2').value=ba2code;
document.getElementById('mitarbeiter-verwendung-detail-menulist-ausmass').value=beschausmasscode;
@@ -97,17 +99,18 @@ function MitarbeiterVerwendungInit(mitarbeiter_uid, bisverwendung_id)
document.getElementById('mitarbeiter-verwendung-detail-checkbox-hauptberuflich').checked=true;
else
document.getElementById('mitarbeiter-verwendung-detail-checkbox-hauptberuflich').checked=false;
if(habilitation=='Ja')
document.getElementById('mitarbeiter-verwendung-detail-checkbox-habilitation').checked=true;
else
document.getElementById('mitarbeiter-verwendung-detail-checkbox-habilitation').checked=false;
document.getElementById('mitarbeiter-verwendung-detail-datum-beginn').value=beginn;
document.getElementById('mitarbeiter-verwendung-detail-datum-ende').value=ende;
document.getElementById('mitarbeiter-verwendung-detail-textbox-vertragsstunden').value=vertragsstunden;
document.getElementById('mitarbeiter-verwendung-detail-textbox-dv_art').value=dv_art;
document.getElementById('mitarbeiter-verwendung-detail-textbox-inkludierte_lehre').value=inkludierte_lehre;
MitarbeiterVerwendungDetailToggleHauptberuf();
MitarbeiterVerwendungVerwendungChange();
}
@@ -118,7 +121,7 @@ function MitarbeiterVerwendungInit(mitarbeiter_uid, bisverwendung_id)
function MitarbeiterVerwendungDetailToggleHauptberuf()
{
var checked = document.getElementById('mitarbeiter-verwendung-detail-checkbox-hauptberuflich').checked;
if(checked)
{
document.getElementById('mitarbeiter-verwendung-detail-menulist-hauptberuf').disabled=true;
@@ -31,12 +31,12 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
if(isset($_GET['mitarbeiter_uid']))
$mitarbeiter_uid=$_GET['mitarbeiter_uid'];
else
else
die('MitarbeiterUID muss uebergeben werden');
if(isset($_GET['bisverwendung_id']))
$bisverwendung_id = $_GET['bisverwendung_id'];
else
else
$bisverwendung_id = '';
echo '<?xml-stylesheet href="'.APP_ROOT.'skin/tempus.css" type="text/css"?>';
@@ -52,7 +52,7 @@ echo '<?xml-stylesheet href="'.APP_ROOT.'content/datepicker/datepicker.css" type
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
onload="MitarbeiterVerwendungInit('<?php echo $mitarbeiter_uid."',".($bisverwendung_id!=''?$bisverwendung_id:"''");?>)"
>
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/mitarbeiter/mitarbeiterverwendungdialog.js.php" />
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/functions.js.php" />
@@ -110,7 +110,7 @@ echo '<?xml-stylesheet href="'.APP_ROOT.'content/datepicker/datepicker.css" type
<label value="Verwendung" control="mitarbeiter-verwendung-detail-menulist-verwendung"/>
<menulist id="mitarbeiter-verwendung-detail-menulist-verwendung"
datasources="<?php echo APP_ROOT ?>rdf/verwendung.rdf.php" flex="1"
ref="http://www.technikum-wien.at/verwendung/liste"
ref="http://www.technikum-wien.at/verwendung/liste"
oncommand="MitarbeiterVerwendungVerwendungChange()">
<template>
<menupopup>
@@ -145,7 +145,7 @@ echo '<?xml-stylesheet href="'.APP_ROOT.'content/datepicker/datepicker.css" type
</row>
<row>
<label value="Beginn" control="mitarbeiter-verwendung-detail-datum-beginn"/>
<box class="Datum" id="mitarbeiter-verwendung-detail-datum-beginn" />
<box class="Datum" id="mitarbeiter-verwendung-detail-datum-beginn" />
</row>
<row>
<label value="Ende" control="mitarbeiter-verwendung-detail-datum-ende"/>
@@ -158,6 +158,10 @@ echo '<?xml-stylesheet href="'.APP_ROOT.'content/datepicker/datepicker.css" type
<row>
<label value="DV-Art" control="mitarbeiter-verwendung-detail-textbox-dv_art" />
<textbox id="mitarbeiter-verwendung-detail-textbox-dv_art" />
</row>
<row>
<label value="Inkludierte Lehre" control="mitarbeiter-verwendung-detail-textbox-inkludierte_lehre" />
<textbox id="mitarbeiter-verwendung-detail-textbox-inkludierte_lehre" />
</row>
<row>
<spacer />
@@ -167,7 +171,7 @@ echo '<?xml-stylesheet href="'.APP_ROOT.'content/datepicker/datepicker.css" type
</hbox>
</row>
</rows>
</grid>
</grid>
</groupbox>
</window>
+125 -180
View File
@@ -151,6 +151,114 @@ function generateMatrikelnummer($studiengang_kz, $studiensemester_kurzbz)
}
}
/**
* Wenn die Anwesenheit und einen bestimmten Prozentsatz faellt, wird ein Pruefungstermin abgezogen
* @param $studiensemester_kurzbz
* @param $student_uid
* @param $lehrveranstaltung_id
* @param $note
* @return null, error wird direkt in globale Variable geschrieben
*/
function NotePruefungAnlegen($studiensemester_kurzbz, $student_uid, $lehrveranstaltung_id, $note)
{
global $return, $error, $errormsg;
$db = new basis_db();
$anwesenheit = new anwesenheit();
$anwesenheit->loadAnwesenheitStudiensemester($studiensemester_kurzbz, $student_uid, $lehrveranstaltung_id);
// Lehreinheit ermitteln
$error = false;
$qry = "SELECT lehreinheit_id FROM campus.vw_student_lehrveranstaltung "
. "WHERE uid=".$db->db_add_param($student_uid)." AND lehrveranstaltung_id=".$db->db_add_param($lehrveranstaltung_id)." "
. "ORDER BY lehreinheit_id ASC "
. "LIMIT 1";
if($result = $db->db_query($qry))
{
if($row = $db->db_fetch_object($result))
{
$lehreinheit_id = $row->lehreinheit_id;
}
else
{
$return = false;
$error = true;
$errormsg = 'Fehler beim Ermitteln der Lehreinheit ID';
}
}
else
{
$return = false;
$error = true;
$errormsg = 'Fehler beim Ermitteln der Lehreinheit ID';
}
if(!$error)
{
$pruefung = new pruefung;
$pruefung->new = true;
$pruefung->student_uid = $student_uid;
$pruefung->lehreinheit_id = $lehreinheit_id;
$pruefung->datum = date("Y-m-d");
$stsem_obj = new studiensemester();
$stsem_obj->load($studiensemester_kurzbz);
// In Benutzerfunktion nachsehen ob eine Anwesenheitsbefreiung eingetragen ist
$benutzerfunktion = new benutzerfunktion();
$benutzerfunktion->getBenutzerFunktionByUid($student_uid, 'awbefreit', $stsem_obj->start, $stsem_obj->ende);
$anwesenheitsbefreit=false;
if(count($benutzerfunktion->result)>0)
$anwesenheitsbefreit=true;
// Wenn nicht Anwesenheitsbefreit und Anwesenheit unter einem bestimmten Prozentsatz faellt dann wird ein
// Pruefungsantritt abgezogen
if(isset($anwesenheit->result[0]) && $anwesenheit->result[0]->prozent < FAS_ANWESENHEIT_ROT && !$anwesenheitsbefreit)
{
// 1. Termin mit "nicht beurteilt" erstellen
$pruefung->pruefungstyp_kurzbz = "Termin1";
$pruefung->note = 7;
if($pruefung->save())
{
// 2. Termin mit Note erstellen
$pruefung->pruefungstyp_kurzbz = "Termin2";
$pruefung->note = $note;
if($pruefung->save())
{
$return = true;
}
else
{
$errormsg = $pruefung->errormsg;
$return = false;
}
}
else
{
$errormsg = $pruefung->errormsg;
$return = false;
}
}
else
{
// 1. Termin mit Note erstellen
$pruefung->pruefungstyp_kurzbz = "Termin1";
$pruefung->note = $note;
if($pruefung->save())
{
$return = true;
}
else
{
$errormsg = $pruefung->errormsg;
$return = false;
}
}
}
}
if(!$error)
{
@@ -1031,6 +1139,7 @@ if(!$error)
$rolle->datum = $_POST['datum'];
$rolle->orgform_kurzbz = $_POST['orgform_kurzbz'];
$rolle->studienplan_id = $_POST['studienplan_id'];
$rolle->anmerkung_status = $_POST['anmerkung'];
if($rolle->save_rolle())
$return = true;
@@ -2588,101 +2697,8 @@ if(!$error)
if(FAS_PRUEFUNG_BEI_NOTENEINGABE_ANLEGEN && $return == true && $noten->new == true)
{
$anwesenheit = new anwesenheit();
$anwesenheit->loadAnwesenheitStudiensemester($studiensemester_kurzbz, $student_uid, $lehrveranstaltung_id);
// Lehreinheit ermitteln
$error = false;
$qry = "SELECT lehreinheit_id FROM campus.vw_student_lehrveranstaltung "
. "WHERE uid=".$db->db_add_param($student_uid)." AND lehrveranstaltung_id=".$db->db_add_param($lehrveranstaltung_id)." "
. "ORDER BY lehreinheit_id ASC "
. "LIMIT 1";
if($result = $db->db_query($qry))
{
if($row = $db->db_fetch_object($result))
{
$lehreinheit_id = $row->lehreinheit_id;
}
else
{
$return = false;
$error = true;
$errormsg = 'Fehler beim Ermitteln der Lehreinheit ID';
}
}
else
{
$return = false;
$error = true;
$errormsg = 'Fehler beim Ermitteln der Lehreinheit ID';
}
if(!$error)
{
$pruefung = new pruefung;
$pruefung->new = true;
$pruefung->student_uid = $student_uid;
$pruefung->lehreinheit_id = $lehreinheit_id;
$pruefung->datum = date("Y-m-d");
$stsem_obj = new studiensemester();
$stsem_obj->load($studiensemester_kurzbz);
// In Benutzerfunktion nachsehen ob eine Anwesenheitsbefreiung eingetragen ist
$benutzerfunktion = new benutzerfunktion();
$benutzerfunktion->getBenutzerFunktionByUid($student_uid, 'awbefreit', $stsem_obj->start, $stsem_obj->ende);
$anwesenheitsbefreit=false;
if(count($benutzerfunktion->result)>0)
$anwesenheitsbefreit=true;
// Wenn nicht Anwesenheitsbefreit und Anwesenheit unter einem bestimmten Prozentsatz faellt dann wird ein
// Pruefungsantritt abgezogen
if(isset($anwesenheit->result[0]) && $anwesenheit->result[0]->prozent < FAS_ANWESENHEIT_ROT && !$anwesenheitsbefreit)
{
// 1. Termin mit "nicht beurteilt" erstellen
$pruefung->pruefungstyp_kurzbz = "Termin1";
$pruefung->note = 7;
if($pruefung->save())
{
// 2. Termin mit Note erstellen
$pruefung->pruefungstyp_kurzbz = "Termin2";
$pruefung->note = $noten->note;
if($pruefung->save())
{
$return = true;
}
else
{
$errormsg = $pruefung->errormsg;
$return = false;
}
}
else
{
$errormsg = $pruefung->errormsg;
$return = false;
}
}
else
{
// 1. Termin mit Note erstellen
$pruefung->pruefungstyp_kurzbz = "Termin1";
$pruefung->note = $noten->note;
if($pruefung->save())
{
$return = true;
}
else
{
$errormsg = $pruefung->errormsg;
$return = false;
}
}
}
}
NotePruefungAnlegen($studiensemester_kurzbz, $student_uid, $lehrveranstaltung_id, $noten->note);
}
}
}
}
@@ -2792,6 +2808,13 @@ if(!$error)
{
$errormsg .= "\n".$zeugnisnote->errormsg;
}
else
{
if(FAS_PRUEFUNG_BEI_NOTENEINGABE_ANLEGEN && $zeugnisnote->new == true)
{
NotePruefungAnlegen($zeugnisnote->studiensemester_kurzbz, $zeugnisnote->student_uid, $zeugnisnote->lehrveranstaltung_id, $zeugnisnote->note);
}
}
}
else
{
@@ -2944,91 +2967,13 @@ if(!$error)
{
$errormsg .= "\n".$zeugnisnote->errormsg;
}
if(FAS_PRUEFUNG_BEI_NOTENEINGABE_ANLEGEN && $errormsg == '' && $zeugnisnote->new == true)
{
$anwesenheit = new anwesenheit();
$anwesenheit->loadAnwesenheitStudiensemester($semester_aktuell, $uid, $_POST['lehrveranstaltung_id']);
// Lehreinheit ermitteln
$error = false;
$qry = "SELECT lehreinheit_id FROM campus.vw_student_lehrveranstaltung "
. "WHERE uid=".$db->db_add_param($uid)." AND lehrveranstaltung_id=".$db->db_add_param($_POST['lehrveranstaltung_id'])." "
. "ORDER BY lehreinheit_id ASC "
. "LIMIT 1";
if($result = $db->db_query($qry))
{
if($row = $db->db_fetch_object($result))
{
$lehreinheit_id = $row->lehreinheit_id;
}
else
{
$return = false;
$error = true;
$errormsg = 'Fehler beim Ermitteln der Lehreinheit ID';
}
}
else
{
$return = false;
$error = true;
$errormsg = 'Fehler beim Ermitteln der Lehreinheit ID';
}
if(!$error)
{
$pruefung = new pruefung;
$pruefung->new = true;
$pruefung->student_uid = $uid;
$pruefung->lehreinheit_id = $lehreinheit_id;
$pruefung->datum = date("Y-m-d");
if(isset($anwesenheit->result[0]) && $anwesenheit->result[0]->prozent < FAS_ANWESENHEIT_ROT)
{
// 1. Termin mit "nicht beurteilt" erstellen
$pruefung->pruefungstyp_kurzbz = "Termin1";
$pruefung->note = 7;
if($pruefung->save())
{
// 2. Termin mit Note erstellen
$pruefung->pruefungstyp_kurzbz = "Termin2";
$pruefung->note = $zeugnisnote->note;
if($pruefung->save())
{
$return = true;
}
else
{
$errormsg = $pruefung->errormsg;
$return = false;
}
}
else
{
$errormsg = $pruefung->errormsg;
$return = false;
}
}
else
{
// 1. Termin mit Note erstellen
$pruefung->pruefungstyp_kurzbz = "Termin1";
$pruefung->note = $zeugnisnote->note;
if($pruefung->save())
{
$return = true;
}
else
{
$errormsg = $pruefung->errormsg;
$return = false;
}
}
}
}
else
{
if(FAS_PRUEFUNG_BEI_NOTENEINGABE_ANLEGEN && $zeugnisnote->new == true)
{
NotePruefungAnlegen($semester_aktuell, $uid, $_POST['lehrveranstaltung_id'], $zeugnisnote->note);
}
}
}
}
}
+1 -1
View File
@@ -109,7 +109,7 @@ $db = new basis_db();
<row>
<label value="Studiensemester" control="student-rolle-menulist-studiensemester"/>
<menulist id="student-rolle-menulist-studiensemester"
datasources="<?php echo APP_ROOT ?>rdf/studiensemester.rdf.php" flex="1"
datasources="<?php echo APP_ROOT ?>rdf/studiensemester.rdf.php?order=desc" flex="1"
ref="http://www.technikum-wien.at/studiensemester/liste" >
<template>
<menupopup>
+12 -4
View File
@@ -43,8 +43,9 @@ class bisverwendung extends basis_db
public $updatevon;
public $insertamum;
public $insertvon;
public $ext_id;
public $ext_id;
public $dv_art;
public $inkludierte_lehre;
public $ba1bez;
public $ba2bez;
@@ -118,6 +119,7 @@ class bisverwendung extends basis_db
$this->hauptberuf = $row->bezeichnung;
$this->vertragsstunden = $row->vertragsstunden;
$this->dv_art = $row->dv_art;
$this->inkludierte_lehre = $row->inkludierte_lehre;
return true;
}
else
@@ -210,7 +212,7 @@ class bisverwendung extends basis_db
//Neuen Datensatz anlegen
$qry = "BEGIN;INSERT INTO bis.tbl_bisverwendung (ba1code, ba2code, beschausmasscode,
verwendung_code, mitarbeiter_uid, hauptberufcode, hauptberuflich, habilitation, beginn, ende, vertragsstunden,
updateamum, updatevon, insertamum, insertvon, dv_art) VALUES (".
updateamum, updatevon, insertamum, insertvon, dv_art, inkludierte_lehre) VALUES (".
$this->db_add_param($this->ba1code, FHC_INTEGER).', '.
$this->db_add_param($this->ba2code, FHC_INTEGER).', '.
$this->db_add_param($this->beschausmasscode, FHC_INTEGER).', '.
@@ -226,7 +228,8 @@ class bisverwendung extends basis_db
$this->db_add_param($this->updatevon).', '.
$this->db_add_param($this->insertamum).', '.
$this->db_add_param($this->insertvon).', '.
$this->db_add_param($this->dv_art).');';
$this->db_add_param($this->dv_art).','.
$this->db_add_param($this->inkludierte_lehre).';';
}
else
@@ -248,7 +251,8 @@ class bisverwendung extends basis_db
" updatevon=".$this->db_add_param($this->updatevon).",".
" insertamum=".$this->db_add_param($this->insertamum).",".
" insertvon=".$this->db_add_param($this->insertvon).",".
" dv_art=".$this->db_add_param($this->dv_art).
" dv_art=".$this->db_add_param($this->dv_art).",".
" inkludierte_lehre=".$this->db_add_param($this->inkludierte_lehre).
" WHERE bisverwendung_id=".$this->db_add_param($this->bisverwendung_id, FHC_INTEGER);
}
@@ -339,6 +343,7 @@ class bisverwendung extends basis_db
$obj->hauptberuf = $row->bezeichnung;
$obj->vertragsstunden = $row->vertragsstunden;
$obj->dv_art = $row->dv_art;
$obj->inkludierte_lehre = $row->inkludierte_lehre;
$this->result[] = $obj;
}
@@ -394,6 +399,7 @@ class bisverwendung extends basis_db
$obj->insertvon = $row->insertvon;
$obj->vertragsstunden = $row->vertragsstunden;
$obj->dv_art = $row->dv_art;
$obj->inkludierte_lehre = $row->inkludierte_lehre;
$this->result[] = $obj;
}
@@ -443,6 +449,7 @@ class bisverwendung extends basis_db
$this->insertvon = $row->insertvon;
$this->vertragsstunden = $row->vertragsstunden;
$this->dv_art = $row->dv_art;
$this->inkludierte_lehre = $row->inkludierte_lehre;
}
return true;
}
@@ -494,6 +501,7 @@ class bisverwendung extends basis_db
$this->insertvon = $row->insertvon;
$this->vertragsstunden = $row->vertragsstunden;
$this->dv_art = $row->dv_art;
$this->inkludierte_lehre = $row->inkludierte_lehre;
}
return true;
}
+37 -13
View File
@@ -479,13 +479,22 @@ class moodle24_user extends basis_db
{
if(!isset($this->gruppenzuordnungen[$groupid]))
{
$client = new SoapClient($this->serverurl);
$response = $client->core_group_get_group_members(array($groupid));
if(isset($response[0]['userids']))
try
{
$this->gruppenzuordnungen[$groupid]=$response[0]['userids'];
$client = new SoapClient($this->serverurl);
$response = $client->core_group_get_group_members(array($groupid));
if(isset($response[0]['userids']))
{
$this->gruppenzuordnungen[$groupid]=$response[0]['userids'];
}
}
catch (SoapFault $E)
{
$this->errormsg.="SOAP Fehler beim Laden der Gruppenzuordnung: ".$E->faultstring;
return false;
}
}
foreach($this->gruppenzuordnungen[$groupid] as $id)
@@ -680,12 +689,19 @@ class moodle24_user extends basis_db
$data->userid=$this->mdl_user_id;
$data->courseid=$mdl_course_id;
$client = new SoapClient($this->serverurl);
$client->enrol_manual_enrol_users(array($data));
// WS-Funktion enrol_manual_enrol_users liefert immer null zurück
// Fehler bei der Zuordnung koennen daher nicht abgefangen werden.
// Eventuell sollten hier nochmals die Teilnehmer des Kurses geladen werden
// um zu pruefen ob die Zuordnung erfolgreich war.
try
{
$client = new SoapClient($this->serverurl);
$client->enrol_manual_enrol_users(array($data));
// WS-Funktion enrol_manual_enrol_users liefert immer null zurück
// Fehler bei der Zuordnung koennen daher nicht abgefangen werden.
// Eventuell sollten hier nochmals die Teilnehmer des Kurses geladen werden
// um zu pruefen ob die Zuordnung erfolgreich war.
}
catch (SoapFault $E)
{
$this->errormsg.="SOAP Fehler beim Zuordnen der User: ".$E->faultstring.' '.(isset($E->detail)?$E->detail:'');
}
}
return true;
@@ -717,8 +733,16 @@ class moodle24_user extends basis_db
$param[]=$data;
}
$client = new SoapClient($this->serverurl);
$client->enrol_manual_enrol_users($param);
try
{
$client = new SoapClient($this->serverurl);
$client->enrol_manual_enrol_users($param);
}
catch (SoapFault $E)
{
$this->errormsg.="SOAP Fehler beim Zuordnen der User: ".$E->faultstring.' '.(isset($E->detail)?$E->detail:'');
}
return true;
}
+94 -2
View File
@@ -548,6 +548,34 @@ class studienordnung extends basis_db
return false;
}
/**
* prüft ob die Studienordnung aktiv ist
* @param int $studienordnung_id Die ID der Studienordnung
* @param string $studiensemester_kurzbz Kurzbezeichnung des Studiensemesters
* @param int $ausbildungssemester Ausbildungssemester als Zahl
*/
public function isAktiv($studienordnung_id)
{
if(!is_numeric($studienordnung_id))
{
$this->errormsg = 'studienordnung_id muss eine gueltige Zahl sein';
return false;
}
$qry = 'SELECT * FROM lehre.tbl_studienordnung_semester WHERE
studienordnung_id='.$this->db_add_param($studienordnung_id).';';
if($this->db_query($qry))
{
if($this->db_num_rows() >= 1)
{
return true;
}
return false;
}
return false;
}
/**
* lädt alle zugeordneten Semester einer Studienordnung
* @param int $studienordnung_id ID der Studienordnung
@@ -644,13 +672,13 @@ class studienordnung extends basis_db
{
$studiensemester = new studiensemester();
$studiensemester->getTimestamp($studiensemester_kurzbz);
$semGueltigVon = $studiensemester->begin->start;
//$semGueltigBis = $studiensemester->ende->ende;
$studiensemester = new studiensemester();
$studiensemester->getTimestamp($this->gueltigvon);
$stoGueltigVon = $studiensemester->begin->start;
if($this->gueltigbis != null)
@@ -719,5 +747,69 @@ class studienordnung extends basis_db
$this->new=false;
return true;
}
/**
* Laedt alle Studienordnungen zu einem Studiengang der uebergeben wird, die noch nicht aktiv sind
* @param $studiengang_kz Kennzahl des Studiengangs
* @param $studiensemester_kurzbz
* @param $semester
* @return true wenn ok, false im Fehlerfall
*/
public function loadStudienordnungSTGInaktiv($studiengang_kz)
{
//Pruefen ob studiengang_kz eine gueltige Zahl ist
if(!is_numeric($studiengang_kz) || $studiengang_kz === '')
{
$this->errormsg = 'studiengang_kz muss eine gültige Zahl sein';
return false;
}
$qry = 'SELECT
*
FROM
lehre.tbl_studienordnung
WHERE
studiengang_kz='.$this->db_add_param($studiengang_kz, FHC_INTEGER, false);
if(!$this->db_query($qry))
{
$this->errormsg = 'Fehler bei einer Datenbankabfrage';
return false;
}
while($row = $this->db_fetch_object())
{
$obj = new studienordnung();
$obj->studienordnung_id = $row->studienordnung_id;
$obj->studiengang_kz = $row->studiengang_kz;
$obj->version = $row->version;
$obj->bezeichnung = $row->bezeichnung;
$obj->ects = $row->ects;
$obj->gueltigvon = $row->gueltigvon;
$obj->gueltigbis = $row->gueltigbis;
$obj->studiengangbezeichnung = $row->studiengangbezeichnung;
$obj->studiengangbezeichnung_englisch = $row->studiengangbezeichnung_englisch;
$obj->studiengangkurzbzlang = $row->studiengangkurzbzlang;
$obj->akadgrad_id = $row->akadgrad_id;
$obj->updateamum = $row->updateamum;
$obj->updatevon = $row->updatevon;
$obj->insertamum = $row->insertamum;
$obj->insertvon = $row->insertvon;
$obj->new = false;
$this->result[] = $obj;
}
foreach($this->result as $key => $obj)
{
if($this->isAktiv($obj->studienordnung_id))
{
unset($this->result[$key]);
}
}
array_values($this->result);
return true;
}
}
?>
+115 -67
View File
@@ -1,24 +1,24 @@
<?php
/*
* studienplan.class.php
*
* Copyright 2013 fhcomplete.org
*
*
* Copyright 2013 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., 51 Franklin Street, Fifth Floor, Boston,
* MA 02110-1301, USA.
*
*
*
* Authors: Andreas Österreicher <andreas.oesterreicher@technikum-wien.at>
* Stefan Puraner <puraner@technikum-wien.at>
@@ -255,7 +255,7 @@ class studienplan extends basis_db
if($this->new)
{
//Neuen Datensatz einfuegen
$qry='BEGIN;INSERT INTO lehre.tbl_studienplan (studienordnung_id, orgform_kurzbz,version,
$qry='BEGIN;INSERT INTO lehre.tbl_studienplan (studienordnung_id, orgform_kurzbz,version,
bezeichnung, regelstudiendauer, sprache, aktiv, semesterwochen, testtool_sprachwahl,
insertamum, insertvon) VALUES ('.
$this->db_add_param($this->studienordnung_id, FHC_INTEGER).', '.
@@ -390,7 +390,7 @@ class studienplan extends basis_db
$obj->studienplan_lehrveranstaltung_id_parent = $row->studienplan_lehrveranstaltung_id_parent;
$obj->pflicht = $row->pflicht;
$obj->koordinator = $row->koordinator;
$obj->sort = $row->sort;
$obj->sort = $row->sort;
$data[]=$obj;
}
}
@@ -417,7 +417,7 @@ class studienplan extends basis_db
$obj->studienplan_lehrveranstaltung_id_parent = $this->studienplan_lehrveranstaltung_id_parent;
$obj->pflicht = $this->pflicht;
$obj->koordinator = $this->koordinator;
$obj->sort = $this->sort;
$obj->sort = $this->sort;
$data[]=$obj;
}
return $data;
@@ -440,7 +440,7 @@ class studienplan extends basis_db
return false;
}
$qry = "SELECT 1 FROM
$qry = "SELECT 1 FROM
lehre.tbl_studienplan_lehrveranstaltung
WHERE
studienplan_id=".$this->db_add_param($studienplan_id, FHC_INTEGER).
@@ -454,7 +454,7 @@ class studienplan extends basis_db
if($this->db_num_rows()!=0)
{
return true;
}
}
else
{
return false;
@@ -465,10 +465,10 @@ class studienplan extends basis_db
* Speichert die Zuordnung einer Lehrveranstaltung zu einem Studienplan
* @return true wenn ok, false im Fehlerfall
*/
public function saveStudienplanLehrveranstaltung()
public function saveStudienplanLehrveranstaltung()
{
if ($this->new)
if ($this->new)
{
//Neuen Datensatz einfuegen
$qry = 'BEGIN;INSERT INTO lehre.tbl_studienplan_lehrveranstaltung (studienplan_id, lehrveranstaltung_id,
@@ -482,11 +482,11 @@ class studienplan extends basis_db
$this->db_add_param($this->koordinator) . ', ' .
'now(), ' .
$this->db_add_param($this->insertvon) . ');';
}
else
}
else
{
//Pruefen ob studienplan_id eine gueltige Zahl ist
if (!is_numeric($this->studienplan_lehrveranstaltung_id))
if (!is_numeric($this->studienplan_lehrveranstaltung_id))
{
$this->errormsg = 'studienplan_lehrveranstaltung_id muss eine gueltige Zahl sein';
return false;
@@ -503,19 +503,19 @@ class studienplan extends basis_db
' updatevon=' . $this->db_add_param($this->updatevon) . ' ' .
' WHERE studienplan_lehrveranstaltung_id=' . $this->db_add_param($this->studienplan_lehrveranstaltung_id, FHC_INTEGER, false) . ';';
// Bei allen darunterliegenden Zuordnungen wird das Semester angepasst, damit beim
// Bei allen darunterliegenden Zuordnungen wird das Semester angepasst, damit beim
// verschieben von Modulen die darunterliegenden Eintraege korrekt sind
$qry.='
UPDATE lehre.tbl_studienplan_lehrveranstaltung SET semester='.$this->db_add_param($this->semester).'
WHERE studienplan_lehrveranstaltung_id IN(
WITH RECURSIVE stpllv(studienplan_lehrveranstaltung_id, studienplan_lehrveranstaltung_id_parent) as
WITH RECURSIVE stpllv(studienplan_lehrveranstaltung_id, studienplan_lehrveranstaltung_id_parent) as
(
SELECT studienplan_lehrveranstaltung_id, studienplan_lehrveranstaltung_id_parent
SELECT studienplan_lehrveranstaltung_id, studienplan_lehrveranstaltung_id_parent
FROM lehre.tbl_studienplan_lehrveranstaltung
WHERE studienplan_lehrveranstaltung_id='.$this->db_add_param($this->studienplan_lehrveranstaltung_id, FHC_INTEGER).'
UNION ALL
SELECT st.studienplan_lehrveranstaltung_id, st.studienplan_lehrveranstaltung_id_parent
FROM lehre.tbl_studienplan_lehrveranstaltung st, stpllv
FROM lehre.tbl_studienplan_lehrveranstaltung st, stpllv
WHERE st.studienplan_lehrveranstaltung_id_parent=stpllv.studienplan_lehrveranstaltung_id
)
SELECT studienplan_lehrveranstaltung_id
@@ -523,27 +523,27 @@ class studienplan extends basis_db
GROUP BY studienplan_lehrveranstaltung_id);';
}
if ($this->db_query($qry))
if ($this->db_query($qry))
{
if ($this->new)
if ($this->new)
{
//naechste ID aus der Sequence holen
$qry = "SELECT currval('lehre.seq_studienplan_studienplan_lehrveranstaltung_id') as id;";
if ($this->db_query($qry))
if ($this->db_query($qry))
{
if ($row = $this->db_fetch_object())
if ($row = $this->db_fetch_object())
{
$this->studienplan_lehrveranstaltung_id = $row->id;
$this->db_query('COMMIT');
}
else
else
{
$this->db_query('ROLLBACK');
$this->errormsg = "Fehler beim Auslesen der Sequence";
return false;
}
}
else
else
{
$this->db_query('ROLLBACK');
$this->errormsg = 'Fehler beim Auslesen der Sequence';
@@ -551,7 +551,7 @@ class studienplan extends basis_db
}
}
}
else
else
{
$this->errormsg = 'Fehler beim Speichern des Datensatzes';
return false;
@@ -653,7 +653,7 @@ class studienplan extends basis_db
return false;
}
$qry = "DELETE from lehre.tbl_studienplan_lehrveranstaltung
$qry = "DELETE from lehre.tbl_studienplan_lehrveranstaltung
WHERE studienplan_lehrveranstaltung_id=".$this->db_add_param($studienplan_lehrveranstaltung_id, FHC_INTEGER).";";
if($this->db_query($qry))
@@ -675,13 +675,13 @@ class studienplan extends basis_db
*/
function getStudienplan($studiengang_kz, $studiensemester_kurzbz, $ausbildungssemester, $orgform_kurzbz)
{
$qry = "SELECT
$qry = "SELECT
tbl_studienplan.studienplan_id
FROM
lehre.tbl_studienplan
FROM
lehre.tbl_studienplan
JOIN lehre.tbl_studienordnung USING(studienordnung_id)
JOIN lehre.tbl_studienordnung_semester USING(studienordnung_id)
WHERE
WHERE
tbl_studienplan.aktiv
AND tbl_studienordnung.studiengang_kz=".$this->db_add_param($studiengang_kz, FHC_INTEGER)."
AND tbl_studienordnung_semester.studiensemester_kurzbz = ".$this->db_add_param($studiensemester_kurzbz)."
@@ -707,42 +707,42 @@ class studienplan extends basis_db
*/
function getStudienplaene($studiengang_kz)
{
$qry = "SELECT
distinct tbl_studienplan.*
FROM
lehre.tbl_studienplan
JOIN lehre.tbl_studienordnung USING(studienordnung_id)
WHERE
tbl_studienordnung.studiengang_kz=".$this->db_add_param($studiengang_kz, FHC_INTEGER);
$qry = "SELECT
distinct tbl_studienplan.*
FROM
lehre.tbl_studienplan
JOIN lehre.tbl_studienordnung USING(studienordnung_id)
WHERE
tbl_studienordnung.studiengang_kz=".$this->db_add_param($studiengang_kz, FHC_INTEGER);
if($result = $this->db_query($qry))
{
while($row = $this->db_fetch_object($result))
{
$obj = new studienplan();
if($result = $this->db_query($qry))
{
while($row = $this->db_fetch_object($result))
{
$obj = new studienplan();
$obj->studienplan_id = $row->studienplan_id;
$obj->studienordnung_id = $row->studienordnung_id;
$obj->orgform_kurzbz = $row->orgform_kurzbz;
$obj->version = $row->version;
$obj->bezeichnung = $row->bezeichnung;
$obj->regelstudiendauer = $row->regelstudiendauer;
$obj->sprache = $row->sprache;
$obj->aktiv = $this->db_parse_bool($row->aktiv);
$obj->semesterwochen = $row->semesterwochen;
$obj->testtool_sprachwahl = $this->db_parse_bool($row->testtool_sprachwahl);
$obj->updateamum = $row->updateamum;
$obj->updatevon = $row->updatevon;
$obj->insertamum = $row->insertamum;
$obj->insertvon = $row->insertvon;
$obj->new=false;
$obj->studienplan_id = $row->studienplan_id;
$obj->studienordnung_id = $row->studienordnung_id;
$obj->orgform_kurzbz = $row->orgform_kurzbz;
$obj->version = $row->version;
$obj->bezeichnung = $row->bezeichnung;
$obj->regelstudiendauer = $row->regelstudiendauer;
$obj->sprache = $row->sprache;
$obj->aktiv = $this->db_parse_bool($row->aktiv);
$obj->semesterwochen = $row->semesterwochen;
$obj->testtool_sprachwahl = $this->db_parse_bool($row->testtool_sprachwahl);
$obj->updateamum = $row->updateamum;
$obj->updatevon = $row->updatevon;
$obj->insertamum = $row->insertamum;
$obj->insertvon = $row->insertvon;
$obj->new=false;
$this->result[] = $obj;
}
return true;
}
$this->result[] = $obj;
}
return true;
}
}
/**
* Speichert die Sortierung
* @param type $tudienplan_lehrveranstaltung_id
@@ -752,10 +752,10 @@ class studienplan extends basis_db
{
if($studienplan_lehrveranstaltung_id==NULL)
$studienplan_lehrveranstaltung_id = $this->studienplan_lehrveranstaltung_id;
if($sort==NULL)
$sort = $this->sort;
if(!(is_numeric($sort) || is_null($sort)))
{
$this->errormsg = "Es muss eine Zahl als Sortierungswert angegeben werden.";
@@ -764,7 +764,7 @@ class studienplan extends basis_db
$qry = 'UPDATE lehre.tbl_studienplan_lehrveranstaltung '
. 'SET sort='.$this->db_add_param($sort)
. ' WHERE studienplan_lehrveranstaltung_id='.$this->db_add_param($studienplan_lehrveranstaltung_id).';';
$this->orgform_kurzbz = $qry;
if(!$this->db_query($qry))
{
@@ -773,5 +773,53 @@ class studienplan extends basis_db
}
return true;
}
/**
* Laedt die Studienplaene zu denen eine Lehrveranstaltung zugeordnet ist
*/
public function getStudienplanLehrveranstaltung($lehrveranstaltung_id, $studiensemester_kurzbz)
{
$qry= "
SELECT
distinct tbl_studienplan.*
FROM
lehre.tbl_studienplan
JOIN lehre.tbl_studienplan_lehrveranstaltung USING(studienplan_id)
WHERE
tbl_studienplan_lehrveranstaltung.lehrveranstaltung_id=".$this->db_add_param($lehrveranstaltung_id, FHC_INTEGER)."
AND EXISTS (
SELECT 1 FROM lehre.tbl_studienordnung_semester
WHERE studienordnung_id=tbl_studienplan.studienordnung_id
AND studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz)."
AND semester = tbl_studienplan_lehrveranstaltung.semester)
ORDER BY bezeichnung";
if($result = $this->db_query($qry))
{
while($row = $this->db_fetch_object($result))
{
$obj = new studienplan();
$obj->studienplan_id = $row->studienplan_id;
$obj->studienordnung_id = $row->studienordnung_id;
$obj->orgform_kurzbz = $row->orgform_kurzbz;
$obj->version = $row->version;
$obj->bezeichnung = $row->bezeichnung;
$obj->regelstudiendauer = $row->regelstudiendauer;
$obj->sprache = $row->sprache;
$obj->aktiv = $this->db_parse_bool($row->aktiv);
$obj->semesterwochen = $row->semesterwochen;
$obj->testtool_sprachwahl = $this->db_parse_bool($row->testtool_sprachwahl);
$obj->updateamum = $row->updateamum;
$obj->updatevon = $row->updatevon;
$obj->insertamum = $row->insertamum;
$obj->insertvon = $row->insertvon;
$obj->new=false;
$this->result[] = $obj;
}
return true;
}
}
}
?>
+7 -4
View File
@@ -289,9 +289,12 @@ class studiensemester extends basis_db
*
* @return true wenn ok, sonst false
*/
public function getAll()
public function getAll($order = null)
{
$qry = "SELECT * FROM public.tbl_studiensemester ORDER BY ende";
if($order == "desc")
$qry .= " DESC";
if($this->db_query($qry))
{
@@ -730,9 +733,9 @@ class studiensemester extends basis_db
if(!isset($this->begin))
$this->begin=new stdclass();
$this->begin->start=mktime(0,0,0,mb_substr($row->start,5,2),mb_substr($row->start,8,2),mb_substr($row->start,0,4));
if(!isset($this->ende))
$this->ende=new stdclass();
$this->ende->ende=mktime(0,0,0,mb_substr($row->ende,5,2),mb_substr($row->ende,8,2),mb_substr($row->ende,0,4));
if(!isset($this->end))
$this->end=new stdclass();
$this->end->ende=mktime(0,0,0,mb_substr($row->ende,5,2),mb_substr($row->ende,8,2),mb_substr($row->ende,0,4));
return true;
}
else
+2 -2
View File
@@ -1021,9 +1021,9 @@ else
Aufdecken und Darstellen von gr&ouml;&szlig;eren (z.B. wirtschaftlichen und sozialen) Zusammenh&auml;ngen und entsprechende Diskussion</td>
<td width="30%"><textarea name="hintergrund" value="'.$db->convert_html_chars($hintergrund).'" cols="50" rows="10"
onKeyDown="txtcount(this.form.hintergrund,this.form.remLen3,500);" onKeyUp="txtcount(this.form.hintergrund,this.form.remLen3,500);"></textarea>
<br>Buchstaben noch zur Verf&uuml;gung<input readonly disabled type=text name=remLen3 size=3 maxlength=3 value="500" style="text-align:right"></td>\n
<br>Buchstaben noch zur Verf&uuml;gung<input readonly disabled type=text name=remLen3 size=3 maxlength=3 value="500" style="text-align:right"></td>
<td width="10%" align="center"><input type="hidden" name="weight" id="weight3" value="0.25">
<input type="text" name="punkte3" value="'.$db->convert_html_chars($punkte3).'" size="5" maxlength="5" id="punkte3" style="text-align:right" onkeyup="berechne()"></td>\n
<input type="text" name="punkte3" value="'.$db->convert_html_chars($punkte3).'" size="5" maxlength="5" id="punkte3" style="text-align:right" onkeyup="berechne()"></td>
<td width="10%" align="center">0.25</td>
<td width="10%" align="center"><input type="text" name="punkteges3" value="'.$db->convert_html_chars($punkteges3).'" id="punkteges3" style="text-align:right" size="5" maxlength="5" readonly></td></tr>';
}
+6 -5
View File
@@ -670,15 +670,16 @@ function checkZeilenUmbruch()
// Email an Studierende
$mailto='mailto:';
$qry = 'SELECT
$qry = "SELECT
distinct vw_lehreinheit.stg_kurzbz, vw_lehreinheit.stg_typ, vw_lehreinheit.semester,
vw_lehreinheit.verband, vw_lehreinheit.gruppe, vw_lehreinheit.gruppe_kurzbz, tbl_gruppe.mailgrp
COALESCE(vw_lehreinheit.verband,'') as verband, COALESCE(vw_lehreinheit.gruppe,'') as gruppe, vw_lehreinheit.gruppe_kurzbz, tbl_gruppe.mailgrp
FROM
campus.vw_lehreinheit
LEFT JOIN public.tbl_gruppe USING(gruppe_kurzbz)
WHERE
lehrveranstaltung_id='.$db->db_add_param($lvid).'
AND studiensemester_kurzbz='.$db->db_add_param($angezeigtes_stsem);
lehrveranstaltung_id=".$db->db_add_param($lvid)."
AND studiensemester_kurzbz=".$db->db_add_param($angezeigtes_stsem);
$nomail='';
$variable = new variable();
$variable->loadVariables($user);
@@ -694,7 +695,7 @@ function checkZeilenUmbruch()
$nomail=$row->gruppe_kurzbz.' ';
}
else
$mailto.=mb_strtolower($row->gruppe_kurzbz.'@'.DOMAIN.',');
$mailto.=mb_strtolower($row->gruppe_kurzbz.'@'.DOMAIN.$variable->variable->emailadressentrennzeichen);
}
else
$mailto.=mb_strtolower($row->stg_typ.$row->stg_kurzbz.$row->semester.trim($row->verband).trim($row->gruppe).'@'.DOMAIN.$variable->variable->emailadressentrennzeichen);
+158 -141
View File
@@ -38,8 +38,8 @@ require_once(dirname(__FILE__).'/studiengang.class.php');
require_once(dirname(__FILE__).'/mitarbeiter.class.php');
require_once(dirname(__FILE__).'/datum.class.php');
require_once(dirname(__FILE__).'/zeitsperre.class.php');
require_once(dirname(__FILE__).'/phrasen.class.php');
require_once(dirname(__FILE__).'/globals.inc.php');
require_once(dirname(__FILE__).'/phrasen.class.php');
require_once(dirname(__FILE__).'/globals.inc.php');
require_once(dirname(__FILE__).'/sprache.class.php');
require_once(dirname(__FILE__).'/functions.inc.php');
require_once(dirname(__FILE__).'/betriebsmittel.class.php');
@@ -97,7 +97,7 @@ class wochenplan extends basis_db
public $wochenplan;
public $errormsg;
public $fachbereich_kurzbz;
public $raeume = array();
/**
@@ -107,9 +107,9 @@ class wochenplan extends basis_db
public function __construct($type)
{
parent::__construct();
$this->type=$type;
$this->type=$type;
$this->link='stpl_week.php?type='.$type;
$this->kal_link='stpl_kalender.php?type='.$type;
// Timezone setzten
@@ -117,7 +117,7 @@ class wochenplan extends basis_db
$this->datum=time();
$this->init_stdplan();
$this->crlf=crlf();
}
/**
@@ -215,9 +215,9 @@ class wochenplan extends basis_db
return false;
}
$this->fachbereich_kurzbz=$fachbereich_kurzbz;
}
// LVA
if($type=='lva' && $lva==NULL)
{
@@ -228,7 +228,7 @@ class wochenplan extends basis_db
{
$this->lva=$lva;
}
// Zusaetzliche Daten ermitteln
//personendaten
if ($this->type=='student' || $this->type=='lektor')
@@ -252,7 +252,7 @@ class wochenplan extends basis_db
$this->pers_nachname = $row->nachname;
$this->pers_vorname =$row->vorname;
$this->pers_vornamen = $row->vornamen;
if ($this->type=='student')
{
$this->stg_kz = $row->studiengang_kz;
@@ -261,7 +261,7 @@ class wochenplan extends basis_db
$this->grp = $row->gruppe;
}
}
else
else
{
$this->errormsg='User nicht gefunden';
return false;
@@ -295,7 +295,7 @@ class wochenplan extends basis_db
return false;
}
}
if ($this->type=='ort' && $this->ort_kurzbz == 'all')
{
$sql_query="SELECT bezeichnung, ort_kurzbz, planbezeichnung, ausstattung, max_person, content_id FROM public.tbl_ort WHERE lehre AND ort_kurzbz != 'Dummy'";
@@ -405,7 +405,7 @@ class wochenplan extends basis_db
$this->errormsg=$this->wochenplan->errormsg;
return false;
}
// Stundenplandaten aufbereiten
for($i=0;$i<$anz;$i++)
{
@@ -462,9 +462,9 @@ class wochenplan extends basis_db
*/
public function draw_header()
{
$sprache = getSprache();
$p=new phrasen($sprache);
$sprache = getSprache();
$p=new phrasen($sprache);
echo '<TABLE width="100%" border="0" cellspacing="0">'.$this->crlf;
echo ' <TR>'.$this->crlf;
echo ' <TD style="padding-bottom: 5px;" valign="top">'.$this->crlf;
@@ -543,7 +543,7 @@ class wochenplan extends basis_db
for ($i=0;$i<($num_rows_ort-1);$i++)
{
$row = $this->db_fetch_object(null,$i+1);
if ($row->ort_kurzbz==$this->ort_kurzbz)
$prev_ort=$this->db_fetch_object(null,$i);
}
@@ -616,18 +616,18 @@ class wochenplan extends basis_db
$this->jahreskalenderjump_hoverbox($this->link);
return true;
}
/**
* Zeichnen der Stundenplanwoche in HTML
*/
public function draw_week($raumres, $user_uid='', $gruppieren=LVPLAN_LEHREINHEITEN_GRUPPIEREN)
{
global $tagbez;
$sprache = getSprache();
$spracheLoad = new sprache();
$spracheLoad->load($sprache);
$p=new phrasen($sprache);
$sprache = getSprache();
$spracheLoad = new sprache();
$spracheLoad->load($sprache);
$p=new phrasen($sprache);
$o_datum=new datum();
// Stundentafel abfragen
$sql_query="SELECT stunde, beginn, ende FROM lehre.tbl_stunde ORDER BY stunde";
@@ -635,7 +635,7 @@ class wochenplan extends basis_db
die($this->db_last_error());
$result_stunde = $this->db_result;
$num_rows_stunde = $this->db_num_rows($result_stunde);
// Formularbeginn wenn Lektor
if ($raumres && $this->type=='ort')
echo '<form name="reserve" method="post" action="stpl_week.php">'.$this->crlf;
@@ -669,7 +669,7 @@ class wochenplan extends basis_db
echo '<tr><td>'.$tagbez[$spracheLoad->index][$i].'<br>'.strftime("%e. %b %Y",$datum).'<br></td>'.$this->crlf; //.strftime("%A %d %B %Y",$this->datum)
for ($k=0; $k<$num_rows_stunde; $k++)
{
$row = $this->db_fetch_object($result_stunde, $k);
$j = $row->stunde;
// Stunde aufbereiten
@@ -692,7 +692,7 @@ class wochenplan extends basis_db
$reservierung=false;
foreach ($this->std_plan[$i][$j] as $lehrstunde)
{
$unr[]=$lehrstunde->unr;
// Lektoren
$lektor[]=$lehrstunde->lektor;
@@ -700,11 +700,11 @@ class wochenplan extends basis_db
$typ='';
if($lehrstunde->reservierung)
{
$studiengang = new studiengang();
$studiengang = new studiengang();
$studiengang->load($lehrstunde->stg_kz);
$typ = $studiengang->typ;
$typ = $studiengang->typ;
}
$lvb=$typ.$lehrstunde->stg.'-'.$lehrstunde->sem;
$stg = $lehrstunde->stg_kz;
if ($lehrstunde->ver!=null && $lehrstunde->ver!='0' && $lehrstunde->ver!='')
@@ -782,7 +782,7 @@ class wochenplan extends basis_db
else
$anm='';
}
// Blinken oder nicht ?
if ($kollision)
{
@@ -869,7 +869,7 @@ class wochenplan extends basis_db
$uEinheiten[$unrIndex]['lektor'][]=$lektor[$n];
$uEinheiten[$unrIndex]['titel'][]=$titel_arr[$n];
}
// Ausgabe einer Stunde im Raster (HTML)
echo ' <td nowrap valign="top">';
// for($n=0;$n<count($uEinheiten);$n++)
@@ -879,7 +879,7 @@ class wochenplan extends basis_db
if (isset($uEinheit['farbe']))
echo 'style="background-color: #'.$uEinheit['farbe'].'; margin-bottom: 3px;"';
echo '>';
// Link zu Details setzten
echo '<A class="stpl_detail" onClick="window.open(';
echo "'stpl_detail.php";
@@ -955,10 +955,10 @@ class wochenplan extends basis_db
echo '<table><tr><br>';
echo ' <td>'.$p->t('global/titel').':</td><td><input onchange="if (this.value.length>0 && document.getElementById(\'beschreibung\').value.length<1) {document.getElementById(\'beschreibung\').value=document.getElementById(\'titel\').value;document.getElementById(\'beschreibung\').focus();};" type="text" id="titel" name="titel" size="10" maxlength="10" value="" /></td> '.$this->crlf;
echo ' <td>'.$p->t('global/beschreibung').':</td><td colspan="6"> <input onchange="if (this.value.length<1 && document.getElementById(\'titel\').value.length>0) {alert(\'Achtung! Speichern nur mit Beschreibung moeglich!\');this.focus();};" type="text" id="beschreibung" name="beschreibung" size="20" maxlength="32" value="" /> </td>'.$this->crlf;
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($user_uid);
//Pruefen ob die erweiterte Reservierungsrechte vorhanden sind
if($rechte->isBerechtigt('lehre/reservierung', null, 'sui'))
{
@@ -966,31 +966,31 @@ class wochenplan extends basis_db
//Lektor
echo '<td>'.$p->t('lvplan/lektor').':</td>
<td><SELECT name="user_uid">'.$this->crlf;
$qry = "SELECT uid, kurzbz, vorname, nachname FROM campus.vw_mitarbeiter
$qry = "SELECT uid, kurzbz, vorname, nachname FROM campus.vw_mitarbeiter
WHERE aktiv=true
ORDER BY nachname, uid";
if($result = $this->db_query($qry))
{
while($row = $this->db_fetch_object($result))
{
if($row->uid==$user_uid)
$selected='selected="selected"';
else
else
$selected='';
echo '<OPTION value="'.$row->uid.'" '.$selected.'>'.$row->nachname.' '.$row->vorname.' - '.$row->uid.'</OPTION>'.$this->crlf;
}
}
echo '</SELECT></td>'.$this->crlf;
echo '</tr><tr>'.$this->crlf;
//Studiengaenge Laden fuer die eine erweiterte Reservierungsberechtigung vorhanden ist
$stg = new studiengang();
$stg->loadArray($rechte->getStgKz('lehre/reservierung'),'typ, kurzbz',true);
//Studiengang
echo '<td>'.$p->t('global/studiengang').':</td><td> <SELECT name="studiengang_kz">'.$this->crlf;
echo '<OPTION value="0">*</OPTION>'.$this->crlf;
@@ -999,7 +999,7 @@ class wochenplan extends basis_db
echo '<OPTION value="'.$row->studiengang_kz.'">'.$row->kuerzel.' ('.$row->kurzbzlang.')</OPTION>'.$this->crlf;
}
echo '</SELECT></td>';
//Semester
echo '<td>'.$p->t('global/semester').':</td>
<td>
@@ -1016,7 +1016,7 @@ class wochenplan extends basis_db
</SELECT>
</td>
'.$this->crlf;
//Verband
echo '<td>'.$p->t('global/verband').':</td>
<td>
@@ -1031,7 +1031,7 @@ class wochenplan extends basis_db
<OPTION value="V">V</OPTION>
</SELECT>
</td>'.$this->crlf;
//Gruppe
echo '<td>'.$p->t('global/gruppe').':</td>
<td>
@@ -1043,11 +1043,11 @@ class wochenplan extends basis_db
<OPTION value="4">4</OPTION>
</SELECT>
</td>'.$this->crlf;
//Spezialgruppe
echo '<td>'.$p->t('lvplan/spezialgruppe').':</td><td><SELECT name="gruppe_kurzbz">'.$this->crlf;
echo '<OPTION value="">*</OPTION>'.$this->crlf;
//Spezialgruppen aus den Studiengaengen mit erweiterten Reservierungsberechtigung holen
$stgs = $rechte->getStgKz('lehre/reservierung');
$in='';
@@ -1067,24 +1067,24 @@ class wochenplan extends basis_db
echo '</SELECT></td>'.$this->crlf;
echo '<td><input type="checkbox" name="check_all" onclick="toggle_checkboxes(this);" /> alle auswählen</td>'.$this->crlf;
echo '</tr><tr>';
}
else
{
echo ' <input type="hidden" name="user_uid" value="'.$this->user_uid.'" />'.$this->crlf;
}
echo '<td>';
echo ' <input type="submit" name="reserve" value="Reservieren" />'.$this->crlf;
echo ' <input type="hidden" name="ort_kurzbz" value="'.$this->ort_kurzbz.'" />'.$this->crlf;
echo ' <input type="hidden" name="datum" value="'.$this->datum.'" />'.$this->crlf;
echo ' <input type="hidden" name="type" value="'.$this->type.'" />'.$this->crlf;
echo '</td>';
echo '</tr></table></form>';
echo ' <a href="stpl_reserve_list.php">'.$p->t('lvplan/reservierungenLoeschen').' </a>';
}
else
else
{
if($this->type=='ort')
{
@@ -1150,11 +1150,14 @@ class wochenplan extends basis_db
kw="'.$this->kalenderwoche.'"
align="left">KW:'.$this->kalenderwoche.'</label>
</vbox>'.$this->crlf; //<html:br />Beginn<html:br />Ende
$stunden_arr=array();
for ($i=0;$i<$num_rows_stunde; $i++)
{
$row=$this->db_fetch_object($result_stunde,$i);
$beginn=mb_substr($row->beginn,0,5);
$ende=mb_substr($row->ende,0,5);
$stunden_arr[$row->stunde]['beginn']=$beginn;
$stunden_arr[$row->stunde]['ende']=$ende;
$stunde=$row->stunde;
echo '<vbox><label align="center">'.$stunde.'<html:br />
<html:small>'.$beginn.'<html:br />
@@ -1206,10 +1209,15 @@ class wochenplan extends basis_db
if ($index=='')
$index=1;
$bgcolor=$cfgStdBgcolor[$index+3];
// Sonntag wie Ferien markieren
if($i==7)
$bgcolor='#FFFF55';
if ($isferien)
{
$bgcolor='#FFFF55';
//Wenn Ferien eingetragen sind, dann die Bezeichnung im Tooltiptext anzeigen
foreach($ferien->getFerien($datum) as $bezeichnung)
{
@@ -1223,7 +1231,7 @@ class wochenplan extends basis_db
{
echo ' tooltiptext="'.$this->convert_html_chars($tooltip).'"';
}
echo '
echo '
ondragdrop="nsDragAndDrop.drop(event,boardObserver)"
ondragover="nsDragAndDrop.dragOver(event,boardObserver)"
ondragenter="nsDragAndDrop.dragEnter(event,boardObserver)"
@@ -1232,7 +1240,7 @@ class wochenplan extends basis_db
stg_kz="'.$this->stg_kz.'" sem="'.$this->sem.'" ver="'.$this->ver.'"
grp="'.$this->grp.'" gruppe="'.$this->gruppe_kurzbz.'"
pers_uid="'.$this->pers_uid.'" stpltype="'.$this->type.'">';
if (isset($this->std_plan[$i][$j][0]->lehrfach))
{
// Daten aufbereiten
@@ -1250,7 +1258,7 @@ class wochenplan extends basis_db
$a_unr[]=$lehrstunde->unr;
$a_lvb[$lehrstunde->unr][]=$lehrstunde->sem.$lehrstunde->ver.$lehrstunde->grp;
}
// Unterrichtsnummer (Kollision?)
$a_unr=array_unique($a_unr);
$kollision+=count($a_unr);
@@ -1259,16 +1267,16 @@ class wochenplan extends basis_db
{
$kollision=0;
$studiensemester = getStudiensemesterFromDatum(date('Y-m-d',$datum));
$qry = "SELECT datum, stunde, student_uid, count(student_uid) AS anzahl
FROM (
SELECT sub_stpl_uid.unr, sub_stpl_uid.datum, sub_stpl_uid.stunde, sub_stpl_uid.student_uid
FROM ( SELECT stpl.unr, stpl.datum, stpl.stunde, tbl_benutzergruppe.uid AS student_uid
FROM lehre.tbl_stundenplandev stpl
JOIN public.tbl_benutzergruppe USING (gruppe_kurzbz)
WHERE tbl_benutzergruppe.studiensemester_kurzbz::text = ".$this->db_add_param($studiensemester)."
WHERE tbl_benutzergruppe.studiensemester_kurzbz::text = ".$this->db_add_param($studiensemester)."
GROUP BY stpl.unr, stpl.datum, stpl.stunde, tbl_benutzergruppe.uid
UNION
UNION
SELECT stpl.unr, stpl.datum, stpl.stunde, tbl_studentlehrverband.student_uid
FROM lehre.tbl_stundenplandev stpl
JOIN public.tbl_studentlehrverband ON stpl.gruppe_kurzbz IS NULL AND stpl.studiengang_kz = tbl_studentlehrverband.studiengang_kz AND stpl.semester = tbl_studentlehrverband.semester AND (stpl.verband = tbl_studentlehrverband.verband OR stpl.verband = ' '::bpchar AND stpl.verband <> tbl_studentlehrverband.verband) AND (stpl.gruppe = tbl_studentlehrverband.gruppe OR stpl.gruppe = ' '::bpchar AND stpl.gruppe <> tbl_studentlehrverband.gruppe)
@@ -1285,9 +1293,9 @@ class wochenplan extends basis_db
{
// Nur die Eintraege als kollision anzeigen, die auch aktuell im Tempus sichtbar sind
// Dazu werden die UNRs der betroffenen Studierenden zuerst ein ein Array gruppiert und danach
// verglichen ob die angezeigte UNR dabei ist.
// verglichen ob die angezeigte UNR dabei ist.
// Etwas kompliziert aber performanter als wenn die betroffenen UNRs zusätzlich zum WHERE hinzugefügt werden
$qry.=" AND array_agg(unr) && ARRAY[".implode('::bigint,',$a_unr)."::bigint] ";
// ==> AND array_agg(unr) && ARRAY[123::bigint,345::bigint]
}
@@ -1303,11 +1311,11 @@ class wochenplan extends basis_db
$kollisionsmeldungen[$kollision_unr][]=' Studentenkollision '.$stud_row->student_uid;
}
}
}
else
else
{
//Kollisionspruefung LVB Ebene
// Ist es bei LVB-Ansicht wirklich eine Kollision?
if ($kollision>0 && $this->type=='verband')
@@ -1341,7 +1349,7 @@ class wochenplan extends basis_db
}
}
}
// Kollision anzeigen?
if ($ignore_kollision)
$kollision=0;
@@ -1417,7 +1425,7 @@ class wochenplan extends basis_db
$anmerkung=htmlspecialchars($lehrstunde->anmerkung);
$tooltip_anmerkung[]=$titel.' '.$anmerkung;
}
if(isset($raumcheck[$lehrstunde->ort]) && $raumcheck[$lehrstunde->ort]!=$lehrstunde->unr)
{
$kollision++;
@@ -1465,7 +1473,7 @@ class wochenplan extends basis_db
// Ort
//if ($this->type=='verband')
$ort=array_unique($ort);
sort($ort);
$orte='';
@@ -1485,10 +1493,10 @@ class wochenplan extends basis_db
$updatevonam.='am ';
foreach ($updateamum as $u)
$updatevonam.=$u.' ';
// Blinken oder nicht ?
if (isset($kollisionsmeldungen[$unr])
|| (isset($kollisionsmeldung) && count($kollisionsmeldungen, COUNT_RECURSIVE)==0 && $kollision>0))
if (isset($kollisionsmeldungen[$unr])
|| (isset($kollisionsmeldung) && count($kollisionsmeldungen, COUNT_RECURSIVE)==0 && $kollision>0))
{
$blink_ein='<html:blink>';// .$kollision;
$blink_aus='</html:blink>';
@@ -1533,7 +1541,7 @@ class wochenplan extends basis_db
grp="'.$this->grp.'" gruppe="'.$this->gruppe_kurzbz.'"
datum="'.date("Y-m-d",$datum).'" stunde="'.$j.'" wochentag="'.$i.'"
pers_uid="'.$this->pers_uid.'" ort_kurzbz="'.$button_orte.'">';
echo '<label align="center">'.$blink_ein;
$count++;
//echo $lf;
@@ -1565,9 +1573,9 @@ class wochenplan extends basis_db
if(LVPLAN_ANMERKUNG_ANZEIGEN)
echo $anmerkung;
echo $blink_aus;
echo '</label>';
echo '</button>';
}
@@ -1576,14 +1584,14 @@ class wochenplan extends basis_db
{
//orte sortieren => AnzahlKollisionen ASC, Ort_kurzbz ASC
$keys=array();
$values=array();
$values=array();
foreach ($this->std_plan[$i][$j][0]->frei_orte as $key=>$value)
{
$keys[]=$key;
$values[]=$value;
}
array_multisort($values, SORT_ASC, $keys, SORT_ASC, $this->std_plan[$i][$j][0]->frei_orte);
foreach ($this->std_plan[$i][$j][0]->frei_orte as $f_ort=>$anzahl)
{
if($anzahl<=$max_kollision)
@@ -1602,7 +1610,16 @@ class wochenplan extends basis_db
}
}
}
echo '<description class="stplweek_tagesinfo">'.date("D",$datum).'-'.$j.'</description>';
if(defined('TEMPUS_TAGESINFO_FORMAT'))
$tagesinfo = TEMPUS_TAGESINFO_FORMAT;
else
$tagesinfo = '%t %s';
$tagesinfo = str_replace('%t',date("D",$datum),$tagesinfo);
$tagesinfo = str_replace('%b',$stunden_arr[$j]['beginn'],$tagesinfo);
$tagesinfo = str_replace('%e',$stunden_arr[$j]['ende'],$tagesinfo);
$tagesinfo = str_replace('%s',$j,$tagesinfo);
echo '<description class="stplweek_tagesinfo">'.$tagesinfo.'</description>';
echo '</vbox>'.$this->crlf;
}
echo "</row>";
@@ -1750,8 +1767,8 @@ class wochenplan extends basis_db
// $rtype='1=1';
// Raeume die in Frage kommen, aufgrund der Raumtypen
$sql_query="SELECT DISTINCT ort_kurzbz, hierarchie FROM public.tbl_ort
JOIN public.tbl_ortraumtyp USING (ort_kurzbz) WHERE ($rtype) AND aktiv AND ort_kurzbz NOT LIKE '\\\\_%' ORDER BY hierarchie,ort_kurzbz";
JOIN public.tbl_ortraumtyp USING (ort_kurzbz) WHERE ($rtype) AND aktiv AND ort_kurzbz NOT LIKE '\\\\_%' ORDER BY hierarchie,ort_kurzbz";
if(!$this->db_query($sql_query))
die($this->db_last_error());
while($row = $this->db_fetch_object())
@@ -1786,14 +1803,14 @@ class wochenplan extends basis_db
$sql_query="SELECT DISTINCT datum, stunde, ort_kurzbz FROM $stpl_view
WHERE datum>=".$this->db_add_param($this->datum_begin)." AND datum<".$this->db_add_param($this->datum_end)." AND unr!=".$this->db_add_param($unr);
//echo $sql_query; NATURAL JOIN tbl_ortraumtyp AND ($rtype) "
// Reservierungen beruecksichtigen
$sql_query.=" UNION SELECT DISTINCT datum, stunde, ort_kurzbz FROM campus.tbl_reservierung
WHERE datum>=".$this->db_add_param($this->datum_begin)." AND datum<".$this->db_add_param($this->datum_end)." ";
if(!$this->db_query($sql_query))
die($this->db_last_error());
while($row = $this->db_fetch_object())
{
$mtag=mb_substr($row->datum, 8,2);
@@ -1802,7 +1819,7 @@ class wochenplan extends basis_db
$tag=date("w",mktime(12,0,0,$month,$mtag,$jahr));
$raster[$tag][$row->stunde]->ort[]=$row->ort_kurzbz;
}
// freie Plaetze in den Stundenplan eintragen.
for ($t=1;$t<=TAGE_PRO_WOCHE;$t++)
{
@@ -1815,23 +1832,23 @@ class wochenplan extends basis_db
{
$this->std_plan[$t][$s][0]->frei_orte[$ort]=(isset($this->std_plan[$t][$s][0]->frei_orte[$ort])?$this->std_plan[$t][$s][0]->frei_orte[$ort]:0);
}
// Besetzte Raueme eintragen
foreach($raster[$t][$s]->ort as $ort)
{
if(in_array($ort, $orte))
$this->std_plan[$t][$s][0]->frei_orte[$ort]=(isset($this->std_plan[$t][$s][0]->frei_orte[$ort])?$this->std_plan[$t][$s][0]->frei_orte[$ort]+1:1);
}
// Gruppenkollision eintragen
if($raster[$t][$s]->kollision)
{
foreach($this->std_plan[$t][$s][0]->frei_orte as $ort=>$value)
{
$this->std_plan[$t][$s][0]->frei_orte[$ort]=(isset($this->std_plan[$t][$s][0]->frei_orte[$ort])?$this->std_plan[$t][$s][0]->frei_orte[$ort]+1:1);
$this->std_plan[$t][$s][0]->frei_orte[$ort]=(isset($this->std_plan[$t][$s][0]->frei_orte[$ort])?$this->std_plan[$t][$s][0]->frei_orte[$ort]+1:1);
}
}
// Blockung beruecksichtigen
for ($b=1;$b<$block && ($s+$block)<=($max_stunde+1);$b++)
{
@@ -1844,7 +1861,7 @@ class wochenplan extends basis_db
$this->std_plan[$t][$s][0]->frei_orte[$ort]=(isset($this->std_plan[$t][$s][0]->frei_orte[$ort])?$this->std_plan[$t][$s][0]->frei_orte[$ort]+1:1);
}
}
else
else
{
// Bei Gruppenkollision kollidieren alle Raeume
foreach($this->std_plan[$t][$s][0]->frei_orte as $ort=>$value)
@@ -1854,7 +1871,7 @@ class wochenplan extends basis_db
}
}
}
else
else
{
// Wenn sich die Stunden mit der Blockung nicht ausgehen, dann keine Raeume anzeigen
$this->std_plan[$t][$s][0]->frei_orte = array();
@@ -1918,7 +1935,7 @@ class wochenplan extends basis_db
for ($i=0;$i<$num_rows_lva;$i++)
{
$row=$this->db_fetch_object(null,$i);
$raumtyp[$i]=$row->raumtyp;
$raumtypalt[$i]=$row->raumtypalternativ;
if ($row->gruppe_kurzbz!=null && $row->gruppe_kurzbz!='')
@@ -2049,7 +2066,7 @@ class wochenplan extends basis_db
$orte = array();
for ($i=0;$i<$num_orte;$i++)
{
$row = $this->db_fetch_object(null, $i);
$row = $this->db_fetch_object(null, $i);
$orte[]=$row->ort_kurzbz;
}
@@ -2084,14 +2101,14 @@ class wochenplan extends basis_db
$raster[$t][$s]->kollision=false;
}
}
// Stundenplanabfrage bauen (Wo ist Kollision?)
$sql_query="SELECT DISTINCT datum, stunde FROM $stpl_table
WHERE datum>=".$this->db_add_param($datum_begin)." AND datum<".$this->db_add_param($datum_end)." AND
($lkt $gruppen OR ($lvb) )";
if (is_numeric($unr))
$sql_query.=" AND unr!=".$this->db_add_param($unr);
if(!$this->db_query($sql_query))
{
$this->errormsg = $this->db_last_error().$sql_query;
@@ -2115,17 +2132,17 @@ class wochenplan extends basis_db
($rtype)";
if (is_numeric($unr))
$sql_query.=" AND unr!=".$this->db_add_param($unr);
// Reservierungen beruecksichtigen
$sql_query.=" UNION SELECT distinct datum, stunde, ort_kurzbz FROM campus.tbl_reservierung
WHERE datum>=".$this->db_add_param($datum_begin)." AND datum<".$this->db_add_param($datum_end);
if(!$this->db_query($sql_query))
{
$this->errormsg = $this->db_last_error().$sql_query;
return false;
}
while($row = $this->db_fetch_object())
{
$mtag=mb_substr($row->datum, 8,2);
@@ -2152,14 +2169,14 @@ class wochenplan extends basis_db
foreach($orte as $ort)
$this->std_plan[$t][$s][0]->frei_orte[$ort]=(isset($this->std_plan[$t][$s][0]->frei_orte[$ort])?$this->std_plan[$t][$s][0]->frei_orte[$ort]:0);
}
// Besetzte Orte eintragen
foreach ($raster[$t][$s]->ort as $ort)
{
if(in_array($ort, $orte))
$this->std_plan[$t][$s][0]->frei_orte[$ort]=(isset($this->std_plan[$t][$s][0]->frei_orte[$ort])?$this->std_plan[$t][$s][0]->frei_orte[$ort]+1:1);
}
//Kollision mit Gruppe
if($raster[$t][$s]->kollision)
{
@@ -2172,7 +2189,7 @@ class wochenplan extends basis_db
}
}
}
// Blockung beruecksichtigen
for ($b=1;$b<$block && ($s+$block)<=($max_stunde+1);$b++)
{
@@ -2239,7 +2256,7 @@ class wochenplan extends basis_db
{
$row = $this->db_fetch_object($this->stunde, $k);
$j=$row->stunde; // get id of hour
if (isset($this->std_plan[$i][$j][0]->lehrfach))
{
// Daten aufbereiten
@@ -2253,7 +2270,7 @@ class wochenplan extends basis_db
unset($lehrfach);
foreach ($this->std_plan[$i][$j] as $lehrstunde)
{
$unr[]=$lehrstunde->unr;
// Lektoren
$lektor[]=$lehrstunde->lektor;
@@ -2311,22 +2328,22 @@ class wochenplan extends basis_db
$row = $this->db_fetch_object($this->stunde, $k);
$start_time=$row->beginn;
for($idx=0;$idx<count($this->std_plan[$i][$j]);$idx++)
{
if(!isset($this->std_plan[$i][$j][$idx]))
{
continue;
}
/**
* Wenn Lektoren in mehreren Raeumen gleichzeitig unterrichten
* Oder mehrere Lektoren /Gruppen im selben Raum sind werden diese
* zu einem Eintrag zusammengruppiert.
*
* Zusammengruppiert werden nur Eintraege die am gleichen Tag
*
* Zusammengruppiert werden nur Eintraege die am gleichen Tag
* in der gleichen Stunde stattfinden.
*
*
* Es wird nur der erste Eintrag ausgegeben. Die restlichen werden uebersprungen da
* die Lektoren, Gruppen und Raeume bereits zum Ersten Eintrag hinzugefuegt wurden.
*/
@@ -2335,14 +2352,14 @@ class wochenplan extends basis_db
$gruppiert[$this->std_plan[$i][$j][$idx]->unr]--;
continue;
}
/**
* Unterricht der ueber mehrere Stunden geht wird nicht einzeln Exportiert,
* sondern zusammengeblockt. (in maximal 4er Bloecke)
*
*
* Es wird nur ein Eintrag geschrieben, die restlichen werden uebersprungen.
* Vor dem Ueberspringen des Eintrages werden jedoch noch die dazu Gruppierten Eintraege
* ermittelt und dann ebenfalls uebersprungen
* Vor dem Ueberspringen des Eintrages werden jedoch noch die dazu Gruppierten Eintraege
* ermittelt und dann ebenfalls uebersprungen
*/
$blockcontinue=false;
if(isset($blocked[$this->std_plan[$i][$j][$idx]->unr]) && $blocked[$this->std_plan[$i][$j][$idx]->unr]>0)
@@ -2350,12 +2367,12 @@ class wochenplan extends basis_db
$blocked[$this->std_plan[$i][$j][$idx]->unr]--;
$blockcontinue=true;
}
if(!$blockcontinue)
{
// Blockungen ueber mehrere Stunden erkennen
if (isset($this->std_plan[$i][$j+1][$idx]) && isset($this->std_plan[$i][$j+1][$idx]->stundenplan_id)
&& ($this->std_plan[$i][$j][$idx]->unr == $this->std_plan[$i][$j+1][$idx]->unr)
&& ($this->std_plan[$i][$j][$idx]->unr == $this->std_plan[$i][$j+1][$idx]->unr)
&& $this->std_plan[$i][$j][$idx]!='0' && $k<($num_rows_stunde-1)
&& !($this->std_plan[$i][$j][$idx]->reservierung && $this->std_plan[$i][$j][$idx]->lektor!=$this->std_plan[$i][$j+1][$idx]->lektor))
{
@@ -2368,7 +2385,7 @@ class wochenplan extends basis_db
$end_time=$row->ende;
if (isset($this->std_plan[$i][$j+2][$idx]) && isset($this->std_plan[$i][$j+2][$idx]->stundenplan_id)
&& ($this->std_plan[$i][$j][$idx]->unr == $this->std_plan[$i][$j+2][$idx]->unr)
&& ($this->std_plan[$i][$j][$idx]->unr == $this->std_plan[$i][$j+2][$idx]->unr)
&& $k<($num_rows_stunde-2)
&& !($this->std_plan[$i][$j][$idx]->reservierung && $this->std_plan[$i][$j][$idx]->lektor!=$this->std_plan[$i][$j+2][$idx]->lektor))
{
@@ -2378,7 +2395,7 @@ class wochenplan extends basis_db
$end_time=$row->ende;
if (isset($this->std_plan[$i][$j+3][$idx]) && isset($this->std_plan[$i][$j+3][$idx]->stundenplan_id)
&& ($this->std_plan[$i][$j][$idx]->unr == $this->std_plan[$i][$j+3][$idx]->unr)
&& ($this->std_plan[$i][$j][$idx]->unr == $this->std_plan[$i][$j+3][$idx]->unr)
&& $k<($num_rows_stunde-3)
&& !($this->std_plan[$i][$j][$idx]->reservierung && $this->std_plan[$i][$j][$idx]->lektor!=$this->std_plan[$i][$j+3][$idx]->lektor))
{
@@ -2395,8 +2412,8 @@ class wochenplan extends basis_db
$end_time=$row->ende;
}
}
//Wenn im selben Raum mehrere Lektoren sind bzw mehrere Gruppen
//dann werden diese zusammengruppiert und als ein Eintrag angezeigt
for($idx1=0;$idx1<count($this->std_plan[$i][$j]);$idx1++)
@@ -2409,21 +2426,21 @@ class wochenplan extends basis_db
$gruppiert[$this->std_plan[$i][$j][$idx]->unr]++;
else
$gruppiert[$this->std_plan[$i][$j][$idx]->unr]=1;
//Bezeichnungen zusammenfuehren
//Lektoren
if(!mb_strstr($this->std_plan[$i][$j][$idx1]->lektor,$this->std_plan[$i][$j][$idx]->lektor))
{
$this->std_plan[$i][$j][$idx]->lektor.=' / '.$this->std_plan[$i][$j][$idx1]->lektor;
}
//Ort
if(!mb_strstr($this->std_plan[$i][$j][$idx1]->ort,$this->std_plan[$i][$j][$idx]->ort))
{
$this->std_plan[$i][$j][$idx]->ort.=' / '.$this->std_plan[$i][$j][$idx1]->ort;
}
//Gruppen
if(isset($lehrverband[$idx]) && isset($lehrverband[$idx1]))
{
@@ -2433,13 +2450,13 @@ class wochenplan extends basis_db
}
}
}
//Geblockte Eintraege werden uebersprungen nachdem die Gruppierung ermittelt wurde
if($blockcontinue)
{
continue;
}
$start_date=date("d.m.Y",$this->datum);
$end_date=$start_date;
if(isset($lehrverband[$idx]))
@@ -2457,12 +2474,12 @@ class wochenplan extends basis_db
$sta = explode(":",$start_time); //sta start time array
$eda = explode(".",$end_date); //eda end date array
$eta = explode(":",$end_time); //eta end time array
//Die Zeitzone muss angegeben werden, da sonst der Google Kalender die Endzeiten nicht richtig erkennt
//Die Zeitzone muss angegeben werden, da sonst der Google Kalender die Endzeiten nicht richtig erkennt
// diese wird in stpl_kalender global definiert und bei den Start und Ende Zeiten mitangegeben
$start_date_time_ical = $sda[2].$sda[1].$sda[0].'T'.sprintf('%02s',($sta[0])).$sta[1].$sta[2]; //neu gruppieren der Startzeit und des Startdatums
$end_date_time_ical = $eda[2].$eda[1].$eda[0].'T'.sprintf('%02s',($eta[0])).$eta[1].$eta[2]; //neu gruppieren der Startzeit und des Startdatums
echo $this->crlf.'BEGIN:VEVENT'.$this->crlf
.'UID:'.'FH'.str_replace(',',' ',$lvb.$this->std_plan[$i][$j][$idx]->ort.$this->std_plan[$i][$j][$idx]->lektor.$lehrfach[$idx].$start_date_time_ical.$this->crlf)
.'SUMMARY:'.str_replace(',',' ',$lehrfach[$idx].' '.$this->std_plan[$i][$j][$idx]->ort.' - '.$lvb.$this->crlf)
@@ -2479,19 +2496,19 @@ class wochenplan extends basis_db
$sta = explode(":",$start_time); //sta start time array
$eda = explode(".",$end_date); //eda end date array
$eta = explode(":",$end_time); //eta end time array
$start_date_time_ical = $sda[2].$sda[1].$sda[0].'T'.sprintf('%02s',($sta[0])).$sta[1].$sta[2]; //neu gruppieren der Startzeit und des Startdatums
$end_date_time_ical = $eda[2].$eda[1].$eda[0].'T'.sprintf('%02s',($eta[0])).$eta[1].$eta[2]; //neu gruppieren der Startzeit und des Startdatums
// Zeit in UTC umwandeln
$date = new DateTime($start_date_time_ical, new DateTimeZone('Europe/Vienna'));
$date->setTimezone(new DateTimeZone('UTC'));
$start_date_time_ical = $date->format('Ymd\THis').'Z';
$date = new DateTime($end_date_time_ical, new DateTimeZone('Europe/Vienna'));
$date->setTimezone(new DateTimeZone('UTC'));
$end_date_time_ical = $date->format('Ymd\THis').'Z';
echo $this->crlf,'FREEBUSY: ',$start_date_time_ical,'/',$end_date_time_ical;
}
elseif ($target=='return')
@@ -2500,8 +2517,8 @@ class wochenplan extends basis_db
$sta = explode(":",$start_time); //sta start time array
$eda = explode(".",$end_date); //eda end date array
$eta = explode(":",$end_time); //eta end time array
//Die Zeitzone muss angegeben werden, da sonst der Google Kalender die Endzeiten nicht richtig erkennt
//Die Zeitzone muss angegeben werden, da sonst der Google Kalender die Endzeiten nicht richtig erkennt
// diese wird in stpl_kalender global definiert und bei den Start und Ende Zeiten mitangegeben
$start_date_time_ical = $sda[2].$sda[1].$sda[0].'T'.sprintf('%02s',($sta[0])).$sta[1].$sta[2]; //neu gruppieren der Startzeit und des Startdatums
$end_date_time_ical = $eda[2].$eda[1].$eda[0].'T'.sprintf('%02s',($eta[0])).$eta[1].$eta[2]; //neu gruppieren der Startzeit und des Startdatums
@@ -2513,7 +2530,7 @@ class wochenplan extends basis_db
$UID = str_replace(',',' ',$UID);
$Summary = str_replace(',',' ',$Summary);
$description = str_replace(',',' ',$description);
$return[]=array('UID'=>$UID,
'unr'=>$unr,
'Summary'=>$Summary,
@@ -2554,7 +2571,7 @@ class wochenplan extends basis_db
* Prueft, ob Eintraege fuer den Export zusammengruppiert werden koennen zu einer Stunde
* Dies ist der Fall, wenn mehrere Lektoren in einem Raum unterrichten, ein Lektor mehrere
* Raeume parallel beaufsichtigt oder mehrere Gruppen in einem Raum sind
*
*
* @param $tag Tag des Unterrichts
* @param $stunde Stunde des Unterrichts
* @param $idx Index des ersten Eintrages
@@ -2562,7 +2579,7 @@ class wochenplan extends basis_db
*/
protected function kannGruppieren($tag, $stunde, $idx, $idx1)
{
if(isset($this->std_plan[$tag][$stunde][$idx]) &&
if(isset($this->std_plan[$tag][$stunde][$idx]) &&
isset($this->std_plan[$tag][$stunde][$idx1]))
{
$unr1 = $this->std_plan[$tag][$stunde][$idx]->unr;
@@ -2572,7 +2589,7 @@ class wochenplan extends basis_db
$lektor1 = $this->std_plan[$tag][$stunde][$idx]->lektor;
$lektor2 = $this->std_plan[$tag][$stunde][$idx1]->lektor;
if($unr1==$unr2 && ($ort1==$ort2 || $lektor1==$lektor2)
if($unr1==$unr2 && ($ort1==$ort2 || $lektor1==$lektor2)
&& !$this->std_plan[$tag][$stunde][$idx]->reservierung && !$this->std_plan[$tag][$stunde][$idx1]->reservierung)
return true;
else
@@ -2580,13 +2597,13 @@ class wochenplan extends basis_db
}
else
return false;
}
}
protected function searchForId($id, $array)
protected function searchForId($id, $array)
{
foreach ($array as $key => $val)
foreach ($array as $key => $val)
{
if ($val['unr'] == $id)
if ($val['unr'] == $id)
{
return $key;
}
@@ -2600,13 +2617,13 @@ class wochenplan extends basis_db
*/
protected function jahreskalenderjump_hoverbox($link)
{
$sprache = getSprache();
$p=new phrasen($sprache);
$sprache = getSprache();
$p=new phrasen($sprache);
$crlf=crlf();
$datum=time();
$woche=kalenderwoche($datum);
$wochenmontag=montag($datum);
echo '<table align="center"><tr valign="top"><td>
<div class="hoverbox">
<div class="preview">
+95 -81
View File
@@ -23,166 +23,180 @@ require_once(dirname(__FILE__).'/basis_db.class.php');
class zgv extends basis_db
{
public $zgv_code;
public $zgv_bez;
public $zgv_kurzbz;
public $zgvmas_code;
public $zgvmas_bez;
public $zgvmas_kurzbz;
public $zgvdoktor_code;
public $zgvdoktor_bez;
public $zgvdoktor_kurzbz;
public $result = array();
public $zgv_code;
public $zgv_bez;
public $zgv_kurzbz;
public $zgvmas_code;
public $zgvmas_bez;
public $zgvmas_kurzbz;
public $zgvdoktor_code;
public $zgvdoktor_bez;
public $zgvdoktor_kurzbz;
public $bezeichnung;
public $result = array();
public function __construct($zgv_code=null)
{
parent::__construct();
if($zgv_code!=null)
$this->load($zgv_code);
}
/**
* Lädt eine zgv von tbl_zgv
* @param $zgv_code
* @return boolean
* @return boolean
*/
public function load($zgv_code)
{
$qry = 'SELECT * FROM bis.tbl_zgv WHERE zgv_code = '.$this->db_add_param($zgv_code, FHC_INTEGER).';';
$sprache = new sprache();
$qry = 'SELECT *,'.$sprache->getSprachQuery('bezeichnung').' FROM bis.tbl_zgv WHERE zgv_code = '.$this->db_add_param($zgv_code, FHC_INTEGER).';';
if($result = $this->db_query($qry))
{
if($row = $this->db_fetch_object($result))
{
$this->zgv_code = $row->zgv_code;
$this->zgv_bez = $row->zgv_bez;
$this->zgv_kurzbz = $row->zgv_kurzbz;
$this->zgv_code = $row->zgv_code;
$this->zgv_bez = $row->zgv_bez;
$this->zgv_kurzbz = $row->zgv_kurzbz;
$this->bezeichnung=$sprache->parseSprachResult('bezeichnung',$row);
}
return true;
return true;
}
else
{
$this->errormsg = "Fehler bei der Abfrage aufgetreten";
return false;
$this->errormsg = "Fehler bei der Abfrage aufgetreten";
return false;
}
}
/**
* Lädt eine Master-ZGV von tbl_zgvmaster
* @param $zgvmas_code
* @return boolean
* @return boolean
*/
public function load_mas($zgvmas_code)
{
$qry = 'SELECT * FROM bis.tbl_zgvmaster WHERE zgvmas_code = '.$this->db_add_param($zgvmas_code, FHC_INTEGER).';';
$sprache = new sprache();
$qry = 'SELECT *,'.$sprache->getSprachQuery('bezeichnung').' FROM bis.tbl_zgvmaster WHERE zgvmas_code = '.$this->db_add_param($zgvmas_code, FHC_INTEGER).';';
if($result = $this->db_query($qry))
{
if($row = $this->db_fetch_object($result))
{
$this->zgvmas_code = $row->zgvmas_code;
$this->zgvmas_bez = $row->zgvmas_bez;
$this->zgvmas_kurzbz = $row->zgvmas_kurzbz;
$this->zgvmas_code = $row->zgvmas_code;
$this->zgvmas_bez = $row->zgvmas_bez;
$this->zgvmas_kurzbz = $row->zgvmas_kurzbz;
$this->bezeichnung=$sprache->parseSprachResult('bezeichnung',$row);
}
return true;
return true;
}
else
{
$this->errormsg = "Fehler bei der Abfrage aufgetreten";
return false;
$this->errormsg = "Fehler bei der Abfrage aufgetreten";
return false;
}
}
/**
* lädt alle ZGVs von tbl_zgv
* @return boolean
* @return boolean
*/
public function getAll()
{
$qry ='SELECT * FROM bis.tbl_zgv;';
$sprache = new sprache();
$qry ='SELECT *,'.$sprache->getSprachQuery('bezeichnung').' FROM bis.tbl_zgv;';
if($result = $this->db_query($qry))
{
while($row = $this->db_fetch_object($result))
{
$zgv = new zgv();
$zgv->zgv_code = $row->zgv_code;
$zgv->zgv_bez = $row->zgv_bez;
$zgv->zgv_kurzbz = $row->zgv_kurzbz;
$this->result[] = $zgv;
$zgv = new zgv();
$zgv->zgv_code = $row->zgv_code;
$zgv->zgv_bez = $row->zgv_bez;
$zgv->zgv_kurzbz = $row->zgv_kurzbz;
$zgv->bezeichnung=$sprache->parseSprachResult('bezeichnung',$row);
$this->result[] = $zgv;
}
return true;
return true;
}
else
{
$this->errormsg = 'Fehler bei der Abfrage aufgetreten';
return false;
$this->errormsg = 'Fehler bei der Abfrage aufgetreten';
return false;
}
}
/**
* Lädt alle Master ZGVs von tbl_zgvmaster
* @return boolean
* @return boolean
*/
public function getAllMaster()
{
$qry = 'SELECT * FROM bis.tbl_zgvmaster;';
$sprache = new sprache();
$qry = 'SELECT *,'.$sprache->getSprachQuery('bezeichnung').' FROM bis.tbl_zgvmaster;';
if($result = $this->db_query($qry))
{
while($row = $this->db_fetch_object($result))
{
$zgv_master = new zgv();
$zgv_master->zgvmas_code = $row->zgvmas_code;
$zgv_master->zgvmas_bez = $row->zgvmas_bez;
$zgv_master->zgvmas_kurzbz = $row->zgvmas_kurzbz;
$this->result[] = $zgv_master;
$zgv_master = new zgv();
$zgv_master->zgvmas_code = $row->zgvmas_code;
$zgv_master->zgvmas_bez = $row->zgvmas_bez;
$zgv_master->zgvmas_kurzbz = $row->zgvmas_kurzbz;
$zgv_master->bezeichnung=$sprache->parseSprachResult('bezeichnung',$row);
$this->result[] = $zgv_master;
}
return true;
return true;
}
else
else
{
$this->errormsg = 'Fehler bei der Abfrage aufgetreten';
return false;
$this->errormsg = 'Fehler bei der Abfrage aufgetreten';
return false;
}
}
/**
* Lädt alle Doktor ZGVs von tbl_zgvdoktor
* @return boolean
*/
public function getAllDoktor()
{
$qry="SELECT * FROM bis.tbl_zgvdoktor;";
$sprache = new sprache();
$qry='SELECT *,'.$sprache->getSprachQuery('bezeichnung').' FROM bis.tbl_zgvdoktor;';
if($result = $this->db_query($qry))
{
while($row= $this->db_fetch_object($result))
{
$zgv_doktor = new zgv();
$zgv_doktor = new zgv();
$zgv_doktor->zgvdoktor_code = $row->zgvdoktor_code;
$zgv_doktor->zgvdoktor_bez = $row->zgvdoktor_bez;
$zgv_doktor->zgvdoktor_kurzbz = $row->zgvdoktor_kurzbz;
$this->result[] = $zgv_doktor;
$zgv_doktor->zgvdoktor_bez = $row->zgvdoktor_bez;
$zgv_doktor->zgvdoktor_kurzbz = $row->zgvdoktor_kurzbz;
$zgv_doktor->bezeichnung=$sprache->parseSprachResult('bezeichnung',$row);
$this->result[] = $zgv_doktor;
}
}
else
{
$this->erromsg = "Fehler bei der Abfrage aufgetreten";
return false;
$this->erromsg = "Fehler bei der Abfrage aufgetreten";
return false;
}
}
}
?>
+9 -8
View File
@@ -35,12 +35,12 @@ require_once('../include/datum.class.php');
if(isset($_GET['uid']))
$uid = $_GET['uid'];
else
else
$uid = '';
if(isset($_GET['bisverwendung_id']) && is_numeric($_GET['bisverwendung_id']))
$bisverwendung_id = $_GET['bisverwendung_id'];
else
else
$bisverwendung_id = '';
$datum = new datum();
@@ -68,10 +68,10 @@ elseif($bisverwendung_id!='')
{
if($verwendung_obj->load($bisverwendung_id))
draw_row($verwendung_obj);
else
else
die($verwendung_obj->errormsg);
}
else
else
die('Falsche Parameteruebergabe');
@@ -79,12 +79,12 @@ else
function draw_row($row)
{
global $rdf_url, $datum;
if(is_bool($row->hauptberuflich))
$hauptberuflich = $row->hauptberuflich?'Ja':'Nein';
else
else
$hauptberuflich = '';
echo '
<RDF:li>
<RDF:Description id="'.$row->bisverwendung_id.'" about="'.$rdf_url.'/'.$row->bisverwendung_id.'" >
@@ -98,7 +98,7 @@ function draw_row($row)
<VERWENDUNG:hauptberuflich><![CDATA['.$hauptberuflich.']]></VERWENDUNG:hauptberuflich>
<VERWENDUNG:habilitation><![CDATA['.($row->habilitation?'Ja':'Nein').']]></VERWENDUNG:habilitation>
<VERWENDUNG:beginn><![CDATA['.$datum->convertISODate($row->beginn).']]></VERWENDUNG:beginn>
<VERWENDUNG:beginn_iso><![CDATA['.$row->beginn.']]></VERWENDUNG:beginn_iso>
<VERWENDUNG:beginn_iso><![CDATA['.$row->beginn.']]></VERWENDUNG:beginn_iso>
<VERWENDUNG:ende><![CDATA['.$datum->convertISODate($row->ende).']]></VERWENDUNG:ende>
<VERWENDUNG:ende_iso><![CDATA['.$row->ende.']]></VERWENDUNG:ende_iso>
<VERWENDUNG:ba1bez><![CDATA['.$row->ba1bez.']]></VERWENDUNG:ba1bez>
@@ -112,6 +112,7 @@ function draw_row($row)
<VERWENDUNG:insertamum><![CDATA['.$row->insertamum.']]></VERWENDUNG:insertamum>
<VERWENDUNG:insertvon><![CDATA['.$row->insertvon.']]></VERWENDUNG:insertvon>
<VERWENDUNG:dv_art><![CDATA['.$row->dv_art.']]></VERWENDUNG:dv_art>
<VERWENDUNG:inkludierte_lehre><![CDATA['.$row->inkludierte_lehre.']]></VERWENDUNG:inkludierte_lehre>
</RDF:Description>
</RDF:li>
';
+13 -1
View File
@@ -71,6 +71,17 @@ foreach ($DAO_obj->lehreinheitmitarbeiter as $row)
$nachname = $row_lkt->nachname;
}
}
$qry_verplant = "SELECT 1 FROM lehre.tbl_stundenplandev
WHERE lehreinheit_id=".$db->db_add_param($row->lehreinheit_id)."
AND mitarbeiter_uid=".$db->db_add_param($row->mitarbeiter_uid);
if($result_verplant = $db->db_query($qry_verplant))
if($db->db_num_rows($result_verplant)>0)
$verplant = true;
else
$verplant = false;
?>
<RDF:li>
<RDF:Description id="<?php echo $row->lehreinheit_id.'/'.$row->mitarbeiter_uid; ?>" about="<?php echo $rdf_url.'/'.$row->lehreinheit_id.'/'.$row->mitarbeiter_uid; ?>" >
@@ -85,6 +96,7 @@ foreach ($DAO_obj->lehreinheitmitarbeiter as $row)
<LEHREINHEITMITARBEITER:faktor><![CDATA[<?php echo $row->faktor ?>]]></LEHREINHEITMITARBEITER:faktor>
<LEHREINHEITMITARBEITER:anmerkung><![CDATA[<?php echo $row->anmerkung ?>]]></LEHREINHEITMITARBEITER:anmerkung>
<LEHREINHEITMITARBEITER:bismelden><![CDATA[<?php echo ($row->bismelden?'Ja':'Nein') ?>]]></LEHREINHEITMITARBEITER:bismelden>
<LEHREINHEITMITARBEITER:verplant><![CDATA[<?php echo ($verplant?'true':'false'); ?>]]></LEHREINHEITMITARBEITER:verplant>
</RDF:Description>
</RDF:li>
<?php
@@ -92,4 +104,4 @@ foreach ($DAO_obj->lehreinheitmitarbeiter as $row)
?>
</RDF:Seq>
</RDF:RDF>
</RDF:RDF>
+2 -1
View File
@@ -35,8 +35,9 @@ require_once('../config/vilesci.config.inc.php');
require_once('../include/studiensemester.class.php');
// studiensemester holen
isset($_GET['order']) ? $order = $_GET['order'] : $order = null;
$studiensemesterDAO=new studiensemester();
$studiensemesterDAO->getAll();
$studiensemesterDAO->getAll($order);
$rdf_url='http://www.technikum-wien.at/studiensemester';
+5 -4
View File
@@ -53,13 +53,13 @@ grid.lvaStundenplan button
tree treecol {
background-color: #FFFFCC;
border: 1px solid black;
background-color: #FFFFCC;
border: 1px solid black;
}
tree {
font-size:9pt;
font-family:Arial;
font-family:Arial;
}
box.studentDetail {
@@ -120,7 +120,7 @@ treechildren::-moz-tree-row(lehrveranstaltung_, selected)
}
treechildren::-moz-tree-checkbox
treechildren::-moz-tree-checkbox
{
/* unchecked checkbox treecells. This style MUST come before treechildren::-moz-tree-checkbox(checked) otherwise it won't take effect. */
list-style-image: url("../skin/images/round.png");
@@ -161,6 +161,7 @@ toolbarbutton.stplweekoverlay-toolbarbutton:hover
{
color: #AAAAAA;
visibility:hidden;
font-size: small;
}
treechildren::-moz-tree-row(makeItred)
+25 -25
View File
@@ -57,10 +57,10 @@ switch($method)
$data['errormsg']=$studienordnung->errormsg;
}
break;
case 'copyStudienordnung':
$studienordnung_id=$_REQUEST['studienordnung_id'];
$studienordnung = new studienordnung();
case 'copyStudienordnung':
$studienordnung_id=$_REQUEST['studienordnung_id'];
$studienordnung = new studienordnung();
if($studienordnung->loadStudienordnung($studienordnung_id))
{
// Studienordnung anlegen
@@ -150,28 +150,28 @@ switch($method)
}
}
// Alle neuen LVRegeln nochmals durchlaufen und die parents korrekt setzen
foreach($lvregel_ID_Array as $lvregel_id)
{
$lvregel_obj = new lvregel();
if($lvregel_obj->load($lvregel_id))
// Alle neuen LVRegeln nochmals durchlaufen und die parents korrekt setzen
foreach($lvregel_ID_Array as $lvregel_id)
{
$lvregel_obj = new lvregel();
if($lvregel_obj->load($lvregel_id))
{
if($lvregel_obj->lvregel_id_parent!='')
{
$lvregel_obj->lvregel_id_parent = $lvregel_ID_Array[$lvregel_obj->lvregel_id_parent];
{
$lvregel_obj->lvregel_id_parent = $lvregel_ID_Array[$lvregel_obj->lvregel_id_parent];
$lvregel_obj->save();
}
}
}
}
}
}
// tbl_studienordnung_semester: wird nicht kopiert da es sonst dazu kommen kann, dass mehrere aktive Studienordnungen vorhanden sind
$data['error']='false';
// tbl_studienordnung_semester: wird nicht kopiert da es sonst dazu kommen kann, dass mehrere aktive Studienordnungen vorhanden sind
$data['error']='false';
$data['errormsg']='';
}
else
{
$data['error']='true';
$data['errormsg']=$studienplan->errormsg;
else
{
$data['error']='true';
$data['errormsg']=$studienplan->errormsg;
}
}
else
@@ -179,12 +179,12 @@ switch($method)
$data['error']='true';
$data['errormsg']=$studienordnung->errormsg;
}
}
else
{
$data['error']='true';
$data['errormsg']=$studienordnung->errormsg;
}
}
else
{
$data['error']='true';
$data['errormsg']=$studienordnung->errormsg;
}
break;
default:
break;
+1 -1
View File
@@ -14,7 +14,7 @@ $uid = get_uid();
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($uid);
if(!$rechte->isBerechtigt('lehre/studienordnung'))
if((!$rechte->isBerechtigt('lehre/studienordnung')) && (!$rechte->isBerechtigt('lehre/studienordnungInaktiv')))
die('Sie haben keine Berechtigung für diese Seite');
$method = isset($_REQUEST['method'])?$_REQUEST['method']:'';
+78 -5
View File
@@ -3477,6 +3477,77 @@ if($result = $db->db_query("SELECT 1 FROM public.tbl_funktion WHERE funktion_kur
}
}
// BIS-Verwendung
if(!@$db->db_query("SELECT inkludierte_lehre FROM bis.tbl_bisverwendung LIMIT 1"))
{
$qry = "ALTER TABLE bis.tbl_bisverwendung ADD COLUMN inkludierte_lehre smallint;";
if(!$db->db_query($qry))
echo '<strong>BIS-Verwendung: '.$db->db_last_error().'</strong><br>';
else
echo '<br>BIS-Verwendung inkludierte_lehre hinzugefuegt';
}
// Eigene Berechtigung fuer Bearbeitung inaktiver Studienordnungen
if($result = @$db->db_query("SELECT 1 FROM system.tbl_berechtigung WHERE berechtigung_kurzbz='lehre/lehrveranstaltungAnlegen' LIMIT 1"))
{
if($db->db_num_rows($result)==0)
{
$qry = "
INSERT INTO system.tbl_berechtigung(berechtigung_kurzbz, beschreibung) VALUES('lehre/lehrveranstaltungAnlegen','Recht zur Anlage von Lehrveranstaltungen');
INSERT INTO system.tbl_rolleberechtigung(berechtigung_kurzbz, rolle_kurzbz, art) VALUES('lehre/lehrveranstaltungAnlegen','assistenz','suid');
";
if(!$db->db_query($qry))
echo '<strong>system.tbl_berechtigung '.$db->db_last_error().'</strong><br>';
else
echo ' system.tbl_berechtigung: Eigene Berechtigung lehre/lehrveranstalgungAnlegen Anlage von Lehrveranstaltungen hinzugefuegt!<br>';
}
}
// Mehrsprachigkeit fuer ZGV
if(!@$db->db_query("SELECT bezeichnung FROM bis.tbl_zgv LIMIT 1"))
{
$qry = "
ALTER TABLE bis.tbl_zgv ADD COLUMN bezeichnung varchar(64)[];
ALTER TABLE bis.tbl_zgvmaster ADD COLUMN bezeichnung varchar(64)[];
ALTER TABLE bis.tbl_zgvdoktor ADD COLUMN bezeichnung varchar(64)[];
UPDATE bis.tbl_zgv SET bezeichnung[1]=zgv_bez;
UPDATE bis.tbl_zgv SET bezeichnung[2]=zgv_bez;
UPDATE bis.tbl_zgvmaster SET bezeichnung[1]=zgvmas_bez;
UPDATE bis.tbl_zgvmaster SET bezeichnung[2]=zgvmas_bez;
UPDATE bis.tbl_zgvdoktor SET bezeichnung[1]=zgvdoktor_bez;
UPDATE bis.tbl_zgvdoktor SET bezeichnung[2]=zgvdoktor_bez;
";
if(!$db->db_query($qry))
echo '<strong>bis.tbl_zgv '.$db->db_last_error().'</strong><br>';
else
echo ' Mehrsprachige Bezeichnung für ZGV, Master ZGV und Doktor ZGV hinzugefügt<br>';
}
// Eigene Berechtigung fuer Anlage neuer Lehrveranstaltung
if($result = @$db->db_query("SELECT 1 FROM system.tbl_berechtigung WHERE berechtigung_kurzbz='lehre/studienordnungInaktiv' LIMIT 1"))
{
if($db->db_num_rows($result)==0)
{
$qry = "
INSERT INTO system.tbl_berechtigung(berechtigung_kurzbz, beschreibung) VALUES('lehre/studienordnungInaktiv','Recht zur Bearbeitung inaktiver Studienordnungen');
INSERT INTO system.tbl_rolleberechtigung(berechtigung_kurzbz, rolle_kurzbz, art) VALUES('lehre/studienordnungInaktiv','assistenz','suid');
";
if(!$db->db_query($qry))
echo '<strong>system.tbl_berechtigung '.$db->db_last_error().'</strong><br>';
else
echo ' system.tbl_berechtigung: Eigene Berechtigung lehre/studienordnungInaktiv zur Bearbeitung von inaktiven Studienordnungen hinzugefuegt!<br>';
}
}
echo '<br><br><br>';
$tabellen=array(
@@ -3489,7 +3560,7 @@ $tabellen=array(
"bis.tbl_besqual" => array("besqualcode","besqualbez"),
"bis.tbl_bisfunktion" => array("bisverwendung_id","studiengang_kz","sws","updateamum","updatevon","insertamum","insertvon","ext_id"),
"bis.tbl_bisio" => array("bisio_id","mobilitaetsprogramm_code","nation_code","von","bis","zweck_code","student_uid","updateamum","updatevon","insertamum","insertvon","ext_id","ort","universitaet","lehreinheit_id"),
"bis.tbl_bisverwendung" => array("bisverwendung_id","ba1code","ba2code","vertragsstunden","beschausmasscode","verwendung_code","mitarbeiter_uid","hauptberufcode","hauptberuflich","habilitation","beginn","ende","updateamum","updatevon","insertamum","insertvon","ext_id","dv_art"),
"bis.tbl_bisverwendung" => array("bisverwendung_id","ba1code","ba2code","vertragsstunden","beschausmasscode","verwendung_code","mitarbeiter_uid","hauptberufcode","hauptberuflich","habilitation","beginn","ende","updateamum","updatevon","insertamum","insertvon","ext_id","dv_art","inkludierte_lehre"),
"bis.tbl_bundesland" => array("bundesland_code","kurzbz","bezeichnung"),
"bis.tbl_entwicklungsteam" => array("mitarbeiter_uid","studiengang_kz","besqualcode","beginn","ende","updateamum","updatevon","insertamum","insertvon","ext_id"),
"bis.tbl_gemeinde" => array("gemeinde_id","plz","name","ortschaftskennziffer","ortschaftsname","bulacode","bulabez","kennziffer"),
@@ -3499,10 +3570,10 @@ $tabellen=array(
"bis.tbl_nation" => array("nation_code","entwicklungsstand","eu","ewr","kontinent","kurztext","langtext","engltext","sperre"),
"bis.tbl_orgform" => array("orgform_kurzbz","code","bezeichnung","rolle"),
"bis.tbl_verwendung" => array("verwendung_code","verwendungbez"),
"bis.tbl_zgv" => array("zgv_code","zgv_bez","zgv_kurzbz"),
"bis.tbl_zgvmaster" => array("zgvmas_code","zgvmas_bez","zgvmas_kurzbz"),
"bis.tbl_zgv" => array("zgv_code","zgv_bez","zgv_kurzbz","bezeichnung"),
"bis.tbl_zgvmaster" => array("zgvmas_code","zgvmas_bez","zgvmas_kurzbz","bezeichnung"),
"bis.tbl_zgvdoktor" => array("zgvdoktor_code", "zgvdoktor_bez", "zgvdoktor_kurzbz","bezeichnung"),
"bis.tbl_zweck" => array("zweck_code","kurzbz","bezeichnung"),
"bis.tbl_zgvdoktor" => array("zgvdoktor_code", "zgvdoktor_bez", "zgvdoktor_kurzbz"),
"campus.tbl_abgabe" => array("abgabe_id","abgabedatei","abgabezeit","anmerkung"),
"campus.tbl_anwesenheit" => array("anwesenheit_id","uid","einheiten","datum","anwesend","lehreinheit_id","anmerkung","ext_id"),
"campus.tbl_beispiel" => array("beispiel_id","uebung_id","nummer","bezeichnung","punkte","updateamum","updatevon","insertamum","insertvon"),
@@ -3857,9 +3928,11 @@ $berechtigungen = array(
array('lehre/reservierung','erweiterte Reservierung inkl. Lektorauswahl, Stg, Sem und Gruppe'),
array('lehre/reservierung:begrenzt','normale Raumreservierung im CIS'),
array('lehre/studienordnung','Studienordnung'),
array('lehre/studienordnungInaktiv','Studienordnung Inaktiv'),
array('lehre/vorrueckung','Lehreinheitenvorrückung'),
array('lv-plan','Stundenplan'),
array('lv-plan/gruppenentfernen','Erlaut das Entfernen von Gruppen aus LVPlan vom FAS aus'),
array('lv-plan/lektorentfernen','Erlaut das Entfernen von Lektoren aus LVPlan vom FAS aus'),
array('mitarbeiter','FAS Mitarbeitermodul'),
array('mitarbeiter/bankdaten','Bankdaten für Mitarbeiter und Studierende anzeigen'),
array('mitarbeiter/personalnummer','Editieren der Personalnummer im FAS'),
@@ -3974,7 +4047,7 @@ foreach($berechtigungen as $row)
}
if($neue==false)
echo '<br>Keine neuen Berechtigungen';
// ******** Pruefen ob die Webservice Berechtigungen alle gesetzt sind **********
echo '<h2>Webservice Berechtigungen pruefen</h2>';
+135
View File
@@ -0,0 +1,135 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" indent="yes" />
<xsl:template match="abschlusspruefung">
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
<fo:layout-master-set>
<fo:simple-page-master page-height="297mm" page-width="210mm" margin="5mm 25mm 5mm 25mm" master-name="PageMaster">
<fo:region-body margin="20mm 0mm 20mm 0mm" />
</fo:simple-page-master>
</fo:layout-master-set>
<xsl:apply-templates select="pruefung" />
</fo:root>
</xsl:template>
<xsl:template match="pruefung">
<fo:page-sequence master-reference="PageMaster">
<fo:flow flow-name="xsl-region-body">
<fo:block-container position="absolute" top="64mm" left="16mm" height="20mm">
<fo:block text-align="center" line-height="30pt" font-family="arial" font-size="28pt">
<xsl:text>Diploma</xsl:text>
</fo:block>
</fo:block-container>
<fo:block-container position="absolute" top="91mm" left="16mm" height="20mm">
<fo:block text-align="center" line-height="14pt" font-family="arial" font-size="10pt">
<xsl:text>Pursuant to paragraph 6 subsection 1 of the Universities of Applied Sciences Studies Act\n
(Austrian legal reference: Fachhochschul-Studiengesetz - FHStG, BGBl. Nr. </xsl:text>
<xsl:value-of select="bescheidbgbl1" />
<xsl:text> idgF)\n
the University of Applied Sciences Council (Fachhochschulkollegium) awards
</xsl:text>
</fo:block>
</fo:block-container>
<fo:block-container position="absolute" top="112mm" left="16mm" height="10mm">
<fo:block text-align="center" line-height="16pt" font-family="arial" font-size="16pt">
<xsl:value-of select="anrede_engl" />
<xsl:text> </xsl:text>
<xsl:value-of select="titelpre" />
<xsl:text> </xsl:text>
<xsl:value-of select="vorname" />
<xsl:text> </xsl:text>
<xsl:value-of select="vornamen" />
<xsl:text> </xsl:text>
<xsl:value-of select="nachname" />
<xsl:if test="string-length(titelpost)!=0">
<xsl:text>, </xsl:text>
<xsl:value-of select="titelpost" />
</xsl:if>
</fo:block>
</fo:block-container>
<fo:block-container position="absolute" top="124mm" left="16mm" height="10mm">
<fo:block text-align="center" line-height="14pt" font-family="arial" font-size="10pt">
<xsl:text>born </xsl:text>
<xsl:value-of select="gebdatum" />
<xsl:text> in </xsl:text>
<xsl:if test="string-length(gebort)!=0">
<xsl:value-of select="gebort" />
<xsl:text>, </xsl:text>
</xsl:if>
<xsl:value-of select="geburtsnation_engl" />
<xsl:text>, citizen of </xsl:text>
<xsl:value-of select="staatsbuergerschaft_engl" />
<xsl:text>,\n
student of the university of applied sciences </xsl:text>
<xsl:value-of select="stg_art_engl" />
<xsl:text>'s degree program</xsl:text>
</fo:block>
</fo:block-container>
<fo:block-container position="absolute" top="139mm" left="16mm" height="10mm">
<fo:block text-align="center" line-height="20pt" font-family="arial" font-size="16pt">
<xsl:value-of select="stg_bezeichnung_engl" />
</fo:block>
<fo:block text-align="center" line-height="10pt" font-family="arial" font-size="10pt" padding-top="8pt">
<xsl:text>(program classification number </xsl:text>
<xsl:value-of select="studiengang_kz" />
<xsl:text>)</xsl:text>
</fo:block>
</fo:block-container>
<fo:block-container position="absolute" top="158mm" left="16mm" height="10mm">
<fo:block text-align="center" line-height="14pt" font-family="arial" font-size="10pt">
<xsl:text>after successfully passing the diploma examination on </xsl:text>
<xsl:value-of select="datum" />
<xsl:text>\n
at the University of Applied Sciences Technikum Wien (Fachhochschule Technikum Wien)\n
in accordance with the directive of the Agency for Quality Assurance and Accreditation Austria dated 9.5.2012\n
the academic degree</xsl:text>
</fo:block>
</fo:block-container>
<fo:block-container position="absolute" top="188mm" left="16mm" height="30mm">
<fo:block text-align="center" line-height="16pt" font-family="arial" font-size="16pt">
<xsl:value-of select="titel" />
</fo:block>
<fo:block text-align="center" line-height="10pt" font-family="arial" font-size="10pt" padding-top="8pt">
<xsl:text>abbreviated</xsl:text>
</fo:block>
<fo:block text-align="center" line-height="16pt" font-family="arial" font-size="16pt" padding-top="13pt">
<xsl:value-of select="akadgrad_kurzbz" />
</fo:block>
</fo:block-container>
<fo:block-container position="absolute" top="217mm" left="16mm" height="10mm">
<fo:block text-align="center" line-height="10pt" font-family="arial" font-size="10pt">
<xsl:text>Vienna, </xsl:text>
<xsl:value-of select="sponsion" />
</fo:block>
</fo:block-container>
<fo:block-container position="absolute" top="227mm" left="16mm" height="10mm">
<fo:block text-align="center" line-height="11pt" font-family="arial" font-size="10pt">
<xsl:text>On behalf of the University of Applied Sciences Council:\n
The Rector</xsl:text>
</fo:block>
</fo:block-container>
<fo:block-container position="absolute" top="255mm" left="16mm" height="10mm">
<fo:block text-align="center" line-height="10pt" font-family="arial" font-size="10pt">
<xsl:value-of select="rektor" />
</fo:block>
</fo:block-container>
</fo:flow>
</fo:page-sequence>
</xsl:template>
</xsl:stylesheet>
+496
View File
@@ -0,0 +1,496 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
>
<xsl:output method="xml" version="1.0" indent="yes"/>
<xsl:template match="studenten">
<office:document-content xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:rpt="http://openoffice.org/2005/report" xmlns:of="urn:oasis:names:tc:opendocument:xmlns:of:1.2" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:grddl="http://www.w3.org/2003/g/data-view#" xmlns:officeooo="http://openoffice.org/2009/office" xmlns:tableooo="http://openoffice.org/2009/table" xmlns:drawooo="http://openoffice.org/2010/draw" xmlns:calcext="urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0" xmlns:loext="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0" xmlns:field="urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0" xmlns:formx="urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0" xmlns:css3t="http://www.w3.org/TR/css3-text/" office:version="1.2">
<office:scripts/>
<office:font-face-decls>
<style:font-face style:name="Mangal2" svg:font-family="Mangal"/>
<style:font-face style:name="Mangal" svg:font-family="Mangal" style:font-family-generic="roman"/>
<style:font-face style:name="Liberation Serif" svg:font-family="&apos;Liberation Serif&apos;" style:font-family-generic="roman" style:font-pitch="variable"/>
<style:font-face style:name="Arial" svg:font-family="Arial" style:font-adornments="Standard" style:font-family-generic="swiss" style:font-pitch="variable"/>
<style:font-face style:name="Liberation Sans" svg:font-family="&apos;Liberation Sans&apos;" style:font-family-generic="swiss" style:font-pitch="variable"/>
<style:font-face style:name="Liberation Sans1" svg:font-family="&apos;Liberation Sans&apos;" style:font-family-generic="system" style:font-pitch="variable"/>
<style:font-face style:name="Mangal1" svg:font-family="Mangal" style:font-family-generic="system" style:font-pitch="variable"/>
<style:font-face style:name="Microsoft YaHei" svg:font-family="&apos;Microsoft YaHei&apos;" style:font-family-generic="system" style:font-pitch="variable"/>
<style:font-face style:name="SimSun" svg:font-family="SimSun" style:font-family-generic="system" style:font-pitch="variable"/>
<style:font-face style:name="Tahoma" svg:font-family="Tahoma" style:font-family-generic="system" style:font-pitch="variable"/>
</office:font-face-decls>
<office:automatic-styles>
<style:style style:name="Tabelle1" style:family="table">
<style:table-properties style:width="17.701cm" table:align="left"/>
</style:style>
<style:style style:name="Tabelle1.A" style:family="table-column">
<style:table-column-properties style:column-width="12.991cm"/>
</style:style>
<style:style style:name="Tabelle1.B" style:family="table-column">
<style:table-column-properties style:column-width="4.71cm"/>
</style:style>
<style:style style:name="Tabelle1.1" style:family="table-row">
<style:table-row-properties style:min-row-height="1.100cm"/>
</style:style>
<style:style style:name="Tabelle1.2" style:family="table-row">
<style:table-row-properties style:min-row-height="0.500cm"/>
</style:style>
<style:style style:name="Tabelle1.A1" style:family="table-cell">
<style:table-cell-properties fo:padding="0.097cm" fo:border="0.05pt solid #000000"/>
</style:style>
<style:style style:name="Tabelle1.B1" style:family="table-cell">
<style:table-cell-properties style:vertical-align="bottom" fo:padding="0.097cm" fo:border="none"/>
</style:style>
<style:style style:name="Tabelle1.A2" style:family="table-cell">
<style:table-cell-properties style:vertical-align="middle" style:min-row-height="0.600cm" fo:padding="0.0cm" fo:border="none"/>
</style:style>
<style:style style:name="Tabelle1.B2" style:family="table-cell">
<style:table-cell-properties fo:padding="0.097cm" fo:border="0.05pt solid #000000"/>
</style:style>
<style:style style:name="Tabelle2" style:family="table">
<style:table-properties style:width="17.7cm" fo:margin-left="0cm" table:align="left"/>
</style:style>
<style:style style:name="Tabelle2.A" style:family="table-column">
<style:table-column-properties style:column-width="8,850cm"/>
</style:style>
<style:style style:name="Tabelle2.B" style:family="table-column">
<style:table-column-properties style:column-width="8,851cm"/>
</style:style>
<style:style style:name="Tabelle2.A1" style:family="table-cell">
<style:table-cell-properties fo:padding="0.0cm" fo:border="none"/>
</style:style>
<style:style style:name="Tabelle3" style:family="table">
<style:table-properties style:width="17.701cm" table:align="left"/>
</style:style>
<style:style style:name="Tabelle3.A" style:family="table-column">
<style:table-column-properties style:column-width="12.991cm"/>
</style:style>
<style:style style:name="Tabelle3.B" style:family="table-column">
<style:table-column-properties style:column-width="4.71cm"/>
</style:style>
<style:style style:name="Tabelle3.1" style:family="table-row">
<style:table-row-properties style:min-row-height="1.005cm"/>
</style:style>
<style:style style:name="Tabelle3.A1" style:family="table-cell">
<style:table-cell-properties fo:padding="0.097cm" fo:border="0.05pt solid #000000"/>
</style:style>
<style:style style:name="Tabelle3.B1" style:family="table-cell">
<style:table-cell-properties style:vertical-align="bottom" fo:padding="0.097cm" fo:border-left="0.05pt solid #000000" fo:border-right="none" fo:border-top="none" fo:border-bottom="0.05pt solid #000000"/>
</style:style>
<style:style style:name="Tabelle3.A2" style:family="table-cell">
<style:table-cell-properties style:vertical-align="middle" fo:padding="0.097cm" fo:border="none"/>
</style:style>
<style:style style:name="Tabelle4" style:family="table">
<style:table-properties style:width="17.013cm" fo:margin-left="0cm" table:align="left"/>
</style:style>
<style:style style:name="Tabelle4.A" style:family="table-column">
<style:table-column-properties style:column-width="7.911cm"/>
</style:style>
<style:style style:name="Tabelle4.B" style:family="table-column">
<style:table-column-properties style:column-width="9.102cm"/>
</style:style>
<style:style style:name="Tabelle4.A1" style:family="table-cell">
<style:table-cell-properties fo:padding="0.097cm" fo:border="none"/>
</style:style>
<style:style style:name="Tabelle5" style:family="table">
<style:table-properties style:width="17.701cm" table:align="left"/>
</style:style>
<style:style style:name="Tabelle5.A" style:family="table-column">
<style:table-column-properties style:column-width="12.991cm"/>
</style:style>
<style:style style:name="Tabelle5.B" style:family="table-column">
<style:table-column-properties style:column-width="4.71cm"/>
</style:style>
<style:style style:name="Tabelle5.1" style:family="table-row">
<style:table-row-properties style:min-row-height="1.005cm"/>
</style:style>
<style:style style:name="Tabelle5.A1" style:family="table-cell">
<style:table-cell-properties fo:padding="0.097cm" fo:border="0.05pt solid #000000"/>
</style:style>
<style:style style:name="Tabelle5.B1" style:family="table-cell">
<style:table-cell-properties style:vertical-align="bottom" fo:padding="0.097cm" fo:border="none"/>
</style:style>
<style:style style:name="Tabelle5.A2" style:family="table-cell">
<style:table-cell-properties style:vertical-align="middle" fo:padding="0.097cm" fo:border="none"/>
</style:style>
<style:style style:name="Tabelle6" style:family="table">
<style:table-properties style:width="17.013cm" fo:margin-left="0cm" table:align="left"/>
</style:style>
<style:style style:name="Tabelle6.A" style:family="table-column">
<style:table-column-properties style:column-width="7.911cm"/>
</style:style>
<style:style style:name="Tabelle6.B" style:family="table-column">
<style:table-column-properties style:column-width="9.102cm"/>
</style:style>
<style:style style:name="Tabelle6.A1" style:family="table-cell">
<style:table-cell-properties fo:padding="0.097cm" fo:border="none"/>
</style:style>
<style:style style:name="Tabelle7" style:family="table">
<style:table-properties style:width="17.701cm" table:align="left"/>
</style:style>
<style:style style:name="Tabelle7.A" style:family="table-column">
<style:table-column-properties style:column-width="12.991cm"/>
</style:style>
<style:style style:name="Tabelle7.B" style:family="table-column">
<style:table-column-properties style:column-width="4.71cm"/>
</style:style>
<style:style style:name="Tabelle7.1" style:family="table-row">
<style:table-row-properties style:min-row-height="1.005cm"/>
</style:style>
<style:style style:name="Tabelle7.A1" style:family="table-cell">
<style:table-cell-properties fo:padding="0.097cm" fo:border="0.05pt solid #000000"/>
</style:style>
<style:style style:name="Tabelle7.B1" style:family="table-cell">
<style:table-cell-properties style:vertical-align="bottom" fo:padding="0.097cm" fo:border="none"/>
</style:style>
<style:style style:name="Tabelle7.A2" style:family="table-cell">
<style:table-cell-properties style:vertical-align="middle" fo:padding="0.097cm" fo:border="none"/>
</style:style>
<style:style style:name="Tabelle8" style:family="table">
<style:table-properties style:width="17.013cm" fo:margin-left="0cm" table:align="left"/>
</style:style>
<style:style style:name="Tabelle8.A" style:family="table-column">
<style:table-column-properties style:column-width="7.911cm"/>
</style:style>
<style:style style:name="Tabelle8.B" style:family="table-column">
<style:table-column-properties style:column-width="9.102cm"/>
</style:style>
<style:style style:name="Tabelle8.A1" style:family="table-cell">
<style:table-cell-properties fo:padding="0.097cm" fo:border="none"/>
</style:style>
<style:style style:name="Tabelle9" style:family="table">
<style:table-properties style:width="17.701cm" table:align="left"/>
</style:style>
<style:style style:name="Tabelle9.A" style:family="table-column">
<style:table-column-properties style:column-width="12.991cm"/>
</style:style>
<style:style style:name="Tabelle9.B" style:family="table-column">
<style:table-column-properties style:column-width="4.71cm"/>
</style:style>
<style:style style:name="Tabelle9.1" style:family="table-row">
<style:table-row-properties style:min-row-height="1.005cm"/>
</style:style>
<style:style style:name="Tabelle9.A1" style:family="table-cell">
<style:table-cell-properties fo:padding="0.097cm" fo:border="0.05pt solid #000000"/>
</style:style>
<style:style style:name="Tabelle9.B1" style:family="table-cell">
<style:table-cell-properties style:vertical-align="bottom" fo:padding="0.097cm" fo:border="none"/>
</style:style>
<style:style style:name="Tabelle9.A2" style:family="table-cell">
<style:table-cell-properties style:vertical-align="middle" fo:padding="0.097cm" fo:border="none"/>
</style:style>
<style:style style:name="Tabelle10" style:family="table">
<style:table-properties style:width="17.013cm" fo:margin-left="0cm" table:align="left"/>
</style:style>
<style:style style:name="Tabelle10.A" style:family="table-column">
<style:table-column-properties style:column-width="7.911cm"/>
</style:style>
<style:style style:name="Tabelle10.B" style:family="table-column">
<style:table-column-properties style:column-width="9.102cm"/>
</style:style>
<style:style style:name="Tabelle10.A1" style:family="table-cell">
<style:table-cell-properties fo:padding="0.097cm" fo:border="none"/>
</style:style>
<style:style style:name="P1" style:family="paragraph" style:parent-style-name="Standard">
<style:text-properties officeooo:rsid="00094cd9" officeooo:paragraph-rsid="000a79ac" style:font-name="Arial" fo:font-size="8pt" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
</style:style>
<style:style style:name="P2" style:family="paragraph" style:parent-style-name="Standard">
<style:paragraph-properties>
<style:tab-stops/>
</style:paragraph-properties>
<style:text-properties style:font-name="Arial" fo:font-size="8pt" officeooo:rsid="00094cd9" officeooo:paragraph-rsid="000a79ac" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
</style:style>
<style:style style:name="P3" style:family="paragraph" style:parent-style-name="Standard">
<style:paragraph-properties fo:text-align="end" style:justify-single-word="false">
<style:tab-stops/>
</style:paragraph-properties>
<style:text-properties style:font-name="Arial" fo:font-size="8pt" officeooo:rsid="00094cd9" officeooo:paragraph-rsid="000a79ac" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
</style:style>
<style:style style:name="P4" style:family="paragraph" style:parent-style-name="Standard">
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false">
<style:tab-stops/>
</style:paragraph-properties>
<style:text-properties style:font-name="Arial" fo:font-size="7pt" officeooo:rsid="00094cd9" officeooo:paragraph-rsid="000a79ac" style:font-size-asian="7pt" style:font-size-complex="7pt"/>
</style:style>
<style:style style:name="P5" style:family="paragraph" style:parent-style-name="Table_20_Contents">
<style:text-properties style:font-name="Arial" fo:font-size="6pt" officeooo:rsid="00094cd9" officeooo:paragraph-rsid="000a79ac" style:font-size-asian="6pt" style:font-size-complex="6pt"/>
</style:style>
<style:style style:name="P6" style:family="paragraph" style:parent-style-name="Table_20_Contents">
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
<style:text-properties style:font-name="Arial" fo:font-size="8pt" officeooo:rsid="00094cd9" officeooo:paragraph-rsid="000a79ac" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
</style:style>
<style:style style:name="P7" style:family="paragraph" style:parent-style-name="Table_20_Contents">
<style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
<style:text-properties style:font-name="Arial" fo:font-size="10pt" officeooo:rsid="00094cd9" officeooo:paragraph-rsid="000a79ac" style:font-size-asian="10pt" style:font-size-complex="10pt"/>
</style:style>
<style:style style:name="P8" style:family="paragraph" style:parent-style-name="Table_20_Contents">
<style:text-properties style:font-name="Arial" fo:font-size="10pt" officeooo:rsid="00094cd9" officeooo:paragraph-rsid="000a79ac" style:font-size-asian="10pt" style:font-size-complex="10pt"/>
</style:style>
<style:style style:name="P9" style:family="paragraph" style:parent-style-name="Standard">
<style:paragraph-properties fo:margin-top="0cm" fo:margin-bottom="0.101cm" loext:contextual-spacing="false"/>
<style:text-properties style:font-name="Arial" fo:font-size="14pt" officeooo:rsid="00094cd9" officeooo:paragraph-rsid="000a79ac" style:font-size-asian="14pt" style:font-size-complex="14pt"/>
</style:style>
<style:style style:name="T1" style:family="text">
<style:text-properties style:font-name="Arial" fo:font-size="8pt" style:font-size-asian="8pt" style:font-size-complex="8pt"/>
</style:style>
</office:automatic-styles>
<office:body>
<xsl:apply-templates select="student"/>
</office:body>
</office:document-content>
</xsl:template>
<xsl:template match="student">
<office:text text:use-soft-page-breaks="true" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0">
<text:sequence-decls>
<text:sequence-decl text:display-outline-level="0" text:name="Illustration"/>
<text:sequence-decl text:display-outline-level="0" text:name="Table"/>
<text:sequence-decl text:display-outline-level="0" text:name="Text"/>
<text:sequence-decl text:display-outline-level="0" text:name="Drawing"/>
</text:sequence-decls>
<text:p text:style-name="P9">Studienbestätigung Fachhochschule Technikum Wien</text:p>
<table:table table:name="Tabelle1" table:style-name="Tabelle1">
<table:table-column table:style-name="Tabelle1.A"/>
<table:table-column table:style-name="Tabelle1.B"/>
<table:table-row table:style-name="Tabelle1.1">
<table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
<text:p text:style-name="P5">Zur Vorlage an (Stelle an der die Bestätigung vorgelegt wird und deren Bezugszahl, z.B. Sozialversicherungsnr.)</text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle1.B1" office:value-type="string">
<text:p text:style-name="P6">Personenkennzeichen</text:p>
</table:table-cell>
</table:table-row>
<table:table-row table:style-name="Tabelle1.2">
<table:table-cell table:style-name="Tabelle1.A2" office:value-type="string">
<text:p text:style-name="P8">
<xsl:value-of select="titelpre" /><xsl:text> </xsl:text><xsl:value-of select="vorname" /><xsl:text> </xsl:text><xsl:value-of select="vornamen" /><xsl:text> </xsl:text><xsl:value-of select="nachname" /><xsl:text> </xsl:text><xsl:value-of select="titelpost" />
</text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle1.B2" office:value-type="string">
<text:p text:style-name="P7">
<xsl:value-of select="matrikelnummer" />
</text:p>
</table:table-cell>
</table:table-row>
</table:table>
<text:p text:style-name="P1" />
<text:p text:style-name="P1">
geboren am<xsl:text> </xsl:text><xsl:value-of select="geburtsdatum" /><xsl:text> </xsl:text>
ist im<xsl:text> </xsl:text><xsl:value-of select="studiensemester_aktuell" /><xsl:text> </xsl:text>(Beginn <xsl:text> </xsl:text><xsl:value-of select="studienbeginn_aktuell" />)
als a.o. Studierende(r) (Studienbeginn,<xsl:text> </xsl:text><xsl:value-of select="studiensemester_aktuell" /> Beginn<xsl:text> </xsl:text><xsl:value-of select="studienbeginn_aktuell" />)
<text:line-break />des Lehrgangs zur Weiterbildung nach §9 FHStG idgF. 0050023 Management und Umwelt im
<xsl:text> </xsl:text><xsl:value-of select="semester" />. Semester gemeldet.
</text:p>
<text:p text:style-name="P1"/>
<table:table table:name="Tabelle2" table:style-name="Tabelle2">
<table:table-column table:style-name="Tabelle2.A"/>
<table:table-column table:style-name="Tabelle2.B"/>
<table:table-row>
<table:table-cell table:style-name="Tabelle2.A1" office:value-type="string">
<text:p text:style-name="P2">Datum:<xsl:text> </xsl:text><xsl:value-of select="tagesdatum" /><xsl:text> </xsl:text>DVR: 0928381</text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle2.A1" office:value-type="string">
<text:p text:style-name="P3">Rektor:<xsl:text> </xsl:text><xsl:value-of select="rektor" /></text:p>
</table:table-cell>
</table:table-row>
</table:table>
<text:p />
<text:p text:style-name="P4">------------------------------------------------------------------------------------------------------------------------------------------------------------------------</text:p>
<text:p />
<text:p text:style-name="P9">Studienbestätigung Fachhochschule Technikum Wien</text:p>
<table:table table:name="Tabelle1" table:style-name="Tabelle1">
<table:table-column table:style-name="Tabelle1.A"/>
<table:table-column table:style-name="Tabelle1.B"/>
<table:table-row table:style-name="Tabelle1.1">
<table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
<text:p text:style-name="P5">Zur Vorlage an (Stelle an der die Bestätigung vorgelegt wird und deren Bezugszahl, z.B. Sozialversicherungsnr.)</text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle1.B1" office:value-type="string">
<text:p text:style-name="P6">Personenkennzeichen</text:p>
</table:table-cell>
</table:table-row>
<table:table-row table:style-name="Tabelle1.2">
<table:table-cell table:style-name="Tabelle1.A2" office:value-type="string">
<text:p text:style-name="P8">
<xsl:value-of select="titelpre" /><xsl:text> </xsl:text><xsl:value-of select="vorname" /><xsl:text> </xsl:text><xsl:value-of select="vornamen" /><xsl:text> </xsl:text><xsl:value-of select="nachname" /><xsl:text> </xsl:text><xsl:value-of select="titelpost" />
</text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle1.B2" office:value-type="string">
<text:p text:style-name="P7">
<xsl:value-of select="matrikelnummer" />
</text:p>
</table:table-cell>
</table:table-row>
</table:table>
<text:p text:style-name="P1" />
<text:p text:style-name="P1">
geboren am<xsl:text> </xsl:text><xsl:value-of select="geburtsdatum" /><xsl:text> </xsl:text>
ist im<xsl:text> </xsl:text><xsl:value-of select="studiensemester_aktuell" /><xsl:text> </xsl:text>(Beginn <xsl:text> </xsl:text><xsl:value-of select="studienbeginn_aktuell" />)
als a.o. Studierende(r) (Studienbeginn,<xsl:text> </xsl:text><xsl:value-of select="studiensemester_aktuell" /> Beginn<xsl:text> </xsl:text><xsl:value-of select="studienbeginn_aktuell" />)
<text:line-break />des Lehrgangs zur Weiterbildung nach §9 FHStG idgF. 0050023 Management und Umwelt im
<xsl:text> </xsl:text><xsl:value-of select="semester" />. Semester gemeldet.
</text:p>
<text:p text:style-name="P1"/>
<table:table table:name="Tabelle2" table:style-name="Tabelle2">
<table:table-column table:style-name="Tabelle2.A"/>
<table:table-column table:style-name="Tabelle2.B"/>
<table:table-row>
<table:table-cell table:style-name="Tabelle2.A1" office:value-type="string">
<text:p text:style-name="P2">Datum:<xsl:text> </xsl:text><xsl:value-of select="tagesdatum" /><xsl:text> </xsl:text>DVR: 0928381</text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle2.A1" office:value-type="string">
<text:p text:style-name="P3">Rektor:<xsl:text> </xsl:text><xsl:value-of select="rektor" /></text:p>
</table:table-cell>
</table:table-row>
</table:table>
<text:p />
<text:p text:style-name="P4">------------------------------------------------------------------------------------------------------------------------------------------------------------------------</text:p>
<text:p />
<text:p text:style-name="P9">Studienbestätigung Fachhochschule Technikum Wien</text:p>
<table:table table:name="Tabelle1" table:style-name="Tabelle1">
<table:table-column table:style-name="Tabelle1.A"/>
<table:table-column table:style-name="Tabelle1.B"/>
<table:table-row table:style-name="Tabelle1.1">
<table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
<text:p text:style-name="P5">Zur Vorlage an (Stelle an der die Bestätigung vorgelegt wird und deren Bezugszahl, z.B. Sozialversicherungsnr.)</text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle1.B1" office:value-type="string">
<text:p text:style-name="P6">Personenkennzeichen</text:p>
</table:table-cell>
</table:table-row>
<table:table-row table:style-name="Tabelle1.2">
<table:table-cell table:style-name="Tabelle1.A2" office:value-type="string">
<text:p text:style-name="P8">
<xsl:value-of select="titelpre" /><xsl:text> </xsl:text><xsl:value-of select="vorname" /><xsl:text> </xsl:text><xsl:value-of select="vornamen" /><xsl:text> </xsl:text><xsl:value-of select="nachname" /><xsl:text> </xsl:text><xsl:value-of select="titelpost" />
</text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle1.B2" office:value-type="string">
<text:p text:style-name="P7">
<xsl:value-of select="matrikelnummer" />
</text:p>
</table:table-cell>
</table:table-row>
</table:table>
<text:p text:style-name="P1" />
<text:p text:style-name="P1">
geboren am<xsl:text> </xsl:text><xsl:value-of select="geburtsdatum" /><xsl:text> </xsl:text>
ist im<xsl:text> </xsl:text><xsl:value-of select="studiensemester_aktuell" /><xsl:text> </xsl:text>(Beginn <xsl:text> </xsl:text><xsl:value-of select="studienbeginn_aktuell" />)
als a.o. Studierende(r) (Studienbeginn,<xsl:text> </xsl:text><xsl:value-of select="studiensemester_aktuell" /> Beginn<xsl:text> </xsl:text><xsl:value-of select="studienbeginn_aktuell" />)
<text:line-break />des Lehrgangs zur Weiterbildung nach §9 FHStG idgF. 0050023 Management und Umwelt im
<xsl:text> </xsl:text><xsl:value-of select="semester" />. Semester gemeldet.
</text:p>
<text:p text:style-name="P1"/>
<table:table table:name="Tabelle2" table:style-name="Tabelle2">
<table:table-column table:style-name="Tabelle2.A"/>
<table:table-column table:style-name="Tabelle2.B"/>
<table:table-row>
<table:table-cell table:style-name="Tabelle2.A1" office:value-type="string">
<text:p text:style-name="P2">Datum:<xsl:text> </xsl:text><xsl:value-of select="tagesdatum" /><xsl:text> </xsl:text>DVR: 0928381</text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle2.A1" office:value-type="string">
<text:p text:style-name="P3">Rektor:<xsl:text> </xsl:text><xsl:value-of select="rektor" /></text:p>
</table:table-cell>
</table:table-row>
</table:table>
<text:p />
<text:p text:style-name="P4">------------------------------------------------------------------------------------------------------------------------------------------------------------------------</text:p>
<text:p />
<text:p text:style-name="P9">Studienbestätigung Fachhochschule Technikum Wien</text:p>
<table:table table:name="Tabelle1" table:style-name="Tabelle1">
<table:table-column table:style-name="Tabelle1.A"/>
<table:table-column table:style-name="Tabelle1.B"/>
<table:table-row table:style-name="Tabelle1.1">
<table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
<text:p text:style-name="P5">Zur Vorlage an (Stelle an der die Bestätigung vorgelegt wird und deren Bezugszahl, z.B. Sozialversicherungsnr.)</text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle1.B1" office:value-type="string">
<text:p text:style-name="P6">Personenkennzeichen</text:p>
</table:table-cell>
</table:table-row>
<table:table-row table:style-name="Tabelle1.2">
<table:table-cell table:style-name="Tabelle1.A2" office:value-type="string">
<text:p text:style-name="P8">
<xsl:value-of select="titelpre" /><xsl:text> </xsl:text><xsl:value-of select="vorname" /><xsl:text> </xsl:text><xsl:value-of select="vornamen" /><xsl:text> </xsl:text><xsl:value-of select="nachname" /><xsl:text> </xsl:text><xsl:value-of select="titelpost" />
</text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle1.B2" office:value-type="string">
<text:p text:style-name="P7">
<xsl:value-of select="matrikelnummer" />
</text:p>
</table:table-cell>
</table:table-row>
</table:table>
<text:p text:style-name="P1" />
<text:p text:style-name="P1">
geboren am<xsl:text> </xsl:text><xsl:value-of select="geburtsdatum" /><xsl:text> </xsl:text>
ist im<xsl:text> </xsl:text><xsl:value-of select="studiensemester_aktuell" /><xsl:text> </xsl:text>(Beginn <xsl:text> </xsl:text><xsl:value-of select="studienbeginn_aktuell" />)
als a.o. Studierende(r) (Studienbeginn,<xsl:text> </xsl:text><xsl:value-of select="studiensemester_aktuell" /> Beginn<xsl:text> </xsl:text><xsl:value-of select="studienbeginn_aktuell" />)
<text:line-break />des Lehrgangs zur Weiterbildung nach §9 FHStG idgF. 0050023 Management und Umwelt im
<xsl:text> </xsl:text><xsl:value-of select="semester" />. Semester gemeldet.
</text:p>
<text:p text:style-name="P1"/>
<table:table table:name="Tabelle2" table:style-name="Tabelle2">
<table:table-column table:style-name="Tabelle2.A"/>
<table:table-column table:style-name="Tabelle2.B"/>
<table:table-row>
<table:table-cell table:style-name="Tabelle2.A1" office:value-type="string">
<text:p text:style-name="P2">Datum:<xsl:text> </xsl:text><xsl:value-of select="tagesdatum" /><xsl:text> </xsl:text>DVR: 0928381</text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle2.A1" office:value-type="string">
<text:p text:style-name="P3">Rektor:<xsl:text> </xsl:text><xsl:value-of select="rektor" /></text:p>
</table:table-cell>
</table:table-row>
</table:table>
<text:p />
<text:p text:style-name="P4">------------------------------------------------------------------------------------------------------------------------------------------------------------------------</text:p>
<text:p />
<text:p text:style-name="P9">Studienbestätigung Fachhochschule Technikum Wien</text:p>
<table:table table:name="Tabelle1" table:style-name="Tabelle1">
<table:table-column table:style-name="Tabelle1.A"/>
<table:table-column table:style-name="Tabelle1.B"/>
<table:table-row table:style-name="Tabelle1.1">
<table:table-cell table:style-name="Tabelle1.A1" office:value-type="string">
<text:p text:style-name="P5">Zur Vorlage an (Stelle an der die Bestätigung vorgelegt wird und deren Bezugszahl, z.B. Sozialversicherungsnr.)</text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle1.B1" office:value-type="string">
<text:p text:style-name="P6">Personenkennzeichen</text:p>
</table:table-cell>
</table:table-row>
<table:table-row table:style-name="Tabelle1.2">
<table:table-cell table:style-name="Tabelle1.A2" office:value-type="string">
<text:p text:style-name="P8">
<xsl:value-of select="titelpre" /><xsl:text> </xsl:text><xsl:value-of select="vorname" /><xsl:text> </xsl:text><xsl:value-of select="vornamen" /><xsl:text> </xsl:text><xsl:value-of select="nachname" /><xsl:text> </xsl:text><xsl:value-of select="titelpost" />
</text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle1.B2" office:value-type="string">
<text:p text:style-name="P7">
<xsl:value-of select="matrikelnummer" />
</text:p>
</table:table-cell>
</table:table-row>
</table:table>
<text:p text:style-name="P1" />
<text:p text:style-name="P1">
geboren am<xsl:text> </xsl:text><xsl:value-of select="geburtsdatum" /><xsl:text> </xsl:text>
ist im<xsl:text> </xsl:text><xsl:value-of select="studiensemester_aktuell" /><xsl:text> </xsl:text>(Beginn <xsl:text> </xsl:text><xsl:value-of select="studienbeginn_aktuell" />)
als a.o. Studierende(r) (Studienbeginn,<xsl:text> </xsl:text><xsl:value-of select="studiensemester_aktuell" /> Beginn<xsl:text> </xsl:text><xsl:value-of select="studienbeginn_aktuell" />)
<text:line-break />des Lehrgangs zur Weiterbildung nach §9 FHStG idgF. 0050023 Management und Umwelt im
<xsl:text> </xsl:text><xsl:value-of select="semester" />. Semester gemeldet.
</text:p>
<text:p text:style-name="P1"/>
<table:table table:name="Tabelle2" table:style-name="Tabelle2">
<table:table-column table:style-name="Tabelle2.A"/>
<table:table-column table:style-name="Tabelle2.B"/>
<table:table-row>
<table:table-cell table:style-name="Tabelle2.A1" office:value-type="string">
<text:p text:style-name="P2">Datum:<xsl:text> </xsl:text><xsl:value-of select="tagesdatum" /><xsl:text> </xsl:text>DVR: 0928381</text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle2.A1" office:value-type="string">
<text:p text:style-name="P3">Rektor:<xsl:text> </xsl:text><xsl:value-of select="rektor" /></text:p>
</table:table-cell>
</table:table-row>
</table:table>
</office:text>
</xsl:template>
</xsl:stylesheet>
+1 -1
View File
@@ -853,7 +853,7 @@ echo $outp;
echo '</td><td valign="top">';
//Neu Button
if($write_admin)
if($write_admin || $rechte->isBerechtigt('lehre/lehrveranstaltungAnlegen',null,'suid'))
echo '<input type="button" onclick="parent.lv_detail.location=\'lehrveranstaltung_details.php?neu=true&stg_kz='.$db->convert_html_chars($stg_kz).'&semester='.$db->convert_html_chars($semester).'\'" value="Neu"/>';
echo '</td></tr></table>';
+2 -2
View File
@@ -50,9 +50,9 @@
if(isset($_POST["schick"]) || isset($_POST["schick_neu"]))
{
if(!$rechte->isBerechtigt('lehre/lehrveranstaltung',null,'sui'))
if(!$rechte->isBerechtigt('lehre/lehrveranstaltung',null,'sui') && !$rechte->isBerechtigt('lehre/lehrveranstaltungAnlegen',null,'sui'))
die('Sie haben keine Berechtigung fuer diese Aktion');
$lv = new lehrveranstaltung();
if(isset($_POST["schick_neu"]))
+190
View File
@@ -0,0 +1,190 @@
<?php
/*
* Copyright 2013 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., 51 Franklin Street, Fifth Floor, Boston,
* MA 02110-1301, USA.
*
*
* Authors: Stefan Puraner <stefan.puraner@technikum-wien.at>
*/
header( 'Expires: -1' );
header( 'Last-Modified: ' . gmdate( 'D, d M Y H:i:s' ) . ' GMT' );
header( 'Cache-Control: no-store, no-cache, must-revalidate' );
header( 'Pragma: no-cache' );
header('Content-Type: text/html;charset=UTF-8');
require_once('../../config/vilesci.config.inc.php');
require_once('../../include/functions.inc.php');
require_once('../../include/webservicerecht.class.php');
require_once('../../include/studienordnung.class.php');
require_once('../../include/studienplan.class.php');
$class = $_REQUEST['class'];
$method = $_REQUEST['method'];
$typ = (isset($_REQUEST['typ'])?$_REQUEST['typ']:'');
// die einzelnen funktionsparameter werden durchnummeriert mit 0 beginnend:
// parameter_0=param0&parameter_1=param1&parameter_3[0]=param3arr0&parameter_3[1]=param3arr1
$parameter=array();
for($i=0;$i<100;$i++)
{
if(isset($_REQUEST['parameter_'.$i]))
{
if($_REQUEST['parameter_'.$i]=="true")
$parameter[]=true;
elseif($_REQUEST['parameter_'.$i]=="false")
$parameter[]=false;
elseif($_REQUEST['parameter_'.$i]=="null")
$parameter[]=null;
else
$parameter[]=$_REQUEST['parameter_'.$i];
}
else
break;
}
require_once('../../include/'.$class.'.class.php');
// Berechtigung pruefen
$uid = get_uid();
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($uid);
$wsrecht = new webservicerecht();
if(!$wsrecht->isUserAuthorized($uid, $method, $class))
die('Sie haben keine Berechtigung fuer diesen Vorgang:'.$class.'->'.$method);
// Funktion aufrufen
$obj = new $class();
$error=false;
// Bei Save Funktionen werden alle Parameter zugewiesen
if(mb_stristr($method,'save'))
{
$loaddata=json_decode($_REQUEST['loaddata'], true);
$savedata=json_decode($_REQUEST['savedata'], true);
if(!$rechte->isBerechtigt('lehre/studienordnung'))
{
if(!$rechte->isBerechtigt("lehre/studienordnungInaktiv"))
{
die('Sie haben keine Berechtigung fuer diesen Vorgang. Recht: lehre/studienordnung');
}
else
{
if(isset($savedata['studienplan_id']))
{
$studienordnung = new studienordnung();
$studienordnung->getStudienordnungFromStudienplan($savedata['studienplan_id']);
if($studienordnung->isAktiv($studienordnung->studienordnung_id))
die('Sie haben keine Berechtigung fuer diesen Vorgang. Studienordnung ist aktiv.');
}
elseif(isset($loaddata["loadStudienordnung"]))
{
$studienordnung = new studienordnung();
if($studienordnung->isAktiv($loaddata["parameter_0"]))
die('Sie haben keine Berechtigung fuer diesen Vorgang. Studienordnung ist aktiv.');
}
}
}
if(isset($loaddata['method']))
{
if(!$wsrecht->isUserAuthorized($uid, $loaddata['method']))
die('keine Berechtigung');
// Bearbeiten
$loadparameter=array();
for($i=0;$i<20;$i++)
{
$name = 'parameter_'.$i;
if(isset($loaddata[$name]))
$loadparameter[]=$loaddata[$name];
else
break;
}
if(!call_user_func_array(array($obj, $loaddata['method']), $loadparameter))
{
$error=true;
}
}
else
{
// Neu
$obj->insertvon = $uid;
$obj->insertamum = date('Y-m-d H:i:s');
}
if(!$error)
{
// Attribute zuweisen zum Speichern
foreach($savedata as $key=>$value)
{
$obj->$key=$value;
}
}
}
elseif(mb_stristr($method,'delete'))
{
if(!$rechte->isBerechtigt("lehre/studienordnung"))
{
if(!$rechte->isBerechtigt("lehre/studienordnungInaktiv"))
{
die('Sie haben keine Berechtigung fuer diesen Vorgang. Recht: lehre/studienordnung');
}
else
{
$studienplan = new studienplan();
$studienplan->loadStudienplanLehrveranstaltung($_REQUEST['parameter_0']);
$studienordnung = new studienordnung();
$studienordnung->getStudienordnungFromStudienplan($studienplan->studienplan_id);
if($studienordnung->isAktiv($studienordnung->studienordnung_id))
die('Sie haben keine Berechtigung fuer diesen Vorgang. Studienordnung ist aktiv.');
}
}
}
$return = '';
if(!$error && ($return = call_user_func_array(array($obj, $method), $parameter)))
{
$data['result']=$obj->cleanResult();
$data['return']=$return;
$data['error']='false';
$data['errormsg']='';
}
else
{
$data['result']='';
$data['return']=$return;
$data['error']='true';
$data['errormsg']=$obj->errormsg;
}
// Daten ausgeben
if($typ=='json')
echo json_encode($data);
elseif($typ=='xml')
echo array_to_xml($data);
else
var_dump($data);
?>
+1 -1
View File
@@ -39,7 +39,7 @@ $rechte->getBerechtigungen($uid);
$method=(isset($_GET['method'])?$_GET['method']:'');
if(!$rechte->isBerechtigt('lehre/studienordnung'))
if((!$rechte->isBerechtigt('lehre/studienordnung')) && (!$rechte->isBerechtigt('lehre/studienordnungInaktiv')))
die('Sie haben keine Berechtigung für diese Seite');
switch($method)
+72 -62
View File
@@ -35,7 +35,7 @@ var isLVFilterLoaded=false;
/**
* Error-Behandlung bei Ajax Requests
*/
function loadError(xhr, textStatus, errorThrown)
{
if(xhr.status==200)
@@ -83,6 +83,11 @@ function drawHeader(text)
*/
function loadStudienordnung()
{
var method = 'loadStudienordnungSTGInaktiv';
if(typeof initSTOs === 'undefined')
{
method = 'loadStudienordnungSTG';
}
// Ausgewaehlten Studiengang holen
studiengang_kz = $('#studiengang').val();
studiengang_bezeichnung = $( "#studiengang option:selected" ).text();
@@ -103,7 +108,7 @@ function loadStudienordnung()
data: {
"typ": "json",
"class": "studienordnung",
"method": "loadStudienordnungSTG",
"method": method,
"parameter_0": studiengang_kz
},
error: loadError
@@ -129,7 +134,7 @@ function loadStudienordnung()
function drawStudienordnungen(data)
{
var obj='<a href="#Neu" onclick="neueStudienordnung();return false;">Neue Studienordnung</a><ul style="padding-left: 15px">';
for(i in data)
{
if(data[i].studienordnung_id !== null)
@@ -310,10 +315,10 @@ function loadLehrveranstaltungSTPL(studienplan_id, bezeichnung, max_semester)
treeData.push(obj);
}
// DIV fuer den Tree neu anlegen damit der alte Tree vollstaendig entfernt wird
$("#data").html("<div id='treeData'></div>");
function searchChildren(element, matchingId, original)
{
var found = false;
@@ -330,7 +335,7 @@ function loadLehrveranstaltungSTPL(studienplan_id, bezeichnung, max_semester)
return false;
}
return true;
}
}
return false;
}
@@ -357,7 +362,7 @@ function loadLehrveranstaltungSTPL(studienplan_id, bezeichnung, max_semester)
"select_limit": 1,
"select_multiple_modifier": "ctrl"
},
json_data: {
json_data: {
data: treeData // Daten an den Tree binden
},
crrm: {
@@ -379,7 +384,7 @@ function loadLehrveranstaltungSTPL(studienplan_id, bezeichnung, max_semester)
return false;
}
}
if(m.o.attr("rel")==="semester")
{
return false;
@@ -449,7 +454,7 @@ function loadLehrveranstaltungSTPL(studienplan_id, bezeichnung, max_semester)
"Delete" : {
"label" : "Eintrag entfernen",
"action": function(obj){
// Pruefen ob LVs unterhalb dieser LV haengen,
// Pruefen ob LVs unterhalb dieser LV haengen,
// falls ja wird das loeschen verhindert
if(obj.children().find("li").length === 0)
{
@@ -467,7 +472,7 @@ function loadLehrveranstaltungSTPL(studienplan_id, bezeichnung, max_semester)
}
};
}
}
},
plugins: ["themes", "ui", "dnd", "grid", "json_data", "crrm", "types", "sort", "contextmenu"]
@@ -482,17 +487,17 @@ function loadLehrveranstaltungSTPL(studienplan_id, bezeichnung, max_semester)
// {
// Verschieben eines Eintrages
// Studienplan_lehrveranstaltung_id ermitteln
// Studienplan_lehrveranstaltung_id ermitteln
var studienplan_lehrveranstaltung_id='';
if(data.rslt.o[0].attributes.studienplan_lehrveranstaltung_id){
studienplan_lehrveranstaltung_id=data.rslt.o[0].attributes.studienplan_lehrveranstaltung_id.value;
$("#treeData").jstree.refresh();
//$("#treeData").jstree('refresh');
}
// Aenderung speichern
saveJsondataFromTree(data.rslt.o[0].id, studienplan_id, studienplan_lehrveranstaltung_id);
// ECTS Summen neu berechnen
// ECTS Summen neu berechnen
var root = data.inst.get_container_ul();
var nodes = root[0].childNodes;
for(var i=0; i<nodes.length; i++)
@@ -509,7 +514,7 @@ function loadLehrveranstaltungSTPL(studienplan_id, bezeichnung, max_semester)
}).bind("loaded.jstree", function(event, data)
{
// Wenn der Tree geladen wird, die ECTS Summen der einzelnen Semester berechnen
var root = data.inst.get_container_ul();
var nodes = root[0].childNodes;
for(var i=0; i<nodes.length; i++)
@@ -517,7 +522,7 @@ function loadLehrveranstaltungSTPL(studienplan_id, bezeichnung, max_semester)
if(nodes[i].getAttribute("rel") === "semester"){
writeEctsSum(nodes[i]);
}
}
writeOverallSum(nodes);
}).bind("open_node.jstree", function(event, data)
@@ -547,7 +552,7 @@ function loadLehrveranstaltungSTPL(studienplan_id, bezeichnung, max_semester)
lvid = lvid.substring(5);
}
}
// Lehrveranstaltungsdetails laden
if(data.rslt.obj.attr("rel") !== "semester")
@@ -558,7 +563,7 @@ function loadLehrveranstaltungSTPL(studienplan_id, bezeichnung, max_semester)
{
$("#tab-lehrveranstaltungdetail").html("<p>Klicken Sie auf eine Lehrveranstaltung um die Details anzuzeigen</p>");
}
// Regeln laden
if(data.rslt.obj.attr("rel") !== "semester")
{
@@ -569,7 +574,7 @@ function loadLehrveranstaltungSTPL(studienplan_id, bezeichnung, max_semester)
{
$("#tab-regel").html("<p>Klicken Sie auf eine Lehrveranstaltung um die Regeln anzuzeigen</p>");
}
// Kompatibilitaet laden
if(data.rslt.obj.attr("rel") !== "semester")
{
@@ -580,7 +585,7 @@ function loadLehrveranstaltungSTPL(studienplan_id, bezeichnung, max_semester)
{
$("#tab-kompatibel").html("<p>Klicken Sie auf eine Lehrveranstaltung um die kompatiblen Lehrveranstaltungen anzuzeigen</p>");
}
// Sortierung laden
if(data.rslt.obj.attr("rel") !== "semester")
{
@@ -661,7 +666,7 @@ function LoadLVDetails(lvid, stpllvid)
html+="<br>LV-Semester: "+ClearNull(lvdata.semester);
html+="<br><br>LVID: "+ClearNull(lvdata.lehrveranstaltung_id)+" / StgKz: "+ClearNull(lvdata.studiengang_kz);
$("#tab-lehrveranstaltungdetail").html(html);
});
});
}
/**
@@ -694,8 +699,8 @@ function loadLVKompatibilitaet(lvid)
html = html+'<br><br><a href="lehrveranstaltung_kompatibel.php?lehrveranstaltung_id='+lvid+'&type=edit" target="_blank">kompatible Lehrveranstaltungen hinzufügen</a>';
}
$("#tab-kompatibel").html(html);
});
});
}
/*
* lädt die Sortierung einer Lehrveranstaltung innerhalb eines Studienplans
@@ -740,7 +745,7 @@ function saveSortierung(stpllvid)
"sort": sort
};
$.ajax(
{
{
dataType: "json",
url: "../../soap/fhcomplete.php",
type: "POST",
@@ -798,14 +803,14 @@ function editStudienplan(studienplan_id)
}
/*
* Funktion zum Laden des Baumes der
* Funktion zum Laden des Baumes der
* gefilterten LVs
* */
function loadFilteredLehrveranstaltungen()
{
if($("#oeDropdown option:selected").val() === "")
{
$.ajax(
$.ajax(
{
dataType: "json",
url: "../../soap/fhcomplete.php",
@@ -873,8 +878,8 @@ function showLVTree(data)
if($("#lvListe").length === 0)
{
$("#filteredLVs").html("<h3></h3><div id='lvListe'></div>");
}
else
}
else
{
$("#filteredLVs").html("<h3>Daten werden geladen...</h3><div id='lvListe'></div>");
}
@@ -883,8 +888,8 @@ function showLVTree(data)
"select_limit": 1,
"select_multiple_modifier": "ctrl"
},
json_data: {
json_data: {
data: TreeData,
progressive_render : true
},
@@ -925,7 +930,7 @@ function showLVTree(data)
resizable: true
},
plugins: ["themes", "ui", "dnd", "grid", "json_data", "crrm", "types", "sort"]
}).bind("loaded.jstree", function(event, data)
}).bind("loaded.jstree", function(event, data)
{
$("#loadingGif").remove();
$("h3:contains('Daten werden geladen...')").remove();
@@ -936,13 +941,13 @@ function showLVTree(data)
{
// Bei einem Klick auf eine LV werden die Details geladen
lvid = data.rslt.obj.attr("lvID");
LoadLVDetails(lvid, null);
// Regeln laden
$("#tab-regel").html("<p>Regeln werden nur angezeigt wenn die LV im Studienplan hängt</p>");
// Kompatibilitaet laden
if(lvid!==undefined)
loadLVKompatibilitaet(lvid);
@@ -954,17 +959,17 @@ function showLVTree(data)
studienplan_lehrveranstaltung_id=data.rslt.o[0].attributes.studienplan_lehrveranstaltung_id.value;
$("#treeData").jstree.refresh();
}
// Aenderung speichern
saveJsondataFromTree(data.rslt.o[0].id, studienplan_id, studienplan_lehrveranstaltung_id);
// ECTS Summen neu berechnen
// ECTS Summen neu berechnen
hideAllTreeColumns();
writeOverallSum(nodes);
});
}
else
}
else
{
$("#filteredLVs .jstree-grid-wrapper").remove();
if($("#lvListe").length !== 0)
@@ -1052,6 +1057,10 @@ function loadSemester()
}
html+="</select>";
$("#semesterListe").html(html);
if($("#neueLV").length === 0)
$("#lehrveranstaltung").append("<div id='neueLV'></div>");
$("#neueLV").html("<br/><a href='./lehrveranstaltung_details.php?neu=true&stg_kz="+studiengang_kz+"' target='_blank'><input type='button' value='Neue LV anlegen'></a>");
isLVFilterLoaded=true;
loadFilteredLehrveranstaltungen();
});
@@ -1073,7 +1082,7 @@ function hideAllTreeColumns()
var divs = $("#filteredLVs .jstree-grid-col-" + j);
for (var i = 0; i < divs.length; i++)
{
divs[i].style.display = "none";
divs[i].style.display = "none";
}
}
}
@@ -1115,7 +1124,7 @@ function saveJsondataFromTree(nodeId, studienplan_id, studienplan_lehrveranstalt
{
node = $("#"+studienplan_lehrveranstaltung_id);
}
var lehrveranstaltung_id = jsonData[0]["metadata"]["lehrveranstaltung_id"];
var semester = node.closest("li[rel=semester]").attr("semester");
@@ -1130,14 +1139,14 @@ function saveJsondataFromTree(nodeId, studienplan_id, studienplan_lehrveranstalt
parent_id = node.parent().parent().attr("studienplan_lehrveranstaltung_id");
var neu = true;
if(studienplan_lehrveranstaltung_id !== undefined && studienplan_lehrveranstaltung_id!='')
neu = false;
// Bei neuen Eintraegen kein Load noetig
if(neu)
loaddata='';
savedata = {
"studienplan_id": studienplan_id,
"lehrveranstaltung_id" : lehrveranstaltung_id,
@@ -1145,11 +1154,12 @@ function saveJsondataFromTree(nodeId, studienplan_id, studienplan_lehrveranstalt
"studienplan_lehrveranstaltung_id_parent": parent_id,
"pflicht": true
};
$.ajax(
{
{
dataType: "json",
url: "../../soap/fhcomplete.php",
url: "./saveStudienordnung.php",
//url: "../../soap/fhcomplete.php",
type: "POST",
data: {
"typ": "json",
@@ -1189,7 +1199,7 @@ function TreeSaveError(xhr, textStatus, errorThrown)
alert('Fehler beim Laden der Daten. ErrorNr:'+xhr.status);
// Studienplan Tree neu Laden um inkonsistente Anzeigen zu verhindern
loadLehrveranstaltungSTPL(loadLehrveranstaltungSTPLStudienplan_id, loadLehrveranstaltungSTPLBezeichnung, loadLehrveranstaltungSTPLSemester);
loadLehrveranstaltungSTPL(loadLehrveranstaltungSTPLStudienplan_id, loadLehrveranstaltungSTPLBezeichnung, loadLehrveranstaltungSTPLSemester);
}
/**
@@ -1199,7 +1209,7 @@ function deleteLehrveranstaltungFromStudienplan(lehrveranstaltung_studienplan_id
{
$.ajax({
dataType: "json",
url: "../../soap/fhcomplete.php",
url: "./saveStudienordnung.php",
type: "POST",
data: {
"typ": "json",
@@ -1213,7 +1223,7 @@ function deleteLehrveranstaltungFromStudienplan(lehrveranstaltung_studienplan_id
{
$.ajax({
dataType: "json",
url: "../../soap/fhcomplete.php",
url: "./saveStudienordnung.php",
type: "POST",
data: {
"typ": "json",
@@ -1280,11 +1290,11 @@ function saveStudienordnung()
"studiengang_kz":studiengang_kz
};
$.ajax(
{
dataType: "json",
url: "../../soap/fhcomplete.php",
url: "./saveStudienordnung.php",
type: "POST",
data: {
"typ": "json",
@@ -1344,11 +1354,11 @@ function saveStudienplan()
"studienordnung_id":studienordnung_id
};
$.ajax(
{
dataType: "json",
url: "../../soap/fhcomplete.php",
url: "./saveStudienordnung.php",
type: "POST",
data: {
"typ": "json",
@@ -1364,7 +1374,7 @@ function saveStudienplan()
{
$("#submsg").css("visibility", "visible");
window.setTimeout(function(){$("#submsg").css("visibility", "hidden");}, 1500);
loadStudienplanSTO(studienordnung_id,studienordnung_bezeichnung);
loadStudienplanSTO(studienordnung_id,studienordnung_bezeichnung);
}
},
error: loadError
@@ -1381,7 +1391,7 @@ function writeEctsSum(parent)
if($(parent).children("ul").children().length > 0)
{
writeEctsSum($(parent).children("ul").children()[i]);
}
}
}
if($(parent).attr("rel") === "semester")
{
@@ -1493,7 +1503,7 @@ function saveSemesterStoZuordnung(studiensemester, ausbildungssemester)
semesterStoZuordnung();
});
}
}
function deleteSemesterZuordnung(ausbildungssemester_kurzbz, studiensemester)
@@ -1503,7 +1513,7 @@ function deleteSemesterZuordnung(ausbildungssemester_kurzbz, studiensemester)
var row = $("#row_"+ausbildungssemester_kurzbz);
$.ajax({
dataType: "json",
url: "../../soap/fhcomplete.php",
url: "./saveStudienordnung.php",
type: "POST",
data: {
"typ":"json",
@@ -1521,7 +1531,7 @@ function deleteSemesterZuordnung(ausbildungssemester_kurzbz, studiensemester)
{
$.ajax({
dataType: "json",
url: "../../soap/fhcomplete.php",
url: "./saveStudienordnung.php",
type: "POST",
data: {
"typ":"json",
@@ -1536,7 +1546,7 @@ function deleteSemesterZuordnung(ausbildungssemester_kurzbz, studiensemester)
semesterStoZuordnung();
});
}
}
/**
@@ -1563,6 +1573,6 @@ function copyStudienordnung(studienordnung_id)
alert(data.errormsg);
}
loadStudienordnung();
});
});
}
}
}
+6 -1
View File
@@ -146,9 +146,14 @@ echo "
</style>
</head>
<body>";
if(!$rechte->isBerechtigt('lehre/studienordnung'))
if((!$rechte->isBerechtigt('lehre/studienordnung')) && (!$rechte->isBerechtigt('lehre/studienordnungInaktiv')))
die('Sie haben keine Berechtigung für diese Seite');
if($rechte->isBerechtigt('lehre/studienordnungInaktiv'))
echo "<script type='text/javascript'>var initSTOs = 'inaktiv';</script>";
$stg_arr = $rechte->getStgKz('lehre/studienordnung');
if(empty($stg_arr))
$stg_arr = $rechte->getStgKz('lehre/studienordnungInaktiv');
$studiengang = new studiengang();
$studiengang->loadArray($stg_arr,'typ,kurzbz');