Merge branch 'master' into feature-30660/FHC4_StudierendenGUI_Prototyp

This commit is contained in:
Harald Bamberger
2024-05-13 16:44:15 +02:00
10 changed files with 174 additions and 50 deletions
+16 -15
View File
@@ -45,25 +45,22 @@ echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<link rel="stylesheet" href="../../../skin/tablesort.css" type="text/css"/>
<link rel="stylesheet" href="../../../skin/style.css.php" type="text/css">
<link rel="stylesheet" type="text/css" href="../../../skin/jquery-ui-1.9.2.custom.min.css">
<script type="text/javascript" src="../../../vendor/jquery/jquery1/jquery-1.12.4.min.js"></script>
<script type="text/javascript" src="../../../vendor/christianbach/tablesorter/jquery.tablesorter.min.js"></script>
<script type="text/javascript" src="../../../vendor/components/jqueryui/jquery-ui.min.js"></script>
<script type="text/javascript" src="../../../include/js/jquery.ui.datepicker.translation.js"></script>
<script type="text/javascript" src="../../../vendor/jquery/sizzle/sizzle.js"></script>';
<link rel="stylesheet" type="text/css" href="../../../skin/jquery-ui-1.9.2.custom.min.css">
<script type="text/javascript" src="../../../vendor/jquery/jquery1/jquery-1.12.4.min.js"></script>
<script type="text/javascript" src="../../../vendor/christianbach/tablesorter/jquery.tablesorter.min.js"></script>
<script type="text/javascript" src="../../../vendor/components/jqueryui/jquery-ui.min.js"></script>
<script type="text/javascript" src="../../../include/js/jquery.ui.datepicker.translation.js"></script>
<script type="text/javascript" src="../../../vendor/jquery/sizzle/sizzle.js"></script>';
const MOODLE_ADDON_KURZBZ = 'moodle';
// Load Addons to get Moodle_Path
$addon_obj = new addon();
if ($addon_obj->loadAddons())
// include moodle addon config if active
if ($addon_obj->checkActiveAddon(MOODLE_ADDON_KURZBZ) && file_exists('../../../addons/'.MOODLE_ADDON_KURZBZ.'/config.inc.php'))
{
if (count($addon_obj->result) > 0)
{
foreach ($addon_obj->result as $row)
{
if (file_exists('../../../addons/'.$row->kurzbz.'/config.inc.php'))
include_once('../../../addons/'.$row->kurzbz.'/config.inc.php');
}
}
include_once('../../../addons/'.MOODLE_ADDON_KURZBZ.'/config.inc.php');
}
echo '
@@ -117,6 +114,7 @@ echo '</SELECT>
<input type="submit" value="'.$p->t("services/filtern").'" />
</form>';
$servicekategorie_arr = $service->getKategorieArray();
if($oe_kurzbz!='')
{
@@ -134,6 +132,7 @@ echo '<table class="tablesorter" id="myTable">
<th>'.$p->t("global/bezeichnung").'</th>
<th>'.$p->t("services/leistung").'</th>
<th>'.$p->t("services/design").'</th>
<th>'.$p->t("services/kritikalitaet").'</th>
<th>'.$p->t("services/details").'</th>
</tr>
</thead>
@@ -159,6 +158,8 @@ foreach($service->result as $row)
echo '<td><nobr><a href="../profile/index.php?uid='.$row->design_uid.'">',$design,'</a></nobr></td>';
//echo '<td><nobr><a href="../profile/index.php?uid='.$row->betrieb_uid.'">',$betrieb,'</a></nobr></td>';
//echo '<td><nobr><a href="../profile/index.php?uid='.$row->operativ_uid.'">',$operativ,'</a></nobr></td>';
$title = (isset($servicekategorie_arr[$row->servicekategorie_kurzbz])?$servicekategorie_arr[$row->servicekategorie_kurzbz]:'');
echo '<td><span title="'.$service->convert_html_chars($title).'">',$title,'</span></td>';
echo '<td>'.($row->content_id!=''?'<a href="../../../cms/content.php?content_id='.$row->content_id.'">Details</a>':'');
if (defined("ADDON_MOODLE_PATH"))
echo ' '.($row->ext_id!=''?'<a href="'.ADDON_MOODLE_PATH.'course/view.php?id='.$row->ext_id.'" target="_blank">Beschreibung</a>':'');
+87 -22
View File
@@ -74,7 +74,10 @@ require_once('../../include/reihungstest.class.php');
require_once('../../include/studienplan.class.php');
require_once('../../include/mobilitaet.class.php');
require_once('../../include/studienordnung.class.php');
require_once('../../include/mitarbeiter.class.php');
require_once('../../include/bisverwendung.class.php');
require_once('../../include/bismeldestichtag.class.php');
require_once('../../include/stundensatz.class.php');
$user = get_uid();
$db = new basis_db();
@@ -4654,6 +4657,7 @@ if(!$error)
$errormsg = 'Fehlerhafte Parameteruebergabe';
}
}
elseif(isset($_POST['type']) && $_POST['type']=='getstundensatz')
{
if(isset($_POST['person_id']) && isset($_POST['studiensemester_kurzbz']))
@@ -4661,33 +4665,87 @@ if(!$error)
$studiensemester = new studiensemester();
if ($studiensemester->load($_POST['studiensemester_kurzbz']))
{
$qry = "SELECT ss.stundensatz
FROM hr.tbl_stundensatz ss
JOIN public.tbl_mitarbeiter ON ss.uid = tbl_mitarbeiter.mitarbeiter_uid
JOIN public.tbl_benutzer ON(tbl_benutzer.uid=tbl_mitarbeiter.mitarbeiter_uid)
WHERE person_id=".$db->db_add_param($_POST['person_id'], FHC_INTEGER) ."
AND stundensatztyp = ". $db->db_add_param('lehre') ."
AND gueltig_von <= ". $db->db_add_param($studiensemester->ende) ."
AND (gueltig_bis >= ". $db->db_add_param($studiensemester->start) ." OR gueltig_bis IS NULL)
ORDER BY gueltig_bis DESC NULLS FIRST, gueltig_von DESC NULLS LAST LIMIT 1
";
if($result = $db->db_query($qry))
if (defined('FAS_LV_LEKTORINNENZUTEILUNG_FIXANGESTELLT_STUNDENSATZ')
&& !FAS_LV_LEKTORINNENZUTEILUNG_FIXANGESTELLT_STUNDENSATZ)
{
if($row = $db->db_fetch_object($result))
// Mitarbeiter laden
$qry = "
SELECT
mitarbeiter_uid, fixangestellt
FROM
public.tbl_mitarbeiter
JOIN public.tbl_benutzer ON(tbl_benutzer.uid=tbl_mitarbeiter.mitarbeiter_uid)
WHERE
person_id=".$db->db_add_param($_POST['person_id'], FHC_INTEGER) ."
ORDER BY tbl_mitarbeiter.insertamum DESC NULLS LAST LIMIT 1
";
if($result = $db->db_query($qry))
{
$data = $row->stundensatz;
$return = true;
}
else
{
$data = '80.00';
$return = true;
if($row = $db->db_fetch_object($result))
{
$uid = $row->mitarbeiter_uid;
if($db->db_parse_bool($row->fixangestellt)==true)
{
// Fixangestellte haben keinen Stundensatz
$data = '';
$return = true;
}
else
{
// Stundensatz des Mitarbeiters laden
$stundensatz = new stundensatz();
if($stundensatz->getStundensatzDatum($uid, $studiensemester->start, $studiensemester->ende, 'lehre'))
{
$data = $stundensatz->stundensatz;
$return = true;
}
else
{
// Keine Stundensatz hinterlegt
$data = '0.00';
$return = true;
}
}
}
else
{
// Kein Mitarbeiter gefunden, kein Stundensatz
$data = '0.00';
$return = true;
}
}
}
else
{
$return = false;
$errormsg = 'Unbekannter Fehler';
$qry = "SELECT ss.stundensatz
FROM hr.tbl_stundensatz ss
JOIN public.tbl_mitarbeiter ON ss.uid = tbl_mitarbeiter.mitarbeiter_uid
JOIN public.tbl_benutzer ON(tbl_benutzer.uid=tbl_mitarbeiter.mitarbeiter_uid)
WHERE person_id=".$db->db_add_param($_POST['person_id'], FHC_INTEGER) ."
AND stundensatztyp = ". $db->db_add_param('lehre') ."
AND gueltig_von <= ". $db->db_add_param($studiensemester->ende) ."
AND (gueltig_bis >= ". $db->db_add_param($studiensemester->start) ." OR gueltig_bis IS NULL)
ORDER BY gueltig_bis DESC NULLS FIRST, gueltig_von DESC NULLS LAST LIMIT 1
";
if($result = $db->db_query($qry))
{
if($row = $db->db_fetch_object($result))
{
$data = $row->stundensatz;
$return = true;
}
else
{
$data = '80.00';
$return = true;
}
}
else
{
$return = false;
$errormsg = 'Unbekannter Fehler';
}
}
}
else
@@ -4695,8 +4753,15 @@ if(!$error)
$return = false;
$errormsg = 'Fehler beim Laden des Studiensemesters';
}
}
}
else
{
$data = '20.00'.$_POST['studiensemester_kurzbz'];
$return = true;
}
}
elseif(isset($_POST['type']) && $_POST['type']=='saveanrechnung')
{
$anrechnung = new anrechnung();
+37 -4
View File
@@ -393,6 +393,7 @@ function StudentProjektarbeitAuswahl()
anmerkung = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#anmerkung" ));
gesamtstunden = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#gesamtstunden" ));
final = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#final" ));
var lehreinheit_stsem = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#lehreinheit_stsem" ));
var stg_kz = document.getElementById('student-detail-menulist-studiengang_kz').value;
@@ -440,6 +441,7 @@ function StudentProjektarbeitAuswahl()
//Werte setzen
document.getElementById('student-projektarbeit-textbox-projektarbeit_id').value=projektarbeit_id;
document.getElementById('student-projektarbeit-textbox-lehreinheit_stsem').value=lehreinheit_stsem;
document.getElementById('student-projektarbeit-menulist-projekttyp').value=projekttyp_kurzbz;
document.getElementById('student-projektarbeit-menulist-lehrveranstaltung').value=lehrveranstaltung_id;
document.getElementById('student-projektarbeit-menulist-lehreinheit').value=lehreinheit_id;
@@ -649,6 +651,8 @@ function StudentProjektarbeitNeu()
document.getElementById('student-projektarbeit-checkbox-neu').checked=true;
document.getElementById('student-projektarbeit-textbox-projektarbeit_id').value='';
document.getElementById('student-projektarbeit-textbox-lehreinheit_stsem').value='';
StudentProjektarbeitResetFields();
StudentProjektarbeitDetailDisableFields(false);
StudentProjektbetreuerDisableFields(true);
@@ -872,6 +876,7 @@ function StudentProjektbetreuerAuswahl()
name = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#name" ));
punkte = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#punkte" ));
stunden = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#stunden" ));
stundensatz = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#stundensatz" ));
betreuerart_kurzbz = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#betreuerart_kurzbz" ));
person_nachname = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#person_nachname" ));
@@ -892,6 +897,16 @@ function StudentProjektbetreuerAuswahl()
document.getElementById('student-projektbetreuer-textbox-person_id').value=person_id;
document.getElementById('student-projektbetreuer-checkbox-neu').checked=false;
var lehreinheitstsem = document.getElementById('student-projektarbeit-textbox-lehreinheit_stsem').value;
var default_stundensatz = StudentProjektbetreuerLoadStundensatz(person_id, lehreinheitstsem);
if (default_stundensatz != '')
default_stundensatz = 'Stundensatz (Default '+default_stundensatz+'):';
else
default_stundensatz = 'Stundensatz';
document.getElementById('student-projektbetreuer-label-stundensatz').value= default_stundensatz;
var gesamtkosten = StudentProjektbetreuerGesamtkosten();
@@ -1171,7 +1186,9 @@ function StudentProjektbetreuerDetailReset()
document.getElementById('student-projektbetreuer-textbox-stunden').value='0.0';
document.getElementById('student-projektbetreuer-menulist-betreuerart').value='Begutachter';
}
document.getElementById('student-projektbetreuer-textbox-stundensatz').value='80.0';
document.getElementById('student-projektbetreuer-label-stundensatz').value= 'Stundensatz (Default 80.0):';
document.getElementById('student-projektbetreuer-menulist-person').value='';
}
@@ -1358,16 +1375,16 @@ function StudentProjektbetreuerLoeschen()
}
}
function StudentProjektbetreuerLoadMitarbeiterDaten()
function StudentProjektbetreuerLoadStundensatz(person_id, studiensemester)
{
person_id = MenulistGetSelectedValue('student-projektbetreuer-menulist-person');
var stundensatz='';
var url = '<?php echo APP_ROOT ?>content/student/studentDBDML.php';
var req = new phpRequest(url,'','');
req.add('type', 'getstundensatz');
req.add('person_id', person_id);
req.add('studiensemester_kurzbz', getStudiensemester())
req.add('studiensemester_kurzbz', studiensemester)
var response = req.executePOST();
@@ -1385,7 +1402,23 @@ function StudentProjektbetreuerLoadMitarbeiterDaten()
stundensatz = val.dbdml_data
}
document.getElementById('student-projektbetreuer-textbox-stundensatz').value=stundensatz;
return stundensatz;
}
function StudentProjektbetreuerLoadMitarbeiterDaten()
{
var person_id = MenulistGetSelectedValue('student-projektbetreuer-menulist-person');
var lehreinheitstsem = document.getElementById('student-projektarbeit-textbox-lehreinheit_stsem').value;
var stundensatz = StudentProjektbetreuerLoadStundensatz(person_id, lehreinheitstsem);
if (stundensatz != '')
default_stundensatz = 'Stundensatz (Default '+stundensatz+'):';
else
default_stundensatz = 'Stundensatz';
document.getElementById('student-projektbetreuer-label-stundensatz').value = default_stundensatz;
document.getElementById('student-projektbetreuer-textbox-stundensatz').value = stundensatz;
}
// ****
@@ -171,7 +171,11 @@ $is_hidden = (!defined('FAS_STUDIERENDE_PROJEKTARBEIT_VERTRAGSDETAILS_ANZEIGEN')
<rows>
<row>
<label value="Projektarbeit ID" control="student-projektarbeit-textbox-projektarbeit_id"/>
<hbox><textbox id="student-projektarbeit-textbox-projektarbeit_id" readonly="true" maxlength="16" size="16"/></hbox>
<hbox>
<textbox id="student-projektarbeit-textbox-projektarbeit_id" readonly="true" maxlength="16" size="16"/>
<textbox id="student-projektarbeit-textbox-lehreinheit_stsem" hidden="true" readonly="true" maxlength="32" size="32"/>
</hbox>
</row>
<row>
<label value="Titel" control="student-projektarbeit-textbox-titel"/>
@@ -523,7 +527,7 @@ $is_hidden = (!defined('FAS_STUDIERENDE_PROJEKTARBEIT_VERTRAGSDETAILS_ANZEIGEN')
<textbox id="student-projektbetreuer-textbox-stunden" disabled="true" maxlength="8"/>
</row>
<row>
<label value="Stundensatz" control="student-projektbetreuer-textbox-stundensatz"/>
<label id="student-projektbetreuer-label-stundensatz" value="Stundensatz: " control="student-projektbetreuer-textbox-stundensatz"/>
<textbox id="student-projektbetreuer-textbox-stundensatz" disabled="true" maxlength="5"/>
</row>
<row hidden="true"><!-- Faktor wird nicht mehr benoetigt -->
+1
View File
@@ -5,6 +5,7 @@ $this->phrasen['services/details']='Details';
$this->phrasen['services/filtern']='Filtern';
$this->phrasen['services/leistung']='Leistung';
$this->phrasen['services/design']='Verantwortlich';
$this->phrasen['services/kritikalitaet']='Kritikalität';
$this->phrasen['services/betrieb']='Betrieb';
$this->phrasen['services/operativ']='Operativ';
?>
+2 -1
View File
@@ -5,6 +5,7 @@ $this->phrasen['services/details']='Details';
$this->phrasen['services/filtern']='Filter';
$this->phrasen['services/leistung']='Service';
$this->phrasen['services/design']='Design';
$this->phrasen['services/kritikalitaet']='Criticality';
$this->phrasen['services/betrieb']='Running';
$this->phrasen['services/operativ']='Operating';
?>
?>
+4 -1
View File
@@ -117,7 +117,10 @@ export default {
return this.$fhcApi.post(
'/api/frontend/v1/studstatus/leitung/getPrestudents',
{ query },
{ signal }
{
signal: signal,
timeout: 30000
}
);
},
approve(antrag) {
@@ -35,16 +35,32 @@ export default {
});
},
loadData(evt) {
if (this.abortController)
this.abortController.abort();
if( evt.query.length < 2 )
{
return false;
}
if (this.abortController instanceof AbortController
&& this.abortController.signal.aborted === false)
{
this.abortController.abort();
}
this.abortController = new AbortController();
this.$fhcApi.factory
.studstatus.leitung.getPrestudents(evt.query, this.abortController.signal)
.then(result => {
this.data = result.data;
this.abortController = null;
})
.catch(this.$fhcApi.handleSystemError);
.catch(error => {
if (this.abortController instanceof AbortController
&& this.abortController.signal.aborted === false)
{
this.abortController.abort();
}
this.$fhcAlert.handleSystemError(error);
});
}
},
template: `
+1 -1
View File
@@ -218,7 +218,7 @@ $datum_obj = new datum();
echo ' <td><textarea name="beschreibung" cols="60" rows="5">'.htmlspecialchars($service->beschreibung).'</textarea></td>';
echo '</tr>';
echo '<tr>';
echo ' <td>Kategorie&nbsp;</td>';
echo ' <td>Kritikalität&nbsp;</td>';
echo ' <td>';
echo '<SELECT name="servicekategorie_kurzbz">';
echo '<OPTION value="">-- keine Auswahl --</OPTION>';
+1 -1
View File
@@ -126,7 +126,7 @@ echo '<table class="tablesorter" id="myTable">
<th>Bezeichnung</th>
<th>Beschreibung</th>
<th>Organisationseinheit</th>
<th>Kategorie</th>
<th>Kritikalität</th>
<th>Content ID</th>
<th>Design</th>
<th>Betrieb</th>