mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-10-12 06:54:04 +00:00
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:
@@ -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">
|
||||
|
||||
@@ -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ä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ä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ü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üfungen";
|
||||
if ($count > 1)
|
||||
{
|
||||
$error_log.=(!empty($error_log)?', ':'').$count." bestandene Abschlussprü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>";
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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ält Geburtsdatum (".$datum_obj->formatDatum($row->gebdatum,'d.m.Y').") nicht";
|
||||
}
|
||||
$error_log_hinweis.=(!empty($error_log_hinweis)?', ':'')."SVNR ('".$row->svnr."') enthä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ä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ü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.=" Gemeinsame Studien - Partner Code ist leer\n";
|
||||
if($rowgs->programm_code=='')
|
||||
$gserror.=" 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 .= " 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.=" <span style='color: grey'>".$error_log_hinweis." (Nicht BIS-Relevant)</span>\n";
|
||||
$v.=" <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.=" <span style='color: grey'>".$error_log_hinweis." (Nicht BIS-Relevant)</span>\n\n";
|
||||
$v.=" <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>";
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>";
|
||||
|
||||
?>
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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> </td>
|
||||
<td>
|
||||
<input type="file" name="csvFile" value="" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="3"> </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))
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>';
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -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) 
|
||||
<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.
Wenn 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>';
|
||||
|
||||
@@ -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";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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>';
|
||||
|
||||
@@ -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> </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,
|
||||
|
||||
Reference in New Issue
Block a user