Merge remote-tracking branch 'origin/master' into feature-54225/reihungstest_ablauf_fuer_quereinsteiger

# Conflicts:
#	cis/testtool/menu.php
#	system/dbupdate_3.4.php
This commit is contained in:
ma0048
2026-09-23 11:29:43 +02:00
1143 changed files with 142826 additions and 17295 deletions
+6 -6
View File
@@ -113,7 +113,7 @@ if($action != null)
}
$bisarchiv->readFile($meldung, 'xml');
$bisarchiv->studiengang_kz = $stg;
$bisarchiv->studiensemster_kurzbz = $sem;
$bisarchiv->studiensemester_kurzbz = $sem;
$bisarchiv->insertvon = $uid;
$bisarchiv->typ = $typ;
$result = $bisarchiv->save();
@@ -129,11 +129,11 @@ $bisarchiv->getBisData($anzeige);
<title>BIS - Archiv</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="../../skin/vilesci.css" rel="stylesheet" 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>
<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" href="../../skin/tablesort.css" type="text/css"/>
<style type="text/css">
+23 -9
View File
@@ -390,30 +390,34 @@ if($result = $db->db_query($qry))
$error_log.=(!empty($error_log)?', ':'')."Matrikelnummer ('".trim($row->matr_nr)."') ist nicht 8 Zeichen lang";
}
//SVNR mu߸ 10-stellig sein
/* Alle SVNR Checks entfernt
if($row->svnr!='' && $row->svnr!=null && mb_strlen(trim($row->svnr))!=10)
{
$error_log.=(!empty($error_log)?', ':'')."SVNR ('".trim($row->svnr)."') ist nicht 10 Zeichen lang";
}
}*/
//Ersatzkennzeichen muß 10-stellig sein
if($row->ersatzkennzeichen!='' && $row->ersatzkennzeichen!=null && mb_strlen(trim($row->ersatzkennzeichen))!=10)
{
$error_log.=(!empty($error_log)?', ':'')."Ersatzkennzeichen ('".trim($row->ersatzkennzeichen)."') ist nicht 10 Zeichen lang";
}
//Vergleich der letzten 6 Stellen der SVNR mit Geburtsdatum - ausser bei 01.01. und 01.07.
/* Alle SVNR Checks entfernt
if($row->svnr!='' && $row->svnr!=null && substr($row->svnr,4,6)!=$row->vdat && substr($row->vdat,0,4)!='0101' && substr($row->vdat,0,4)!='0107')
{
$error_log_hinweis.=(!empty($error_log_hinweis)?', ':'')."SVNR ('".$row->svnr."') enth&auml;lt Geburtsdatum (".$row->gebdatum.") nicht";
}
}*/
//Vergleich der letzten 6 Stellen des Ersatzkennzeichen mit Geburtsdatum
if($row->ersatzkennzeichen!='' && $row->ersatzkennzeichen!=null && substr($row->ersatzkennzeichen,4,6)!=$row->vdat)
{
$error_log.=(!empty($error_log)?', ':'')."Ersatzkennzeichen ('".$row->ersatzkennzeichen."') enth&auml;lt Geburtsdatum (".$row->gebdatum.") nicht";
}
// Wenn SVNR fehlt, darf Ersatzkennzeichen nicht fehlen (und umgekehrt)
/* Alle SVNR Checks entfernt
if(($row->svnr=='' || $row->svnr==null)&&($row->ersatzkennzeichen=='' || $row->ersatzkennzeichen==null))
{
$error_log.=(!empty($error_log)?', ':'')."SVNR ('".$row->svnr."') bzw. ErsKz ('".$row->ersatzkennzeichen."') fehlt";
}
}*/
if($row->staatsbuergerschaft=='' || $row->staatsbuergerschaft==null)
{
$error_log.=(!empty($error_log)?', ':'')."Staatsb&uuml;rgerschaft ('".$row->staatsbuergerschaft."')";
@@ -714,7 +718,7 @@ if($result = $db->db_query($qry))
$qry_ap="SELECT * FROM lehre.tbl_abschlusspruefung WHERE student_uid=".$db->db_add_param($row->student_uid)." AND abschlussbeurteilung_kurzbz!='nicht' AND abschlussbeurteilung_kurzbz IS NOT NULL";
if($result_ap = $db->db_query($qry_ap))
{
$ap=0;
$ap = array();
while($row_ap = $db->db_fetch_object($result_ap))
{
if($row_ap->datum=='' || $row_ap->datum==null)
@@ -725,12 +729,19 @@ if($result = $db->db_query($qry))
{
$error_log.=(!empty($error_log)?', ':'')."Datum der Sponsion ('".$row_ap->sponsion."')";
}
$ap++;
if (!isset($ap[$row_ap->pruefungstyp_kurzbz]))
{
$ap[$row_ap->pruefungstyp_kurzbz] = 0;
}
$ap[$row_ap->pruefungstyp_kurzbz]++;
$sponsion=$row_ap->sponsion;
}
if($ap!=1)
foreach ($ap as $typ => $count)
{
$error_log.=(!empty($error_log)?', ':'').$ap." bestandene Abschlusspr&uuml;fungen";
if ($count > 1)
{
$error_log.=(!empty($error_log)?', ':'').$count." bestandene Abschlusspr&uuml;fungen desselben Typs";
}
}
}
}
@@ -815,13 +826,16 @@ if($result = $db->db_query($qry))
<Vorname>".$row->vorname."</Vorname>
<Familienname>".$row->nachname."</Familienname>";
/* Alle SVNR Checks entfernt
if($row->svnr!='')
{
$datei.="
<SVNR>".$row->svnr."</SVNR>";
}
}*/
// Ersatzkennzeichen nur inkludieren wenn svnr nicht gesetzt
if($row->ersatzkennzeichen!='' && $row->svnr == null)
// Alle SVNR Checks entfernt
// if($row->ersatzkennzeichen!='' && $row->svnr == null)
if($row->ersatzkennzeichen!='')
{
$datei.="
<ErsKz>".$row->ersatzkennzeichen."</ErsKz>";
+2 -4
View File
@@ -118,8 +118,7 @@ $qry = "SELECT ma.* FROM
FROM
lehre.tbl_projektbetreuer
JOIN lehre.tbl_projektarbeit USING(projektarbeit_id)
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
JOIN public.tbl_studiensemester USING(studiensemester_kurzbz)
JOIN public.tbl_studiensemester ON(tbl_projektarbeit.studiensemester_kurzbz = tbl_studiensemester.studiensemester_kurzbz)
WHERE
tbl_projektbetreuer.person_id=vw_mitarbeiter.person_id
) a
@@ -156,9 +155,8 @@ $qry = "SELECT ma.* FROM
FROM
lehre.tbl_projektbetreuer
JOIN lehre.tbl_projektarbeit USING(projektarbeit_id)
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
WHERE
tbl_lehreinheit.studiensemester_kurzbz IN(SELECT
tbl_projektarbeit.studiensemester_kurzbz IN(SELECT
studiensemester_kurzbz
FROM
public.tbl_studiensemester
@@ -164,8 +164,7 @@ $qry = "SELECT
FROM
lehre.tbl_projektbetreuer
JOIN lehre.tbl_projektarbeit USING(projektarbeit_id)
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
JOIN public.tbl_studiensemester USING(studiensemester_kurzbz)
JOIN public.tbl_studiensemester ON(tbl_projektarbeit.studiensemester_kurzbz = tbl_studiensemester.studiensemester_kurzbz)
WHERE
tbl_projektbetreuer.person_id=vw_mitarbeiter.person_id
) a
@@ -203,9 +202,8 @@ $qry = "SELECT
FROM
lehre.tbl_projektbetreuer
JOIN lehre.tbl_projektarbeit USING(projektarbeit_id)
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
WHERE
tbl_lehreinheit.studiensemester_kurzbz IN(SELECT
tbl_projektarbeit.studiensemester_kurzbz IN(SELECT
studiensemester_kurzbz
FROM
public.tbl_studiensemester
+24 -14
View File
@@ -473,7 +473,7 @@ function _add_relativesBA_und_anteiligeJVZAE($uid, $bisverwendung_arr)
/**
* Verwendungen ergänzen, wenn Mitarbeiter in Verwaltung/Managment/Wartung (jedenfalls nicht in Lehre)
* zugeteilt ist und dennoch lehrt.
* Die SWS werden sowohl fuer Sommer- als auch Wintersemster ermittelt und jeweils in einer eigenen
* Die SWS werden sowohl fuer Sommer- als auch Wintersemester ermittelt und jeweils in einer eigenen
* Verwendung mit dem Verwendungscode 1 ergaenzt.
*/
$bisverwendung_beginn_BIS = new DateTime($bisverwendung->beginn_imBISMeldungsJahr);
@@ -742,7 +742,7 @@ function _getFunktionscontainer_Funktionscode123456($bisfunktion_arr)
$has_oe_lehrgang = !($studiengang->studiengang_kz > 0 && $studiengang->studiengang_kz < 10000);
// STG, die nicht BIS-bemeldet werden, ueberspringen
if (in_array($studiengang->studiengang_kz, BIS_EXCLUDE_STG))
if (in_array($studiengang->studiengang_kz, BIS_EXCLUDE_STG) || !$studiengang->melderelevant)
{
continue;
}
@@ -825,6 +825,7 @@ function _addFunktionscontainer_Funktionscode7($uid, $funktion_arr, $stichtag)
$entwicklungsteam_arr = array_filter($entwicklungsteam_arr, function ($obj) {
return
!in_array($obj->studiengang_kz, BIS_EXCLUDE_STG) &&
$obj->melderelevant &&
$obj->studiengang_kz > 0 &&
$obj->studiengang_kz < 10000;
});
@@ -875,7 +876,6 @@ function _getLehrecontainer($sws_proStg_arr)
$sws_proStg_arr = array_filter($sws_proStg_arr, function ($obj) {
return
!in_array($obj->studiengang_kz, BIS_EXCLUDE_STG) &&
$obj->studiengang_kz > 0 &&
$obj->studiengang_kz < 10000;
});
}
@@ -886,13 +886,17 @@ function _getLehrecontainer($sws_proStg_arr)
{
$is_sommersemester = substr($sws_proStg->studiensemester_kurzbz, 0, 2) == 'SS';
$is_wintersemester = substr($sws_proStg->studiensemester_kurzbz, 0, 2) == 'WS';
$is_lehrgang = isset($sws_proStg->lgartcode);
$kennzeichen_name = $is_lehrgang ? 'LehrgangNr' : 'StgKz';
// Lehreobjekt generieren
if (empty($lehre_arr) || !lehre_stg_exists($sws_proStg->studiengang_kz, $lehre_arr))
if (empty($lehre_arr) || !lehre_stg_exists($sws_proStg->melde_studiengang_kz, $lehre_arr))
{
$lehre_obj = new StdClass();
$lehre_obj->StgKz = setLeadingZero(intval($sws_proStg->studiengang_kz), 4);
$lehre_obj->{$kennzeichen_name} = $sws_proStg->melde_studiengang_kz;
//~ $lehre_obj->StgKz = setLeadingZero(intval($sws_proStg->studiengang_kz), 4);
$lehre_obj->SommersemesterSWS = $is_sommersemester ? $sws_proStg->sws : 0.00;
$lehre_obj->WintersemesterSWS = $is_wintersemester ? $sws_proStg->sws : 0.00;
@@ -901,8 +905,8 @@ function _getLehrecontainer($sws_proStg_arr)
}
else // Lehrecontainer mit STG schon vorhanden
{
$lehre_obj_arr = array_filter($lehre_arr, function (&$obj) use ($sws_proStg) {
return $obj->StgKz == $sws_proStg->studiengang_kz;
$lehre_obj_arr = array_filter($lehre_arr, function (&$obj) use ($sws_proStg, $kennzeichen_name) {
return isset($obj->{$kennzeichen_name}) && $obj->{$kennzeichen_name} == $sws_proStg->melde_studiengang_kz;
});
// SWS ergaenzen
@@ -1020,9 +1024,14 @@ function _generateXML($person_arr)
foreach ($person->lehre_arr as $lehre)
{
$xml .= '<Lehre>';
$xml .= '<StgKz><![CDATA['. $lehre->StgKz. ']]></StgKz>';
$xml .= '<SommersemesterSWS><![CDATA['. $lehre->SommersemesterSWS. ']]></SommersemesterSWS>';
$xml .= '<WintersemesterSWS><![CDATA['. $lehre->WintersemesterSWS. ']]></WintersemesterSWS>';
if (isset($lehre->LehrgangNr))
$xml .= '<LehrgangNr><![CDATA['. $lehre->LehrgangNr. ']]></LehrgangNr>';
else
$xml .= '<StgKz><![CDATA['. $lehre->StgKz. ']]></StgKz>';
$xml .= '<SommersemesterSWS><![CDATA['. number_format($lehre->SommersemesterSWS, 2, '.', ''). ']]></SommersemesterSWS>';
$xml .= '<WintersemesterSWS><![CDATA['. number_format($lehre->WintersemesterSWS, 2, '.', ''). ']]></WintersemesterSWS>';
$xml .= '</Lehre>';
}
@@ -1211,7 +1220,7 @@ function _outputHTML($person_arr)
{
echo '
<tr>
<td>'. $lehre->StgKz. '</td>
<td>'. (isset($lehre->LehrgangNr) ? $lehre->LehrgangNr : $lehre->StgKz). '</td>
<td>'. $lehre->SommersemesterSWS. '</td>
<td>'. $lehre->WintersemesterSWS. '</td>
</tr>';
@@ -1351,15 +1360,16 @@ function verwendung_exists($bisverwendung, $verwendung_arr)
/**
* Prueft ob ein Studiengang bereits im Lehre Container vorhanden ist
* @param $studiengang_kz Studiengangskennzahl
* @param $melde_studiengang_kz Studiengangskennzahl
* @param $lehre_arr Array mit Lehre Objekten
* @return true wenn der Studiengang bereits existiert
*/
function lehre_stg_exists($studiengang_kz, $lehre_arr)
function lehre_stg_exists($melde_studiengang_kz, $lehre_arr)
{
foreach($lehre_arr as $row)
{
if($row->StgKz == $studiengang_kz)
$kennzeichenName = isset($row->LehrgangNr) ? 'LehrgangNr' : 'StgKz';
if(isset($row->{$kennzeichenName}) && $row->{$kennzeichenName} == $melde_studiengang_kz)
return true;
}
return false;
+42 -10
View File
@@ -930,26 +930,29 @@ function GenerateXMLStudentBlock($row)
{
$error_log.=(!empty($error_log)?', ':'')."Matrikelnummer ('".trim($row->matr_nr)."') ist nicht 8 Zeichen lang";
}
/* Alle SVNR Checks entfernt
if($row->svnr!='' && $row->svnr!=null && mb_strlen(trim($row->svnr))!=10)
{
$error_log.=(!empty($error_log)?', ':'')."SVNR ('".trim($row->svnr)."') ist nicht 10 Zeichen lang";
}
}*/
if($row->ersatzkennzeichen!='' && $row->ersatzkennzeichen!=null && mb_strlen(trim($row->ersatzkennzeichen))!=10)
{
$error_log.=(!empty($error_log)?', ':'')."Ersatzkennzeichen ('".trim($row->ersatzkennzeichen)."') ist nicht 10 Zeichen lang";
}
/* Alle SVNR Checks entfernt
if($row->svnr!='' && $row->svnr!=null && substr($row->svnr,4,6)!=$row->vdat && substr($row->vdat,0,4)!='0101' && substr($row->vdat,0,4)!='0107')
{
$error_log_hinweis.=(!empty($error_log_hinweis)?', ':'')."SVNR ('".$row->svnr."') enth&auml;lt Geburtsdatum (".$datum_obj->formatDatum($row->gebdatum,'d.m.Y').") nicht";
}
$error_log_hinweis.=(!empty($error_log_hinweis)?', ':'')."SVNR ('".$row->svnr."') enth&auml;lt Geburtsdatum (".$datum_obj->formatDatum($row->gebdatum,'d.m.Y').") nicht (Nicht BIS-Relevant)";
}*/
if($row->ersatzkennzeichen!='' && $row->ersatzkennzeichen!=null && substr($row->ersatzkennzeichen,4,6)!=$row->vdat)
{
$error_log.=(!empty($error_log)?', ':'')."Ersatzkennzeichen ('".$row->ersatzkennzeichen."') enth&auml;lt Geburtsdatum (".$datum_obj->formatDatum($row->gebdatum,'d.m.Y').") nicht";
}
/* Alle SVNR Checks entfernt
if(($row->svnr=='' || $row->svnr==null)&&($row->ersatzkennzeichen=='' || $row->ersatzkennzeichen==null))
{
$error_log.=(!empty($error_log)?', ':'')."SVNR ('".$row->svnr."') bzw. ErsKz ('".$row->ersatzkennzeichen."') fehlt";
}
}*/
if($row->staatsbuergerschaft=='' || $row->staatsbuergerschaft==null)
{
$error_log.=(!empty($error_log)?', ':'')."Staatsb&uuml;rgerschaft ('".$row->staatsbuergerschaft."')";
@@ -972,7 +975,7 @@ function GenerateXMLStudentBlock($row)
}
if($row->bpk == '' || $row->bpk == null)
{
$error_log_hinweis .= (!empty($error_log_hinweis) ? ', ' : '') . "bPK fehlt";
$error_log .= (!empty($error_log) ? ', ' : '') . "bPK fehlt";
}
if($row->bpk != '' && $row->bpk != null)
{
@@ -1300,6 +1303,12 @@ function GenerateXMLStudentBlock($row)
$gserror.="&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gemeinsame Studien - Partner Code ist leer\n";
if($rowgs->programm_code=='')
$gserror.="&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gemeinsame Studien - Programm ist leer\n";
// Check, wenn Staatsbuergerschft oder Geburtsnation nicht Ö, dann vermutlich Externer
if ($studtyp=='I' && (($row->staatsbuergerschaft != '' && $row->staatsbuergerschaft != 'A') || ($row->geburtsnation != '' && $row->geburtsnation != 'A')))
{
$error_log_hinweis .= (!empty($error_log_hinweis) ? ', ' : '') . "Hinweis: Person scheint aufgrund der Staatsbürgerschaft <b>externer Studierende*r</b> zu sein. Bitte prüfen und ggf. korrigieren.";
//$gserror .= "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Studierende*r scheint <b>externer Studierende*r</b> zu sein. Bitte prüfen und ggf. korrigieren.\n";
}
if($gserror!='')
{
@@ -1340,7 +1349,7 @@ function GenerateXMLStudentBlock($row)
}
if($row_ap->sponsion=='' || $row_ap->sponsion==null)
{
$error_log_hinweis.=(!empty($error_log_hinweis)?', ':'')."Datum der Sponsion ('".$row_ap->sponsion."')";
$error_log_hinweis.=(!empty($error_log_hinweis)?', ':'')."Datum der Sponsion ('".$row_ap->sponsion."') (Nicht BIS-Relevant)";
}
$ap++;
}
@@ -1354,6 +1363,26 @@ function GenerateXMLStudentBlock($row)
die("\nQry Failed:".$qry_ap);
}
}
//Wenn Beendigungsdatum VOR der Meldung und kein Absolvent vorhanden
if($aktstatus!='Absolvent' && !$gemeinsamestudien)
{
$qry_abs="SELECT * FROM lehre.tbl_abschlusspruefung WHERE student_uid=".$db->db_add_param($row->student_uid)."
AND abschlussbeurteilung_kurzbz!='nicht' AND abschlussbeurteilung_kurzbz IS NOT NULL
AND datum <= '".$bisdatum."'::date";
if($result_abs = $db->db_query($qry_abs))
{
while($row_abs = $db->db_fetch_object($result_abs))
{
$error_log.=(!empty($error_log)?', ':'')."Wenn das Abschlussdatum (".$datum_obj->formatDatum($row_abs->datum,'d.m.Y').") vor der BIS-Meldung liegt, muss ein Absolventenstatus vorhanden sein";
}
}
else
{
die("\nQry Failed:".$qry_abs);
}
}
if($orgform_code_array[$storgform]!=1) // Wenn nicht Vollzeit
{
if($row->berufstaetigkeit_code=='' || $row->berufstaetigkeit_code==null)
@@ -1420,7 +1449,7 @@ function GenerateXMLStudentBlock($row)
}
if($error_log_hinweis != '')
{
$v.="&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style='color: grey'>".$error_log_hinweis." (Nicht BIS-Relevant)</span>\n";
$v.="&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style='color: grey'>".$error_log_hinweis."</span>\n";
$error_log_hinweis = '';
}
$anzahl_fehler++;
@@ -1434,7 +1463,7 @@ function GenerateXMLStudentBlock($row)
if($error_log_hinweis != '')
{
$v.="<u>Bei Student (UID, Nachname, Vorname) '".$row->student_uid."', '".$row->nachname."', '".$row->vorname."' ($laststatus->status_kurzbz): </u>\n";
$v.="&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style='color: grey'>".$error_log_hinweis." (Nicht BIS-Relevant)</span>\n\n";
$v.="&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style='color: grey'>".$error_log_hinweis."</span>\n\n";
$error_log_hinweis = '';
}
@@ -1484,14 +1513,17 @@ function GenerateXMLStudentBlock($row)
<Vorname>" . $row->vorname . "</Vorname>
<Familienname>" . $row->nachname . "</Familienname>";
/* Alle SVNR Checks entfernt
if ($row->svnr != '')
{
$datei .= "
<SVNR>" . $row->svnr . "</SVNR>";
}
}*/
// Ersatzkennzeichen nur inkludieren wenn svnr nicht gesetzt
if ($row->ersatzkennzeichen != '' && $row->svnr == null)
// Alle SVNR Checks entfernt
// if ($row->ersatzkennzeichen != '' && $row->svnr == null)
if ($row->ersatzkennzeichen != '')
{
$datei .= "
<ErsKz>" . $row->ersatzkennzeichen . "</ErsKz>";
+3 -3
View File
@@ -80,9 +80,9 @@ $trenner->loadVariables($getuid);
$sql_query = "SELECT *,
(SELECT orgform_kurzbz
FROM tbl_prestudentstatus
WHERE prestudent_id=(Select prestudent_id from tbl_student where student_uid=xy.uid limit 1)
ORDER BY datum DESC, insertamum DESC, ext_id DESC LIMIT 1
FROM tbl_prestudentstatus
WHERE prestudent_id=(Select prestudent_id from tbl_student where student_uid=xy.uid limit 1)
ORDER BY datum DESC, insertamum DESC, ext_id DESC LIMIT 1
) as organisationsform
FROM (SELECT DISTINCT ON(tbl_projektarbeit.projektarbeit_id) public.tbl_studiengang.bezeichnung as stgbez,tbl_projekttyp.bezeichnung AS prjbez,* FROM lehre.tbl_projektarbeit
LEFT JOIN public.tbl_benutzer on(uid=student_uid)
+5 -4
View File
@@ -550,6 +550,8 @@ if($orgform_kurzbz != -1)
if($lehrveranstaltung_id != '')
$sql_query.= " AND tbl_lehrveranstaltung.lehrveranstaltung_id=".$db->db_add_param($lehrveranstaltung_id, FHC_INTEGER);
elseif(isset($_GET['delete_lvid']))
$sql_query.= " AND tbl_lehrveranstaltung.lehrveranstaltung_id=".$db->db_add_param(intval($_GET['delete_lvid']), FHC_INTEGER);
if($lehrveranstaltung_name != '')
{
@@ -1331,9 +1333,6 @@ if ($result_lv!=0)
echo '<td>
<a href="'.$_SERVER['PHP_SELF'].'?delete_lvid='.$row->lehrveranstaltung_id.'&stg_kz='.$stg_kz.'&semester='.$semester.'&fachbereich_kurzbz='.$oe_fachbereich.'&isaktiv='.$isaktiv.'&oe_kurzbz='.$oe_kurzbz.'&orgform='.$orgform_kurzbz.'" onclick="return conf_del()">löschen</a>
';
if (in_array($row->lehrtyp_kurzbz, array("tpl", "lv")))
echo '<br /><a href="lehrveranstaltung_faktor.php?lehrveranstaltung_id='.$db->convert_html_chars($row->lehrveranstaltung_id).'" target="lv_detail">Faktor</a>';
echo '</td>';
echo '
<td nowrap>';
@@ -1341,7 +1340,9 @@ if ($result_lv!=0)
$lv_faktor = new lehrveranstaltung_faktor();
$lv_faktor->getAkt($row->lehrveranstaltung_id);
echo $lv_faktor->faktor.'</td>';
if (in_array($row->lehrtyp_kurzbz, array("tpl", "lv")))
echo '<a href="lehrveranstaltung_faktor.php?lehrveranstaltung_id='.$db->convert_html_chars($row->lehrveranstaltung_id).'" target="lv_detail">Bearbeiten</a>';
echo '</td>';
echo "</tr>\n";
}
}
+5 -27
View File
@@ -30,8 +30,6 @@
require_once('../../include/lehrmodus.class.php');
require_once('../../include/benutzerberechtigung.class.php');
require_once('../../include/studienplan.class.php');
require_once('../../include/lehrveranstaltung_faktor.class.php');
require_once('../../include/studiensemester.class.php');
if (!$db = new basis_db())
die('Es konnte keine Verbindung zum Server aufgebaut werden.');
@@ -124,6 +122,7 @@
$lv->benotung = isset($_POST['benotung']);
$lv->lvinfo = isset($_POST['lvinfo']);
$lv->lehrauftrag = isset($_POST['lehrauftrag']);
$lv->evaluierung = isset($_POST['evaluierung']);
$lv->lehrveranstaltung_template_id = $lv->lehrtyp_kurzbz == 'tpl' ? '' : $_POST['lehrveranstaltung_template_id'];
if(!$lv->save())
@@ -141,31 +140,6 @@
$reloadstr .= " window.location.href='".$_SERVER['PHP_SELF']."?stg_kz=$lv->studiengang_kz&semester=$lv->semester&neu=true';";
}
$reloadstr .= "</script>\n";
if (in_array($lv->lehrtyp_kurzbz, array('tpl', 'lv')) && $lv->new === true)
{
$lv_faktor = new lehrveranstaltung_faktor();
$studiensemester = new studiensemester();
$studiensemester_von = $studiensemester->getLastOrAktSemester();
if ($lv->lehrtyp_kurzbz === 'lv' && $_POST['lehrveranstaltung_template_id'] !== '')
{
$lv_faktor->getAkt($_POST['lehrveranstaltung_template_id']);
//TODO Faktor in eine Config
if (is_null($lv_faktor->faktor))
$lv_faktor->addFaktor($lv->lehrveranstaltung_id, 2, $studiensemester_von);
else
$lv_faktor->addFaktor($lv->lehrveranstaltung_id, $lv_faktor->faktor, $studiensemester_von);
}
else
{
$lv_faktor->loadByLV($lv->lehrveranstaltung_id);
if (empty($lv_faktor->lv_faktoren))
{
$lv_faktor->addFaktor($lv->lehrveranstaltung_id, 2, $studiensemester_von);
}
}
}
}
}
@@ -473,6 +447,10 @@
<td>Lehrauftrag</td>
<td><input type="checkbox" name="lehrauftrag" '.($lv->lehrauftrag?'checked':'').'></td>
</tr>
<tr>
<td>Evaulierung</td>
<td><input type="checkbox" name="evaluierung" '.($lv->evaluierung?'checked':'').'></td>
</tr>
<tr id="lehrveranstaltung_template_id">
<td>Template</td>
<td colspan="2"><input type="text" name="lehrveranstaltung_template_id" value="'.$lv->lehrveranstaltung_template_id.'" size="6"> <span class="text-template_name"></span></td>
+24 -1
View File
@@ -6,6 +6,7 @@ require_once('../../include/phrasen.class.php');
require_once('../../include/lehrveranstaltung.class.php');
require_once('../../include/lehrveranstaltung_faktor.class.php');
require_once('../../include/studiensemester.class.php');
require_once('../../include/lehrform.class.php');
$uid = get_uid();
$rechte = new benutzerberechtigung();
@@ -38,12 +39,14 @@ echo '<!DOCTYPE HTML>
var row = $(this).closest('tr');
var id = row.data('id');
var faktor = row.find('.faktor').text();
var lehrform = row.find('.lehrform').text();
var von = row.find('.von').text();
var bis = row.find('.bis').text();
$('#action').val('edit');
$('#id').val(id);
$('#faktor').val(faktor);
$('#lehrform').val(lehrform);
$('#von').val(von);
$('#bis').val(bis);
});
@@ -63,12 +66,14 @@ echo '<!DOCTYPE HTML>
var id = $('#id').val();
var faktor = $('#faktor').val();
var lehrform = $('#lehrform').val();
var von = $('#von').val();
var bis = $('#bis').val();
var lv_id = $('#lv_id').val();
var formData = {
faktor: faktor,
lehrform_kurzbz: lehrform,
von: von,
bis: bis,
lv_id: lv_id
@@ -132,6 +137,7 @@ echo '<!DOCTYPE HTML>
{
var row = $('#faktorTable tbody tr[data-id="' + formData.id + '"]');
row.find('.faktor').text(formData.faktor);
row.find('.lehrform').text(formData.lehrform_kurzbz);
row.find('.von').text(formData.von);
row.find('.bis').text(formData.bis);
@@ -189,6 +195,7 @@ echo '<!DOCTYPE HTML>
var row = tr
.append(
$('<td>').text(faktor.faktor).addClass('faktor'),
$('<td>').text(faktor.lehrform_kurzbz || "").addClass('lehrform'),
$('<td>').text(faktor.von).addClass('von'),
$('<td>').text(faktor.bis).addClass('bis'),
$('<td>').append(editButton).addClass('edit'),
@@ -232,6 +239,9 @@ $faktor->loadByLV($lv->lehrveranstaltung_id);
$studiensemester = new studiensemester();
$studiensemester->getAll('desc');
$lehrform = new lehrform();
$lehrform->getAll();
echo '
</head>
@@ -267,6 +277,17 @@ echo '
echo '
</select>
<label for="lehrform">Lehrform</label>
<select id="lehrform" name="lehrform">
<option value="">---keine Auswahl---</option>';
foreach ($lehrform->lehrform as $lehrform)
{
echo '<option value="'.$lehrform->lehrform_kurzbz.'">'.$lehrform->lehrform_kurzbz . ' ' . $lehrform->bezeichnung.'</option>';
}
echo '
</select>
<button type="submit">'.$p->t('global/speichern').'</button>
<span id="success_message_save" class="alert alert-success" style="display:none;">'. $p->t('global/erfolgreichgespeichert') . '</span>
<span id="success_message_delete" class="alert alert-success" style="display:none;">'. $p->t('global/erfolgreichgelöscht') . '</span>
@@ -275,7 +296,8 @@ echo '
<table class="tablesorter" id="faktorTable">
<thead>
<tr>
<th>'.$p->t('lv/faktor').'</th>
<th>'.$p->t('lvaliste/faktor').'</th>
<th>'.$p->t('lvaliste/lehrform').'</th>
<th>'.$p->t('global/von').'</th>
<th>'.$p->t('global/bis').'</th>
<th>'.$p->t('global/bearbeiten').'</th>
@@ -291,6 +313,7 @@ if(count($faktor->lv_faktoren) > 0)
{
echo "<tr data-id=". $lv_faktor->lehrveranstaltung_faktor_id .">
<td class='faktor'>".$lv_faktor->faktor."</td>
<td class='lehrform'>".$lv_faktor->lehrform_kurzbz."</td>
<td class='von'>".$lv_faktor->studiensemester_kurzbz_von."</td>
<td class='bis'>".$lv_faktor->studiensemester_kurzbz_bis."</td>
<td><button class='edit'>".$p->t('global/bearbeiten')."</button></td>
@@ -0,0 +1,759 @@
<?php
require_once('../../config/vilesci.config.inc.php');
require_once('../../include/studiengang.class.php');
require_once('../../include/functions.inc.php');
require_once('../../include/benutzerberechtigung.class.php');
require_once('../../include/fachbereich.class.php');
require_once('../../include/lvinfo.class.php');
require_once('../../include/lehrveranstaltung.class.php');
require_once('../../include/organisationsform.class.php');
require_once('../../include/organisationseinheit.class.php');
if (!$db = new basis_db())
die('Es konnte keine Verbindung zum Server aufgebaut werden.');
$getKompatibleLVs = filter_input(INPUT_POST, 'getKompatibleLVs', FILTER_VALIDATE_BOOLEAN);
if ($getKompatibleLVs)
{
if (isset($_POST['lv_id']))
{
$lv = new lehrveranstaltung();
$lv->load($_POST['lv_id']);
$kompatibleLvs = $lv->loadLVkompatibel($_POST['lv_id']);
if (is_array($kompatibleLvs) && count($kompatibleLvs) > 0)
{
$result = array();
foreach($kompatibleLvs as $lvId)
{
$lv->load($lvId);
$studiengang = new studiengang();
$studiengang->load($lv->studiengang_kz);
$oe = new organisationseinheit();
$oe->load($lv->oe_kurzbz);
$result[] = array(
"lehrveranstaltung_id" => $lv->lehrveranstaltung_id,
"kurzbz" => $lv->kurzbz,
"bezeichnung" => $lv->bezeichnung,
"ects" => $lv->ects,
"studiengang_kuerzel" => $studiengang->kuerzel,
"oe_bezeichnung" => $oe->bezeichnung
);
}
echo json_encode(["result" => $result]);
exit();
}
echo json_encode(["result" => array()]);
exit();
}
}
if (isset($_REQUEST['autocomplete']) && ($_REQUEST['autocomplete'] === 'From' || $_REQUEST['autocomplete'] === 'To'))
{
$search = trim((isset($_REQUEST['term']) ? $_REQUEST['term'] : ''));
if (is_null($search) || $search == '')
{
exit();
}
$qry = "SELECT lehre.tbl_lehrveranstaltung.*
FROM lehre.tbl_lehrveranstaltung
WHERE
lower(bezeichnung) like '%" . $db->db_escape(mb_strtolower($search)) . "%' OR
lehrveranstaltung_id::text like '%" . $db->db_escape(mb_strtolower($search)) . "%' OR
studiengang_kz::text like '%" . $db->db_escape(mb_strtolower($search)) . "%'
ORDER BY lehrveranstaltung_id DESC
LIMIT 10
";
if ($result = $db->db_query($qry))
{
$result_obj = array();
while ($row = $db->db_fetch_object($result))
{
$item['lehrveranstaltung_id'] = html_entity_decode($row->lehrveranstaltung_id);
$item['bezeichnung'] = html_entity_decode($row->bezeichnung);
$item['oe_kurzbz'] = html_entity_decode($row->oe_kurzbz);
$result_obj[] = $item;
}
echo json_encode($result_obj);
}
exit();
}
?><!DOCTYPE html>
<html>
<head>
<title>Lehrveranstaltung Verwaltung</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" href="../../skin/fhcomplete.css" type="text/css">
<link rel="stylesheet" href="../../skin/vilesci.css" type="text/css">
<link rel="stylesheet" href="../../skin/jquery.css" type="text/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>
<link rel="stylesheet" href="../../skin/tablesort.css" type="text/css"/>
<style>
.container {
display: flex;
gap: 20px;
width: 100%;
}
.box {
flex: 1;
padding: 20px;
border: 1px solid #333;
text-align: center;
width: 50%;
}
.lvDropdown {
width: 100%;
}
.missing-in-to td {
background-color: #fff3cd !important;
}
.autocomplete {
width: 100%;
box-sizing: border-box;
}
.hidden {
visibility: hidden;
}
</style>
<script>
$(document).ready(function () {
initBox("From");
initBox("To");
searchDropdownCleaner("From")
searchDropdownCleaner("To")
$('#kompatibleLVsUbernehmen').on("click", function() {
let lvidFrom = $('#lvDropdownFrom').val();
let lvidTo = $('#lvDropdownTo').val();
let uebernahmenCheckboxen = $("input[name='lvUebernehmenCheckbox']:checked");
let checkboxenUebernahmeCount = uebernahmenCheckboxen.length;
let lvidautoFrom = $('#autocompleteFrom').data("lv-id");
let lvidautoTo = $('#autocompleteTo').data("lv-id");
if ((!lvidFrom && !lvidautoFrom) || (!lvidTo && !lvidautoTo))
{
alert("Bitte in beiden Dropdowns eine LV auswählen!");
return;
}
lvidTo = lvidTo || lvidautoTo;
if (checkboxenUebernahmeCount === 0)
{
alert("Bitte Kompatible LV´s auswählen die übernommen werden sollen!");
return;
}
let done = 0;
uebernahmenCheckboxen.each(function()
{
saveKompatibleLv(lvidTo, this.value, function() {
done++;
if (done === checkboxenUebernahmeCount)
{
let drodpwonval = $('#lvDropdownTo').val();
let autocompleteval = $('#autocompleteTo').data('lv-id');
if (drodpwonval)
{
$('#lvDropdownTo').trigger('change');
}
else if (autocompleteval)
{
callLoadKompatibleLvs(autocompleteval, 'To');
}
}
});
});
}),
$('#alleLVsMarkieren').on("click", function()
{
let checkboxen = $("#kompatibleLVsFrom tbody tr.missing-in-to").find("input[name='lvUebernehmenCheckbox']");
checkboxen.prop("checked", true);
}),
$('#alleLVsAbwaehlen').on("click", function()
{
let checkboxen = $("#kompatibleLVsFrom tbody").find("input[name='lvUebernehmenCheckbox']");
checkboxen.prop("checked", false);
})
});
function searchDropdownCleaner(side)
{
let search = $("#autocomplete" + side);
let studiengang = $("#stgDropdown" + side);
let oe = $("#oeDropdown" + side);
let semester = $("#semDropdown" + side);
let lvDropdown = $("#lvDropdown" + side);
let dropdowns = [studiengang, oe, semester, lvDropdown];
search.on("input", function() {
if (search.val().trim().length > 0)
{
dropdowns.forEach(element => {
element.closest("tr").addClass("hidden");
});
}
else
{
dropdowns.forEach(element => {
element.closest("tr").removeClass("hidden");
});
}
})
}
function initBox(side)
{
loadSemester(side);
$('#stgDropdown' + side).on("change", function() {
loadSemester(side)
})
$('#oeDropdown' + side).on("change", function() {
loadLehrveranstaltungen(side)
})
$('#semDropdown' + side).on("change", function() {
loadLehrveranstaltungen(side)
})
$('#lvDropdown' + side).on("change", function() {
loadKompatibleLvs(side)
})
$('#kompatibleLVs' + side).data('ts-initialized', false);
$("#autocomplete" + side).autocomplete({
source: "lehrveranstaltung_kompatibel_vergleichen.php?autocomplete=" + side,
minLength: 3,
response: function(event, ui) {
for (let i in ui.content) {
if (ui.content.hasOwnProperty(i))
{
let option = ui.content[i];
option.value = option.bezeichnung + " (" + option.lehrveranstaltung_id + "/" + option.oe_kurzbz + ")";
option.label = option.bezeichnung + " (" + option.lehrveranstaltung_id + "/" + option.oe_kurzbz + ")";
}
}
},
select: function(event, ui) {
callLoadKompatibleLvs(ui.item.lehrveranstaltung_id, side)
$(this).data("lv-id", ui.item.lehrveranstaltung_id);
$("#lvBezeichnung" + side).html(ui.item.bezeichnung + " (ID: " + ui.item.lehrveranstaltung_id + ")");
}
});
}
function sortTable(side)
{
if ($("#kompatibleLVs" + side + " tbody tr").length > 0 && !$('#kompatibleLVs' + side).data('ts-initialized'))
{
$('#kompatibleLVs' + side).tablesorter({
widgets: ["zebra"],
});
}
}
function loadSemester(side)
{
var studiengang_kz = $("#stgDropdown" + side).val();
$.ajax(
{
dataType: "json",
url: "../../soap/studienplan.json.php",
data: {
"method": "getSemesterFromStudiengang",
"studiengang_kz": studiengang_kz
}
}).success(function(data)
{
let html = "";
let result = Array.isArray(data?.result) ? data.result : [];
if (result.length > 0)
{
result.forEach(function(option)
{
html+="<option value='"+ option +"'>Semester "+ option +"</option>";
});
$("#semDropdown" + side).html(html);
}
loadLehrveranstaltungen(side);
});
}
function loadKompatibleLvs(side)
{
let lv_id = $("#lvDropdown" + side).val();
if (lv_id === null)
$("#lvBezeichnung" + side).html("")
else
{
let bezeichnung = $("#lvDropdown" + side + " option:selected").text();
$("#lvBezeichnung" + side).html(bezeichnung);
callLoadKompatibleLvs(lv_id, side)
}
}
function callLoadKompatibleLvs(lv_id, side)
{
$.ajax({
url: "lehrveranstaltung_kompatibel_vergleichen.php",
data: {
'getKompatibleLVs': true,
'lv_id' : lv_id
},
type: "POST",
dataType: "json",
success: function(data)
{
var html = "";
data.result.forEach(function(option)
{
html += "<tr data-lv-id='" + option.lehrveranstaltung_id + "'>" +
"<td>"+ option.lehrveranstaltung_id +"</td>" +
"<td>"+ option.kurzbz +"</td>" +
"<td>"+ option.bezeichnung +"</td>" +
"<td>"+ option.ects +"</td>" +
"<td>"+ option.studiengang_kuerzel +"</td>" +
"<td>"+ option.oe_bezeichnung +"</td>" +
(side === "From" ? "<td><input type='checkbox' name='lvUebernehmenCheckbox' value='" + option.lehrveranstaltung_id + "'></td>" : "") +
"<td>" +
"<a href='#' onclick=\"deleteKompatibleLv('" + lv_id + "', '" + option.lehrveranstaltung_id + "', '" + side + "')\">" +
"<img height='20' src='../../skin/images/false.png' alt='Delete'></a>" +
"</td>" +
"</tr>";
});
$("#kompatibleLVs" + side + " tbody").html(html);
sortTable(side);
markDifferences();
},
error: function(jqXHR, textStatus, errorThrown)
{
}
});
}
function markDifferences() {
let fromVal = $("#lvDropdownFrom").val();
let toVal = $("#lvDropdownTo").val();
let lvidautoFrom = $('#autocompleteFrom').data("lv-id");
let lvidautoTo = $('#autocompleteTo').data("lv-id");
fromVal = fromVal || lvidautoFrom;
toVal = toVal || lvidautoTo;
if (!fromVal || fromVal === "null" || !toVal || toVal === "null")
{
$("#kompatibleLVsFrom tbody tr").removeClass("missing-in-to");
return;
}
$("#kompatibleLVsFrom tbody tr").removeClass("missing-in-to");
$("#kompatibleLVsFrom tbody tr").each(function ()
{
const id = $(this).data("lv-id");
const existsInTo = $("#kompatibleLVsTo tbody tr[data-lv-id='" + id + "']").length > 0;
if (!existsInTo)
{
$(this).addClass("missing-in-to")
}
});
}
function loadLehrveranstaltungen(side)
{
let studiengang_kz = $("#stgDropdown" + side).val();
let semester = $("#semDropdown" + side).val();
let oe_kurzbz = $("#oeDropdown" + side).val();
if(oe_kurzbz === "null")
{
$.ajax(
{
dataType: "json",
url: "../../soap/fhcomplete.php",
type: "POST",
data: {
"typ": "json",
"class": "lehrveranstaltung",
"method": "load_lva",
"parameter_0": studiengang_kz,
"parameter_1": semester,
"parameter_2": "null",
"parameter_3": "null",
"parameter_4": "true"
}
}).success(function(data)
{
let html = "";
let result = Array.isArray(data?.result) ? data.result : [];
if (result.length > 0)
{
result.forEach(function(option)
{
if (option.lehrveranstaltung_id !== null)
html+="<option value='"+ option.lehrveranstaltung_id +"'>"+ option.bezeichnung + " (" + option.lehrveranstaltung_id + "/" + option.oe_kurzbz + ") </option>";
});
$("#lvDropdown" + side).html(html);
}
loadKompatibleLvs(side);
});
}
else
{
$.ajax(
{
dataType: "json",
url: "../../soap/fhcomplete.php",
type: "POST",
data: {
"typ": "json",
"class": "lehrveranstaltung",
"method": "load_lva_oe",
"parameter_0": oe_kurzbz,
"parameter_1": true,
"parameter_2": "null",
"parameter_3": "bezeichnung"
}
}).success(function(data)
{
let html = "";
let result = Array.isArray(data?.result) ? data.result : [];
if (result.length > 0)
{
result.forEach(function(option)
{
if (option.lehrveranstaltung_id !== null)
html+="<option value='"+ option.lehrveranstaltung_id +"'>"+ option.bezeichnung +"</option>";
});
$("#lvDropdown" + side).html(html);
}
loadKompatibleLvs(side);
});
}
}
function loadOrganisationseinheiten(side)
{
$.ajax(
{
dataType: "json",
url: "../../soap/fhcomplete.php",
type: "POST",
data: {
"typ": "json",
"class": "lehrveranstaltung",
"method": "load_lva",
"parameter_0": studiengang_kz,
"parameter_1": semester,
"parameter_2": "null",
"parameter_3": "null",
"parameter_4": "true"
}
}).success(function(data)
{
var html = "";
data.result.forEach(function(option)
{
html+="<option value='"+ option.lehrveranstaltung_id +"'>"+ option.bezeichnung +"</option>";
});
$("#lvDropdown" +side).html(html);
});
}
function saveKompatibleLv(lehrveranstaltung_id, kompatible_id, onComplete)
{
$.ajax(
{
dataType: "json",
url: "../../soap/lehrveranstaltung.json.php",
type: "POST",
data: {
"typ": "json",
"class": "lehrveranstaltung",
"method": "saveKompatibleLehrveranstaltung",
"lehrveranstaltung_id":lehrveranstaltung_id,
"lehrveranstaltung_id_kompatibel": kompatible_id
}
}).success(function(data)
{
if(data.error === "true")
{
alert(data.errormsg);
}
if (onComplete)
onComplete();
}).error(function(data)
{
alert(data.responseText);
if (onComplete)
onComplete();
});
}
function deleteKompatibleLv(lehrveranstaltung_id, lehrveranstaltung_id_kompatibel, side)
{
$.ajax(
{
dataType: "json",
url: "../../soap/lehrveranstaltung.json.php",
type: "POST",
data: {
"typ": "json",
"class": "lehrveranstaltung",
"method": "deleteKompatibleLehrveranstaltung",
"lehrveranstaltung_id":lehrveranstaltung_id,
"lehrveranstaltung_id_kompatibel":lehrveranstaltung_id_kompatibel
}
}).success(function(data)
{
if(data.error === "true")
{
alert(data.errormsg);
}
let fromValDropdown = $("#lvDropdownFrom").val();
let toValDropdwon = $("#lvDropdownTo").val();
let lvidautoFrom = $('#autocompleteFrom').data("lv-id");
let lvidautoTo = $('#autocompleteTo').data("lv-id");
let fromVal = fromValDropdown || lvidautoFrom;
let toVal = toValDropdwon || lvidautoTo;
if (fromVal === toVal)
{
if (fromValDropdown)
$('#lvDropdownFrom').trigger('change');
else if (lvidautoFrom)
callLoadKompatibleLvs(fromVal, 'From');
if (toValDropdwon)
$('#lvDropdownTo').trigger('change');
else if (lvidautoFrom)
callLoadKompatibleLvs(toVal, 'To');
}
else
{
let dropdownVal = $("#lvDropdown" + side).val();
let autoVal = $('#autocomplete' + side).data("lv-id");
if (dropdownVal)
{
$('#lvDropdown' + side).trigger('change');
}
else if (autoVal)
{
callLoadKompatibleLvs(autoVal, side);
}
}
}).error(function(data)
{
alert(data.responseText);
});
}
</script>
</head>
<body>
<?php
$user = get_uid();
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($user);
if(!$rechte->isBerechtigt('lehre/lehrveranstaltung', 'suid'))
die('Sie haben keine Berechtigung fuer diese Seite');
$studiengang = new studiengang();
$studiengang->getAll("kurzbzlang");
$organisationseinheit = new organisationseinheit();
$organisationseinheit->getAll(true, true);
echo "<div class='container'>
<div class='box'>
<div style='padding-top: 1em;'>
<table>
<tr>
<td><b>Suche: </b></td>
<td colspan='3'>
<input type='text' class='autocomplete' id='autocompleteFrom' placeholder='Suche...'/>
</td>
</tr>
<tr>
<td><b>Studiengang: </b></td>
<td>
<select id='stgDropdownFrom' style='margin-right: 1em;'>";
foreach($studiengang->result as $stg)
{
echo "<option value=".$stg->studiengang_kz.">".$stg->kuerzel." - ".$stg->kurzbzlang."</option>";
}
echo "</select>
</td>
<td><b>OE:</b></td>";
echo "<td>
<select id='oeDropdownFrom' style='margin-right: 1em;'>
<option value='null'>-- Keine --</option>";
foreach($organisationseinheit->result as $oe)
{
echo "<option value=".$oe->oe_kurzbz.">".$oe->organisationseinheittyp_kurzbz." ".$oe->bezeichnung."</option>";
}
echo "</select></td>
</tr>
<tr>
<td><b>Semester: </b></td>
<td>
<select id='semDropdownFrom' style='margin-right: 1em;'>
</select>
</td>
</tr>
<tr>
<td><b>Lehrveranstaltungen: </b></td>
<td colspan='3'>
<select class='lvDropdown' id='lvDropdownFrom'></select>
</td>
</tr>
</table>
</div>
Kompatible Lehrveranstaltungen - <span id='lvBezeichnungFrom'></span>
<br />
<br />
<input type='button' id='alleLVsMarkieren' value='Alle fehlenden auswählen'/>
<input type='button' id='alleLVsAbwaehlen' value='Alle abwählen'/>
<table style='width: auto;' class='tablesorter' id='kompatibleLVsFrom'>
<thead>
<tr>
<th>ID</th>
<th>Kurzbezeichnung</th>
<th>Bezeichnung</th>
<th>ECTS</th>
<th>Studiengang</th>
<th>Organisationseiheit</th>
<th>Übernehmen?</th>
<th>Löschen?</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
<input type='button' id='kompatibleLVsUbernehmen' value='Übernehmen'/>
</div>
<div class='box'>
<div style='padding-top: 1em;'>
<table>
<tr>
<td><b>Suche: </b></td>
<td colspan='3'>
<input type='text' class='autocomplete' id='autocompleteTo' placeholder='Suche...'/>
</td>
</tr>
<tr>
<td><b>Studiengang: </b></td>
<td>
<select id='stgDropdownTo' style='margin-right: 1em;'>";
foreach($studiengang->result as $stg)
{
echo "<option value=".$stg->studiengang_kz.">".$stg->kuerzel." - ".$stg->kurzbzlang."</option>";
}
echo "</select>
</td>
<td><b>OE:</b></td>";
echo "<td>
<select id='oeDropdownTo' style='margin-right: 1em;'>
<option value='null'>-- Keine --</option>";
foreach($organisationseinheit->result as $oe)
{
echo "<option value=".$oe->oe_kurzbz.">".$oe->organisationseinheittyp_kurzbz." ".$oe->bezeichnung."</option>";
}
echo "</select></td>
</tr>
<tr>
<td><b>Semester: </b></td>
<td>
<select id='semDropdownTo' style='margin-right: 1em;'>
</select>
</td>
</tr>
<tr>
<td><b>Lehrveranstaltungen: </b></td>
<td colspan='3'>
<select class='lvDropdown' id='lvDropdownTo'></select>
</td>
</tr>
</table>
</div>
Kompatible Lehrveranstaltungen - <span id='lvBezeichnungTo'></span>
<table style='width: auto;' class='tablesorter' id='kompatibleLVsTo'>
<thead>
<tr>
<th>ID</th>
<th>Kurzbezeichnung</th>
<th>Bezeichnung</th>
<th>ECTS</th>
<th>Studiengang</th>
<th>Organisationseiheit</th>
<th>Löschen?</th>
</tr>
</thead>
<tbody></tbody>
</table>
</div>
";
echo "</body>
</html>";
?>
+3 -2
View File
@@ -695,15 +695,16 @@ function loadLVKompatibilitaet(lvid)
}).success(function(data)
{
var html='';
html = html+'<a href="lehrveranstaltung_kompatibel_vergleichen.php" target="_blank">kompatible Lehrveranstaltungen vergleichen</a><br><br>';
html = html+'<a href="lehrveranstaltung_kompatibel.php?lehrveranstaltung_id='+lvid+'&type=edit" target="_blank">kompatible Lehrveranstaltungen hinzufügen</a><br>';
for(i in data.result)
{
if(data.result[i])
{
lvdata = data.result[i];
if(!(lvdata.kurzbz===null && lvdata.bezeichnung===null && lvdata.studiengang_kz===null && lvdata.semester===null))
html = html+'<br>'+lvdata.kurzbz+' - '+lvdata.bezeichnung+' (Studiengang '+lvdata.studiengang_kz+', Semester '+lvdata.semester+')';
html = html+'<br>'+lvdata.kurzbz+' - '+lvdata.bezeichnung+' (Studiengang '+lvdata.studiengang_kz+', Semester '+lvdata.semester+')<br>';
}
html = html+'<br><br><a href="lehrveranstaltung_kompatibel.php?lehrveranstaltung_id='+lvid+'&type=edit" target="_blank">kompatible Lehrveranstaltungen hinzufügen</a>';
}
$("#tab-kompatibel").html(html);
+343
View File
@@ -0,0 +1,343 @@
<?php
/* Copyright (C) 2025 Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors:
*/
require_once("../../config/vilesci.config.inc.php");
require_once("../../include/functions.inc.php");
require_once("../../include/benutzerberechtigung.class.php");
require_once("../../include/datum.class.php");
require_once("../../include/studiengang.class.php");
require_once("../../include/studiensemester.class.php");
require_once("../../include/studienjahr.class.php");
require_once("../../include/student.class.php");
require_once("../../include/konto.class.php");
require_once("../../include/bankverbindung.class.php");
// Get the uid of the logged user
$user = get_uid();
// Check rights
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($user);
if (!$rechte->isBerechtigt("admin", null, "suid"))
{
die("Sie haben keine Berechtigung für diese Seite");
}
// Variables declaration
$logArray = array(); // Array for output messages
$errorOccurred = false; // Error flag
$dataPosted = false; // Post data flag
$fileName = null;
$fileTmpName = null;
$fileMimeType = null;
// Constants
$L_CSV_N_COLS = 4; // Number of columns of the CSV file
$L_ERROR = "Error";
$L_WARNING = "Warning";
$L_INFO = "Info";
$L_LN_NOT_AVAILABLE = "N/A";
/**
* Add an entry in $logArray
*/
function lAddToLogArray($code, $lineNumber, $msg)
{
global $logArray, $errorOccurred, $L_ERROR;
if ($code == $L_ERROR)
{
$errorOccurred = true;
}
$log = new stdClass();
$log->code = $code;
$log->lineNumber = $lineNumber;
$log->msg = $msg;
array_push($logArray, $log);
}
// If data has been posted
if (isset($_POST["submit"]))
{
$dataPosted = true;
// Checks if a file was uploaded
if (!$errorOccurred && (!isset($_FILES) || !is_array($_FILES) || count($_FILES) == 0))
{
lAddToLogArray($L_ERROR, $L_LN_NOT_AVAILABLE, "No files have been uploaded");
}
// If the file is not present or it was not correctly uploaded
if (!$errorOccurred && (!isset($_FILES["csvFile"]) || $_FILES["csvFile"]["error"] != 0))
{
lAddToLogArray($L_ERROR, $L_LN_NOT_AVAILABLE, "An error has occurred while uploading the CSV file");
}
else // else save file attributes
{
$fileName = $_FILES["csvFile"]["name"];
$fileTmpName = $_FILES["csvFile"]["tmp_name"];
$fileMimeType = mime_content_type($_FILES["csvFile"]["tmp_name"]);
}
// Checks the file mime type
if (!$errorOccurred && ($fileMimeType != "text/plain"))
{
lAddToLogArray($L_ERROR, $L_LN_NOT_AVAILABLE, "The mime type of the uploaded file is not of the type text/plain");
}
// Opens the file in read mode
if (!$errorOccurred && (($fileHandle = fopen($fileTmpName, "r")) === false))
{
lAddToLogArray($L_ERROR, $L_LN_NOT_AVAILABLE, "An error has occurred while opening the uploaded file on read mode");
}
}
else // else no data has been posted
{
$dataPosted = false;
}
// If everything is ok and data has been posted
if (!$errorOccurred && $dataPosted)
{
$fileRow = false; // Contains a single file row
$lineNumber = 0; // lines number counter
// Loops on file rows
do
{
$lineNumber++;
// Gets and parses a single row of the given file
$fileRow = fgetcsv($fileHandle, 9999, ";", "\"");
// If everything is ok
if ($fileRow != null && $fileRow !== false)
{
// Checks if the row has the right amount of columns
if (is_array($fileRow) && count($fileRow) == $L_CSV_N_COLS)
{
// Checks if character encoding is UTF-8
if (mb_detect_encoding(implode(";", $fileRow), "UTF-8", true))
{
$rowSurname = $fileRow[0];
$rowName = $fileRow[1];
$rowPersonID = $fileRow[2];
$rowIBAN = $fileRow[3];
// If this row is not the header
if (strtolower($rowSurname) != "nachname")
{
// Bankverbindung hinterlegen
$bank = new bankverbindung();
$found = false;
if($bank->load_pers($rowPersonID))
{
foreach($bank->result as $row_bank)
{
if(str_replace(' ', '', $row_bank->iban) == str_replace(' ', '', $rowIBAN))
{
lAddToLogArray(
$L_WARNING,
$lineNumber,
"Bank IBAN already found for PersonID ".$rowPersonID
);
$found = true;
// Update Datum aktualisieren damit Update in Fremdsystem getriggert wird
$row_bank->new=false;
$row_bank->updateamum = date('Y-m-d H:i:s');
$row_bank->updatevon = 'Bankimport';
if($row_bank->save())
{
lAddToLogArray(
$L_INFO,
$lineNumber,
"Bank Date Update for PersonID ".$rowPersonID
);
}
else
{
lAddToLogArray(
$L_WARNING,
$lineNumber,
"Bank Date Update Failed for PersonID ".$rowPersonID
);
}
break;
}
}
}
if(!$found)
{
$bank = new bankverbindung();
$bank->new = true;
$bank->iban = $rowIBAN;
$bank->person_id = $rowPersonID;
//$bank->bic = $rowBIC;
//$bank->name = $rowBank;
$bank->typ = 'p';
$bank->verrechnung = true;
$bank->insertamum = date('Y-m-d H:i:s');
$bank->insertvon = 'Bankimport';
$bank->updateamum = date('Y-m-d H:i:s');
$bank->updatevon = 'Bankimport';
if($bank->save())
{
lAddToLogArray(
$L_INFO,
$lineNumber,
"Bankdaten hinzugefügt"
);
}
else
{
lAddToLogArray(
$L_WARNING,
$lineNumber,
"Failed to Add Bankdata".$bank->errormsg
);
}
}
}
else
{
lAddToLogArray($L_WARNING, $lineNumber, "This file row has been discarted because it is the header");
}
}
else
{
lAddToLogArray($L_WARNING, $lineNumber, "This file row has been discarted because of invalid characters");
}
}
else
{
lAddToLogArray(
$L_WARNING,
$lineNumber,
"This file row has been discarted because it isn't well formatted and/or it hasn't " . $L_CSV_N_COLS . " columns"
);
}
}
else
{
// If it is not the end of the file, another error has occurred
if (!feof($fileHandle))
{
lAddToLogArray($L_ERROR, $lineNumber, "An error has occurred while parsing this row, procedure terminated");
}
}
}
while($fileRow);
// Close the file handler
fclose($fileHandle);
}
?>
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link href="../../skin/vilesci.css" rel="stylesheet" type="text/css">
</head>
<body>
<h1>Bank Data Import</h1>
Diese Seite dient dazu Bankdaten für Studierende per CSV Import ins System zu laden.<br /> <br />
<form name="saveBank" method="post" enctype="multipart/form-data" action="">
<table border=0>
<tr><td valign="top">CMS-Format</td>
<td></td>
<td valign="top">
Zeichensatz: UTF-8<br>
Feldtrenner: ;<br>
Texttrenner: "<br>
Felder:<br>
<pre>Nachname;Vorname;PersonID;IBAN</pre>
</td>
</tr>
<tr>
<th width="30%">
<th width="3%">
<th width="67%">
</tr>
<tr>
<td>
CSV file:
</td>
<td>&nbsp;</td>
<td>
<input type="file" name="csvFile" value="" />
</td>
</tr>
<tr>
<td colspan="3">&nbsp;</td>
</tr>
<tr>
<td colspan="3" align="center">
<input type="submit" name="submit" value="Import CSV" />
</td>
</tr>
</table>
</form>
<br/>
<br/>
<table border=0>
<tr>
<th width="25%" align="left">Status</th>
<th width="25%" align="left">Record</th>
<th width="50%" align="left">Message</th>
</tr>
<?php
// Printing all the information
$tableRow = "
<tr style=\"color: %s;\">
<td align=\"left\">
%s
</td>
<td align=\"left\">
%s
</td>
<td align=\"left\">
%s
</td>
</tr>";
foreach($logArray as $log)
{
$color = "green"; // great expectations
if ($log->code == $L_ERROR)
{
$color = "red";
}
else if ($log->code == $L_WARNING)
{
$color = "orange";
}
echo sprintf($tableRow, $color, $log->code, $log->lineNumber, $log->msg);
}
?>
</table>
</body>
</html>
@@ -1167,8 +1167,7 @@ if ($where != '')
}
}
$status = mb_substr($status, 0, mb_strlen($status)-2);
echo '<tr valign="top"><td><input type="radio" name="person_id" value="'.$row->person_id.'" onclick="disablefields(this)"></td><td>'."$row->nachname</td><td>$row->vorname</td><td>$row->wahlname</td><td>$row->vornamen</td><td>$row->gebdatum</td><td>$row->svnr</td><td>".($row->geschlecht=='m'?'männlich':'weiblich')."</td><td>";
echo '<tr valign="top"><td><input type="radio" name="person_id" value="'.$row->person_id.'" onclick="disablefields(this)"></td><td>'."$row->nachname</td><td>$row->vorname</td><td>$row->wahlname</td><td>$row->vornamen</td><td>$row->gebdatum</td><td>".((strpos($status, 'Mitarbeiter') !== false) ? $row->svnr : '')."</td><td>".($row->geschlecht=='m'?'männlich':'weiblich')."</td><td>";
$qry_adr = "SELECT * FROM public.tbl_adresse WHERE person_id=".$db->db_add_param($row->person_id, FHC_INTEGER);
if ($result_adr = $db->db_query($qry_adr))
while ($row_adr = $db->db_fetch_object($result_adr))
+3 -3
View File
@@ -71,7 +71,7 @@ $fileTmpName = null;
$fileMimeType = null;
// Constants
$L_CSV_N_COLS = 10; // Number of columns of the CSV file
$L_CSV_N_COLS = 9; // Number of columns of the CSV file
$L_ERROR = "Error";
$L_WARNING = "Warning";
$L_INFO = "Info";
@@ -477,8 +477,8 @@ if (!$errorOccurred && $dataPosted)
Feldtrenner: ;<br>
Texttrenner: "<br>
Felder:<br>
<pre>Nachname;Vorname;UID/PersKZ;Studiengang;Betrag;Überweisungsdatum
Dylan;Bob;1234567;MEE;750;03.10.2016</pre>
<pre>Nachname;Vorname;Gebdatum;UID/PersKZ;Studiengang;Betrag;IBAN;BIC;Bankname
Dylan;Bob;12.12.2000;1234567;MEE;750;ATXXXX;BBAWAATWW;BAWAG PSK</pre>
</td>
</tr>
<tr>
+26 -7
View File
@@ -125,6 +125,7 @@ $verband = (isset($_POST['verband'])?$_POST['verband']:'');
$gruppe = (isset($_POST['gruppe'])?$_POST['gruppe']:'');
$dms_id_lichtbild = '';
$is_mitarbeiter = false;
if($uid!='')
{
$qry = "SELECT person_id, true as mitarbeiter FROM campus.vw_mitarbeiter WHERE uid=".$db->db_add_param($uid)."
@@ -144,7 +145,17 @@ if($uid!='')
else
die('Fehler beim Ermitteln der UID');
}
else if ($person_id !='')
{
$qry = "SELECT person_id, true as mitarbeiter FROM campus.vw_mitarbeiter WHERE person_id=".$db->db_add_param($person_id);
if($result = $db->db_query($qry))
{
if($row = $db->db_fetch_object($result))
{
$is_mitarbeiter = ($row->mitarbeiter=='t'?true:false);
}
}
}
if(isset($_POST['saveperson']))
{
if(!$rechte->isBerechtigt('student/stammdaten', null, 'su') && !$rechte->isBerechtigt('mitarbeiter/stammdaten', null, 'su'))
@@ -163,7 +174,8 @@ if(isset($_POST['saveperson']))
$person->gebdatum = $geburtsdatum;
$person->gebort = $geburtsort;
$person->geburtsnation = $geburtsnation;
$person->svnr = $svnr;
if ($is_mitarbeiter)
$person->svnr = $svnr;
$person->ersatzkennzeichen = $ersatzkennzeichen;
$person->gebzeit = $geburtszeit;
$person->staatsbuergerschaft = $staatsbuergerschaft;
@@ -332,7 +344,8 @@ if(!$error_person_save)
$geburtsdatum = $person->gebdatum;
$geburtsort = $person->gebort;
$geburtsnation = $person->geburtsnation;
$svnr = $person->svnr;
if ($is_mitarbeiter)
$svnr = $person->svnr;
$ersatzkennzeichen = $person->ersatzkennzeichen;
$geburtszeit = $person->gebzeit;
$staatsbuergerschaft = $person->staatsbuergerschaft;
@@ -398,10 +411,16 @@ foreach ($nation->nation as $row_nation)
echo "</SELECT>
</td>
</tr>
<tr>
<td>SVNR</td>
<td><input type='text' name='svnr' value='".$svnr."'/></td>
<td>Ersatzkennzeichen</td>
<tr>";
if ($is_mitarbeiter)
{
echo "<td>SVNR</td>
<td><input type='text' name='svnr' value='".$svnr."'/></td>";
}
echo
"<td>Ersatzkennzeichen</td>
<td><input type='text' name='ersatzkennzeichen' value='".$ersatzkennzeichen."'/></td>
<td>Geburtszeit</td>
<td><input type='text' name='geburtszeit' value='".$geburtszeit."'/></td>
+1 -1
View File
@@ -153,7 +153,7 @@ echo "<tr><td align='right'>Name:</td><td> $person->titelpre $person->nachname $
echo "<tr><td align='right'>Geburtsdatum:</td><td> ".$datum_obj->formatDatum($person->gebdatum,'d.m.Y')."</td></tr>";
echo "<tr><td align='right'>Geschlecht:</td><td> ".$person->geschlecht."</td></tr>";
echo "<tr valign='top'><td align='right'>Anmerkung:</td><td width='800px'> ".$db->convert_html_chars($person->anmerkungen)."</td></tr>";
echo "<tr valign='top'><td align='right'>Zugangscode:</td><td width='800px'>".(in_array('bewerbung', (explode(';', ACTIVE_ADDONS)))?"<a href='".CIS_ROOT."addons/bewerbung/cis/registration.php?code=".$db->convert_html_chars($person->zugangscode)."&emailAdresse=".$email."' target='_blank'>".$db->convert_html_chars($person->zugangscode)."</a>":$db->convert_html_chars($person->zugangscode))."</td></tr>";
echo "<tr valign='top'><td align='right'>Zugangscode:</td><td width='800px'>".(in_array('bewerbung', (explode(';', ACTIVE_ADDONS)))?"<a href='".CIS_ROOT."addons/bewerbung/cis/registration.php?code=".$db->convert_html_chars($person->zugangscode)."&emailAdresse=".$email."&keepEmailUnverified=true' target='_blank'>".$db->convert_html_chars($person->zugangscode)."</a>":$db->convert_html_chars($person->zugangscode))."</td></tr>";
echo '</table>';
echo '<br><a href="../fhausweis/search.php?person_id='.$person->person_id.'">Statusinformation - FH Ausweis</a><br>';
+27 -46
View File
@@ -140,7 +140,6 @@ function disablefields(obj)
document.getElementById('vorname').disabled=val;
document.getElementById('geschlecht').disabled=val;
document.getElementById('geburtsdatum').disabled=val;
document.getElementById('svnr').disabled=val;
document.getElementById('ersatzkennzeichen').disabled=val;
//document.getElementById('adresse').disabled=val;
//document.getElementById('plz').disabled=val;
@@ -159,21 +158,6 @@ function disablefields(obj)
}
}
function GeburtsdatumEintragen()
{
svnr = document.getElementById('svnr').value;
gebdat = document.getElementById('geburtsdatum');
if(svnr.length==10 && gebdat.value=='')
{
var tag = svnr.substr(4,2);
var monat = svnr.substr(6,2);
var jahr = svnr.substr(8,2);
gebdat.value='19'+jahr+'-'+monat+'-'+tag;
}
}
function disablefields2(val)
{
document.getElementById('adresse').disabled=val;
@@ -368,7 +352,6 @@ $email = (isset($_REQUEST['email'])?$_REQUEST['email']:'');
$telefon = (isset($_REQUEST['telefon'])?$_REQUEST['telefon']:'');
$mobil = (isset($_REQUEST['mobil'])?$_REQUEST['mobil']:'');
$person_id = (isset($_REQUEST['person_id'])?$_REQUEST['person_id']:'');
$svnr = (isset($_REQUEST['svnr'])?$_REQUEST['svnr']:'');
$ersatzkennzeichen = (isset($_REQUEST['ersatzkennzeichen'])?$_REQUEST['ersatzkennzeichen']:'');
$ueberschreiben = (isset($_REQUEST['ueberschreiben'])?$_REQUEST['ueberschreiben']:'');
@@ -413,7 +396,6 @@ if(isset($_POST['save']))
$person->geschlecht = $geschlecht;
$person->gebdatum = $datum_obj->formatDatum($geburtsdatum,'Y-m-d');
$person->staatsbuergerschaft = $nation;
$person->svnr = $svnr;
$person->ersatzkennzeichen = $ersatzkennzeichen;
$person->aktiv = true;
$person->insertamum = date('Y-m-d H:i:s');
@@ -689,39 +671,38 @@ if($result = $db->db_query($qry))
}
echo '</SELECT>';
echo '</td></tr>';
echo '<tr><td>SVNR</td><td><input type="text" id="svnr" size="10" maxlength="10" name="svnr" value="'.$svnr.'" onblur="GeburtsdatumEintragen()" /></td></tr>';
echo '<tr><td>Ersatzkennzeichen</td><td><input type="text" id="ersatzkennzeichen" size="10" maxlength="10" name="ersatzkennzeichen" value="'.$ersatzkennzeichen.'" /></td></tr>';
echo '<tr><td>Geburtsdatum</td><td><input type="text" id="geburtsdatum" size="10" maxlength="10" name="geburtsdatum" value="'.$geburtsdatum.'" /> (Format dd.mm.JJJJ)</td></tr>';
echo '<tr><td>Geburtsort</td><td><input type="text" id="gebort" size="30" maxlength="255" name="gebort" value="'.$gebort.'" /></td></tr>';
echo '<tr><td>Geburtsnation</td><td><SELECT name="geburtsnation">';
$qry = "SELECT nation_code, kurztext FROM bis.tbl_nation ORDER BY kurztext";
if($result = $db->db_query($qry))
{
while($row = $db->db_fetch_object($result))
{
if($row->nation_code==$geburtsnation)
$selected='selected';
else
$selected='';
echo "<option value='$row->nation_code' $selected>$row->kurztext</option>";
}
}
echo '</SELECT>';
echo '<tr><td>Geburtsnation</td><td><SELECT name="geburtsnation">';
$qry = "SELECT nation_code, kurztext FROM bis.tbl_nation ORDER BY kurztext";
if($result = $db->db_query($qry))
{
while($row = $db->db_fetch_object($result))
{
if($row->nation_code==$geburtsnation)
$selected='selected';
else
$selected='';
echo "<option value='$row->nation_code' $selected>$row->kurztext</option>";
}
}
echo '</SELECT>';
echo '</td></tr>';
echo '<tr><td>Sprache</td><td><SELECT name="sprache">';
echo '<tr><td>Sprache</td><td><SELECT name="sprache">';
$sprache_obj = new sprache();
$sprache_obj->getAll();
foreach($sprache_obj->result as $row)
{
if($row->sprache==$sprache)
$selected='selected';
else
$selected='';
echo "<option value='$row->sprache' $selected>".$row->bezeichnung_arr['German']."</option>";
}
echo '</SELECT>';
{
if($row->sprache==$sprache)
$selected='selected';
else
$selected='';
echo "<option value='$row->sprache' $selected>".$row->bezeichnung_arr['German']."</option>";
}
echo '</SELECT>';
echo '</td></tr>';
echo '<tr><td colspan="2"><fieldset><legend>Adresse</legend><table>';
echo '<tr><td>Nation</td><td><SELECT name="adresse_nation" id="adresse_nation" onchange="loadGemeindeData()">';
@@ -884,7 +865,7 @@ if($where!='')
$stg_obj = new studiengang();
$stg_obj->getAll('typ, kurzbz', false);
echo '<table><tr><th></th><th>Nachname</th><th>Vorname</th><th>GebDatum</th><th>SVNR</th><th>Geschlecht</th><th>Adresse</th><th>Status</th><th>Details</th></tr>';
echo '<table><tr><th></th><th>Nachname</th><th>Vorname</th><th>GebDatum</th><th>Geschlecht</th><th>Adresse</th><th>Status</th><th>Details</th></tr>';
while($row = $db->db_fetch_object($result))
{
$status = '';
@@ -905,7 +886,7 @@ if($where!='')
}
$status = mb_substr($status, 0, mb_strlen($status)-2);
echo '<tr valign="top"><td><input type="radio" name="person_id" value="'.$row->person_id.'" onclick="disablefields(this)"></td><td>'."$row->nachname</td><td>$row->vorname</td><td>$row->gebdatum</td><td>$row->svnr</td><td>".($row->geschlecht=='m'?'männlich':'weiblich')."</td><td>";
echo '<tr valign="top"><td><input type="radio" name="person_id" value="'.$row->person_id.'" onclick="disablefields(this)"></td><td>'."$row->nachname</td><td>$row->vorname</td><td>$row->gebdatum</td><td>".((strpos($status, 'Mitarbeiter') !== false) ? $row->svnr : '')."</td><td>".($row->geschlecht=='m'?'männlich':'weiblich')."</td><td>";
$qry_adr = "SELECT * FROM public.tbl_adresse WHERE person_id='$row->person_id'";
if($result_adr = $db->db_query($qry_adr))
while($row_adr=$db->db_fetch_object($result_adr))
@@ -338,7 +338,6 @@ if(isset($_POST['saveperson']))
$person->gebzeit = $_POST['gebzeit'];
$person->anmerkungen = $_POST['anmerkungen'];
$person->homepage = $_POST['homepage'];
$person->svnr = $_POST['svnr'];
$person->ersatzkennzeichen = $_POST['ersatzkennzeichen'];
$person->familienstand = $_POST['familienstand'];
$person->geschlecht = $_POST['geschlecht'];
@@ -606,8 +605,6 @@ if($result = $db->db_query($qry))
}
echo '</SELECT></td>';
echo '</tr><tr>';
//SVNR
echo "<td>SVNR:</td><td><input type='text' name='svnr' ".($disabled?'disabled':'')." value='".$person->svnr."'></td>";
//Ersatzkennzeichen
echo "<td>Ersatzkennzeichen</td><td><input type='text' name='ersatzkennzeichen' ".($disabled?'disabled':'')." value='".$person->ersatzkennzeichen."'></td>";
//Geschlecht
+50 -5
View File
@@ -715,10 +715,22 @@ function casDeleteMitarbeiter($db, $mitarbeiter_uid, $trans=true)
{
$qry = '
DELETE FROM lehre.tbl_projektbetreuer
WHERE projektarbeit_id IN (SELECT projektarbeit_id FROM lehre.tbl_projektarbeit
WHERE lehreinheit_id IN (SELECT lehreinheit_id FROM lehre.tbl_lehreinheit
WHERE lehrveranstaltung_id IN (SELECT lehrveranstaltung_id FROM lehre.tbl_lehrveranstaltung
WHERE koordinator='.$db->db_add_param($mitarbeiter_uid).')))';
WHERE projektarbeit_id IN (
SELECT projektarbeit_id
FROM lehre.tbl_projektarbeit
WHERE lehre.tbl_projektarbeit.lehrveranstaltung_id
IN (
SELECT lehrveranstaltung_id
FROM lehre.tbl_lehrveranstaltung
WHERE koordinator = '.$db->db_add_param($mitarbeiter_uid).'
)
AND lehre.tbl_projektarbeit.studiensemester_kurzbz
IN (
SELECT studiensemester_kurzbz
FROM lehre.tbl_lehrveranstaltung
WHERE koordinator = '.$db->db_add_param($mitarbeiter_uid).')
)
)';
if(!$db->db_query($qry))
$error = true;
}
@@ -974,7 +986,14 @@ function casDeletePrestudent($db, $prestudent_id, $trans=true)
{
$qry = '
DELETE FROM lehre.tbl_projektbetreuer
WHERE projektarbeit_id IN (SELECT projektarbeit_id FROM lehre.tbl_projektarbeit WHERE student_uid IN (SELECT student_uid FROM tbl_student WHERE prestudent_id='.$db->db_add_param($prestudent_id, FHC_INTEGER).'))';
WHERE projektarbeit_id IN (
SELECT projektarbeit_id
FROM lehre.tbl_projektarbeit
WHERE student_uid IN
(
SELECT student_uid
FROM tbl_student
WHERE prestudent_id='.$db->db_add_param($prestudent_id, FHC_INTEGER).'))';
if(!$db->db_query($qry))
$error = true;
}
@@ -1051,6 +1070,16 @@ function casDeletePrestudent($db, $prestudent_id, $trans=true)
}
}
/* Entries from testtool */
if(!$error)
{
$qry = 'DELETE FROM testtool.tbl_pruefling_frage WHERE pruefling_id=(SELECT pruefling_id FROM testtool.tbl_pruefling WHERE prestudent_id='.$db->db_add_param($prestudent_id, FHC_INTEGER).');
DELETE FROM testtool.tbl_antwort WHERE pruefling_id=(SELECT pruefling_id FROM testtool.tbl_pruefling WHERE prestudent_id='.$db->db_add_param($prestudent_id, FHC_INTEGER).');
DELETE FROM testtool.tbl_pruefling WHERE prestudent_id='.$db->db_add_param($prestudent_id, FHC_INTEGER).';';
if(!$db->db_query($qry))
$error = true;
}
/*
* Delete the tbl_student entry
*/
@@ -1606,6 +1635,22 @@ function casDeletePerson($db, $person_id, $trans=true)
}
}
/* Entries from rt_person */
if(!$error)
{
$qry = 'DELETE FROM public.tbl_rt_person WHERE person_id='.$db->db_add_param($person_id, FHC_INTEGER).';';
if(!$db->db_query($qry))
$error = true;
}
/* Entries from UHSTAT */
if(!$error)
{
$qry = 'DELETE FROM bis.tbl_uhstat1daten WHERE person_id='.$db->db_add_param($person_id, FHC_INTEGER).';';
if(!$db->db_query($qry))
$error = true;
}
+51 -15
View File
@@ -41,18 +41,19 @@ $datum_obj = new datum();
?><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Ampel - Details</title>
<link rel="stylesheet" href="../../skin/fhcomplete.css" type="text/css">
<link rel="stylesheet" href="../../skin/vilesci.css" type="text/css">
<link rel="stylesheet" href="../../vendor/fortawesome/font-awesome4/css/font-awesome.min.css">
<link rel="stylesheet" href="../../vendor/components/jqueryui/themes/base/jquery-ui.min.css">
<script type="text/javascript" src="../../vendor/components/jquery/jquery.min.js"></script>
<script type="text/javascript" src="../../vendor/components/jqueryui/jquery-ui.min.js"></script>
<script type="text/javascript" src="../../vendor/christianbach/tablesorter/jquery.tablesorter.min.js"></script>
<script type="text/javascript" src="../../vendor/twbs/bootstrap3/dist/js/bootstrap.min.js"></script>
<script type="text/javascript" src="../../include/js/jquery.ui.datepicker.translation.js"></script>
<script type="text/javascript">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Ampel - Details</title>
<link rel="stylesheet" href="../../skin/fhcomplete.css" type="text/css">
<link rel="stylesheet" href="../../skin/vilesci.css" type="text/css">
<link rel="stylesheet" href="../../vendor/fortawesome/font-awesome4/css/font-awesome.min.css">
<link rel="stylesheet" href="../../vendor/components/jqueryui/themes/base/jquery-ui.min.css">
<script type="text/javascript" src="../../vendor/components/jquery/jquery.min.js"></script>
<script type="text/javascript" src="../../vendor/components/jqueryui/jquery-ui.min.js"></script>
<script type="text/javascript" src="../../vendor/christianbach/tablesorter/jquery.tablesorter.min.js"></script>
<script type="text/javascript" src="../../vendor/twbs/bootstrap3/dist/js/bootstrap.min.js"></script>
<script type="text/javascript" src="../../include/js/jquery.ui.datepicker.translation.js"></script>
<script type="text/javascript" src="../../include/tiny_mce/tiny_mce.js"></script>
<script type="text/javascript">
$(document).ready(function()
{
$( ".datepicker_datum" ).datepicker({
@@ -61,6 +62,29 @@ $datum_obj = new datum();
dateFormat: 'dd.mm.yy',
});
});
tinyMCE.init({
mode: 'specific_textareas',
editor_selector: "mceEditor",
theme: "advanced",
language: "de",
file_browser_callback: "FHCFileBrowser",
plugins: "spellchecker,pagebreak,style,layer,table,advhr,advimage,advlink,inlinepopups,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking",
// Theme options
theme_advanced_buttons1: "code, bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,formatselect,fontsizeselect",
theme_advanced_buttons2 : "bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,image,cleanup,|,forecolor,backcolor",
theme_advanced_buttons3 : "tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,fullscreen",
//theme_advanced_buttons2 : "cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,image,cleanup,|,forecolor,backcolor",
//theme_advanced_buttons3 : "tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,charmap,|,print,|,ltr,rtl,|,fullscreen",
theme_advanced_toolbar_location: "top",
theme_advanced_toolbar_align: "center",
theme_advanced_statusbar_location: "bottom",
theme_advanced_resizing: true,
force_br_newlines: true,
force_p_newlines: false,
forced_root_block: '',
editor_deselector: "mceNoEditor",
relative_urls: false
});
</script>
<style>
/*remove input type="date" arrows*/
@@ -168,6 +192,15 @@ $datum_obj = new datum();
die('Invalid Action');
break;
}
if(isset($ampel_id) && $ampel->benutzer_select != '')
{
$anzahlUser = $ampel->getAnzahlUserAmpel($ampel_id);
}
else
{
$anzahlUser = 0;
}
echo '<form action="'.$_SERVER['PHP_SELF'].'?action=save" method="POST">
<input type="hidden" name="new" value="'.htmlspecialchars($new).'">
@@ -183,8 +216,11 @@ $datum_obj = new datum();
<td><input type="text" class="datepicker_datum" name="deadline" size="10" maxlength="10" value="'.htmlspecialchars($datum_obj->formatDatum($ampel->deadline,'Y-m-d')).'" required></td>
</tr>
<tr valign="top">
<td rowspan="3">Benutzer Select</td>
<td rowspan="3"><textarea name="benutzer_select" cols="60" rows="5" required>'.htmlspecialchars($ampel->benutzer_select).'</textarea></td>
<td rowspan="3">Benutzer*innen Select</td>
<td rowspan="3">
<textarea name="benutzer_select" cols="60" rows="5" required>'.htmlspecialchars($ampel->benutzer_select).'</textarea>
<br>Anzahl Benutzer*innen: '.$anzahlUser.'
</td>
<td></td>
<td valign="middle">Vorlaufzeit (in Tagen)&nbsp
<i class="fa fa-info-circle fa-lg" aria-hidden="true" data-toggle="tooltip" data-placement="left" title="Anzahl der Tage VOR der Deadline, an denen die Ampel gezeigt werden soll.&#013Wenn keine Angabe, dann wird die Ampel gleich nach ihrer Erstellung angezeigt."></i>
@@ -232,7 +268,7 @@ $datum_obj = new datum();
echo '
<tr valign="top">
<td>'.$lang->sprache.'</td>
<td><textarea name="beschreibung'.$lang->sprache.'" cols="60" rows="5">'.htmlspecialchars((isset($ampel->beschreibung[$lang->sprache])?$ampel->beschreibung[$lang->sprache]:'')).'</textarea></td>
<td><textarea class="mceEditor" name="beschreibung'.$lang->sprache.'" cols="60" rows="5">'.htmlspecialchars((isset($ampel->beschreibung[$lang->sprache])?$ampel->beschreibung[$lang->sprache]:'')).'</textarea></td>
<td></td>
<td colspan="2"><input size="70" maxlength="64" name="buttontext'.$lang->sprache.'" value="'.htmlspecialchars((isset($ampel->buttontext[$lang->sprache])?$ampel->buttontext[$lang->sprache]:'')).'"></td>
</tr>';
+25 -6
View File
@@ -581,8 +581,10 @@ if ($rtprueflingEntSperren)
while ($row = $db->db_fetch_object($result))
$pruefling_ids[] = $row->pruefling_id;
$art = filter_input(INPUT_POST, 'art', FILTER_VALIDATE_BOOLEAN);
$qry = "UPDATE testtool.tbl_pruefling
SET gesperrt =" . $db->db_add_param($_POST['art'], 'BOOLEAN') . "
SET gesperrt =" . $db->db_add_param($art, FHC_BOOLEAN) . "
WHERE pruefling_id IN (" . $db->db_implode4SQL($pruefling_ids) . ")";
$resultSperre = $db->db_query($qry);
@@ -590,7 +592,7 @@ if ($rtprueflingEntSperren)
if ($resultSperre)
{
$msg = $_POST['art'] === 'false' ? 'Pruefling wurde gesperrt' : 'Pruefling wurde freigeschaltet';
$msg = !$art ? 'Pruefling wurde gesperrt' : 'Pruefling wurde freigeschaltet';
echo json_encode(array(
'status' => 'ok',
'msg' => $msg));
@@ -698,12 +700,14 @@ if ($rtFreischalten)
if (isset($_POST['reihungstest_id']) && is_numeric($_POST['reihungstest_id'])
&& isset($_POST['art']))
{
$qry = "UPDATE public.tbl_reihungstest SET freigeschaltet=" . $db->db_add_param($_POST['art'], 'BOOLEAN') . "
$art = filter_input(INPUT_POST, 'art', FILTER_VALIDATE_BOOLEAN);
$qry = "UPDATE public.tbl_reihungstest SET freigeschaltet=" . $db->db_add_param($art, FHC_BOOLEAN) . "
WHERE reihungstest_id=" . $db->db_add_param($_POST['reihungstest_id']) . ";";
if ($result = $db->db_query($qry))
{
$msg = $_POST['art'] === 'false' ? 'Reihungstest wurde gesperrt' : 'Reihungstest wurde freigeschaltet';
$msg = !$art ? 'Reihungstest wurde gesperrt' : 'Reihungstest wurde freigeschaltet';
echo json_encode(array(
'status' => 'ok',
'msg' => $msg));
@@ -1046,6 +1050,7 @@ if ($punkteUebertragen)
{
$setRTPunkte->new = false;
$setRTPunkte->punkte = $rtpunkte;
$setRTPunkte->teilgenommen = true;
$setRTPunkte->updateamum = date('Y-m-d H:i:s');
$setRTPunkte->updatevon = $user;
@@ -1273,6 +1278,7 @@ $reihungstest = isset($_REQUEST['reihungstest']) ? $_REQUEST['reihungstest'] : '
$studiengang = isset($_REQUEST['studiengang']) ? $_REQUEST['studiengang'] : '';
$semester = isset($_REQUEST['semester']) ? $_REQUEST['semester'] : '';
$prestudent_id = isset($_REQUEST['prestudent_id']) ? $_REQUEST['prestudent_id'] : '';
$prestudent_ids = isset($_REQUEST['prestudent_ids']) ? $_REQUEST['prestudent_ids'] : '';
$orgform_kurzbz = isset($_REQUEST['orgform_kurzbz']) ? $_REQUEST['orgform_kurzbz'] : '';
$format = (isset($_REQUEST['format']) ? $_REQUEST['format'] : '');
$stgtyp = (isset($_REQUEST['stgtyp']) ? $_REQUEST['stgtyp'] : '');
@@ -1312,7 +1318,7 @@ if ($prestudent_id != '' && !is_numeric($prestudent_id))
{
die('PrestudentID ist ungueltig');
}
if (isset($_POST['rtauswsubmit']) && $reihungstest == '' && $studiengang == '' && $semester == '' && $prestudent_id == '' && $datum_von == '' && $datum_bis == '')
if (isset($_POST['rtauswsubmit']) && $reihungstest == '' && $studiengang == '' && $semester == '' && $prestudent_id == '' && $datum_von == '' && $datum_bis == '' && $prestudent_ids == '')
{
die('Waehlen Sie bitte mindestens eine der Optionen aus');
}
@@ -1431,6 +1437,10 @@ if (isset($_REQUEST['reihungstest']) || isset($_POST['rtauswsubmit']))
{
$query .= " AND ps.prestudent_id=" . $db->db_add_param($prestudent_id, FHC_INTEGER);
}
if ($prestudent_ids != '')
{
$query .= " AND ps.prestudent_id IN (" .$db->db_implode4SQL(explode(',', $prestudent_ids)) . ")";
}
if ($orgform_kurzbz != '' && $studiengang != '')
{
$query .= " AND (tbl_ablauf.studienplan_id=(
@@ -1664,6 +1674,10 @@ if (isset($_REQUEST['reihungstest']) || isset($_POST['rtauswsubmit']))
{
$query .= " AND ps.prestudent_id=" . $db->db_add_param($prestudent_id, FHC_INTEGER);
}
if ($prestudent_ids != '')
{
$query .= " AND ps.prestudent_id IN (" .$db->db_implode4SQL(explode(',',$prestudent_ids)) . ")";
}
if ($orgform_kurzbz != '')
{
//$query .= " AND tbl_prestudentstatus.orgform_kurzbz=" . $db->db_add_param($orgform_kurzbz);
@@ -2944,7 +2958,7 @@ else
$selectedrtstr = '';
$checkbxstr = '';
$first = true;
$noparamsselected = $prestudent_id == '' && $reihungstest == '' && $datum_von == '' && $datum_bis == '' && $studiengang == '' && $semester == '';
$noparamsselected = $prestudent_id == '' && $reihungstest == '' && $datum_von == '' && $datum_bis == '' && $studiengang == '' && $semester == '' && $prestudent_ids == '';
//$maxeachline = 1;
foreach ($rtest as $rt)
{
@@ -3060,6 +3074,9 @@ else
echo '</td></tr>';
echo '<tr><td>';
echo 'PrestudentIn: <INPUT id="prestudent" type="text" name="prestudent_id" size="50" value="' . $prestudent_id . '" placeholder="Name, UID oder Prestudent_id eingeben"/><input type="hidden" id="prestudent_id" name="prestudent_id" value="' . $prestudent_id . '" />';
echo '</td></tr>';
echo '<tr><td>';
echo 'PrestudentIn (Mehrfachauswahl): <input name="prestudent_ids" disabled type="text" size="50" value="' . $prestudent_ids . '"/><input type="hidden" id="prestudent_ids" name="prestudent_ids" value="' . $prestudent_ids . '" />';
echo '</td></tr>
</table></td><td id="auswertencell">';
echo '<INPUT type="submit" class="btn btn-primary" value="Anzeigen" name="rtauswsubmit" id="auswertenButton"/><br><br>';
@@ -3068,6 +3085,7 @@ else
&datum_von=' . $datum_von . '
&datum_bis=' . $datum_bis . '
&prestudent_id=' . $prestudent_id . '
&' . http_build_query(array('prestudent_ids' => $prestudent_ids)) . '
&' . http_build_query(array('reihungstest' => $reihungstest)) . '
&orgform_kurzbz=' . $orgform_kurzbz . '
&stgtyp=' . $stgtyp . '
@@ -3121,6 +3139,7 @@ else
datum_von=' . $datum_von . '&
datum_bis=' . $datum_bis . '&
prestudent_id=' . $prestudent_id . '&
&' . http_build_query(array('prestudent_ids' => $prestudent_ids)) . '
&' . http_build_query(array('reihungstest' => $reihungstest)) . '">
<div class="row">';
echo '<div class="col-xs-12" id="miscfunctionscol">';
@@ -62,29 +62,29 @@ $(document).ready(function()
$("#t1").tablesorter(
{
sortList: [[4,0],[0,0],[1,0],[2,0]],
widgets: ["zebra", "filter", "stickyHeaders"]
//headers: {4:{sorter:false}}
sortList: [[4,0],[0,0],[1,0],[2,0]],
widgets: ["zebra", "filter", "stickyHeaders"]
//headers: {4:{sorter:false}}
});
$("#t2").tablesorter(
{
sortList: [[0,0],[1,0],[2,0],[3,0]],
sortList: [[0,0],[1,0],[2,0],[3,0]],
widgets: ["zebra", "filter", "stickyHeaders"],
headers: {8:{sorter:false}},
emptyTo: "emptyMax",
widgetOptions : { filter_functions:
{
// Add select menu to this column
7 : {
emptyTo: "emptyMax",
widgetOptions : { filter_functions:
{
// Add select menu to this column
7 : {
"Ja" : function(e, n, f, i, $r, c, data) { return e === "Ja" || /^\s*$/.test(e); },
"Nein" : function(e, n, f, i, $r, c, data) { return e === "Nein" || /^\s*$/.test(e); }
},
8 : {
"Aktiv" : function(e, n, f, i, $r, c, data) { return $r.find("div").hasClass( "buttonGreen" ); },
"Inaktiv" : function(e, n, f, i, $r, c, data) { return $r.find("div").hasClass( "buttonRed" ) || $r.find("div").hasClass( "buttonYellow" ); }
}
}
}
"Nein" : function(e, n, f, i, $r, c, data) { return e === "Nein" || /^\s*$/.test(e); }
},
8 : {
"Aktiv" : function(e, n, f, i, $r, c, data) { return $r.find("div").hasClass( "buttonGreen" ); },
"Inaktiv" : function(e, n, f, i, $r, c, data) { return $r.find("div").hasClass( "buttonRed" ) || $r.find("div").hasClass( "buttonYellow" ); }
}
}
}
});
$("#t3").tablesorter(
{
@@ -92,55 +92,55 @@ $(document).ready(function()
widgets: ["zebra", "filter", "stickyHeaders"],
headers: {8:{sorter:false}},
emptyTo: "emptyMax",
widgetOptions : { filter_functions:
{
// Add select menu to this column
6 : {
widgetOptions : { filter_functions:
{
// Add select menu to this column
6 : {
"Ja" : function(e, n, f, i, $r, c, data) { return e === "Ja" || /^\s*$/.test(e); },
"Nein" : function(e, n, f, i, $r, c, data) { return e === "Nein" || /^\s*$/.test(e); }
},
7 : {
"Aktiv" : function(e, n, f, i, $r, c, data) { return $r.find("div").hasClass( "buttonGreen" ); },
"Inaktiv" : function(e, n, f, i, $r, c, data) { return $r.find("div").hasClass( "buttonRed" ) || $r.find("div").hasClass( "buttonYellow" ); }
}
}
}
"Nein" : function(e, n, f, i, $r, c, data) { return e === "Nein" || /^\s*$/.test(e); }
},
7 : {
"Aktiv" : function(e, n, f, i, $r, c, data) { return $r.find("div").hasClass( "buttonGreen" ); },
"Inaktiv" : function(e, n, f, i, $r, c, data) { return $r.find("div").hasClass( "buttonRed" ) || $r.find("div").hasClass( "buttonYellow" ); }
}
}
}
});
$("#t4").tablesorter(
{
sortList: [[0,0],[1,0],[2,0]],
sortList: [[0,0],[1,0],[2,0]],
widgets: ["zebra", "filter", "stickyHeaders"],
headers: {9:{sorter:false}},
emptyTo: "emptyMax",
widgetOptions : { filter_functions:
{
// Add select menu to this column
7 : {
"Ja" : function(e, n, f, i, $r, c, data) { return /Ja/.test(e); },
"Nein" : function(e, n, f, i, $r, c, data) { return /Nein/.test(e); }
},
8 : {
"Aktiv" : function(e, n, f, i, $r, c, data) { return $r.find("div").hasClass( "buttonGreen" ); },
"Inaktiv" : function(e, n, f, i, $r, c, data) { return $r.find("div").hasClass( "buttonRed" ) || $r.find("div").hasClass( "buttonYellow" ); }
}
}
}
emptyTo: "emptyMax",
widgetOptions : { filter_functions:
{
// Add select menu to this column
7 : {
"Ja" : function(e, n, f, i, $r, c, data) { return /Ja/.test(e); },
"Nein" : function(e, n, f, i, $r, c, data) { return /Nein/.test(e); }
},
8 : {
"Aktiv" : function(e, n, f, i, $r, c, data) { return $r.find("div").hasClass( "buttonGreen" ); },
"Inaktiv" : function(e, n, f, i, $r, c, data) { return $r.find("div").hasClass( "buttonRed" ) || $r.find("div").hasClass( "buttonYellow" ); }
}
}
}
});
$("#t5").tablesorter(
{
sortList: [[0,0],[1,0],[3,1]],
sortList: [[0,0],[1,0],[3,1]],
widgets: ["zebra", "filter", "stickyHeaders"],
headers: {4:{sorter:false}},
emptyTo: "emptyMax",
widgetOptions : { filter_functions:
{
// Add select menu to this column
4 : {
"Ja" : function(e, n, f, i, $r, c, data) { return /Ja/.test(e); },
"Nein" : function(e, n, f, i, $r, c, data) { return /Nein/.test(e); }
emptyTo: "emptyMax",
widgetOptions : { filter_functions:
{
// Add select menu to this column
4 : {
"Ja" : function(e, n, f, i, $r, c, data) { return /Ja/.test(e); },
"Nein" : function(e, n, f, i, $r, c, data) { return /Nein/.test(e); }
}
}
}
}
}
});
// Breite des Autocompletes korrigieren um das Springen zu verhindern
$.extend($.ui.autocomplete.prototype.options, {
@@ -190,58 +190,58 @@ $(document).ready(function()
});
</script>
<style>
.buttonGreen
{
width: 10px;
height: 10px;
background: #d1fab9;
background-image: -webkit-linear-gradient(top, #d1fab9, #00de00);
background-image: -moz-linear-gradient(top, #d1fab9, #00de00);
background-image: -ms-linear-gradient(top, #d1fab9, #00de00);
background-image: -o-linear-gradient(top, #d1fab9, #00de00);
background-image: linear-gradient(to bottom, #d1fab9, #00de00);
-webkit-border-radius: 10;
-moz-border-radius: 10;
border-radius: 10px;
border: solid #999 1px;
text-decoration: none;
}
.buttonYellow
{
width: 10px;
height: 10px;
background: #faf7b9;
background-image: -webkit-linear-gradient(top, #faf7b9, #cfde00);
background-image: -moz-linear-gradient(top, #faf7b9, #cfde00);
background-image: -ms-linear-gradient(top, #faf7b9, #cfde00);
background-image: -o-linear-gradient(top, #faf7b9, #cfde00);
background-image: linear-gradient(to bottom, #faf7b9, #cfde00);
-webkit-border-radius: 10;
-moz-border-radius: 10;
border-radius: 10px;
border: solid #999 1px;
text-decoration: none;
}
.buttonRed
{
width: 10px;
height: 10px;
background: #f79c9c;
background-image: -webkit-linear-gradient(top, #f79c9c, #cc0202);
background-image: -moz-linear-gradient(top, #f79c9c, #cc0202);
background-image: -ms-linear-gradient(top, #f79c9c, #cc0202);
background-image: -o-linear-gradient(top, #f79c9c, #cc0202);
background-image: linear-gradient(to bottom, #f79c9c, #cc0202);
-webkit-border-radius: 10;
-moz-border-radius: 10;
border-radius: 10px;
border: solid #999 1px;
text-decoration: none;
}
</style>
<style>
.buttonGreen
{
width: 10px;
height: 10px;
background: #d1fab9;
background-image: -webkit-linear-gradient(top, #d1fab9, #00de00);
background-image: -moz-linear-gradient(top, #d1fab9, #00de00);
background-image: -ms-linear-gradient(top, #d1fab9, #00de00);
background-image: -o-linear-gradient(top, #d1fab9, #00de00);
background-image: linear-gradient(to bottom, #d1fab9, #00de00);
-webkit-border-radius: 10;
-moz-border-radius: 10;
border-radius: 10px;
border: solid #999 1px;
text-decoration: none;
}
.buttonYellow
{
width: 10px;
height: 10px;
background: #faf7b9;
background-image: -webkit-linear-gradient(top, #faf7b9, #cfde00);
background-image: -moz-linear-gradient(top, #faf7b9, #cfde00);
background-image: -ms-linear-gradient(top, #faf7b9, #cfde00);
background-image: -o-linear-gradient(top, #faf7b9, #cfde00);
background-image: linear-gradient(to bottom, #faf7b9, #cfde00);
-webkit-border-radius: 10;
-moz-border-radius: 10;
border-radius: 10px;
border: solid #999 1px;
text-decoration: none;
}
.buttonRed
{
width: 10px;
height: 10px;
background: #f79c9c;
background-image: -webkit-linear-gradient(top, #f79c9c, #cc0202);
background-image: -moz-linear-gradient(top, #f79c9c, #cc0202);
background-image: -ms-linear-gradient(top, #f79c9c, #cc0202);
background-image: -o-linear-gradient(top, #f79c9c, #cc0202);
background-image: linear-gradient(to bottom, #f79c9c, #cc0202);
-webkit-border-radius: 10;
-moz-border-radius: 10;
border-radius: 10px;
border: solid #999 1px;
text-decoration: none;
}
</style>
</head>
@@ -312,7 +312,7 @@ $htmlstr='
$selected = 'selected="selected"';
else
$selected = '';
$htmlstr .= '<option value="'.$berechtigung->berechtigung_kurzbz.'" title="'.$berechtigung->beschreibung.'" '.$selected.'>'.$berechtigung->berechtigung_kurzbz.'</option>';
$htmlstr .= '<option value="'.$berechtigung->berechtigung_kurzbz.'" title="'.htmlentities($berechtigung->beschreibung).'" '.$selected.'>'.$berechtigung->berechtigung_kurzbz.'</option>';
}
$htmlstr .= '</select>
<input type="checkbox" name="userOnly" ' . ($userOnly == true ? 'checked' : '') . '> Nur User
@@ -422,13 +422,13 @@ if(isset($_GET['searchstr']))
if($berechtigung_kurzbz != '')
{
$berechtigungen = new benutzerberechtigung();
// Wenn $userOnly false ist, werden die Rollen und Funktionen ausgegeben, die das Recht beinhalten,
// ansonsten werden die Rollen und Funktionen auf User aufgelöst und nur User ausgegeben
if ($userOnly == false)
{
// Wenn $userOnly false ist, werden die Rollen und Funktionen ausgegeben, die das Recht beinhalten,
// ansonsten werden die Rollen und Funktionen auf User aufgelöst und nur User ausgegeben
if ($userOnly == false)
{
$berechtigungen->getBenutzerFromBerechtigung($berechtigung_kurzbz);
if(isset($berechtigungen->result) && count($berechtigungen->result) != 0)
{
$htmlstr .= "<h3>".$berechtigung_kurzbz."</h3>\n";
@@ -444,16 +444,16 @@ if($berechtigung_kurzbz != '')
<th data-value='Aktiv'>Status</th>
<th>Aktion</th>";
$htmlstr .= "</tr></thead><tbody>\n";
foreach($berechtigungen->result as $row)
{
$benutzer = new benutzer();
$benutzer->load($row->uid);
$organisationseinheit = new organisationseinheit($row->oe_kurzbz);
$heute = strtotime(date('Y-m-d'));
if ($row->ende!='' && strtotime($row->ende) < $heute)
{
$status = '<div class="buttonRed"></div>';
@@ -466,7 +466,7 @@ if($berechtigung_kurzbz != '')
{
$status = '<div class="buttonGreen"></div>';
}
$htmlstr .= ' <tr>';
$htmlstr .= ' <td>'.($row->rolle_kurzbz != ''?$row->rolle_kurzbz:'').'</td>';
$htmlstr .= ' <td>'.($row->funktion_kurzbz != ''?$row->funktion_kurzbz:'').'</td>';
@@ -483,7 +483,7 @@ if($berechtigung_kurzbz != '')
$htmlstr .= ' <td><a href="benutzerberechtigung_details.php?funktion_kurzbz='.$row->funktion_kurzbz.'" target="vilesci_detail">Funktionsrechte bearbeiten</a></td>';
elseif ($row->rolle_kurzbz != '')
$htmlstr .= ' <td><a href="berechtigungrolle.php?rolle_kurzbz='.$row->rolle_kurzbz.'" target="vilesci_detail">Rollenrechte bearbeiten</a></td>';
$htmlstr .= ' </tr>';
}
$htmlstr .= '</tbody></table>';
@@ -493,63 +493,63 @@ if($berechtigung_kurzbz != '')
$htmlstr .= "Für diese Berechtigung sind keine Einträge vorhanden";
}
}
else
{
$berechtigungen_array = array();
$berechtigungen->getBenutzerFromBerechtigung($berechtigung_kurzbz);
else
{
$berechtigungen_array = array();
$berechtigungen->getBenutzerFromBerechtigung($berechtigung_kurzbz);
if (isset($berechtigungen->result) && count($berechtigungen->result) != 0)
{
foreach ($berechtigungen->result as $row)
{
if ($row->uid != '')
{
$berechtigungen_array[] = array('uid' => $row->uid,
'art' => $row->art,
'start' => $row->start,
'ende' => $row->ende,
'oe_kurzbz' => $row->oe_kurzbz,
'rolle_kurzbz' => '',
'funktion_kurzbz' => '');
}
if ($row->rolle_kurzbz != '')
{
$user_rolleberechtigung = new benutzerberechtigung();
$user_rolleberechtigung->getBenutzerFromRolle($row->rolle_kurzbz);
foreach ($user_rolleberechtigung->result as $row_rolle)
{
$berechtigungen_array[] = array('uid' => $row_rolle->uid,
'art' => $row_rolle->art,
'start' => $row_rolle->start,
'ende' => $row_rolle->ende,
'oe_kurzbz' => $row_rolle->oe_kurzbz,
'rolle_kurzbz' => $row_rolle->rolle_kurzbz,
'funktion_kurzbz' => $row->funktion_kurzbz);
}
}
if ($row->funktion_kurzbz != '')
{
$user_funktion = new benutzerfunktion();
$user_funktion->getBenutzerFunktionen($row->funktion_kurzbz);
foreach ($user_funktion->result as $row_funktion)
{
$berechtigungen_array[] = array('uid' => $row_funktion->uid,
'art' => $row->art,
'start' => $row->start,
'ende' => $row->ende,
'oe_kurzbz' => $row_funktion->oe_kurzbz,
'rolle_kurzbz' => '',
'funktion_kurzbz' => $row->funktion_kurzbz);
}
}
}
// var_dump($berechtigungen_array);exit;
// Benutzer der Rolle auflösen
foreach ($berechtigungen->result as $row)
{
$user_rolleberechtigung = new benutzerberechtigung();
$user_rolleberechtigung->getBenutzerFromRolle($row->rolle_kurzbz);
}
if (isset($berechtigungen->result) && count($berechtigungen->result) != 0)
{
foreach ($berechtigungen->result as $row)
{
if ($row->uid != '')
{
$berechtigungen_array[] = array('uid' => $row->uid,
'art' => $row->art,
'start' => $row->start,
'ende' => $row->ende,
'oe_kurzbz' => $row->oe_kurzbz,
'rolle_kurzbz' => '',
'funktion_kurzbz' => '');
}
if ($row->rolle_kurzbz != '')
{
$user_rolleberechtigung = new benutzerberechtigung();
$user_rolleberechtigung->getBenutzerFromRolle($row->rolle_kurzbz);
foreach ($user_rolleberechtigung->result as $row_rolle)
{
$berechtigungen_array[] = array('uid' => $row_rolle->uid,
'art' => $row_rolle->art,
'start' => $row_rolle->start,
'ende' => $row_rolle->ende,
'oe_kurzbz' => $row_rolle->oe_kurzbz,
'rolle_kurzbz' => $row_rolle->rolle_kurzbz,
'funktion_kurzbz' => $row->funktion_kurzbz);
}
}
if ($row->funktion_kurzbz != '')
{
$user_funktion = new benutzerfunktion();
$user_funktion->getBenutzerFunktionen($row->funktion_kurzbz);
foreach ($user_funktion->result as $row_funktion)
{
$berechtigungen_array[] = array('uid' => $row_funktion->uid,
'art' => $row->art,
'start' => $row->start,
'ende' => $row->ende,
'oe_kurzbz' => $row_funktion->oe_kurzbz,
'rolle_kurzbz' => '',
'funktion_kurzbz' => $row->funktion_kurzbz);
}
}
}
// var_dump($berechtigungen_array);exit;
// Benutzer der Rolle auflösen
foreach ($berechtigungen->result as $row)
{
$user_rolleberechtigung = new benutzerberechtigung();
$user_rolleberechtigung->getBenutzerFromRolle($row->rolle_kurzbz);
}
// Anzahl uniquer UIDs ermitteln
$berechtigungen_array_uids = array_map(function ($each)
@@ -560,60 +560,60 @@ if($berechtigung_kurzbz != '')
$htmlstr .= "<h3>".$berechtigung_kurzbz."</h3>\n";
$htmlstr .= "<div style='font-size: 9pt'>".count($berechtigungen_array)." Einträge</div>";
$htmlstr .= "<div style='font-size: 9pt'>".count(array_unique($berechtigungen_array_uids))." UIDs</div>";
$htmlstr .= "<table id='t4' class='tablesorter'><thead><tr>\n";
$htmlstr .= " <th>Nachname</th>
<th>Vorname</th>
<th>UID</th>
<th>Art</th>
<th>OE_Kurzbz</th>
<th>Rolle</th>
<th>Funktion</th>
<th>Benutzer Aktiv</th>
<th>Status</th>
<th>Aktion</th>";
$htmlstr .= "</tr></thead><tbody>\n";
foreach ($berechtigungen_array as $key => $row)
{
$benutzer = new benutzer();
$benutzer->load($row['uid']);
$organisationseinheit = new organisationseinheit($row['oe_kurzbz']);
$heute = strtotime(date('Y-m-d'));
if ($row['ende'] != '' && strtotime($row['ende']) < $heute)
{
$status = '<div class="buttonRed"></div>';
}
elseif ($row['start'] != '' && strtotime($row['start']) > $heute)
{
$status = '<div class="buttonYellow"></div>';
}
else
{
$status = '<div class="buttonGreen"></div>';
}
$htmlstr .= ' <tr>';
$htmlstr .= ' <td>' . ($benutzer->nachname != '' ? $benutzer->nachname : '') . '</td>';
$htmlstr .= ' <td>' . ($benutzer->vorname != '' ? $benutzer->vorname : '') . '</td>';
$htmlstr .= ' <td>' . ($row['uid'] != '' ? $row['uid'] : '') . '</td>';
$htmlstr .= ' <td>' . $row['art'] . '</td>';
$htmlstr .= ' <td>' . $organisationseinheit->organisationseinheittyp_kurzbz . ' ' .$organisationseinheit->bezeichnung . '</td>';
$htmlstr .= ' <td>' . $row['rolle_kurzbz'] . '</td>';
$htmlstr .= ' <td>' . $row['funktion_kurzbz'] . '</td>';
$htmlstr .= ' <td>' . (isset($row['uid']) ? $benutzer->bnaktiv ? 'Ja' : 'Nein' : '') . '</td>';
$htmlstr .= ' <td align="center">' . $status . '</td>';
$htmlstr .= ' <td><a href="benutzerberechtigung_details.php?uid=' . $row['uid'] . '" target="vilesci_detail">Benutzerrechte bearbeiten</a></td>';
$htmlstr .= ' </tr>';
}
$htmlstr .= '</tbody></table>';
}
else
{
$htmlstr .= "Für diese Berechtigung sind keine Einträge vorhanden";
}
$htmlstr .= "<table id='t4' class='tablesorter'><thead><tr>\n";
$htmlstr .= " <th>Nachname</th>
<th>Vorname</th>
<th>UID</th>
<th>Art</th>
<th>OE_Kurzbz</th>
<th>Rolle</th>
<th>Funktion</th>
<th>Benutzer Aktiv</th>
<th>Status</th>
<th>Aktion</th>";
$htmlstr .= "</tr></thead><tbody>\n";
foreach ($berechtigungen_array as $key => $row)
{
$benutzer = new benutzer();
$benutzer->load($row['uid']);
$organisationseinheit = new organisationseinheit($row['oe_kurzbz']);
$heute = strtotime(date('Y-m-d'));
if ($row['ende'] != '' && strtotime($row['ende']) < $heute)
{
$status = '<div class="buttonRed"></div>';
}
elseif ($row['start'] != '' && strtotime($row['start']) > $heute)
{
$status = '<div class="buttonYellow"></div>';
}
else
{
$status = '<div class="buttonGreen"></div>';
}
$htmlstr .= ' <tr>';
$htmlstr .= ' <td>' . ($benutzer->nachname != '' ? $benutzer->nachname : '') . '</td>';
$htmlstr .= ' <td>' . ($benutzer->vorname != '' ? $benutzer->vorname : '') . '</td>';
$htmlstr .= ' <td>' . ($row['uid'] != '' ? $row['uid'] : '') . '</td>';
$htmlstr .= ' <td>' . $row['art'] . '</td>';
$htmlstr .= ' <td>' . $organisationseinheit->organisationseinheittyp_kurzbz . ' ' .$organisationseinheit->bezeichnung . '</td>';
$htmlstr .= ' <td>' . $row['rolle_kurzbz'] . '</td>';
$htmlstr .= ' <td>' . $row['funktion_kurzbz'] . '</td>';
$htmlstr .= ' <td>' . (isset($row['uid']) ? $benutzer->bnaktiv ? 'Ja' : 'Nein' : '') . '</td>';
$htmlstr .= ' <td align="center">' . $status . '</td>';
$htmlstr .= ' <td><a href="benutzerberechtigung_details.php?uid=' . $row['uid'] . '" target="vilesci_detail">Benutzerrechte bearbeiten</a></td>';
$htmlstr .= ' </tr>';
}
$htmlstr .= '</tbody></table>';
}
else
{
$htmlstr .= "Für diese Berechtigung sind keine Einträge vorhanden";
}
}
}
+12 -3
View File
@@ -227,7 +227,8 @@ if (isset($_GET['sendform']))
<table class="tablesorter" id="t1">
<thead>
<tr>
<th><span class="tooltip"><img src="../../skin/images/information.png" height="20px" name="infoicon"/>
<th><button type="button" class="resetsaved" title="Reset Filter">Reset Filter</button>
<span class="tooltip"><img src="../../skin/images/information.png" height="20px" name="infoicon"/>
'.$tooltiptext.'
</span>
</th>
@@ -364,9 +365,10 @@ if (isset($_GET['sendform']))
$("#t1").tablesorter(
{
sortList: [[3,0]],
widgets: ["zebra", "filter", "stickyHeaders"],
widgets: ["saveSort", "zebra", "filter", "stickyHeaders"],
headers: { 0: { filter: false, sorter: false }},
widgetOptions : { filter_functions : {
widgetOptions : { filter_saveFilters : true,
filter_functions : {
// Add select menu to this column
8 : {
"True" : function(e, n, f, i, $r, c, data) { return /t/.test(e); },
@@ -381,6 +383,13 @@ if (isset($_GET['sendform']))
"False" : function(e, n, f, i, $r, c, data) { return /f/.test(e); }
}
}}
});
$('.resetsaved').click(function()
{
$("#t1").trigger("filterReset");
location.reload(forceGet);
return false;
});
});
@@ -592,7 +592,9 @@ if(isset($_POST['testergebnisanzeigen']) && isset($_POST['prestudent_id']))
{
if(is_numeric($_POST['prestudent_id']) && $_POST['prestudent_id']!='')
{
$qry="SELECT nachname,vorname,person_id,prestudent_id,tbl_pruefling.pruefling_id,tbl_pruefling_frage.begintime,bezeichnung,kurzbz,tbl_frage.nummer,level, tbl_vorschlag.nummer as antwortnummer, tbl_vorschlag.punkte
$qry="SELECT nachname,vorname,person_id,prestudent_id,tbl_pruefling.pruefling_id,
tbl_pruefling_frage.begintime,bezeichnung,kurzbz,tbl_frage.nummer,level,
tbl_vorschlag.nummer as antwortnummer, tbl_vorschlag.punkte, tbl_frage.frage_id
FROM testtool.tbl_antwort
JOIN testtool.tbl_vorschlag USING(vorschlag_id)
JOIN testtool.tbl_frage USING (frage_id)
@@ -619,6 +621,7 @@ if(isset($_POST['testergebnisanzeigen']) && isset($_POST['prestudent_id']))
<th>Level</th>
<th>Antwort #</th>
<th>Punkte</th>
<th>FrageID</th>
</tr>
</thead>
<tbody>';
@@ -636,6 +639,7 @@ if(isset($_POST['testergebnisanzeigen']) && isset($_POST['prestudent_id']))
echo "<td>$row->level</td>";
echo "<td>$row->antwortnummer</td>";
echo "<td>$row->punkte</td>";
echo "<td>$row->frage_id</td>";
echo '</tr>';
}
echo '</tbody></table>';
+39 -2
View File
@@ -837,6 +837,25 @@ if(isset($_GET['excel']))
<script src="../../vendor/fgelinas/timepicker/jquery.ui.timepicker.js" type="text/javascript" ></script>
<script type="text/javascript">
$.tablesorter.addParser({
id: "customDate",
is: function(s) {
//return false;
//use the above line if you don\'t want table sorter to auto detected this parser
// match dd.mm.yyyy e.g. 01.01.2001 as regex
//return /\d{1,4}-\d{1,2}-\d{1,2} \d{1,2}:\d{1,2} .*/.test(s);
return /\d{1,2}.\d{1,2}.\d{1,4}.*/.test(s);
},
// replace regex-wildcards and return new date
format: function(s) {
s = s.replace(/\-/g," ");
s = s.replace(/:/g," ");
s = s.replace(/\./g," ");
s = s.split(" ");
return $.tablesorter.formatFloat(new Date(s[2], s[1]-1, s[0]).getTime());
},
type: "numeric"
});
$(document).ready(function()
{
// Check, ob Räume zugeteilt sind oder max_teilnehmer gesetzt ist, wenn "öffentlich" gesetzt wird
@@ -1007,7 +1026,7 @@ if(isset($_GET['excel']))
{
widgets: ["zebra", "filter", "stickyHeaders"],
sortList: [[2,0],[3,0]],
headers: {0: { sorter: false}},
headers: {0: { sorter: false},10: { sorter: "customDate"},11: { sorter: "customDate"}},
widgetOptions: {filter_cssFilter: [
"filter_clm_null",
"filter_clm_prestudent_id",
@@ -1020,6 +1039,7 @@ if(isset($_GET['excel']))
"filter_clm_studienplan",
"filter_clm_einstiegssemester",
"filter_clm_geburtsdatum",
"filter_clm_anmeldedatum",
"filter_clm_email",
"filter_clm_absolviert"]}
});
@@ -1072,6 +1092,7 @@ if(isset($_GET['excel']))
'clm_studienplan',
'clm_einstiegssemester',
'clm_geburtsdatum',
"filter_clm_anmeldedatum",
'clm_email',
'clm_absolviert'];
for (var i in arr)
@@ -1458,6 +1479,7 @@ if(isset($_POST['speichern']) || isset($_POST['kopieren']))
$reihungstest->anmeldefrist = $datum_obj->formatDatum($_POST['anmeldefrist']);
$reihungstest->zugangs_ueberpruefung = false;
$reihungstest->zugangscode = null;
$reihungstest->externe_ueberwachung = false;
}
else
{
@@ -1474,6 +1496,7 @@ if(isset($_POST['speichern']) || isset($_POST['kopieren']))
$reihungstest->updatevon = $user;
$reihungstest->zugangs_ueberpruefung = isset($_POST['zugangs_ueberpruefung']);
$reihungstest->zugangscode = ($_POST['zugangcode'] === '' ? null : $_POST['zugangcode']);
$reihungstest->externe_ueberwachung = isset($_POST['externe_ueberwachung']);
}
$reihungstest->studiengang_kz = $_POST['studiengang_kz'];
//$reihungstest->ort_kurzbz = $_POST['ort_kurzbz'];
@@ -2571,6 +2594,14 @@ $studienplaene_list = implode(',', array_keys($studienplaene_arr));
<input type="number" class="input" id="zugangcode" name="zugangcode" value="<?php echo $db->convert_html_chars($reihungstest->zugangscode) ?>"> (Verpflichtend, wenn die Zugangsüberprüfung aktiviert ist)
</td>
</tr>
<?php if(defined('TESTTOOL_EXTERNE_UEBERWACHUNG_ALLOWED') && TESTTOOL_EXTERNE_UEBERWACHUNG_ALLOWED) : ?>
<tr>
<td class="feldtitel">Externe Überwachnung</td>
<td>
<input type="checkbox" id="externe_ueberwachung" name="externe_ueberwachung"<?php echo $reihungstest->externe_ueberwachung ? 'checked="checked"' : '' ?>>
</td>
</tr>
<?php endif; ?>
<tr>
<td>&nbsp;</td>
</tr>
@@ -2687,7 +2718,8 @@ if($reihungstest_id!='')
WHERE prestudent_id = tbl_prestudent.prestudent_id
AND status_kurzbz = 'Interessent'
) LIMIT 1
) AS orgform_kurzbz
) AS orgform_kurzbz,
tbl_rt_person.anmeldedatum
FROM PUBLIC.tbl_rt_person
JOIN PUBLIC.tbl_person USING (person_id)
JOIN PUBLIC.tbl_reihungstest rt ON (rt_id = rt.reihungstest_id)
@@ -2776,6 +2808,7 @@ if($reihungstest_id!='')
echo '<div id="clm_studienplan" class="active" onclick="hideColumn(\'clm_studienplan\')">Studienplan</div>';
echo '<div id="clm_einstiegssemester" class="active" onclick="hideColumn(\'clm_einstiegssemester\')">Einstiegssemester</div>';
echo '<div id="clm_geburtsdatum" class="active" onclick="hideColumn(\'clm_geburtsdatum\')">Geburtsdatum</div>';
echo '<div id="clm_anmeldedatum" class="active" onclick="hideColumn(\'clm_anmeldedatum\')">Geburtsdatum</div>';
echo '<div id="clm_email" class="active" onclick="hideColumn(\'clm_email\')">EMail</div>';
echo '<div id="clm_absolviert" class="active" onclick="hideColumn(\'clm_absolviert\')">Absolvierte Tests <span class="wait"></span></div>';
//echo '<div id="clm_ergebnis" class="active" onclick="hideColumn(\'clm_ergebnis\')">Ergebnis <span class="wait"></span></div>';
@@ -2817,6 +2850,7 @@ if($reihungstest_id!='')
<th style="display: table-cell" class="clm_studienplan">Studienplan</th>
<th style="display: table-cell" class="clm_einstiegssemester">Einstiegssemester</th>
<th style="display: table-cell" class="clm_geburtsdatum">Geburtsdatum</th>
<th style="display: table-cell" class="clm_anmeldedatum">Anmeldedatum</th>
<th style="display: table-cell" class="clm_email">EMail</th>
<th style="display: table-cell" class="clm_absolviert">bereits absolvierte Verfahren</th>
<!--<th style="display: table-cell" class="clm_ergebnis">Ergebnis</th>
@@ -2936,6 +2970,7 @@ if($reihungstest_id!='')
<td style="display: table-cell" class="clm_studienplan">'.$db->convert_html_chars($studienplan_bezeichnung).' ('.$row->studienplan_id.')</td>
<td style="display: table-cell" class="clm_einstiegssemester">'.$db->convert_html_chars($row->ausbildungssemester).'</td>
<td style="display: table-cell" class="clm_geburtsdatum">'.$db->convert_html_chars($row->gebdatum!=''?$datum_obj->convertISODate($row->gebdatum):' ').'</td>
<td style="display: table-cell" class="clm_anmeldedatum">'.$db->convert_html_chars($row->anmeldedatum!=''?$datum_obj->convertISODate($row->anmeldedatum):' ').'</td>
<td style="display: table-cell; text-align: center" class="clm_email"><a href="mailto:'.$db->convert_html_chars($row->email).'"><img src="../../skin/images/button_mail.gif" name="mail"></a></td>
<td style="display: table-cell;" class="clm_absolviert">'.$rt_in_anderen_stg.'</td>
</tr>';
@@ -2999,6 +3034,7 @@ if($reihungstest_id!='')
<th style="display: table-cell" class="clm_studienplan">Studienplan</th>
<th style="display: table-cell" class="clm_einstiegssemester">Einstiegssemester</th>
<th style="display: table-cell" class="clm_geburtsdatum">Geburtsdatum</th>
<th style="display: table-cell" class="clm_anmeldedatum">Anmeldedatum</th>
<th style="display: table-cell" class="clm_email">EMail</th>
<th style="display: table-cell" class="clm_absolviert">bereits absolvierte Verfahren</th>
<!--<th style="display: table-cell" class="clm_ergebnis">Ergebnis</th>
@@ -3118,6 +3154,7 @@ if($reihungstest_id!='')
<td style="display: table-cell" class="clm_studienplan">'.$db->convert_html_chars($studienplan_bezeichnung).' ('.$row->studienplan_id.')</td>
<td style="display: table-cell" class="clm_einstiegssemester">'.$db->convert_html_chars($row->ausbildungssemester).'</td>
<td style="display: table-cell" class="clm_geburtsdatum">'.$db->convert_html_chars($row->gebdatum!=''?$datum_obj->convertISODate($row->gebdatum):' ').'</td>
<td style="display: table-cell" class="clm_anmeldedatum">'.$db->convert_html_chars($row->anmeldedatum!=''?$datum_obj->convertISODate($row->anmeldedatum):' ').'</td>
<td style="display: table-cell; text-align: center" class="clm_email"><a href="mailto:'.$db->convert_html_chars($row->email).'"><img src="../../skin/images/button_mail.gif" name="mail"></a></td>
<td style="display: table-cell;" class="clm_absolviert">'.$rt_in_anderen_stg.'</td>';
/*echo '<td style="display: table-cell; align: right" class="clm_ergebnis">'.($rtergebnis==0?'-':number_format($rtergebnis,2,'.','')).' %</td>
@@ -61,7 +61,6 @@ header( 'Content-Disposition: attachment;filename='.$filename);
$qry="
SELECT * FROM (
SELECT DISTINCT ON (matrikelnr) matrikelnr AS personenkennzeichen,
tbl_person.svnr,
tbl_person.ersatzkennzeichen,
tbl_person.gebdatum,
tbl_person.nachname,
@@ -60,7 +60,6 @@ header( 'Content-Disposition: attachment;filename='.$filename);
$qry="
SELECT * FROM (
SELECT DISTINCT ON (matrikelnr) matrikelnr AS personenkennzeichen,
tbl_person.svnr,
tbl_person.ersatzkennzeichen,
tbl_person.gebdatum,
tbl_person.nachname,