From 381fa2ed7e7d5cc99b05b565a24a232afac69ef2 Mon Sep 17 00:00:00 2001 From: ma0048 Date: Tue, 29 Nov 2022 10:17:32 +0100 Subject: [PATCH] - bei der warnung buchung vorhanden, name hinzugefuegt --- content/student/studentDBDML.php | 16 ++++++++++++++++ content/student/studentoverlay.js.php | 6 +++--- include/konto.class.php | 24 ++++++++++++++---------- 3 files changed, 33 insertions(+), 13 deletions(-) diff --git a/content/student/studentDBDML.php b/content/student/studentDBDML.php index 68348adbf..22f6f0b53 100644 --- a/content/student/studentDBDML.php +++ b/content/student/studentDBDML.php @@ -2499,7 +2499,23 @@ if(!$error) } if($exists) + { $return = true; + $zusatz = "\n"; + if (count($exists) > 10) + { + $zusatz .= "und "; + $persons = implode("\n- ", array_slice($exists, 0, 10)); + if (count($exists) === 11) + $zusatz .= "einer weiteren Person."; + else + $zusatz .= (count($exists) - 10) . " weiteren Personen."; + } + else + $persons = implode("\n- ", $exists); + + $data = "Es ist bereits eine Buchung vorhanden:\n- ". $persons . $zusatz ." Trotzdem fortfahren?"; + } else $return = false; } diff --git a/content/student/studentoverlay.js.php b/content/student/studentoverlay.js.php index 3401c03d5..b01d6086b 100644 --- a/content/student/studentoverlay.js.php +++ b/content/student/studentoverlay.js.php @@ -3102,9 +3102,9 @@ function StudentKontoNeuSpeichern(dialog, person_ids, studiengang_kz) { exists = StudentCheckBuchung(person_ids, studiensemester_kurzbz, buchungstyp_kurzbz, studiengang_kz); } - if (exists) + if (exists.dbdml_return) { - if(!confirm('Die Buchung ist bereits vorhanden. Trotzdem fortfahren?')) + if(!confirm(exists.dbdml_data)) return false; } @@ -3159,7 +3159,7 @@ function StudentCheckBuchung(person_ids, studiensemester_kurzbz, buchungstyp_kur var val = new ParseReturnValue(response); - return(val.dbdml_return); + return val; } // ***** diff --git a/include/konto.class.php b/include/konto.class.php index 7849f2605..281ab77c7 100644 --- a/include/konto.class.php +++ b/include/konto.class.php @@ -967,19 +967,23 @@ class konto extends basis_db public function checkDoppelteBuchung($person_ids, $stsem, $typ) { - $qry = "SELECT betrag - FROM public.tbl_konto - WHERE person_id IN (".$this->implode4SQL(array_filter($person_ids)).") - AND studiensemester_kurzbz = ".$this->db_add_param($stsem)." - AND buchungstyp_kurzbz = ".$this->db_add_param($typ)." - GROUP BY buchungsnr"; + $qry = "SELECT person.vorname, person.nachname + FROM public.tbl_konto konto + JOIN public.tbl_person person USING(person_id) + WHERE konto.person_id IN (".$this->implode4SQL(array_filter($person_ids)).") + AND studiensemester_kurzbz = ".$this->db_add_param($stsem)." + AND buchungstyp_kurzbz = ".$this->db_add_param($typ)." + GROUP BY person.vorname, person.nachname + ORDER BY person.nachname, person.vorname"; if ($result = $this->db_query($qry)) { - if ($this->db_num_rows($result) > 0) - return true; - else - return false; + $persons = array(); + while ($row = $this->db_fetch_object($result)) + { + $persons[] = $row->nachname . ' ' . $row->vorname; + } + return $persons; } else {