diff --git a/cis/private/lehre/pruefung/pruefung.js.php b/cis/private/lehre/pruefung/pruefung.js.php
index aafcf9710..247ee950e 100644
--- a/cis/private/lehre/pruefung/pruefung.js.php
+++ b/cis/private/lehre/pruefung/pruefung.js.php
@@ -352,8 +352,12 @@ function writePruefungsTable(e, data, anmeldung)
var termin = d.von.split(" ");
var time = termin[1].substring(0,5);
termin = termin[0].split("-");
- var minimumFrist = new Date(termin[0], termin[1]-1,termin[2]);
- minimumFrist.setMonth(minimumFrist.getMonth() - 2);
+
+ // Wie viele Monate vor Prüfungen dürfen sich Studierende anmelden?
+ // Sperre "deaktiviert" indem man sich 24 Monate vorher anmelden darf
+ var minimumFrist = new Date(termin[0], termin[1]-1,termin[2]);
+ minimumFrist.setMonth(minimumFrist.getMonth() - 24);
+
termin = new Date(termin[0], termin[1]-1,termin[2]);
var frist = termin;
termin = termin.getDate()+"."+(termin.getMonth()+1)+"."+termin.getFullYear();
diff --git a/cis/private/profile/index.php b/cis/private/profile/index.php
index 3117aec55..5b3a645da 100644
--- a/cis/private/profile/index.php
+++ b/cis/private/profile/index.php
@@ -465,7 +465,7 @@ if (!$ansicht)
}
*/
}
- if (!$has_notfallkontakt)
+ if (!$has_notfallkontakt && $type == 'mitarbeiter')
echo '
'.$p->t('profil/notfallkontakt').'
'.$p->t('profil/notfallkontaktBekanntgeben').'
';
echo '';
diff --git a/content/pdfExport.php b/content/pdfExport.php
index b2978c6ba..3fc058adf 100644
--- a/content/pdfExport.php
+++ b/content/pdfExport.php
@@ -305,8 +305,14 @@ else
else
$output = 'pdf';
- // An der FHTW darf fas Studienblatt auch iin anderen Formaten exportiert werden
- if (CAMPUS_NAME == 'FH Technikum Wien' && ($xsl == 'Studienblatt' || $xsl == 'StudienblattEng'))
+ // An der FHTW darf das Studienblatt und das Prüfungsprotokoll auch in anderen Formaten exportiert werden
+ if (CAMPUS_NAME == 'FH Technikum Wien' &&
+ ($xsl == 'Studienblatt' ||
+ $xsl == 'StudienblattEng' ||
+ $xsl == 'PrProtBA' ||
+ $xsl == 'PrProtBAEng' ||
+ $xsl == 'PrProtMA' ||
+ $xsl == 'PrProtMAEng'))
{
$output = $_GET['output'];
}
diff --git a/include/bisverwendung.class.php b/include/bisverwendung.class.php
index db17896a9..9d92db489 100644
--- a/include/bisverwendung.class.php
+++ b/include/bisverwendung.class.php
@@ -741,5 +741,32 @@ class bisverwendung extends basis_db
return false;
}
}
+
+ /**
+ * Laedt die vorhandenen Verwendungen
+ */
+ public function getVerwendungCodex()
+ {
+ $qry = "SELECT * FROM bis.tbl_verwendung ORDER BY verwendung_code";
+
+ if($this->db_query($qry))
+ {
+ while($row = $this->db_fetch_object())
+ {
+ $obj = new StdClass();
+
+ $obj->verwendung_code = $row->verwendung_code;
+ $obj->verwendungbez = $row->verwendungbez;
+
+ $this->result[] = $obj;
+ }
+ return true;
+ }
+ else
+ {
+ $this->errormsg = 'Fehler bei der Datenbankabfrage';
+ return false;
+ }
+ }
}
?>
diff --git a/include/zeitaufzeichnung.class.php b/include/zeitaufzeichnung.class.php
index a3f4e4f09..43c5c4a5c 100644
--- a/include/zeitaufzeichnung.class.php
+++ b/include/zeitaufzeichnung.class.php
@@ -460,7 +460,7 @@ class zeitaufzeichnung extends basis_db
$where.= " AND start>(now() - INTERVAL '".$days." days')";
$qry = "SELECT
- *,
+ *,
CASE WHEN (ende IS NOT NULL AND ende > start)
THEN to_char ((ende-start),'HH24:MI')
ELSE '0'
@@ -734,7 +734,7 @@ or not exists
$where AND
$where_sem AND
l.lehreinheit_id = m.lehreinheit_id AND
- m.stundensatz * m.semesterstunden > 0 AND
+ m.semesterstunden > 0 AND
s.typ not in ('l') AND
lv.studiengang_kz > 0
UNION
@@ -754,7 +754,7 @@ or not exists
pb.projektarbeit_id = pa.projektarbeit_id AND
pb.person_id = b.person_id AND
b.uid = ".$this->db_add_param($user)." AND
- pb.stunden * pb.stundensatz > 0 AND
+ pb.stunden > 0 AND
s.typ not in ('l') AND
lv.studiengang_kz > 0 AND
$where_sem
diff --git a/public/css/Tabulator.css b/public/css/Tabulator.css
index 0545101c9..22eeb4f5c 100644
--- a/public/css/Tabulator.css
+++ b/public/css/Tabulator.css
@@ -34,4 +34,9 @@
/* More space for header title (avoids triple points at the end) */
.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-title {
overflow: initial;
+}
+
+.btn-select-col-selected
+{
+ background-color: #e6e6e6;
}
\ No newline at end of file
diff --git a/public/js/TableWidget.js b/public/js/TableWidget.js
index 559de7f40..60dde8ccf 100644
--- a/public/js/TableWidget.js
+++ b/public/js/TableWidget.js
@@ -269,16 +269,8 @@ var FHC_TableWidget = {
tableWidgetDiv.find("#tableWidgetTabulator").tabulator('toggleColumn', selected);
- $(this).toggleClass('active');
-
- if(!$(this).hasClass('active'))
- {
- $(this).css('background-color', 'white');
- }
- else
- {
- $(this).css('background-color', '#e6e6e6');
- }
+ // toggle class to color button as selected / deselected
+ $(this).toggleClass('btn-select-col-selected').blur(); // blur removes automatic focus
})
}
},
@@ -809,7 +801,7 @@ function _renderTabulatorHeaderCollapseHTML(tableWidgetDiv){
{
var field = column.getField();
var title = column.getDefinition().title;
- var active_status = column.getVisibility() ? 'active' : '';
+ var btn_select_col_selected = column.getVisibility() ? 'btn-select-col-selected' : '';
// If certain columns should be excluded from the column picker (define them in a blacklist array)
if (typeof tableWidgetBlacklistArray_columnUnselectable != 'undefined' &&
@@ -818,13 +810,13 @@ function _renderTabulatorHeaderCollapseHTML(tableWidgetDiv){
{
if ($.inArray(field, tableWidgetBlacklistArray_columnUnselectable) < 0)
{
- tabulatorHeaderCollapseHTML += '';
+ tabulatorHeaderCollapseHTML += '';
}
}
// Else provide all tabulator fields as pickable columns
else
{
- tabulatorHeaderCollapseHTML += '';
+ tabulatorHeaderCollapseHTML += '';
}
});
diff --git a/vilesci/bis/personalmeldung.php b/vilesci/bis/personalmeldung.php
index 3b2a43411..7b1103607 100644
--- a/vilesci/bis/personalmeldung.php
+++ b/vilesci/bis/personalmeldung.php
@@ -92,6 +92,49 @@ if (!defined('BIS_FUNKTIONSCODE_6_ARR') || empty('BIS_FUNKTIONSCODE_6_ARR'))
die('config var BIS_FUNKTIONSCODE_6_ARR fehlt');
}
+$codex_funktion = array(
+ 1 => "Vertretungsbefugte/r des Erhalters",
+ 2 => "Leiter/in des Kollegiums",
+ 3 => "stellv. Leiter/in des Kollegiums",
+ 4 => "Mitglied des Kollegiums",
+ 5 => "Studiengangsleiter/in",
+ 6 => "Leiter/in einer Organisationseinheit",
+ 7 => "Mitglied des Entwicklungsteams"
+);
+
+$qry = "SELECT * FROM bis.tbl_beschaeftigungsart1";
+
+$codex_ba1 = array();
+
+if($result = $db->db_query($qry))
+{
+ while($row = $db->db_fetch_object($result))
+ {
+ if(isset($codex_ba1[$row->ba1code_bis]))
+ $codex_ba1[$row->ba1code_bis] .= ' bzw '.$row->ba1kurzbz;
+ else
+ $codex_ba1[$row->ba1code_bis] = $row->ba1kurzbz;
+ }
+}
+
+$qry = "SELECT * FROM bis.tbl_beschaeftigungsart2";
+
+$codex_ba2 = array();
+
+if($result = $db->db_query($qry))
+{
+ while($row = $db->db_fetch_object($result))
+ {
+ $codex_ba2[$row->ba2code] = $row->ba2bez;
+ }
+}
+$codex_verwendung = array();
+
+// Verwendungen holen
+$verwendungcodex = new bisverwendung();
+$verwendungcodex->getVerwendungCodex();
+foreach($verwendungcodex->result as $row)
+ $codex_verwendung[$row->verwendung_code] = $row->verwendungbez;
// Prüfe Zeitraum zur Erstellung einer BIS-Meldung
$studiensemester = new studiensemester();
@@ -193,7 +236,7 @@ foreach ($mitarbeiter_arr as $mitarbeiter)
foreach ($bisverwendung_arr as $bisverwendung)
{
if (empty($verwendung_arr) || // wenn erster Durchlauf ODER
- (!(in_array($bisverwendung->ba1code, array_column($verwendung_arr, 'ba1code')) && // im verwendung_arr Beschaeftigungsart1 UND
+ (!(in_array($bisverwendung->ba1code, array_column($verwendung_arr, 'ba1code')) && // im verwendung_arr Beschaeftigungsart1 UND
in_array($bisverwendung->ba2code, array_column($verwendung_arr, 'ba2code')) && // Beschaeftigungsart2 UND
in_array($bisverwendung->verwendung_code, array_column($verwendung_arr, 'verwendung_code'))))) // Verwendung_code noch NICHT vorhanden
{
@@ -406,7 +449,11 @@ function _add_relativesBA_und_anteiligeJVZAE($uid, $bisverwendung_arr)
$bisverwendung->vertragsstunden = BIS_VOLLZEIT_ARBEITSSTUNDEN;
}
- // Relatives Beschaeftigungsausmass / Anteilige JVZAE ermitteln
+ /**
+ * Relatives Beschaeftigungsausmass / Anteilige JVZAE ermitteln
+ * Anteilige JVAE = Vertragsstunden relativ zu VZ Basis / Tage im Jahr * Vertragsdauer
+ * Bsp Teilzeit 30h, BIS-Verwendungsdauer 120 Tage: 30 / 38,5 / 365 * 120
+ */
$bisverwendung->beschaeftigungsausmass_relativ = round($bisverwendung->vertragsstunden / BIS_VOLLZEIT_ARBEITSSTUNDEN, 2);
$bisverwendung->jvzae_anteilig = round($bisverwendung->beschaeftigungsausmass_relativ * $bisverwendung->gewichtung, 2);
@@ -438,7 +485,14 @@ function _add_relativesBA_und_anteiligeJVZAE($uid, $bisverwendung_arr)
// Verwendung erstellen
list($tage_lehre_imSemester, $verwendung_lehre_obj) = _addVerwendung_fuerLehre_inkludiert($studsem, $bisverwendung);
- // Relatives Beschaeftigungsausmass / Anteilige JVZAE ermitteln
+ /*
+ * Relatives Beschaeftigungsausmass / Anteilige JVZAE ermitteln
+ * Anteilige JVAE = Lehre relativ zu VZ Basis * gewichtete Lehrtage auf das Halbjahr bezogen
+ * Bsp: 7 SWS an 90 Tage gelehrt: 7 / 15 * (0,5 /(365 / 2) * 140)
+ * NOTE: Halbjahr mit 0,5 gewichtet, da ein Studiensemester 50% eines Jahres entspricht;
+ * Diese 50% werden dann auf die Tage eines Halbjahres heruntergebrochen und mit den Lehrtagen
+ * multipliziert.
+ */
$verwendung_lehre_obj->beschaeftigungsausmass_relativ = round($lehre_sws / BIS_VOLLZEIT_SWS_INKLUDIERTE_LEHRE, 2); // VZ-Basis fuer inkludierte Lehre
$verwendung_lehre_obj->gewichtung = ($tage_lehre_imSemester == 182)
? BIS_HALBJAHRES_GEWICHTUNG_SWS
@@ -472,14 +526,34 @@ function _add_relativesBA_und_anteiligeJVZAE($uid, $bisverwendung_arr)
// -------------------------------------------------------------------------------------------------------------
else if (!$has_vertragsstunden && $has_lehrtaetigkeit)
{
- foreach (array($ss_kurzbz => $lehre_ss_sws, $ws_kurzbz => $lehre_ws_sws) as $studsem => $lehre_sws)
+ /**
+ * Verwendungen ergänzen, wenn die BIS-Verwendung als externer Mitarbeiter in Sommer- / Wintersemester
+ * des BIS-Meldungsjahres faellt.
+ * Es werden die gesamten SWS von SS + WS (d.h. WS jahresuebergreifend) gemeldet.
+ */
+ $bisverwendung_beginn_BIS = new DateTime($bisverwendung->beginn_imBISMeldungsJahr);
+ $bisverwendung_ende_BIS = new DateTime($bisverwendung->ende_imBISMeldungsJahr);
+
+ foreach (array($ss_kurzbz => $lehre_ss_sws, $ws_kurzbz => $lehre_ws_sws) as $studsem_kurzbz => $lehre_sws)
{
- if (!is_null($lehre_sws))
+ $studsem = new studiensemester($studsem_kurzbz);
+ $studsem_start = new DateTime($studsem->start);
+ $studsem_ende = new DateTime($studsem->ende);
+
+ // Wenn Lehrzeit in die BIS Verwendungszeit hineinfaellt, Verwendung erstellen
+ if (!is_null($lehre_sws) &&
+ (!($studsem_start > $bisverwendung_ende_BIS) &&
+ !($studsem_ende < $bisverwendung_beginn_BIS)))
{
// Verwendungen erstellen
$verwendung_lehre_obj = _addVerwendung_fuerLehre_Stundenbasis($bisverwendung);
- // Relatives Beschaeftigungsausmass / Anteilige JVZAE ermitteln
+ /**
+ * Relatives Beschaeftigungsausmass / Anteilige JVZAE ermitteln
+ * Anteilige JVAE = Lehre relativ zu VZ Basis * Halbjahresgewichtung
+ * Bsp: 7 / 15 * 0,5
+ * NOTE: Halbjahr mit 0,5 gewichtet, da ein Studiensemester 50% eines Jahres entspricht
+ */
$verwendung_lehre_obj->beschaeftigungsausmass_relativ = round($lehre_sws / BIS_VOLLZEIT_SWS_EINZELSTUNDENBASIS, 2); // VZ-Basis nach BIS-Vorgabe fuer Stundenbasis
$verwendung_lehre_obj->gewichtung = BIS_HALBJAHRES_GEWICHTUNG_SWS;
$verwendung_lehre_obj->jvzae_anteilig = round($verwendung_lehre_obj->beschaeftigungsausmass_relativ * $verwendung_lehre_obj->gewichtung, 2);
@@ -685,7 +759,7 @@ function _getFunktionscontainer_Funktionscode123456($bisfunktion_arr)
// FunktionsCode 6 : Leitung Organisationseinheit der postsekundaeren Bildungseinrichtung
$organisationseinheit = new Organisationseinheit($bisfunktion->oe_kurzbz);
if (is_null($studiengang->studiengang_kz) &&
- !in_array($organisationseinheit->oetyp_bezeichnung, BIS_FUNKTIONSCODE_6_ARR)) // nicht Teamleitung
+ !in_array($organisationseinheit->organisationseinheittyp_kurzbz, BIS_FUNKTIONSCODE_6_ARR)) // nicht Teamleitung
{
$funktion_code = 6;
}
@@ -935,6 +1009,11 @@ function _generateXML($person_arr)
*/
function _outputHTML($person_arr)
{
+ global $codex_funktion;
+ global $codex_verwendung;
+ global $codex_ba1;
+ global $codex_ba2;
+
echo '
BIS - Meldung Personal
@@ -1023,9 +1102,9 @@ function _outputHTML($person_arr)
{
echo '