From e0a2fba209d62487beb5ac7ef02325c7ea872489 Mon Sep 17 00:00:00 2001 From: ma0048 Date: Fri, 3 Nov 2023 11:37:58 +0100 Subject: [PATCH 1/4] - erhoehte studiengebuehr hinzugefuegt & filter --- content/student/studentDBDML.php | 11 ++++++++--- content/student/studentenoverlay.xul.php | 1 + include/konto.class.php | 5 ++--- rdf/student.rdf.php | 15 +++++++++++++++ system/dbupdate_3.4.php | 1 + ..._studienbeitrag_fuer_drittsaatenangehoerig.php | 13 +++++++++++++ 6 files changed, 40 insertions(+), 6 deletions(-) create mode 100644 system/dbupdate_3.4/33714_erhoehter_studienbeitrag_fuer_drittsaatenangehoerig.php diff --git a/content/student/studentDBDML.php b/content/student/studentDBDML.php index 2d5c9e0b8..010ac7af6 100644 --- a/content/student/studentDBDML.php +++ b/content/student/studentDBDML.php @@ -2502,10 +2502,15 @@ if(!$error) { $person_ids = explode(';',$_POST['person_ids']); $exists = false; - if (defined('FAS_DOPPELTE_BUCHUNGSTYPEN_CHECK') && (in_array($_POST['buchungstyp_kurzbz'], unserialize(FAS_DOPPELTE_BUCHUNGSTYPEN_CHECK)))) + if (defined('FAS_DOPPELTE_BUCHUNGSTYPEN_CHECK')) { - $konto = new konto(); - $exists = $konto->checkDoppelteBuchung($person_ids, $_POST['studiensemester_kurzbz'], $_POST['buchungstyp_kurzbz']); + $buchungen = unserialize(FAS_DOPPELTE_BUCHUNGSTYPEN_CHECK); + $buchung = $_POST['buchungstyp_kurzbz']; + if (isset($buchungen[$buchung])) + { + $konto = new konto(); + $exists = $konto->checkDoppelteBuchung($person_ids, $_POST['studiensemester_kurzbz'], $buchungen[$buchung]); + } } if($exists) diff --git a/content/student/studentenoverlay.xul.php b/content/student/studentenoverlay.xul.php index 0926a5007..79436c6ec 100644 --- a/content/student/studentenoverlay.xul.php +++ b/content/student/studentenoverlay.xul.php @@ -209,6 +209,7 @@ else + diff --git a/include/konto.class.php b/include/konto.class.php index 281ab77c7..51f79200b 100644 --- a/include/konto.class.php +++ b/include/konto.class.php @@ -965,17 +965,16 @@ class konto extends basis_db } } - public function checkDoppelteBuchung($person_ids, $stsem, $typ) + public function checkDoppelteBuchung($person_ids, $stsem, $typen) { $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)." + AND buchungstyp_kurzbz IN (".$this->implode4SQL($typen) .") GROUP BY person.vorname, person.nachname ORDER BY person.nachname, person.vorname"; - if ($result = $this->db_query($qry)) { $persons = array(); diff --git a/rdf/student.rdf.php b/rdf/student.rdf.php index 1625f161c..b6de4394e 100644 --- a/rdf/student.rdf.php +++ b/rdf/student.rdf.php @@ -107,6 +107,21 @@ function checkfilter($row, $filter2, $buchungstyp = null) if($row_filter->anzahl>0 || $prestudent->status_kurzbz=='Incoming') return false; } + elseif($filter2 == 'StudiengebuehrErhoeht') + { + // Alle Personen die eine erhöhte Studiengebuehrbelastung haben + $prestudent = new prestudent(); + $prestudent->getLastStatus($row->prestudent_id); + + $qry = "SELECT count(*) as anzahl FROM public.tbl_konto WHERE + studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz)." AND + person_id=".$db->db_add_param($row->person_id, FHC_INTEGER)." AND + buchungstyp_kurzbz='StudiengebuehrErhoeht'"; + if($db->db_query($qry)) + if($row_filter = $db->db_fetch_object()) + if($row_filter->anzahl == 0) + return false; + } elseif(strstr($filter2,'buchungstyp;')) { // Alle Personen die keine Belastung auf den uebergebenen Buchungstyp haben diff --git a/system/dbupdate_3.4.php b/system/dbupdate_3.4.php index 458f178d4..fc743d5ca 100644 --- a/system/dbupdate_3.4.php +++ b/system/dbupdate_3.4.php @@ -45,6 +45,7 @@ require_once('dbupdate_3.4/30537_anmerkung_in_tbl_rolleberechtigung.php'); require_once('dbupdate_3.4/30181_tabelle_anrechnung_neue_attribute_fuer_begruendung.php'); require_once('dbupdate_3.4/29529_infocenter_anpassungen.php'); require_once('dbupdate_3.4/29835_uhstat1_erfassung_der_uhstat1_daten_ueber_das_bewerbungstool.php'); +require_once('dbupdate_3.4/33714_erhoehter_studienbeitrag_fuer_drittsaatenangehoerig.php'); // *** Pruefung und hinzufuegen der neuen Attribute und Tabellen diff --git a/system/dbupdate_3.4/33714_erhoehter_studienbeitrag_fuer_drittsaatenangehoerig.php b/system/dbupdate_3.4/33714_erhoehter_studienbeitrag_fuer_drittsaatenangehoerig.php new file mode 100644 index 000000000..aaeb2dfe7 --- /dev/null +++ b/system/dbupdate_3.4/33714_erhoehter_studienbeitrag_fuer_drittsaatenangehoerig.php @@ -0,0 +1,13 @@ +db_query("SELECT 1 FROM public.tbl_buchungstyp WHERE buchungstyp_kurzbz = 'StudiengebuehrErhoeht';")) +{ + if ($db->db_num_rows($result) == 0) + { + $qry = "INSERT INTO public.tbl_buchungstyp (buchungstyp_kurzbz, beschreibung, standardtext) VALUES ('StudiengebuehrErhoeht', 'Erhöhter Studienbeitrag', 'Erhöhter Studienbeitrag');"; + if (!$db->db_query($qry)) + echo 'public.tbl_buchungstyp '.$db->db_last_error().'
'; + else + echo ' public.tbl_buchungstyp: Added buchungstyp "StudiengebuehrErhoeht"
'; + } +} \ No newline at end of file From 2158e7a28dac0fa411ec0c76da1bb6f8176e9164 Mon Sep 17 00:00:00 2001 From: ma0048 Date: Mon, 20 Nov 2023 11:55:05 +0100 Subject: [PATCH 2/4] - wording - standardwert - absage infocenter --- application/views/system/infocenter/zgvpruefungen.php | 3 +-- content/student/studentenoverlay.xul.php | 2 +- ...714_erhoehter_studienbeitrag_fuer_drittsaatenangehoerig.php | 2 +- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/application/views/system/infocenter/zgvpruefungen.php b/application/views/system/infocenter/zgvpruefungen.php index 1d26b9d55..b021379a8 100644 --- a/application/views/system/infocenter/zgvpruefungen.php +++ b/application/views/system/infocenter/zgvpruefungen.php @@ -447,7 +447,6 @@
diff --git a/content/student/studentenoverlay.xul.php b/content/student/studentenoverlay.xul.php index 79436c6ec..de7b6da55 100644 --- a/content/student/studentenoverlay.xul.php +++ b/content/student/studentenoverlay.xul.php @@ -209,7 +209,7 @@ else - + diff --git a/system/dbupdate_3.4/33714_erhoehter_studienbeitrag_fuer_drittsaatenangehoerig.php b/system/dbupdate_3.4/33714_erhoehter_studienbeitrag_fuer_drittsaatenangehoerig.php index aaeb2dfe7..d2c0c07b8 100644 --- a/system/dbupdate_3.4/33714_erhoehter_studienbeitrag_fuer_drittsaatenangehoerig.php +++ b/system/dbupdate_3.4/33714_erhoehter_studienbeitrag_fuer_drittsaatenangehoerig.php @@ -4,7 +4,7 @@ if ($result = @$db->db_query("SELECT 1 FROM public.tbl_buchungstyp WHERE buchung { if ($db->db_num_rows($result) == 0) { - $qry = "INSERT INTO public.tbl_buchungstyp (buchungstyp_kurzbz, beschreibung, standardtext) VALUES ('StudiengebuehrErhoeht', 'Erhöhter Studienbeitrag', 'Erhöhter Studienbeitrag');"; + $qry = "INSERT INTO public.tbl_buchungstyp (buchungstyp_kurzbz, beschreibung, standardtext, standardbetrag) VALUES ('StudiengebuehrErhoeht', 'Erhöhter Studienbeitrag', 'Erhöhter Studienbeitrag', '-3000');"; if (!$db->db_query($qry)) echo 'public.tbl_buchungstyp '.$db->db_last_error().'
'; else From 6b2d7281439aa1d1c09dc18c93a810227296ab3a Mon Sep 17 00:00:00 2001 From: ma0048 Date: Tue, 28 Nov 2023 08:57:30 +0100 Subject: [PATCH 3/4] =?UTF-8?q?-=20text=C3=A4nderung?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- content/student/studentenoverlay.xul.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/student/studentenoverlay.xul.php b/content/student/studentenoverlay.xul.php index de7b6da55..cdaa2e69b 100644 --- a/content/student/studentenoverlay.xul.php +++ b/content/student/studentenoverlay.xul.php @@ -208,8 +208,8 @@ else - - + + From ea14fa1a4bb3d573011635c909b386571fc87b7f Mon Sep 17 00:00:00 2001 From: ma0048 Date: Wed, 29 Nov 2023 13:05:49 +0100 Subject: [PATCH 4/4] - infocenter kaution spalte angepasst - infocenter abgewiesen nachricht spalte angepasst --- .../infocenter/infocenterAbgewiesenData.php | 20 ++++++++++++++++--- .../system/infocenter/infocenterData.php | 7 +++++-- .../infocenter/infocenterFreigegebenData.php | 7 +++++-- .../infocenterReihungstestAbsolviertData.php | 6 +++++- 4 files changed, 32 insertions(+), 8 deletions(-) diff --git a/application/views/system/infocenter/infocenterAbgewiesenData.php b/application/views/system/infocenter/infocenterAbgewiesenData.php index 2307ea87e..da816b2c7 100644 --- a/application/views/system/infocenter/infocenterAbgewiesenData.php +++ b/application/views/system/infocenter/infocenterAbgewiesenData.php @@ -31,21 +31,35 @@ $query = ' ORDER BY l.log_id DESC LIMIT 1 ) - AND '. $LOGDATA_VON .' = ( + AND ('. $LOGDATA_VON .' = ( SELECT l.insertvon FROM system.tbl_log l WHERE l.person_id = p.person_id ORDER BY l.log_id DESC LIMIT 1 ) + OR + ( + ( + SELECT l.insertvon + FROM system.tbl_log l + WHERE l.person_id = p.person_id + ORDER BY l.log_id DESC + LIMIT 1 + ) IS NULL + ) + ) AND l.zeitpunkt >= pss.insertamum ORDER BY l.log_id DESC LIMIT 1 ) AS "Nachricht", ( - SELECT SUM(konto.betrag) + SELECT + CASE + WHEN COUNT(CASE WHEN konto.betrag != 0 THEN 1 END) = 0 THEN null + ELSE SUM(konto.betrag) + END AS "Kaution" FROM public.tbl_konto konto - LEFT JOIN tbl_konto skonto ON (skonto.buchungsnr_verweis = konto.buchungsnr) WHERE konto.person_id = p.person_id AND konto.studiensemester_kurzbz = '. $STUDIENSEMESTER .' AND konto.buchungstyp_kurzbz = '. $STUDIENGEBUEHR_ANZAHLUNG .' diff --git a/application/views/system/infocenter/infocenterData.php b/application/views/system/infocenter/infocenterData.php index bb5b84479..61dc5a575 100644 --- a/application/views/system/infocenter/infocenterData.php +++ b/application/views/system/infocenter/infocenterData.php @@ -292,9 +292,12 @@ rueck.datum_bis AS "HoldDate", rueck.bezeichnung AS "Rueckstellgrund", ( - SELECT SUM(konto.betrag) + SELECT + CASE + WHEN COUNT(CASE WHEN konto.betrag != 0 THEN 1 END) = 0 THEN null + ELSE SUM(konto.betrag) + END AS "Kaution" FROM public.tbl_konto konto - LEFT JOIN tbl_konto skonto ON (skonto.buchungsnr_verweis = konto.buchungsnr) WHERE konto.person_id = p.person_id AND konto.studiensemester_kurzbz = '. $STUDIENSEMESTER .' AND konto.buchungstyp_kurzbz = '. $STUDIENGEBUEHR_ANZAHLUNG .' diff --git a/application/views/system/infocenter/infocenterFreigegebenData.php b/application/views/system/infocenter/infocenterFreigegebenData.php index 32315c145..8003b42e0 100644 --- a/application/views/system/infocenter/infocenterFreigegebenData.php +++ b/application/views/system/infocenter/infocenterFreigegebenData.php @@ -267,9 +267,12 @@ $query = ' LIMIT 1 ) AS "AktenId", ( - SELECT SUM(konto.betrag) + SELECT + CASE + WHEN COUNT(CASE WHEN konto.betrag != 0 THEN 1 END) = 0 THEN null + ELSE SUM(konto.betrag) + END AS "Kaution" FROM public.tbl_konto konto - LEFT JOIN tbl_konto skonto ON (skonto.buchungsnr_verweis = konto.buchungsnr) WHERE konto.person_id = p.person_id AND konto.studiensemester_kurzbz = '. $STUDIENSEMESTER .' AND konto.buchungstyp_kurzbz = '. $STUDIENGEBUEHR_ANZAHLUNG .' diff --git a/application/views/system/infocenter/infocenterReihungstestAbsolviertData.php b/application/views/system/infocenter/infocenterReihungstestAbsolviertData.php index e6b6d2495..7f9ee1288 100644 --- a/application/views/system/infocenter/infocenterReihungstestAbsolviertData.php +++ b/application/views/system/infocenter/infocenterReihungstestAbsolviertData.php @@ -198,7 +198,11 @@ $query = ' LIMIT 1 ) AS "InfoCenterMitarbeiter", ( - SELECT SUM(konto.betrag) + SELECT + CASE + WHEN COUNT(CASE WHEN konto.betrag != 0 THEN 1 END) = 0 THEN null + ELSE SUM(konto.betrag) + END AS "Kaution" FROM public.tbl_konto konto WHERE konto.person_id = p.person_id AND konto.studiensemester_kurzbz = '. $STUDIENSEMESTER .'