Merge branch 'master' of https://github.com/FH-Complete/FHC-Core into hotfix/DigitalerLehrauftrag_Sprache_umschalten

This commit is contained in:
Cris
2020-05-14 12:32:18 +02:00
10 changed files with 155 additions and 34 deletions
+6 -2
View File
@@ -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();
+1 -1
View File
@@ -465,7 +465,7 @@ if (!$ansicht)
}
*/
}
if (!$has_notfallkontakt)
if (!$has_notfallkontakt && $type == 'mitarbeiter')
echo '<tr><td>'.$p->t('profil/notfallkontakt').'</td><td colspan="3">'.$p->t('profil/notfallkontaktBekanntgeben').'</td></tr>';
echo '</table>';
+8 -2
View File
@@ -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'];
}
+27
View File
@@ -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;
}
}
}
?>
+3 -3
View File
@@ -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
+5
View File
@@ -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;
}
+5 -13
View File
@@ -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 += '<button type="button" class="btn btn-default btn-sm btn-select-col ' + active_status +'" aria-pressed="true" id="btn-' + field + '" value="' + field + '">' + title + '</button>';
tabulatorHeaderCollapseHTML += '<button type="button" class="btn btn-default btn-sm btn-select-col ' + btn_select_col_selected +'" aria-pressed="true" id="btn-' + field + '" value="' + field + '">' + title + '</button>';
}
}
// Else provide all tabulator fields as pickable columns
else
{
tabulatorHeaderCollapseHTML += '<button type="button" class="btn btn-default btn-sm btn-select-col ' + active_status +'" aria-pressed="true" id="btn-' + field + '" value="' + field + '">' + title + '</button>';
tabulatorHeaderCollapseHTML += '<button type="button" class="btn btn-default btn-sm btn-select-col ' + btn_select_col_selected +'" aria-pressed="true" id="btn-' + field + '" value="' + field + '">' + title + '</button>';
}
});
+90 -11
View File
@@ -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 '<html>
<head>
<title>BIS - Meldung Personal</title>
@@ -1023,9 +1102,9 @@ function _outputHTML($person_arr)
{
echo '
<tr>
<td>'.$verwendung->verwendung_code.'</td>
<td>'.$verwendung->ba1code.'</td>
<td>'.$verwendung->ba2code.'</td>
<td>'.(isset($codex_verwendung[$verwendung->verwendung_code])?$codex_verwendung[$verwendung->verwendung_code]:'').' '.$verwendung->verwendung_code.'</td>
<td><span title="'.(isset($codex_ba1[$verwendung->ba1code])?$codex_ba1[$verwendung->ba1code]:'').'">'.$verwendung->ba1code.'</span></td>
<td><span title="'.(isset($codex_ba2[$verwendung->ba2code])?$codex_ba2[$verwendung->ba2code]:'').'">'.$verwendung->ba2code.'</span></td>
<td>'.$verwendung->vzae.'</td>
<td>'.$verwendung->jvzae.'</td>
</tr>';
@@ -1055,7 +1134,7 @@ function _outputHTML($person_arr)
{
echo '
<tr>
<td>'. $funktion->funktionscode. '</td>
<td>'.(isset($codex_funktion[$funktion->funktionscode])?$codex_funktion[$funktion->funktionscode]:'').' '.$funktion->funktionscode.'</td>
<td>'. $funktion->besondereQualifikationCode. '</td>
<td>';
+1
View File
@@ -436,6 +436,7 @@ $tabelle="<H2>BIS-Meldungs&uuml;bersicht: </H2><br>
$semester_arr = array(1,2,3,4,5,6,7,8,50,60);
sort($verwendete_orgformen);
$orgformen = implode('/',$verwendete_orgformen);
+9 -2
View File
@@ -2844,9 +2844,16 @@ else
echo '<button type="button" class="btn btn-primary btn-xs" onclick="sendMail()" id="mailSendButton">Mail an alle senden</button>';
echo '<button type="button" class="btn btn-primary btn-xs" onclick="checkAllWithResult()" id="checkAllResButton">Alle mit Ergebnis markieren</button>';
echo '<button type="button" class="btn btn-primary btn-xs" id="showUebertragenOptionsButton">Punkte ins FAS übertragen...</button>';
if (isset($_POST['reihungstest']) && count($_POST['reihungstest']) == 1)
if ((isset($_POST['reihungstest']) && count($_POST['reihungstest']) == 1) || (isset($_GET['reihungstest']) && $_GET['reihungstest'] != ''))
{
echo '&nbsp;&nbsp;<a href="'.APP_ROOT.'/addons/reports/cis/vorschau.php?statistik_kurzbz=TesttoolFortschritt&debug=true&ReihungstestID='.$_POST['reihungstest'][0].'" class="btn btn-default btn-xs" role="button" target="_blank">Testfortschritt ansehen</a>';
if (isset($_POST['reihungstest']))
{
echo '&nbsp;&nbsp;<a href="'.APP_ROOT.'/addons/reports/cis/vorschau.php?statistik_kurzbz=TesttoolFortschritt&debug=true&ReihungstestID='.$_POST['reihungstest'][0].'" class="btn btn-default btn-xs" role="button" target="_blank">Testfortschritt ansehen</a>';
}
else
{
echo '&nbsp;&nbsp;<a href="'.APP_ROOT.'/addons/reports/cis/vorschau.php?statistik_kurzbz=TesttoolFortschritt&debug=true&ReihungstestID='.$_GET['reihungstest'].'" class="btn btn-default btn-xs" role="button" target="_blank">Testfortschritt ansehen</a>';
}
}
else
{