From d0d0f3cc427f1cebeb02f72e0465474d531ee1b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Fri, 7 May 2010 11:32:20 +0000 Subject: [PATCH] =?UTF-8?q?-=20ZGV-Master=20wird=20bei=20ZGV=20Filtern=20b?= =?UTF-8?q?ei=20Masterstudieng=C3=A4ngen=20jetzt=20richtig=20ber=C3=BCcksi?= =?UTF-8?q?chtigt=20-=20Bugfix=20beim=20L=C3=B6schen=20von=20Vorschl=C3=A4?= =?UTF-8?q?gen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- content/statistik/bewerberstatistik.php | 24 ++++++++++++------------ include/benutzerberechtigung.class.php | 14 ++++++++------ include/betriebsmittel.class.php | 2 +- include/prestudent.class.php | 7 ++++++- include/vorschlag.class.php | 17 ++++++++++++++++- 5 files changed, 43 insertions(+), 21 deletions(-) diff --git a/content/statistik/bewerberstatistik.php b/content/statistik/bewerberstatistik.php index 6f77b9861..aeae82d83 100644 --- a/content/statistik/bewerberstatistik.php +++ b/content/statistik/bewerberstatistik.php @@ -232,13 +232,13 @@ if(isset($_GET['excel'])) (SELECT count(*) FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id) WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Interessent' AND studiensemester_kurzbz='$stsem' - AND (zgv_code IS NOT NULL OR zgvmas_code IS NOT NULL)) AS interessentenzgv, + AND ((stg.typ<>'m' AND zgv_code IS NOT NULL) OR zgvmas_code IS NOT NULL)) AS interessentenzgv, (SELECT count(*) FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id) JOIN public.tbl_person USING(person_id) WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Interessent' AND studiensemester_kurzbz='$stsem' AND geschlecht='m' - AND (zgv_code IS NOT NULL OR zgvmas_code IS NOT NULL)) AS interessentenzgv_m, + AND ((stg.typ<>'m' AND zgv_code IS NOT NULL) OR zgvmas_code IS NOT NULL)) AS interessentenzgv_m, (SELECT count(*) FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id) JOIN public.tbl_person USING(person_id) WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Interessent' AND studiensemester_kurzbz='$stsem' AND geschlecht='w' - AND (zgv_code IS NOT NULL OR zgvmas_code IS NOT NULL)) AS interessentenzgv_w, + AND ((stg.typ<>'m' AND zgv_code IS NOT NULL) OR zgvmas_code IS NOT NULL)) AS interessentenzgv_w, (SELECT count(*) FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id) WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Interessent' AND studiensemester_kurzbz='$stsem' @@ -548,13 +548,13 @@ if(isset($_GET['excel'])) ) AS interessenten_fst, (SELECT count(*) FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id) WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Interessent' AND studiensemester_kurzbz='$stsem' - AND (zgv_code IS NOT NULL OR zgvmas_code IS NOT NULL) AND orgform_kurzbz='BB') AS interessentenzgv_bb, + AND ((stg.typ<>'m' AND zgv_code IS NOT NULL) OR zgvmas_code IS NOT NULL) AND orgform_kurzbz='BB') AS interessentenzgv_bb, (SELECT count(*) FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id) WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Interessent' AND studiensemester_kurzbz='$stsem' - AND (zgv_code IS NOT NULL OR zgvmas_code IS NOT NULL) AND orgform_kurzbz='VZ') AS interessentenzgv_vz, + AND ((stg.typ<>'m' AND zgv_code IS NOT NULL) OR zgvmas_code IS NOT NULL) AND orgform_kurzbz='VZ') AS interessentenzgv_vz, (SELECT count(*) FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id) WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Interessent' AND studiensemester_kurzbz='$stsem' - AND (zgv_code IS NOT NULL OR zgvmas_code IS NOT NULL) AND orgform_kurzbz='FST') AS interessentenzgv_FST, + AND ((stg.typ<>'m' AND zgv_code IS NOT NULL) OR zgvmas_code IS NOT NULL) AND orgform_kurzbz='FST') AS interessentenzgv_FST, (SELECT count(*) FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id) WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Interessent' AND studiensemester_kurzbz='$stsem' @@ -1714,13 +1714,13 @@ else (SELECT count(*) FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id) WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Interessent' AND studiensemester_kurzbz='$stsem' - AND (zgv_code IS NOT NULL OR zgvmas_code IS NOT NULL)) AS interessentenzgv, + AND ((stg.typ<>'m' AND zgv_code IS NOT NULL) OR zgvmas_code IS NOT NULL)) AS interessentenzgv, (SELECT count(*) FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id) JOIN public.tbl_person USING(person_id) WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Interessent' AND studiensemester_kurzbz='$stsem' AND geschlecht='m' - AND (zgv_code IS NOT NULL OR zgvmas_code IS NOT NULL)) AS interessentenzgv_m, + AND ((stg.typ<>'m' AND zgv_code IS NOT NULL) OR zgvmas_code IS NOT NULL)) AS interessentenzgv_m, (SELECT count(*) FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id) JOIN public.tbl_person USING(person_id) WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Interessent' AND studiensemester_kurzbz='$stsem' AND geschlecht='w' - AND (zgv_code IS NOT NULL OR zgvmas_code IS NOT NULL)) AS interessentenzgv_w, + AND ((stg.typ<>'m' AND zgv_code IS NOT NULL) OR zgvmas_code IS NOT NULL)) AS interessentenzgv_w, (SELECT count(*) FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id) WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Interessent' AND studiensemester_kurzbz='$stsem' @@ -1916,13 +1916,13 @@ else ) AS interessenten_fst, (SELECT count(*) FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id) WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Interessent' AND studiensemester_kurzbz='$stsem' - AND (zgv_code IS NOT NULL OR zgvmas_code IS NOT NULL) AND orgform_kurzbz='BB') AS interessentenzgv_bb, + AND ((stg.typ<>'m' AND zgv_code IS NOT NULL) OR zgvmas_code IS NOT NULL) AND orgform_kurzbz='BB') AS interessentenzgv_bb, (SELECT count(*) FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id) WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Interessent' AND studiensemester_kurzbz='$stsem' - AND (zgv_code IS NOT NULL OR zgvmas_code IS NOT NULL) AND orgform_kurzbz='VZ') AS interessentenzgv_vz, + AND ((stg.typ<>'m' AND zgv_code IS NOT NULL) OR zgvmas_code IS NOT NULL) AND orgform_kurzbz='VZ') AS interessentenzgv_vz, (SELECT count(*) FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id) WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Interessent' AND studiensemester_kurzbz='$stsem' - AND (zgv_code IS NOT NULL OR zgvmas_code IS NOT NULL) AND orgform_kurzbz='FST') AS interessentenzgv_FST, + AND ((stg.typ<>'m' AND zgv_code IS NOT NULL) OR zgvmas_code IS NOT NULL) AND orgform_kurzbz='FST') AS interessentenzgv_FST, (SELECT count(*) FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id) WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Interessent' AND studiensemester_kurzbz='$stsem' diff --git a/include/benutzerberechtigung.class.php b/include/benutzerberechtigung.class.php index 110bcb98a..f69d56d8f 100644 --- a/include/benutzerberechtigung.class.php +++ b/include/benutzerberechtigung.class.php @@ -552,7 +552,7 @@ class benutzerberechtigung extends basis_db foreach ($this->berechtigungen as $b) { - if (($berechtigung_kurzbz==$b->berechtigung_kurzbz || $berechtigung_kurzbz==null) + if (($berechtigung_kurzbz==$b->berechtigung_kurzbz || $berechtigung_kurzbz==null || mb_substr($berechtigung_kurzbz,0,mb_strpos($berechtigung_kurzbz,':'))==$b->berechtigung_kurzbz) && (($timestamp>$b->starttimestamp || $b->starttimestamp==null) && ($timestamp<$b->endetimestamp || $b->endetimestamp==null))) { if($b->negativ) @@ -606,9 +606,10 @@ class benutzerberechtigung extends basis_db if($this->db_query($qry)) while($row = $this->db_fetch_object()) $studiengang_kz[]=$row->studiengang_kz; - + $studiengang_kz=array_unique($studiengang_kz); sort($studiengang_kz); + return $studiengang_kz; } @@ -629,7 +630,7 @@ class benutzerberechtigung extends basis_db foreach ($this->berechtigungen as $b) { - if (($berechtigung_kurzbz==$b->berechtigung_kurzbz || $berechtigung_kurzbz==null) + if (($berechtigung_kurzbz==$b->berechtigung_kurzbz || $berechtigung_kurzbz==null || mb_substr($berechtigung_kurzbz,0,mb_strpos($berechtigung_kurzbz,':'))==$b->berechtigung_kurzbz) && (($timestamp>$b->starttimestamp || $b->starttimestamp==null) && ($timestamp<$b->endetimestamp || $b->endetimestamp==null))) { if($b->negativ) @@ -697,12 +698,12 @@ class benutzerberechtigung extends basis_db { $oe_kurzbz=array(); $timestamp=time(); - $not=''; + $not=array(); $all=false; $oe = new organisationseinheit(); foreach ($this->berechtigungen as $b) { - if (($berechtigung_kurzbz==$b->berechtigung_kurzbz || $berechtigung_kurzbz==null) + if (($berechtigung_kurzbz==$b->berechtigung_kurzbz || $berechtigung_kurzbz==null || mb_substr($berechtigung_kurzbz,0,mb_strpos($berechtigung_kurzbz,':'))==$b->berechtigung_kurzbz) && (($timestamp>$b->starttimestamp || $b->starttimestamp==null) && ($timestamp<$b->endetimestamp || $b->endetimestamp==null))) { if($b->negativ) @@ -712,7 +713,7 @@ class benutzerberechtigung extends basis_db { $childoes = $oe->getChilds($b->oe_kurzbz); foreach($childoes as $row) - $not .="'".addslashes($row)."',"; + $not[] = $row; } else return array(); @@ -739,6 +740,7 @@ class benutzerberechtigung extends basis_db $oe->loadParentsArray(); $oe_kurzbz = array_keys(organisationseinheit::$oe_parents_array); } + $oe_kurzbz = array_diff($oe_kurzbz, $not); $oe_kurzbz=array_unique($oe_kurzbz); sort($oe_kurzbz); return $oe_kurzbz; diff --git a/include/betriebsmittel.class.php b/include/betriebsmittel.class.php index fd2bc6812..7951ad002 100644 --- a/include/betriebsmittel.class.php +++ b/include/betriebsmittel.class.php @@ -152,7 +152,7 @@ class betriebsmittel extends basis_db { $qry = "SELECT * FROM wawi.tbl_betriebsmittel WHERE inventarnummer='$this->inventarnummer'"; if($betriebsmittel_id!='') - $qry.=" AND tbl_betriebsmittel_id<>'$this->betriebsmittel_id'"; + $qry.=" AND betriebsmittel_id<>'$this->betriebsmittel_id'"; if($result = $this->db_query($qry)) { if($this->db_num_rows($result)>0) diff --git a/include/prestudent.class.php b/include/prestudent.class.php index d52a42394..b6c82cd1f 100644 --- a/include/prestudent.class.php +++ b/include/prestudent.class.php @@ -501,7 +501,12 @@ class prestudent extends person $qry.=" AND a.rolle='Interessent'"; break; case "zgv": - $qry.=" AND a.rolle='Interessent' AND (a.zgv_code is not null OR a.zgvmas_code is not null)"; + $stg_obj = new studiengang(); + $stg_obj->load($studiengang_kz); + if($stg_obj->typ=='m') + $qry.=" AND a.rolle='Interessent' AND a.zgvmas_code is not null"; + else + $qry.=" AND a.rolle='Interessent' AND a.zgv_code is not null"; break; case "reihungstestangemeldet": $qry.=" AND a.rolle='Interessent' AND a.anmeldungreihungstest is not null"; diff --git a/include/vorschlag.class.php b/include/vorschlag.class.php index bc938e3eb..3a0d7efbc 100644 --- a/include/vorschlag.class.php +++ b/include/vorschlag.class.php @@ -310,7 +310,22 @@ class vorschlag extends basis_db */ public function delete($vorschlag_id) { - $qry = "DELETE FROM testtool.tbl_vorschlag WHERE vorschlag_id='".addslashes($vorschlag_id)."'"; + $qry = "SELECT count(*) as anzahl FROM testtool.tbl_antwort WHERE vorschlag_id='".addslashes($vorschlag_id)."'"; + if($this->db_query($qry)) + { + if($row = $this->db_fetch_object()) + { + if($row->anzahl>0) + { + $this->errormsg='Fehler: Sie muessen zuerst alle Antworten zu diesem Vorschlag entfernen!'; + return false; + } + } + } + + $qry = " + DELETE FROM testtool.tbl_vorschlag_sprache WHERE vorschlag_id='".addslashes($vorschlag_id)."'; + DELETE FROM testtool.tbl_vorschlag WHERE vorschlag_id='".addslashes($vorschlag_id)."'"; if($this->db_query($qry)) return true; else