Cleaned up commit from 'feature-27351/Digitalisierung_Formulare_Abmeldung_Unterbrechung_Wiederholung'

This commit is contained in:
cgfhtw
2023-07-04 10:34:14 +02:00
parent 5213ab44ff
commit 64ce3d1f6a
82 changed files with 12192 additions and 61 deletions
+138 -1
View File
@@ -29,11 +29,148 @@ class Pruefung_model extends DB_Model
JOIN lehre.tbl_pruefung prfg USING (student_uid)
JOIN lehre.tbl_lehreinheit le USING (lehreinheit_id)
JOIN lehre.tbl_lehrveranstaltung lv USING (lehrveranstaltung_id)
JOIN public.tbl_studiengang stg ON prst.studiengang_kz = stg.studiengang_kz
JOIN public.tbl_studiengang stg ON prst.studiengang_kz = stg.studiengang_kz
WHERE pers.person_id = ?
AND le.studiensemester_kurzbz = ?
ORDER BY prfg.datum, pruefung_id';
return $this->execQuery($qry, array($person_id, $studiensemester_kurzbz));
}
/**
* @param integer $prestudent_id student_uid
*
* @return stdClass
*/
public function loadWhereCommitteeExamFailedForPrestudent($prestudent_id)
{
$this->load->config('studierendenantrag');
$this->dbTable = 'lehre.tbl_pruefung p';
$this->addSelect('p.datum');
$this->addSelect('pers.vorname');
$this->addSelect('pers.nachname');
$this->addSelect('s.matrikelnr');
$this->addSelect('g.bezeichnung');
$this->addSelect('g.studiengang_kz');
$this->addSelect('o.bezeichnung_mehrsprachig');
$this->addSelect('ps.prestudent_id');
$this->addSelect('lv.bezeichnung as lvbezeichnung');
$this->addSelect('le.studiensemester_kurzbz');
$this->addSelect('a.typ');
$this->addSelect('campus.get_status_studierendenantrag(a.studierendenantrag_id) status');
$this->addJoin('lehre.tbl_note n', 'note');
$this->addJoin('lehre.tbl_lehreinheit le', 'lehreinheit_id');
$this->addJoin('lehre.tbl_lehrveranstaltung lv', 'lehrveranstaltung_id');
$this->addJoin('public.tbl_student s', 'student_uid');
$this->addJoin('public.tbl_prestudent ps', 'prestudent_id');
$this->addJoin('public.tbl_person pers', 'person_id');
$this->addJoin('public.tbl_studiengang g', 'ps.studiengang_kz=g.studiengang_kz');
$this->addJoin('bis.tbl_orgform o', 'g.orgform_kurzbz=o.orgform_kurzbz');
$this->addJoin('campus.tbl_studierendenantrag a', 'ps.prestudent_id=a.prestudent_id', 'LEFT');
$this->db->where("n.positiv", false);
$this->db->where("p.pruefungstyp_kurzbz", 'kommPruef');
$this->db->where("ps.prestudent_id", $prestudent_id);
$this->db->where_in("get_rolle_prestudent(ps.prestudent_id, NULL)", $this->config->item('antrag_prestudentstatus_whitelist'));
$this->db->where("g.aktiv", true);
$this->db->where('lv.studiengang_kz not in(
SELECT ps.studiengang_kz
FROM
public.tbl_student s
JOIN public.tbl_prestudent ps USING (prestudent_id)
JOIN public.tbl_prestudentstatus pss USING (prestudent_id)
WHERE pss.statusgrund_id in ?
and ps.prestudent_id = ?)', null, false);
$sql = $this->db->get_compiled_select($this->dbTable);
return $this->execQuery($sql, [$this->config->item('status_gruende_wiederholer'), $prestudent_id]);
}
public function getAllPrestudentsWhereCommitteeExamFailed($status, $maxDate, $minDate)
{
$this->load->config('studierendenantrag');
$this->load->model('education/Studierendenantrag_model', 'StudierendenantragModel');
$this->dbTable = 'lehre.tbl_pruefung p';
$sprache_index = "SELECT index FROM public.tbl_sprache WHERE sprache='" . getUserLanguage() . "' LIMIT 1";
$this->addSelect('p.datum');
$this->addSelect('pers.vorname');
$this->addSelect('pers.nachname');
$this->addSelect('pers.person_id');
$this->addSelect('s.matrikelnr');
$this->addSelect('g.bezeichnung');
$this->addSelect('g.studiengang_kz');
$this->addSelect('o.bezeichnung_mehrsprachig[(' . $sprache_index . ')] AS orgform', false);
$this->addSelect('ps.prestudent_id');
$this->addSelect('lv.bezeichnung as lvbezeichnung');
$this->addSelect('le.studiensemester_kurzbz');
$this->addSelect('a.typ');
$this->addSelect('campus.get_status_studierendenantrag(a.studierendenantrag_id) status');
$this->addJoin('lehre.tbl_note n', 'note');
$this->addJoin('lehre.tbl_lehreinheit le', 'lehreinheit_id');
$this->addJoin('lehre.tbl_lehrveranstaltung lv', 'lehrveranstaltung_id');
$this->addJoin('public.tbl_student s', 'student_uid');
$this->addJoin('public.tbl_prestudent ps', 'prestudent_id');
$this->addJoin('public.tbl_person pers', 'person_id');
$this->addJoin('public.tbl_benutzer b', 's.student_uid=b.uid');
$this->addJoin('public.tbl_studiengang g', 'ps.studiengang_kz=g.studiengang_kz');
$this->addJoin('bis.tbl_orgform o', 'g.orgform_kurzbz=o.orgform_kurzbz');
$this->db->join('campus.tbl_studierendenantrag a', 'ps.prestudent_id=a.prestudent_id and a.typ = ?', 'LEFT', false);
$this->db->where("n.positiv", false);
$this->db->where("p.pruefungstyp_kurzbz", 'kommPruef');
$this->db->where_in("get_rolle_prestudent(ps.prestudent_id, null)", $this->config->item('antrag_prestudentstatus_whitelist'));
if ($maxDate)
$this->db->where("p.datum < ", $maxDate->format('c'));
if ($minDate)
$this->db->where("p.datum > ", $minDate->format('c'));
$this->db->where("g.aktiv", true);
$this->db->where("b.aktiv", true);
$this->db->where('lv.studiengang_kz not in(
SELECT ps.studiengang_kz
FROM
public.tbl_prestudent ps1
JOIN public.tbl_prestudentstatus pss USING (prestudent_id)
WHERE pss.statusgrund_id in ?
AND ps.prestudent_id = ps1.prestudent_id)', null, false);
// NOTE(chris): is Wiederholer without set statusgrund (legacy?)
$this->db->where('(SELECT COUNT(*) FROM (SELECT DISTINCT studiensemester_kurzbz FROM tbl_prestudentstatus _s WHERE ausbildungssemester=get_absem_prestudent(ps.prestudent_id, le.studiensemester_kurzbz) AND prestudent_id=ps.prestudent_id) a) = 1', null, false);
if (is_array($status)) {
if (in_array(null, $status)) {
$status = array_filter($status);
if (count($status)) {
$this->db->group_start();
$this->db->where_in('campus.get_status_studierendenantrag(a.studierendenantrag_id)', $status);
$this->db->or_where('campus.get_status_studierendenantrag(a.studierendenantrag_id)', null);
$this->db->group_end();
} else {
$this->db->where('campus.get_status_studierendenantrag(a.studierendenantrag_id)', null);
}
} else {
$this->db->where_in('campus.get_status_studierendenantrag(a.studierendenantrag_id)', $status);
}
} else {
$this->db->where('campus.get_status_studierendenantrag(a.studierendenantrag_id)', $status);
}
$sql = $this->db->get_compiled_select($this->dbTable);
$statusgruende = $this->config->item('status_gruende_wiederholer');
if (!is_array($statusgruende))
$statusgruende = [];
return $this->execQuery($sql, [Studierendenantrag_model::TYP_WIEDERHOLUNG, $statusgruende]);
}
}
@@ -0,0 +1,229 @@
<?php
class Studierendenantrag_model extends DB_Model
{
const TYP_ABMELDUNG = 'Abmeldung';
const TYP_UNTERBRECHUNG = 'Unterbrechung';
const TYP_WIEDERHOLUNG = 'Wiederholung';
/**
* Constructor
*/
public function __construct()
{
parent::__construct();
$this->dbTable = 'campus.tbl_studierendenantrag';
$this->pk = 'studierendenantrag_id';
$this->load->config('studierendenantrag');
$this->load->model('education/Studierendenantragstatus_model', 'StudierendenantragstatusModel');
}
public function loadCreatedForStudiengaenge($studiengaenge, $typ)
{
return $this->loadForStudiengaenge($studiengaenge, $typ, $this->StudierendenantragstatusModel::STATUS_CREATED);
}
public function loadForStudiengaenge($studiengaenge, $typ = null, $status = null)
{
$sql = "SELECT index FROM public.tbl_sprache WHERE sprache='" . getUserLanguage() . "' LIMIT 1";
$this->addSelect('stg.bezeichnung');
$this->addSelect('bezeichnung_mehrsprachig[(' . $sql . ')] AS orgform', false);
$this->addSelect('s.studierendenantrag_id');
$this->addSelect('matrikelnr');
$this->addSelect('studienjahr_kurzbz');
$this->addSelect('vorname');
$this->addSelect('nachname');
$this->addSelect('prestudent_id');
$this->addSelect('p.studiengang_kz');
$this->addSelect('semester');
$this->addSelect($this->dbTable . '.grund');
$this->addSelect('datum');
$this->addSelect('datum_wiedereinstieg');
$this->addSelect($this->dbTable . '.typ');
$this->addSelect('st.studierendenantrag_statustyp_kurzbz as status');
$this->addSelect('dms_id');
$this->addSelect('st.bezeichnung[(' . $sql . ')] as statustyp');
$this->addJoin('public.tbl_prestudent p', 'prestudent_id');
$this->addJoin('public.tbl_student', 'prestudent_id');
$this->addJoin('public.tbl_person', 'person_id');
$this->addJoin('public.tbl_studiengang stg', 'p.studiengang_kz=stg.studiengang_kz');
$this->addJoin('public.tbl_studiensemester', 'studiensemester_kurzbz');
$this->addJoin('bis.tbl_orgform', 'orgform_kurzbz');
$this->addJoin('campus.tbl_studierendenantrag_status as s','campus.get_status_id_studierendenantrag('.$this->dbTable .'.studierendenantrag_id) = studierendenantrag_status_id' );
$this->addJoin('campus.tbl_studierendenantrag_statustyp as st','studierendenantrag_statustyp_kurzbz' );
$this->db->where_in('p.studiengang_kz', $studiengaenge);
$where = [];
if ($status !== null)
$where['st.studierendenantrag_statustyp_kurzbz'] = $status;
if ($typ !== null)
$where[$this->dbTable . '.typ'] = $typ;
return $this->loadWhere($where);
}
public function isInStudiengang($studierendenantrag_id, $studiengaenge)
{
$this->addJoin('public.tbl_prestudent', 'prestudent_id');
$this->db->where_in('studiengang_kz', $studiengaenge);
return $this->load($studierendenantrag_id);
}
public function loadIdAndStatusWhere($where)
{
$this->addSelect('studierendenantrag_id');
$this->addSelect('campus.get_status_studierendenantrag(studierendenantrag_id) status');
return $this->loadWhere($where);
}
public function loadWithStatusWhere($where)
{
$lang = 'SELECT index FROM public.tbl_sprache WHERE sprache=' . $this->escape(getUserLanguage());
$this->addSelect('*');
$this->addSelect('campus.get_status_studierendenantrag(studierendenantrag_id) status');
$this->addSelect('t.bezeichnung[(' . $lang . ')] statustyp');
$this->addJoin(
'campus.tbl_studierendenantrag_statustyp t',
'campus.get_status_studierendenantrag(studierendenantrag_id)=t.studierendenantrag_statustyp_kurzbz'
);
$this->addOrder('datum', 'DESC');
return $this->loadWhere($where);
}
/**
* Get the studiengang and ausbildungssemester the student was in
* for the studiensemester the antrag was committed for
*
* @param integer $antrag_id
*
* @return stdClass
*/
public function getStgAndSem($antrag_id)
{
$this->addSelect('p.studiengang_kz');
$this->addSelect('s.ausbildungssemester');
$this->addSelect('s.orgform_kurzbz');
$this->addJoin(
'public.tbl_prestudentstatus s',
$this->dbTable . '.prestudent_id=s.prestudent_id AND ' . $this->dbTable . '.studiensemester_kurzbz=s.studiensemester_kurzbz'
);
$this->addJoin('public.tbl_prestudent p', $this->dbTable . '.prestudent_id=p.prestudent_id');
$this->addOrder('s.datum', 'DESC');
$this->addOrder('s.insertamum', 'DESC');
$this->addOrder('s.ext_id', 'DESC');
$this->addLimit(1);
$this->db->where_in('s.status_kurzbz', $this->config->item('antrag_prestudentstatus_whitelist'));
return $this->loadWhere([
$this->pk => $antrag_id
]);
}
/**
* Get the studiengang the student is in
*
* @param integer $antrag_id
*
* @return stdClass
*/
public function getStg($antrag_id)
{
$this->addSelect('p.studiengang_kz');
$this->addJoin('public.tbl_prestudent p', 'prestudent_id');
$this->addLimit(1);
return $this->load(
$antrag_id
);
}
public function getStgEmail($antrag_id)
{
$this->addJoin('public.tbl_prestudent p', 'prestudent_id');
$this->addJoin('public.tbl_studiengang sg', 'studiengang_kz');
$this->addSelect('sg.email');
return $this->load($antrag_id);
}
public function loadForPerson($person_id)
{
$lang = 'SELECT index FROM public.tbl_sprache WHERE sprache=' . $this->escape(getUserLanguage());
$this->addSelect('stg.bezeichnung');
$this->addSelect('bezeichnung_mehrsprachig[(' . $lang . ')] as orgform');
$this->addSelect('p.studiengang_kz');
$this->addSelect('st.studierendenantrag_statustyp_kurzbz as status');
$this->addSelect('st.bezeichnung[(' . $lang . ')] as status_bezeichnung');
$this->addSelect('p.prestudent_id');
$this->addSelect($this->dbTable . '.studierendenantrag_id');
$this->addSelect($this->dbTable . '.studiensemester_kurzbz');
$this->addSelect($this->dbTable . '.datum');
$this->addSelect($this->dbTable . '.typ');
$this->addSelect($this->dbTable . '.insertamum');
$this->addSelect($this->dbTable . '.insertvon');
$this->addSelect($this->dbTable . '.datum_wiedereinstieg');
$this->addSelect($this->dbTable . '.grund');
$this->addSelect($this->dbTable . '.dms_id');
$this->addJoin('public.tbl_prestudent p', 'prestudent_id', 'RIGHT');
$this->addJoin('public.tbl_studiengang stg', 'p.studiengang_kz=stg.studiengang_kz');
$this->addJoin('bis.tbl_orgform', 'orgform_kurzbz');
$this->addJoin('campus.tbl_studierendenantrag_statustyp st', 'campus.get_status_studierendenantrag(studierendenantrag_id)=st.studierendenantrag_statustyp_kurzbz','LEFT');
$this->db->where_in('public.get_rolle_prestudent(p.prestudent_id, null)', $this->config->item('antrag_prestudentstatus_whitelist'));
return $this->loadWhere([
'p.person_id' => $person_id
]);
}
public function getAntraegeWhereWiedereinstiegBetween($start, $end)
{
$this->addSelect('sg.email');
$this->addSelect('vorname');
$this->addSelect('nachname');
$this->addSelect($this->dbTable.'.*');
$this->addJoin(
'campus.tbl_studierendenantrag_status s',
'campus.get_status_id_studierendenantrag(' . $this->dbTable . '.studierendenantrag_id)=s.studierendenantrag_status_id'
);
$this->addJoin('public.tbl_prestudent p', 'prestudent_id');
$this->addJoin('public.tbl_person', 'person_id');
$this->addJoin('public.tbl_studiengang sg', 'studiengang_kz');
$this->db->where('datum_wiedereinstieg >=', $start->format('Y-m-d'));
$this->db->where('datum_wiedereinstieg <=', $end->format('Y-m-d'));
return $this->loadWhere([
's.studierendenantrag_statustyp_kurzbz' => Studierendenantragstatus_model::STATUS_APPROVED,
$this->dbTable.'.typ' => self::TYP_UNTERBRECHUNG,
]);
}
public function getWithLastStatusWhere($where)
{
$this->addJoin(
'campus.tbl_studierendenantrag_status s',
'campus.get_status_id_studierendenantrag(' . $this->dbTable . '.studierendenantrag_id)=s.studierendenantrag_status_id'
);
return $this->loadWhere($where);
}
}
@@ -0,0 +1,79 @@
<?php
class Studierendenantraglehrveranstaltung_model extends DB_Model
{
/**
* Constructor
*/
public function __construct()
{
parent::__construct();
$this->dbTable = 'campus.tbl_studierendenantrag_lehrveranstaltung';
$this->pk = 'studierendenantrag_lehrveranstaltung_id';
}
public function insertBatch($data)
{
// Check class properties
if (is_null($this->dbTable)) return error('The given database table name is not valid', EXIT_MODEL);
// DB-INSERT
$insert = $this->db->insert_batch($this->dbTable, $data);
if ($insert)
{
return success();
}
else
{
return error($this->db->error(), EXIT_DATABASE);
}
}
public function deleteWhere($where)
{
if (is_null($this->dbTable)) return error('The given database table name is not valid', EXIT_MODEL);
$delete = $this->db->delete($this->dbTable, $where);
if ($delete)
{
return success();
}
else
{
return error($this->db->error(), EXIT_DATABASE);
}
}
public function getLvsForPrestudent($prestudent_id, $studiensemester_kurzbz)
{
$this->addSelect($this->dbTable . '.*');
$this->addSelect('a.prestudent_id');
$this->addSelect('lv.bezeichnung as lv_bezeichnung');
$this->addSelect('stat.insertamum as freigabedatum');
$this->addSelect('n.bezeichnung as note_bezeichnung');
$this->addSelect('stg.bezeichnung as stg_bezeichnung');
$this->addJoin('campus.tbl_studierendenantrag a', 'studierendenantrag_id');
$this->addJoin('lehre.tbl_note n', 'note');
$this->addJoin('lehre.tbl_lehrveranstaltung lv', 'lehrveranstaltung_id');
$this->addJoin('public.tbl_prestudent ps', 'prestudent_id');
$this->addJoin('public.tbl_studiengang stg', 'ps.studiengang_kz = stg.studiengang_kz');
$this->addJoin(
'campus.tbl_studierendenantrag_status stat',
'stat.studierendenantrag_status_id = campus.get_status_id_studierendenantrag(a.studierendenantrag_id)'
);
$this->addJoin('public.tbl_student s', 'prestudent_id');
$this->addJoin('lehre.tbl_zeugnisnote z', 'z.lehrveranstaltung_id=lv.lehrveranstaltung_id AND z.student_uid=s.student_uid AND z.studiensemester_kurzbz=a.studiensemester_kurzbz', 'LEFT');
return $this->loadWhere([
'ps.prestudent_id' => $prestudent_id,
'a.typ' => Studierendenantrag_model::TYP_WIEDERHOLUNG,
'stat.studierendenantrag_statustyp_kurzbz' => Studierendenantragstatus_model::STATUS_APPROVED,
'n.note <> ' => 0,
$this->dbTable . '.studiensemester_kurzbz' => $studiensemester_kurzbz,
'(n.note<>19 OR z.note IS NOT NULL)' => null
]);
}
}
@@ -0,0 +1,52 @@
<?php
class Studierendenantragstatus_model extends DB_Model
{
const STATUS_CREATED = 'Erstellt';
const STATUS_CREATED_STGL = 'ErstelltStgl';
const STATUS_APPROVED = 'Genehmigt';
const STATUS_APPROVED_STGL = 'GenehmigtStgl';
const STATUS_REJECTED = 'Abgelehnt';
const STATUS_PASS = 'Verzichtet';
const STATUS_REOPENED = 'Offen';
const STATUS_CANCELLED = 'Zurückgezogen';
const STATUS_LVSASSIGNED = 'Lvszugewiesen';
const STATUS_REMINDERSENT = 'EmailVersandt';
const STATUS_REQUESTSENT_1 = 'ErsteAufforderungVersandt';
const STATUS_REQUESTSENT_2 = 'ZweiteAufforderungVersandt';
const STATUS_OBJECTED = 'Beeinsprucht';
/**
* Constructor
*/
public function __construct()
{
parent::__construct();
$this->dbTable = 'campus.tbl_studierendenantrag_status';
$this->pk = 'studierendenantrag_status_id';
}
public function loadWithTyp($studierendenantrag_status_id)
{
$lang = 'SELECT index FROM public.tbl_sprache WHERE sprache=' . $this->escape(getUserLanguage());
$this->addSelect($this->dbTable . '.*');
$this->addSelect('bezeichnung[(' . $lang . ')] AS typ');
$this->addJoin('campus.tbl_studierendenantrag_statustyp', 'studierendenantrag_statustyp_kurzbz');
return $this->load($studierendenantrag_status_id);
}
public function loadWithTypWhere($where)
{
$lang = 'SELECT index FROM public.tbl_sprache WHERE sprache=' . $this->escape(getUserLanguage());
$this->addSelect($this->dbTable . '.*');
$this->addSelect('bezeichnung[(' . $lang . ')] AS typ');
$this->addJoin('campus.tbl_studierendenantrag_statustyp', 'studierendenantrag_statustyp_kurzbz');
return $this->loadWhere($where);
}
}
@@ -102,7 +102,7 @@ class Zeugnisnote_model extends DB_Model
JOIN lehre.tbl_zeugnisnote zgnisnote USING (student_uid)
JOIN lehre.tbl_note note ON zgnisnote.note = note.note
JOIN lehre.tbl_lehrveranstaltung lv USING (lehrveranstaltung_id)
JOIN public.tbl_studiengang stg ON prst.studiengang_kz = stg.studiengang_kz
JOIN public.tbl_studiengang stg ON prst.studiengang_kz = stg.studiengang_kz
WHERE pers.person_id = ?
AND zgnisnote.studiensemester_kurzbz = ?";
@@ -140,4 +140,83 @@ class Zeugnisnote_model extends DB_Model
return $this->execQuery($qry, $params);
}
/**
* Gets courses (Zeugnisnoten) for a student.
* @param string $student_uid,
* @param string $studiensemester_kurzbz
*
* @return object
*/
public function getZeugnisnoten($student_uid, $studiensemester_kurzbz)
{
$params = array();
$where='';
if ($student_uid != null)
{
$where .= " AND uid=?";
$params[] = $student_uid;
}
if ($studiensemester_kurzbz !=null)
{
$where.=" AND vw_student_lehrveranstaltung.studiensemester_kurzbz= ?";
$params[] = $studiensemester_kurzbz;
}
$where2='';
if ($student_uid != null)
{
$where2 .= " AND student_uid=?";
$params[] = $student_uid;
}
if ($studiensemester_kurzbz !=null)
{
$where2 .= " AND studiensemester_kurzbz= ?";
$params[] = $studiensemester_kurzbz;
}
$qry = "SELECT vw_student_lehrveranstaltung.lehrveranstaltung_id, uid,
vw_student_lehrveranstaltung.studiensemester_kurzbz, note, punkte, uebernahmedatum, benotungsdatum,
vw_student_lehrveranstaltung.ects, vw_student_lehrveranstaltung.semesterstunden,
tbl_zeugnisnote.updateamum, tbl_zeugnisnote.updatevon, tbl_zeugnisnote.insertamum,
tbl_zeugnisnote.insertvon, tbl_zeugnisnote.ext_id,
vw_student_lehrveranstaltung.bezeichnung as lehrveranstaltung_bezeichnung,
vw_student_lehrveranstaltung.bezeichnung_english as lehrveranstaltung_bezeichnung_english,
tbl_note.bezeichnung as note_bezeichnung,
tbl_note.positiv as note_positiv,
tbl_zeugnisnote.bemerkung as bemerkung,
vw_student_lehrveranstaltung.sort,
vw_student_lehrveranstaltung.zeugnis,
vw_student_lehrveranstaltung.studiengang_kz,
vw_student_lehrveranstaltung.lv_lehrform_kurzbz,
tbl_lehrveranstaltung.sws
FROM
(
campus.vw_student_lehrveranstaltung LEFT JOIN lehre.tbl_zeugnisnote
ON(uid=student_uid
AND vw_student_lehrveranstaltung.studiensemester_kurzbz=tbl_zeugnisnote.studiensemester_kurzbz
AND vw_student_lehrveranstaltung.lehrveranstaltung_id=tbl_zeugnisnote.lehrveranstaltung_id
)
) LEFT JOIN lehre.tbl_note USING(note)
JOIN lehre.tbl_lehrveranstaltung ON(vw_student_lehrveranstaltung.lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id)
WHERE true $where
UNION
SELECT lehre.tbl_lehrveranstaltung.lehrveranstaltung_id,student_uid AS uid,studiensemester_kurzbz, note, punkte,
uebernahmedatum, benotungsdatum,lehre.tbl_lehrveranstaltung.ects,lehre.tbl_lehrveranstaltung.semesterstunden, tbl_zeugnisnote.updateamum, tbl_zeugnisnote.updatevon, tbl_zeugnisnote.insertamum,
tbl_zeugnisnote.insertvon, tbl_zeugnisnote.ext_id, lehre.tbl_lehrveranstaltung.bezeichnung as lehrveranstaltung_bezeichnung, lehre.tbl_lehrveranstaltung.bezeichnung_english as lehrveranstaltung_bezeichnung_english,
tbl_note.bezeichnung as note_bezeichnung, tbl_note.positiv as note_positiv, tbl_zeugnisnote.bemerkung as bemerkung, tbl_lehrveranstaltung.sort, tbl_lehrveranstaltung.zeugnis, tbl_lehrveranstaltung.studiengang_kz,
tbl_lehrveranstaltung.lehrform_kurzbz as lv_lehrform_kurzbz, tbl_lehrveranstaltung.sws
FROM
lehre.tbl_zeugnisnote
JOIN lehre.tbl_lehrveranstaltung USING (lehrveranstaltung_id)
JOIN lehre.tbl_note USING(note)
WHERE true $where2
ORDER BY sort";
return $this->execQuery($qry, $params);
}
}