Merge branch 'feature-40280/FHC4_Studierendenverwaltung_Pruefung' into merge_FHC4_C4

This commit is contained in:
Harald Bamberger
2025-01-27 17:39:47 +01:00
14 changed files with 1594 additions and 7 deletions
@@ -11,4 +11,45 @@ class LePruefung_model extends DB_Model
$this->dbTable = 'lehre.tbl_pruefung';
$this->pk = 'pruefung_id';
}
/**
* gets all Pruefungen for a student_uid
* @param string $student_uid
* @param string $studiensemester_kurzbz
*
* @return stdClass
*/
public function getPruefungenByStudentuid($student_uid, $studiensemester_kurzbz = null)
{
$this->addSelect('tbl_pruefung.datum');
$this->addSelect("TO_CHAR(tbl_pruefung.datum::timestamp, 'DD.MM.YYYY') AS format_datum");
$this->addSelect('tbl_pruefung.anmerkung');
$this->addSelect('tbl_pruefung.pruefungstyp_kurzbz');
$this->addSelect('tbl_pruefung.pruefung_id');
$this->addSelect('tbl_pruefung.lehreinheit_id');
$this->addSelect('tbl_pruefung.student_uid');
$this->addSelect('tbl_pruefung.mitarbeiter_uid');
$this->addSelect('tbl_pruefung.punkte');
$this->addSelect('tbl_lehrveranstaltung.bezeichnung as lehrveranstaltung_bezeichnung');
$this->addSelect('tbl_lehrveranstaltung.lehrveranstaltung_id');
$this->addSelect('tbl_note.bezeichnung as note_bezeichnung');
$this->addSelect('tbl_pruefungstyp.beschreibung as typ_beschreibung');
$this->addSelect('tbl_lehreinheit.studiensemester_kurzbz as studiensemester_kurzbz');
$this->addJoin('lehre.tbl_lehreinheit', 'lehre.tbl_pruefung.lehreinheit_id=lehre.tbl_lehreinheit.lehreinheit_id');
$this->addJoin('lehre.tbl_lehrveranstaltung', 'lehrveranstaltung_id');
$this->addJoin('lehre.tbl_note', 'note');
$this->addJoin('lehre.tbl_pruefungstyp', 'pruefungstyp_kurzbz');
if ($studiensemester_kurzbz)
$this->db->where("tbl_lehreinheit.studiensemester_kurzbz = ", $studiensemester_kurzbz);
$this->addOrder('tbl_pruefung.datum', 'DESC');
$this->addOrder('tbl_pruefung.pruefung_id', 'DESC');
return $this->loadWhere([
'student_uid' => $student_uid
]);
}
}
@@ -31,7 +31,7 @@ class Lehreinheit_model extends DB_Model
$this->addOrder('lehreinheit_id');
$les = $this->loadWhere(
array('lehrveranstaltung_id' => $lehrveranstaltung_id,
'studiensemester_kurzbz' => $studiensemester)
'studiensemester_kurzbz' => $studiensemester)
);
if (hasData($les))
@@ -244,4 +244,58 @@ EOSQL;
$res = $this->execReadOnlyQuery($query);
return $res;
}
/**
* Gets Lehreinheiten for Lehrveranstaltungen in a Studiensemester.
* Without using tbl_lehrfach: bezeichnung and kurzbz ALWAYS from lehrveranstaltung
* @param $lehrveranstaltung_id
* @param $studiensemester
* @return array with Lehreinheiten and their Lehreinheitgruppen
*/
public function getLesFromLvIds($lehrveranstaltung_id, $studiensemester_kurzbz = null)
{
$params = array($lehrveranstaltung_id);
$query = "
SELECT
lv.lehrveranstaltung_id,
le.lehreinheit_id,
le.lehrform_kurzbz,
lv.kurzbz,
lv.bezeichnung,
lv.semester,
ma.mitarbeiter_uid,
(
SELECT
STRING_AGG(CONCAT(leg.semester, leg.verband, leg.gruppe), ' ')
FROM lehre.tbl_lehreinheitgruppe leg
WHERE leg.lehreinheit_id = le.lehreinheit_id
) AS gruppe,
tma.kurzbz as kuerzel
FROM
lehre.tbl_lehreinheit le
JOIN
lehre.tbl_lehrveranstaltung lv ON lv.lehrveranstaltung_id = le.lehrveranstaltung_id
JOIN
lehre.tbl_lehreinheitmitarbeiter ma USING (lehreinheit_id)
JOIN
public.tbl_mitarbeiter tma USING (mitarbeiter_uid)
WHERE
lv.lehrveranstaltung_id = ?
";
if (isset($studiensemester_kurzbz))
{
$query .= " AND le.studiensemester_kurzbz = ?";
$params[] = $studiensemester_kurzbz;
}
$query .="
ORDER BY
le.lehreinheit_id;
";
return $this->execQuery($query, $params);
}
}
@@ -517,7 +517,7 @@ class Lehrveranstaltung_model extends DB_Model
/**
* Gets Lehrveranstaltungen of a student
* @param $student_uid
* @param null $studiensemester_kurzbz
* @param $studiensemester_kurzbz
* @return array|null
*/
public function getLvsByStudent($student_uid, $studiensemester_kurzbz = null)
@@ -527,6 +527,7 @@ class Lehrveranstaltung_model extends DB_Model
$qry = "SELECT * FROM lehre.tbl_lehrveranstaltung
WHERE lehrveranstaltung_id IN(SELECT lehrveranstaltung_id FROM campus.vw_student_lehrveranstaltung
WHERE uid=?";
if (isset($studiensemester_kurzbz))
{
$qry .= " AND studiensemester_kurzbz=?";
@@ -534,11 +535,11 @@ class Lehrveranstaltung_model extends DB_Model
}
$qry .= ") OR lehrveranstaltung_id IN(SELECT lehrveranstaltung_id FROM lehre.tbl_zeugnisnote WHERE student_uid=?";
$params[] = $student_uid;
if (isset($studiensemester_kurzbz))
/* if (isset($studiensemester_kurzbz))
{
$qry .= " AND studiensemester_kurzbz=?";
$params[] = $studiensemester_kurzbz;
}
}*/
$qry .= ") ORDER BY semester, bezeichnung";
return $this->execQuery($qry, $params);
@@ -0,0 +1,14 @@
<?php
class Note_model extends DB_Model
{
/**
* Constructor
*/
public function __construct()
{
parent::__construct();
$this->dbTable = 'lehre.tbl_note';
$this->pk = 'note';
}
}
@@ -238,4 +238,28 @@ class Mitarbeiter_model extends DB_Model
return $this->execQuery($qry);
}
/**
* Gets Mitarbeiter for a certain Lehrveranstaltung.
*
* @param $lehrveranstaltung_id
* @return array with Mitarbeiter and their Lehreinheiten
*/
public function getMitarbeiterFromLV($lehrveranstaltung_id){
//TODO(manu) maybe filter that in pruefungslist.js ?
$qry = "SELECT DISTINCT
lehrveranstaltung_id, uid, vorname, wahlname, vornamen, nachname, titelpre, titelpost, kurzbz, mitarbeiter_uid
FROM
lehre.tbl_lehreinheitmitarbeiter, campus.vw_mitarbeiter, lehre.tbl_lehreinheit
WHERE
lehrveranstaltung_id= ?
AND
mitarbeiter_uid=uid
AND
tbl_lehreinheitmitarbeiter.lehreinheit_id=tbl_lehreinheit.lehreinheit_id;";
$parametersArray = array($lehrveranstaltung_id);
return $this->execQuery($qry, $parametersArray);
}
}