mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-23 01:42:17 +00:00
Merge branch 'master' into feature-39602/Fas_Statusbearbeitung_bei_Sperre
This commit is contained in:
@@ -178,7 +178,7 @@ class File_CSV
|
||||
return $field;
|
||||
}
|
||||
|
||||
if ($quote && $field{0} == $quote && $field{strlen($field)-1} == $quote) {
|
||||
if ($quote && $field[0] == $quote && $field[strlen($field) - 1] == $quote) {
|
||||
return substr($field, 1, -1);
|
||||
}
|
||||
return $field;
|
||||
@@ -230,7 +230,7 @@ class File_CSV
|
||||
} elseif ($c == "\n" || $c == "\r") {
|
||||
$sub = ($prev == "\r") ? 2 : 1;
|
||||
if ((strlen($buff) >= $sub) &&
|
||||
($buff{strlen($buff) - $sub} == $quote))
|
||||
($buff[strlen($buff) - $sub] == $quote))
|
||||
{
|
||||
$in_quote = false;
|
||||
}
|
||||
@@ -312,9 +312,9 @@ class File_CSV
|
||||
$last =& $fields[count($fields) - 1];
|
||||
// Fallback to read the line with readQuoted when guess
|
||||
// that the simple explode won't work right
|
||||
if (($last{strlen($last) - 1} == "\n"
|
||||
&& $last{0} == $conf['quote']
|
||||
&& $last{strlen(rtrim($last)) - 1} != $conf['quote'])
|
||||
if (($last[strlen($last) - 1] == "\n"
|
||||
&& $last[0] == $conf['quote']
|
||||
&& $last[strlen(rtrim($last)) - 1] != $conf['quote'])
|
||||
||
|
||||
(count($fields) != $conf['fields'])
|
||||
// XXX perhaps there is a separator inside a quoted field
|
||||
@@ -511,4 +511,4 @@ class File_CSV
|
||||
return true;
|
||||
}
|
||||
}
|
||||
?>
|
||||
?>
|
||||
|
||||
@@ -96,7 +96,7 @@ class File_Util
|
||||
{
|
||||
if (File_Util::isAbsolute($path)) {
|
||||
if (FILE_WIN32) {
|
||||
return substr($path, $path{3} == '\\' ? 4 : 3);
|
||||
return substr($path, $path[3] == '\\' ? 4 : 3);
|
||||
}
|
||||
return ltrim($path, '/');
|
||||
}
|
||||
@@ -182,7 +182,7 @@ class File_Util
|
||||
if (FILE_WIN32) {
|
||||
return preg_match('/^[a-zA-Z]:(\\\|\/)/', $path);
|
||||
}
|
||||
return ($path{0} == '/') || ($path{0} == '~');
|
||||
return ($path[0] == '/') || ($path[0] == '~');
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -244,11 +244,11 @@ class File_Util
|
||||
} else {
|
||||
$cwd = getcwd();
|
||||
$drive = substr($cwd, 0, 2);
|
||||
if ($path{0} !== $separator{0}) {
|
||||
if ($path[0] !== $separator[0]) {
|
||||
$path = substr($cwd, 3) . $separator . $path;
|
||||
}
|
||||
}
|
||||
} elseif ($path{0} !== $separator) {
|
||||
} elseif ($path[0] !== $separator) {
|
||||
$path = getcwd() . $separator . $path;
|
||||
}
|
||||
|
||||
@@ -323,7 +323,7 @@ class File_Util
|
||||
|
||||
$entries = array();
|
||||
for ($dir = dir($path); false !== $entry = $dir->read(); ) {
|
||||
if ($list & FILE_LIST_DOTS || $entry{0} !== '.') {
|
||||
if ($list & FILE_LIST_DOTS || $entry[0] !== '.') {
|
||||
$isRef = ($entry === '.' || $entry === '..');
|
||||
$isDir = $isRef || is_dir($path .'/'. $entry);
|
||||
if ( ((!$isDir && $list & FILE_LIST_FILES) ||
|
||||
|
||||
@@ -575,5 +575,47 @@ class ampel extends basis_db
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Zählt die Anzahl der UIDs, welche mit einer Ampel adressiert werden
|
||||
* @param $ampel_id integer ID der Ampel, die geladen werden soll
|
||||
*/
|
||||
public function getAnzahlUserAmpel($ampel_id)
|
||||
{
|
||||
// Ampel laden
|
||||
$qry_ampel = "SELECT benutzer_select FROM public.tbl_ampel WHERE ampel_id=".$this->db_add_param($ampel_id, FHC_INTEGER);
|
||||
|
||||
if($result_ampel = $this->db_query($qry_ampel))
|
||||
{
|
||||
// Anzahl User laden
|
||||
if ($row_ampel = $this->db_fetch_object($result_ampel))
|
||||
{
|
||||
$qry_user = "SELECT count(*) AS anzahl FROM (SELECT uid FROM public.tbl_benutzer WHERE uid IN (".$row_ampel->benutzer_select."))subquery";
|
||||
}
|
||||
|
||||
if ($result = $this->db_query($qry_user))
|
||||
{
|
||||
if ($row = $this->db_fetch_object($result))
|
||||
{
|
||||
return $row->anzahl;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Anzahl UIDs konnte nicht geladen werden';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Anzahl UIDs konnte nicht geladen werden';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden der Ampel';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
+170
-72
@@ -479,91 +479,182 @@ class anwesenheit extends basis_db
|
||||
*/
|
||||
public function loadAnwesenheitStudiensemester($studiensemester_kurzbz, $student_uid=null, $lehrveranstaltung_id=null)
|
||||
{
|
||||
$qry = "SELECT
|
||||
lehrveranstaltung_id, vorname, nachname, wahlname, student_uid as uid, bezeichnung,
|
||||
gesamt as gesamtstunden, anwesend, nichtanwesend, trunc(100-(nichtanwesend/gesamt)*100,2) as prozent
|
||||
FROM
|
||||
(
|
||||
SELECT
|
||||
vorname, nachname, wahlname, lehrveranstaltung_id, bezeichnung, gruppe, student_uid,
|
||||
count(stundenplan_id) as gesamt,
|
||||
case when anwesend.summe is null then 0 else anwesend.summe end as anwesend,
|
||||
case when nichtanwesend.summe is null then 0 else nichtanwesend.summe end as nichtanwesend
|
||||
$qry = "SELECT
|
||||
lehrveranstaltung_id,
|
||||
vorname,
|
||||
nachname,
|
||||
wahlname,
|
||||
student_uid AS uid,
|
||||
bezeichnung,
|
||||
gesamt AS gesamtstunden,
|
||||
anwesend,
|
||||
nichtanwesend,
|
||||
CASE WHEN gesamt = 0 THEN 100.00 ELSE trunc(100-(nichtanwesend/(gesamt))*100,2) END AS prozent
|
||||
|
||||
FROM(
|
||||
SELECT
|
||||
vorname,
|
||||
nachname,
|
||||
wahlname,
|
||||
lehrveranstaltung_id,
|
||||
bezeichnung,
|
||||
student_uid,
|
||||
--COUNT(stundenplan_id) AS gesamts,
|
||||
COALESCE(anwesend.summe, 0) + COALESCE(nichtanwesend.summe, 0) AS gesamt,
|
||||
COALESCE(anwesend.summe, 0) AS anwesend,
|
||||
COALESCE(nichtanwesend.summe, 0) AS nichtanwesend
|
||||
|
||||
FROM
|
||||
(
|
||||
SELECT
|
||||
sum(stundenplan_id) as stundenplan_id, datum, stunde, lehrveranstaltung_id,
|
||||
bezeichnung, studiensemester_kurzbz, studiengang_kz,
|
||||
TRIM(
|
||||
CASE WHEN stp.gruppe_kurzbz is not null then stp.gruppe_kurzbz
|
||||
else stp.semester||(case when verband is null then '' else stp.verband end)||(case when stp.gruppe is null then '' else stp.gruppe end) end) as gruppe
|
||||
SELECT
|
||||
SUM(stundenplan_id) AS stundenplan_id,
|
||||
datum,
|
||||
stunde,
|
||||
lehrveranstaltung_id,
|
||||
bezeichnung,
|
||||
studiensemester_kurzbz,
|
||||
studiengang_kz
|
||||
|
||||
FROM
|
||||
lehre.tbl_lehrveranstaltung lv
|
||||
JOIN lehre.tbl_lehreinheit le using (lehrveranstaltung_id)
|
||||
JOIN lehre.tbl_stundenplan stp using (lehreinheit_id,studiengang_kz)
|
||||
JOIN
|
||||
lehre.tbl_lehreinheit le USING (lehrveranstaltung_id)
|
||||
JOIN
|
||||
lehre.tbl_stundenplan stp USING (lehreinheit_id,studiengang_kz)
|
||||
|
||||
WHERE
|
||||
studiensemester_kurzbz = ".$this->db_add_param($studiensemester_kurzbz)."
|
||||
AND (titel not like '%Nebenprüfung%' OR titel is null)
|
||||
|
||||
group by datum, stunde, lehrveranstaltung_id, bezeichnung, studiensemester_kurzbz, studiengang_kz, stp.gruppe_kurzbz, stp.semester, stp.verband, stp.gruppe
|
||||
AND (titel NOT LIKE '%Nebenprüfung%' OR titel IS NULL)
|
||||
|
||||
GROUP BY
|
||||
datum,
|
||||
stunde,
|
||||
lehrveranstaltung_id,
|
||||
bezeichnung,
|
||||
studiensemester_kurzbz,
|
||||
studiengang_kz,
|
||||
stp.gruppe_kurzbz,
|
||||
stp.semester,
|
||||
stp.verband,
|
||||
stp.gruppe
|
||||
)x
|
||||
JOIN (
|
||||
SELECT semester::text as gruppe, public.tbl_studentlehrverband.studiensemester_kurzbz, student_uid, studiengang_kz
|
||||
FROM
|
||||
public.tbl_studentlehrverband
|
||||
WHERE studiensemester_kurzbz = ".$this->db_add_param($studiensemester_kurzbz)."
|
||||
|
||||
UNION
|
||||
|
||||
SELECT semester||verband as gruppe, public.tbl_studentlehrverband.studiensemester_kurzbz, student_uid, studiengang_kz
|
||||
FROM
|
||||
public.tbl_studentlehrverband
|
||||
WHERE
|
||||
studiensemester_kurzbz = ".$this->db_add_param($studiensemester_kurzbz)."
|
||||
|
||||
UNION
|
||||
|
||||
SELECT semester||verband||gruppe as gruppe, public.tbl_studentlehrverband.studiensemester_kurzbz, student_uid, studiengang_kz
|
||||
FROM
|
||||
public.tbl_studentlehrverband
|
||||
WHERE
|
||||
studiensemester_kurzbz = ".$this->db_add_param($studiensemester_kurzbz)."
|
||||
|
||||
UNION
|
||||
|
||||
SELECT gruppe_kurzbz as gruppe, public.tbl_benutzergruppe.studiensemester_kurzbz, uid as student_uid, studiengang_kz
|
||||
FROM
|
||||
public.tbl_benutzergruppe
|
||||
JOIN
|
||||
public.tbl_gruppe using (gruppe_kurzbz)
|
||||
WHERE studiensemester_kurzbz = ".$this->db_add_param($studiensemester_kurzbz)."
|
||||
|
||||
)a using (gruppe, studiensemester_kurzbz, studiengang_kz)
|
||||
JOIN public.tbl_benutzer b on b.uid = student_uid
|
||||
JOIN public.tbl_person p using(person_id)
|
||||
LEFT JOIN(
|
||||
SELECT
|
||||
lehrveranstaltung_id, studiensemester_kurzbz, uid as student_uid, sum(einheiten) as summe
|
||||
FROM
|
||||
campus.tbl_anwesenheit a
|
||||
JOIN lehre.tbl_lehreinheit le using (lehreinheit_id)
|
||||
JOIN lehre.tbl_lehrveranstaltung lv using (lehrveranstaltung_id)
|
||||
WHERE
|
||||
anwesend = true AND studiensemester_kurzbz = ".$this->db_add_param($studiensemester_kurzbz)."
|
||||
le.lehrveranstaltung_id,
|
||||
slv.student_uid,
|
||||
le.studiensemester_kurzbz,
|
||||
st.prestudent_id
|
||||
|
||||
FROM
|
||||
public.tbl_studentlehrverband slv
|
||||
JOIN
|
||||
lehre.tbl_lehreinheitgruppe leg
|
||||
ON slv.studiengang_kz = leg.studiengang_kz
|
||||
AND slv.semester = leg.semester
|
||||
AND (
|
||||
NULLIF(btrim(leg.verband::text), '') IS NULL
|
||||
OR NULLIF(btrim(slv.verband::text), '') = NULLIF(btrim(leg.verband::text), '')
|
||||
)
|
||||
AND (
|
||||
NULLIF(btrim(leg.gruppe::text), '') IS NULL
|
||||
OR NULLIF(btrim(slv.gruppe::text), '') = NULLIF(btrim(leg.gruppe::text), '')
|
||||
)
|
||||
JOIN
|
||||
lehre.tbl_lehreinheit le USING (lehreinheit_id, studiensemester_kurzbz)
|
||||
JOIN
|
||||
public.tbl_student st USING(student_uid)
|
||||
|
||||
WHERE
|
||||
leg.gruppe_kurzbz IS NULL
|
||||
AND le.studiensemester_kurzbz = ".$this->db_add_param($studiensemester_kurzbz)."
|
||||
|
||||
GROUP BY
|
||||
lehrveranstaltung_id, bezeichnung, uid, studiensemester_kurzbz
|
||||
)anwesend using(lehrveranstaltung_id, student_uid, studiensemester_kurzbz)
|
||||
le.lehrveranstaltung_id,
|
||||
slv.student_uid,
|
||||
le.studiensemester_kurzbz,
|
||||
st.prestudent_id
|
||||
|
||||
UNION
|
||||
|
||||
SELECT
|
||||
le.lehrveranstaltung_id,
|
||||
bg.uid AS student_uid,
|
||||
bg.studiensemester_kurzbz,
|
||||
st.prestudent_id
|
||||
|
||||
FROM
|
||||
public.tbl_benutzergruppe bg
|
||||
JOIN
|
||||
lehre.tbl_lehreinheitgruppe leg USING (gruppe_kurzbz)
|
||||
JOIN
|
||||
lehre.tbl_lehreinheit le USING(lehreinheit_id, studiensemester_kurzbz)
|
||||
JOIN
|
||||
public.tbl_student st ON bg.uid = st.student_uid
|
||||
|
||||
WHERE
|
||||
bg.studiensemester_kurzbz = ".$this->db_add_param($studiensemester_kurzbz)."
|
||||
|
||||
GROUP BY
|
||||
le.lehrveranstaltung_id,
|
||||
bg.uid,
|
||||
bg.studiensemester_kurzbz,
|
||||
st.prestudent_id
|
||||
|
||||
)a USING (lehrveranstaltung_id, studiensemester_kurzbz)
|
||||
JOIN
|
||||
public.tbl_benutzer b on b.uid = student_uid
|
||||
JOIN
|
||||
public.tbl_person p using(person_id)
|
||||
LEFT JOIN(
|
||||
SELECT lehrveranstaltung_id, studiensemester_kurzbz, uid as student_uid, sum(einheiten) as summe
|
||||
SELECT
|
||||
lehrveranstaltung_id,
|
||||
studiensemester_kurzbz,
|
||||
uid AS student_uid,
|
||||
SUM(einheiten) AS summe
|
||||
|
||||
FROM
|
||||
campus.tbl_anwesenheit a
|
||||
JOIN lehre.tbl_lehreinheit le using (lehreinheit_id)
|
||||
JOIN lehre.tbl_lehrveranstaltung lv using (lehrveranstaltung_id)
|
||||
JOIN
|
||||
lehre.tbl_lehreinheit le USING(lehreinheit_id)
|
||||
JOIN
|
||||
lehre.tbl_lehrveranstaltung lv USING (lehrveranstaltung_id)
|
||||
|
||||
WHERE
|
||||
anwesend = false AND studiensemester_kurzbz = ".$this->db_add_param($studiensemester_kurzbz)."
|
||||
anwesend = true
|
||||
AND studiensemester_kurzbz = ".$this->db_add_param($studiensemester_kurzbz)."
|
||||
|
||||
GROUP BY
|
||||
lehrveranstaltung_id, bezeichnung, uid, studiensemester_kurzbz
|
||||
)nichtanwesend using(lehrveranstaltung_id, student_uid, studiensemester_kurzbz)
|
||||
lehrveranstaltung_id,
|
||||
bezeichnung,
|
||||
uid,
|
||||
studiensemester_kurzbz
|
||||
|
||||
)anwesend USING(lehrveranstaltung_id, student_uid, studiensemester_kurzbz)
|
||||
LEFT JOIN(
|
||||
SELECT
|
||||
lehrveranstaltung_id,
|
||||
studiensemester_kurzbz,
|
||||
uid AS student_uid,
|
||||
SUM(einheiten) AS summe
|
||||
|
||||
FROM
|
||||
campus.tbl_anwesenheit a
|
||||
JOIN
|
||||
lehre.tbl_lehreinheit le USING (lehreinheit_id)
|
||||
JOIN
|
||||
lehre.tbl_lehrveranstaltung lv USING (lehrveranstaltung_id)
|
||||
|
||||
WHERE
|
||||
anwesend = false
|
||||
AND studiensemester_kurzbz = ".$this->db_add_param($studiensemester_kurzbz)."
|
||||
|
||||
GROUP BY
|
||||
lehrveranstaltung_id,
|
||||
bezeichnung,
|
||||
uid,
|
||||
studiensemester_kurzbz
|
||||
)nichtanwesend USING(lehrveranstaltung_id, student_uid, studiensemester_kurzbz)
|
||||
|
||||
WHERE
|
||||
lehrveranstaltung_id > 0
|
||||
";
|
||||
@@ -573,8 +664,15 @@ class anwesenheit extends basis_db
|
||||
if(!is_null($lehrveranstaltung_id))
|
||||
$qry.=" AND lehrveranstaltung_id=".$this->db_add_param($lehrveranstaltung_id);
|
||||
|
||||
$qry.="group by
|
||||
vorname, nachname, wahlname, lehrveranstaltung_id, bezeichnung, gruppe, student_uid, anwesend.summe, nichtanwesend.summe
|
||||
$qry.=" GROUP BY
|
||||
vorname,
|
||||
nachname,
|
||||
wahlname,
|
||||
lehrveranstaltung_id,
|
||||
bezeichnung,
|
||||
student_uid,
|
||||
anwesend.summe,
|
||||
nichtanwesend.summe
|
||||
)m";
|
||||
|
||||
if($lehrveranstaltung_id != '')
|
||||
|
||||
@@ -888,9 +888,10 @@ class dokument extends basis_db
|
||||
* Akzeptiert ein bestimmtes Dokument
|
||||
* @param char $dokument_kurzbz Bezeichner Dokument.
|
||||
* @param int $person_id Personenkennzeichen.
|
||||
* @param array $studiengang_typen einschränken nach Studiengang Typ.
|
||||
* @return boolean true wenn akzeptiert bzw geprüft ohne Akzeptieren, false wenn Fehler
|
||||
*/
|
||||
public function akzeptiereDokument($dokument_kurzbz, $person_id)
|
||||
public function akzeptiereDokument($dokument_kurzbz, $person_id, $studiengang_typen = null)
|
||||
{
|
||||
$db = new basis_db();
|
||||
$arrayDoksZuAkzeptieren = array();
|
||||
@@ -902,7 +903,6 @@ class dokument extends basis_db
|
||||
tbl_prestudent ps, tbl_studiengang sg
|
||||
WHERE
|
||||
ps.studiengang_kz = sg.studiengang_kz
|
||||
AND sg.typ = 'm'
|
||||
AND person_id = ".$this->db_add_param($person_id)."
|
||||
AND not exists(
|
||||
SELECT *
|
||||
@@ -910,6 +910,11 @@ class dokument extends basis_db
|
||||
where dok.prestudent_id = ps.prestudent_id
|
||||
and dokument_kurzbz = ".$this->db_add_param($dokument_kurzbz).")";
|
||||
|
||||
if (isset($studiengang_typen) && is_array($studiengang_typen) && !empty($studiengang_typen))
|
||||
{
|
||||
$qry .= ' AND sg.typ IN ('. $db->db_implode4SQL($studiengang_typen).')';
|
||||
}
|
||||
|
||||
//gibt ein Array von zu akzeptierenden Dokumenten zurück
|
||||
if ($db->db_query($qry))
|
||||
{
|
||||
@@ -923,11 +928,14 @@ class dokument extends basis_db
|
||||
}
|
||||
|
||||
//für alle prestudent_ids das Dokument akzeptieren
|
||||
$qry = "INSERT INTO public.tbl_dokumentprestudent(dokument_kurzbz, prestudent_id) VALUES";
|
||||
$qry = "INSERT INTO public.tbl_dokumentprestudent(dokument_kurzbz, prestudent_id, datum, insertamum) VALUES";
|
||||
|
||||
foreach ($arrayDoksZuAkzeptieren as $prestudent_id)
|
||||
{
|
||||
$qry .= "(".$this->db_add_param($dokument_kurzbz). ",". $prestudent_id. ")";
|
||||
$qry .= "(".$this->db_add_param($dokument_kurzbz).
|
||||
",".$this->db_add_param($prestudent_id, FHC_INTEGER).
|
||||
",".$this->db_add_param(date('Y-m-d')).
|
||||
",".$this->db_add_param(strftime('%Y-%m-%d %H:%M')). ")";
|
||||
|
||||
if (next($arrayDoksZuAkzeptieren) == true)
|
||||
{
|
||||
|
||||
+73
-22
@@ -29,6 +29,7 @@ require_once(dirname(__FILE__).'/studiensemester.class.php');
|
||||
require_once(dirname(__FILE__).'/adresse.class.php');
|
||||
require_once(dirname(__FILE__).'/webservicelog.class.php');
|
||||
require_once(dirname(__FILE__).'/prestudent.class.php');
|
||||
require_once(dirname(__FILE__).'/kennzeichen.class.php');
|
||||
require_once(dirname(__FILE__).'/errorhandler.class.php');
|
||||
|
||||
class dvb extends basis_db
|
||||
@@ -42,6 +43,7 @@ class dvb extends basis_db
|
||||
const DVB_URL_WEBSERVICE_RESERVIERUNG = DVB_PORTAL.'/rws/0.6/matrikelreservierung.xml';
|
||||
const DVB_URL_WEBSERVICE_MELDUNG = DVB_PORTAL.'/rws/0.6/matrikelmeldung.xml';
|
||||
const DVB_URL_WEBSERVICE_BPK = DVB_PORTAL.'/rws/0.6/pruefebpk.xml';
|
||||
const DVB_URL_WEBSERVICE_BPK_ALL = DVB_PORTAL.'/rws/0.8/pruefebpk.xml';
|
||||
|
||||
public $authentication;
|
||||
private $username;
|
||||
@@ -1149,15 +1151,29 @@ class dvb extends basis_db
|
||||
*/
|
||||
public function getBPK($person_id)
|
||||
{
|
||||
$vbpkTypes = defined('VBPK_TYPES') && is_array(VBPK_TYPES) ? VBPK_TYPES : null;
|
||||
|
||||
$person = new person();
|
||||
if ($person->load($person_id))
|
||||
{
|
||||
if ($person->bpk != '')
|
||||
{
|
||||
// BPK exisitert bereits
|
||||
$retval = new stdClass();
|
||||
$retval->bpk = $person->bpk;
|
||||
return ErrorHandler::success($retval);
|
||||
|
||||
// BPK existiert bereits
|
||||
if (!isset($vbpkTypes)) return ErrorHandler::success($retval);
|
||||
|
||||
$kennzeichen = new kennzeichen();
|
||||
|
||||
if ($kennzeichen->load_pers($person_id, $vbpkTypes))
|
||||
{
|
||||
if (array_unique(array_column($kennzeichen->result, 'kennzeichentyp_kurzbz')) == array_values($vbpkTypes))
|
||||
{
|
||||
// BPKs exisiteren bereits
|
||||
return ErrorHandler::success($retval);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($person->gebdatum == '')
|
||||
@@ -1178,7 +1194,8 @@ class dvb extends basis_db
|
||||
return ErrorHandler::error($errormsg);
|
||||
}
|
||||
|
||||
$geburtsdatum = str_replace("-", "", $person->gebdatum);
|
||||
//$geburtsdatum = str_replace("-", "", $person->gebdatum);
|
||||
$geburtsdatum = $person->gebdatum;
|
||||
$vorname = $person->vorname;
|
||||
$nachname = $person->nachname;
|
||||
$geschlecht = mb_strtoupper($person->geschlecht);
|
||||
@@ -1258,6 +1275,8 @@ class dvb extends basis_db
|
||||
*/
|
||||
public function pruefeBPK($geburtsdatum, $vorname, $nachname, $geschlecht, $plz = null, $strasse = null)
|
||||
{
|
||||
$vbpkTypes = defined('VBPK_TYPES') && is_array(VBPK_TYPES) ? VBPK_TYPES : null;
|
||||
|
||||
if ($this->tokenIsExpired())
|
||||
{
|
||||
$result = $this->authenticate();
|
||||
@@ -1271,7 +1290,7 @@ class dvb extends basis_db
|
||||
|
||||
$uuid = $this->getUUID();
|
||||
|
||||
$url = self::DVB_URL_WEBSERVICE_BPK;
|
||||
$url = self::DVB_URL_WEBSERVICE_BPK_ALL;
|
||||
$url .= '?geburtsdatum='.curl_escape($curl, $geburtsdatum);
|
||||
$url .= '&vorname='.curl_escape($curl, $vorname);
|
||||
$url .= '&nachname='.curl_escape($curl, $nachname);
|
||||
@@ -1311,24 +1330,15 @@ class dvb extends basis_db
|
||||
if ($curl_info['http_code'] == '200')
|
||||
{
|
||||
/* Example Response:
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<simpleBpkResponse xmlns="http://www.brz.gv.at/datenverbund-unis">
|
||||
<bpk>12345ABCDEFGHXXXXXXX=</bpk>
|
||||
<personInfo>
|
||||
<person>
|
||||
<vorname>Hans</vorname>
|
||||
<nachname>Huber</nachname>
|
||||
<geschlecht>M</geschlecht>
|
||||
<gebdat>1990-01-01</gebdat>
|
||||
</person>
|
||||
<adresse>
|
||||
<staat></staat>
|
||||
<plz>1100</plz>
|
||||
<ort></ort>
|
||||
<strasse></strasse>
|
||||
</adresse>
|
||||
</personInfo>
|
||||
</simpleBpkResponse>
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<bpkResponse xmlns="http://www.brz.gv.at/datenverbund-unis">
|
||||
<uuid>5cc93441-a46a-4f97-a5e3-e64891b39f10</uuid>
|
||||
<bpk>12345ABCDEFG</bpk>
|
||||
<vbpk bereich="AS" vkz="BBA-STA">12345ABCDEFG</vbpk>
|
||||
<vbpk bereich="BF" vkz="BMBWF">12345ABCDEFG</vbpk>
|
||||
<vbpk bereich="ZP-TD" vkz="BMF">12345ABCDEFG</vbpk>
|
||||
<geprueft>true</geprueft>
|
||||
</bpkResponse>
|
||||
|
||||
Example Error:
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
@@ -1369,10 +1379,30 @@ class dvb extends basis_db
|
||||
}
|
||||
|
||||
$domnodes_bpk = $dom->getElementsByTagNameNS($namespace, 'bpk');
|
||||
|
||||
if ($domnodes_bpk->length > 0)
|
||||
{
|
||||
$retval = new stdClass();
|
||||
$retval->bpk = $domnodes_bpk->item(0)->textContent;
|
||||
|
||||
// vbpks auslesen
|
||||
$domnodes_vbpks = $dom->getElementsByTagNameNS($namespace, 'vbpk');
|
||||
|
||||
$retval->vbpks = array();
|
||||
if ($domnodes_vbpks->length > 0)
|
||||
{
|
||||
foreach ($domnodes_vbpks as $domnode_vbpk)
|
||||
{
|
||||
foreach ($domnode_vbpk->attributes as $attribute)
|
||||
{
|
||||
if ($attribute->nodeName == 'bereich' && isset($vbpkTypes[$attribute->nodeValue]))
|
||||
{
|
||||
$retval->vbpks[$vbpkTypes[$attribute->nodeValue]] = $domnode_vbpk->nodeValue;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return ErrorHandler::success($retval);
|
||||
}
|
||||
else
|
||||
@@ -1385,6 +1415,27 @@ class dvb extends basis_db
|
||||
$retval->multiple = true;
|
||||
return ErrorHandler::error(null, $retval);
|
||||
}
|
||||
else
|
||||
{
|
||||
$errorTexts = array();
|
||||
$domnodes_fehler = $dom->getElementsByTagNameNS($namespace, 'fehlerliste');
|
||||
|
||||
if ($domnodes_fehler->length > 0)
|
||||
{
|
||||
foreach ($domnodes_fehler as $domnode_fehler)
|
||||
{
|
||||
if ($domnode_fehler->childNodes->length > 0)
|
||||
{
|
||||
foreach ($domnode_fehler->childNodes as $childNode)
|
||||
{
|
||||
$errorTexts[] = $childNode->nodeValue;
|
||||
}
|
||||
}
|
||||
}
|
||||
$this->errormsg = count($errorTexts) > 0 ? implode('; ', $errorTexts) : null;
|
||||
return ErrorHandler::error(null);
|
||||
}
|
||||
}
|
||||
}
|
||||
return ErrorHandler::error();
|
||||
}
|
||||
|
||||
@@ -364,9 +364,10 @@ class entwicklungsteam extends basis_db
|
||||
$bismeldung_jahr = $datetime->format('Y');
|
||||
|
||||
//laden des Datensatzes
|
||||
$qry = "SELECT *
|
||||
$qry = "SELECT tbl_entwicklungsteam.*, tbl_besqual.*, tbl_studiengang.studiengang_kz, tbl_studiengang.melderelevant
|
||||
FROM bis.tbl_entwicklungsteam
|
||||
JOIN bis.tbl_besqual USING(besqualcode)
|
||||
JOIN public.tbl_studiengang USING(studiengang_kz)
|
||||
WHERE mitarbeiter_uid=".$this->db_add_param($mitarbeiter_uid)."
|
||||
AND (beginn is NULL OR beginn <= make_date(". $this->db_add_param($bismeldung_jahr). "::INTEGER, 12, 31))
|
||||
AND (ende is NULL OR ende >= make_date(". $this->db_add_param($bismeldung_jahr). "::INTEGER, 1, 1))";
|
||||
@@ -394,6 +395,7 @@ class entwicklungsteam extends basis_db
|
||||
$obj->insertvon = $row->insertvon;
|
||||
$obj->ext_id = $row->ext_id;
|
||||
$obj->besqual = $row->besqualbez;
|
||||
$obj->melderelevant = $this->db_parse_bool($row->melderelevant);
|
||||
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,221 @@
|
||||
<?php
|
||||
|
||||
require_once(dirname(__FILE__).'/basis_db.class.php');
|
||||
require_once(dirname(__FILE__).'/prestudent.class.php');
|
||||
require_once(dirname(__FILE__).'/person.class.php');
|
||||
require_once(dirname(__FILE__).'/reihungstest.class.php');
|
||||
|
||||
require_once(dirname(__FILE__).'/../vendor/autoload.php');
|
||||
use Firebase\JWT\JWT;
|
||||
|
||||
class externeUeberwachung extends basis_db
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
}
|
||||
|
||||
public function getStatusByPrestudent($prestudent_id)
|
||||
{
|
||||
$session_id = $this->getSessionByPrestudent($prestudent_id);
|
||||
return $this->getSessionStatus($session_id);
|
||||
}
|
||||
public function start($prestudent_id, $reihungstest_id, $sprache)
|
||||
{
|
||||
$session_id = $this->getSessionByPrestudent($prestudent_id);
|
||||
|
||||
if (!$session_id)
|
||||
{
|
||||
$session_id = $this->createSession($prestudent_id);
|
||||
}
|
||||
else
|
||||
{
|
||||
$status = $this->getSessionStatus($session_id);
|
||||
|
||||
if (in_array($status, array('late_to_start', 'finished')))
|
||||
{
|
||||
$session_id = $this->createSession($prestudent_id);
|
||||
}
|
||||
}
|
||||
|
||||
$payload = $this->getPayload($session_id, $prestudent_id, $reihungstest_id, $sprache);
|
||||
return $this->getStartUrl($payload);
|
||||
}
|
||||
|
||||
|
||||
private function createSession($prestudent_id)
|
||||
{
|
||||
if (is_null($prestudent_id))
|
||||
{
|
||||
$this->errormsg = 'Falsche Parameterübergabe';
|
||||
return false;
|
||||
}
|
||||
|
||||
$uuid = $this->genereateUUID();
|
||||
|
||||
$qry = "INSERT INTO testtool.tbl_externe_ueberwachung (prestudent_id, session_id)
|
||||
VALUES (".
|
||||
$this->db_add_param($prestudent_id).",".
|
||||
$this->db_add_param($uuid).")";
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
return $uuid;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Speichern der Antwort';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
public function getSessionByPrestudent($prestudent_id)
|
||||
{
|
||||
if (is_null($prestudent_id))
|
||||
{
|
||||
$this->errormsg = 'Falsche Parameterübergabe';
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry = "SELECT session_id
|
||||
FROM testtool.tbl_externe_ueberwachung
|
||||
WHERE prestudent_id = ".$this->db_add_param($prestudent_id, FHC_INTEGER) . "
|
||||
ORDER BY insertamum DESC
|
||||
LIMIT 1";
|
||||
|
||||
if($result = $this->db_query($qry))
|
||||
{
|
||||
if ($row = $this->db_fetch_object($result))
|
||||
{
|
||||
return $row->session_id;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Daten konnten nicht geladen werden';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler bei einer Abfrage';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public function getSessionStatus($session_id)
|
||||
{
|
||||
$payload = $this->getSessionPayload($session_id);
|
||||
$jwt = $this->createToken($payload);
|
||||
|
||||
$url = $this->getSessionUrl($session_id);
|
||||
|
||||
$ch = curl_init($url);
|
||||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
||||
curl_setopt($ch, CURLOPT_HTTPHEADER, [
|
||||
"Authorization: JWT {$jwt}",
|
||||
"Content-Type: application/json",
|
||||
]);
|
||||
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
|
||||
|
||||
$response = curl_exec($ch);
|
||||
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
|
||||
|
||||
curl_close($ch);
|
||||
|
||||
$data = json_decode($response, true);
|
||||
return isset($data['status']) ? $data['status'] : false;
|
||||
}
|
||||
|
||||
private function getSessionPayload($session_id)
|
||||
{
|
||||
return [
|
||||
"session_id" => $session_id,
|
||||
"iat" => time(),
|
||||
"exp" => time() + 120,
|
||||
];
|
||||
}
|
||||
|
||||
private function getPayload($session_id, $prestudent_id, $reihungstest_id, $sprache)
|
||||
{
|
||||
$prestudent = new prestudent($prestudent_id);
|
||||
$person = new Person($prestudent->person_id);
|
||||
|
||||
$reihungstest = new Reihungstest($reihungstest_id);
|
||||
|
||||
$datetime = new DateTime();
|
||||
$today = $datetime->format('Y-m-d');
|
||||
|
||||
$payload = [
|
||||
"userId" => $prestudent_id,
|
||||
"lastName" => $person->nachname,
|
||||
"firstName" => $person->vorname,
|
||||
"language" => $sprache === 'German' ? 'de' : 'en',
|
||||
"accountName" => "technikum_wien",
|
||||
"accountId" => "technikum_wien",
|
||||
"examId" => $reihungstest_id . '_' . $today,
|
||||
"examName" => !is_null(trim($reihungstest->anmerkung)) ? ($reihungstest->anmerkung . '_' . $today) : ($reihungstest_id . '_' . $today),
|
||||
"duration" => 1440,
|
||||
"schedule" => false,
|
||||
"trial" => EXTERNE_UEBERWACHUNG_TRIAL_TEST,
|
||||
"proctoring" => "offline",
|
||||
"startDate" => $reihungstest->datum . 'T00:00:00Z',
|
||||
"endDate" => $reihungstest->datum . 'T23:59:59Z',
|
||||
"sessionId" => $session_id,
|
||||
"sessionUrl" => EXTERNE_UEBERWACHUNG_SESSION_URL
|
||||
];
|
||||
|
||||
if (defined('EXTERNE_UEBERWACHUNG_EXAM_PARAMS'))
|
||||
{
|
||||
$payload = array_merge($payload, EXTERNE_UEBERWACHUNG_EXAM_PARAMS);
|
||||
}
|
||||
|
||||
if (defined('EXTERNE_UEBERWACHUNG_EXAM_WARNINGS'))
|
||||
{
|
||||
$payload['visibleWarnings'] = EXTERNE_UEBERWACHUNG_EXAM_WARNINGS;
|
||||
}
|
||||
|
||||
if (defined('EXTERNE_UEBERWACHUNG_EXAM_RULES'))
|
||||
{
|
||||
$payload['rules'] = EXTERNE_UEBERWACHUNG_EXAM_RULES;
|
||||
}
|
||||
|
||||
if (defined('EXTERNE_UEBERWACHUNG_EXAM_SCORE'))
|
||||
{
|
||||
$payload['scoreConfig'] = EXTERNE_UEBERWACHUNG_EXAM_SCORE;
|
||||
}
|
||||
|
||||
return $payload;
|
||||
}
|
||||
|
||||
private function getSessionUrl($session_id)
|
||||
{
|
||||
return EXTERNE_UEBERWACHUNG_PROTOCOL_URL . "/api/v2/integration/simple/". EXTERNE_UEBERWACHUNG_INTEGRATION_NAME . "/sessions/". urlencode($session_id) ."/status/";
|
||||
}
|
||||
|
||||
private function getStartUrl($payload)
|
||||
{
|
||||
$token = $this->createToken($payload);
|
||||
$query = http_build_query(['token' => $token]);
|
||||
|
||||
return EXTERNE_UEBERWACHUNG_PROTOCOL_URL . '/integration/simple/'. EXTERNE_UEBERWACHUNG_INTEGRATION_NAME .'/start?' . $query;
|
||||
}
|
||||
|
||||
private function createToken($payload)
|
||||
{
|
||||
return JWT::encode($payload, EXTERNE_UEBERWACHUNG_SECRET_KEY, 'HS256');
|
||||
}
|
||||
|
||||
private function genereateUUID()
|
||||
{
|
||||
$data = openssl_random_pseudo_bytes(16);
|
||||
|
||||
$data[6] = chr(ord($data[6]) & 0x0f | 0x40);
|
||||
$data[8] = chr(ord($data[8]) & 0x3f | 0x80);
|
||||
|
||||
return vsprintf('%s%s-%s-%s-%s-%s%s%s', str_split(bin2hex($data), 4));
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
|
||||
|
||||
@@ -240,7 +240,7 @@ class filter extends basis_db
|
||||
{
|
||||
//$value->value = preg_replace('/(.*?)selected=.selected./', '$1', $value->value);
|
||||
//$value->value = preg_replace('/(.*?)\s*[selected=?selected?]/', '$1', $value->value);
|
||||
//$value->value = preg_replace('/(.*?)\s*selected="selected"\s*/', '${1}', $value->value);
|
||||
//$value->value = preg_replace('/(.*?)\s*selected="selected"\s*/', '$[1]', $value->value);
|
||||
//$value->value = preg_replace('/^\s*selected=.*?selected.*?\s*/', ' ', $value->value);
|
||||
//$value->value = str_replace('selected=', '', $value->value);
|
||||
|
||||
|
||||
@@ -345,6 +345,7 @@ class gebiet extends basis_db
|
||||
}
|
||||
|
||||
//Pruefen ob jede Fragen mindestens 2 Vorschlaege hat
|
||||
//Angepasst am 28.01.2026 auf ein Warning.
|
||||
$qry = "SELECT frage_id, nummer FROM testtool.tbl_frage
|
||||
WHERE (SELECT count(*) as anzahl FROM testtool.tbl_vorschlag WHERE frage_id=tbl_frage.frage_id)<2
|
||||
AND gebiet_id=".$this->db_add_param($gebiet_id, FHC_INTEGER)." AND NOT demo;";
|
||||
@@ -352,7 +353,7 @@ class gebiet extends basis_db
|
||||
{
|
||||
while($row = $this->db_fetch_object())
|
||||
{
|
||||
$this->errormsg .= "Frage Nummer $row->nummer (ID: $row->frage_id) hat weniger als 2 Vorschlaege.\n";
|
||||
$this->warningmsg .= "Frage Nummer $row->nummer (ID: $row->frage_id) hat weniger als 2 Vorschlaege.\n";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -448,6 +449,52 @@ class gebiet extends basis_db
|
||||
}
|
||||
}
|
||||
|
||||
//Pruefen ob es leere Fragen (ohne Text, Bild oder Audio) gibt
|
||||
$qry = "SELECT
|
||||
fr.frage_id,
|
||||
fr.nummer,
|
||||
fs.sprache
|
||||
FROM
|
||||
testtool.tbl_frage fr
|
||||
JOIN testtool.tbl_frage_sprache fs
|
||||
USING (frage_id)
|
||||
WHERE
|
||||
(fs.text IS NULL
|
||||
OR fs.text = '')
|
||||
AND fs.bild IS NULL
|
||||
AND fs.audio IS NULL
|
||||
AND demo = false
|
||||
AND gebiet_id=".$this->db_add_param($gebiet_id, FHC_INTEGER)."
|
||||
AND EXISTS (
|
||||
SELECT
|
||||
1
|
||||
FROM
|
||||
testtool.tbl_frage fr2
|
||||
JOIN testtool.tbl_frage_sprache fs2
|
||||
USING (frage_id)
|
||||
WHERE
|
||||
fs2.sprache = fs.sprache
|
||||
AND fr2.gebiet_id = fr.gebiet_id
|
||||
AND fr2.frage_id != fr.frage_id
|
||||
AND (
|
||||
(fs2.text IS NOT NULL
|
||||
AND fs2.text != '')
|
||||
OR fs2.bild IS NOT NULL
|
||||
OR fs2.audio IS NOT NULL
|
||||
)
|
||||
AND demo = false
|
||||
)
|
||||
ORDER BY
|
||||
fs.sprache,
|
||||
fr.nummer;";
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
while($row = $this->db_fetch_object())
|
||||
{
|
||||
$this->warningmsg .= "Frage Nummer $row->nummer (ID: $row->frage_id), Sprache $row->sprache hat keinen Text, Bild oder Audio.\n";
|
||||
}
|
||||
}
|
||||
|
||||
if($this->errormsg=='')
|
||||
return true;
|
||||
else
|
||||
|
||||
@@ -0,0 +1,261 @@
|
||||
<?php
|
||||
/* Copyright (C) 2006 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: Alexei Karpenko <karpenko@technikum-wien.at>,
|
||||
*/
|
||||
/**
|
||||
* Klasse kennzeichen
|
||||
*/
|
||||
require_once(dirname(__FILE__).'/basis_db.class.php');
|
||||
|
||||
class kennzeichen extends basis_db
|
||||
{
|
||||
public $new; // boolean
|
||||
public $result = array(); // adresse Objekt
|
||||
|
||||
//Tabellenspalten
|
||||
public $kennzeichen_id; // integer
|
||||
public $person_id; // integer
|
||||
|
||||
public $kennzeichentyp_kurzbz; // string
|
||||
public $inhalt; // string
|
||||
public $aktiv; // boolean
|
||||
public $insertamum; // timestamp
|
||||
public $insertvon; // string
|
||||
public $updateamum; // timestamp
|
||||
public $updatevon; // string
|
||||
|
||||
/**
|
||||
* Konstruktor
|
||||
* @param $kennzeichen_id ID des Kennzeichens das geladen werden soll (Default=null)
|
||||
*/
|
||||
public function __construct($kennzeichen_id=null)
|
||||
{
|
||||
parent::__construct();
|
||||
$this->new = true;
|
||||
|
||||
if(!is_null($kennzeichen_id))
|
||||
$this->load($kennzeichen_id);
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt ein Kennzeichen mit der ID $kennzeichen_id
|
||||
* @param $kennzeichen_id ID des zu ladenden Kennzeichens
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
public function load($kennzeichen_id)
|
||||
{
|
||||
if (!is_numeric($kennzeichen_id))
|
||||
{
|
||||
$this->errormsg = 'Kennzeichen Id ist ungueltig';
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry = "SELECT
|
||||
*
|
||||
FROM
|
||||
public.tbl_kennzeichen
|
||||
WHERE
|
||||
kennzeichen_id = " . $this->db_add_param($kennzeichen_id, FHC_INTEGER) . ";";
|
||||
|
||||
if ($this->db_query($qry))
|
||||
{
|
||||
if ($row = $this->db_fetch_object())
|
||||
{
|
||||
$this->kennzeichen_id = $row->kennzeichen_id;
|
||||
$this->person_id = $row->person_id;
|
||||
$this->kennzeichentyp_kurzbz = $row->kennzeichentyp_kurzbz;
|
||||
$this->inhalt = $row->inhalt;
|
||||
$this->aktiv = $this->db_parse_bool($row->aktiv);
|
||||
$this->updateamum = $row->updateamum;
|
||||
$this->updatevon = $row->updatevon;
|
||||
$this->insertamum = $row->insertamum;
|
||||
$this->insertvon = $row->insertvon;
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Datensatz wurde nicht gefunden';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden der Daten';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Prueft die Kennzeichen auf Gueltigkeit
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
public function validate()
|
||||
{
|
||||
//Gesamtlaenge pruefen
|
||||
if(mb_strlen($this->kennzeichentyp_kurzbz)>32)
|
||||
{
|
||||
$this->errormsg = 'Kennzeichentyp darf nicht länger als 32 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
$this->errormsg = '';
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Speichert den aktuellen Datensatz in die Datenbank
|
||||
* Wenn $neu auf true gesetzt ist wird ein neuer Datensatz angelegt
|
||||
* andernfalls wird der Datensatz mit der ID in $kennzeichen_id aktualisiert
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
public function save($new = null)
|
||||
{
|
||||
if(!is_null($new))
|
||||
$this->new = $new;
|
||||
|
||||
//Variablen pruefen
|
||||
if(!$this->validate())
|
||||
return false;
|
||||
|
||||
if($this->new)
|
||||
{
|
||||
//Neuen Datensatz einfuegen
|
||||
$qry='BEGIN;INSERT INTO public.tbl_kennzeichen (person_id, kennzeichentyp_kurzbz, inhalt, aktiv, insertamum, insertvon) VALUES('.
|
||||
$this->db_add_param($this->person_id, FHC_INTEGER).', '.
|
||||
$this->db_add_param($this->kennzeichentyp_kurzbz).', '.
|
||||
$this->db_add_param($this->inhalt).', '.
|
||||
$this->db_add_param($this->aktiv, FHC_BOOLEAN).', now(), '.
|
||||
$this->db_add_param($this->insertvon).');';
|
||||
}
|
||||
else
|
||||
{
|
||||
//Updaten des bestehenden Datensatzes
|
||||
|
||||
//Pruefen ob kennzeichen_id eine gueltige Zahl ist
|
||||
if(!is_numeric($this->kennzeichen_id))
|
||||
{
|
||||
$this->errormsg = 'kennzeichen_id muss eine gueltige Zahl sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry='UPDATE public.tbl_kennzeichen SET '.
|
||||
'person_id='.$this->db_add_param($this->person_id,FHC_INTEGER).', '.
|
||||
'kennzeichentyp_kurzbz='.$this->db_add_param($this->kennzeichentyp_kurzbz).', '.
|
||||
'aktiv='.$this->db_add_param($this->aktiv, FHC_BOOLEAN).', '.
|
||||
'updateamum= now(), '.
|
||||
'updatevon='.$this->db_add_param($this->updatevon).' '.
|
||||
'WHERE kennzeichen_id='.$this->db_add_param($this->kennzeichen_id, FHC_INTEGER).';';
|
||||
}
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
//Sequence auslesen um die eingefuegte ID zu ermitteln
|
||||
if($this->new)
|
||||
{
|
||||
$qry = "SELECT currval('public.tbl_kennzeichen_id_seq') as id;";
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
if($row = $this->db_fetch_object())
|
||||
{
|
||||
$this->kennzeichen_id = $row->id;
|
||||
$this->db_query('COMMIT;');
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Auslesen er Sequence';
|
||||
$this->db_query('ROLLBACK;');
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Auslesen der Sequence';
|
||||
$this->db_query('ROLLBACK;');
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Speichern der Daten';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt Kennzeichen einer Person
|
||||
* @param person_id
|
||||
* @param kennzeichentyp_kurzbz_arr filtern nach Kennzeichentyp
|
||||
* @return boolean
|
||||
*/
|
||||
public function load_pers($person_id, $kennzeichentyp_kurzbz_arr)
|
||||
{
|
||||
if(!is_numeric($person_id))
|
||||
{
|
||||
$this->errormsg = 'Person_id ist ungueltig';
|
||||
return false;
|
||||
}
|
||||
if(!is_array($kennzeichentyp_kurzbz_arr))
|
||||
{
|
||||
$this->errormsg = 'Kennzeichen sind ungueltig';
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry = "
|
||||
SELECT
|
||||
kz.kennzeichen_id, kz.person_id, kz.kennzeichentyp_kurzbz, inhalt, aktiv, updateamum, updatevon, insertamum, insertvon
|
||||
FROM
|
||||
public.tbl_kennzeichen kz
|
||||
WHERE
|
||||
person_id=".$this->db_add_param($person_id, FHC_INTEGER)."
|
||||
AND aktiv = TRUE
|
||||
AND kennzeichentyp_kurzbz IN (".$this->implode4SQL($kennzeichentyp_kurzbz_arr).")
|
||||
ORDER BY
|
||||
kz.kennzeichentyp_kurzbz, kz.kennzeichen_id;";
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
while($row = $this->db_fetch_object())
|
||||
{
|
||||
$obj = new kennzeichen();
|
||||
|
||||
$obj->kennzeichen_id = $row->kennzeichen_id;
|
||||
$obj->person_id = $row->person_id;
|
||||
$obj->kennzeichentyp_kurzbz = $row->kennzeichentyp_kurzbz;
|
||||
$obj->inhalt = $row->inhalt;
|
||||
$obj->aktiv = $this->db_parse_bool($row->aktiv);
|
||||
$obj->updateamum = $row->updateamum;
|
||||
$obj->updatevon = $row->updatevon;
|
||||
$obj->insertamum = $row->insertamum;
|
||||
$obj->insertvon = $row->insertvon;
|
||||
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden der Daten';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
@@ -552,9 +552,41 @@ class lehreinheitmitarbeiter extends basis_db
|
||||
$beginn = new DateTime($beginn);
|
||||
$ende = new DateTime($ende);
|
||||
|
||||
// get relevant Studiensemester
|
||||
$studiensemester_kurzbz_arr = [];
|
||||
|
||||
$qry = '
|
||||
SELECT
|
||||
studiensemester_kurzbz
|
||||
FROM
|
||||
public.tbl_studiensemester
|
||||
WHERE
|
||||
start BETWEEN
|
||||
'. $this->db_add_param($beginn->format('Y-m-d')). ' AND
|
||||
'. $this->db_add_param($ende->format('Y-m-d'));
|
||||
|
||||
if ($this->db_query($qry))
|
||||
{
|
||||
while($row = $this->db_fetch_object())
|
||||
{
|
||||
$studiensemester_kurzbz_arr[] = $row->studiensemester_kurzbz;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler bei der Datenbankabfrage';
|
||||
return false;
|
||||
}
|
||||
|
||||
$lehrgaengeDistr = $this->_getLehrgaengeForDistribution($studiensemester_kurzbz_arr);
|
||||
|
||||
if (!is_array($studiensemester_kurzbz_arr) || empty($studiensemester_kurzbz_arr)) return true;
|
||||
|
||||
$qry = '
|
||||
WITH semester_sws_tbl AS (
|
||||
SELECT DISTINCT lehreinheit_id, studiensemester_kurzbz, lema.semesterstunden, stg.studiengang_kz
|
||||
SELECT
|
||||
DISTINCT lehreinheit_id, studiensemester_kurzbz, lema.semesterstunden,
|
||||
stg.studiengang_kz, stg.melde_studiengang_kz, stg.lgartcode, stg.melderelevant
|
||||
FROM lehre.tbl_lehreinheitmitarbeiter lema
|
||||
JOIN lehre.tbl_lehreinheit USING (lehreinheit_id)
|
||||
JOIN lehre.tbl_lehrveranstaltung lv USING (lehrveranstaltung_id)
|
||||
@@ -564,38 +596,104 @@ class lehreinheitmitarbeiter extends basis_db
|
||||
JOIN public.tbl_studiengang stg ON stg.studiengang_kz = sto.studiengang_kz
|
||||
JOIN public.tbl_studiensemester ss USING (studiensemester_kurzbz)
|
||||
WHERE mitarbeiter_uid = '. $this->db_add_param($uid). '
|
||||
AND (
|
||||
ss.start BETWEEN
|
||||
'. $this->db_add_param($beginn->format('Y-m-d')). ' AND
|
||||
'. $this->db_add_param($ende->format('Y-m-d')). ')
|
||||
AND ss.studiensemester_kurzbz IN ('.$this->implode4SQL($studiensemester_kurzbz_arr).')
|
||||
-- nur lehre, die bisgemeldet wird
|
||||
AND lema.bismelden
|
||||
AND stg.melderelevant
|
||||
-- keine lehreinheiten ohne semesterstunden
|
||||
AND lema.semesterstunden != 0
|
||||
AND lema.semesterstunden != 0
|
||||
)
|
||||
|
||||
SELECT
|
||||
studiengang_kz,
|
||||
studiensemester_kurzbz,
|
||||
melde_studiengang_kz,
|
||||
lgartcode,
|
||||
sum(semesterstunden) AS summe,
|
||||
round(sum(semesterstunden) / 15, 2) AS sws
|
||||
FROM
|
||||
semester_sws_tbl
|
||||
GROUP BY
|
||||
studiengang_kz,
|
||||
studiensemester_kurzbz
|
||||
studiensemester_kurzbz,
|
||||
melde_studiengang_kz,
|
||||
lgartcode
|
||||
ORDER BY
|
||||
studiengang_kz;
|
||||
';
|
||||
|
||||
if ($this->db_query($qry))
|
||||
{
|
||||
$additionalLehrgaenge = [];
|
||||
|
||||
while($row = $this->db_fetch_object())
|
||||
{
|
||||
$obj = new StdClass();
|
||||
$obj->studiengang_kz = $row->studiengang_kz;
|
||||
$obj->studiensemester_kurzbz = $row->studiensemester_kurzbz;
|
||||
$obj->melde_studiengang_kz = $row->melde_studiengang_kz;
|
||||
$obj->lgartcode = $row->lgartcode;
|
||||
$obj->sws = $row->sws;
|
||||
|
||||
if (isset($lehrgaengeDistr[$uid][$row->studiensemester_kurzbz]))
|
||||
{
|
||||
$lehrgaenge = $lehrgaengeDistr[$uid][$row->studiensemester_kurzbz];
|
||||
|
||||
foreach ($lehrgaenge as $lehreinheit_id => $lehrgangKzArr)
|
||||
{
|
||||
// wenn lehrgang gefunden, zusammenhängende Lehrgaenge holen und sws aufteilen
|
||||
if (array_key_exists($row->studiengang_kz, $lehrgangKzArr))
|
||||
{
|
||||
foreach ($lehrgangKzArr as $studiengang_kz => $lehrgang)
|
||||
{
|
||||
// check: nur eine Studiengangsverknüpfung pro Mitarbeiter, Semester, und Referenzstudiengang
|
||||
if (
|
||||
$studiengang_kz == $row->studiengang_kz
|
||||
|| isset(
|
||||
$additionalLehrgaenge[$uid][$row->studiensemester_kurzbz][$row->studiengang_kz][$studiengang_kz]
|
||||
)
|
||||
) continue;
|
||||
|
||||
// Lehrgang erstellen
|
||||
$lg = new StdClass();
|
||||
$lg->mitarbeiter_uid = $uid;
|
||||
$lg->melde_studiengang_kz = $lehrgang->melde_studiengang_kz;
|
||||
$lg->lgartcode = $lehrgang->lgartcode;
|
||||
$lg->studiengang_kz = $lehrgang->studiengang_kz;
|
||||
$lg->studiensemester_kurzbz = $lehrgang->studiensemester_kurzbz;
|
||||
$lg->summe = $row->summe;
|
||||
$lg->sws = $row->sws;
|
||||
// Lehrgang, der mit Ursprungsstudiengang aufgrund lehreinheit "verknüpft" ist, hinzufügen
|
||||
$additionalLehrgaenge[$uid][$row->studiensemester_kurzbz][$row->studiengang_kz][$studiengang_kz] = $lg;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ignorieren, wenn für den Studiengang keine verknüpften Lehrgaenge hat
|
||||
if (isset($additionalLehrgaenge[$uid][$row->studiensemester_kurzbz][$row->studiengang_kz]))
|
||||
{
|
||||
$addLehrgaenge = $additionalLehrgaenge[$uid][$row->studiensemester_kurzbz][$row->studiengang_kz];
|
||||
|
||||
// sws Durchschnitt über alle verknuepften Lehrgaenge berechnet
|
||||
$summeSws = $row->summe/(count($addLehrgaenge) + 1);
|
||||
$sws = $row->sws/(count($addLehrgaenge) + 1);
|
||||
|
||||
// neue sws zuweisen
|
||||
$obj->summe = $summeSws;
|
||||
$obj->sws = $sws;
|
||||
|
||||
foreach ($addLehrgaenge as $conn_ws_studiengang_kz => $lehrgang)
|
||||
{
|
||||
// sws fuer jeden verknuepften Lehrgang zuweisen
|
||||
$lehrgang->summe = $summeSws;
|
||||
$lehrgang->sws = $sws;
|
||||
|
||||
// neue lehrgang sws hinzufuegen
|
||||
$this->result [] = $lehrgang;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$this->result []= $obj;
|
||||
}
|
||||
return true;
|
||||
@@ -655,4 +753,63 @@ class lehreinheitmitarbeiter extends basis_db
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get "connected" Lehrgaenge for equal sws distribution.
|
||||
* @param $studiensemester_kurzbz_arr all semester for which Lehrgaenge should be retrieved
|
||||
* @return object success or error
|
||||
*/
|
||||
private function _getLehrgaengeForDistribution($studiensemester_kurzbz_arr)
|
||||
{
|
||||
if (!is_array($studiensemester_kurzbz_arr) || empty($studiensemester_kurzbz_arr)) return [];
|
||||
|
||||
$qry = "
|
||||
WITH gruppen AS (
|
||||
SELECT
|
||||
mitarbeiter_uid, lehreinheit_id, lehrveranstaltung_id, studiensemester_kurzbz, sem.start, sem.ende,
|
||||
lehreinheitgruppe_id, studiengang_kz, melde_studiengang_kz, lgartcode
|
||||
FROM
|
||||
lehre.tbl_lehreinheitmitarbeiter lema
|
||||
JOIN lehre.tbl_lehreinheit le USING (lehreinheit_id)
|
||||
JOIN lehre.tbl_lehreinheitgruppe legr USING (lehreinheit_id)
|
||||
JOIN public.tbl_studiengang stg USING (studiengang_kz)
|
||||
JOIN public.tbl_studiensemester sem USING (studiensemester_kurzbz)
|
||||
WHERE
|
||||
bismelden
|
||||
AND stg.melderelevant
|
||||
AND stg.typ = 'l'
|
||||
AND le.studiensemester_kurzbz IN (".$this->implode4SQL($studiensemester_kurzbz_arr).")
|
||||
)
|
||||
SELECT
|
||||
DISTINCT mitarbeiter_uid, studiensemester_kurzbz, lehreinheit_id, studiengang_kz, melde_studiengang_kz, lgartcode
|
||||
FROM
|
||||
gruppen gr
|
||||
GROUP BY
|
||||
mitarbeiter_uid, studiensemester_kurzbz, lehreinheit_id, studiengang_kz, melde_studiengang_kz, lgartcode
|
||||
ORDER BY
|
||||
mitarbeiter_uid, studiensemester_kurzbz, lehreinheit_id, studiengang_kz, melde_studiengang_kz, lgartcode";
|
||||
|
||||
$lehrgaengeDistributions = [];
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
while($row = $this->db_fetch_object())
|
||||
{
|
||||
// group by properties
|
||||
$lehrgaengeDistributions
|
||||
[$row->mitarbeiter_uid]
|
||||
[$row->studiensemester_kurzbz]
|
||||
[$row->lehreinheit_id]
|
||||
[$row->studiengang_kz]
|
||||
= $row;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler bei der Datenbankabfrage';
|
||||
return false;
|
||||
}
|
||||
|
||||
return $lehrgaengeDistributions;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -200,7 +200,7 @@ class LehreListHelper
|
||||
//Studierende der LV laden und in ein Array schreiben
|
||||
|
||||
$qry = 'SELECT
|
||||
distinct on(nachname, vorname, person_id) vorname, nachname, wahlname, matrikelnr, public.tbl_student.student_uid,
|
||||
distinct on(nachname, vorname, public.tbl_benutzer.person_id) vorname, nachname, wahlname, matrikelnr, public.tbl_student.student_uid,
|
||||
tbl_studentlehrverband.semester, tbl_studentlehrverband.verband, tbl_studentlehrverband.gruppe,
|
||||
(SELECT status_kurzbz FROM public.tbl_prestudentstatus
|
||||
WHERE prestudent_id=tbl_student.prestudent_id
|
||||
@@ -209,7 +209,8 @@ class LehreListHelper
|
||||
tbl_note.lkt_ueberschreibbar, tbl_note.anmerkung, tbl_mitarbeiter.mitarbeiter_uid, tbl_person.matr_nr, tbl_person.geschlecht, tbl_studiengang.kurzbzlang,
|
||||
tbl_mobilitaet.mobilitaetstyp_kurzbz, tbl_zeugnisnote.note,
|
||||
(CASE WHEN bis.tbl_mobilitaet.studiensemester_kurzbz = vw_student_lehrveranstaltung.studiensemester_kurzbz THEN 1 ELSE 0 END) as doubledegree,
|
||||
(tbl_bisio.bis::timestamp - tbl_bisio.von::timestamp) as daysout
|
||||
(tbl_bisio.bis::timestamp - tbl_bisio.von::timestamp) as daysout,
|
||||
public.tbl_prestudent.gsstudientyp_kurzbz as ddtype
|
||||
FROM
|
||||
campus.vw_student_lehrveranstaltung
|
||||
JOIN public.tbl_benutzer USING(uid)
|
||||
@@ -223,6 +224,7 @@ class LehreListHelper
|
||||
LEFT JOIN bis.tbl_bisio ON(uid=tbl_bisio.student_uid)
|
||||
LEFT JOIN public.tbl_studiengang ON(tbl_student.studiengang_kz=tbl_studiengang.studiengang_kz)
|
||||
LEFT JOIN bis.tbl_mobilitaet USING(prestudent_id)
|
||||
LEFT JOIN public.tbl_prestudent USING(prestudent_id)
|
||||
WHERE
|
||||
vw_student_lehrveranstaltung.lehrveranstaltung_id='.$this->db->db_add_param($this->lvid, FHC_INTEGER).' AND
|
||||
vw_student_lehrveranstaltung.studiensemester_kurzbz='.$this->db->db_add_param($this->studiensemester);
|
||||
@@ -231,7 +233,7 @@ class LehreListHelper
|
||||
if($this->lehreinheit!='')
|
||||
$qry.=' AND vw_student_lehrveranstaltung.lehreinheit_id='.$this->db->db_add_param($this->lehreinheit, FHC_INTEGER);
|
||||
|
||||
$qry.=' ORDER BY nachname, vorname, person_id, daysout DESC, doubledegree DESC';
|
||||
$qry.=' ORDER BY nachname, vorname, public.tbl_benutzer.person_id, daysout DESC, doubledegree DESC';
|
||||
|
||||
$stsem_obj = new studiensemester();
|
||||
$stsem_obj->load($this->studiensemester);
|
||||
@@ -263,8 +265,15 @@ class LehreListHelper
|
||||
|
||||
//Outgoing
|
||||
if($row->bisio_id != '' && $row->status != 'Incoming' && ($row->bis > $stsemdatumvon || $row->bis == '')
|
||||
&& $row->von < $stsemdatumbis && (anzahlTage($row->von, $row->bis) >= 30))
|
||||
&& $row->von < $stsemdatumbis && (anzahlTage($row->von, $row->bis) >= 30)) {
|
||||
$zusatz .= '(o)(ab '.$datum->formatDatum($row->von, 'd.m.Y').')';
|
||||
} else if ($row->bisio_id != '' && $row->status != 'Incoming' && ($row->von > $stsemdatumvon || $row->von == '')) {
|
||||
// if bis datum is not yet known but von is available already
|
||||
$zusatz .= '(o)(ab '.$datum->formatDatum($row->von, 'd.m.Y').')';
|
||||
} else if ($row->bisio_id != '' && $row->status != 'Incoming' && ($row->von <= $stsemdatumvon || $row->von == '') && ($row->bis == '' || $row->bis > date('Y-m-d'))){
|
||||
$zusatz .= '(o)(ab '.$datum->formatDatum($row->von, 'd.m.Y').')';
|
||||
}
|
||||
|
||||
|
||||
if($row->lkt_ueberschreibbar == 'f') // angerechnet / intern angerechnet / nicht zugelassen
|
||||
$zusatz.= '('. $row->anmerkung. ')';
|
||||
@@ -275,8 +284,13 @@ class LehreListHelper
|
||||
if($row->stg_kz_student==$a_o_kz) //Außerordentliche Studierende
|
||||
$zusatz.='(a.o.)';
|
||||
|
||||
if(($row->mobilitaetstyp_kurzbz != '') && ($row->doubledegree == 1)) //Double Degree Student
|
||||
$zusatz .= '(d.d.)';
|
||||
if(($row->mobilitaetstyp_kurzbz != '') && ($row->doubledegree == 1)) {
|
||||
//Double Degree Student
|
||||
$zusatz .= '(d.d.';
|
||||
if($row->ddtype == 'Intern') $zusatz .= 'i.)';
|
||||
else if ($row->ddtype == 'Extern') $zusatz .='o.)';
|
||||
else $zusatz .= ')';
|
||||
}
|
||||
|
||||
if(($row->wahlname != ''))
|
||||
{
|
||||
|
||||
@@ -1073,7 +1073,7 @@ class lehrstunde extends basis_db
|
||||
}
|
||||
|
||||
/**
|
||||
* Holt Studenplandaten.
|
||||
* Holt Stundenplandaten.
|
||||
*
|
||||
* @param $db_stpl_table
|
||||
* @param null $lehrveranstaltung_id
|
||||
|
||||
@@ -70,6 +70,7 @@ class lehrveranstaltung extends basis_db
|
||||
public $farbe;
|
||||
public $lehrauftrag=true;
|
||||
public $lehrveranstaltung_template_id; // integer
|
||||
public $evaluierung=true; // boolean
|
||||
|
||||
|
||||
public $studienplan_lehrveranstaltung_id;
|
||||
@@ -170,6 +171,7 @@ class lehrveranstaltung extends basis_db
|
||||
$this->benotung = $this->db_parse_bool($row->benotung);
|
||||
$this->lvinfo = $this->db_parse_bool($row->lvinfo);
|
||||
$this->lehrauftrag = $this->db_parse_bool($row->lehrauftrag);
|
||||
$this->evaluierung = $this->db_parse_bool($row->evaluierung);
|
||||
|
||||
// FIXME: LV-Bezeichnung richtig mehrsprachig machen
|
||||
// Zwischenzeitlich 'Italian' zum bezeichnung_arr dazugegeben
|
||||
@@ -244,6 +246,7 @@ class lehrveranstaltung extends basis_db
|
||||
$lv_obj->benotung = $this->db_parse_bool($row->benotung);
|
||||
$lv_obj->lvinfo = $this->db_parse_bool($row->lvinfo);
|
||||
$lv_obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag);
|
||||
$lv_obj->evaluierung = $this->db_parse_bool($row->evaluierung);
|
||||
|
||||
$lv_obj->bezeichnung_arr['German'] = $row->bezeichnung;
|
||||
$lv_obj->bezeichnung_arr['English'] = $row->bezeichnung_english;
|
||||
@@ -394,6 +397,7 @@ class lehrveranstaltung extends basis_db
|
||||
$lv_obj->benotung = $this->db_parse_bool($row->benotung);
|
||||
$lv_obj->lvinfo = $this->db_parse_bool($row->lvinfo);
|
||||
$lv_obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag);
|
||||
$lv_obj->evaluierung = $this->db_parse_bool($row->evaluierung);
|
||||
|
||||
$lv_obj->bezeichnung_arr['German'] = $row->bezeichnung;
|
||||
$lv_obj->bezeichnung_arr['Italian'] = $row->bezeichnung;
|
||||
@@ -524,6 +528,7 @@ class lehrveranstaltung extends basis_db
|
||||
$lv_obj->benotung = $this->db_parse_bool($row->benotung);
|
||||
$lv_obj->lvinfo = $this->db_parse_bool($row->lvinfo);
|
||||
$lv_obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag);
|
||||
$lv_obj->evaluierung = $this->db_parse_bool($row->evaluierung);
|
||||
|
||||
$lv_obj->bezeichnung_arr['German'] = $row->bezeichnung;
|
||||
$lv_obj->bezeichnung_arr['English'] = $row->bezeichnung_english;
|
||||
@@ -607,6 +612,7 @@ class lehrveranstaltung extends basis_db
|
||||
$lv_obj->benotung = $this->db_parse_bool($row->benotung);
|
||||
$lv_obj->lvinfo = $this->db_parse_bool($row->lvinfo);
|
||||
$lv_obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag);
|
||||
$lv_obj->evaluierung = $this->db_parse_bool($row->evaluierung);
|
||||
|
||||
$lv_obj->bezeichnung_arr['German'] = $row->bezeichnung;
|
||||
$lv_obj->bezeichnung_arr['English'] = $row->bezeichnung_english;
|
||||
@@ -779,7 +785,7 @@ class lehrveranstaltung extends basis_db
|
||||
insertvon, planfaktor, planlektoren, planpersonalkosten, plankostenprolektor, updateamum, updatevon, sort,
|
||||
zeugnis, projektarbeit, sprache, koordinator, bezeichnung_english, orgform_kurzbz, incoming, lehrtyp_kurzbz, oe_kurzbz,
|
||||
raumtyp_kurzbz, anzahlsemester, semesterwochen, lvnr, semester_alternativ, farbe, lehrveranstaltung_template_id,sws,lvs,alvs,lvps,las,benotung,lvinfo,
|
||||
lehrauftrag, lehrmodus_kurzbz) VALUES ('.
|
||||
lehrauftrag, lehrmodus_kurzbz, evaluierung) VALUES ('.
|
||||
$this->db_add_param($this->studiengang_kz). ', '.
|
||||
$this->db_add_param($this->bezeichnung). ', '.
|
||||
$this->db_add_param($this->kurzbz). ', '.
|
||||
@@ -824,7 +830,8 @@ class lehrveranstaltung extends basis_db
|
||||
$this->db_add_param($this->benotung, FHC_BOOLEAN).','.
|
||||
$this->db_add_param($this->lvinfo, FHC_BOOLEAN).','.
|
||||
$this->db_add_param($this->lehrauftrag, FHC_BOOLEAN).','.
|
||||
$this->db_add_param($this->lehrmodus_kurzbz)
|
||||
$this->db_add_param($this->lehrmodus_kurzbz).','.
|
||||
$this->db_add_param($this->evaluierung, FHC_BOOLEAN)
|
||||
.');';
|
||||
}
|
||||
else
|
||||
@@ -880,7 +887,8 @@ class lehrveranstaltung extends basis_db
|
||||
'las = '.$this->db_add_param($this->las).', '.
|
||||
'benotung = '.$this->db_add_param($this->benotung, FHC_BOOLEAN).', '.
|
||||
'lvinfo = '.$this->db_add_param($this->lvinfo, FHC_BOOLEAN).', '.
|
||||
'lehrauftrag = '.$this->db_add_param($this->lehrauftrag, FHC_BOOLEAN).' '.
|
||||
'lehrauftrag = '.$this->db_add_param($this->lehrauftrag, FHC_BOOLEAN).', '.
|
||||
'evaluierung = '.$this->db_add_param($this->evaluierung, FHC_BOOLEAN).' '.
|
||||
'WHERE lehrveranstaltung_id = ' . $this->db_add_param($this->lehrveranstaltung_id, FHC_INTEGER, false) . ';';
|
||||
}
|
||||
|
||||
@@ -991,6 +999,7 @@ class lehrveranstaltung extends basis_db
|
||||
$lv_obj->benotung = $this->db_parse_bool($row->benotung);
|
||||
$lv_obj->lvinfo = $this->db_parse_bool($row->lvinfo);
|
||||
$lv_obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag);
|
||||
$lv_obj->evaluierung = $this->db_parse_bool($row->evaluierung);
|
||||
|
||||
$lv_obj->bezeichnung_arr['German'] = $row->bezeichnung;
|
||||
$lv_obj->bezeichnung_arr['English'] = $row->bezeichnung_english;
|
||||
@@ -1086,6 +1095,7 @@ class lehrveranstaltung extends basis_db
|
||||
$l->benotung = $this->db_parse_bool($row->benotung);
|
||||
$l->lvinfo = $this->db_parse_bool($row->lvinfo);
|
||||
$l->lehrauftrag = $this->db_parse_bool($row->lehrauftrag);
|
||||
$l->evaluierung = $this->db_parse_bool($row->evaluierung);
|
||||
|
||||
$l->bezeichnung_arr['German'] = $row->bezeichnung;
|
||||
$l->bezeichnung_arr['English'] = $row->bezeichnung_english;
|
||||
@@ -1170,6 +1180,7 @@ class lehrveranstaltung extends basis_db
|
||||
$lv_obj->benotung = $this->db_parse_bool($row->benotung);
|
||||
$lv_obj->lvinfo = $this->db_parse_bool($row->lvinfo);
|
||||
$lv_obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag);
|
||||
$lv_obj->evaluierung = $this->db_parse_bool($row->evaluierung);
|
||||
|
||||
$lv_obj->bezeichnung_arr['German'] = $row->bezeichnung;
|
||||
$lv_obj->bezeichnung_arr['English'] = $row->bezeichnung_english;
|
||||
@@ -1271,6 +1282,7 @@ class lehrveranstaltung extends basis_db
|
||||
$obj->benotung = $this->db_parse_bool($row->benotung);
|
||||
$obj->lvinfo = $this->db_parse_bool($row->lvinfo);
|
||||
$obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag);
|
||||
$obj->evaluierung = $this->db_parse_bool($row->evaluierung);
|
||||
|
||||
$obj->bezeichnung_arr['German'] = $row->bezeichnung;
|
||||
$obj->bezeichnung_arr['English'] = $row->bezeichnung_english;
|
||||
@@ -1396,6 +1408,7 @@ class lehrveranstaltung extends basis_db
|
||||
$obj->lvinfo =$this->db_parse_bool( $lv->lvinfo);
|
||||
$obj->zeugnis = $this->db_parse_bool($lv->zeugnis);
|
||||
$obj->lehrauftrag = $this->db_parse_bool($lv->lehrauftrag);
|
||||
$obj->evaluierung = $this->db_parse_bool($lv->evaluierung);
|
||||
|
||||
$values[] = $obj;
|
||||
|
||||
@@ -1422,6 +1435,7 @@ class lehrveranstaltung extends basis_db
|
||||
$obj->lvinfo =$this->db_parse_bool( $this->lvinfo);
|
||||
$obj->zeugnis = $this->db_parse_bool($this->zeugnis);
|
||||
$obj->lehrauftrag = $this->db_parse_bool($this->lehrauftrag);
|
||||
$obj->evaluierung = $this->db_parse_bool($this->evaluierung);
|
||||
|
||||
$values[] = $obj;
|
||||
}
|
||||
@@ -1476,6 +1490,7 @@ class lehrveranstaltung extends basis_db
|
||||
$obj->export = $lv->export;
|
||||
$obj->genehmigung = $lv->genehmigung;
|
||||
$obj->lehrauftrag = $lv->lehrauftrag;
|
||||
$obj->evaluierung = $lv->evaluierung;
|
||||
$obj->lehre = $lv->lehre;
|
||||
$obj->children = array();
|
||||
if(count($lv->childs) > 0)
|
||||
@@ -1507,6 +1522,7 @@ class lehrveranstaltung extends basis_db
|
||||
$obj->zeugnis = $this->db_parse_bool($this->zeugnis);
|
||||
$obj->curriculum = $this->db_parse_bool($this->curriculum);
|
||||
$obj->lehrauftrag = $this->lehrauftrag;
|
||||
$obj->evaluierung = $this->db_parse_bool($this->evaluierung);
|
||||
|
||||
$values[] = $obj;
|
||||
}
|
||||
@@ -1613,6 +1629,7 @@ class lehrveranstaltung extends basis_db
|
||||
$lv_obj->benotung = $this->db_parse_bool($row->benotung);
|
||||
$lv_obj->lvinfo = $this->db_parse_bool($row->lvinfo);
|
||||
$lv_obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag);
|
||||
$lv_obj->evaluierung = $this->db_parse_bool($row->evaluierung);
|
||||
|
||||
$lv_obj->bezeichnung_arr['German'] = $row->bezeichnung;
|
||||
$lv_obj->bezeichnung_arr['English'] = $row->bezeichnung_english;
|
||||
@@ -1700,6 +1717,7 @@ class lehrveranstaltung extends basis_db
|
||||
$lv_obj->benotung = $this->db_parse_bool($row->benotung);
|
||||
$lv_obj->lvinfo = $this->db_parse_bool($row->lvinfo);
|
||||
$lv_obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag);
|
||||
$lv_obj->evaluierung = $this->db_parse_bool($row->evaluierung);
|
||||
|
||||
$lv_obj->bezeichnung_arr['German'] = $row->bezeichnung;
|
||||
$lv_obj->bezeichnung_arr['English'] = $row->bezeichnung_english;
|
||||
@@ -1873,6 +1891,7 @@ class lehrveranstaltung extends basis_db
|
||||
$lv_obj->benotung = $this->db_parse_bool($row->benotung);
|
||||
$lv_obj->lvinfo = $this->db_parse_bool($row->lvinfo);
|
||||
$lv_obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag);
|
||||
$lv_obj->evaluierung = $this->db_parse_bool($row->evaluierung);
|
||||
|
||||
$lv_obj->bezeichnung_arr['German'] = $row->bezeichnung;
|
||||
$lv_obj->bezeichnung_arr['English'] = $row->bezeichnung_english;
|
||||
@@ -2003,6 +2022,7 @@ class lehrveranstaltung extends basis_db
|
||||
$lv_obj->benotung = $this->db_parse_bool($row->benotung);
|
||||
$lv_obj->lvinfo = $this->db_parse_bool($row->lvinfo);
|
||||
$lv_obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag);
|
||||
$lv_obj->evaluierung = $this->db_parse_bool($row->evaluierung);
|
||||
|
||||
$lv_obj->studiengang_kurzbzlang = $row->studiengang_kurzbzlang;
|
||||
|
||||
@@ -2131,6 +2151,7 @@ class lehrveranstaltung extends basis_db
|
||||
$lv_obj->benotung = $this->db_parse_bool($row->benotung);
|
||||
$lv_obj->lvinfo = $this->db_parse_bool($row->lvinfo);
|
||||
$lv_obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag);
|
||||
$lv_obj->evaluierung = $this->db_parse_bool($row->evaluierung);
|
||||
|
||||
$lv_obj->bezeichnung_arr['German'] = $row->bezeichnung;
|
||||
$lv_obj->bezeichnung_arr['English'] = $row->bezeichnung_english;
|
||||
@@ -2402,6 +2423,7 @@ class lehrveranstaltung extends basis_db
|
||||
$obj->benotung = $this->db_parse_bool($row->benotung);
|
||||
$obj->lvinfo = $this->db_parse_bool($row->lvinfo);
|
||||
$obj->lehrauftrag = $this->db_parse_bool($row->lehrauftrag);
|
||||
$obj->evaluierung = $this->db_parse_bool($row->evaluierung);
|
||||
|
||||
$obj->bezeichnung_arr['German'] = $row->bezeichnung;
|
||||
$obj->bezeichnung_arr['English'] = $row->bezeichnung_english;
|
||||
@@ -2861,5 +2883,33 @@ class lehrveranstaltung extends basis_db
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public function getStudienplanLehrveranstaltung($lehrveranstaltung_id, $studienplan_id)
|
||||
{
|
||||
$qry = "SELECT studienplan_lehrveranstaltung_id
|
||||
FROM lehre.tbl_lehrveranstaltung
|
||||
JOIN lehre.tbl_studienplan_lehrveranstaltung USING(lehrveranstaltung_id)
|
||||
WHERE lehrveranstaltung_id = ".$this->db_add_param($lehrveranstaltung_id)."
|
||||
AND tbl_studienplan_lehrveranstaltung.studienplan_id = ".$this->db_add_param($studienplan_id);"";
|
||||
|
||||
if($result = $this->db_query($qry))
|
||||
{
|
||||
if($row = $this->db_fetch_object($result))
|
||||
{
|
||||
return $row->studienplan_lehrveranstaltung_id;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Ermitteln der studienplan_lehrveranstaltung_id';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg='Fehler bei Datenbankabfrage ' .$this->db_last_error();
|
||||
}
|
||||
return null;
|
||||
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
@@ -0,0 +1,300 @@
|
||||
<?php
|
||||
|
||||
require_once(dirname(__FILE__) . '/basis_db.class.php');
|
||||
require_once(dirname(__FILE__) . '/functions.inc.php');
|
||||
|
||||
class lehrveranstaltung_faktor extends basis_db
|
||||
{
|
||||
public $lehrveranstaltung_faktor_id; // serial
|
||||
public $lehrveranstaltung_id; // integer
|
||||
public $faktor; // numeric
|
||||
public $lehrform_kurzbz; // varchar(8)
|
||||
public $studiensemester_kurzbz_von; // varchar(16)
|
||||
public $studiensemester_kurzbz_bis; // varchar(16)
|
||||
public $insertamum; // timestamp
|
||||
public $insertvon; // varchar(32)
|
||||
public $updateamum; // timestamp
|
||||
public $updatevon; // varchar(32)
|
||||
public $lv_faktoren = array(); // lehrveranstaltung Objekt
|
||||
|
||||
|
||||
/**
|
||||
* Konstruktor
|
||||
* @param $lehrveranstaltung_faktor_id
|
||||
*/
|
||||
public function __construct($lehrveranstaltung_faktor_id = null)
|
||||
{
|
||||
parent::__construct();
|
||||
|
||||
if (!is_null($lehrveranstaltung_faktor_id))
|
||||
$this->load($lehrveranstaltung_faktor_id);
|
||||
}
|
||||
|
||||
|
||||
public function load($lehrveranstaltung_faktor_id)
|
||||
{
|
||||
if (!is_numeric($lehrveranstaltung_faktor_id))
|
||||
{
|
||||
$this->errormsg = 'Lehrveranstaltung_faktor_id muss eine gueltige Zahl sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry = "SELECT * FROM lehre.tbl_lehrveranstaltung_faktor
|
||||
WHERE lehrveranstaltung_faktor_id=".$this->db_add_param($lehrveranstaltung_faktor_id, FHC_INTEGER);
|
||||
|
||||
if (!$this->db_query($qry)) {
|
||||
$this->errormsg = 'Datensatz konnte nicht geladen werden';
|
||||
return false;
|
||||
}
|
||||
|
||||
if ($row = $this->db_fetch_object())
|
||||
{
|
||||
$this->lehrveranstaltung_faktor_id = $row->lehrveranstaltung_faktor_id;
|
||||
$this->lehrveranstaltung_id = $row->lehrveranstaltung_id;
|
||||
$this->faktor = $row->faktor;
|
||||
$this->studiensemester_kurzbz_von = $row->studiensemester_kurzbz_von;
|
||||
$this->studiensemester_kurzbz_bis = $row->studiensemester_kurzbz_bis;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public function loadByLV($lv_id)
|
||||
{
|
||||
|
||||
if (!is_numeric($lv_id))
|
||||
{
|
||||
$this->errormsg = 'Lehrveranstaltung_faktor_id muss eine gueltige Zahl sein';
|
||||
return false;
|
||||
}
|
||||
$qry = "SELECT *
|
||||
FROM lehre.tbl_lehrveranstaltung_faktor
|
||||
LEFT JOIN public.tbl_studiensemester vonstsem
|
||||
ON tbl_lehrveranstaltung_faktor.studiensemester_kurzbz_von = vonstsem.studiensemester_kurzbz
|
||||
LEFT JOIN public.tbl_studiensemester bisstem
|
||||
ON tbl_lehrveranstaltung_faktor.studiensemester_kurzbz_bis = bisstem.studiensemester_kurzbz
|
||||
WHERE lehrveranstaltung_id = ".$this->db_add_param($lv_id, FHC_INTEGER);
|
||||
|
||||
|
||||
if (!$result = $this->db_query($qry)) {
|
||||
$this->errormsg = 'Datensatz konnte nicht geladen werden';
|
||||
return false;
|
||||
}
|
||||
|
||||
while ($row = $this->db_fetch_object($result))
|
||||
{
|
||||
$lv_faktor_objekt = new lehrveranstaltung_faktor();
|
||||
|
||||
$lv_faktor_objekt->lehrveranstaltung_faktor_id = $row->lehrveranstaltung_faktor_id;
|
||||
$lv_faktor_objekt->lehrveranstaltung_id = $row->lehrveranstaltung_id;
|
||||
$lv_faktor_objekt->faktor = $row->faktor;
|
||||
$lv_faktor_objekt->lehrform_kurzbz = $row->lehrform_kurzbz;
|
||||
$lv_faktor_objekt->studiensemester_kurzbz_von = $row->studiensemester_kurzbz_von;
|
||||
$lv_faktor_objekt->studiensemester_kurzbz_bis = $row->studiensemester_kurzbz_bis;
|
||||
$this->lv_faktoren[] = $lv_faktor_objekt;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
public function checkIfExists($lv_id, $von = null, $bis = null, $id = null, $lehrform_kurzbz = null)
|
||||
{
|
||||
|
||||
if (!is_numeric($lv_id))
|
||||
{
|
||||
$this->errormsg = 'Lehrveranstaltung_faktor_id muss eine gueltige Zahl sein';
|
||||
return false;
|
||||
}
|
||||
$qry = "SELECT *
|
||||
FROM lehre.tbl_lehrveranstaltung_faktor
|
||||
LEFT JOIN public.tbl_studiensemester vonstsem
|
||||
ON tbl_lehrveranstaltung_faktor.studiensemester_kurzbz_von = vonstsem.studiensemester_kurzbz
|
||||
LEFT JOIN public.tbl_studiensemester bisstem
|
||||
ON tbl_lehrveranstaltung_faktor.studiensemester_kurzbz_bis = bisstem.studiensemester_kurzbz
|
||||
WHERE lehrveranstaltung_id = ".$this->db_add_param($lv_id, FHC_INTEGER);
|
||||
|
||||
if(!empty($von))
|
||||
{
|
||||
$qry .= "
|
||||
AND (bisstem.ende >= (
|
||||
SELECT start
|
||||
FROM public.tbl_studiensemester
|
||||
WHERE studiensemester_kurzbz = " . $this->db_add_param($von, FHC_STRING) . "
|
||||
)
|
||||
OR bisstem.ende IS NULL
|
||||
)";
|
||||
}
|
||||
|
||||
if(!empty($bis) && $bis !== "")
|
||||
{
|
||||
$qry .= "
|
||||
AND
|
||||
(vonstsem.start <= (
|
||||
SELECT ende
|
||||
FROM public.tbl_studiensemester
|
||||
WHERE studiensemester_kurzbz = " . $this->db_add_param($bis, FHC_STRING) . "
|
||||
))
|
||||
";
|
||||
}
|
||||
|
||||
if (!empty($id) && $id !== "")
|
||||
{
|
||||
$qry .= "
|
||||
AND
|
||||
lehrveranstaltung_faktor_id != ". $this->db_add_param($id, FHC_INTEGER);
|
||||
}
|
||||
|
||||
if (!empty($lehrform_kurzbz) && $lehrform_kurzbz !== "")
|
||||
{
|
||||
$qry .= "
|
||||
AND
|
||||
lehrform_kurzbz = ". $this->db_add_param($lehrform_kurzbz);
|
||||
}
|
||||
else
|
||||
{
|
||||
$qry .= "
|
||||
AND lehrform_kurzbz IS NULL
|
||||
";
|
||||
}
|
||||
|
||||
if ($result = $this->db_query($qry))
|
||||
{
|
||||
if ($this->db_num_rows($result) > 0)
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public function save($new = false)
|
||||
{
|
||||
if ($new)
|
||||
{
|
||||
$qry = 'INSERT INTO lehre.tbl_lehrveranstaltung_faktor (lehrveranstaltung_id, faktor, studiensemester_kurzbz_von, studiensemester_kurzbz_bis, lehrform_kurzbz, insertvon)
|
||||
VALUES ('. $this->db_add_param($this->lehrveranstaltung_id, FHC_INTEGER) . ', '.
|
||||
$this->db_add_param($this->faktor, FHC_INTEGER) . ', '.
|
||||
$this->db_add_param($this->studiensemester_kurzbz_von) . ', '.
|
||||
$this->db_add_param($this->studiensemester_kurzbz_bis) . ', '.
|
||||
$this->db_add_param($this->lehrform_kurzbz) . ', '.
|
||||
$this->db_add_param($this->insertvon) . ');';
|
||||
}
|
||||
else
|
||||
{
|
||||
$qry = "UPDATE lehre.tbl_lehrveranstaltung_faktor
|
||||
SET faktor = ". $this->db_add_param($this->faktor) ." ,
|
||||
studiensemester_kurzbz_von = ". $this->db_add_param($this->studiensemester_kurzbz_von) .",
|
||||
studiensemester_kurzbz_bis = ". $this->db_add_param($this->studiensemester_kurzbz_bis) .",
|
||||
lehrform_kurzbz = ". $this->db_add_param($this->lehrform_kurzbz) .",
|
||||
updatevon = ". $this->db_add_param($this->updatevon) .",
|
||||
updateamum = ". $this->db_add_param($this->updateamum) ."
|
||||
WHERE lehrveranstaltung_faktor_id = ". $this->db_add_param($this->lehrveranstaltung_faktor_id, FHC_INTEGER);
|
||||
}
|
||||
|
||||
|
||||
if ($this->db_query($qry))
|
||||
{
|
||||
if ($new)
|
||||
{
|
||||
$qry_id = "SELECT currval('lehre.lehrveranstaltung_faktor_id_seq') as id;";
|
||||
if($this->db_query($qry_id))
|
||||
{
|
||||
if($row = $this->db_fetch_object())
|
||||
{
|
||||
$this->db_query('COMMIT');
|
||||
return [
|
||||
'id' => $row->id,
|
||||
'lv_id' => $this->lehrveranstaltung_id,
|
||||
'faktor' => $this->faktor,
|
||||
'lehrform_kurzbz' => $this->lehrform_kurzbz,
|
||||
'von' => $this->studiensemester_kurzbz_von,
|
||||
'bis' => $this->studiensemester_kurzbz_bis
|
||||
];
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->db_query('ROLLBACK');
|
||||
return [
|
||||
'status' => 'error',
|
||||
'message' => 'Fehler beim Einfügen in die Datenbank:'
|
||||
];
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->db_query('ROLLBACK');
|
||||
return [
|
||||
'status' => 'error',
|
||||
'message' => 'Fehler beim Einfügen in die Datenbank:'
|
||||
];
|
||||
}
|
||||
}
|
||||
else
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
return [
|
||||
'status' => 'error',
|
||||
'message' => 'Fehler beim Einfügen in die Datenbank:'
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
public function getAkt($lv_id)
|
||||
{
|
||||
if (!is_numeric($lv_id))
|
||||
{
|
||||
$this->errormsg = 'Lehrveranstaltung_id muss eine gueltige Zahl sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry = "SELECT *
|
||||
FROM lehre.tbl_lehrveranstaltung_faktor
|
||||
LEFT JOIN public.tbl_studiensemester vonstsem
|
||||
ON tbl_lehrveranstaltung_faktor.studiensemester_kurzbz_von = vonstsem.studiensemester_kurzbz
|
||||
LEFT JOIN public.tbl_studiensemester bisstem
|
||||
ON tbl_lehrveranstaltung_faktor.studiensemester_kurzbz_bis = bisstem.studiensemester_kurzbz
|
||||
WHERE lehrveranstaltung_id = ".$this->db_add_param($lv_id, FHC_INTEGER) . "
|
||||
AND (vonstsem.start <= now() OR vonstsem.start IS NULL)
|
||||
AND (bisstem.ende >= now() OR bisstem.ende IS NULL)
|
||||
AND lehrform_kurzbz IS NULL
|
||||
ORDER BY vonstsem.start DESC LIMIT 1
|
||||
";
|
||||
|
||||
|
||||
if (!$this->db_query($qry)) {
|
||||
$this->errormsg = 'Datensatz konnte nicht geladen werden';
|
||||
return false;
|
||||
}
|
||||
|
||||
if ($row = $this->db_fetch_object())
|
||||
{
|
||||
$this->lehrveranstaltung_faktor_id = $row->lehrveranstaltung_faktor_id;
|
||||
$this->lehrveranstaltung_id = $row->lehrveranstaltung_id;
|
||||
$this->faktor = $row->faktor;
|
||||
$this->studiensemester_kurzbz_von = $row->studiensemester_kurzbz_von;
|
||||
$this->studiensemester_kurzbz_bis = $row->studiensemester_kurzbz_bis;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
public function deleteFaktor($id)
|
||||
{
|
||||
$qry = "DELETE FROM lehre.tbl_lehrveranstaltung_faktor
|
||||
WHERE lehrveranstaltung_faktor_id = ". $this->db_add_param($id, FHC_INTEGER);
|
||||
|
||||
if ($this->db_query($qry))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
return [
|
||||
'status' => 'error',
|
||||
'message' => 'Fehler beim Löschen aus der Datenbank:'
|
||||
];
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
@@ -1237,7 +1237,7 @@ class mitarbeiter extends benutzer
|
||||
".$this->db_add_param($datumvon)." BETWEEN COALESCE(vbskarenz.von, '1970-01-01') AND COALESCE(vbskarenz.bis, '2170-12-31')
|
||||
OR
|
||||
".$this->db_add_param($datumbis)." BETWEEN COALESCE(vbskarenz.von, '1970-01-01') AND COALESCE(vbskarenz.bis, '2170-12-31')
|
||||
)
|
||||
) LIMIT 1
|
||||
) NULLS FIRST LIMIT 1
|
||||
|
||||
)
|
||||
|
||||
@@ -325,7 +325,7 @@ class notiz extends basis_db
|
||||
FROM
|
||||
public.tbl_notiz
|
||||
LEFT JOIN public.tbl_notizzuordnung USING(notiz_id)
|
||||
WHERE 1=1";
|
||||
WHERE 1=1 AND tbl_notiz.typ IS NULL ";
|
||||
|
||||
if(!is_null($erledigt))
|
||||
{
|
||||
@@ -523,7 +523,7 @@ class notiz extends basis_db
|
||||
FROM
|
||||
public.tbl_notiz
|
||||
LEFT JOIN public.tbl_notizzuordnung USING(notiz_id)
|
||||
WHERE 1=1";
|
||||
WHERE 1=1 AND tbl_notiz.typ IS NULL ";
|
||||
|
||||
if(!is_null($erledigt))
|
||||
{
|
||||
|
||||
@@ -98,9 +98,9 @@ class person extends basis_db
|
||||
geschlecht, staatsbuergerschaft, geburtsnation, kurzbeschreibung, zugangscode, foto_sperre,
|
||||
matr_nr, bpk, wahlname";
|
||||
if ($hasUDF = $udf->personHasUDF())
|
||||
$qry .= ", udf_values ";
|
||||
$qry .= ", udf_values";
|
||||
|
||||
$qry .= "FROM public.tbl_person
|
||||
$qry .= " FROM public.tbl_person
|
||||
WHERE person_id = " . $this->db_add_param($personId, FHC_INTEGER);
|
||||
|
||||
if (!$this->db_query($qry))
|
||||
|
||||
@@ -121,7 +121,7 @@ class phrasen extends basis_db
|
||||
* Wobei x durch den Index+1 im Array zu ersetzten ist. zB "%2$s" um die Variable $value[1] auszugeben
|
||||
* naehere Infos siehe sprintf
|
||||
*
|
||||
* @param $key Key der Phrase
|
||||
* @param $key String Key der Phrase
|
||||
* @param $value Array mit Parametern fuer die Phrase
|
||||
*/
|
||||
public function t($key, $value=array())
|
||||
|
||||
@@ -705,6 +705,8 @@ class prestudent extends person
|
||||
$rolle->studienplan_bezeichnung = $row->studienplan_bezeichnung;
|
||||
$rolle->bestaetigtam = $row->bestaetigtam;
|
||||
$rolle->bestaetigtvon = $row->bestaetigtvon;
|
||||
$rolle->fgm = $row->fgm;
|
||||
$rolle->faktiv = $this->db_parse_bool($row->faktiv);
|
||||
$rolle->anmerkung_status = $row->anmerkung;
|
||||
$rolle->bewerbung_abgeschicktamum = $row->bewerbung_abgeschicktamum;
|
||||
$rolle->rt_stufe = $row->rt_stufe;
|
||||
@@ -1051,7 +1053,6 @@ class prestudent extends person
|
||||
//$ps->foto = $row->foto;
|
||||
$ps->anmerkungen = $row->anmerkungen;
|
||||
$ps->homepage = $row->homepage;
|
||||
$ps->svnr = $row->svnr;
|
||||
$ps->ersatzkennzeichen = $row->ersatzkennzeichen;
|
||||
$ps->familienstand = $row->familienstand;
|
||||
$ps->geschlecht = $row->geschlecht;
|
||||
|
||||
+169
-86
@@ -16,8 +16,8 @@
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
|
||||
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
|
||||
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
|
||||
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
|
||||
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
|
||||
*/
|
||||
/**
|
||||
* Klasse projektarbeit
|
||||
@@ -27,7 +27,7 @@ require_once(dirname(__FILE__).'/basis_db.class.php');
|
||||
|
||||
class projektarbeit extends basis_db
|
||||
{
|
||||
public $new; // boolean
|
||||
public $new; // boolean
|
||||
public $result = array(); // adresse Objekt
|
||||
|
||||
//Tabellenspalten
|
||||
@@ -59,6 +59,37 @@ class projektarbeit extends basis_db
|
||||
|
||||
public $abgabedatum;
|
||||
|
||||
// Welche Version der Projektarbeit wird ab welchem Semester verwendet
|
||||
private $_versions = array(
|
||||
'Diplom' => array(
|
||||
'SS2025' => 3,
|
||||
'SS2023' => 2,
|
||||
'SS2022' => 1
|
||||
),
|
||||
'Others' => array(
|
||||
'SS2025' => 2,
|
||||
'SS2022' => 1
|
||||
)
|
||||
);
|
||||
|
||||
// welche Vorlagen werden ab welcher Projekarbeitsversion verwendet (0 - erste "default" Vorlage)
|
||||
private $_projektarbeitVorlageMappings = array(
|
||||
'Begutachter' => array(
|
||||
2 => 'ProjektBeurteilungBAProzent',
|
||||
0 => 'ProjektBeurteilungBA'
|
||||
),
|
||||
'Senatsvorsitz' => array(
|
||||
2 => 'ProjektBeurteilungBAProzent',
|
||||
0 => 'ProjektBeurteilungBA'
|
||||
),
|
||||
'Erstbegutachter' => array(
|
||||
3 => 'ProjektBeurteilungMAProzent',
|
||||
0 => 'ProjektBeurteilungMAErst'
|
||||
),
|
||||
'Zweitbegutachter' => array(
|
||||
0 => 'ProjektBeurteilungMAZweit'
|
||||
)
|
||||
);
|
||||
|
||||
/**
|
||||
* Konstruktor
|
||||
@@ -233,25 +264,25 @@ class projektarbeit extends basis_db
|
||||
$qry='BEGIN; INSERT INTO lehre.tbl_projektarbeit (projekttyp_kurzbz, titel, lehreinheit_id, student_uid, firma_id, note, punkte,
|
||||
beginn, ende, faktor, freigegeben, gesperrtbis, stundensatz, gesamtstunden, themenbereich, anmerkung,
|
||||
insertamum, insertvon, updateamum, updatevon, titel_english, final) VALUES('.
|
||||
$this->db_add_param($this->projekttyp_kurzbz).', '.
|
||||
$this->db_add_param($this->titel).', '.
|
||||
$this->db_add_param($this->lehreinheit_id, FHC_INTEGER).', '.
|
||||
$this->db_add_param($this->student_uid).', '.
|
||||
$this->db_add_param($this->firma_id, FHC_INTEGER).', '.
|
||||
$this->db_add_param($this->note).', '.
|
||||
$this->db_add_param($this->punkte).', '.
|
||||
$this->db_add_param($this->beginn).', '.
|
||||
$this->db_add_param($this->ende).', '.
|
||||
$this->db_add_param($this->faktor).', '.
|
||||
$this->db_add_param($this->freigegeben, FHC_BOOLEAN).', '.
|
||||
$this->db_add_param($this->gesperrtbis).', '.
|
||||
$this->db_add_param($this->stundensatz).', '.
|
||||
$this->db_add_param($this->gesamtstunden).', '.
|
||||
$this->db_add_param($this->themenbereich).', '.
|
||||
$this->db_add_param($this->anmerkung).', now(), '.
|
||||
$this->db_add_param($this->insertvon).', now(), '.
|
||||
$this->db_add_param($this->updatevon).','.
|
||||
$this->db_add_param($this->titel_english).','.
|
||||
$this->db_add_param($this->projekttyp_kurzbz).', '.
|
||||
$this->db_add_param($this->titel).', '.
|
||||
$this->db_add_param($this->lehreinheit_id, FHC_INTEGER).', '.
|
||||
$this->db_add_param($this->student_uid).', '.
|
||||
$this->db_add_param($this->firma_id, FHC_INTEGER).', '.
|
||||
$this->db_add_param($this->note).', '.
|
||||
$this->db_add_param($this->punkte).', '.
|
||||
$this->db_add_param($this->beginn).', '.
|
||||
$this->db_add_param($this->ende).', '.
|
||||
$this->db_add_param($this->faktor).', '.
|
||||
$this->db_add_param($this->freigegeben, FHC_BOOLEAN).', '.
|
||||
$this->db_add_param($this->gesperrtbis).', '.
|
||||
$this->db_add_param($this->stundensatz).', '.
|
||||
$this->db_add_param($this->gesamtstunden).', '.
|
||||
$this->db_add_param($this->themenbereich).', '.
|
||||
$this->db_add_param($this->anmerkung).', now(), '.
|
||||
$this->db_add_param($this->insertvon).', now(), '.
|
||||
$this->db_add_param($this->updatevon).','.
|
||||
$this->db_add_param($this->titel_english).','.
|
||||
$this->db_add_param($this->final, FHC_BOOLEAN).');';
|
||||
}
|
||||
else
|
||||
@@ -471,92 +502,144 @@ class projektarbeit extends basis_db
|
||||
}
|
||||
|
||||
/**
|
||||
* Prüft ob Projektarbeit aktuell ist (ab bestimmtem Semester).
|
||||
* Masterarbeiten sind ab der Änderung zur Gewichtung der Punkte aktuell,
|
||||
* Bachelorarbeiten schon ab dem Umstieg auf das Online Beurteilungsformular.
|
||||
* Prüft ob Projektarbeit aktuell ist (also zurzeit online bewertet wird).
|
||||
* @param $projektarbeit_id
|
||||
* @return int -1 wenn Fehler, 0 wenn nicht aktuell, 1 wenn aktuell
|
||||
* @return boolean
|
||||
*/
|
||||
public function projektarbeitIsCurrent($projektarbeit_id)
|
||||
{
|
||||
$version = $this->getVersion($projektarbeit_id);
|
||||
// paarbeit sollte nur ab einem Studiensemester online bewertet werden
|
||||
$qry="SELECT 1
|
||||
FROM lehre.tbl_projektarbeit
|
||||
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
|
||||
JOIN public.tbl_studiensemester USING(studiensemester_kurzbz)
|
||||
WHERE projektarbeit_id=".$this->db_add_param($projektarbeit_id, FHC_INTEGER)."
|
||||
AND
|
||||
(
|
||||
(
|
||||
projekttyp_kurzbz = 'Diplom'
|
||||
AND tbl_studiensemester.start::date >= (
|
||||
SELECT start
|
||||
FROM public.tbl_studiensemester
|
||||
WHERE studiensemester_kurzbz = 'SS2023'
|
||||
)::date
|
||||
)
|
||||
OR
|
||||
(
|
||||
projekttyp_kurzbz <> 'Diplom'
|
||||
AND tbl_studiensemester.start::date >= (
|
||||
SELECT start
|
||||
FROM public.tbl_studiensemester
|
||||
WHERE studiensemester_kurzbz = 'SS2022'
|
||||
)::date
|
||||
)
|
||||
)
|
||||
LIMIT 1";
|
||||
|
||||
$result_sem=$this->db_query($qry);
|
||||
|
||||
if (!$result_sem)
|
||||
{
|
||||
$this->errormsg = "Fehler beim Ermitteln der Projektarbeit Aktualität";
|
||||
return -1;
|
||||
}
|
||||
|
||||
$num_rows = $this->db_num_rows($result_sem);
|
||||
|
||||
if ($num_rows < 0)
|
||||
{
|
||||
$this->errormsg = "Fehler beim Ermitteln der Anzahl der aktuellen Projektarbeiten";
|
||||
}
|
||||
|
||||
return $num_rows;
|
||||
return $version === null ? null : $version->isCurrent;
|
||||
}
|
||||
|
||||
/**
|
||||
* Prüft ob Projektarbeit aktuell ist (ab bestimmtem Semester), vor der Änderung zur Gewichtung der Punkte.
|
||||
* Holt sich Version der Projektarbeit.
|
||||
* Liefert auch mit, ob die Version die aktuellste ist.
|
||||
* z.B.: Masterarbeiten waren ab der Änderung zur Gewichtung der Punkte aktuell,
|
||||
* Bachelorarbeiten waren ab dem Umstieg auf das Online Beurteilungsformular aktuell.
|
||||
* @param $projektarbeit_id
|
||||
* @return int -1 wenn Fehler, 0 wenn nicht aktuell, 1 wenn aktuell
|
||||
* @return objekt mit Versionsinfo, null im Fehlerfall
|
||||
*/
|
||||
public function projektarbeitIsCurrentBeforeWeightening($projektarbeit_id)
|
||||
public function getVersion($projektarbeit_id)
|
||||
{
|
||||
// paarbeit sollte nur ab einem Studiensemester online bewertet werden
|
||||
$qry="SELECT 1
|
||||
FROM lehre.tbl_projektarbeit
|
||||
$qry="
|
||||
SELECT
|
||||
CASE
|
||||
WHEN semesters_diplom.studiensemester_kurzbz IS NOT NULL
|
||||
THEN semesters_diplom.studiensemester_kurzbz
|
||||
ELSE semesters.studiensemester_kurzbz
|
||||
END AS version_studiensemester_kurzbz,
|
||||
pa.projekttyp_kurzbz
|
||||
FROM
|
||||
lehre.tbl_projektarbeit pa
|
||||
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
|
||||
JOIN public.tbl_studiensemester USING(studiensemester_kurzbz)
|
||||
WHERE projektarbeit_id=".$this->db_add_param($projektarbeit_id, FHC_INTEGER)."
|
||||
AND tbl_studiensemester.start::date >= (SELECT start FROM public.tbl_studiensemester WHERE studiensemester_kurzbz = 'SS2022')::date
|
||||
LIMIT 1";
|
||||
JOIN public.tbl_studiensemester sem USING(studiensemester_kurzbz)
|
||||
LEFT JOIN (
|
||||
SELECT
|
||||
start, studiensemester_kurzbz
|
||||
FROM
|
||||
public.tbl_studiensemester
|
||||
WHERE
|
||||
studiensemester_kurzbz IN (".$this->db_implode4SQL(array_keys($this->_versions['Others'])).")
|
||||
) semesters ON sem.start >= semesters.start AND pa.projekttyp_kurzbz <> 'Diplom'
|
||||
LEFT JOIN (
|
||||
SELECT
|
||||
start, studiensemester_kurzbz
|
||||
FROM
|
||||
public.tbl_studiensemester
|
||||
WHERE
|
||||
studiensemester_kurzbz IN (".$this->db_implode4SQL(array_keys($this->_versions['Diplom'])).")
|
||||
) semesters_diplom ON sem.start >= semesters_diplom.start AND pa.projekttyp_kurzbz = 'Diplom'
|
||||
WHERE
|
||||
projektarbeit_id=".$this->db_add_param($projektarbeit_id, FHC_INTEGER)."
|
||||
ORDER BY
|
||||
semesters.start DESC, semesters_diplom.start DESC
|
||||
LIMIT 1";
|
||||
|
||||
$result_sem=$this->db_query($qry);
|
||||
$errormsg = "Fehler beim Ermitteln der Projektarbeit Version";
|
||||
|
||||
if (!$result_sem)
|
||||
if ($this->db_query($qry))
|
||||
{
|
||||
$this->errormsg = "Fehler beim Ermitteln der Projektarbeit Aktualität";
|
||||
return -1;
|
||||
if ($row = $this->db_fetch_object())
|
||||
{
|
||||
// known project types
|
||||
if (isset($this->_versions[$row->projekttyp_kurzbz][$row->version_studiensemester_kurzbz]))
|
||||
{
|
||||
$row->versionNumber = $this->_versions[$row->projekttyp_kurzbz][$row->version_studiensemester_kurzbz];
|
||||
$row->isCurrent =
|
||||
$this->_versions[$row->projekttyp_kurzbz][$row->version_studiensemester_kurzbz]
|
||||
== max($this->_versions[$row->projekttyp_kurzbz]);
|
||||
|
||||
}
|
||||
elseif (isset($this->_versions['Others'][$row->version_studiensemester_kurzbz]))
|
||||
{
|
||||
$row->versionNumber = $this->_versions['Others'][$row->version_studiensemester_kurzbz];
|
||||
$row->isCurrent =
|
||||
$this->_versions['Others'][$row->version_studiensemester_kurzbz]
|
||||
== max($this->_versions['Others']);
|
||||
}
|
||||
else
|
||||
{
|
||||
$row->isCurrent = false;
|
||||
$row->versionNumber = 0;
|
||||
}
|
||||
return $row;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = $errormsg;
|
||||
return null;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = $errormsg;
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Holt Version einer Projektarbeit für eine Betreuerart.
|
||||
* @param $projektarbeit_id
|
||||
* @param $betreuerart_kurzbz
|
||||
* @return string Vorlagenname
|
||||
*/
|
||||
public function getVorlage($projektarbeit_id, $betreuerart_kurzbz)
|
||||
{
|
||||
$version = $this->getVersion($projektarbeit_id);
|
||||
|
||||
if ($version == null) return null;
|
||||
|
||||
$key = 0;
|
||||
if (isset($this->_projektarbeitVorlageMappings[$betreuerart_kurzbz]))
|
||||
{
|
||||
foreach ($this->_projektarbeitVorlageMappings[$betreuerart_kurzbz] as $versionNumber => $vorlage)
|
||||
{
|
||||
if ($versionNumber <= $version->versionNumber && $versionNumber > $key) $key = $versionNumber;
|
||||
}
|
||||
}
|
||||
|
||||
$num_rows = $this->db_num_rows($result_sem);
|
||||
return
|
||||
isset($this->_projektarbeitVorlageMappings[$betreuerart_kurzbz][$key])
|
||||
? $this->_projektarbeitVorlageMappings[$betreuerart_kurzbz][$key]
|
||||
: '';
|
||||
}
|
||||
|
||||
if ($num_rows < 0)
|
||||
/**
|
||||
* Holt alle möglichen, jemals verwendeten Projektarbeits-Vorlagen
|
||||
* @return array mit Vorlagennamen
|
||||
*/
|
||||
public function getAllVorlagen()
|
||||
{
|
||||
$vorlagen = array();
|
||||
foreach ($this->_projektarbeitVorlageMappings as $mappings)
|
||||
{
|
||||
$this->errormsg = "Fehler beim Ermitteln der Anzahl der aktuellen Projektarbeiten";
|
||||
$vorlagen = array_unique(array_merge($vorlagen, $mappings));
|
||||
}
|
||||
|
||||
return $num_rows;
|
||||
return $vorlagen;
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
@@ -464,6 +464,7 @@ class pruefungCis extends basis_db
|
||||
$obj->anmeldung_von= $row->anmeldung_von;
|
||||
$obj->anmeldung_bis = $row->anmeldung_bis;
|
||||
$obj->ort_kurzbz = $row->ort_kurzbz;
|
||||
$obj->anderer_raum = $row->anderer_raum;
|
||||
$obj->sammelklausur = $row->sammelklausur;
|
||||
array_push($this->termine, $obj);
|
||||
}
|
||||
@@ -646,6 +647,37 @@ class pruefungCis extends basis_db
|
||||
return false;
|
||||
}
|
||||
|
||||
public function getPruefungByStudiensemester($studiensemester_kurzbz)
|
||||
{
|
||||
if(empty($studiensemester_kurzbz))
|
||||
{
|
||||
$this->errormsg = "Kein Studiensemester übergeben.</br>";
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry = 'SELECT *
|
||||
FROM campus.tbl_lehrveranstaltung_pruefung
|
||||
JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id)
|
||||
JOIN campus.tbl_pruefung USING (pruefung_id)
|
||||
WHERE tbl_pruefung.studiensemester_kurzbz = ' . $this->db_add_param($studiensemester_kurzbz);
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
while($row = $this->db_fetch_object())
|
||||
{
|
||||
$obj = new stdClass();
|
||||
$obj->lehrveranstaltung_pruefung_id = $row->lehrveranstaltung_pruefung_id;
|
||||
$obj->lehrveranstaltung_id = $row->lehrveranstaltung_id;
|
||||
$obj->pruefung_id = $row->pruefung_id;
|
||||
$obj->storniert = $row->storniert;
|
||||
$obj->bezeichnung = $row->bezeichnung;
|
||||
array_push($this->lehrveranstaltungen, $obj);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Lädt alle Prüfung-Lehrveranstaltung Kombinationen
|
||||
* @return boolean true, wenn ok; false, im Fehlerfall
|
||||
|
||||
@@ -39,6 +39,7 @@ class pruefungsanmeldung extends basis_db {
|
||||
public $statusupdatevon; //varchar(32)
|
||||
public $statusupdateamum; //timestamp
|
||||
public $anrechnung_id; //integer
|
||||
public $ects; //integer
|
||||
public $pruefungstyp_kurzbz; //varchar(32)
|
||||
public $insertamum; // timestamp
|
||||
|
||||
@@ -94,7 +95,7 @@ class pruefungsanmeldung extends basis_db {
|
||||
|
||||
if($new)
|
||||
{
|
||||
$qry = 'INSERT INTO campus.tbl_pruefungsanmeldung (uid, pruefungstermin_id, lehrveranstaltung_id, status_kurzbz, wuensche, reihung, kommentar, anrechnung_id, pruefungstyp_kurzbz) VALUES ('
|
||||
$qry = 'INSERT INTO campus.tbl_pruefungsanmeldung (uid, pruefungstermin_id, lehrveranstaltung_id, status_kurzbz, wuensche, reihung, kommentar, anrechnung_id, pruefungstyp_kurzbz, ects) VALUES ('
|
||||
. $this->db_add_param($this->uid).', '
|
||||
. $this->db_add_param($this->pruefungstermin_id).', '
|
||||
. $this->db_add_param($this->lehrveranstaltung_id).', '
|
||||
@@ -103,7 +104,8 @@ class pruefungsanmeldung extends basis_db {
|
||||
. $this->db_add_param($this->reihung).', '
|
||||
. $this->db_add_param($this->kommentar).', '
|
||||
. $this->db_add_param($this->anrechnung_id).', '
|
||||
. $this->db_add_param($this->pruefungstyp_kurzbz).');';
|
||||
. $this->db_add_param($this->pruefungstyp_kurzbz).', '
|
||||
. $this->db_add_param($this->ects).');';
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -116,7 +118,8 @@ class pruefungsanmeldung extends basis_db {
|
||||
. 'reihung='.$this->db_add_param($this->reihung).', '
|
||||
. 'kommentar='.$this->db_add_param($this->kommentar).', '
|
||||
. 'anrechnung_id='.$this->db_add_param($this->anrechnung_id).', '
|
||||
. 'pruefungstyp_kurzbz='.$this->db_add_param($this->pruefungstyp_kurzbz)
|
||||
. 'pruefungstyp_kurzbz='.$this->db_add_param($this->pruefungstyp_kurzbz).', '
|
||||
. 'ects='.$this->db_add_param($this->ects)
|
||||
. ' WHERE pruefungsanmeldung_id='.$this->db_add_param($this->pruefungsanmeldung_id).';';
|
||||
}
|
||||
|
||||
@@ -167,6 +170,7 @@ class pruefungsanmeldung extends basis_db {
|
||||
$this->statusupdatevon = $row->statusupdatevon;
|
||||
$this->anrechnung_id = $row->anrechnung_id;
|
||||
$this->pruefungstyp_kurzbz = $row->pruefungstyp_kurzbz;
|
||||
$this->ects = $row->ects;
|
||||
$this->insertamum = $row->insertamum;
|
||||
}
|
||||
return true;
|
||||
@@ -221,6 +225,7 @@ class pruefungsanmeldung extends basis_db {
|
||||
$anmeldung->statusupdatevon = $row->statusupdatevon;
|
||||
$anmeldung->anrechnung_id = $row->anrechnung_id;
|
||||
$anmeldung->pruefungstyp_kurzbz = $row->pruefungstyp_kurzbz;
|
||||
$anmeldung->ects = $row->ects;
|
||||
array_push($anmeldungen, $anmeldung);
|
||||
}
|
||||
return $anmeldungen;
|
||||
@@ -280,6 +285,7 @@ class pruefungsanmeldung extends basis_db {
|
||||
$anmeldung->statusupdatevon = $row->statusupdatevon;
|
||||
$anmeldung->anrechnung_id = $row->anrechnung_id;
|
||||
$anmeldung->pruefungstyp_kurzbz = $row->pruefungstyp_kurzbz;
|
||||
$anmeldung->ects = $row->ects;
|
||||
$anmeldung->datum_anmeldung = $row->datum_anmeldung;
|
||||
array_push($anmeldungen, $anmeldung);
|
||||
}
|
||||
|
||||
@@ -37,6 +37,7 @@ class pruefungstermin extends basis_db{
|
||||
public $anmeldung_von; //date
|
||||
public $anmeldung_bis; //date
|
||||
public $ort_kurzbz; //varchar(16)
|
||||
public $anderer_raum; //text
|
||||
public $sammelklausur; //boolean
|
||||
|
||||
/**
|
||||
@@ -93,6 +94,7 @@ class pruefungstermin extends basis_db{
|
||||
$this->anmeldung_von= $row->anmeldung_von;
|
||||
$this->anmeldung_bis = $row->anmeldung_bis;
|
||||
$this->ort_kurzbz = $row->ort_kurzbz;
|
||||
$this->anderer_raum = $row->anderer_raum;
|
||||
$this->sammelklausur = $row->sammelklausur;
|
||||
}
|
||||
return true;
|
||||
@@ -179,7 +181,8 @@ class pruefungstermin extends basis_db{
|
||||
. 'teilnehmer_min='.$this->db_add_param($this->teilnehmer_min).', '
|
||||
. 'anmeldung_von='.$this->db_add_param($this->anmeldung_von).', '
|
||||
. 'anmeldung_bis='.$this->db_add_param($this->anmeldung_bis).', '
|
||||
. 'ort_kurzbz='.$this->db_add_param($this->ort_kurzbz).' '
|
||||
. 'ort_kurzbz='.$this->db_add_param($this->ort_kurzbz).', '
|
||||
. 'anderer_raum='.$this->db_add_param($this->anderer_raum).' '
|
||||
. 'WHERE pruefungstermin_id='.$this->db_add_param($this->pruefungstermin_id).';';
|
||||
}
|
||||
|
||||
@@ -228,6 +231,7 @@ class pruefungstermin extends basis_db{
|
||||
$obj->anmeldung_von= $row->anmeldung_von;
|
||||
$obj->anmeldung_bis = $row->anmeldung_bis;
|
||||
$obj->ort_kurzbz = $row->ort_kurzbz;
|
||||
$obj->anderer_raum = $row->anderer_raum;
|
||||
$obj->sammelklausur = $row->sammelklausur;
|
||||
array_push($this->result, $obj);
|
||||
}
|
||||
@@ -240,4 +244,20 @@ class pruefungstermin extends basis_db{
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public function delete($pruefungstermin_id)
|
||||
{
|
||||
$qry = "DELETE FROM campus.tbl_pruefungstermin WHERE pruefungstermin_id=".$this->db_add_param($pruefungstermin_id).";";
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg='Fehler beim Löschen des Eintrages';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -63,6 +63,7 @@ class reihungstest extends basis_db
|
||||
|
||||
public $zugangs_ueberpruefung = false; //boolean
|
||||
public $zugangscode; //smallint
|
||||
public $externe_ueberwachung = false; //boolean
|
||||
|
||||
|
||||
/**
|
||||
@@ -119,6 +120,7 @@ class reihungstest extends basis_db
|
||||
$this->aufnahmegruppe_kurzbz = $row->aufnahmegruppe_kurzbz;
|
||||
$this->zugangs_ueberpruefung = $this->db_parse_bool($row->zugangs_ueberpruefung);
|
||||
$this->zugangscode = $row->zugangscode;
|
||||
$this->externe_ueberwachung = $this->db_parse_bool($row->externe_ueberwachung);
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -234,7 +236,7 @@ class reihungstest extends basis_db
|
||||
|
||||
$qry = 'BEGIN; INSERT INTO public.tbl_reihungstest (studiengang_kz, ort_kurzbz, anmerkung, datum, uhrzeit,
|
||||
insertamum, insertvon, updateamum, updatevon, max_teilnehmer, oeffentlich, freigeschaltet,
|
||||
studiensemester_kurzbz, stufe, anmeldefrist, aufnahmegruppe_kurzbz, zugangs_ueberpruefung, zugangscode) VALUES('.
|
||||
studiensemester_kurzbz, stufe, anmeldefrist, aufnahmegruppe_kurzbz, zugangs_ueberpruefung, zugangscode, externe_ueberwachung) VALUES('.
|
||||
$this->db_add_param($this->studiengang_kz, FHC_INTEGER).', '.
|
||||
$this->db_add_param($this->ort_kurzbz).', '.
|
||||
$this->db_add_param($this->anmerkung).', '.
|
||||
@@ -250,7 +252,8 @@ class reihungstest extends basis_db
|
||||
$this->db_add_param($this->anmeldefrist).','.
|
||||
$this->db_add_param($this->aufnahmegruppe_kurzbz). ',' .
|
||||
$this->db_add_param($this->zugangs_ueberpruefung, FHC_BOOLEAN).','.
|
||||
$this->db_add_param($this->zugangscode) . ');';
|
||||
$this->db_add_param($this->zugangscode) . ','.
|
||||
$this->db_add_param($this->externe_ueberwachung, FHC_BOOLEAN) . ');';
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -270,7 +273,8 @@ class reihungstest extends basis_db
|
||||
'anmeldefrist='.$this->db_add_param($this->anmeldefrist).', '.
|
||||
'aufnahmegruppe_kurzbz='.$this->db_add_param($this->aufnahmegruppe_kurzbz).', '.
|
||||
'zugangs_ueberpruefung='.$this->db_add_param($this->zugangs_ueberpruefung, FHC_BOOLEAN).', '.
|
||||
'zugangscode='.$this->db_add_param($this->zugangscode).' '.
|
||||
'zugangscode='.$this->db_add_param($this->zugangscode).', '.
|
||||
'externe_ueberwachung='.$this->db_add_param($this->externe_ueberwachung, FHC_BOOLEAN).' '.
|
||||
'WHERE reihungstest_id='.$this->db_add_param($this->reihungstest_id, FHC_INTEGER, false).';';
|
||||
}
|
||||
|
||||
|
||||
@@ -322,5 +322,37 @@ class reservierung extends basis_db
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public function getReservierungen($ort_kurzbz, $datum)
|
||||
{
|
||||
$datum_obj = new Datum();
|
||||
if(!$datum_obj->checkDatum($datum))
|
||||
{
|
||||
$this->errormsg='Datum hat ein ungueltiges Format';
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry = "SELECT stunde FROM campus.tbl_reservierung
|
||||
WHERE
|
||||
ort_kurzbz=".$this->db_add_param($ort_kurzbz)." AND
|
||||
datum=".$this->db_add_param($datum);
|
||||
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
$result = array();
|
||||
while($row = $this->db_fetch_object())
|
||||
{
|
||||
$result[] = $row->stunde;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = "Prüfungstypen konnten nicht geladen werden.";
|
||||
return false;
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
+65
-20
@@ -18,12 +18,13 @@
|
||||
*
|
||||
* Authors: Cristina Hainberger <hainberg@technikum-wien.at>
|
||||
*/
|
||||
|
||||
require_once(dirname(__FILE__).'/../config/global.config.inc.php');
|
||||
require_once(dirname(__FILE__).'/basis_db.class.php');
|
||||
require_once(dirname(__FILE__).'/mail.class.php');
|
||||
require_once(dirname(__FILE__).'/vorlage.class.php');
|
||||
|
||||
const DEFAULT_SANCHO_HEADER_IMG = 'sancho_header_DEFAULT.jpg';
|
||||
const DEFAULT_SANCHO_FOOTER_IMG = 'sancho_footer_DEFAULT.jpg';
|
||||
const FALLBACK_SENDER = 'noreply';
|
||||
|
||||
/**
|
||||
* Send single Mail with Sancho Design and Layout.
|
||||
@@ -32,22 +33,66 @@ const DEFAULT_SANCHO_FOOTER_IMG = 'sancho_footer_DEFAULT.jpg';
|
||||
* to be replaced in the content template.
|
||||
* @param string $to Email-adress.
|
||||
* @param string $subject Subject of mail.
|
||||
* @param string $headerImg Filename of the specific Sancho header image.
|
||||
* @param string $footerImg
|
||||
* @param string $headerImg Filename of the specific Sancho header image, false if no header image
|
||||
* @param string $footerImg - false if no footer image
|
||||
* @param string $replyTo default Email-adress for reply.
|
||||
* @param string | array $cc
|
||||
* @return boolean True, if succeeded.
|
||||
*/
|
||||
function sendSanchoMail($vorlage_kurzbz, $vorlage_data, $to, $subject, $headerImg = DEFAULT_SANCHO_HEADER_IMG, $footerImg = DEFAULT_SANCHO_FOOTER_IMG, $replyTo = '', $cc = '')
|
||||
{
|
||||
$from = 'sancho@'. DOMAIN;
|
||||
$sanchoHeader_img = dirname(__FILE__). '/../skin/images/sancho/'. $headerImg;
|
||||
$sanchoFooter_img = dirname(__FILE__). '/../skin/images/sancho/'. $footerImg;
|
||||
function sendSanchoMail($vorlage_kurzbz, $vorlage_data, $to, $subject, $headerImg = '', $footerImg = '', $replyTo = '', $cc = '')
|
||||
{
|
||||
$from = ((defined('SANCHO_MAIL_DEFAULT_SENDER') && SANCHO_MAIL_DEFAULT_SENDER != '')
|
||||
? SANCHO_MAIL_DEFAULT_SENDER
|
||||
: FALLBACK_SENDER)
|
||||
. '@' . DOMAIN;
|
||||
|
||||
$image_path_prefix = dirname(__DIR__).'/'.(defined('SANCHO_MAIL_IMG_PATH') ? SANCHO_MAIL_IMG_PATH : '');
|
||||
$sanchoHeader_img = '';
|
||||
$sanchoFooter_img = '';
|
||||
$cid_header = '';
|
||||
$cid_footer = '';
|
||||
|
||||
if (!defined('SANCHO_MAIL_USE_IMAGES') || SANCHO_MAIL_USE_IMAGES)
|
||||
{
|
||||
if (isset($headerImg) && $headerImg != '')
|
||||
{
|
||||
// use provided header image
|
||||
$sanchoHeader_img = $headerImg;
|
||||
}
|
||||
elseif (defined('SANCHO_MAIL_HEADER_IMG') && SANCHO_MAIL_HEADER_IMG != '')
|
||||
{
|
||||
// use default header image
|
||||
$sanchoHeader_img = SANCHO_MAIL_HEADER_IMG;
|
||||
}
|
||||
|
||||
if ($sanchoHeader_img != '')
|
||||
{
|
||||
// set full image path
|
||||
$sanchoHeader_img = $image_path_prefix.$sanchoHeader_img;
|
||||
}
|
||||
|
||||
if (isset($footerImg) && $footerImg != '')
|
||||
{
|
||||
// use provided footer image
|
||||
$sanchoFooter_img = $footerImg;
|
||||
}
|
||||
elseif (defined('SANCHO_MAIL_FOOTER_IMG') && SANCHO_MAIL_FOOTER_IMG != '')
|
||||
{
|
||||
// use default footer image
|
||||
$sanchoFooter_img = SANCHO_MAIL_FOOTER_IMG;
|
||||
}
|
||||
|
||||
if ($sanchoFooter_img !== '')
|
||||
{
|
||||
// set full image path
|
||||
$sanchoFooter_img = $image_path_prefix.$sanchoFooter_img;
|
||||
}
|
||||
|
||||
// Set unique content id for embedding header and footer image
|
||||
$cid_header = uniqid();
|
||||
$cid_footer = uniqid();
|
||||
}
|
||||
|
||||
// Set unique content id for embedding header and footer image
|
||||
$cid_header = uniqid();
|
||||
$cid_footer = uniqid();
|
||||
|
||||
// Set specific mail content into specific content template
|
||||
$content = parseMailContent($vorlage_kurzbz, $vorlage_data);
|
||||
|
||||
@@ -63,22 +108,22 @@ function sendSanchoMail($vorlage_kurzbz, $vorlage_data, $to, $subject, $headerIm
|
||||
|
||||
// Send mail
|
||||
$mail = new Mail($to, $from, $subject, $body);
|
||||
|
||||
// * embed the images
|
||||
$mail->addEmbeddedImage($sanchoHeader_img, 'image/jpg', '', $cid_header);
|
||||
$mail->addEmbeddedImage($sanchoFooter_img, 'image/jpg', '', $cid_footer);
|
||||
|
||||
// * embed the images if needed
|
||||
if ($sanchoHeader_img != '') $mail->addEmbeddedImage($sanchoHeader_img, 'image/jpg', '', $cid_header);
|
||||
if ($sanchoFooter_img != '') $mail->addEmbeddedImage($sanchoFooter_img, 'image/jpg', '', $cid_footer);
|
||||
|
||||
// * Set reply-to
|
||||
if (isset($replyTo) && $replyTo != '')
|
||||
$mail->setReplyTo($replyTo);
|
||||
|
||||
|
||||
// * Set cc
|
||||
if (isset($cc) && $cc != '')
|
||||
$mail->setCCRecievers($cc);
|
||||
|
||||
// * embed the html content
|
||||
$mail->setHTMLContent($body);
|
||||
|
||||
|
||||
return $mail->send();
|
||||
}
|
||||
|
||||
@@ -95,7 +140,7 @@ function parseMailContent($vorlage_kurzbz, $vorlage_data)
|
||||
{
|
||||
$vorlage = new Vorlage();
|
||||
$vorlage->getAktuelleVorlage('etw', $vorlage_kurzbz);
|
||||
|
||||
|
||||
// If the text and the subject of the template are not empty
|
||||
if (!empty($vorlage->text))
|
||||
{
|
||||
|
||||
@@ -1532,7 +1532,7 @@ class WavFile
|
||||
} else {
|
||||
// replace
|
||||
for ($i = 0; $i < $sampleBytes; ++$i) {
|
||||
$this->_samples{$offset + $i} = $sampleBinary{$i};
|
||||
$this->_samples[$offset + $i] = $sampleBinary[$i];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1435,7 +1435,7 @@ class Securimage
|
||||
$length = strlen($code['display']);
|
||||
|
||||
for($i = 0; $i < $length; ++$i) {
|
||||
$letter = $code['display']{$i};
|
||||
$letter = $code['display'][$i];
|
||||
$letters[] = $letter;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -513,6 +513,7 @@ class statistik extends basis_db
|
||||
$this->json=array();
|
||||
$this->countRows=0;
|
||||
set_time_limit(600);
|
||||
$parseHtml = (strpos($this->preferences, 'parseHTML: true') !== false);
|
||||
|
||||
// In case a decryption function is used then perform password substitution
|
||||
$this->sql = $this->replaceSQLDecryptionPassword($this->sql);
|
||||
@@ -565,7 +566,13 @@ class statistik extends basis_db
|
||||
for($spalte=0;$spalte<$anzahl_spalten;$spalte++)
|
||||
{
|
||||
$name = $this->db_field_name($this->data,$spalte);
|
||||
$this->html.= '<td>'.$this->convert_html_chars($row->$name).'</td>';
|
||||
if ($parseHtml) {
|
||||
// HTML direkt rendern
|
||||
$this->html .= '<td>'.($row->$name).'</td>';
|
||||
} else {
|
||||
// wie bisher escapen
|
||||
$this->html .= '<td>'.$this->convert_html_chars($row->$name).'</td>';
|
||||
}
|
||||
// Umwandeln von Punkt in Komma bei Float-Werten
|
||||
if (is_numeric($row->$name))
|
||||
{
|
||||
|
||||
@@ -294,7 +294,6 @@ class student extends benutzer
|
||||
$l->gebort=$row->gebort;
|
||||
$l->gebzeit=$row->gebzeit;
|
||||
$l->familienstand = $row->familienstand;
|
||||
$l->svnr=$row->svnr;
|
||||
$l->foto=$row->foto;
|
||||
$l->anmerkungen=$row->anmerkung;
|
||||
$l->aktiv=$this->db_parse_bool($row->aktiv);
|
||||
@@ -649,7 +648,7 @@ class student extends benutzer
|
||||
{
|
||||
$sql_query = "SELECT
|
||||
person_id, staatsbuergerschaft, geburtsnation, sprache, anrede, titelpost, titelpre,
|
||||
nachname, vorname, vornamen, gebdatum, gebort, gebzeit, anmerkung, homepage, svnr,
|
||||
nachname, vorname, vornamen, gebdatum, gebort, gebzeit, anmerkung, homepage,
|
||||
ersatzkennzeichen, familienstand, geschlecht, anzahlkinder, tbl_person.aktiv, kurzbeschreibung,
|
||||
tbl_benutzer.aktiv as bnaktiv, tbl_student.studiengang_kz, tbl_student.semester, tbl_student.verband,
|
||||
tbl_student.gruppe, tbl_student.prestudent_id, tbl_benutzer.uid
|
||||
@@ -691,7 +690,6 @@ class student extends benutzer
|
||||
$l->gebzeit = $row->gebzeit;
|
||||
$l->anmerkungen = $row->anmerkung;
|
||||
$l->homepage = $row->homepage;
|
||||
$l->svnr = $row->svnr;
|
||||
$l->ersatzkennzeichen = $row->ersatzkennzeichen;
|
||||
$l->familienstand = $row->familienstand;
|
||||
$l->geschlecht = $row->geschlecht;
|
||||
|
||||
@@ -240,13 +240,38 @@ function checkZeilenUmbruch()
|
||||
);
|
||||
}
|
||||
|
||||
// Digitale Anwesenheiten
|
||||
if(defined('CIS_LEHRVERANSTALTUNG_ANWESENHEIT_ANZEIGEN') && CIS_LEHRVERANSTALTUNG_ANWESENHEIT_ANZEIGEN && $angemeldet
|
||||
&& (!defined('CIS_LEHRVERANSTALTUNG_ANWESENHEIT_ANZEIGEN_STG') || in_array($lv->studiengang_kz, unserialize(CIS_LEHRVERANSTALTUNG_ANWESENHEIT_ANZEIGEN_STG)))
|
||||
&& (!defined('CIS_LEHRVERANSTALTUNG_ANWESENHEIT_ANZEIGEN_LVA') || in_array($lv->lehrveranstaltung_id, unserialize(CIS_LEHRVERANSTALTUNG_ANWESENHEIT_ANZEIGEN_LVA)))
|
||||
&& ($rechte->isBerechtigt('extension/anw_r_ent_assistenz')
|
||||
|| $rechte->isBerechtigt('extension/anw_r_lektor')
|
||||
|| $rechte->isBerechtigt('extension/anw_r_student')
|
||||
|| $rechte->isBerechtigt('extension/anw_r_full_assistenz')))
|
||||
{
|
||||
$link='';
|
||||
$text='';
|
||||
|
||||
$link= APP_ROOT."index.ci.php/extensions/FHC-Core-Anwesenheiten/?stg_kz=$studiengang_kz&sem=$semester&lvid=$lvid&sem_kurzbz=$angezeigtes_stsem";
|
||||
|
||||
$menu[]=array
|
||||
(
|
||||
'id'=>'core_menu_digitale_anwesenheitslisten',
|
||||
'position'=>'50',
|
||||
'name'=> $p->t('lehre/digiAnw'),
|
||||
'icon'=>'../../../skin/images/button_kreuzerltool.png',
|
||||
'link'=>$link,
|
||||
'text'=>$text
|
||||
);
|
||||
}
|
||||
|
||||
//FEEDBACK
|
||||
if((!defined('CIS_LEHRVERANSTALTUNG_FEEDBACK_ANZEIGEN') || CIS_LEHRVERANSTALTUNG_FEEDBACK_ANZEIGEN) && $angemeldet)
|
||||
{
|
||||
$menu[]=array
|
||||
(
|
||||
'id'=>'core_menu_feedback',
|
||||
'position'=>'50',
|
||||
'position'=>'60',
|
||||
'name'=>$p->t('lehre/feedback'),
|
||||
'icon'=>'../../../skin/images/button_feedback.png',
|
||||
'link'=>'feedback.php?lvid='.$lvid,
|
||||
@@ -378,6 +403,7 @@ function checkZeilenUmbruch()
|
||||
'id'=>'core_menu_mailanstudierende',
|
||||
'position'=>'100',
|
||||
'name'=>$p->t('lehre/mail'),
|
||||
'phrase'=>'lehre/mail',
|
||||
'icon'=>'../../../skin/images/button_feedback.png',
|
||||
'link'=>$mailto,
|
||||
'link_onclick'=>$link_onclick
|
||||
@@ -453,6 +479,7 @@ function checkZeilenUmbruch()
|
||||
'id'=>'core_menu_anerkennungNachgewiesenerKenntnisse',
|
||||
'position'=>'128',
|
||||
'name'=>$p->t('lehre/anrechnung'),
|
||||
'phrase'=>'lehre/anrechnung',
|
||||
'icon'=>'../../../skin/images/button_listen.png',
|
||||
'link' => APP_ROOT. 'index.ci.php/lehre/anrechnung/RequestAnrechnung?studiensemester='.urlencode($angezeigtes_stsem).'&lv_id='.urlencode($lvid)
|
||||
);
|
||||
@@ -467,11 +494,33 @@ if((!defined('CIS_LEHRVERANSTALTUNG_ANRECHNUNG_ANZEIGEN') || CIS_LEHRVERANSTALTU
|
||||
'id'=>'core_menu_anerkennungNachgewiesenerKenntnisse_empfehlen',
|
||||
'position'=>'128',
|
||||
'name'=>$p->t('lehre/anrechnungen'),
|
||||
'phrase'=>'lehre/anrechnung',
|
||||
'icon'=>'../../../skin/images/button_listen.png',
|
||||
'link' => APP_ROOT. 'index.ci.php/lehre/anrechnung/ReviewAnrechnungUebersicht?studiensemester='.urlencode($angezeigtes_stsem)
|
||||
);
|
||||
}
|
||||
|
||||
// LV-Evaluierung NEU
|
||||
if(defined('CIS_LEHRVERANSTALTUNG_EVALUIERUNG_ANZEIGEN')
|
||||
&& CIS_LEHRVERANSTALTUNG_EVALUIERUNG_ANZEIGEN
|
||||
&& $angemeldet
|
||||
&& (!defined('CIS_EVALUIERUNG_ANZEIGEN_STG') || in_array($lv->studiengang_kz, unserialize(CIS_EVALUIERUNG_ANZEIGEN_STG)))
|
||||
&& ($rechte->isBerechtigt('extension/lvevaluierung_init')))
|
||||
{
|
||||
$text='(Pilotphase)';
|
||||
|
||||
$link= APP_ROOT. 'index.ci.php/extensions/FHC-Core-Evaluierung/Initiierung?lehrveranstaltung_id='. urlencode($lv->lehrveranstaltung_id).'&studiensemester_kurzbz='.urlencode($angezeigtes_stsem);
|
||||
|
||||
$menu[]=array
|
||||
(
|
||||
'id'=>'extension_lvevaluierung_menu_initiierung',
|
||||
'position'=>'140',
|
||||
'name'=>$p->t('lvevaluierung/lvevaluierung'). ' - '. strtoupper($p->t('global/neu')),
|
||||
'icon'=>'../../../skin/images/button_lvevaluierung.png',
|
||||
'link'=> $link,
|
||||
'text'=>$text
|
||||
);
|
||||
}
|
||||
|
||||
//************* Menuepunkte anzeigen ****************
|
||||
|
||||
|
||||
@@ -70,6 +70,7 @@ $menu=array
|
||||
'link'=>'left.php?categorie=Lehre', 'target'=>'nav',
|
||||
'Gruppenverwaltung'=>array('name'=>'Gruppen', 'permissions'=>array('admin','lv-plan','support','lehre/gruppe'), 'link'=>'stammdaten/lvbgruppenverwaltung.php', 'target'=>'main'),
|
||||
'Lehrveranstaltung'=>array('name'=>'Lehrveranstaltung', 'link'=>'lehre/lehrveranstaltung_frameset.html', 'target'=>'main'),
|
||||
'lvTemplateUebersicht'=>array('name'=>'LV-Template Übersicht', 'link'=>'../index.ci.php/lehre/lvplanung/LvTemplateUebersicht', 'target'=>'_blank'),
|
||||
'Studienordnung'=>array('name'=>'Studienordnung', 'link'=>'lehre/studienordnung.php', 'target'=>'_blank','permissions'=>array('lehre/studienordnung')),
|
||||
'StudienplanGueltigkeit'=>array('name'=>'Studienplan Gültigkeit', 'link'=>'lehre/studienplan_gueltigkeit.php', 'target'=>'main','permissions'=>array('lehre/studienordnung')),
|
||||
'StudienplanVorruecken'=>array('name'=>'Studienplan vorrücken', 'link'=>'lehre/studienplan_vorrueckung.php', 'target'=>'main','permissions'=>array('lehre/studienplan')),
|
||||
|
||||
@@ -123,7 +123,7 @@ class wochenplan extends basis_db
|
||||
}
|
||||
|
||||
/**
|
||||
* initialisiert den Studenplan
|
||||
* initialisiert den Stundenplan
|
||||
*
|
||||
*/
|
||||
public function init_stdplan()
|
||||
|
||||
Reference in New Issue
Block a user