Files
FHC-Core/application/models/education/Lvgesamtnote_model.php
T
Johann Hoffmann 7c9bcb6fd2 Merge remote-tracking branch 'origin/master' into feature-60873/GesamtnoteneingabeCis4
# Conflicts:
#	cis/private/lehre/notenliste.xls.php
#	public/js/api/factory/studiensemester.js
#	system/phrasesupdate.php
2026-09-15 14:44:45 +02:00

79 lines
2.6 KiB
PHP

<?php
class Lvgesamtnote_model extends DB_Model
{
/**
* Constructor
*/
public function __construct()
{
parent::__construct();
$this->dbTable = 'campus.tbl_lvgesamtnote';
$this->pk = array('student_uid', 'studiensemester_kurzbz', 'lehrveranstaltung_id');
$this->hasSequence = false;
}
/**
* Laedt die Noten - lvgesamtnote (Vorschlag) JOIN tbl.note (zeugnisnote)
*
* @param integer $lehrveranstaltung_id
* @param string $student_uid
* @param string $studiensemester_kurzbz
*
* @return stdClass
*/
public function getLvGesamtNoten($lehrveranstaltung_id, $student_uid, $studiensemester_kurzbz)
{
$this->addSelect($this->dbTable . ".*");
$this->addSelect("n.bezeichnung AS note_bezeichnung");
$this->addSelect("lv.bezeichnung AS lehrveranstaltung_bezeichnung");
$this->addSelect("lv.studiengang_kz");
$this->addSelect("UPPER(stg.typ || stg.kurzbz) AS studiengang");
$this->addSelect("person.vorname");
$this->addSelect("person.nachname");
$this->addJoin("lehre.tbl_note n", "note");
$this->addJoin("lehre.tbl_lehrveranstaltung lv", "lehrveranstaltung_id");
$this->addJoin("public.tbl_studiengang stg", "studiengang_kz");
$this->addJoin("public.tbl_benutzer benutzer", "uid = student_uid", "LEFT");
$this->addJoin("public.tbl_person person", "person_id", "LEFT");
$this->db->where($this->dbTable . ".freigabedatum <", "NOW()", false);
$where = [];
if ($studiensemester_kurzbz)
$where[$this->dbTable . ".studiensemester_kurzbz"] = $studiensemester_kurzbz;
if ($lehrveranstaltung_id)
$where[$this->dbTable . ".lehrveranstaltung_id"] = $lehrveranstaltung_id;
if ($student_uid)
$where[$this->dbTable . ".student_uid"] = $student_uid;
return $this->loadWhere($where);
}
public function getLvGesamtNoteVorschlag($lehrveranstaltung_id, $student_uid, $studiensemester_kurzbz)
{
$qry = "SELECT * FROM campus.tbl_lvgesamtnote
WHERE campus.tbl_lvgesamtnote.student_uid = ?
AND campus.tbl_lvgesamtnote.studiensemester_kurzbz = ?";
$params = [$student_uid, $studiensemester_kurzbz];
// ohne LV liefert die Abfrage die Noten anderer LVs
$qry .= " AND campus.tbl_lvgesamtnote.lehrveranstaltung_id = ?";
$params[] = $lehrveranstaltung_id;
return $this->execReadOnlyQuery($qry, $params);
}
/**
* Alle LV-Noten einer LV in einem Semester, ohne Freigabefilter.
*/
public function getByLvStudiensemester($lehrveranstaltung_id, $studiensemester_kurzbz)
{
return $this->loadWhere(array(
'lehrveranstaltung_id' => $lehrveranstaltung_id,
'studiensemester_kurzbz' => $studiensemester_kurzbz
));
}
}