From 6324c3d4679b5907d2ee322af9a345633df484d3 Mon Sep 17 00:00:00 2001 From: ma0068 Date: Mon, 16 Mar 2026 09:08:52 +0100 Subject: [PATCH] add subquery for showing lvs of stundenplan in dependance of new parameter, deleting unused part of old parameter --- .../api/frontend/v1/stv/LvTermine.php | 4 +- .../models/ressource/Stundenplan_model.php | 45 +++++++------------ public/js/api/factory/stv/coursedates.js | 3 +- .../ListLehrveranstaltungstermine.js | 5 ++- 4 files changed, 24 insertions(+), 33 deletions(-) diff --git a/application/controllers/api/frontend/v1/stv/LvTermine.php b/application/controllers/api/frontend/v1/stv/LvTermine.php index c29f56964..d36dc994e 100644 --- a/application/controllers/api/frontend/v1/stv/LvTermine.php +++ b/application/controllers/api/frontend/v1/stv/LvTermine.php @@ -60,8 +60,8 @@ class LvTermine extends FHCAPI_Controller $semester_range, $benutzer_gruppen, $student_lehrverband, - true, - $dbStundenplanTable + $dbStundenplanTable, + true ); if(!$stundenplan_query) diff --git a/application/models/ressource/Stundenplan_model.php b/application/models/ressource/Stundenplan_model.php index ff39c6d5b..6d323b2d4 100644 --- a/application/models/ressource/Stundenplan_model.php +++ b/application/models/ressource/Stundenplan_model.php @@ -397,8 +397,8 @@ class Stundenplan_model extends DB_Model * * @return mixed */ - public function getStundenplanQuery($start_date, $end_date, $semester, $gruppen, $studentlehrverbaende, $isLvList=false, $db_stpl_table='stundenplan'){ - + public function getStundenplanQuery($start_date, $end_date, $semester, $gruppen, $studentlehrverbaende, $db_stpl_table='stundenplan', $showLvsStundenplan=false) + { // helper function to check if either $gruppen or $studentlehrverbaende are empty for each semester $emptyCheck = function($toBeCheckedArray) use ($semester){ $result = true; @@ -454,12 +454,6 @@ class Stundenplan_model extends DB_Model $query = substr($query, 0, -2); } - //Condition for showLVList FHC4 - if(!$isLvList) - $stringGroupLv = "AND gruppe_kurzbz is null"; - else - $stringGroupLv =""; - foreach($semester as $sem=>$semester_date_range) { foreach($semester_date_range as $sem_date => $sem_date_range) @@ -477,29 +471,22 @@ class Stundenplan_model extends DB_Model $query .= "OR (sp.studiengang_kz = ".$this->escape($lehrverband->studiengang_kz)." AND sp.semester = ".$this->escape($lehrverband->semester)." AND (sp.verband is null OR sp.verband='') AND sp.datum BETWEEN ".$this->escape($sem_date_range->start) ." AND ".$this->escape($sem_date_range->ende).")) AND gruppe_kurzbz is null)"; - //add lehreinheiten directly from Stundenplan - /* $query.= "OR EXISTS ( - SELECT 1 - FROM lehre.tbl_stundenplan tsp - WHERE tsp.lehreinheit_id = sp.lehreinheit_id - AND tsp.studiengang_kz = ".$this->escape($lehrverband->studiengang_kz)." - AND (tsp.semester = ".$this->escape($lehrverband->semester)." OR tsp.semester IS NULL) - AND ( - tsp.verband = ".$this->escape($lehrverband->verband)." - OR tsp.verband IS NULL - OR tsp.verband = '0' - OR tsp.verband = '' - ) - AND ( - tsp.gruppe = ".$this->escape($lehrverband->gruppe)." - OR tsp.gruppe IS NULL - OR tsp.gruppe = '0' - OR tsp.gruppe = '' - ) - AND tsp.gruppe_kurzbz IS NULL "; */ + // Eintraege vom Stundenplan + if($showLvsStundenplan) + { + $query .= " + OR EXISTS ( + SELECT 1 + FROM lehre.tbl_stundenplan tsp + WHERE tsp.lehreinheit_id = sp.lehreinheit_id + AND tsp.studiengang_kz = " . $this->escape($lehrverband->studiengang_kz) . " + AND (tsp.semester = " . $this->escape($lehrverband->semester) . " OR tsp.semester IS NULL) + AND (tsp.verband = " . $this->escape($lehrverband->verband) . " OR tsp.verband IS NULL OR tsp.verband = '0' OR tsp.verband = '') + AND (tsp.gruppe = " . $this->escape($lehrverband->gruppe) . " OR tsp.gruppe IS NULL OR tsp.gruppe = '0' OR tsp.gruppe = '') + AND tsp.gruppe_kurzbz IS NULL)"; + } $query .= "OR"; - } } } diff --git a/public/js/api/factory/stv/coursedates.js b/public/js/api/factory/stv/coursedates.js index 71ded7285..8ae24ec0e 100644 --- a/public/js/api/factory/stv/coursedates.js +++ b/public/js/api/factory/stv/coursedates.js @@ -23,7 +23,8 @@ export default { + params.start_date + '/' + params.end_date + '/' + params.group_consecutiveHours + '/' - + params.dbStundenplanTable + + params.dbStundenplanTable + '/' + + params.showLvsStundenplan }; }, getStudiensemester(){ diff --git a/public/js/components/Stv/Studentenverwaltung/Details/Lehrveranstaltungstermine/ListLehrveranstaltungstermine.js b/public/js/components/Stv/Studentenverwaltung/Details/Lehrveranstaltungstermine/ListLehrveranstaltungstermine.js index b664964f7..7663ac479 100644 --- a/public/js/components/Stv/Studentenverwaltung/Details/Lehrveranstaltungstermine/ListLehrveranstaltungstermine.js +++ b/public/js/components/Stv/Studentenverwaltung/Details/Lehrveranstaltungstermine/ListLehrveranstaltungstermine.js @@ -54,7 +54,10 @@ export default { start_date: this.dataSem.start, end_date: this.dataSem.ende, group_consecutiveHours: true, - dbStundenplanTable: this.dbStundenplanTable}) + dbStundenplanTable: this.dbStundenplanTable, + showLvsStundenplan: true + }) + ), ajaxResponse: (url, params, response) => { return response.data;