Merge branch 'master' into feature-18571/EntwicklungsteamBisMeldung

This commit is contained in:
Andreas Österreicher
2024-01-31 13:27:58 +01:00
296 changed files with 33535 additions and 1826 deletions
+3 -3
View File
@@ -120,15 +120,15 @@ echo '<div>Student: <b>'.$uid.'</b><br>Titel: <b>'.
<td><input type="text" name="sprache" id="sprache" value="'.(isset($row_zd->sprache)?$db->convert_html_chars($row_zd->sprache):'').'" size="10" maxlength="8" readonly="readonly"></td>
</tr>
<tr>
<td width="30%"><b>Kontrollierte Schlagw&ouml;rter:*</b></td>
<td width="30%"><b>Kontrollierte Schlagw&ouml;rter:</b></td>
<td width="40%"><input type="text" name="kontrollschlagwoerter" id="kontrollschlagwoerter" value="'.(isset($row_zd->kontrollschlagwoerter)?$db->convert_html_chars($row_zd->kontrollschlagwoerter):'').'" size="60" maxlength="150" readonly="readonly"></td>
</tr>
<tr>
<td><b>Dt. Schlagw&ouml;rter:</b></td>
<td><b>Dt. Schlagw&ouml;rter:*</b></td>
<td><input type="text" name="schlagwoerter" value="'.(isset($row_zd->schlagwoerter)?$db->convert_html_chars($row_zd->schlagwoerter):'').'" size="60" maxlength="150" readonly="readonly"></td>
</tr>
<tr>
<td><b>Engl. Schlagw&ouml;rter:</b></td>
<td><b>Engl. Schlagw&ouml;rter:*</b></td>
<td><input type="text" name="schlagwoerter_en" value="'.(isset($row_zd->schlagwoerter_en)?$db->convert_html_chars($row_zd->schlagwoerter_en):'').'" size="60" maxlength="150" readonly="readonly"></td>
</tr>
<tr>
+84 -12
View File
@@ -341,6 +341,31 @@ if ($studiengang_kz != '' && $stsem_von != '' && $stsem_nach != '')
{
$stundensatz = new mitarbeiter($row_lem->mitarbeiter_uid);
$lem_obj->stundensatz = $stundensatz->stundensatz;
if(defined('DIENSTVERHAELTNIS_SUPPORT') && DIENSTVERHAELTNIS_SUPPORT)
{
$qry = "
SELECT
stundensatz
FROM
hr.tbl_stundensatz
WHERE
uid=".$db->db_add_param($row_lem->mitarbeiter_uid)."
AND gueltig_von <= ".$db->db_add_param($stsem_nach_obj->ende)."
AND COALESCE(gueltig_bis, '2999-12-31') >= ".$db->db_add_param($stsem_nach_obj->start)."
AND stundensatztyp = 'lehre'
ORDER BY gueltig_von desc
LIMIT 1
";
if($result_stundensatz = $db->db_query($qry))
{
if($row_stundensatz = $db->db_fetch_object($result_stundensatz))
{
$lem_obj->stundensatz = $row_stundensatz->stundensatz;
}
}
}
}
// Wenn VILESCI_STUNDENSATZ_VORRUECKUNG nachbeschaeftigungsart ist, wird
// bei echten Dienstvertraegen mit voller inkludierter Lehre (-1) der Stundensatz auf null gesetzt
@@ -355,21 +380,68 @@ if ($studiengang_kz != '' && $stsem_von != '' && $stsem_nach != '')
$stundensatz = new mitarbeiter($row_lem->mitarbeiter_uid);
$lem_obj->stundensatz = $stundensatz->stundensatz;
$bisverwendung = new bisverwendung();
if(!$bisverwendung->getVerwendungRange($row_lem->mitarbeiter_uid, $stsem_nach_obj->start, $stsem_nach_obj->ende))
if(defined('DIENSTVERHAELTNIS_SUPPORT') && DIENSTVERHAELTNIS_SUPPORT)
{
$bisverwendung->getLastAktVerwendung($row_lem->mitarbeiter_uid);
$bisverwendung->result[] = $bisverwendung;
}
$qry = "
SELECT
stundensatz
FROM
hr.tbl_stundensatz
WHERE
uid=".$db->db_add_param($row_lem->mitarbeiter_uid)."
AND gueltig_von <= ".$db->db_add_param($stsem_nach_obj->ende)."
AND COALESCE(gueltig_bis, '2999-12-31') >= ".$db->db_add_param($stsem_nach_obj->start)."
AND stundensatztyp = 'lehre'
ORDER BY gueltig_von desc
LIMIT 1
";
foreach($bisverwendung->result as $row_verwendung)
{
// Bei echten Dienstvertraegen mit voller inkludierter Lehre wird kein Stundensatz
// geliefert da dies im Vertrag inkludiert ist.
if ((in_array($row_verwendung->ba1code, $arrEchterDV)) && $row_verwendung->inkludierte_lehre == -1)
if($result_stundensatz = $db->db_query($qry))
{
$lem_obj->stundensatz = '';
break;
if($row_stundensatz = $db->db_fetch_object($result_stundensatz))
{
$lem_obj->stundensatz = $row_stundensatz->stundensatz;
}
}
$qry = "
SELECT
1
FROM
hr.tbl_dienstverhaeltnis dv
WHERE
dv.mitarbeiter_uid=".$db->db_add_param($row_lem->mitarbeiter_uid)."
AND dv.von <= ".$db->db_add_param($stsem_nach_obj->ende)."
AND COALESCE(dv.bis, '2999-12-31') >= ".$db->db_add_param($stsem_nach_obj->start)."
AND vertragsart_kurzbz='echterdv'
";
if($result_dienstverhaeltnis = $db->db_query($qry))
{
if($db->db_num_rows($result_dienstverhaeltnis)>0)
{
$lem_obj->stundensatz = '';
}
}
}
else
{
$bisverwendung = new bisverwendung();
if(!$bisverwendung->getVerwendungRange($row_lem->mitarbeiter_uid, $stsem_nach_obj->start, $stsem_nach_obj->ende))
{
$bisverwendung->getLastAktVerwendung($row_lem->mitarbeiter_uid);
$bisverwendung->result[] = $bisverwendung;
}
foreach($bisverwendung->result as $row_verwendung)
{
// Bei echten Dienstvertraegen mit voller inkludierter Lehre wird kein Stundensatz
// geliefert da dies im Vertrag inkludiert ist.
if ((in_array($row_verwendung->ba1code, $arrEchterDV)) && $row_verwendung->inkludierte_lehre == -1)
{
$lem_obj->stundensatz = '';
break;
}
}
}
}
@@ -806,7 +806,12 @@ if (isset($_POST['save']))
$stg_obj = new studiengang();
$stg_obj->load(ltrim($stg,'0'));
$uid = generateUID($stg_obj->kurzbz,$jahr, $stg_obj->typ, $matrikelnr);
$nachname_clean = mb_strtolower(convertProblemChars($person->nachname));
$vorname_clean = mb_strtolower(convertProblemChars($person->vorname));
$nachname_clean = str_replace(' ','_', $nachname_clean);
$vorname_clean = str_replace(' ','_', $vorname_clean);
$uid = generateUID($stg_obj->kurzbz,$jahr, $stg_obj->typ, $matrikelnr, $vorname_clean, $nachname_clean);
//Benutzerdatensatz anlegen
$benutzer = new benutzer();
@@ -815,10 +820,6 @@ if (isset($_POST['save']))
$benutzer->aktiv = true;
$benutzer->aktivierungscode = generateActivationKey();
$nachname_clean = mb_strtolower(convertProblemChars($person->nachname));
$vorname_clean = mb_strtolower(convertProblemChars($person->vorname));
$nachname_clean = str_replace(' ','_', $nachname_clean);
$vorname_clean = str_replace(' ','_', $vorname_clean);
if (!defined('GENERATE_ALIAS_STUDENT') || GENERATE_ALIAS_STUDENT === true)
{
+31
View File
@@ -34,6 +34,7 @@ require_once('../../include/datum.class.php');
require_once('../../include/benutzerberechtigung.class.php');
require_once('../../include/addon.class.php');
require_once('../../include/benutzerfunktion.class.php');
require_once('../../include/phrasen.class.php');
if (!$db = new basis_db())
die('Es konnte keine Verbindung zum Server aufgebaut werden.');
@@ -63,6 +64,16 @@ $message='';
$error=false;
$mlAbgeschickt = '';
//Phrasen
$sprache = getSprache();
$p = new phrasen($sprache);
//Default-Wert für Max-Intervall in Tagen für Zeitsperre, über Config veränderbar
$maxDauerZS = 730;
if (defined('CIS_ZEITSPERREN_MAX_DAUER') && CIS_ZEITSPERREN_MAX_DAUER != '') {
$maxDauerZS = CIS_ZEITSPERREN_MAX_DAUER;
}
//prüfen, ob addon casetime aktiviert ist
$addon_obj = new addon();
$addoncasetime = $addon_obj->checkActiveAddon("casetime");
@@ -205,6 +216,24 @@ if(isset($_POST['save']))
if(!$berechtigt)
die('Sie haben keine Berechtigung für diese Aktion');
//Validierungen Felder Bis-Datum und Von-Datum
if($vondatum > $bisdatum)
{
$errormsg = $p->t('zeitsperre/vonDatumGroesserAlsBisDatum').'! ';
$error=true;
}
//Check if Bisdatum zu weit in der Zukunft
$von = new DateTime($vondatum);
$bis = new DateTime($bisdatum);
$intervall = $bis->diff($von);
if ($intervall->days > $maxDauerZS)
{
$error=true;
$errormsg = $p->t('zeitsperre/bisDatumGroesserMax');
}
//Speichern der Daten
$zeitsperre = new zeitsperre();
@@ -225,6 +254,8 @@ if(isset($_POST['save']))
$zeitsperre->mitarbeiter_uid=$uid;
}
if(!$error)
{
$zeitsperre->zeitsperretyp_kurzbz=$zeitsperretyp_kurzbz;
+47 -7
View File
@@ -1010,6 +1010,7 @@ if(isset($_GET['excel']))
headers: {0: { sorter: false}},
widgetOptions: {filter_cssFilter: [
"filter_clm_null",
"filter_clm_prestudent_id",
"filter_clm_person_id",
"filter_clm_null",
"filter_clm_vorname",
@@ -1027,18 +1028,30 @@ if(isset($_GET['excel']))
$("#"+v.id).checkboxes('toggle');
e.preventDefault();
if ($("input.chkbox:checked").size() > 0)
{
$("#mailSendButton").html('Mail an markierte Personen senden');
$("#msgSendButton").html('Message an markierte Personen senden');
}
else
{
$("#mailSendButton").html('Mail an alle senden');
$("#msgSendButton").html('Message an alle senden');
}
});
$("#uncheck_"+v.id).on('click', function(e) {
$("#"+v.id).checkboxes('uncheck');
e.preventDefault();
if ($("input.chkbox:checked").size() > 0)
{
$("#mailSendButton").html('Mail an markierte Personen senden');
$("#msgSendButton").html('Message an markierte Personen senden');
}
else
{
$("#mailSendButton").html('Mail an alle senden');
$("#msgSendButton").html('Message an alle senden');
}
});
$("#"+v.id).checkboxes('range', true);
@@ -1049,6 +1062,7 @@ if(isset($_GET['excel']))
if (typeof(Storage) !== 'undefined')
{
var arr = ['clm_null',
'clm_prestudent_id',
'clm_person_id',
'clm_null',
'clm_vorname',
@@ -1114,9 +1128,15 @@ if(isset($_GET['excel']))
$('.chkbox').change(function()
{
if ($("input.chkbox:checked").size() > 0)
{
$("#mailSendButton").html('Mail an markierte Personen senden');
$("#msgSendButton").html('Message an markierte Personen senden');
}
else
{
$("#mailSendButton").html('Mail an alle senden');
$("#msgSendButton").html('Message an alle senden');
}
});
$('#toggle_bearbeitenForm').click(function()
@@ -1227,6 +1247,23 @@ if(isset($_GET['excel']))
});
window.location.href = "mailto:?bcc="+mailadressen;
}
function SendMessage()
{
// Wenn Checkboxen markiert sind, an diese senden, sonst an alle
if ($("input.chkbox:checked").size() > 0)
var elements = $("input.chkbox:checked");
else
var elements = $("input.chkbox");
var form = $("#sendMsgForm");
form.find("input[type=hidden]").remove();
$.each(elements, function(index, item)
{
var prestudent_id = $(this).closest('tr').find('td.clm_prestudent_id').text();
form.append("<input type='hidden' name='prestudent_id[]' value='" + prestudent_id + "'>");
});
form.submit();
}
</script>
<style type="text/css">
.active
@@ -2264,7 +2301,7 @@ $studienplaene_list = implode(',', array_keys($studienplaene_arr));
echo '<option value="2" '.($reihungstest->stufe == 2 ? 'selected' : '').'>2 (Interview)</option>';
echo '<option value="3" '.($reihungstest->stufe == 3 ? 'selected' : '').'>3</option>';
}
else
else
{
echo '<option value="1" '.($reihungstest->stufe == 1 ? 'selected' : '').'>1</option>';
echo '<option value="2" '.($reihungstest->stufe == 2 ? 'selected' : '').'>2</option>';
@@ -2583,6 +2620,9 @@ if($reihungstest_id!='')
echo '<a class="buttongreen" href="'.$_SERVER['PHP_SELF'].'?reihungstest_id='.$reihungstest_id.'&excel=true">Excel Export</a>';
//echo '<a class="buttongreen" href="'.$_SERVER['PHP_SELF'].'?reihungstest_id='.$reihungstest_id.'&type=saveallrtpunkte">Punkte ins FAS &uuml;bertragen</a>';
echo '<a class="buttongreen" href="#" onclick="SendMail()" id="mailSendButton">Mail an alle BewerberInnen senden</a>';
echo '<form id="sendMsgForm" method="post" action="'. APP_ROOT .'index.ci.php/system/messages/FASMessages/writeTemplate" target="_blank" style="display:inline-block">
<a class="buttongreen" href="javascript:void(0)" onclick="SendMessage()" id="msgSendButton">Message an alle BewerberInnen senden</a>
</form>';
}
if (defined('CAMPUS_NAME') && CAMPUS_NAME == 'FH Technikum Wien')
{
@@ -2607,7 +2647,7 @@ if($reihungstest_id!='')
$qry = "
SELECT DISTINCT rt_person_id,
rt_id,
'0' AS prestudent_id,
prestudent_id,
tbl_rt_person.person_id,
vorname,
nachname,
@@ -2725,7 +2765,7 @@ if($reihungstest_id!='')
echo '<br><span style="color: red"><b>Achtung!</b> Anzahl Arbeitsplätze überschritten</span>';
echo '</td></tr>';
echo '<tr><td>';
//echo '<div id="clm_prestudent_id" class="active" onclick="hideColumn(\'clm_prestudent_id\')">Prestudent ID</div>';
echo '<div id="clm_prestudent_id" class="active" onclick="hideColumn(\'clm_prestudent_id\')">Prestudent ID</div>';
echo '<div id="clm_person_id" class="active" onclick="hideColumn(\'clm_person_id\')">Person ID</div>';
echo '<div id="clm_vorname" class="active" onclick="hideColumn(\'clm_vorname\')">Vorname</div>';
echo '<div id="clm_geschlecht" class="active" onclick="hideColumn(\'clm_geschlecht\')">Geschlecht</div>';
@@ -2765,7 +2805,7 @@ if($reihungstest_id!='')
<a href="#" data-toggle="checkboxes" data-action="uncheck" id="uncheck_t'.$cnt.'"><img src="../../skin/images/checkbox_uncheck.png" name="toggle"></a>
</nobr>
</th>
<!--<th style="display: table-cell" class="clm_prestudent_id" title="PrestudentID">Prestudent ID</th>-->
<th style="display: table-cell" class="clm_prestudent_id" title="PrestudentID">Prestudent ID</th>
<th style="display: table-cell" class="clm_person_id" title="PersonID">Person ID</th>
<th>Nachname</th>
<th style="display: table-cell" class="clm_vorname">Vorname</th>
@@ -2884,7 +2924,7 @@ if($reihungstest_id!='')
echo '
<tr>
<td style="text-align: center"><input type="checkbox" class="chkbox" id="checkbox_'.$row->person_id.'" name="checkbox['.$row->person_id.']"></td>
<!--<td style="display: table-cell" class="clm_prestudent_id">'.$db->convert_html_chars($row->prestudent_id).'</td>-->
<td style="display: table-cell" class="clm_prestudent_id">'.$db->convert_html_chars($row->prestudent_id).'</td>
<td style="display: table-cell" class="clm_person_id">'.$db->convert_html_chars($row->person_id).'</td>
<td>'.$db->convert_html_chars($row->nachname).'</td>
<td style="display: table-cell" class="clm_vorname">'.$db->convert_html_chars($row->vorname).'</td>
@@ -2947,7 +2987,7 @@ if($reihungstest_id!='')
<a href="#" data-toggle="checkboxes" data-action="uncheck" id="uncheck_t'.$cnt.'"><img src="../../skin/images/checkbox_uncheck.png" name="toggle"></a>
</nobr>
</th>
<!--<th style="display: table-cell" class="clm_prestudent_id" title="PrestudentID">Prestudent ID</th>-->
<th style="display: table-cell" class="clm_prestudent_id" title="PrestudentID">Prestudent ID</th>
<th style="display: table-cell" class="clm_person_id" title="PersonID">Person ID</th>
<th>Nachname</th>
<th style="display: table-cell" class="clm_vorname">Vorname</th>
@@ -3066,7 +3106,7 @@ if($reihungstest_id!='')
echo '
<tr>
<td style="text-align: center"><input class="chkbox" type="checkbox" id="checkbox_'.$row->person_id.'" name="checkbox['.$row->person_id.']"></td>
<!--<td style="display: table-cell" class="clm_prestudent_id">'.$db->convert_html_chars($row->prestudent_id).'</td>-->
<td style="display: table-cell" class="clm_prestudent_id">'.$db->convert_html_chars($row->prestudent_id).'</td>
<td style="display: table-cell" class="clm_person_id">'.$db->convert_html_chars($row->person_id).'</td>
<td>'.$db->convert_html_chars($row->nachname).'</td>
<td style="display: table-cell" class="clm_vorname">'.$db->convert_html_chars($row->vorname).'</td>
+22 -10
View File
@@ -26,6 +26,7 @@ require_once('../../config/vilesci.config.inc.php');
require_once('../../include/statistik.class.php');
require_once('../../include/benutzerberechtigung.class.php');
require_once('../../include/berechtigung.class.php');
require_once('../../include/functions.inc.php');
if(!$db = new basis_db())
{
@@ -140,18 +141,29 @@ if(!$rechte->isBerechtigt('basis/statistik', null, 'suid'))
$statistik->berechtigung_kurzbz = $berechtigung_kurzbz;
$statistik->preferences = $preferences;
$success = $statistik->save();
// Check if the SQL string contains functions to decrypt data and if there are
// variables to replace the value of the password (no clear password wanted!)
if (isSQLDecryptionValid($statistik->sql))
{
$success = $statistik->save();
if($success):
if($success):
?>
<span class="ok">Daten erfolgreich gespeichert</span>
<script type='text/javascript'>
parent.uebersicht_statistik.location.href = 'statistik_uebersicht.php';
</script>
<?php else: ?>
<span class="error"><?php echo $statistik->errormsg ?></span>
<?php
endif;
}
else // in case the SQL string is not valid display an error
{
?>
<span class="ok">Daten erfolgreich gespeichert</span>
<script type='text/javascript'>
parent.uebersicht_statistik.location.href = 'statistik_uebersicht.php';
</script>
<?php else: ?>
<span class="error"><?php echo $statistik->errormsg ?></span>
<?php
endif;
<span class="error"><?php echo 'It is not possible to store a SQL that contains clear passwords to decrypt data from the DB' ?></span>
<?php
}
}
$preferences = trim($statistik->preferences);
+11 -2
View File
@@ -76,9 +76,18 @@
$filter->type = $_POST["type"];
$filter->htmlattr = $_POST["htmlattr"];
if(!$filter->save())
// Check if the SQL string contains functions to decrypt data and if there are
// variables to replace the value of the password (no clear password wanted!)
if (isSQLDecryptionValid($filter->sql))
{
$errorstr .= $filter->errormsg;
if (!$filter->save())
{
$errorstr .= $filter->errormsg;
}
}
else
{
$errorstr .= 'It is not possible to store a SQL that contains clear passwords to decrypt data from the DB';
}
$reloadstr .= "<script type='text/javascript'>\n";