';
echo '';
+ if($za_simple == 0)
+ {
//Projekt
echo '
| '.$p->t("zeitaufzeichnung/projekt").' |
@@ -570,16 +585,22 @@ if($projekt->getProjekteMitarbeiter($user, true))
echo '';
}
echo ' ';
+ }
+
//Aktivitaet
echo '';
echo '| '.$p->t("zeitaufzeichnung/aktivitaet").' | ';
-
- $qry = "SELECT * FROM fue.tbl_aktivitaet ORDER by sort,beschreibung";
+ //if ($za_simple == 1)
+ $qry = "SELECT * FROM fue.tbl_aktivitaet where aktivitaet_kurzbz in (".$activities_str.") ORDER by sort,beschreibung";
+ //else
+ // $qry = "SELECT * FROM fue.tbl_aktivitaet where sort != 5 or sort is null ORDER by sort,beschreibung";
if($result = $db->db_query($qry))
{
- echo ' | ';
+ if ($za_simple == 0)
+ {
// Service
echo '
| '.$p->t('zeitaufzeichnung/service').' |
@@ -634,6 +657,8 @@ if($projekt->getProjekteMitarbeiter($user, true))
';
echo '| | ';
+ }
+
//Start/Ende
$von_ts = $datum->mktime_fromtimestamp($datum->formatDatum($von, $format='Y-m-d H:i:s'));
$bis_ts = $datum->mktime_fromtimestamp($datum->formatDatum($bis, $format='Y-m-d H:i:s'));
@@ -644,15 +669,28 @@ if($projekt->getProjekteMitarbeiter($user, true))
-
-
- |
- +
-
- min.
- |
-
-
+ | ';
+ if ($za_simple == 0)
+ {
+ echo '
+
+
+
+
+ +
+
+ min.
+
+
+
+ | ';
+ }
+ else
+ {
+ echo ' - | ';
+ }
+ echo '
+
|
diff --git a/config/global.config-default.inc.php b/config/global.config-default.inc.php
index a457962f2..0c4ac7fcc 100644
--- a/config/global.config-default.inc.php
+++ b/config/global.config-default.inc.php
@@ -16,6 +16,7 @@ define('CIS_LEHRVERANSTALTUNG_MAILSTUDIERENDE_ANZEIGEN',true);
define('CIS_LEHRVERANSTALTUNG_STUDENTENUPLOAD_ANZEIGEN',true);
define('CIS_LEHRVERANSTALTUNG_SEMESTERPLAN_ANZEIGEN',true);
define('CIS_LEHRVERANSTALTUNG_LVINFO_ANZEIGEN',true);
+define('CIS_LEHRVERANSTALTUNG_LEISTUNGSUEBERSICHT_ANZEIGEN',true);
define('CIS_LEHRVERANSTALTUNG_SEMESTERINFO_ANZEIGEN',true);
define('CIS_LEHRVERANSTALTUNG_LEHRFACH_ANZEIGEN',false);
define('CIS_LEHRVERANSTALTUNG_GESAMTNOTE_ANZEIGEN', true);
diff --git a/config/vilesci.config-default.inc.php b/config/vilesci.config-default.inc.php
index 91c3490b3..129c9c4fe 100644
--- a/config/vilesci.config-default.inc.php
+++ b/config/vilesci.config-default.inc.php
@@ -132,6 +132,8 @@ define('MAIL_LVPLAN','invalid@technikum-wien.at');
define('MAIL_IT','invalid@technikum-wien.at');
// Support
define('MAIL_SUPPORT','invalid@technikum-wien.at');
+// Lehrgaenge
+define('MAIL_LG','invalid@technikum-wien.at');
// Default Anmerkung fuer neue Lehreinheiten
// Beispiel: 'Abhaengigkeiten von anderen LV\'s\n\nSpez. Software/Equipment:\n\n'
diff --git a/content/dragboard.js.php b/content/dragboard.js.php
index 07012ca78..06ac6bd70 100644
--- a/content/dragboard.js.php
+++ b/content/dragboard.js.php
@@ -458,19 +458,61 @@ var boardObserver=
},
onDragEnter: function (evt,flavour,session)
{
- var styleNow=evt.target.getAttribute("style");
- if (evt.target.tagName=="label")
- evt.target.setAttribute("style","background-color:#AAFFAA;");
- else
- evt.target.setAttribute("style",styleNow+";border:1px dashed black;");
+ if(typeof evt.target.getAttribute == 'function')
+ {
+ var styleNow=evt.target.getAttribute("style");
+ if (evt.target.tagName=="label")
+ {
+ evt.target.setAttribute("style","background-color:#AAFFAA;");
+
+ var tagesinfo = evt.target.parentNode.getElementsByClassName('stplweek_tagesinfo');
+ if(typeof tagesinfo[0]!='undefined')
+ {
+ var Tagesinfostyle = tagesinfo[0].getAttribute("style");
+ tagesinfo[0].setAttribute("style",Tagesinfostyle+";visibility:visible;");
+ }
+ }
+ else
+ {
+ evt.target.setAttribute("style",styleNow+";border:1px dashed black;");
+
+ var tagesinfo = evt.target.getElementsByClassName('stplweek_tagesinfo');
+ if(typeof tagesinfo[0]!='undefined')
+ {
+ var Tagesinfostyle = tagesinfo[0].getAttribute("style");
+ tagesinfo[0].setAttribute("style",Tagesinfostyle+";visibility:visible;");
+ }
+ }
+ }
},
onDragExit: function (evt,flavour,session)
{
- var styleNow=evt.target.getAttribute("style");
- if (evt.target.tagName=="label")
- evt.target.setAttribute("style","");
- else
- evt.target.setAttribute("style",styleNow+";border:1px solid black;");
+ if(typeof evt.target.getAttribute == 'function')
+ {
+ var styleNow=evt.target.getAttribute("style");
+ if (evt.target.tagName=="label")
+ {
+ evt.target.setAttribute("style","");
+
+ var tagesinfo = evt.target.parentNode.getElementsByClassName('stplweek_tagesinfo');
+ if(typeof tagesinfo[0]!='undefined')
+ {
+ var Tagesinfostyle = tagesinfo[0].getAttribute("style");
+ tagesinfo[0].setAttribute("style",Tagesinfostyle+";visibility:hidden;");
+ }
+ }
+ else
+ {
+ evt.target.setAttribute("style",styleNow+";border:1px solid black;");
+
+ var tagesinfo = evt.target.getElementsByClassName('stplweek_tagesinfo');
+ if(typeof tagesinfo[0]!='undefined')
+ {
+ var Tagesinfostyle = tagesinfo[0].getAttribute("style");
+ tagesinfo[0].setAttribute("style",Tagesinfostyle+";visibility:hidden;");
+ }
+ }
+ }
},
onDragOver: function(evt,flavour,session)
{
diff --git a/content/fas.xul.php b/content/fas.xul.php
index ac4426a7d..c5a58bdb0 100644
--- a/content/fas.xul.php
+++ b/content/fas.xul.php
@@ -147,6 +147,8 @@ foreach($addon_obj->result as $addon)
+
+
@@ -721,6 +723,23 @@ foreach($addon_obj->result as $addon)
accesskey = "&menu-dokumente-ausbildungsvertrag_englisch.accesskey;"/>
+
+
db_add_param($mitarbeiter_uid)." AND
studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz)." AND
faktor>0 AND
stundensatz>0 AND
- bismelden
- GROUP BY tbl_organisationseinheit.bezeichnung";
+ bismelden AND
+ tbl_studiengang.oe_kurzbz in(".$db->db_implode4SQL($oe_arr).")
+ GROUP BY tbl_studiengang.bezeichnung";
if($result = $db->db_query($qry))
{
@@ -180,17 +181,19 @@ if(!$error)
FROM lehre.tbl_lehrveranstaltung, lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung as lehrfach
WHERE tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_lehreinheit.lehrveranstaltung_id AND
tbl_lehreinheit.lehrfach_id=lehrfach.lehrveranstaltung_id AND lehreinheit_id=".$db->db_add_param($_POST['lehreinheit_id'], FHC_INTEGER);
+
if($result = $db->db_query($qry))
{
if($row = $db->db_fetch_object($result))
{
$lva = new lehrveranstaltung($row->lehrveranstaltung_id);
-
- if(!$rechte->isBerechtigtMultipleOe('admin', $lva->getAllOe(), 'suid') &&
- !$rechte->isBerechtigtMultipleOe('assistenz', $lva->getAllOe(), 'suid') &&
- !$rechte->isBerechtigtMultipleOe('lv-plan', $lva->getAllOe(), 'suid') &&
- !$rechte->isBerechtigtMultipleOe('assistenz', $lva->getAllOe(), 'suid', $row->fachbereich_kurzbz) &&
- !$rechte->isBerechtigtMultipleOe('admin', $lva->getAllOe(), 'suid', $row->fachbereich_kurzbz))
+ $oe_arr = $lva->getAllOe();
+
+ if(!$rechte->isBerechtigtMultipleOe('admin', $oe_arr, 'suid') &&
+ !$rechte->isBerechtigtMultipleOe('assistenz', $oe_arr, 'suid') &&
+ !$rechte->isBerechtigtMultipleOe('lv-plan', $oe_arr, 'suid') &&
+ !$rechte->isBerechtigtMultipleOe('assistenz', $oe_arr, 'suid', $row->fachbereich_kurzbz) &&
+ !$rechte->isBerechtigtMultipleOe('admin', $oe_arr, 'suid', $row->fachbereich_kurzbz))
{
$error = true;
$return = false;
@@ -280,14 +283,18 @@ if(!$error)
$ma = new mitarbeiter();
$ma->load($lem->mitarbeiter_uid);
$fixangestellt=$ma->fixangestellt;
-
+
+ $oe_obj = new organisationseinheit();
+ $stunden_oe_kurzbz=null;
+
+ $stg_obj = new studiengang();
+ $stg_obj->load($lva->studiengang_kz);
+
//Maximale Stundenanzahl ermitteln
if($fixangestellt)
- $max_stunden = WARN_SEMESTERSTD_FIX;
+ list($stunden_oe_kurzbz, $max_stunden) = $oe_obj->getStundengrenze($stg_obj->oe_kurzbz, true);
else
- {
- $max_stunden = WARN_SEMESTERSTD_FREI;
- }
+ list($stunden_oe_kurzbz, $max_stunden) = $oe_obj->getStundengrenze($stg_obj->oe_kurzbz, false);
//Summe der Stunden ermitteln
$le = new lehreinheit();
@@ -306,23 +313,31 @@ if(!$error)
//Stundenreduzierung immer moeglich
if(($lem->semesterstunden>$semesterstunden_alt) || $neue_stunden_eingerechnet)
{
+ $oe_obj = new organisationseinheit();
+ $oe_arr = $oe_obj->getChilds($stunden_oe_kurzbz);
$qry = "SELECT ";
if($alte_stunden_eingerechnet && $neue_stunden_eingerechnet)
- $qry.=" (sum(semesterstunden)-($semesterstunden_alt)+($lem->semesterstunden)) as summe";
+ $qry.=" (sum(tbl_lehreinheitmitarbeiter.semesterstunden)-($semesterstunden_alt)+($lem->semesterstunden)) as summe";
elseif($alte_stunden_eingerechnet && !$neue_stunden_eingerechnet)
- $qry.=" (sum(semesterstunden)-($semesterstunden_alt)) as summe";
+ $qry.=" (sum(tbl_lehreinheitmitarbeiter.semesterstunden)-($semesterstunden_alt)) as summe";
elseif(!$alte_stunden_eingerechnet && $neue_stunden_eingerechnet)
- $qry.=" (sum(semesterstunden)+($lem->semesterstunden)) as summe";
+ $qry.=" (sum(tbl_lehreinheitmitarbeiter.semesterstunden)+($lem->semesterstunden)) as summe";
elseif(!$alte_stunden_eingerechnet && !$neue_stunden_eingerechnet)
- $qry.=" (sum(semesterstunden)) as summe";
+ $qry.=" (sum(tbl_lehreinheitmitarbeiter.semesterstunden)) as summe";
$qry.=" FROM
- lehre.tbl_lehreinheitmitarbeiter JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
+ lehre.tbl_lehreinheitmitarbeiter
+ JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
+ JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id)
+ JOIN public.tbl_studiengang USING(studiengang_kz)
WHERE
mitarbeiter_uid=".$db->db_add_param($lem->mitarbeiter_uid)." AND
studiensemester_kurzbz=".$db->db_add_param($le->studiensemester_kurzbz)." AND
faktor>0 AND
stundensatz>0 AND
bismelden";
+
+ if(count($oe_arr)>0)
+ $qry.=" AND tbl_studiengang.oe_kurzbz in(".$db->db_implode4SQL($oe_arr).")";
if($db->db_query($qry))
{
@@ -337,7 +352,7 @@ if(!$error)
//Warnung wenn die Stundenzahl ueberschritten wurde
$return = false;
$error = true;
- $errormsg = "ACHTUNG: Die maximal erlaubte Semesterstundenanzahl des Lektors von $max_stunden Stunden wurde ueberschritten!\n Daten wurden NICHT gespeichert!\n\n";
+ $errormsg = "ACHTUNG: Die maximal erlaubte Semesterstundenanzahl des Lektors von $max_stunden Stunden ($stunden_oe_kurzbz) wurde ueberschritten!\n Daten wurden NICHT gespeichert!\n\n";
}
}
else
@@ -345,10 +360,10 @@ if(!$error)
$return = true;
$error = false;
$warnung = true;
- $errormsg = "Hinweis: Die maximal erlaubte Semesterstundenanzahl des Lektors von $max_stunden Stunden wurde ueberschritten!\n Daten wurden gespeichert!\n\n";
+ $errormsg = "Hinweis: Die maximal erlaubte Semesterstundenanzahl des Lektors von $max_stunden Stunden ($stunden_oe_kurzbz) wurde ueberschritten!\n Daten wurden gespeichert!\n\n";
}
- $errormsg.=getStundenproInstitut($lem->mitarbeiter_uid, $le->studiensemester_kurzbz);
+ $errormsg.=getStundenproInstitut($lem->mitarbeiter_uid, $le->studiensemester_kurzbz, $oe_arr);
}
}
else
@@ -480,46 +495,62 @@ if(!$error)
}
$maxstunden=9999;
-
+
+ $oe_obj = new organisationseinheit();
+ $stunden_oe_kurzbz=null;
+
+ $stg_obj = new studiengang();
+ $stg_obj->load($lva->studiengang_kz);
+
+ //Maximale Stundenanzahl ermitteln
if($fixangestellt)
- $max_stunden = WARN_SEMESTERSTD_FIX;
+ list($stunden_oe_kurzbz, $max_stunden) = $oe_obj->getStundengrenze($stg_obj->oe_kurzbz, true);
else
- {
- $max_stunden = WARN_SEMESTERSTD_FREI;
- }
+ list($stunden_oe_kurzbz, $max_stunden) = $oe_obj->getStundengrenze($stg_obj->oe_kurzbz, false);
+
//Bei freien Lektoren muss geprueft werden ob die Stundengrenze erreicht wurde
if(!$fixangestellt && !LehrauftragAufFirma($lem->mitarbeiter_uid))
{
//Summe der Stunden ermitteln
$le = new lehreinheit();
$le->load($lem->lehreinheit_id);
+
+ $oe_obj = new organisationseinheit();
+ $oe_arr = $oe_obj->getChilds($stunden_oe_kurzbz);
$qry = "SELECT
- sum(semesterstunden) as summe
+ sum(tbl_lehreinheitmitarbeiter.semesterstunden) as summe
FROM
- lehre.tbl_lehreinheitmitarbeiter JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
+ lehre.tbl_lehreinheitmitarbeiter
+ JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
+ JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id)
+ JOIN public.tbl_studiengang USING(studiengang_kz)
WHERE
mitarbeiter_uid=".$db->db_add_param($lem->mitarbeiter_uid)." AND
studiensemester_kurzbz=".$db->db_add_param($le->studiensemester_kurzbz)." AND
faktor>0 AND
stundensatz>0 AND
bismelden";
+
+ if(count($oe_arr)>0)
+ $qry.=" AND tbl_studiengang.oe_kurzbz in(".$db->db_implode4SQL($oe_arr).")";
+
if($result_std = $db->db_query($qry))
{
if($row_std = $db->db_fetch_object($result_std))
{
//Grenze ueberschritten
- if($row_std->summe>=WARN_SEMESTERSTD_FREI)
+ if($row_std->summe>=$max_stunden)
{
$return = false;
$error = true;
- $errormsg = "ACHTUNG: Die maximal erlaubte Semesterstundenanzahl des Lektors von $max_stunden Stunden wurde ueberschritten!\n Daten wurden NICHT gespeichert!\n\n";
- $errormsg.=getStundenproInstitut($lem->mitarbeiter_uid, $le->studiensemester_kurzbz);
+ $errormsg = "ACHTUNG: Die maximal erlaubte Semesterstundenanzahl des Lektors von $max_stunden Stunden ($stunden_oe_kurzbz) wurde ueberschritten!\n Daten wurden NICHT gespeichert!\n\n";
+ $errormsg.=getStundenproInstitut($lem->mitarbeiter_uid, $le->studiensemester_kurzbz,$oe_arr);
}
else
{
//Stunden berechnen die noch maximal unterrichtet werden darf
- $maxstunden = WARN_SEMESTERSTD_FREI-$row_std->summe;
+ $maxstunden = $max_stunden-$row_std->summe;
}
}
}
diff --git a/content/lvplanung/lehrveranstaltungoverlay.js.php b/content/lvplanung/lehrveranstaltungoverlay.js.php
index fe986a6fb..1b84e253e 100644
--- a/content/lvplanung/lehrveranstaltungoverlay.js.php
+++ b/content/lvplanung/lehrveranstaltungoverlay.js.php
@@ -759,6 +759,12 @@ function LeAuswahl()
document.getElementById('lehrveranstaltung-tab-lvangebot').collapsed=false;
LvAngebotLoad(lehrveranstaltung_id);
+ if(document.getElementById('lehrveranstaltung-tabs').selectedItem==document.getElementById('lehrveranstaltung-tab-termine'))
+ {
+ // Termine Laden
+ document.getElementById('lehrveranstaltung-termine').setAttribute('src','termine.xul.php?lehrveranstaltung_id='+lehrveranstaltung_id);
+ }
+
LeDetailDisableFields(true);
//Details zuruecksetzen
LeDetailReset();
@@ -779,6 +785,12 @@ function LeAuswahl()
//LV-Angebot Tab ausblenden
document.getElementById('lehrveranstaltung-tab-lvangebot').collapsed=true;
+ if(document.getElementById('lehrveranstaltung-tabs').selectedItem==document.getElementById('lehrveranstaltung-tab-termine'))
+ {
+ // Termine Laden
+ document.getElementById('lehrveranstaltung-termine').setAttribute('src','termine.xul.php?lehreinheit_id='+lehreinheit_id);
+ }
+
document.getElementById('lehrveranstaltung-toolbar-neu').disabled=true;
document.getElementById('lehrveranstaltung-toolbar-del').disabled=false;
@@ -2327,3 +2339,29 @@ function LvAngebotNew()
LvAngebotReset();
LvAngebotGruppeTreeRefresh();
}
+
+/**
+ * Laedt die Termine einer Lehrveranstaltung/Lehreinheit wenn auf den Tab gewechselt wird
+ */
+function LehrveranstaltungTermineIFrameLoad()
+{
+ var tree = document.getElementById('lehrveranstaltung-tree');
+
+ if (tree.currentIndex==-1)
+ return;
+ try
+ {
+ //Ausgewaehlte Lehreinheit holen
+ var col = tree.columns ? tree.columns["lehrveranstaltung-treecol-lehreinheit_id"] : "lehrveranstaltung-treecol-lehreinheit_id";
+ var lehreinheit_id=tree.view.getCellText(tree.currentIndex,col);
+ var col = tree.columns ? tree.columns["lehrveranstaltung-treecol-lehrveranstaltung_id"] : "lehrveranstaltung-treecol-lehrveranstaltung_id";
+ var lehrveranstaltung_id=tree.view.getCellText(tree.currentIndex,col);
+
+ if(lehreinheit_id!='')
+ document.getElementById('lehrveranstaltung-termine').setAttribute('src','termine.xul.php?lehreinheit_id='+lehreinheit_id);
+ else
+ document.getElementById('lehrveranstaltung-termine').setAttribute('src','termine.xul.php?lehrveranstaltung_id='+lehrveranstaltung_id);
+ }
+ catch(e)
+ {}
+}
diff --git a/content/lvplanung/lehrveranstaltungoverlay.xul.php b/content/lvplanung/lehrveranstaltungoverlay.xul.php
index e74717768..fde02e919 100644
--- a/content/lvplanung/lehrveranstaltungoverlay.xul.php
+++ b/content/lvplanung/lehrveranstaltungoverlay.xul.php
@@ -248,6 +248,7 @@ echo '
+
@@ -257,6 +258,7 @@ echo '
+
diff --git a/content/lvplanung/stpl-week-overlay.js.php b/content/lvplanung/stpl-week-overlay.js.php
index a28720349..1d58e41a6 100644
--- a/content/lvplanung/stpl-week-overlay.js.php
+++ b/content/lvplanung/stpl-week-overlay.js.php
@@ -494,7 +494,7 @@ function onStplDetail(event)
window.parent.STPLlastDetailUrl = url;
//alert(url+' - '+window.parent.STPLlastDetailUrl);
var treeStplDetails=parent.document.getElementById('treeStplDetails');
- treeStplDetails.setAttribute('datasources',url);
+ treeStplDetails.setAttribute('datasources',url+"&ts="+gettimestamp());
}
@@ -581,7 +581,7 @@ function STPLDetailSave(dialog)
var treeStplDetails=parent.document.getElementById('treeStplDetails');
//alert('url'+STPLlastDetailUrl);
treeStplDetails.setAttribute('datasources', '');
- treeStplDetails.setAttribute('datasources', STPLlastDetailUrl);
+ treeStplDetails.setAttribute('datasources', STPLlastDetailUrl+"&ts="+gettimestamp());
return true;
}
@@ -642,7 +642,7 @@ function STPLDetailDelete()
var treeStplDetails=parent.document.getElementById('treeStplDetails');
//alert('url'+STPLlastDetailUrl);
treeStplDetails.setAttribute('datasources', '');
- treeStplDetails.setAttribute('datasources', STPLlastDetailUrl);
+ treeStplDetails.setAttribute('datasources', STPLlastDetailUrl+"&ts="+gettimestamp());
}
}
}
diff --git a/content/lvplanung/timetable-week.xul.php b/content/lvplanung/timetable-week.xul.php
index 04cd4fef9..16ed153d1 100644
--- a/content/lvplanung/timetable-week.xul.php
+++ b/content/lvplanung/timetable-week.xul.php
@@ -275,6 +275,10 @@ if ($aktion=='stpl_move' || $aktion=='stpl_set')
$lehrstunde->ort_kurzbz=$ort;
if ($aktion=='stpl_set')
$lehrstunde->ort_kurzbz=$new_ort;
+
+ if($new_unr!='')
+ $lehrstunde->unr = $new_unr;
+
$kollision=$lehrstunde->kollision($db_stpl_table);
if ($kollision && !$ignore_kollision)
$kollision_msg.=$lehrstunde->errormsg;
@@ -308,6 +312,9 @@ if ($aktion=='stpl_move' || $aktion=='stpl_set')
$lehrstunde->ort_kurzbz=$ort;
if ($aktion=='stpl_set')
$lehrstunde->ort_kurzbz=$new_ort;
+ if($new_unr!='')
+ $lehrstunde->unr = $new_unr;
+
$kollision=$lehrstunde->kollision($db_stpl_table);
if ($kollision && !$ignore_kollision)
$kollision_msg.=$lehrstunde->errormsg;
diff --git a/content/mitarbeiter/mitarbeiteroverlay.js.php b/content/mitarbeiter/mitarbeiteroverlay.js.php
index b4eb0dde2..1d8252027 100644
--- a/content/mitarbeiter/mitarbeiteroverlay.js.php
+++ b/content/mitarbeiter/mitarbeiteroverlay.js.php
@@ -601,6 +601,13 @@ function MitarbeiterAuswahl()
// ***** BETRIEBSMITTEL *****
document.getElementById('mitarbeiter-betriebsmittel').setAttribute('src','betriebsmitteloverlay.xul.php?person_id='+person_id+'&uid='+uid);
+
+ if(document.getElementById('mitarbeiter-tabs').selectedItem==document.getElementById('mitarbeiter-tab-termine'))
+ {
+ // ***** Termine *****
+ document.getElementById('mitarbeiter-termine').setAttribute('src','termine.xul.php?mitarbeiter_uid='+uid);
+ }
+
// **** VERWENDUNG ****
verwendungtree = document.getElementById('mitarbeiter-tree-verwendung');
url='rdf/bisverwendung.rdf.php?uid='+uid+"&"+gettimestamp();
@@ -1885,3 +1892,13 @@ function MitarbeiterShowPersonendetails()
person_id = document.getElementById('mitarbeiter-detail-textbox-person_id').value;
window.open('vilesci/personen/personendetails.php?id='+person_id,'Personendetails','');
}
+
+function MitarbeiterTermineIFrameLoad()
+{
+ uid = document.getElementById('mitarbeiter-detail-textbox-uid').value;
+ if(uid!='')
+ {
+ url = 'termine.xul.php?mitarbeiter_uid='+uid+'&ts='+gettimestamp();
+ document.getElementById('mitarbeiter-termine').setAttribute('src',url);
+ }
+}
diff --git a/content/mitarbeiter/mitarbeiteroverlay.xul.php b/content/mitarbeiter/mitarbeiteroverlay.xul.php
index e9b74bb0b..a65f054d3 100644
--- a/content/mitarbeiter/mitarbeiteroverlay.xul.php
+++ b/content/mitarbeiter/mitarbeiteroverlay.xul.php
@@ -258,6 +258,7 @@ echo '';
?>
+
@@ -271,6 +272,7 @@ echo 'isBerechtigt('vertrag/mitarbeiter'))
echo '';
?>
+
diff --git a/content/statistik/lehrauftragsliste_mail.xls.php b/content/statistik/lehrauftragsliste_mail.xls.php
index 83b166a98..54ee84cbc 100644
--- a/content/statistik/lehrauftragsliste_mail.xls.php
+++ b/content/statistik/lehrauftragsliste_mail.xls.php
@@ -43,7 +43,25 @@ if(isset($_GET['stsem']))
else
$semester_aktuell = $stsem->getaktorNext();
+//UID als Kommandozeilenparameter
+if(isset($_SERVER['argv']) && isset($_SERVER['argv'][1]) && !strstr($_SERVER['argv'][1],'='))
+{
+ $oe_kurzbz = $_SERVER['argv'][1];
+}
+else
+{
+ if(isset($_GET['oe_kurzbz']))
+ $oe_kurzbz = $_GET['oe_kurzbz'];
+ else
+ {
+ $stg = new studiengang();
+ $stg->load('0');
+ $oe_kurzbz = $stg->oe_kurzbz;
+ }
+}
+
$file = 'lehrauftragsliste.xls';
+$file = tempnam('/tmp','lehrauftragsliste_').'.xls';
// Creating a workbook
echo 'Lehrauftragslisten werden erstellt. Bitte warten! ';
@@ -51,6 +69,17 @@ flush();
$workbook = new Spreadsheet_Excel_Writer($file);
$workbook->setVersion(8);
$db = new basis_db();
+
+$stg = new studiengang();
+$stg->getStudiengaengeFromOe($oe_kurzbz);
+$stg_arr=array();
+if(count($stg->result)>0)
+{
+ foreach($stg->result as $row)
+ {
+ $stg_arr[] = $row->studiengang_kz;
+ }
+}
//Studiengaenge ermitteln bei denen sich die lektorzuordnung innerhalb der letzten 31 Tage geaendert haben
$qry_stg = "SELECT distinct studiengang_kz
FROM (
@@ -77,13 +106,37 @@ $qry_stg = "SELECT distinct studiengang_kz
tbl_lehreinheit.lehrveranstaltung_id = tbl_lehrveranstaltung.lehrveranstaltung_id
) as foo
";
+if(count($stg_arr)>0)
+ $qry_stg.=" WHERE studiengang_kz in (".$db->db_implode4SQL($stg_arr).")";
+
$liste_gesamt = array();
$gesamt =& $workbook->addWorksheet('Gesamt');
$gesamt->setInputEncoding('utf-8');
$gesamtsheet_row=1;
+//Formate Definieren
+$format_bold =& $workbook->addFormat();
+$format_bold->setBold();
+$workbook->setCustomColor(10, 255, 186, 179);
+$format_colored =& $workbook->addFormat();
+$format_colored->setFgColor(10);
+
+$format_number_colored =& $workbook->addFormat();
+$format_number_colored->setNumFormat('0,0.00');
+//$format_number_colored->setNumFormat('0.00');
+$format_number_colored->setFgColor(10);
+
+$format_number =& $workbook->addFormat();
+$format_number->setNumFormat('0,0.00');
+
+$format_number_bold =& $workbook->addFormat();
+$format_number_bold->setNumFormat('0,0.00');
+//$format_number_bold->setNumFormat('0.00');
+$format_number_bold->setBold();
+
+$format_normal = & $workbook->addFormat();
if($result_stg = $db->db_query($qry_stg))
{
while($row_stg = $db->db_fetch_object($result_stg))
@@ -96,28 +149,6 @@ if($result_stg = $db->db_query($qry_stg))
$worksheet =& $workbook->addWorksheet($studiengang->kuerzel);
$worksheet->setInputEncoding('utf-8');
//echo "Writing $studiengang->kuerzel ...".microtime()." ";
- //Formate Definieren
- $format_bold =& $workbook->addFormat();
- $format_bold->setBold();
-
- $workbook->setCustomColor(10, 255, 186, 179);
- $format_colored =& $workbook->addFormat();
- $format_colored->setFgColor(10);
-
- $format_number_colored =& $workbook->addFormat();
- $format_number_colored->setNumFormat('0,0.00');
- //$format_number_colored->setNumFormat('0.00');
- $format_number_colored->setFgColor(10);
-
- $format_number =& $workbook->addFormat();
- $format_number->setNumFormat('0,0.00');
-
- $format_number_bold =& $workbook->addFormat();
- $format_number_bold->setNumFormat('0,0.00');
- //$format_number_bold->setNumFormat('0.00');
- $format_number_bold->setBold();
-
- $format_normal = & $workbook->addFormat();
$i=0;
$gesamtsheet_row++;
@@ -449,9 +480,15 @@ if($result_stg = $db->db_query($qry_stg))
public.tbl_person JOIN lehre.tbl_projektbetreuer USING (person_id)
JOIN lehre.tbl_projektarbeit USING (projektarbeit_id)
JOIN lehre.tbl_lehreinheit USING (lehreinheit_id)
+ JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id)
WHERE
studiensemester_kurzbz=".$db->db_add_param($semester_aktuell)." AND
- stunden>0
+ stunden>0";
+
+ if(count($stg_arr)>0)
+ $qry.=" AND tbl_lehrveranstaltung.studiengang_kz IN(".$db->db_implode4SQL($stg_arr).")";
+
+ $qry.="
GROUP BY
studiensemester_kurzbz,person_id,nachname,vorname, titelpre
ORDER BY
@@ -469,6 +506,8 @@ if($result_stg = $db->db_query($qry_stg))
$worksheet->write(2,++$i,"Stunden", $format_bold);
$worksheet->write(2,++$i,"Kosten", $format_bold);
+ $format = $format_normal;
+ $formatnb = $format_number;
if($result = $db->db_query($qry))
{
$zeile=3;
@@ -500,14 +539,21 @@ if($result_stg = $db->db_query($qry_stg))
$subject = "Lehrauftragsliste ".date('d.m.Y');
$message = "Dies ist eine automatische eMail!\n\nAnbei die Lehrauftragslisten vom ".date('d.m.Y');
$message.= "\n\nJederzeit abrufbar unter ".APP_ROOT.'content/statistik/lehrauftragsliste_mail.xls.php';
+ if($oe_kurzbz!='')
+ $message.="&oe_kurzbz=".$oe_kurzbz;
+
$fileatttype = "application/xls";
$fileattname = "lehrauftragsliste_".date('Y_m_d').".xls";
- $mail = new mail(MAIL_GST, 'noreply@'.DOMAIN, $subject, $message);
+ $empfaenger = MAIL_GST;
+ if($oe_kurzbz=='lehrgang')
+ $empfaenger = MAIL_LG;
+
+ $mail = new mail($empfaenger, 'noreply@'.DOMAIN, $subject, $message);
$mail->addAttachmentBinary($file, $fileatttype, $fileattname);
if($mail->send())
- echo 'Email mit Lehrauftragslisten wurde an '.MAIL_GST.' versandt!';
+ echo 'Email mit Lehrauftragslisten wurde an '.$empfaenger.' versandt!';
else
echo "Fehler beim Versenden der Lehrauftragsliste";
}
diff --git a/content/statistik/termine.xls.php b/content/statistik/termine.xls.php
new file mode 100644
index 000000000..3c124836e
--- /dev/null
+++ b/content/statistik/termine.xls.php
@@ -0,0 +1,128 @@
+
+ */
+/**
+ * Exportiert die Termine von Lehreinheiten/Lehrveranstaltung/Studierenden/Mitarbeitern
+ */
+require_once('../../config/vilesci.config.inc.php');
+require_once('../../include/rdf.class.php');
+require_once('../../include/basis_db.class.php');
+require_once('../../include/functions.inc.php');
+require_once('../../include/benutzerberechtigung.class.php');
+require_once('../../include/variable.class.php');
+require_once('../../include/lehrstunde.class.php');
+require_once('../../include/datum.class.php');
+require_once('../../include/stunde.class.php');
+require_once('../../include/Excel/excel.php');
+
+$user = get_uid();
+$variable = new variable();
+$variable->loadVariables($user);
+
+$rechte = new benutzerberechtigung();
+$rechte->getBerechtigungen($user);
+
+if(!$rechte->isBerechtigt('assistenz') && !$rechte->isBerechtigt('lvplan') && !$rechte->isBerechtigt('admin'))
+ die($rechte->errormsg);
+
+$stunde = new stunde();
+$stunde->loadAll();
+
+$stunden_arr=array();
+foreach($stunde->stunden as $row)
+{
+ $stunden_arr[$row->stunde]['beginn']=$row->beginn->format('H:i');
+ $stunden_arr[$row->stunde]['ende']=$row->ende->format('H:i');
+}
+$datum_obj = new datum();
+
+$lehrveranstaltung_id = filter_input(INPUT_GET, 'lehrveranstaltung_id');
+$lehreinheit_id = filter_input(INPUT_GET, 'lehreinheit_id');
+$mitarbeiter_uid = filter_input(INPUT_GET,'mitarbeiter_uid');
+$student_uid = filter_input(INPUT_GET,'student_uid');
+
+$db = new basis_db();
+
+$lehrstunde = new lehrstunde();
+//$variable->variable->db_stpl_table
+$lehrstunde->getStundenplanData('stundenplan', $lehrveranstaltung_id, $variable->variable->semester_aktuell, $lehreinheit_id, $mitarbeiter_uid, $student_uid);
+
+ function writecol($zeile, $i, $content)
+ {
+ global $worksheet, $maxlength;
+ $worksheet->write($zeile, $i, $content);
+ if(mb_strlen($content)>$maxlength[$i])
+ $maxlength[$i]=mb_strlen($content);
+ }
+
+ $maxlength= array();
+ $zeile=1;
+
+ // Creating a workbook
+ $workbook = new Spreadsheet_Excel_Writer();
+
+ // sending HTTP headers
+ $workbook->send("Termine". "_" . date("d_m_Y") . ".xls");
+ $workbook->setVersion(8);
+ // Creating a worksheet
+ $worksheet =& $workbook->addWorksheet("Termine");
+ $worksheet->setInputEncoding('utf-8');
+
+ $format_bold =& $workbook->addFormat();
+ $format_bold->setBold();
+
+ $format_title =& $workbook->addFormat();
+ $format_title->setBold();
+ // let's merge
+ $format_title->setAlign('merge');
+
+ //Zeilenueberschriften ausgeben
+ $headline=array('Datum','Von','Bis','Ort','Lektoren','Gruppen','Lehrfach','StundeVon','StundeBis');
+
+ $i=0;
+ foreach ($headline as $title)
+ {
+ $worksheet->write(0,$i,$title, $format_bold);
+ $maxlength[$i]=mb_strlen($title);
+ $i++;
+ }
+
+ foreach($lehrstunde->result as $row)
+ {
+ $i=0;
+
+ writecol($zeile, $i++, $datum_obj->formatDatum($row->datum,'d.m.Y'));
+ writecol($zeile, $i++, $stunden_arr[$row->stundevon]['beginn']);
+ writecol($zeile, $i++, $stunden_arr[$row->stundebis]['ende']);
+ writecol($zeile, $i++, implode(',',$row->orte));
+ writecol($zeile, $i++, implode(',',$row->lektoren));
+ writecol($zeile, $i++, implode(',',$row->gruppen));
+ writecol($zeile, $i++, $row->lehrfach_bezeichnung);
+ writecol($zeile, $i++, $row->stundevon);
+ writecol($zeile, $i++, $row->stundebis);
+
+ $zeile++;
+ }
+
+ //Die Breite der Spalten setzen
+ foreach($maxlength as $i=>$breite)
+ $worksheet->setColumn($i, $i, $breite+2);
+
+ $workbook->close();
+?>
diff --git a/content/student/studentenoverlay.xul.php b/content/student/studentenoverlay.xul.php
index b4f2d2b16..a4731c447 100644
--- a/content/student/studentenoverlay.xul.php
+++ b/content/student/studentenoverlay.xul.php
@@ -369,6 +369,7 @@ else
+
@@ -392,6 +393,7 @@ else
+
diff --git a/content/student/studentoverlay.js.php b/content/student/studentoverlay.js.php
index d0260fe02..97fe5c8f4 100644
--- a/content/student/studentoverlay.js.php
+++ b/content/student/studentoverlay.js.php
@@ -1525,6 +1525,13 @@ function StudentAuswahl()
url = 'content/funktionen.xul.php?uid='+uid;
document.getElementById('student-funktionen').setAttribute('src',url);
}
+
+ // ***** Termine *****
+ if(document.getElementById('student-content-tabs').selectedItem==document.getElementById('student-tab-termine'))
+ {
+ document.getElementById('student-termine').setAttribute('src','termine.xul.php?student_uid='+uid);
+ }
+
}
// Notizen laden
@@ -5289,6 +5296,19 @@ function StudentFunktionIFrameLoad()
}
}
+// ****
+// * Laedt den Termine IFrame
+// ****
+function StudentTermineIFrameLoad()
+{
+ uid = document.getElementById('student-detail-textbox-uid').value;
+ if(uid!='')
+ {
+ url = 'termine.xul.php?student_uid='+uid+'&ts='+gettimestamp();
+ document.getElementById('student-termine').setAttribute('src',url);
+ }
+}
+
// ****
// * Funktionen IFrame ins leere zeigen lassen
// ****
@@ -5387,3 +5407,39 @@ function StudentPrestudentRolleVorruecken()
return true;
}
}
+
+// ****
+// * Öffnet den Studienplan des Studenten im CIS
+// ****
+function StudentCisStudienplan(event)
+{
+ var tree = document.getElementById('student-tree');
+ if (tree.currentIndex == -1)
+ {
+ alert("Bitte wählen Sie einen Studenten aus.");
+ return false;
+ }
+
+ var col = tree.columns ? tree.columns["student-treecol-uid"] : "student-treecol-uid";
+ var uid = tree.view.getCellText(tree.currentIndex,col);
+
+ window.open('cis/private/profile/studienplan.php?uid='+uid);
+}
+
+// ****
+// * Öffnet die Notenliste des Studenten im CIS
+// ****
+function StudentCisNotenliste(event)
+{
+ var tree = document.getElementById('student-tree');
+ if (tree.currentIndex == -1)
+ {
+ alert("Bitte wählen Sie einen Studenten aus.");
+ return false;
+ }
+
+ var col = tree.columns ? tree.columns["student-treecol-uid"] : "student-treecol-uid";
+ var uid = tree.view.getCellText(tree.currentIndex,col);
+
+ window.open('cis/private/lehre/notenliste.php?uid='+uid);
+}
diff --git a/content/termine.js.php b/content/termine.js.php
new file mode 100644
index 000000000..6cd976d77
--- /dev/null
+++ b/content/termine.js.php
@@ -0,0 +1,75 @@
+
+ */
+require_once('../config/vilesci.config.inc.php');
+?>
+// ********** FUNKTIONEN ********** //
+var TermineLehreinheitID='';
+var TermineLehrveranstaltungID='';
+var TermineMitarbeiterUID='';
+var TermineStudentUID='';
+
+// ****
+// * Laedt die Trees
+// ****
+function loadTermine(lehreinheit_id, lehrveranstaltung_id, mitarbeiter_uid, student_uid)
+{
+ netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
+
+ TermineLehreinheitID=lehreinheit_id;
+ TermineLehrveranstaltungID=lehrveranstaltung_id;
+ TermineMitarbeiterUID=mitarbeiter_uid;
+ TermineStudentUID=student_uid;
+
+ //Termine laden
+ url = "rdf/termine.rdf.php?ts="+gettimestamp();
+
+ if(lehreinheit_id!='')
+ url=url+"&lehreinheit_id="+lehreinheit_id;
+ if(lehrveranstaltung_id!='')
+ url=url+"&lehrveranstaltung_id="+lehrveranstaltung_id;
+ if(mitarbeiter_uid!='')
+ url=url+"&mitarbeiter_uid="+mitarbeiter_uid;
+ if(student_uid!='')
+ url=url+"&student_uid="+student_uid;
+
+ var treeTermine=document.getElementById('termine-tree');
+
+ //Alte DS entfernen
+ var oldDatasources = treeTermine.database.GetDataSources();
+ while(oldDatasources.hasMoreElements())
+ {
+ treeTermine.database.RemoveDataSource(oldDatasources.getNext());
+ }
+
+ var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
+ var TerminTreeDatasource = rdfService.GetDataSource(url);
+ TerminTreeDatasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
+ treeTermine.database.AddDataSource(TerminTreeDatasource);
+
+}
+
+/**
+ * Exportiert die Termine
+ */
+function TermineExport()
+{
+ var url = 'statistik/termine.xls.php?lehreinheit_id='+TermineLehreinheitID+'&lehrveranstaltung_id='+TermineLehrveranstaltungID+'&mitarbeiter_uid='+TermineMitarbeiterUID+'&student_uid='+TermineStudentUID;
+ window.open(url);
+}
diff --git a/content/termine.xul.php b/content/termine.xul.php
new file mode 100644
index 000000000..035fe8248
--- /dev/null
+++ b/content/termine.xul.php
@@ -0,0 +1,130 @@
+
+ */
+header("Cache-Control: no-cache");
+header("Cache-Control: post-check=0, pre-check=0",false);
+header("Expires Mon, 26 Jul 1997 05:00:00 GMT");
+header("Pragma: no-cache");
+header("Content-type: application/vnd.mozilla.xul+xml");
+
+require_once('../config/vilesci.config.inc.php');
+
+echo ''."\n";
+
+echo '';
+echo '';
+
+$lehreinheit_id = filter_input(INPUT_GET, 'lehreinheit_id');
+$lehrveranstaltung_id = filter_input(INPUT_GET, 'lehrveranstaltung_id');
+$mitarbeiter_uid = filter_input(INPUT_GET,'mitarbeiter_uid');
+$student_uid = filter_input(INPUT_GET,'student_uid');
+
+?>
+
+);"
+ >
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/include/akte.class.php b/include/akte.class.php
index fbcdc48ea..31bf9a1ca 100644
--- a/include/akte.class.php
+++ b/include/akte.class.php
@@ -342,7 +342,8 @@ class akte extends basis_db
{
$qry = "SELECT
akte_id, person_id, dokument_kurzbz, mimetype, erstelltam, gedruckt,
- titel, bezeichnung, updateamum, insertamum, updatevon, insertvon, uid
+ titel, bezeichnung, updateamum, insertamum, updatevon, insertvon, uid,
+ dms_id,nachgereicht,anmerkung,titel_intern,anmerkung_intern
FROM public.tbl_akte WHERE person_id=".$this->db_add_param($person_id, FHC_INTEGER);
$qry.=" AND dokument_kurzbz IN ('Lebenslf','Motivat','LearnAgr')";
@@ -372,7 +373,7 @@ class akte extends basis_db
$akten->nachgereicht = $this->db_parse_bool($row->nachgereicht);
$akten->anmerkung = $row->anmerkung;
$akten->titel_intern = $row->titel_intern;
- $akten->anmerkung_intern = $row->anmerkung_inter;
+ $akten->anmerkung_intern = $row->anmerkung_intern;
$this->result[] = $akten;
}
diff --git a/include/anwesenheit.class.php b/include/anwesenheit.class.php
index 91c674805..2551acb7a 100644
--- a/include/anwesenheit.class.php
+++ b/include/anwesenheit.class.php
@@ -349,4 +349,39 @@ class anwesenheit extends basis_db
return 'green';
}
}
+
+ /**
+ * Prueft ob Anwesenheiten erfasst wurden
+ * @param $lehreinheit_id ID der Lehreinheit
+ * @param $datum Datum
+ * @param $uid UID des Studierenden
+ * @return boolean true wenn vorhanden, sonst false
+ */
+ public function AnwesenheitExists($lehreinheit_id, $datum, $uid=null)
+ {
+ $qry = "SELECT
+ 1
+ FROM
+ campus.tbl_anwesenheit
+ WHERE
+ anwesend=true
+ AND lehreinheit_id=".$this->db_add_param($lehreinheit_id)."
+ AND datum=".$this->db_add_param($datum);
+
+ if($uid!='')
+ $qry.=" AND uid=".$this->db_add_param($uid);
+
+ if($result = $this->db_query($qry))
+ {
+ if($this->db_num_rows($result)>0)
+ return true;
+ else
+ return false;
+ }
+ else
+ {
+ $this->errormsg = 'Fehler beim Laden der Daten';
+ return false;
+ }
+ }
}
diff --git a/include/basis_db.class.php b/include/basis_db.class.php
index 9e685cfca..5b2c68fe4 100644
--- a/include/basis_db.class.php
+++ b/include/basis_db.class.php
@@ -65,6 +65,7 @@ abstract class db extends basis
abstract function db_parse_bool($var);
abstract function db_implode4SQL($var);
abstract function db_getResultJSON($result = null);
+ abstract function db_parse_array($var);
/**
diff --git a/include/lehrstunde.class.php b/include/lehrstunde.class.php
index ba3fe65d1..9f1739f42 100644
--- a/include/lehrstunde.class.php
+++ b/include/lehrstunde.class.php
@@ -156,6 +156,8 @@ class lehrstunde extends basis_db
$sql_query='UPDATE '.$stpl_table;
$sql_query.=" SET datum=".$this->db_add_param($this->datum).", stunde=".$this->db_add_param($this->stunde);
$sql_query.=", ort_kurzbz=".$this->db_add_param($this->ort_kurzbz).", mitarbeiter_uid=".$this->db_add_param($this->lektor_uid);
+ if($this->unr!='')
+ $sql_query.=", unr=".$this->db_add_param($this->unr);
$sql_query.=", updateamum=now(), updatevon=".$this->db_add_param($uid);
$sql_query.=" WHERE $stpl_id=".$this->db_add_param($this->stundenplan_id);
@@ -889,6 +891,82 @@ class lehrstunde extends basis_db
}
return $result;
}
+
+ public function getStundenplanData($db_stpl_table, $lehrveranstaltung_id=null, $studiensemester_kurzbz=null, $lehreinheit_id=null, $mitarbeiter_uid=null, $student_uid=null)
+ {
+
+ $qry = "SELECT
+ stpl.datum, min(stpl.stunde) as stundevon, max(stpl.stunde) as stundebis,
+ stpl.lehreinheit_id, lehrfach.bezeichnung as lehrfach_bezeichnung,
+ array_agg(
+ CASE WHEN gruppe_kurzbz is not null THEN gruppe_kurzbz
+ ELSE (SELECT UPPER(typ || kurzbz) FROM public.tbl_studiengang WHERE studiengang_kz=stpl.studiengang_kz) || COALESCE(stpl.semester,'0') || COALESCE(stpl.verband,'') || COALESCE(stpl.gruppe,'')
+ END) as gruppen, array_agg(mitarbeiter_uid) as lektoren,
+ array_agg(ort_kurzbz) as orte
+ FROM
+ lehre.tbl_".$db_stpl_table." as stpl
+ JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
+ JOIN lehre.tbl_lehrveranstaltung as lehrfach ON(tbl_lehreinheit.lehrfach_id=lehrfach.lehrveranstaltung_id)
+ WHERE ";
+
+ if($lehrveranstaltung_id!='')
+ {
+ $qry.=" lehreinheit_id in(SELECT lehreinheit_id FROM lehre.tbl_lehreinheit
+ WHERE lehrveranstaltung_id=".$this->db_add_param($lehrveranstaltung_id)."
+ AND studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz).")";
+
+ }
+ elseif($lehreinheit_id!='')
+ {
+ $qry.=" lehreinheit_id=".$this->db_add_param($lehreinheit_id);
+ }
+ elseif($mitarbeiter_uid!='')
+ {
+ $qry.=" mitarbeiter_uid=".$this->db_add_param($mitarbeiter_uid)." AND lehreinheit_id IN(
+ SELECT
+ lehreinheit_id
+ FROM
+ lehre.tbl_lehreinheitmitarbeiter
+ JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
+ WHERE mitarbeiter_uid=".$this->db_add_param($mitarbeiter_uid)." AND studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz).")";
+ }
+ elseif($student_uid!='')
+ {
+ $qry.=" lehreinheit_id in (
+ SELECT
+ lehreinheit_id
+ FROM
+ campus.vw_student_lehrveranstaltung
+ WHERE
+ uid=".$this->db_add_param($student_uid)." AND studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz).")";
+ }
+ else
+ return false;
+
+ $qry.="GROUP BY stpl.datum, stpl.unr, stpl.lehreinheit_id, lehrfach.bezeichnung
+ ORDER BY stpl.datum, min(stpl.stunde), stpl.unr, stpl.lehreinheit_id";
+ if($result = $this->db_query($qry))
+ {
+ while($row = $this->db_fetch_object($result))
+ {
+ $obj = new stdClass();
+
+ $obj->datum = $row->datum;
+ $obj->stundevon = $row->stundevon;
+ $obj->stundebis = $row->stundebis;
+ $obj->gruppen = array_unique($this->db_parse_array($row->gruppen));
+ $obj->lektoren = array_unique($this->db_parse_array($row->lektoren));
+ $obj->orte = array_unique($this->db_parse_array($row->orte));
+ $obj->lehrfach_bezeichnung = $row->lehrfach_bezeichnung;
+ $obj->lehreinheit_id = $row->lehreinheit_id;
+
+ $this->result[] = $obj;
+ }
+ return true;
+ }
+ else
+ return false;
+ }
}
?>
diff --git a/include/organisationseinheit.class.php b/include/organisationseinheit.class.php
index a82754d48..0b3f11972 100644
--- a/include/organisationseinheit.class.php
+++ b/include/organisationseinheit.class.php
@@ -724,5 +724,42 @@ class organisationseinheit extends basis_db
return false;
}
}
+
+ /**
+ * Ermittelt die Stundenobergrenze fuer Lektoren
+ * Dabei wird im OE Baum nach oben nach Stundengrenzen gesucht und die niedrigste Stundengrenze ermittelt
+ * @param $oe_kurzbz Organisationseinheit
+ * @param $fixangestellt boolean legt fest ob die Grenze
+ * fuer Freie oder Fixangestellte Lektoren ermittelt werden soll
+ * @return array(oe_kurzbz, numeric Anzahl der Stunden)
+ */
+ public function getStundengrenze($oe_kurzbz, $fixangestellt=true)
+ {
+ if($fixangestellt)
+ $fixfrei='fix';
+ else
+ $fixfrei='frei';
+
+ $qry = "
+ WITH RECURSIVE oes(oe_kurzbz, oe_parent_kurzbz) as
+ (
+ SELECT oe_kurzbz, oe_parent_kurzbz FROM public.tbl_organisationseinheit
+ WHERE oe_kurzbz=".$this->db_add_param($oe_kurzbz)."
+ UNION ALL
+ SELECT o.oe_kurzbz, o.oe_parent_kurzbz FROM public.tbl_organisationseinheit o, oes
+ WHERE o.oe_kurzbz=oes.oe_parent_kurzbz
+ )
+ SELECT oe_kurzbz, warn_semesterstunden_".$fixfrei." as stunden
+ FROM oes JOIN public.tbl_organisationseinheit USING(oe_kurzbz)
+ ORDER BY warn_semesterstunden_".$fixfrei." asc limit 1";
+
+ if($result = $this->db_query($qry))
+ {
+ if($row = $this->db_fetch_object($result))
+ {
+ return array($row->oe_kurzbz, $row->stunden);
+ }
+ }
+ }
}
?>
diff --git a/include/pgsql.class.php b/include/pgsql.class.php
index 59149d57b..7bfc118be 100644
--- a/include/pgsql.class.php
+++ b/include/pgsql.class.php
@@ -342,5 +342,23 @@ class basis_db extends db
}
return $string;
}
+
+ /**
+ * Erstellt aus einem DB Array ein PHP Array
+ * @param $var DB Result Array Spalte
+ * @return php array
+ */
+ public function db_parse_array($var)
+ {
+ if ($var == '')
+ return;
+ preg_match_all('/(?<=^\{|,)(([^,"{]*)|\s*"((?:[^"\\\\]|\\\\(?:.|[0-9]+|x[0-9a-f]+))*)"\s*)(,|(?
diff --git a/include/studiengang.class.php b/include/studiengang.class.php
index feacdc14e..eca42c375 100644
--- a/include/studiengang.class.php
+++ b/include/studiengang.class.php
@@ -798,4 +798,78 @@ class studiengang extends basis_db
return false;
}
}
+
+ /**
+ * Laedt alle Studiengaenge in einer Organisationseinheit
+ * @param varchar $oe_kurzbz Organisationseinheit
+ * @param boolean $aktiv Wenn true dann werden nur aktive Studiengaenge geliefert
+ * @return boolean
+ */
+ public function getStudiengaengeFromOe($oe_kurzbz, $aktiv=true)
+ {
+ $qry ="WITH RECURSIVE oes(oe_kurzbz) as
+ (
+ SELECT oe_kurzbz FROM public.tbl_organisationseinheit WHERE oe_kurzbz=".$this->db_add_param($oe_kurzbz)."
+ UNION
+ SELECT tbl_organisationseinheit.oe_kurzbz FROM public.tbl_organisationseinheit JOIN oes ON(oe_parent_kurzbz=oes.oe_kurzbz)
+ )
+ SELECT * FROM public.tbl_studiengang JOIN oes USING(oe_kurzbz) WHERE oe_kurzbz = oes.oe_kurzbz";
+
+ if($aktiv===true)
+ {
+ $qry.=" AND tbl_studiengang.aktiv";
+ }
+
+ if($this->db_query($qry))
+ {
+ while($row = $this->db_fetch_object())
+ {
+ $obj = new studiengang();
+
+ $obj->studiengang_kz = $row->studiengang_kz;
+ $obj->kurzbz = $row->kurzbz;
+ $obj->kurzbzlang = $row->kurzbzlang;
+ $obj->bezeichnung = $row->bezeichnung;
+ $obj->english = $row->english;
+ $obj->typ = $row->typ;
+ $obj->farbe = $row->farbe;
+ $obj->email = $row->email;
+ $obj->max_semester = $row->max_semester;
+ $obj->max_verband = $row->max_verband;
+ $obj->max_gruppe = $row->max_gruppe;
+ $obj->erhalter_kz = $row->erhalter_kz;
+ $obj->bescheid = $row->bescheid;
+ $obj->bescheidbgbl1 = $row->bescheidbgbl1;
+ $obj->bescheidbgbl2 = $row->bescheidbgbl2;
+ $obj->bescheidgz = $row->bescheidgz;
+ $obj->bescheidvom = $row->bescheidvom;
+ $obj->ext_id = $row->ext_id;
+ $obj->kuerzel = mb_strtoupper($row->typ . $row->kurzbz);
+ $obj->orgform_kurzbz = $row->orgform_kurzbz;
+ $obj->zusatzinfo_html = $row->zusatzinfo_html;
+ $obj->sprache = $row->sprache;
+ $obj->testtool_sprachwahl = $this->db_parse_bool($row->testtool_sprachwahl);
+ $obj->studienplaetze = $row->studienplaetze;
+ $obj->oe_kurzbz = $row->oe_kurzbz;
+ $obj->lgartcode = $row->lgartcode;
+ $obj->telefon = $row->telefon;
+ $obj->titelbescheidvom = $row->titelbescheidvom;
+ $obj->onlinebewerbung = $this->db_parse_bool($row->onlinebewerbung);
+ $obj->moodle = $this->db_parse_bool($row->moodle);
+ $obj->mischform = $this->db_parse_bool($row->mischform);
+ $obj->projektarbeit_note_anzeige = $this->db_parse_bool($row->projektarbeit_note_anzeige);
+
+ $obj->bezeichnung_arr['German'] = $obj->bezeichnung;
+ $obj->bezeichnung_arr['English'] = $obj->english;
+
+ $this->result[] = $obj;
+ }
+ return true;
+ }
+ else
+ {
+ $this->errormsg = "Fehler bei der Datenbankabfrage aufgetreten.";
+ return false;
+ }
+ }
}
diff --git a/include/tw/cis_menu_lv.inc.php b/include/tw/cis_menu_lv.inc.php
index 5db91a048..3102c9e34 100644
--- a/include/tw/cis_menu_lv.inc.php
+++ b/include/tw/cis_menu_lv.inc.php
@@ -273,76 +273,79 @@ function checkZeilenUmbruch()
checkZeilenUmbruch();
- $eintraegeprozeile++;
- echo '';
+ if(CIS_LEHRVERANSTALTUNG_LEISTUNGSUEBERSICHT_ANZEIGEN || $is_lector)
+ {
- if($angemeldet || $is_lector)
- echo ' ';
+ $eintraegeprozeile++;
+ echo ' | ';
+
+ if((CIS_LEHRVERANSTALTUNG_LEISTUNGSUEBERSICHT_ANZEIGEN && $angemeldet) || $is_lector)
+ echo ' ';
- if($is_lector)
- {
- //Anwesenheitsliste
- echo "".$p->t('lehre/anwesenheitsUndNotenlisten')." ";
- }
+ if($is_lector)
+ {
+ //Anwesenheitsliste
+ echo "".$p->t('lehre/anwesenheitsUndNotenlisten')." ";
+ }
- //Leistungsuebersicht
- $dir_name=$DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester.'/'.mb_strtolower($short_short_name).'/leistung';
+ //Leistungsuebersicht
+ $dir_name=$DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester.'/'.mb_strtolower($short_short_name).'/leistung';
- $dest_dir = @dir($dir_name);
- if(!@is_dir($dest_dir->path))
- {
- if(!@is_dir(DOC_ROOT.'/documents/'.mb_strtolower($kurzbz)))
+ $dest_dir = @dir($dir_name);
+ if(!@is_dir($dest_dir->path))
{
- exec('mkdir -m 755 '.escapeshellarg(DOC_ROOT.'/documents/'.mb_strtolower($kurzbz)));
- exec('sudo chown www-data:teacher '.escapeshellarg(DOC_ROOT.'/documents/'.mb_strtolower($kurzbz)));
- }
- if(!@is_dir(DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester))
- {
- exec('mkdir -m 755 '.escapeshellarg(DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester));
- exec('sudo chown www-data:teacher '.escapeshellarg(DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester));
- }
- if(!@is_dir(DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester.'/'.mb_strtolower($short_short_name)))
- {
- exec('mkdir -m 755 '.escapeshellarg(DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester.'/'.mb_strtolower($short_short_name)));
- exec('sudo chown www-data:teacher '.escapeshellarg(DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester.'/'.mb_strtolower($short_short_name)));
- }
- if(!@is_dir(DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester.'/'.mb_strtolower($short_short_name).'/leistung'))
- {
- exec('mkdir -m 775 '.escapeshellarg(DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester.'/'.mb_strtolower($short_short_name).'/leistung'));
- exec('sudo chown www-data:teacher '.escapeshellarg(DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester.'/'.mb_strtolower($short_short_name).'/leistung'));
- }
- }
-
- if($dest_dir)
- {
- $dir_empty = true;
-
- while($entry = $dest_dir->read())
- {
- if($entry != "." && $entry != "..")
+ if(!@is_dir(DOC_ROOT.'/documents/'.mb_strtolower($kurzbz)))
{
- $dir_empty = false;
-
- break;
+ exec('mkdir -m 755 '.escapeshellarg(DOC_ROOT.'/documents/'.mb_strtolower($kurzbz)));
+ exec('sudo chown www-data:teacher '.escapeshellarg(DOC_ROOT.'/documents/'.mb_strtolower($kurzbz)));
+ }
+ if(!@is_dir(DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester))
+ {
+ exec('mkdir -m 755 '.escapeshellarg(DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester));
+ exec('sudo chown www-data:teacher '.escapeshellarg(DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester));
+ }
+ if(!@is_dir(DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester.'/'.mb_strtolower($short_short_name)))
+ {
+ exec('mkdir -m 755 '.escapeshellarg(DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester.'/'.mb_strtolower($short_short_name)));
+ exec('sudo chown www-data:teacher '.escapeshellarg(DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester.'/'.mb_strtolower($short_short_name)));
+ }
+ if(!@is_dir(DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester.'/'.mb_strtolower($short_short_name).'/leistung'))
+ {
+ exec('mkdir -m 775 '.escapeshellarg(DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester.'/'.mb_strtolower($short_short_name).'/leistung'));
+ exec('sudo chown www-data:teacher '.escapeshellarg(DOC_ROOT.'/documents/'.mb_strtolower($kurzbz).'/'.$semester.'/'.mb_strtolower($short_short_name).'/leistung'));
}
}
- }
- if($angemeldet || $is_lector)
- {
- if(isset($dest_dir) && isset($dir_empty) && $dir_empty == false)
- {
- echo '';
- echo ''.$p->t('lehre/leistungsuebersicht').'';
- echo '';
- }
- else
- {
- echo ''.$p->t('lehre/leistungsuebersicht').'';
- }
- }
- echo ' | ';
-
+ if($dest_dir)
+ {
+ $dir_empty = true;
+
+ while($entry = $dest_dir->read())
+ {
+ if($entry != "." && $entry != "..")
+ {
+ $dir_empty = false;
+
+ break;
+ }
+ }
+ }
+ if(CIS_LEHRVERANSTALTUNG_LEISTUNGSUEBERSICHT_ANZEIGEN && ($angemeldet || $is_lector))
+ {
+ if(isset($dest_dir) && isset($dir_empty) && $dir_empty == false)
+ {
+ echo '';
+ echo ''.$p->t('lehre/leistungsuebersicht').'';
+ echo '';
+ }
+ else
+ {
+ echo ''.$p->t('lehre/leistungsuebersicht').'';
+ }
+ }
+
+ echo '';
+ }
checkZeilenUmbruch();
//Keine Newsgroups fuer Studiengang '0' (Freifaecher) anzeigen
diff --git a/include/wochenplan.class.php b/include/wochenplan.class.php
index 4aac262b2..ce6c1a82a 100644
--- a/include/wochenplan.class.php
+++ b/include/wochenplan.class.php
@@ -1356,6 +1356,7 @@ class wochenplan extends basis_db
$z=0;
$reservierung=false;
$stundenplan_ids=array();
+ $titel='';
if(isset($raumcheck))
unset($raumcheck);
@@ -1401,7 +1402,7 @@ class wochenplan extends basis_db
}
if(isset($lehrstunde->farbe) && $farbe=='')
$farbe=$lehrstunde->farbe;
- $titel=htmlspecialchars($lehrstunde->titel);
+ $titel.=htmlspecialchars($lehrstunde->titel);
$anmerkung=htmlspecialchars($lehrstunde->anmerkung);
$tooltip_anmerkung[]=$titel.' '.$anmerkung;
}
@@ -1417,9 +1418,12 @@ class wochenplan extends basis_db
if(isset($lktcheck[$lehrstunde->lektor]) && $lktcheck[$lehrstunde->lektor]!=$lehrstunde->unr)
{
- $kollision++;
- $kollisionsmeldungen[$lehrstunde->unr][]=" LektorIn ".$lehrstunde->lektor; //." ".$lehrstunde->unr."!=".$lktcheck[$lehrstunde->lektor];
- $kollisionsmeldungen[$lktcheck[$lehrstunde->lektor]][]=" LektorIn ".$lehrstunde->lektor; //." ".$lehrstunde->unr."!=".$lktcheck[$lehrstunde->lektor];
+ if(!in_array($lehrstunde->lektor_uid, unserialize(KOLLISIONSFREIE_USER)))
+ {
+ $kollision++;
+ $kollisionsmeldungen[$lehrstunde->unr][]=" LektorIn ".$lehrstunde->lektor; //." ".$lehrstunde->unr."!=".$lktcheck[$lehrstunde->lektor];
+ $kollisionsmeldungen[$lktcheck[$lehrstunde->lektor]][]=" LektorIn ".$lehrstunde->lektor; //." ".$lehrstunde->unr."!=".$lktcheck[$lehrstunde->lektor];
+ }
}
else
$lktcheck[$lehrstunde->lektor]=$lehrstunde->unr;
diff --git a/include/zeitsperre.class.php b/include/zeitsperre.class.php
index 5f43008b5..0d049275e 100755
--- a/include/zeitsperre.class.php
+++ b/include/zeitsperre.class.php
@@ -482,7 +482,7 @@ class zeitsperre extends basis_db
$qry = "select datum::date, freigabevon, zeitsperretyp_kurzbz
from (SELECT generate_series(vondatum::timestamp, bisdatum::timestamp, '1 day') as datum, freigabevon, mitarbeiter_uid, zeitsperretyp_kurzbz FROM campus.tbl_zeitsperre where vonstunde is null and bisstunde is null) a
- where a.mitarbeiter_uid = ".$this->db_add_param($uid)." and datum>(now() - interval '50 Days') and zeitsperretyp_kurzbz in ('Krank','Urlaub', 'ZA', 'DienstV')";
+ where a.mitarbeiter_uid = ".$this->db_add_param($uid)." and datum>(now() - interval '50 Days') and zeitsperretyp_kurzbz in ('Krank','Urlaub', 'ZA', 'DienstV','PflegeU')";
diff --git a/locale/de-AT/fas.dtd b/locale/de-AT/fas.dtd
index b3dbd2ed8..c61725081 100644
--- a/locale/de-AT/fas.dtd
+++ b/locale/de-AT/fas.dtd
@@ -285,6 +285,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/locale/de-AT/zeitsperre.php b/locale/de-AT/zeitsperre.php
old mode 100644
new mode 100755
index f757c0bab..22d385a3f
--- a/locale/de-AT/zeitsperre.php
+++ b/locale/de-AT/zeitsperre.php
@@ -15,7 +15,7 @@ $this->phrasen['zeitsperre/edit']='edit';
$this->phrasen['zeitsperre/loeschen']='löschen';
$this->phrasen['zeitsperre/wollenSieEintragWirklichLoeschen']='Wollen Sie diesen Eintrag wirklich löschen';
$this->phrasen['zeitsperre/stundeInklusive']='Stunde (inklusive)';
-$this->phrasen['zeitsperre/achtungEsWerdenAlleEingegebenenTage']='Achtung: Es werden alle eingegebenen Tage bei der Berechnung berücksichtigt. Daher müssen mehrtägige Zeitsperren an Unterbrechungen wie Wochenenden oder Feiertagen unterteilt werden!';
+$this->phrasen['zeitsperre/achtungEsWerdenAlleEingegebenenTage']='Achtung: Es werden alle eingegebenen Tage bei der Berechnung berücksichtigt. Daher müssen mehrtägige Zeitsperren an Unterbrechungen wie Wochenenden oder Feiertagen unterteilt werden!';
$this->phrasen['zeitsperre/urlaubImGeschaeftsjahr']='Urlaub im Geschäftsjahr';
$this->phrasen['zeitsperre/sieHabenKeineBerechtigungZuAendern']='Sie haben keine Berechtigung die Zeitsperre zu ändern.';
$this->phrasen['zeitsperre/vonDatumIstUngueltigNullenAngeben']='Von-Datum ist ungültig. Bitte beachten Sie, dass führende Nullen angegeben werden müssen (Beispiel: 01.01.2008)';
diff --git a/locale/de-SFU/fas.dtd b/locale/de-SFU/fas.dtd
index 52c47f3d7..3608b4536 100644
--- a/locale/de-SFU/fas.dtd
+++ b/locale/de-SFU/fas.dtd
@@ -282,6 +282,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/locale/en-US/zeitsperre.php b/locale/en-US/zeitsperre.php
old mode 100644
new mode 100755
index 5fce34644..61033d3de
--- a/locale/en-US/zeitsperre.php
+++ b/locale/en-US/zeitsperre.php
@@ -15,7 +15,7 @@ $this->phrasen['zeitsperre/edit']='edit';
$this->phrasen['zeitsperre/loeschen']='delete';
$this->phrasen['zeitsperre/wollenSieEintragWirklichLoeschen']='Do you want to delete this entry';
$this->phrasen['zeitsperre/stundeInklusive']='Hour (inclusive)';
-$this->phrasen['zeitsperre/achtungEsWerdenAlleEingegebenenTage']='Notice: All the days entered will be considered vacation days! Therefore, it is necessary to divide longer vacations so that they do not include weekends or holidays!';
+$this->phrasen['zeitsperre/achtungEsWerdenAlleEingegebenenTage']='Notice: All the days entered will be considered vacation days! Therefore, it is necessary to divide longer vacations so that they do not include weekends or holidays!';
$this->phrasen['zeitsperre/urlaubImGeschaeftsjahr']='Vacation in business year';
$this->phrasen['zeitsperre/sieHabenKeineBerechtigungZuAendern']='You are not authorized to change this unvailability.';
$this->phrasen['zeitsperre/vonDatumIstUngueltigNullenAngeben']='The vacation start date is invalid. Please note that the dates are to be given in the following format dd.mm.yyyy (Example: 31.01.2012)';
diff --git a/rdf/termine.rdf.php b/rdf/termine.rdf.php
new file mode 100644
index 000000000..fc31016c8
--- /dev/null
+++ b/rdf/termine.rdf.php
@@ -0,0 +1,97 @@
+
+ */
+require_once('../config/vilesci.config.inc.php');
+require_once('../include/rdf.class.php');
+require_once('../include/basis_db.class.php');
+require_once('../include/functions.inc.php');
+require_once('../include/benutzerberechtigung.class.php');
+require_once('../include/variable.class.php');
+require_once('../include/lehrstunde.class.php');
+require_once('../include/datum.class.php');
+require_once('../include/stunde.class.php');
+require_once('../include/anwesenheit.class.php');
+
+$user = get_uid();
+
+$rechte = new benutzerberechtigung();
+$rechte->getBerechtigungen($user);
+if(!$rechte->isBerechtigt('assistenz') && !$rechte->isBerechtigt('lvplan') && !$rechte->isBerechtigt('admin'))
+ die($rechte->errormsg);
+
+$variable = new variable();
+$variable->loadVariables($user);
+
+$stunde = new stunde();
+$stunde->loadAll();
+
+$stunden_arr=array();
+foreach($stunde->stunden as $row)
+{
+ $stunden_arr[$row->stunde]['beginn']=$row->beginn->format('H:i');
+ $stunden_arr[$row->stunde]['ende']=$row->ende->format('H:i');
+}
+$datum_obj = new datum();
+
+$oRdf = new rdf('TERMINE','http://www.technikum-wien.at/termine');
+
+$lehrveranstaltung_id = filter_input(INPUT_GET, 'lehrveranstaltung_id');
+$lehreinheit_id = filter_input(INPUT_GET, 'lehreinheit_id');
+$mitarbeiter_uid = filter_input(INPUT_GET,'mitarbeiter_uid');
+$student_uid = filter_input(INPUT_GET,'student_uid');
+
+$oRdf->sendHeader();
+$db = new basis_db();
+
+$lehrstunde = new lehrstunde();
+//$variable->variable->db_stpl_table
+$lehrstunde->getStundenplanData('stundenplan', $lehrveranstaltung_id, $variable->variable->semester_aktuell, $lehreinheit_id, $mitarbeiter_uid, $student_uid);
+
+$i=0;
+if(isset($lehrstunde->result) && is_array($lehrstunde->result))
+{
+ foreach($lehrstunde->result as $row)
+ {
+ $i=$oRdf->newObjekt($i);
+ $oRdf->obj[$i]->setAttribut('datum',$datum_obj->formatDatum($row->datum,'d.m.Y'),true);
+ $oRdf->obj[$i]->setAttribut('stundevon',$row->stundevon,true);
+ $oRdf->obj[$i]->setAttribut('stundebis',$row->stundebis,true);
+ $oRdf->obj[$i]->setAttribut('uhrzeitvon',$stunden_arr[$row->stundevon]['beginn'],true);
+ $oRdf->obj[$i]->setAttribut('uhrzeitbis',$stunden_arr[$row->stundebis]['ende'],true);
+ $oRdf->obj[$i]->setAttribut('gruppen',implode(',',$row->gruppen),true);
+ $oRdf->obj[$i]->setAttribut('lektor',implode(',',$row->lektoren),true);
+ $oRdf->obj[$i]->setAttribut('ort',implode(',',$row->orte),true);
+ $oRdf->obj[$i]->setAttribut('lehrfach',$row->lehrfach_bezeichnung,true);
+ $oRdf->obj[$i]->setAttribut('lehreinheit_id',$row->lehreinheit_id,true);
+
+ $anwesenheit = new anwesenheit();
+ if($anwesenheit->AnwesenheitExists($row->lehreinheit_id, $row->datum, $student_uid))
+ $anwesend='Ja';
+ else
+ $anwesend='Nein';
+ $oRdf->obj[$i]->setAttribut('anwesend',$anwesend,true);
+ $oRdf->obj[$i]->setAttribut('datum_iso',$row->datum,true);
+
+
+ $oRdf->addSequence($i);
+ $i++;
+ }
+}
+$oRdf->sendRdfText();
+?>
diff --git a/skin/tempus.css b/skin/tempus.css
index 52c5fa1e1..0b48efb26 100644
--- a/skin/tempus.css
+++ b/skin/tempus.css
@@ -154,11 +154,11 @@ toolbarbutton.stplweekoverlay-toolbarbutton:hover
.stplweek_vbox:hover .stplweek_tagesinfo
{
- color: #AAAAAA;
visibility:visible;
}
.stplweek_tagesinfo
{
+ color: #AAAAAA;
visibility:hidden;
}
diff --git a/system/checksystem.php b/system/checksystem.php
index f90c147d1..10e5d89f0 100644
--- a/system/checksystem.php
+++ b/system/checksystem.php
@@ -3146,6 +3146,20 @@ if($result = @$db->db_query("SELECT 1 FROM system.tbl_berechtigung WHERE berecht
}
}
+// Neue Spalte fuer maximale Stundenanzahl bei OE
+if(!$result = @$db->db_query("SELECT warn_semesterstunden_frei FROM public.tbl_organisationseinheit LIMIT 1"))
+{
+ $qry = "
+ ALTER TABLE public.tbl_organisationseinheit ADD COLUMN warn_semesterstunden_frei numeric(8,2);
+ ALTER TABLE public.tbl_organisationseinheit ADD COLUMN warn_semesterstunden_fix numeric(8,2);
+ ";
+
+ if(!$db->db_query($qry))
+ echo 'public.tbl_organisationseinheit '.$db->db_last_error().' ';
+ else
+ echo ' public.tbl_organisationseinheit: neue Spalte warn_semesterstunden_frei, warn_semesterstunden_fix hinzugefuegt! ';
+}
+
echo '
';
$tabellen=array(
@@ -3195,7 +3209,7 @@ $tabellen=array(
"campus.tbl_freebusy" => array("freebusy_id","uid","freebusytyp_kurzbz","url","aktiv","bezeichnung","insertamum","insertvon","updateamum","updatevon"),
"campus.tbl_freebusytyp" => array("freebusytyp_kurzbz","bezeichnung","beschreibung","url_vorlage"),
"campus.tbl_infoscreen" => array("infoscreen_id","bezeichnung","beschreibung","ipadresse"),
- "campus.tbl_infoscreen_content" => array("infoscreen_content_id","infoscreen_id","content_id","gueltigvon","gueltigbis","insertamum","insertvon","updateamum","updatevon","refreshzeit"),
+ "campus.tbl_infoscreen_content" => array("infoscreen_content_id","infoscreen_id","content_id","gueltigvon","gueltigbis","insertamum","insertvon","updateamum","updatevon","refreshzeit","exklusiv"),
"campus.tbl_legesamtnote" => array("student_uid","lehreinheit_id","note","benotungsdatum","updateamum","updatevon","insertamum","insertvon"),
"campus.tbl_lehre_tools" => array("lehre_tools_id","bezeichnung","kurzbz","basis_url","logo_dms_id"),
"campus.tbl_lehre_tools_organisationseinheit" => array("lehre_tools_id","oe_kurzbz","aktiv"),
@@ -3327,7 +3341,7 @@ $tabellen=array(
"public.tbl_notiz_dokument" => array("notiz_id","dms_id"),
"public.tbl_ort" => array("ort_kurzbz","bezeichnung","planbezeichnung","max_person","lehre","reservieren","aktiv","lageplan","dislozierung","kosten","ausstattung","updateamum","updatevon","insertamum","insertvon","ext_id","stockwerk","standort_id","telefonklappe","content_id","m2","gebteil","oe_kurzbz"),
"public.tbl_ortraumtyp" => array("ort_kurzbz","hierarchie","raumtyp_kurzbz"),
- "public.tbl_organisationseinheit" => array("oe_kurzbz", "oe_parent_kurzbz", "bezeichnung","organisationseinheittyp_kurzbz", "aktiv","mailverteiler","freigabegrenze","kurzzeichen","lehre","standort"),
+ "public.tbl_organisationseinheit" => array("oe_kurzbz", "oe_parent_kurzbz", "bezeichnung","organisationseinheittyp_kurzbz", "aktiv","mailverteiler","freigabegrenze","kurzzeichen","lehre","standort","warn_semesterstunden_frei","warn_semesterstunden_fix"),
"public.tbl_organisationseinheittyp" => array("organisationseinheittyp_kurzbz", "bezeichnung", "beschreibung"),
"public.tbl_person" => array("person_id","staatsbuergerschaft","geburtsnation","sprache","anrede","titelpost","titelpre","nachname","vorname","vornamen","gebdatum","gebort","gebzeit","foto","anmerkung","homepage","svnr","ersatzkennzeichen","familienstand","geschlecht","anzahlkinder","aktiv","insertamum","insertvon","updateamum","updatevon","ext_id","bundesland_code","kompetenzen","kurzbeschreibung","zugangscode", "foto_sperre","matr_nr"),
"public.tbl_person_fotostatus" => array("person_fotostatus_id","person_id","fotostatus_kurzbz","datum","insertamum","insertvon","updateamum","updatevon"),
|