mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-06-12 01:29:28 +00:00
fixes the query for the reservierungen in the stundenplan and in the raum informations
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user