dbTable = "lehre.tbl_studienplan"; $this->pk = "studienplan_id"; } public function getStudienplaene($studiengang_kz) { $this->addJoin("lehre.tbl_studienordnung", "studienordnung_id"); return $this->loadWhere(array("studiengang_kz" => $studiengang_kz)); } public function getStudienplaeneBySemester($studiengang_kz, $studiensemester_kurzbz, $ausbildungssemester = null, $orgform_kurzbz = null, $sprache = null) { $this->addJoin("lehre.tbl_studienordnung", "studienordnung_id"); $this->addJoin("lehre.tbl_studienplan_semester", "studienplan_id"); $whereArray = array( "tbl_studienplan.aktiv" => "TRUE", "tbl_studienordnung.studiengang_kz" => $studiengang_kz, "tbl_studienplan_semester.studiensemester_kurzbz" => $studiensemester_kurzbz ); if(!is_null($ausbildungssemester)) { $whereArray["tbl_studienplan_semester.semester"] = $ausbildungssemester; } if(!is_null($orgform_kurzbz)) { $whereArray["orgform_kurzbz"] = $orgform_kurzbz; } if(!is_null($sprache)) { $whereArray["tbl_studienplan.sprache"] = $sprache; } return $this->loadWhere($whereArray); } public function getStudienplanLehrveranstaltung($studienplan_id, $semester) { $this->addJoin('lehre.tbl_studienplan_lehrveranstaltung', 'studienplan_id'); $this->addJoin('lehre.tbl_lehrveranstaltung', 'lehrveranstaltung_id'); $this->addOrder('tbl_lehrveranstaltung.sort'); return $this->loadWhere(array( 'studienplan_id' => $studienplan_id, 'tbl_studienplan_lehrveranstaltung.semester' => $semester )); } public function getStudienplanLehrveranstaltungForPrestudent($studienplan_id, $semester, $prestudent_id) { $lang = 'SELECT index FROM public.tbl_sprache WHERE sprache=' . $this->escape(getUserLanguage()); $sql = 'SELECT student_uid FROM public.tbl_student WHERE prestudent_id=' . $this->escape($prestudent_id); $this->addSelect($this->dbTable . '.*'); $this->addSelect('lv.*'); $this->addSelect('COALESCE(n.bezeichnung_mehrsprachig[(' . $lang . ')], NULL) AS note'); $this->addSelect('n.positiv'); $this->addSelect('lehre.tbl_studienplan_lehrveranstaltung.studienplan_lehrveranstaltung_id'); $this->addSelect('lehre.tbl_studienplan_lehrveranstaltung.sort plan_sort'); $this->addSelect('lehre.tbl_studienplan_lehrveranstaltung.studienplan_lehrveranstaltung_id_parent'); $this->addJoin('lehre.tbl_studienplan_lehrveranstaltung', 'studienplan_id'); $this->addJoin('lehre.tbl_lehrveranstaltung lv', 'lehrveranstaltung_id'); // NOTE(chris): last offizell note $this->addJoin('( SELECT z.* FROM lehre.tbl_zeugnisnote z LEFT JOIN public.tbl_studiensemester zs USING(studiensemester_kurzbz) JOIN ( SELECT zi.lehrveranstaltung_id, zi.student_uid, MAX(zis.start) AS start FROM lehre.tbl_zeugnisnote zi LEFT JOIN lehre.tbl_note zin USING(note) LEFT JOIN public.tbl_studiensemester zis USING(studiensemester_kurzbz) WHERE zin.aktiv AND zin.offiziell GROUP BY zi.lehrveranstaltung_id, zi.student_uid ) zx ON ( z.lehrveranstaltung_id=zx.lehrveranstaltung_id AND z.student_uid=zx.student_uid AND zs.start = zx.start )) zn', 'zn.lehrveranstaltung_id=lv.lehrveranstaltung_id AND zn.student_uid=( ' . $sql . ')', 'LEFT'); $this->addJoin('lehre.tbl_note n', 'n.note=zn.note', 'LEFT'); $this->addOrder('lehre.tbl_studienplan_lehrveranstaltung.sort'); $this->addOrder('lv.sort'); return $this->loadWhere(array( 'studienplan_id' => $studienplan_id, 'tbl_studienplan_lehrveranstaltung.semester' => $semester )); } // Deprecated // im Lehrveranstaltung_model vorhanden public function getAllOesForLv($lehrveranstaltung_id) { $this->addDistinct('oe_kurzbz'); $this->addJoin('lehre.tbl_studienplan_lehrveranstaltung lv', 'studienplan_id'); $this->addJoin('lehre.tbl_studienordnung', 'studienordnung_id'); $this->addJoin('public.tbl_studiengang', 'studiengang_kz'); return $this->loadWhere([ 'lv.lehrveranstaltung_id' => $lehrveranstaltung_id ]); } public function getStudienplaeneByPrestudents($prestudent_id) { $this->addDistinct(); $this->addSelect($this->dbTable . '.*'); $this->addSelect('sem.start AS start_stsem'); $this->addJoin('lehre.tbl_studienordnung o', 'studienordnung_id'); $this->addJoin('public.tbl_prestudent p', 'studiengang_kz'); $this->addJoin('public.tbl_studiensemester sem', 'sem.studiensemester_kurzbz = o.gueltigvon', 'LEFT'); $this->addOrder('sem.start'); return $this->loadWhere([ 'prestudent_id' => $prestudent_id ]); } public function loadStudienplanLehrveranstaltung($lv_id) { $qry = "SELECT studienplan_lehrveranstaltung_id, semester, pflicht, studienplan_id, koordinator, studienplan_lehrveranstaltung_id_parent, lehrveranstaltung_id, insertamum, insertvon, updateamum, updatevon, sort, curriculum, export FROM lehre.tbl_studienplan_lehrveranstaltung WHERE studienplan_lehrveranstaltung_id = ? "; return $this->execReadOnlyQuery($qry, array($lv_id)); } public function getStudienplaeneForPerson($person_id) { $this->addDistinct(); $this->addSelect($this->dbTable . '.*'); $this->addSelect('ps.*'); $this->addJoin('public.tbl_prestudentstatus pss', 'studienplan_id'); $this->addJoin('public.tbl_prestudent ps', 'prestudent_id'); return $this->loadWhere([ 'person_id' => $person_id ]); } }