From 647cd1e8f97fe96aba819c455787f67451b720ae Mon Sep 17 00:00:00 2001 From: Andreas Moik Date: Fri, 9 Sep 2016 09:36:19 +0200 Subject: [PATCH] bugfix --- vendor/FHC-vendor/angular-tablesort | 1 + vilesci/personen/suche.php | 216 +++++++++++++++++++++------- 2 files changed, 163 insertions(+), 54 deletions(-) create mode 160000 vendor/FHC-vendor/angular-tablesort diff --git a/vendor/FHC-vendor/angular-tablesort b/vendor/FHC-vendor/angular-tablesort new file mode 160000 index 000000000..da6cb0646 --- /dev/null +++ b/vendor/FHC-vendor/angular-tablesort @@ -0,0 +1 @@ +Subproject commit da6cb06462b3cea8af69a74090b06de73dcfc4d6 diff --git a/vilesci/personen/suche.php b/vilesci/personen/suche.php index a60c90676..6d21518a3 100644 --- a/vilesci/personen/suche.php +++ b/vilesci/personen/suche.php @@ -483,9 +483,48 @@ function casDeleteMitarbeiter($db, $mitarbeiter_uid, $trans=true) if(!$error) { - $qry = ' - DELETE FROM addon.tbl_lvevaluierung_selbstevaluierung - WHERE lvevaluierung_id IN (SELECT lvevaluierung_id FROM addon.tbl_lvevaluierung_antwort + $tqry = "SELECT 1 + FROM INFORMATION_SCHEMA.TABLES + WHERE table_type='BASE TABLE' + AND table_schema='addon' + AND table_name='tbl_lvevaluierung_selbstevaluierung';"; + + if(!$result = $db->db_query($tqry)) + $error = true; + + if($db->db_num_rows($result)) + { + $qry = ' + DELETE FROM addon.tbl_lvevaluierung_selbstevaluierung + WHERE lvevaluierung_id IN (SELECT lvevaluierung_id FROM addon.tbl_lvevaluierung_antwort + WHERE lvevaluierung_code_id IN (SELECT lvevaluierung_code_id FROM addon.tbl_lvevaluierung_code + WHERE lvevaluierung_id IN (SELECT lvevaluierung_id FROM addon.tbl_lvevaluierung + WHERE lehrveranstaltung_id IN (SELECT lehrveranstaltung_id FROM campus.tbl_studentbeispiel + WHERE beispiel_id IN (SELECT beispiel_id FROM campus.tbl_beispiel + WHERE uebung_id IN (SELECT uebung_id FROM campus.tbl_uebung + WHERE lehreinheit_id IN (SELECT lehreinheit_id FROM lehre.tbl_lehreinheit + WHERE lehrveranstaltung_id IN (SELECT lehrveranstaltung_id FROM lehre.tbl_lehrveranstaltung + WHERE koordinator='.$db->db_add_param($mitarbeiter_uid).'))))))))'; + if(!$db->db_query($qry)) + $error = true; + } + } + + if(!$error) + { + $tqry = "SELECT 1 + FROM INFORMATION_SCHEMA.TABLES + WHERE table_type='BASE TABLE' + AND table_schema='addon' + AND table_name='tbl_lvevaluierung_antwort';"; + + if(!$result = $db->db_query($tqry)) + $error = true; + + if($db->db_num_rows($result)) + { + $qry = ' + DELETE FROM addon.tbl_lvevaluierung_antwort WHERE lvevaluierung_code_id IN (SELECT lvevaluierung_code_id FROM addon.tbl_lvevaluierung_code WHERE lvevaluierung_id IN (SELECT lvevaluierung_id FROM addon.tbl_lvevaluierung WHERE lehrveranstaltung_id IN (SELECT lehrveranstaltung_id FROM campus.tbl_studentbeispiel @@ -493,55 +532,64 @@ function casDeleteMitarbeiter($db, $mitarbeiter_uid, $trans=true) WHERE uebung_id IN (SELECT uebung_id FROM campus.tbl_uebung WHERE lehreinheit_id IN (SELECT lehreinheit_id FROM lehre.tbl_lehreinheit WHERE lehrveranstaltung_id IN (SELECT lehrveranstaltung_id FROM lehre.tbl_lehrveranstaltung - WHERE koordinator='.$db->db_add_param($mitarbeiter_uid).'))))))))'; - if(!$db->db_query($qry)) - $error = true; + WHERE koordinator='.$db->db_add_param($mitarbeiter_uid).')))))))'; + if(!$db->db_query($qry)) + $error = true; + } } + if(!$error) { - $qry = ' - DELETE FROM addon.tbl_lvevaluierung_antwort - WHERE lvevaluierung_code_id IN (SELECT lvevaluierung_code_id FROM addon.tbl_lvevaluierung_code + $tqry = "SELECT 1 + FROM INFORMATION_SCHEMA.TABLES + WHERE table_type='BASE TABLE' + AND table_schema='addon' + AND table_name='tbl_lvevaluierung_code';"; + + if(!$result = $db->db_query($tqry)) + $error = true; + + if($db->db_num_rows($result)) + { + $qry = ' + DELETE FROM addon.tbl_lvevaluierung_code WHERE lvevaluierung_id IN (SELECT lvevaluierung_id FROM addon.tbl_lvevaluierung WHERE lehrveranstaltung_id IN (SELECT lehrveranstaltung_id FROM campus.tbl_studentbeispiel WHERE beispiel_id IN (SELECT beispiel_id FROM campus.tbl_beispiel WHERE uebung_id IN (SELECT uebung_id FROM campus.tbl_uebung WHERE lehreinheit_id IN (SELECT lehreinheit_id FROM lehre.tbl_lehreinheit WHERE lehrveranstaltung_id IN (SELECT lehrveranstaltung_id FROM lehre.tbl_lehrveranstaltung - WHERE koordinator='.$db->db_add_param($mitarbeiter_uid).')))))))'; - if(!$db->db_query($qry)) - $error = true; + WHERE koordinator='.$db->db_add_param($mitarbeiter_uid).'))))))'; + if(!$db->db_query($qry)) + $error = true; + } } - if(!$error) { - $qry = ' - DELETE FROM addon.tbl_lvevaluierung_code - WHERE lvevaluierung_id IN (SELECT lvevaluierung_id FROM addon.tbl_lvevaluierung + $tqry = "SELECT 1 + FROM INFORMATION_SCHEMA.TABLES + WHERE table_type='BASE TABLE' + AND table_schema='addon' + AND table_name='tbl_lvevaluierung';"; + + if(!$result = $db->db_query($tqry)) + $error = true; + + if($db->db_num_rows($result)) + { + $qry = ' + DELETE FROM addon.tbl_lvevaluierung WHERE lehrveranstaltung_id IN (SELECT lehrveranstaltung_id FROM campus.tbl_studentbeispiel WHERE beispiel_id IN (SELECT beispiel_id FROM campus.tbl_beispiel WHERE uebung_id IN (SELECT uebung_id FROM campus.tbl_uebung WHERE lehreinheit_id IN (SELECT lehreinheit_id FROM lehre.tbl_lehreinheit WHERE lehrveranstaltung_id IN (SELECT lehrveranstaltung_id FROM lehre.tbl_lehrveranstaltung - WHERE koordinator='.$db->db_add_param($mitarbeiter_uid).'))))))'; - if(!$db->db_query($qry)) - $error = true; - } - - if(!$error) - { - $qry = ' - DELETE FROM addon.tbl_lvevaluierung - WHERE lehrveranstaltung_id IN (SELECT lehrveranstaltung_id FROM campus.tbl_studentbeispiel - WHERE beispiel_id IN (SELECT beispiel_id FROM campus.tbl_beispiel - WHERE uebung_id IN (SELECT uebung_id FROM campus.tbl_uebung - WHERE lehreinheit_id IN (SELECT lehreinheit_id FROM lehre.tbl_lehreinheit - WHERE lehrveranstaltung_id IN (SELECT lehrveranstaltung_id FROM lehre.tbl_lehrveranstaltung - WHERE koordinator='.$db->db_add_param($mitarbeiter_uid).')))))'; - if(!$db->db_query($qry)) - $error = true; + WHERE koordinator='.$db->db_add_param($mitarbeiter_uid).')))))'; + if(!$db->db_query($qry)) + $error = true; + } } if(!$error) @@ -1112,29 +1160,65 @@ function casDeletePerson($db, $person_id, $trans=true) if(!$error) { - $qry = ' - DELETE FROM addon.tbl_casetime_gruppen - WHERE uid IN (SELECT uid FROM public.tbl_benutzer WHERE person_id='.$db->db_add_param($person_id, FHC_INTEGER).')'; - if(!$db->db_query($qry)) + $tqry = "SELECT 1 + FROM INFORMATION_SCHEMA.TABLES + WHERE table_type='BASE TABLE' + AND table_schema='addon' + AND table_name='tbl_casetime_gruppen';"; + + if(!$result = $db->db_query($tqry)) $error = true; + + if($db->db_num_rows($result)) + { + $qry = ' + DELETE FROM addon.tbl_casetime_gruppen + WHERE uid IN (SELECT uid FROM public.tbl_benutzer WHERE person_id='.$db->db_add_param($person_id, FHC_INTEGER).')'; + if(!$db->db_query($qry)) + $error = true; + } } if(!$error) { - $qry = ' - DELETE FROM addon.tbl_casetime_zeitaufzeichnung - WHERE uid IN (SELECT uid FROM public.tbl_benutzer WHERE person_id='.$db->db_add_param($person_id, FHC_INTEGER).')'; - if(!$db->db_query($qry)) + $tqry = "SELECT 1 + FROM INFORMATION_SCHEMA.TABLES + WHERE table_type='BASE TABLE' + AND table_schema='addon' + AND table_name='tbl_casetime_zeitaufzeichnung';"; + + if(!$result = $db->db_query($tqry)) $error = true; + + if($db->db_num_rows($result)) + { + $qry = ' + DELETE FROM addon.tbl_casetime_zeitaufzeichnung + WHERE uid IN (SELECT uid FROM public.tbl_benutzer WHERE person_id='.$db->db_add_param($person_id, FHC_INTEGER).')'; + if(!$db->db_query($qry)) + $error = true; + } } if(!$error) { - $qry = ' - DELETE FROM addon.tbl_casetime_zeitsperre - WHERE uid IN (SELECT uid FROM public.tbl_benutzer WHERE person_id='.$db->db_add_param($person_id, FHC_INTEGER).')'; - if(!$db->db_query($qry)) + $tqry = "SELECT 1 + FROM INFORMATION_SCHEMA.TABLES + WHERE table_type='BASE TABLE' + AND table_schema='addon' + AND table_name='tbl_casetime_zeitsperre';"; + + if(!$result = $db->db_query($tqry)) $error = true; + + if($db->db_num_rows($result)) + { + $qry = ' + DELETE FROM addon.tbl_casetime_zeitsperre + WHERE uid IN (SELECT uid FROM public.tbl_benutzer WHERE person_id='.$db->db_add_param($person_id, FHC_INTEGER).')'; + if(!$db->db_query($qry)) + $error = true; + } } if(!$error) @@ -1374,21 +1458,45 @@ function casDeletePerson($db, $person_id, $trans=true) if(!$error) { - $qry = ' - DELETE FROM addon.tbl_lvevaluierung_selbstevaluierung - WHERE uid IN (SELECT uid FROM public.tbl_benutzer WHERE person_id='.$db->db_add_param($person_id, FHC_INTEGER).')'; - if(!$db->db_query($qry)) + $tqry = "SELECT 1 + FROM INFORMATION_SCHEMA.TABLES + WHERE table_type='BASE TABLE' + AND table_schema='addon' + AND table_name='tbl_lvevaluierung_selbstevaluierung';"; + + if(!$result = $db->db_query($tqry)) $error = true; + + if($db->db_num_rows($result)) + { + $qry = ' + DELETE FROM addon.tbl_lvevaluierung_selbstevaluierung + WHERE uid IN (SELECT uid FROM public.tbl_benutzer WHERE person_id='.$db->db_add_param($person_id, FHC_INTEGER).')'; + if(!$db->db_query($qry)) + $error = true; + } } if(!$error) { - $qry = ' - DELETE FROM addon.tbl_software - WHERE ansprechperson_uid IN (SELECT uid FROM public.tbl_benutzer WHERE person_id='.$db->db_add_param($person_id, FHC_INTEGER).')'; - if(!$db->db_query($qry)) - { + $tqry = "SELECT 1 + FROM INFORMATION_SCHEMA.TABLES + WHERE table_type='BASE TABLE' + AND table_schema='addon' + AND table_name='tbl_software';"; + + if(!$result = $db->db_query($tqry)) $error = true; + + if($db->db_num_rows($result)) + { + $qry = ' + DELETE FROM addon.tbl_software + WHERE ansprechperson_uid IN (SELECT uid FROM public.tbl_benutzer WHERE person_id='.$db->db_add_param($person_id, FHC_INTEGER).')'; + if(!$db->db_query($qry)) + { + $error = true; + } } }