From 8a809fd1f30a52379bf9feedd420bc59b1c1b8f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Thu, 23 Jan 2020 08:30:51 +0100 Subject: [PATCH] =?UTF-8?q?Fehler=20behoben=20im=20Kollisionscheck=20beim?= =?UTF-8?q?=20Setzen=20von=20neuen=20Stunden=20mit=20direkten=20Gruppen.?= =?UTF-8?q?=20Hier=20wurde=20f=C3=A4lschlicherweise=20eine=20Kollisionsmel?= =?UTF-8?q?dung=20angezeigt=20obwohl=20laut=20Raumvorschlag=20eine=20Zuord?= =?UTF-8?q?nung=20m=C3=B6glich=20ist?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- include/lehreinheit.class.php | 38 ++++++++++++++++++++++++----------- 1 file changed, 26 insertions(+), 12 deletions(-) diff --git a/include/lehreinheit.class.php b/include/lehreinheit.class.php index c6c1c0228..3d754d7ec 100644 --- a/include/lehreinheit.class.php +++ b/include/lehreinheit.class.php @@ -532,20 +532,34 @@ class lehreinheit extends basis_db for($anz=0;$anzstudiengang_kz);$anz++) { - $sql_query.=" OR ((studiengang_kz=".$this->db_add_param($this->studiengang_kz[$anz])." AND semester=".$this->db_add_param($this->semester[$anz]).")"; + // Direkte Gruppen kollidieren nicht + $direktgruppe = false; + if($this->gruppe_kurzbz[$anz]!=null && $this->gruppe_kurzbz[$anz]!='' && $this->gruppe_kurzbz[$anz]!=' ') + { + $grp_obj = new gruppe(); + $grp_obj->load($this->gruppe_kurzbz[$anz]); + if($grp_obj->direktinskription) + { + $direktgruppe = true; + } + } + if(!$direktgruppe) + { + $sql_query.=" OR ((studiengang_kz=".$this->db_add_param($this->studiengang_kz[$anz])." AND semester=".$this->db_add_param($this->semester[$anz]).")"; - if ($this->gruppe_kurzbz[$anz]!=null && $this->gruppe_kurzbz[$anz]!='' && $this->gruppe_kurzbz[$anz]!=' ') - { - $sql_query.=" OR (gruppe_kurzbz=".$this->db_add_param($this->gruppe_kurzbz[$anz]).")"; + if ($this->gruppe_kurzbz[$anz]!=null && $this->gruppe_kurzbz[$anz]!='' && $this->gruppe_kurzbz[$anz]!=' ') + { + $sql_query.=" OR (gruppe_kurzbz=".$this->db_add_param($this->gruppe_kurzbz[$anz]).")"; + } + else + { + if ($this->verband[$anz]!=null && $this->verband[$anz]!='' && $this->verband[$anz]!=' ') + $sql_query.=" AND (verband=".$this->db_add_param($this->verband[$anz])." OR verband IS NULL OR verband='' OR verband=' ')"; + if ($this->gruppe[$anz]!=null && $this->gruppe[$anz]!='' && $this->gruppe[$anz]!=' ') + $sql_query.=" AND (gruppe=".$this->db_add_param($this->gruppe[$anz])." OR gruppe IS NULL OR gruppe='' OR gruppe=' ')"; + } + $sql_query.=')'; } - else - { - if ($this->verband[$anz]!=null && $this->verband[$anz]!='' && $this->verband[$anz]!=' ') - $sql_query.=" AND (verband=".$this->db_add_param($this->verband[$anz])." OR verband IS NULL OR verband='' OR verband=' ')"; - if ($this->gruppe[$anz]!=null && $this->gruppe[$anz]!='' && $this->gruppe[$anz]!=' ') - $sql_query.=" AND (gruppe=".$this->db_add_param($this->gruppe[$anz])." OR gruppe IS NULL OR gruppe='' OR gruppe=' ')"; - } - $sql_query.=')'; } $sql_query.=")";