From e0a2fba209d62487beb5ac7ef02325c7ea872489 Mon Sep 17 00:00:00 2001 From: ma0048 Date: Fri, 3 Nov 2023 11:37:58 +0100 Subject: [PATCH] - 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