fixes the query for the reservierungen in the stundenplan and in the raum informations

This commit is contained in:
SimonGschnell
2024-09-11 09:32:28 +02:00
parent 715b8075b8
commit 1de658ace6
3 changed files with 20 additions and 19 deletions
@@ -149,11 +149,9 @@ class Stundenplan extends FHCAPI_Controller
$stunden = $this->getDataOrTerminateWithError($stunden);
// querying the reservierungen
if(isset($ort_kurzbz)){
$result = $this->ReservierungModel->getReservierungen($start_date, $end_date, $ort_kurzbz);
}else{
$result = $this->ReservierungModel->getReservierungen($start_date, $end_date);
}
$result = $this->ReservierungModel->getReservierungen($start_date, $end_date, $ort_kurzbz);
$result = $this->getDataOrTerminateWithError($result);
$this->terminateWithSuccess($result);
@@ -21,30 +21,34 @@ class Reservierung_model extends DB_Model
public function getReservierungen($start_date, $end_date, $ort_kurzbz = null)
{
$stundenplan_reservierungen="SELECT r.* , beginn, ende
$stundenplan_reservierungen_query="SELECT r.* , stund.beginn, stund.ende,
CASE
WHEN r.gruppe_kurzbz IS NOT NULL THEN r.gruppe_kurzbz
ELSE CONCAT(UPPER(studg.typ),UPPER(studg.kurzbz),'-',COALESCE(CAST(r.semester AS varchar),'/'),COALESCE(CAST(r.verband AS varchar),'/'))
END as gruppen_kuerzel
FROM campus.vw_reservierung r
JOIN public.tbl_studiengang studg ON studg.studiengang_kz=r.studiengang_kz
JOIN lehre.tbl_stunde stund ON stund.stunde = r.stunde
LEFT JOIN public.tbl_benutzergruppe bg ON r.gruppe_kurzbz=bg.gruppe_kurzbz AND bg.uid=?
LEFT JOIN public.tbl_studiensemester ss1 ON bg.studiensemester_kurzbz=ss1.studiensemester_kurzbz AND ss1.start <= r.datum AND ss1.ende >= r.datum
LEFT JOIN public.tbl_studentlehrverband slv ON r.studiengang_kz=slv.studiengang_kz AND slv.student_uid=? AND (slv.semester=r.semester OR r.semester IS NULL) AND (slv.verband=r.verband OR r.verband IS NULL OR r.verband='' OR r.verband='0') AND (slv.gruppe=r.gruppe OR r.gruppe IS NULL OR r.gruppe ='' OR r.gruppe ='0') AND r.gruppe_kurzbz IS NULL
LEFT JOIN public.tbl_studiensemester ss2 ON slv.studiensemester_kurzbz = ss2.studiensemester_kurzbz AND ss2.start <=r.datum AND ss2.ende >= r.datum
JOIN lehre.tbl_stunde ON lehre.tbl_stunde.stunde = r.stunde
WHERE datum >= ? AND datum <= ? AND (ss1.studiensemester_kurzbz IS NOT NULL
OR ss2.studiensemester_kurzbz IS NOT NULL)";
$raum_reservierungen = "SELECT res.*, beginn, ende,
$raum_reservierungen_query = "SELECT res.*, beginn, ende,
CASE
WHEN res.gruppe_kurzbz IS NOT NULL THEN res.gruppe_kurzbz
ELSE CONCAT(UPPER(studg.typ),UPPER(studg.kurzbz),'-',COALESCE(CAST(res.semester AS varchar),'/'),COALESCE(CAST(res.verband AS varchar),'/'))
END as gruppen_kuerzel
FROM lehre.vw_reservierung res
JOIN public.tbl_studiengang studg ON studg.studiengang_kz=res.studiengang_kz
JOIN lehre.tbl_stunde ON lehre.tbl_stunde.stunde = res.stunde
WHERE res.ort_kurzbz = ? AND datum >= ? AND datum <= ?";
$raum_reservierungen= $this->execReadOnlyQuery("
$subquery = is_null($ort_kurzbz)? $stundenplan_reservierungen_query:$raum_reservierungen_query;
$query_result= $this->execReadOnlyQuery("
SELECT
'reservierung' as type, beginn, ende, datum,
COALESCE(titel, beschreibung) as topic,
@@ -55,7 +59,7 @@ class Reservierung_model extends DB_Model
FROM
(
". is_null($ort_kurzbz)? $stundenplan_reservierungen:$raum_reservierungen ."
". $subquery ."
) AS subquery
GROUP BY datum, beginn, ende, ort_kurzbz, titel, beschreibung
@@ -63,15 +67,15 @@ class Reservierung_model extends DB_Model
ORDER BY datum, beginn
", is_null($ort_kurzbz) ?[getAuthUID(), getAuthUID(),$start_date,$end_date]: [$ort_kurzbz, $start_date, $end_date]);
if(isError($raum_reservierungen)){
show_error(getError($raum_reservierungen));
if(isError($query_result)){
show_error(getError($query_result));
}
$raum_reservierungen = getData($raum_reservierungen) ?? [];
$query_result = getData($query_result) ?? [];
$this->load->model("ressrouce/Mitarbeiter_model","MitarbeiterModel");
foreach($raum_reservierungen as $reservierung){
foreach($query_result as $reservierung){
$lektor_obj_array = array();
$gruppe_obj_array = array();
@@ -114,7 +118,7 @@ class Reservierung_model extends DB_Model
$reservierung->lektor = $lektor_obj_array;
}
return success($raum_reservierungen);
return success($query_result);
}
/**
-1
View File
@@ -34,7 +34,6 @@ const app = Vue.createApp({
},
loadEvents: function(){
console.log("this are the days with which i am testing", this.weekFirstDay, this.weekLastDay)
Promise.allSettled([
this.$fhcApi.factory.stundenplan.getStundenplan(this.weekFirstDay, this.weekLastDay),
this.$fhcApi.factory.stundenplan.getStundenplanReservierungen(this.weekFirstDay, this.weekLastDay)