From b7c22ac56fb254ed3fc556d70884dabffe45d1e0 Mon Sep 17 00:00:00 2001 From: cris-technikum Date: Mon, 6 Sep 2021 12:25:29 +0200 Subject: [PATCH 01/18] Fixed: Now including correctly config start- and enddate Signed-off-by: cris-technikum --- .../controllers/lehre/anrechnung/RequestAnrechnung.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/application/controllers/lehre/anrechnung/RequestAnrechnung.php b/application/controllers/lehre/anrechnung/RequestAnrechnung.php index 45a770cf5..306ce5841 100644 --- a/application/controllers/lehre/anrechnung/RequestAnrechnung.php +++ b/application/controllers/lehre/anrechnung/RequestAnrechnung.php @@ -80,7 +80,7 @@ class requestAnrechnung extends Auth_Controller $prestudent_id = getData($result)[0]->prestudent_id; // Check if application deadline is expired - $is_expired = self::_checkAntragDeadline( + $is_expired = self::_isExpired( $this->config->item('submit_application_start'), $this->config->item('submit_application_end'), $studiensemester_kurzbz @@ -226,10 +226,10 @@ class requestAnrechnung extends Auth_Controller * @param $start Start date for application submission. * @param $ende End date for application submission. * @param $studiensemester_kurzbz - * @return bool True if today is not during the start- and ending deadlines (= if is expired) + * @return bool True if deadline is expired * @throws Exception */ - private function _checkAntragDeadline($start, $ende, $studiensemester_kurzbz) + private function _isExpired($start, $ende, $studiensemester_kurzbz) { $this->load->model('organisation/Studiensemester_model', 'StudiensemesterModel'); @@ -253,8 +253,8 @@ class requestAnrechnung extends Auth_Controller $start = new DateTime($start); $ende = new DateTime($ende); - // True if today is not during the start- and ending deadlines (= if is expired) - return ($today <= $start || $today >= $ende); + // True if expired + return ($today < $start || $today > $ende); } /** From 4f46476f877ec9c851446383b4c037d117cfc846 Mon Sep 17 00:00:00 2001 From: cris-technikum Date: Mon, 6 Sep 2021 12:56:43 +0200 Subject: [PATCH 02/18] Fixed: Now entitlement checked for all STGL. Also added hasData checks. Before only the first returning STGL was checked for entitlement. Also added hasData checks to avoid using getData on NULL values. Signed-off-by: cris-technikum --- .../anrechnung/ApproveAnrechnungDetail.php | 21 +++++++++++-------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/application/controllers/lehre/anrechnung/ApproveAnrechnungDetail.php b/application/controllers/lehre/anrechnung/ApproveAnrechnungDetail.php index d76c0d79b..209ad75b9 100644 --- a/application/controllers/lehre/anrechnung/ApproveAnrechnungDetail.php +++ b/application/controllers/lehre/anrechnung/ApproveAnrechnungDetail.php @@ -412,28 +412,31 @@ class approveAnrechnungDetail extends Auth_Controller { $result = $this->AnrechnungModel->load($anrechnung_id); - if(!$result = getData($result)[0]) + if(!hasData($result)) { show_error('Failed loading Anrechnung'); } - + $result = $this->LehrveranstaltungModel->loadWhere(array( - 'lehrveranstaltung_id' => $result->lehrveranstaltung_id + 'lehrveranstaltung_id' => getData($result)[0]->lehrveranstaltung_id )); - if(!$result = getData($result)[0]) + if(!hasData($result)) { show_error('Failed loading Lehrveranstaltung'); } // Get STGL - $result = $this->StudiengangModel->getLeitung($result->studiengang_kz); - - if($result = getData($result)[0]) + $result = $this->StudiengangModel->getLeitung(getData($result)[0]->studiengang_kz); + + if (hasData($result)) { - if ($result->uid == $this->_uid) + foreach (getData($result) as $stgl) { - return; + if ($stgl->uid == $this->_uid) + { + return; + } } } From 2d755e82b47176f2aad46db29b44c15e1b2ce269 Mon Sep 17 00:00:00 2001 From: cris-technikum Date: Tue, 7 Sep 2021 14:36:06 +0200 Subject: [PATCH 03/18] Fixed: Added DB-Update Gegenchecks for new tables / columns in DB Signed-off-by: cris-technikum --- system/dbupdate_3.3.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/system/dbupdate_3.3.php b/system/dbupdate_3.3.php index 2bd3afed6..b60f09de4 100644 --- a/system/dbupdate_3.3.php +++ b/system/dbupdate_3.3.php @@ -5017,7 +5017,9 @@ $tabellen=array( "lehre.tbl_abschlusspruefung" => array("abschlusspruefung_id","student_uid","vorsitz","pruefer1","pruefer2","pruefer3","abschlussbeurteilung_kurzbz","akadgrad_id","pruefungstyp_kurzbz","datum","uhrzeit","sponsion","anmerkung","updateamum","updatevon","insertamum","insertvon","ext_id","note","protokoll","endezeit","pruefungsantritt_kurzbz","freigabedatum"), "lehre.tbl_abschlusspruefung_antritt" => array("pruefungsantritt_kurzbz","bezeichnung","bezeichnung_english","sort"), "lehre.tbl_akadgrad" => array("akadgrad_id","akadgrad_kurzbz","studiengang_kz","titel","geschlecht"), - "lehre.tbl_anrechnung" => array("anrechnung_id","prestudent_id","lehrveranstaltung_id","begruendung_id","lehrveranstaltung_id_kompatibel","genehmigt_von","insertamum","insertvon","updateamum","updatevon","ext_id"), + "lehre.tbl_anrechnung" => array("anrechnung_id","prestudent_id","lehrveranstaltung_id","begruendung_id","lehrveranstaltung_id_kompatibel","genehmigt_von","insertamum","insertvon","updateamum","updatevon","ext_id", "dms_id", "studiensemester_kurzbz", "anmerkung_student", "empfehlung_anrechnung"), + "lehre.tbl_anrechnungstatus" => array("status_kurzbz", "bezeichnung_mehrsprachig"), + "lehre.tbl_anrechnung_anrechnungstatus" => array("anrechnungstatus_id", "anrechnung_id", "status_kurzbz", "datum", "insertamum", "insertvon"), "lehre.tbl_anrechnung_begruendung" => array("begruendung_id","bezeichnung"), "lehre.tbl_betreuerart" => array("betreuerart_kurzbz","beschreibung","aktiv"), "lehre.tbl_ferien" => array("bezeichnung","studiengang_kz","vondatum","bisdatum"), From 4cfad06f2d459506b1d74f57e65296bc7273ca80 Mon Sep 17 00:00:00 2001 From: cris-technikum Date: Tue, 7 Sep 2021 14:37:39 +0200 Subject: [PATCH 04/18] Fixed: Added check to only add columns if no already present Signed-off-by: cris-technikum --- system/dbupdate_3.3.php | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/system/dbupdate_3.3.php b/system/dbupdate_3.3.php index b60f09de4..caf562368 100644 --- a/system/dbupdate_3.3.php +++ b/system/dbupdate_3.3.php @@ -4565,19 +4565,22 @@ if($result = @$db->db_query("SELECT * FROM information_schema.role_table_grants // Change genehmigt_von and begruendung_id to be NULLABLE if(!$result = @$db->db_query("SELECT dms_id FROM lehre.tbl_anrechnung")) { - $qry = " - ALTER TABLE lehre.tbl_anrechnung ADD COLUMN dms_id bigint; - ALTER TABLE lehre.tbl_anrechnung ADD COLUMN studiensemester_kurzbz varchar(6); - ALTER TABLE lehre.tbl_anrechnung ADD COLUMN anmerkung_student text; - ALTER TABLE lehre.tbl_anrechnung ADD COLUMN empfehlung_anrechnung boolean; - - ALTER TABLE lehre.tbl_anrechnung ADD CONSTRAINT fk_anrechnung_studiensemester FOREIGN KEY (studiensemester_kurzbz) REFERENCES public.tbl_studiensemester(studiensemester_kurzbz) ON DELETE RESTRICT ON UPDATE CASCADE; - ALTER TABLE lehre.tbl_anrechnung ADD CONSTRAINT fk_anrechnung_dms FOREIGN KEY (dms_id) REFERENCES campus.tbl_dms(dms_id) ON DELETE RESTRICT ON UPDATE CASCADE; - - ALTER TABLE lehre.tbl_anrechnung ALTER COLUMN genehmigt_von DROP NOT NULL; - ALTER TABLE lehre.tbl_anrechnung ALTER COLUMN begruendung_id DROP NOT NULL; - ALTER TABLE lehre.tbl_anrechnung ALTER COLUMN insertamum SET DEFAULT NOW(); - "; + if($db->db_num_rows($result) == 0) + { + $qry = " + ALTER TABLE lehre.tbl_anrechnung ADD COLUMN dms_id bigint; + ALTER TABLE lehre.tbl_anrechnung ADD COLUMN studiensemester_kurzbz varchar(6); + ALTER TABLE lehre.tbl_anrechnung ADD COLUMN anmerkung_student text; + ALTER TABLE lehre.tbl_anrechnung ADD COLUMN empfehlung_anrechnung boolean; + + ALTER TABLE lehre.tbl_anrechnung ADD CONSTRAINT fk_anrechnung_studiensemester FOREIGN KEY (studiensemester_kurzbz) REFERENCES public.tbl_studiensemester(studiensemester_kurzbz) ON DELETE RESTRICT ON UPDATE CASCADE; + ALTER TABLE lehre.tbl_anrechnung ADD CONSTRAINT fk_anrechnung_dms FOREIGN KEY (dms_id) REFERENCES campus.tbl_dms(dms_id) ON DELETE RESTRICT ON UPDATE CASCADE; + + ALTER TABLE lehre.tbl_anrechnung ALTER COLUMN genehmigt_von DROP NOT NULL; + ALTER TABLE lehre.tbl_anrechnung ALTER COLUMN begruendung_id DROP NOT NULL; + ALTER TABLE lehre.tbl_anrechnung ALTER COLUMN insertamum SET DEFAULT NOW(); + "; + } if(!$db->db_query($qry)) From ab4c7ee19480e89a97f6a564fd813e6f8602ab9b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Wed, 15 Sep 2021 18:24:42 +0200 Subject: [PATCH 05/18] =?UTF-8?q?Limit=20beim=20Pr=C3=BCfen=20der=20Spalte?= =?UTF-8?q?nverf=C3=BCgbarkeit=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- system/dbupdate_3.3.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/system/dbupdate_3.3.php b/system/dbupdate_3.3.php index caf562368..a12729383 100644 --- a/system/dbupdate_3.3.php +++ b/system/dbupdate_3.3.php @@ -4563,7 +4563,7 @@ if($result = @$db->db_query("SELECT * FROM information_schema.role_table_grants // Add column dms_id, studiensemester_kurzbz, anmerkung_student und empfehlung_anrechnung // Change genehmigt_von and begruendung_id to be NULLABLE -if(!$result = @$db->db_query("SELECT dms_id FROM lehre.tbl_anrechnung")) +if(!$result = @$db->db_query("SELECT dms_id FROM lehre.tbl_anrechnung LIMIT 1")) { if($db->db_num_rows($result) == 0) { @@ -4572,10 +4572,10 @@ if(!$result = @$db->db_query("SELECT dms_id FROM lehre.tbl_anrechnung")) ALTER TABLE lehre.tbl_anrechnung ADD COLUMN studiensemester_kurzbz varchar(6); ALTER TABLE lehre.tbl_anrechnung ADD COLUMN anmerkung_student text; ALTER TABLE lehre.tbl_anrechnung ADD COLUMN empfehlung_anrechnung boolean; - + ALTER TABLE lehre.tbl_anrechnung ADD CONSTRAINT fk_anrechnung_studiensemester FOREIGN KEY (studiensemester_kurzbz) REFERENCES public.tbl_studiensemester(studiensemester_kurzbz) ON DELETE RESTRICT ON UPDATE CASCADE; ALTER TABLE lehre.tbl_anrechnung ADD CONSTRAINT fk_anrechnung_dms FOREIGN KEY (dms_id) REFERENCES campus.tbl_dms(dms_id) ON DELETE RESTRICT ON UPDATE CASCADE; - + ALTER TABLE lehre.tbl_anrechnung ALTER COLUMN genehmigt_von DROP NOT NULL; ALTER TABLE lehre.tbl_anrechnung ALTER COLUMN begruendung_id DROP NOT NULL; ALTER TABLE lehre.tbl_anrechnung ALTER COLUMN insertamum SET DEFAULT NOW(); From bd90876277b3571b279d3177aae3c6d4227f6a6e Mon Sep 17 00:00:00 2001 From: cris-technikum Date: Thu, 23 Sep 2021 12:34:58 +0200 Subject: [PATCH 06/18] Fixed: Now sending mails to ALL STGLs of the concerning STG Before it was sending only to first in array. Now sending to all. Signed-off-by: cris-technikum --- .../controllers/jobs/AnrechnungJob.php | 49 +++++++++++-------- 1 file changed, 29 insertions(+), 20 deletions(-) diff --git a/application/controllers/jobs/AnrechnungJob.php b/application/controllers/jobs/AnrechnungJob.php index f92410dbc..f32a8268a 100644 --- a/application/controllers/jobs/AnrechnungJob.php +++ b/application/controllers/jobs/AnrechnungJob.php @@ -188,7 +188,7 @@ class AnrechnungJob extends JOB_Controller $studiengang_bezeichnung = $this->StudiengangModel->load($studiengang_kz)->retval[0]->stg_bezeichnung; // Get STGL mail address - list ($to, $vorname) = self::_getSTGLMailAddress($studiengang_kz); + $stglMailReceiver_arr = self::_getSTGLMailAddress($studiengang_kz); // Get HTML table with new Anrechnungen of that STG plus amount of them list ($anrechnungen_amount, $anrechnungen_table) = self::_getSTGLMailDataTable($studiengang_kz, $anrechnungen); @@ -199,22 +199,25 @@ class AnrechnungJob extends JOB_Controller CIS_ROOT. 'cis/menu.php?content_id=&content='. CIS_ROOT. index_page(). self::APPROVE_ANRECHNUNG_URI; + foreach ($stglMailReceiver_arr as $stgl) + { // Prepare mail content - $body_fields = array( - 'vorname' => $vorname, - 'studiengang' => $studiengang_bezeichnung, - 'anzahl' => $anrechnungen_amount, - 'datentabelle' => $anrechnungen_table, - 'link' => anchor($url, 'Anrechnungsanträge Übersicht') - ); - - // Send mail - sendSanchoMail( - 'AnrechnungAntragStellen', - $body_fields, - $to, - 'Anerkennung nachgewiesener Kenntnisse: Neuer Antrag wurde gestellt' - ); + $body_fields = array( + 'vorname' => $stgl['vorname'], + 'studiengang' => $studiengang_bezeichnung, + 'anzahl' => $anrechnungen_amount, + 'datentabelle' => $anrechnungen_table, + 'link' => anchor($url, 'Anrechnungsanträge Übersicht') + ); + + // Send mail + sendSanchoMail( + 'AnrechnungAntragStellen', + $body_fields, + $stgl['to'], + 'Anerkennung nachgewiesener Kenntnisse: Neuer Antrag wurde gestellt' + ); + } } $this->logInfo('SUCCEDED: Sending emails to STGL about yesterdays new Anrechnungen succeded.'); @@ -342,15 +345,21 @@ html; // Get STGL mail address private function _getSTGLMailAddress($studiengang_kz) { + $stglMailAdress_arr = array(); $result = $this->StudiengangModel->getLeitung($studiengang_kz); // Get STGL mail address if (hasData($result)) { - return array( - $result->retval[0]->uid. '@'. DOMAIN, - $result->retval[0]->vorname - ); + foreach (getData($result) as $stgl) + { + $stglMailAdress_arr[]= array( + 'to' => $stgl->uid. '@'. DOMAIN, + 'vorname' => $stgl->vorname + ); + } + + return $stglMailAdress_arr; } // If not available, get assistance mail address else From 72868f4207e428c4b0e6f42f4b38b741ca81ba55 Mon Sep 17 00:00:00 2001 From: cris-technikum Date: Thu, 23 Sep 2021 12:47:05 +0200 Subject: [PATCH 07/18] Fixed: Now downloading documents is possible for ALL STGLs of the concerning STG Before it was possible only for first in array. Now sending to all. Signed-off-by: cris-technikum --- .../lehre/anrechnung/ApproveAnrechnungUebersicht.php | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/application/controllers/lehre/anrechnung/ApproveAnrechnungUebersicht.php b/application/controllers/lehre/anrechnung/ApproveAnrechnungUebersicht.php index d59d97514..70fae2b57 100644 --- a/application/controllers/lehre/anrechnung/ApproveAnrechnungUebersicht.php +++ b/application/controllers/lehre/anrechnung/ApproveAnrechnungUebersicht.php @@ -285,11 +285,14 @@ class approveAnrechnungUebersicht extends Auth_Controller // Get STGL $result = $this->StudiengangModel->getLeitung($result->studiengang_kz); - if($result = getData($result)[0]) + if (hasData($result)) { - if ($result->uid == $this->_uid) + foreach (getData($result) as $stgl) { - return; + if ($stgl->uid == $this->_uid) + { + return; + } } } From 35cdac0438dc7399028c2b500a5b0e64bd981295 Mon Sep 17 00:00:00 2001 From: cris-technikum Date: Tue, 12 Oct 2021 10:51:10 +0200 Subject: [PATCH 08/18] Small Code Enhencement Signed-off-by: cris-technikum --- .../lehre/anrechnung/ApproveAnrechnungUebersicht.php | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/application/controllers/lehre/anrechnung/ApproveAnrechnungUebersicht.php b/application/controllers/lehre/anrechnung/ApproveAnrechnungUebersicht.php index 70fae2b57..25c802caf 100644 --- a/application/controllers/lehre/anrechnung/ApproveAnrechnungUebersicht.php +++ b/application/controllers/lehre/anrechnung/ApproveAnrechnungUebersicht.php @@ -379,23 +379,24 @@ class approveAnrechnungUebersicht extends Auth_Controller $this->load->model('education/Lehrveranstaltung_model', 'LehrveranstaltungModel'); $result = $this->LehrveranstaltungModel->getLecturersByLv($anrechnung['studiensemester_kurzbz'], $anrechnung['lehrveranstaltung_id']); - if (!$result = getData($result)) + if (!hasData($result)) { show_error('Failed retrieving lectors of Lehrveranstaltung'); } + $lecturersByLv = getData($result); + // Check if lv has LV-Leitung - $key = array_search(true, array_column($result, 'lvleiter')); - + $key = array_search(true, array_column($lecturersByLv, 'lvleiter')); // If lv has LV-Leitung, keep only the one if ($key !== false) { - $lector_arr[]= $result[$key]; + $lector_arr[]= $lecturersByLv[$key]; } // ...otherwise keep all lectors else { - $lector_arr = array_merge($lector_arr, $result); + $lector_arr = array_merge($lector_arr, $lecturersByLv); } } From 8677cbf6dc9dd4b1c878cf8ba404534ff2e90d8b Mon Sep 17 00:00:00 2001 From: cris-technikum Date: Tue, 12 Oct 2021 12:11:06 +0200 Subject: [PATCH 09/18] Fixed requesting Anrechnungsantrag although grade is a blocking grade Blocking grades (eg angerechnet), that should not allow the student to request for Anrechnung, were not fully blocking. This is fixed now. Signed-off-by: cris-technikum --- .../controllers/lehre/anrechnung/RequestAnrechnung.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/application/controllers/lehre/anrechnung/RequestAnrechnung.php b/application/controllers/lehre/anrechnung/RequestAnrechnung.php index 306ce5841..bc886a876 100644 --- a/application/controllers/lehre/anrechnung/RequestAnrechnung.php +++ b/application/controllers/lehre/anrechnung/RequestAnrechnung.php @@ -324,8 +324,8 @@ class requestAnrechnung extends Auth_Controller private function _LVhasBlockingGrades($studiensemester_kurzbz, $lehrveranstaltung_id) { // Get Note of Lehrveranstaltung - $this->load->model('education/Lvgesamtnote_model', 'LvgesamtnoteModel'); - $result = $this->LvgesamtnoteModel->load(array( + $this->load->model('education/Zeugnisnote_model', 'ZeugnisnoteModel'); + $result = $this->ZeugnisnoteModel->load(array( 'student_uid' => $this->_uid, 'studiensemester_kurzbz' => $studiensemester_kurzbz, 'lehrveranstaltung_id' => $lehrveranstaltung_id From 43f75e772a4e912d3281664a808800b2e5070486 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Tue, 11 Jan 2022 19:05:12 +0100 Subject: [PATCH 10/18] =?UTF-8?q?Problem=20behoben=20wodurch=20Reihungstes?= =?UTF-8?q?tanmeldungen=20nicht=20gespeichert=20werden=20k=C3=B6nnen=20wen?= =?UTF-8?q?n=20das=20Config=20FAS=5FREIHUNGSTEST=5FEXCLUDE=5FGEBIETE=20lee?= =?UTF-8?q?r=20gesetzt=20wurde?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- include/pruefling.class.php | 41 ++++++++++++++++++++----------------- 1 file changed, 22 insertions(+), 19 deletions(-) diff --git a/include/pruefling.class.php b/include/pruefling.class.php index 764900b0b..17fe48789 100644 --- a/include/pruefling.class.php +++ b/include/pruefling.class.php @@ -361,13 +361,13 @@ class pruefling extends basis_db $qry = " SELECT DISTINCT ON (vw_auswertung_ablauf.gebiet_id) gebiet_id, - vw_auswertung_ablauf.*, + vw_auswertung_ablauf.*, tbl_studiengang.typ - FROM + FROM testtool.vw_auswertung_ablauf - JOIN + JOIN public.tbl_studiengang USING (studiengang_kz) - WHERE + WHERE reihungstest_id = ".$this->db_add_param($reihungstest_id, FHC_INTEGER); // Ggf. die Basis-Fragengebiete ermitteln (ohne Quereinsteigergebiete) @@ -387,8 +387,8 @@ class pruefling extends basis_db if (!empty($basis_gebiet_id_toString)) { $qry .= " - AND - gebiet_id IN (". $basis_gebiet_id_toString. ") + AND + gebiet_id IN (". $basis_gebiet_id_toString. ") "; } } @@ -400,13 +400,16 @@ class pruefling extends basis_db { $excluded_gebiete = unserialize(FAS_REIHUNGSTEST_EXCLUDE_GEBIETE); $exclude_gebiet_id_arr = $excluded_gebiete; - $exclude_gebiet_id_toString = implode(', ', $exclude_gebiet_id_arr); - $qry .= " - AND - gebiet_id NOT IN (". $exclude_gebiet_id_toString. ") - AND - typ = 'b' - "; + if (is_array($exclude_gebiet_id_arr) && count($exclude_gebiet_id_arr) > 0) + { + $exclude_gebiet_id_toString = implode(', ', $exclude_gebiet_id_arr); + $qry .= " + AND + gebiet_id NOT IN (". $exclude_gebiet_id_toString. ") + AND + typ = 'b' + "; + } } } @@ -421,21 +424,21 @@ class pruefling extends basis_db prestudent_id FROM public.tbl_rt_person - JOIN + JOIN public.tbl_prestudent USING(person_id) JOIN public.tbl_prestudentstatus USING (prestudent_id, studienplan_id) - JOIN + JOIN tbl_reihungstest ON ( - tbl_rt_person.rt_id = tbl_reihungstest.reihungstest_id + tbl_rt_person.rt_id = tbl_reihungstest.reihungstest_id ) WHERE tbl_rt_person.person_id = ".$this->db_add_param($person_id, FHC_INTEGER)." - AND + AND tbl_rt_person.rt_id = ".$this->db_add_param($reihungstest_id, FHC_INTEGER)." - AND + AND tbl_prestudentstatus.status_kurzbz='Interessent' - AND + AND tbl_prestudentstatus.studiensemester_kurzbz = tbl_reihungstest.studiensemester_kurzbz ORDER BY tbl_reihungstest.datum DESC, tbl_prestudent.priorisierung ASC LIMIT 1 ) From 685ac404fb39664d314cc8985df8af12a3dc1f56 Mon Sep 17 00:00:00 2001 From: ma0068 Date: Wed, 12 Jan 2022 12:05:36 +0100 Subject: [PATCH 11/18] =?UTF-8?q?Anzeige=20dd=20nur=20f=C3=BCr=20das=20bet?= =?UTF-8?q?reffende=20Studiensemester=20in=20Noten-,=20Anwesenheits-=20und?= =?UTF-8?q?=20Gesamtliste=20umgesetzt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lehre/benotungstool/lvgesamtnoteverwalten.php | 3 ++- cis/private/lehre/notenliste.xls.php | 11 ++++++----- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/cis/private/lehre/benotungstool/lvgesamtnoteverwalten.php b/cis/private/lehre/benotungstool/lvgesamtnoteverwalten.php index 70d15d801..080c6032e 100644 --- a/cis/private/lehre/benotungstool/lvgesamtnoteverwalten.php +++ b/cis/private/lehre/benotungstool/lvgesamtnoteverwalten.php @@ -736,6 +736,7 @@ else die($p->t('global/fehleraufgetreten')); // Kopfzeile + echo ' @@ -1144,7 +1145,7 @@ if (defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG $eintrag = ''; foreach ($output as $k) { - if($k->mobilitaetstyp_kurzbz == 'GS') + if(($k->mobilitaetstyp_kurzbz == 'GS') && ($k->studiensemester_kurzbz == $stsem)) $eintrag = ' (d.d.)'; } $grades[$row_stud->uid]['mobility'] = $eintrag; diff --git a/cis/private/lehre/notenliste.xls.php b/cis/private/lehre/notenliste.xls.php index 9866a6299..7aaa4f5f6 100644 --- a/cis/private/lehre/notenliste.xls.php +++ b/cis/private/lehre/notenliste.xls.php @@ -19,6 +19,7 @@ * Andreas Oesterreicher * Rudolf Hangl < rudolf.hangl@technikum-wien.at > * Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at > + * Manuela Thamer */ /* * Erstellt Notenliste im Excel Format @@ -207,9 +208,9 @@ else WHERE prestudent_id=tbl_student.prestudent_id ORDER BY datum DESC, insertamum DESC, ext_id DESC LIMIT 1) as status, tbl_bisio.bisio_id, tbl_bisio.bis, tbl_bisio.von, - tbl_zeugnisnote.note,tbl_mobilitaet.mobilitaetstyp_kurzbz - FROM - campus.vw_student_lehrveranstaltung JOIN public.tbl_benutzer USING(uid) + tbl_zeugnisnote.note,tbl_mobilitaet.mobilitaetstyp_kurzbz, + (CASE WHEN bis.tbl_mobilitaet.studiensemester_kurzbz = vw_student_lehrveranstaltung.studiensemester_kurzbz THEN '1' ELSE '' END) as doubledegree + FROM campus.vw_student_lehrveranstaltung JOIN public.tbl_benutzer USING(uid) JOIN public.tbl_person USING(person_id) JOIN public.tbl_student ON(uid=student_uid) LEFT JOIN public.tbl_studentlehrverband USING(student_uid,studiensemester_kurzbz) LEFT JOIN lehre.tbl_zeugnisnote on(vw_student_lehrveranstaltung.lehrveranstaltung_id=tbl_zeugnisnote.lehrveranstaltung_id @@ -224,7 +225,7 @@ else if($lehreinheit_id!='') $qry.=" AND vw_student_lehrveranstaltung.lehreinheit_id=".$db->db_add_param($lehreinheit_id, FHC_INTEGER); - $qry.=' ORDER BY nachname, vorname, person_id, tbl_bisio.bis DESC'; + $qry.=' ORDER BY nachname, vorname, person_id, tbl_bisio.bis, doubledegree DESC'; if($result = $db->db_query($qry)) { @@ -249,7 +250,7 @@ else $inc.=' (ar)'; $note='ar'; } - if($elem->mobilitaetstyp_kurzbz !='') //dd-Program + if ($elem->mobilitaetstyp_kurzbz !='' && $elem->doubledegree == 1) //dd-Program { $inc.=' (dd)'; } From 12034b76373704b5f53b1ebc49ddf0e433dbde2d Mon Sep 17 00:00:00 2001 From: ma0068 Date: Wed, 12 Jan 2022 12:22:36 +0100 Subject: [PATCH 12/18] =?UTF-8?q?#16842=20Legende=20in=20Notenliste=20um?= =?UTF-8?q?=20iar=20erg=C3=A4nzt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cis/private/lehre/notenliste.xls.php | 1 + include/lehrelisthelper.class.php | 61 ++++++++++++++-------------- locale/de-AT/anwesenheitsliste.php | 3 +- locale/en-US/anwesenheitsliste.php | 3 +- 4 files changed, 35 insertions(+), 33 deletions(-) diff --git a/cis/private/lehre/notenliste.xls.php b/cis/private/lehre/notenliste.xls.php index 7aaa4f5f6..b9ef87bbe 100644 --- a/cis/private/lehre/notenliste.xls.php +++ b/cis/private/lehre/notenliste.xls.php @@ -306,6 +306,7 @@ else $worksheet->write(++$lines,0,'(i) ... Incoming'); $worksheet->write(++$lines,0,'(o) ... Outgoing'); $worksheet->write(++$lines,0,'(ar) ... '.$p->t('anwesenheitsliste/angerechnet')); + $worksheet->write(++$lines,0,'(iar) ... '.$p->t('anwesenheitsliste/internangerechnet')); $worksheet->write(++$lines,0,'(dd) ... Double Degree Program'); $worksheet->setColumn(0, 0, 5); diff --git a/include/lehrelisthelper.class.php b/include/lehrelisthelper.class.php index 631d6fb86..e78792732 100644 --- a/include/lehrelisthelper.class.php +++ b/include/lehrelisthelper.class.php @@ -41,16 +41,16 @@ class LehreListHelper protected $lv; protected $lehreinheit; protected $stg; - + protected $arr_lehrende; protected $studentuids; protected $data; - + protected $gruppen_string; protected $lehrende_string; protected $raum_string; - public function __construct(basis_db $db, $studiensemester, $lvid, + public function __construct(basis_db $db, $studiensemester, $lvid, lehrveranstaltung $lv, studiengang $stg, $lehreinheit='') { $this->db = $db; @@ -63,39 +63,39 @@ class LehreListHelper $this->arr_lehrende = array(); $this->studentuids = array(); $this->data = array(); - + $this->gruppen_string = ''; $this->lehrende_string = ''; $this->raum_string = ''; - + $this->loadMemberGroups(); $this->loadPlannedRooms(); $this->initData(); $this->loadLehrende(); $this->loadStudierende(); } - - public function getData() + + public function getData() { return $this->data; } - - public function getStudentUids() + + public function getStudentUids() { return $this->studentuids; } - - public function getArr_Lehrende() + + public function getArr_Lehrende() { return $this->arr_lehrende; } - + public function getLehrende_String() { return $this->lehrende_string; } - - protected function loadMemberGroups() + + protected function loadMemberGroups() { // Teilnehmende Gruppen laden $qry = "SELECT DISTINCT ON(kuerzel, semester, verband, gruppe, gruppe_kurzbz) @@ -124,7 +124,7 @@ class LehreListHelper } } } - + protected function loadPlannedRooms() { // Verplante Räume laden @@ -153,7 +153,7 @@ class LehreListHelper } } } - + protected function initData() { $studiengang_bezeichnung=$this->stg->bezeichnung; @@ -175,8 +175,8 @@ class LehreListHelper 'raum'=>$this->raum_string, ); } - - protected function loadLehrende() + + protected function loadLehrende() { //Lehrende der LV laden und in ein Array schreiben $lehrende = new lehreinheitmitarbeiter(); @@ -187,24 +187,25 @@ class LehreListHelper foreach($lehrende->result AS $row) { $this->data[]=array('lehrende'=>array('uid'=>$row->uid,'name'=>$row->vorname.' '.$row->nachname)); - $this->arr_lehrende[]=mb_strtoupper($row->uid); - $this->lehrende_string .= (strlen($this->lehrende_string) > 0) - ? ', ' . $row->vorname . ' ' . $row->nachname + $this->arr_lehrende[]=mb_strtoupper($row->uid); + $this->lehrende_string .= (strlen($this->lehrende_string) > 0) + ? ', ' . $row->vorname . ' ' . $row->nachname : $row->vorname . ' ' . $row->nachname; } } } - - protected function loadStudierende() + + protected function loadStudierende() { //Studierende der LV laden und in ein Array schreiben $qry = 'SELECT - distinct on(nachname, vorname, person_id) vorname, nachname, matrikelnr, public.tbl_student.student_uid, + distinct on(nachname, vorname, person_id) vorname, nachname, matrikelnr, public.tbl_student.student_uid, tbl_studentlehrverband.semester, tbl_studentlehrverband.verband, tbl_studentlehrverband.gruppe, (SELECT status_kurzbz FROM public.tbl_prestudentstatus WHERE prestudent_id=tbl_student.prestudent_id ORDER BY datum DESC, insertamum DESC, ext_id DESC LIMIT 1) as status, tbl_bisio.bisio_id, tbl_bisio.von, tbl_bisio.bis, tbl_student.studiengang_kz AS stg_kz_student, - tbl_note.lkt_ueberschreibbar, tbl_note.anmerkung, tbl_mitarbeiter.mitarbeiter_uid, tbl_person.matr_nr, tbl_studiengang.kurzbzlang, tbl_mobilitaet.mobilitaetstyp_kurzbz + tbl_note.lkt_ueberschreibbar, tbl_note.anmerkung, tbl_mitarbeiter.mitarbeiter_uid, tbl_person.matr_nr, tbl_studiengang.kurzbzlang, tbl_mobilitaet.mobilitaetstyp_kurzbz, + (CASE WHEN bis.tbl_mobilitaet.studiensemester_kurzbz = vw_student_lehrveranstaltung.studiensemester_kurzbz THEN 1 ELSE 0 END) as doubledegree FROM campus.vw_student_lehrveranstaltung JOIN public.tbl_benutzer USING(uid) @@ -224,7 +225,7 @@ class LehreListHelper if($this->lehreinheit!='') $qry.=' AND vw_student_lehrveranstaltung.lehreinheit_id='.$this->db->db_add_param($this->lehreinheit, FHC_INTEGER); - $qry.=' ORDER BY nachname, vorname, person_id, tbl_bisio.bis DESC'; + $qry.=' ORDER BY nachname, vorname, person_id, tbl_bisio.bis, doubledegree DESC'; $stsem_obj = new studiensemester(); $stsem_obj->load($this->studiensemester); @@ -265,14 +266,12 @@ class LehreListHelper if($row->stg_kz_student==$a_o_kz) //Außerordentliche Studierende $zusatz.='(a.o.)'; - if($row->mobilitaetstyp_kurzbz !='') //Double Degree Student - $zusatz.='(d.d.)'; + if(($row->mobilitaetstyp_kurzbz != '') && ($row->doubledegree == 1)) //Double Degree Student + $zusatz .= '(d.d.)'; - //$zusatz.='test'; - $this->studentuids[] = $row->student_uid; $this->data[]=array('student'=>array( - 'uid' => $row->student_uid, + 'uid' => $row->student_uid, 'vorname'=>$row->vorname, 'nachname'=>$row->nachname, 'personenkennzeichen'=>trim($row->matrikelnr), diff --git a/locale/de-AT/anwesenheitsliste.php b/locale/de-AT/anwesenheitsliste.php index 7b73c15e5..a162578a6 100644 --- a/locale/de-AT/anwesenheitsliste.php +++ b/locale/de-AT/anwesenheitsliste.php @@ -1,5 +1,5 @@ phrasen['anwesenheitsliste/studiensemesterIstUngueltig']='Studiensemester ist ungueltig'; +$this->phrasen['anwesenheitsliste/studiensemesterIstUngueltig']='Studiensemester ist ungueltig'; $this->phrasen['anwesenheitsliste/anwesenheitslisten']='Anwesenheitslisten'; $this->phrasen['anwesenheitsliste/covidstatuslisten']='Nachweislisten'; $this->phrasen['anwesenheitsliste/notenlisten']='Notenlisten'; @@ -19,4 +19,5 @@ $this->phrasen['anwesenheitsliste/keineStundenvorhanden']='Derzeit sind keine St $this->phrasen['anwesenheitsliste/keineEintraegeGefunden']='Es wurden keine Einträge gefunden'; $this->phrasen['anwesenheitsliste/anleitungImportFunktion']='Kopieren Sie diese Zellen in die Zwischenablage, um damit die Import-Spalte des Gesamtnotenformulars zu befüllen'; $this->phrasen['anwesenheitsliste/angerechnet']='Angerechnet'; +$this->phrasen['anwesenheitsliste/internangerechnet']='Intern angerechnet'; ?> diff --git a/locale/en-US/anwesenheitsliste.php b/locale/en-US/anwesenheitsliste.php index c1f42fe37..d0ea79b30 100644 --- a/locale/en-US/anwesenheitsliste.php +++ b/locale/en-US/anwesenheitsliste.php @@ -1,5 +1,5 @@ phrasen['anwesenheitsliste/studiensemesterIstUngueltig']='No valid semester'; +$this->phrasen['anwesenheitsliste/studiensemesterIstUngueltig']='No valid semester'; $this->phrasen['anwesenheitsliste/anwesenheitslisten']='Attendance lists'; $this->phrasen['anwesenheitsliste/covidstatuslisten']='verification lists'; $this->phrasen['anwesenheitsliste/notenlisten']='Grade lists'; @@ -19,4 +19,5 @@ $this->phrasen['anwesenheitsliste/keineStundenvorhanden']='Currently no lessons $this->phrasen['anwesenheitsliste/keineEintraegeGefunden']='No entries have been found'; $this->phrasen['anwesenheitsliste/anleitungImportFunktion']='Copy these cells to the clipboard to fill the subject grade import of the final grade form'; $this->phrasen['anwesenheitsliste/angerechnet']='Accredited'; +$this->phrasen['anwesenheitsliste/internangerechnet']='Internally accredited'; ?> From ef43b2c1bc0daeff00fa3ab11636e164d66de77b Mon Sep 17 00:00:00 2001 From: FHBGLD <33415881+FHBGLD@users.noreply.github.com> Date: Fri, 14 Jan 2022 08:22:44 +0100 Subject: [PATCH 13/18] transform_kartennummer MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit transform_kartennummer mit variabler länge --- include/betriebsmittel.class.php | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/include/betriebsmittel.class.php b/include/betriebsmittel.class.php index d3e208076..74671a9d1 100644 --- a/include/betriebsmittel.class.php +++ b/include/betriebsmittel.class.php @@ -1186,7 +1186,23 @@ class betriebsmittel extends basis_db //Kartennummern die im Hex-Format sind werden umgewandelt if (!is_numeric($kartennummer)) { - $kartennummer=substr($kartennummer,strlen($kartennummer)-2,2).substr($kartennummer,strlen($kartennummer)-4,2). substr($kartennummer,strlen($kartennummer)-6,2).substr($kartennummer,0,2); + //$kartennummer=substr($kartennummer,strlen($kartennummer)-2,2).substr($kartennummer,strlen($kartennummer)-4,2). substr($kartennummer,strlen($kartennummer)-6,2).substr($kartennummer,0,2); + $tmp_kn_str = null; + for ($i=0; strlen($kartennummer) > $i; $i+=2) { + + #wenn die strlen($kartennummer) gerade ist (TW hat 8 Stellen, FHB 14 Stellen) + $tmp_kn_str .= substr($kartennummer,strlen($kartennummer)-($i+2),2); + + //#wenn ich ungerade und der letzte Durchgang ist dann nur mehr die eine Nummer nach vorne + //if ((strlen($kartennummer)%2 != 0) && ($i+2 > strlen($kartennummer))) { + // $tmp_kn_str .= substr($kartennummer,strlen($kartennummer)-($i+1),1); + //#sonst normal immer 2 stellen nach vorne ruecken + //} else { + // $tmp_kn_str .= substr($kartennummer,strlen($kartennummer)-($i+2),2); + //} + } + $kartennummer = $tmp_kn_str; + $kartennummer=hexdec( $kartennummer); } From 1549c8d11212ffef22bf9acfc6f0c478611cad7e Mon Sep 17 00:00:00 2001 From: FHBGLD <33415881+FHBGLD@users.noreply.github.com> Date: Fri, 14 Jan 2022 08:26:58 +0100 Subject: [PATCH 14/18] betriebsmittel-textbox-nummer2 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Länge des Feldes betriebsmittel-textbox-nummer2 auf 32 Zeichen --- content/betriebsmitteloverlay.xul.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/betriebsmitteloverlay.xul.php b/content/betriebsmitteloverlay.xul.php index ec0e9f0d5..d9da9269b 100644 --- a/content/betriebsmitteloverlay.xul.php +++ b/content/betriebsmitteloverlay.xul.php @@ -204,7 +204,7 @@ else From 7e6d03667981d3a218ceff043f26e8f2c2f2f2e9 Mon Sep 17 00:00:00 2001 From: FHBGLD <33415881+FHBGLD@users.noreply.github.com> Date: Fri, 14 Jan 2022 11:57:29 +0100 Subject: [PATCH 15/18] Update betriebsmittel.class.php --- include/betriebsmittel.class.php | 1 - 1 file changed, 1 deletion(-) diff --git a/include/betriebsmittel.class.php b/include/betriebsmittel.class.php index 74671a9d1..220cdfea0 100644 --- a/include/betriebsmittel.class.php +++ b/include/betriebsmittel.class.php @@ -1186,7 +1186,6 @@ class betriebsmittel extends basis_db //Kartennummern die im Hex-Format sind werden umgewandelt if (!is_numeric($kartennummer)) { - //$kartennummer=substr($kartennummer,strlen($kartennummer)-2,2).substr($kartennummer,strlen($kartennummer)-4,2). substr($kartennummer,strlen($kartennummer)-6,2).substr($kartennummer,0,2); $tmp_kn_str = null; for ($i=0; strlen($kartennummer) > $i; $i+=2) { From 79972c0f1a468003d4d04008947e86fa34415ec2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Mon, 17 Jan 2022 11:07:00 +0100 Subject: [PATCH 16/18] Phrase korrigiert --- system/phrasesupdate.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/system/phrasesupdate.php b/system/phrasesupdate.php index b3518c79f..e05ee6086 100644 --- a/system/phrasesupdate.php +++ b/system/phrasesupdate.php @@ -1562,13 +1562,13 @@ $phrases = array( 'phrases' => array( array( 'sprache' => 'German', - 'text' => 'Benotung der Lehrveranstaltung', + 'text' => ' Lehrveranstaltung bereits benotet', 'description' => '', 'insertvon' => 'system' ), array( 'sprache' => 'English', - 'text' => 'Grading of the course', + 'text' => 'Course already graded', 'description' => '', 'insertvon' => 'system' ) From 26010e2347919973f2438bc708422cd829f9fa86 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Mon, 17 Jan 2022 12:12:09 +0100 Subject: [PATCH 17/18] Warning bei DD behoben --- cis/private/lehre/notenliste.xls.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/cis/private/lehre/notenliste.xls.php b/cis/private/lehre/notenliste.xls.php index b9ef87bbe..d940e9405 100644 --- a/cis/private/lehre/notenliste.xls.php +++ b/cis/private/lehre/notenliste.xls.php @@ -233,6 +233,7 @@ else $lines++; while($elem = $db->db_fetch_object($result)) { + $note=''; if(!preg_match('*dummy*',$elem->uid) && $elem->semester!=10) { if($elem->status!='Abbrecher' && $elem->status!='Unterbrecher') @@ -250,12 +251,12 @@ else $inc.=' (ar)'; $note='ar'; } + if ($elem->mobilitaetstyp_kurzbz !='' && $elem->doubledegree == 1) //dd-Program { $inc.=' (dd)'; } - else - $note=''; + $worksheet->write($lines,1,$elem->uid); $worksheet->write($lines,2,$elem->nachname.$inc); $worksheet->write($lines,3,$elem->vorname); From 1afcd5d4fe77b5d80cac77b7a717838967ead2b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Mon, 17 Jan 2022 12:19:45 +0100 Subject: [PATCH 18/18] DD Markierung korrigiert --- cis/private/lehre/notenliste.xls.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cis/private/lehre/notenliste.xls.php b/cis/private/lehre/notenliste.xls.php index d940e9405..7853600de 100644 --- a/cis/private/lehre/notenliste.xls.php +++ b/cis/private/lehre/notenliste.xls.php @@ -254,7 +254,7 @@ else if ($elem->mobilitaetstyp_kurzbz !='' && $elem->doubledegree == 1) //dd-Program { - $inc.=' (dd)'; + $inc.=' (d.d.)'; } $worksheet->write($lines,1,$elem->uid); @@ -308,7 +308,7 @@ else $worksheet->write(++$lines,0,'(o) ... Outgoing'); $worksheet->write(++$lines,0,'(ar) ... '.$p->t('anwesenheitsliste/angerechnet')); $worksheet->write(++$lines,0,'(iar) ... '.$p->t('anwesenheitsliste/internangerechnet')); - $worksheet->write(++$lines,0,'(dd) ... Double Degree Program'); + $worksheet->write(++$lines,0,'(d.d.) ... Double Degree Program'); $worksheet->setColumn(0, 0, 5); $worksheet->setColumn(0, 1, 16);