From 0e4c7dcd14bb8da9b83d483831a5a63febe77e68 Mon Sep 17 00:00:00 2001 From: Alexei Karpenko Date: Fri, 13 Mar 2026 16:36:58 +0100 Subject: [PATCH] Ferien: prefilled oe_kurzbz column, stundenplan: adapted to get ferien by oe_kurzbz of studiengang --- include/ferien.class.php | 50 +++++++++++++++++++++- system/dbupdate_3.4.php | 2 +- system/dbupdate_3.4/71405_ferienzeiten.php | 5 ++- 3 files changed, 54 insertions(+), 3 deletions(-) diff --git a/include/ferien.class.php b/include/ferien.class.php index 3246502f7..d95ee8f15 100644 --- a/include/ferien.class.php +++ b/include/ferien.class.php @@ -24,6 +24,7 @@ * @create 07-12-2006 */ require_once(dirname(__FILE__).'/basis_db.class.php'); +require_once(dirname(__FILE__).'/organisationseinheit.class.php'); class ferien extends basis_db { @@ -62,8 +63,55 @@ class ferien extends basis_db $this->errormsg = 'Studiengang_kz ist ungültig'; return false; } + + // get oe from studiengang + $sql_query=" + SELECT + oe_kurzbz + FROM + public.tbl_studiengang + WHERE + studiengang_kz=".$this->db_add_param($stg_kz, FHC_INTEGER)." + ORDER BY + studiengang_kz"; - $sql_query="SELECT * FROM lehre.tbl_ferien WHERE studiengang_kz=0 OR studiengang_kz=".$this->db_add_param($stg_kz, FHC_INTEGER)." ORDER BY vondatum;"; + if (!$this->db_query($sql_query)) + { + $this->errormsg = $this->db_last_error(); + return false; + } + + $oe_kurzbz = ''; + while ($row = $this->db_fetch_object()) + { + $oe_kurzbz = $row->oe_kurzbz; + } + + // get all parents oes + $organisationseinheit = new organisationseinheit(); + $parents = $organisationseinheit->getParents($oe_kurzbz); + + if (!$parents) + { + $this->errormsg = $parents->errormsg; + return false; + } + + $sql_query=" + SELECT + * + FROM + lehre.tbl_ferien + WHERE + (CASE + WHEN oe_kurzbz IS NOT NULL + THEN oe_kurzbz IN (".$this->implode4SQL($parents).") + ELSE + studiengang_kz=0 + OR studiengang_kz=".$this->db_add_param($stg_kz, FHC_INTEGER)." + END) + ORDER BY + vondatum"; if (!$this->db_query($sql_query)) { diff --git a/system/dbupdate_3.4.php b/system/dbupdate_3.4.php index 514ee3496..145cf5596 100644 --- a/system/dbupdate_3.4.php +++ b/system/dbupdate_3.4.php @@ -250,7 +250,7 @@ $tabellen=array( "lehre.tbl_anrechnung_begruendung" => array("begruendung_id","bezeichnung"), "lehre.tbl_anrechnungszeitraum" => array("anrechnungszeitraum_id","studiensemester_kurzbz","anrechnungstart","anrechnungende", "insertamum", "insertvon"), "lehre.tbl_betreuerart" => array("betreuerart_kurzbz","beschreibung","aktiv"), - "lehre.tbl_ferien" => array("ferien_id","bezeichnung","studiengang_kz","vondatum","bisdatum"), + "lehre.tbl_ferien" => array("ferien_id","bezeichnung","studiengang_kz","vondatum","bisdatum","oe_kurzbz","studienplan_id","ferientyp_kurzbz","insertamum","insertvon","updateamum","updatevon"), "lehre.tbl_lehreinheit" => array("lehreinheit_id","lehrveranstaltung_id","studiensemester_kurzbz","lehrfach_id","lehrform_kurzbz","stundenblockung","wochenrythmus","start_kw","raumtyp","raumtypalternativ","sprache","lehre","anmerkung","unr","lvnr","updateamum","updatevon","insertamum","insertvon","ext_id","lehrfach_id_old","gewicht"), "lehre.tbl_lehreinheitgruppe" => array("lehreinheitgruppe_id","lehreinheit_id","studiengang_kz","semester","verband","gruppe","gruppe_kurzbz","updateamum","updatevon","insertamum","insertvon","ext_id"), "lehre.tbl_lehreinheitmitarbeiter" => array("lehreinheit_id","mitarbeiter_uid","lehrfunktion_kurzbz","semesterstunden","planstunden","stundensatz","faktor","anmerkung","bismelden","updateamum","updatevon","insertamum","insertvon","ext_id","standort_id","vertrag_id"), diff --git a/system/dbupdate_3.4/71405_ferienzeiten.php b/system/dbupdate_3.4/71405_ferienzeiten.php index dfd3e4ab7..0528a7838 100644 --- a/system/dbupdate_3.4/71405_ferienzeiten.php +++ b/system/dbupdate_3.4/71405_ferienzeiten.php @@ -136,7 +136,10 @@ if(!$result = @$db->db_query("SELECT oe_kurzbz FROM lehre.tbl_ferien LIMIT 1")) ADD COLUMN IF NOT EXISTS insertamum timestamp DEFAULT NOW(), ADD COLUMN IF NOT EXISTS insertvon VARCHAR(32), ADD COLUMN IF NOT EXISTS updateamum timestamp, - ADD COLUMN IF NOT EXISTS updatevon VARCHAR(32)"; + ADD COLUMN IF NOT EXISTS updatevon VARCHAR(32); + UPDATE lehre.tbl_ferien + SET oe_kurzbz = (SELECT oe_kurzbz FROM public.tbl_studiengang WHERE studiengang_kz = tbl_ferien.studiengang_kz) + WHERE oe_kurzbz IS NULL AND studiengang_kz IS NOT NULL;"; if(!$db->db_query($qry)) echo 'lehre.tbl_ferien: '.$db->db_last_error().'
';