From 514205c17134c4f5909f4f1d314c28f633701429 Mon Sep 17 00:00:00 2001 From: KarpAlex Date: Fri, 23 Dec 2022 02:44:22 +0100 Subject: [PATCH] lehrstunde get Stundenplan: changed how data for students is retrieved, so that correct gruppen, lektoren etc can be displayed --- include/lehrstunde.class.php | 57 ++++++++++++++++++++++++++++-------- 1 file changed, 45 insertions(+), 12 deletions(-) diff --git a/include/lehrstunde.class.php b/include/lehrstunde.class.php index e79533ae7..7c14a6837 100644 --- a/include/lehrstunde.class.php +++ b/include/lehrstunde.class.php @@ -570,6 +570,8 @@ class lehrstunde extends basis_db $sql_query_stdplan.=' WHERE'.$sql_query; } + var_dump($sql_query_stdplan); + //Datenbankabfrage if (!$this->db_query($sql_query_stdplan)) { @@ -1119,26 +1121,57 @@ class lehrstunde extends basis_db } elseif($student_uid!='') { - $qry.=" tbl_lehreinheit.studiensemester_kurzbz = ".$this->db_add_param($studiensemester_kurzbz)." + $qry.=" tbl_lehreinheit.studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz)." AND ( + lehreinheit_id IN ( + SELECT tbl_lehreinheit.lehreinheit_id + FROM lehre.tbl_lehreinheitgruppe, + tbl_benutzergruppe, + lehre.tbl_lehreinheit + WHERE tbl_lehreinheitgruppe.gruppe_kurzbz::text = tbl_benutzergruppe.gruppe_kurzbz::text + AND tbl_lehreinheit.lehreinheit_id = tbl_lehreinheitgruppe.lehreinheit_id + AND tbl_lehreinheit.studiensemester_kurzbz::text = tbl_benutzergruppe.studiensemester_kurzbz::text + AND uid=".$this->db_add_param($student_uid)." + AND tbl_lehreinheit.studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz)." + UNION + SELECT tbl_lehreinheit.lehreinheit_id + FROM lehre.tbl_lehreinheitgruppe, + tbl_studentlehrverband, + lehre.tbl_lehreinheit + WHERE + ( + ( + tbl_lehreinheit.lehreinheit_id = tbl_lehreinheitgruppe.lehreinheit_id + AND tbl_lehreinheit.studiensemester_kurzbz = tbl_studentlehrverband.studiensemester_kurzbz + AND tbl_studentlehrverband.studiengang_kz = tbl_lehreinheitgruppe.studiengang_kz + AND tbl_studentlehrverband.semester = tbl_lehreinheitgruppe.semester + AND ( + btrim(tbl_studentlehrverband.verband::text) = btrim(tbl_lehreinheitgruppe.verband::text) + OR (tbl_lehreinheitgruppe.verband IS NULL OR btrim(tbl_lehreinheitgruppe.verband::text) = '') + AND tbl_lehreinheitgruppe.gruppe_kurzbz IS NULL + ) + AND ( + btrim(tbl_studentlehrverband.gruppe::text) = btrim(tbl_lehreinheitgruppe.gruppe::text) + OR (tbl_lehreinheitgruppe.gruppe IS NULL OR btrim(tbl_lehreinheitgruppe.gruppe::text) = '') + AND tbl_lehreinheitgruppe.gruppe_kurzbz IS NULL + ) + ) + ) + AND student_uid=".$this->db_add_param($student_uid)." AND tbl_lehreinheit.studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz)." + ) + OR EXISTS ( - SELECT 1 FROM public.tbl_studentlehrverband stlv - WHERE student_uid=".$this->db_add_param($student_uid)." - AND studiensemester_kurzbz = ".$this->db_add_param($studiensemester_kurzbz)." - AND studiengang_kz = stpl.studiengang_kz + SELECT 1 FROM public.tbl_studentlehrverband lvb + JOIN lehre.tbl_lehreinheit le ON lvb.studiensemester_kurzbz = le.studiensemester_kurzbz AND le.lehreinheit_id = tbl_lehreinheit.lehreinheit_id + WHERE + studiengang_kz = stpl.studiengang_kz AND (semester = stpl.semester OR stpl.semester IS NULL) AND (verband = stpl.verband OR stpl.verband IS NULL OR stpl.verband ='0' OR stpl.verband = '') AND (gruppe = stpl.gruppe OR stpl.gruppe IS NULL OR stpl.gruppe ='0' OR stpl.gruppe = '') + AND lvb.student_uid=".$this->db_add_param($student_uid)." AND lvb.studiensemester_kurzbz = ".$this->db_add_param($studiensemester_kurzbz)." AND stpl.gruppe_kurzbz IS NULL ) - OR EXISTS - ( - SELECT 1 FROM public.tbl_benutzergruppe - WHERE uid=".$this->db_add_param($student_uid)." - AND gruppe_kurzbz = stpl.gruppe_kurzbz - AND (studiensemester_kurzbz = ".$this->db_add_param($studiensemester_kurzbz)." OR studiensemester_kurzbz IS NULL) - ) ) "; } else