From 7fe2f3ef396f7b4bd869e86b3c229dfa7446c192 Mon Sep 17 00:00:00 2001 From: Cris Date: Thu, 15 Oct 2020 11:03:16 +0200 Subject: [PATCH 001/132] Adapted span-width of date in each tablerow Allows nice align of error messages. Signed-off-by: Cris --- cis/private/tools/zeitaufzeichnung.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cis/private/tools/zeitaufzeichnung.php b/cis/private/tools/zeitaufzeichnung.php index 71fdda2bb..054cf32e2 100644 --- a/cis/private/tools/zeitaufzeichnung.php +++ b/cis/private/tools/zeitaufzeichnung.php @@ -1532,7 +1532,7 @@ if($projekt->getProjekteMitarbeiter($user, true)) $langindex = 1; else $langindex = 2; - echo ''.$tagbez[$langindex][$datum->formatDatum($tag,'N')].' '.$datum->formatDatum($tag,'d.m.Y').' '.$zeitsperre_text.''.$pausefehlt_str; + echo ''.$tagbez[$langindex][$datum->formatDatum($tag,'N')].' '.$datum->formatDatum($tag,'d.m.Y').''.$zeitsperre_text.''.$pausefehlt_str; if ($ersumme != '00:00') $erstr = ' (+ '.$ersumme.' ER)'; else From 01032c63d3a04c40f32ff182d37269d5e38dd74f Mon Sep 17 00:00:00 2001 From: Cris Date: Wed, 4 Nov 2020 15:29:36 +0100 Subject: [PATCH 002/132] Update der Person in ALMA Tabelle, wenn Personen zusammengelegt werden MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Falls nur die zu löschende Person in ALMA vorhanden ist, mit der zu behaltenden Person ersetzen. Falls bereits die zu ersetzende UND zu löschende Person in ALMA vorhanden sind, muss erst direkt im ALMA Bibliothekssystem und in der tbl_alma gelöscht werden. Signed-off-by: Cris --- vilesci/stammdaten/personen_wartung.php | 47 +++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/vilesci/stammdaten/personen_wartung.php b/vilesci/stammdaten/personen_wartung.php index c143a1390..6f4e25cc4 100644 --- a/vilesci/stammdaten/personen_wartung.php +++ b/vilesci/stammdaten/personen_wartung.php @@ -135,6 +135,52 @@ if (isset($personToDelete) && isset($personToKeep) && $personToDelete >= 0 && $p } else { + // Wenn Person in ALMA Bibliothek vorkommt, ggf. die Person dort übernehmen + $alma_has_personToKeep = false; + $alma_has_personToDelete = false; + $alma_update_obj = new StdClass(); + $alma_query_upd = ''; + + $alma_query = " + SELECT * + FROM sync.tbl_alma + WHERE ( + person_id = " . $db->db_add_param($personToKeep, FHC_INTEGER) . " OR + person_id = " . $db->db_add_param($personToDelete, FHC_INTEGER) . " + )"; + + + if ($result = $db->db_query($alma_query)) + { + while ($row = $db->db_fetch_object($result)) + { + if ($row->person_id == $personToKeep) + { + $alma_has_personToKeep = true; + } + if ($row->person_id == $personToDelete) + { + $alma_has_personToDelete = true; + $alma_update_obj = $row; + } + } + } + + // Falls nur die zu löschende Person in ALMA vorhanden ist, mit der zu behaltenden Person ersetzen + if ($alma_has_personToDelete && !$alma_has_personToKeep) + { + $alma_query_upd = " + UPDATE sync.tbl_alma + SET person_id = " . $db->db_add_param($personToKeep, FHC_INTEGER) . " + WHERE alma_match_id = " . $alma_update_obj->alma_match_id . " + AND person_id = " . $alma_update_obj->person_id . ";"; + } + // Falls bereits doppelte Einträge in ALMA vorhanden sind, manuell lösen + elseif ($alma_has_personToDelete && $alma_has_personToKeep) + { + die('Es sind bereits beide Personen in ALMA vorhanden. Bitte zuerst direkt im ALMA Bibliotheksystem und in der tbl_alma lösen.'); + } + $personToDelete_obj = new person(); if ($personToDelete_obj->load($personToDelete)) { @@ -346,6 +392,7 @@ if (isset($personToDelete) && isset($personToKeep) && $personToDelete >= 0 && $p $sql_query_upd1 .= "UPDATE system.tbl_person_lock SET person_id=" . $db->db_add_param($personToKeep, FHC_INTEGER) . " WHERE person_id=" . $db->db_add_param($personToDelete, FHC_INTEGER) . ";"; $sql_query_upd1 .= "UPDATE wawi.tbl_betriebsmittelperson SET person_id=" . $db->db_add_param($personToKeep, FHC_INTEGER) . " WHERE person_id=" . $db->db_add_param($personToDelete, FHC_INTEGER) . ";"; $sql_query_upd1 .= "UPDATE wawi.tbl_konto SET person_id=" . $db->db_add_param($personToKeep, FHC_INTEGER) . " WHERE person_id=" . $db->db_add_param($personToDelete, FHC_INTEGER) . ";"; + $sql_query_upd1 .= $alma_query_upd; $sql_query_upd1 .= "DELETE FROM public.tbl_person WHERE person_id=" . $db->db_add_param($personToDelete, FHC_INTEGER) . ";"; From adb96ed33f0b7ca4f843d027f8e1a64e1fa98ad1 Mon Sep 17 00:00:00 2001 From: Cris Date: Mon, 16 Nov 2020 15:11:08 +0100 Subject: [PATCH 003/132] Automatisch Personen in tbl_sap_students zusammenlegen MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Wenn doppelt angelegte Personen zusammengeführt werden, wird nun ggf auch in der Tabelle tbl_sap_students die hinterlegte Person upgedatet. Ausnahme: wenn in der tbl_sap_students die Person auch schon doppelt angelegt ist. In diesem Fall gibt es ein exit mit der Aufforderung, dies direkt (manuell) in der tbl_sap_students zu ändern. Signed-off-by: cris-technikum --- vilesci/stammdaten/personen_wartung.php | 48 +++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/vilesci/stammdaten/personen_wartung.php b/vilesci/stammdaten/personen_wartung.php index 6f4e25cc4..9cc0bba15 100644 --- a/vilesci/stammdaten/personen_wartung.php +++ b/vilesci/stammdaten/personen_wartung.php @@ -181,6 +181,53 @@ if (isset($personToDelete) && isset($personToKeep) && $personToDelete >= 0 && $p die('Es sind bereits beide Personen in ALMA vorhanden. Bitte zuerst direkt im ALMA Bibliotheksystem und in der tbl_alma lösen.'); } + + // Wenn Person in SAP students vorkommt, ggf. die Person dort übernehmen + $sap_students_has_personToKeep = false; + $sap_students_has_personToDelete = false; + $sap_students_update_obj = new StdClass(); + $sap_students_query_upd = ''; + + $sap_students_query = " + SELECT * + FROM sync.tbl_sap_students + WHERE ( + person_id = " . $db->db_add_param($personToKeep, FHC_INTEGER) . " OR + person_id = " . $db->db_add_param($personToDelete, FHC_INTEGER) . " + )"; + + if ($result = $db->db_query($sap_students_query)) + { + while ($row = $db->db_fetch_object($result)) + { + if ($row->person_id == $personToKeep) + { + $sap_students_has_personToKeep = true; + } + if ($row->person_id == $personToDelete) + { + $sap_students_has_personToDelete = true; + $sap_students_update_obj = $row; + } + } + } + + // Wenn die zu löschende Person in SAP students eingetragen ist, dann mit der zu behaltenden Person überschreiben + if ($sap_students_has_personToDelete && !$sap_students_has_personToKeep) + { + $sap_students_query_upd = " + UPDATE sync.tbl_sap_students + SET person_id = " . $db->db_add_param($personToKeep, FHC_INTEGER) . " + WHERE sap_user_id = " . $db->db_add_param($sap_students_update_obj->sap_user_id, FHC_STRING) . " + AND person_id = " . $sap_students_update_obj->person_id . ";"; + } + // Wenn doppelte Personeneinträge in SAP students vorhanden sind (zu löschende UND zu behaltende Person), + // dann manuell lösen + elseif ($sap_students_has_personToDelete && $sap_students_has_personToKeep) + { + die('Es sind bereits beide Personen in SAP vorhanden. Bitte zuerst direkt in der tbl_sap_students lösen.'); + } + $personToDelete_obj = new person(); if ($personToDelete_obj->load($personToDelete)) { @@ -393,6 +440,7 @@ if (isset($personToDelete) && isset($personToKeep) && $personToDelete >= 0 && $p $sql_query_upd1 .= "UPDATE wawi.tbl_betriebsmittelperson SET person_id=" . $db->db_add_param($personToKeep, FHC_INTEGER) . " WHERE person_id=" . $db->db_add_param($personToDelete, FHC_INTEGER) . ";"; $sql_query_upd1 .= "UPDATE wawi.tbl_konto SET person_id=" . $db->db_add_param($personToKeep, FHC_INTEGER) . " WHERE person_id=" . $db->db_add_param($personToDelete, FHC_INTEGER) . ";"; $sql_query_upd1 .= $alma_query_upd; + $sql_query_upd1 .= $sap_students_query_upd; $sql_query_upd1 .= "DELETE FROM public.tbl_person WHERE person_id=" . $db->db_add_param($personToDelete, FHC_INTEGER) . ";"; From 4cbbd662b6f34722845bed3c48453911419b6610 Mon Sep 17 00:00:00 2001 From: Cris Date: Mon, 16 Nov 2020 17:48:24 +0100 Subject: [PATCH 004/132] Automatisch Personen in tbl_sap_mitarbeiter zusammenlegen MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Wenn doppelt angelegte Personen zusammengeführt werden, wird nun ggf auch in der Tabelle tbl_sap_mitarbeiter die hinterlegte Person upgedatet. Ausnahme: wenn in der tbl_sap_mitarbeiter die Person auch schon doppelt angelegt ist. In diesem Fall gibt es ein exit mit der Aufforderung, dies direkt (manuell) in der tbl_sap_mitarbeiter zu ändern. Signed-off-by: cris-technikum --- vilesci/stammdaten/personen_wartung.php | 145 ++++++++++++++++++------ 1 file changed, 110 insertions(+), 35 deletions(-) diff --git a/vilesci/stammdaten/personen_wartung.php b/vilesci/stammdaten/personen_wartung.php index 9cc0bba15..fdf3c0531 100644 --- a/vilesci/stammdaten/personen_wartung.php +++ b/vilesci/stammdaten/personen_wartung.php @@ -182,51 +182,117 @@ if (isset($personToDelete) && isset($personToKeep) && $personToDelete >= 0 && $p } - // Wenn Person in SAP students vorkommt, ggf. die Person dort übernehmen - $sap_students_has_personToKeep = false; - $sap_students_has_personToDelete = false; - $sap_students_update_obj = new StdClass(); - $sap_students_query_upd = ''; + // Prüfen, ob Person Mitarbeiter oder Student ist + $uid_toDelete = new Benutzer(); + $uid_toDelete->getBenutzerFromPerson($personToDelete); + $uid_toDelete = $uid_toDelete->result[0]->uid; - $sap_students_query = " + $mitarbeiter = new Mitarbeiter(); + $is_Mitarbeiter = $mitarbeiter->load($uid_toDelete); + + // Wenn Person Mitarbeiter ist, gegebenenfalls die SAP Mitarbeiter Tabelle updaten + if($is_Mitarbeiter) + { + $uid_toKeep = new Benutzer(); + $uid_toKeep->getBenutzerFromPerson($personToKeep); + $uid_toKeep = $uid_toKeep->result[0]->uid; + + // Wenn Person in SAP students vorkommt, ggf. die Person dort übernehmen + $sap_mitarbeiter_has_uidToKeep = false; + $sap_mitarbeiter_has_uidToDelete = false; + $sap_mitarbeiter_update_obj = new StdClass(); + $sap_mitarbeiter_query_upd = ''; + + $sap_mitarbeiter_query = " + SELECT * + FROM sync.tbl_sap_mitarbeiter + WHERE ( + mitarbeiter_uid = " . $db->db_add_param($uid_toKeep) . " OR + mitarbeiter_uid = " . $db->db_add_param($uid_toDelete) . " + )"; + + if ($result = $db->db_query($sap_mitarbeiter_query)) + { + while ($row = $db->db_fetch_object($result)) + { + if ($row->mitarbeiter_uid == $uid_toKeep) + { + $sap_mitarbeiter_has_uidToKeep = true; + } + if ($row->mitarbeiter_uid == $uid_toDelete) + { + $sap_mitarbeiter_has_uidToDelete = true; + $sap_mitarbeiter_update_obj = $row; + } + } + } + + // Wenn die zu löschende Person in SAP students eingetragen ist, dann mit der zu behaltenden Person überschreiben + if ($sap_mitarbeiter_has_uidToDelete && !$sap_mitarbeiter_has_uidToKeep) + { + $sap_mitarbeiter_query_upd = " + UPDATE sync.tbl_sap_mitarbeiter + SET mitarbeiter_uid = " . $db->db_add_param($uid_toKeep) . " + WHERE sap_eeid = " . $db->db_add_param($sap_mitarbeiter_update_obj->sap_eeid) . " + AND mitarbeiter_uid = " . $db->db_add_param($sap_mitarbeiter_update_obj->mitarbeiter_uid) . ";"; + } + // Wenn doppelte Personeneinträge in SAP students vorhanden sind (zu löschende UND zu behaltende Person), + // dann manuell lösen + elseif ($sap_mitarbeiter_has_uidToDelete && $sap_mitarbeiter_has_uidToKeep) + { + die('Es sind bereits beide Personen in SAP vorhanden. Bitte zuerst direkt in der tbl_sap_mitarbeiter lösen.'); + } + + } + // Wenn Person Student ist, gegebenenfalls die SAP Studenten Tabelle updaten + else + { + $sap_students_has_personToKeep = false; + $sap_students_has_personToDelete = false; + $sap_students_update_obj = new StdClass(); + $sap_students_query_upd = ''; + + $sap_students_query = " SELECT * FROM sync.tbl_sap_students WHERE ( person_id = " . $db->db_add_param($personToKeep, FHC_INTEGER) . " OR person_id = " . $db->db_add_param($personToDelete, FHC_INTEGER) . " )"; - - if ($result = $db->db_query($sap_students_query)) - { - while ($row = $db->db_fetch_object($result)) - { - if ($row->person_id == $personToKeep) - { - $sap_students_has_personToKeep = true; - } - if ($row->person_id == $personToDelete) - { - $sap_students_has_personToDelete = true; - $sap_students_update_obj = $row; - } - } - } - - // Wenn die zu löschende Person in SAP students eingetragen ist, dann mit der zu behaltenden Person überschreiben - if ($sap_students_has_personToDelete && !$sap_students_has_personToKeep) - { - $sap_students_query_upd = " + + if ($result = $db->db_query($sap_students_query)) + { + while ($row = $db->db_fetch_object($result)) + { + if ($row->person_id == $personToKeep) + { + $sap_students_has_personToKeep = true; + } + if ($row->person_id == $personToDelete) + { + $sap_students_has_personToDelete = true; + $sap_students_update_obj = $row; + } + } + } + + // Wenn die zu löschende Person in SAP students eingetragen ist, dann mit der zu behaltenden Person überschreiben + if ($sap_students_has_personToDelete && !$sap_students_has_personToKeep) + { + $sap_students_query_upd = " UPDATE sync.tbl_sap_students SET person_id = " . $db->db_add_param($personToKeep, FHC_INTEGER) . " WHERE sap_user_id = " . $db->db_add_param($sap_students_update_obj->sap_user_id, FHC_STRING) . " AND person_id = " . $sap_students_update_obj->person_id . ";"; - } - // Wenn doppelte Personeneinträge in SAP students vorhanden sind (zu löschende UND zu behaltende Person), - // dann manuell lösen - elseif ($sap_students_has_personToDelete && $sap_students_has_personToKeep) - { - die('Es sind bereits beide Personen in SAP vorhanden. Bitte zuerst direkt in der tbl_sap_students lösen.'); - } + } + // Wenn doppelte Personeneinträge in SAP students vorhanden sind (zu löschende UND zu behaltende Person), + // dann manuell lösen + elseif ($sap_students_has_personToDelete && $sap_students_has_personToKeep) + { + die('Es sind bereits beide Personen in SAP vorhanden. Bitte zuerst direkt in der tbl_sap_students lösen.'); + } + } + $personToDelete_obj = new person(); if ($personToDelete_obj->load($personToDelete)) @@ -440,7 +506,16 @@ if (isset($personToDelete) && isset($personToKeep) && $personToDelete >= 0 && $p $sql_query_upd1 .= "UPDATE wawi.tbl_betriebsmittelperson SET person_id=" . $db->db_add_param($personToKeep, FHC_INTEGER) . " WHERE person_id=" . $db->db_add_param($personToDelete, FHC_INTEGER) . ";"; $sql_query_upd1 .= "UPDATE wawi.tbl_konto SET person_id=" . $db->db_add_param($personToKeep, FHC_INTEGER) . " WHERE person_id=" . $db->db_add_param($personToDelete, FHC_INTEGER) . ";"; $sql_query_upd1 .= $alma_query_upd; - $sql_query_upd1 .= $sap_students_query_upd; + // Wenn Person Mitarbeiter ist, ggf. SAP Mitarbeiter updaten + if ($is_Mitarbeiter) + { + $sql_query_upd1 .= $sap_mitarbeiter_query_upd; + } + // Wenn Person Student ist, ggf. SAP Studententabelle updaten + if (!$is_Mitarbeiter) + { + $sql_query_upd1 .= $sap_students_query_upd; + } $sql_query_upd1 .= "DELETE FROM public.tbl_person WHERE person_id=" . $db->db_add_param($personToDelete, FHC_INTEGER) . ";"; From 34e3756d744817dfbd7f4f2e909b88403989339e Mon Sep 17 00:00:00 2001 From: Cris Date: Wed, 18 Nov 2020 13:14:59 +0100 Subject: [PATCH 005/132] Mitarbeiter zusammenlegen entfernt / Extension-Tabellen auf Vorhandensein pruefen - Mitarbeiter zusammenlegen entfernt. - Bevor Personen auch in extenstions zusammengelegt werden: pruefen, ob die entsprechenden Tabellen existieren. (diese sind nur vorhanden, wenn extensions FHC-Core-ALMA, FHC-Core-SAP installiert sind) Signed-off-by: cris-technikum --- vilesci/stammdaten/personen_wartung.php | 146 ++++++++++++------------ 1 file changed, 73 insertions(+), 73 deletions(-) diff --git a/vilesci/stammdaten/personen_wartung.php b/vilesci/stammdaten/personen_wartung.php index 9cc0bba15..2c4c4f0fa 100644 --- a/vilesci/stammdaten/personen_wartung.php +++ b/vilesci/stammdaten/personen_wartung.php @@ -135,97 +135,97 @@ if (isset($personToDelete) && isset($personToKeep) && $personToDelete >= 0 && $p } else { - // Wenn Person in ALMA Bibliothek vorkommt, ggf. die Person dort übernehmen - $alma_has_personToKeep = false; - $alma_has_personToDelete = false; - $alma_update_obj = new StdClass(); - $alma_query_upd = ''; - - $alma_query = " - SELECT * - FROM sync.tbl_alma - WHERE ( - person_id = " . $db->db_add_param($personToKeep, FHC_INTEGER) . " OR - person_id = " . $db->db_add_param($personToDelete, FHC_INTEGER) . " - )"; - - - if ($result = $db->db_query($alma_query)) + // Prüfen, ob tbl_alma existiert (also ob ALMA extension installiert ist) + if($result = @$db->db_query("SELECT 1 FROM sync.tbl_alma LIMIT 1")) { - while ($row = $db->db_fetch_object($result)) + // Wenn Person in ALMA Bibliothek vorkommt, ggf. die Person dort übernehmen + $alma_has_personToKeep = false; + $alma_has_personToDelete = false; + $alma_update_obj = new StdClass(); + $alma_query_upd = ''; + + $alma_query = " + SELECT * + FROM sync.tbl_alma + WHERE ( + person_id = " . $db->db_add_param($personToKeep, FHC_INTEGER) . " OR + person_id = " . $db->db_add_param($personToDelete, FHC_INTEGER) . " + )"; + + if ($result = $db->db_query($alma_query)) { - if ($row->person_id == $personToKeep) + while ($row = $db->db_fetch_object($result)) { - $alma_has_personToKeep = true; - } - if ($row->person_id == $personToDelete) - { - $alma_has_personToDelete = true; - $alma_update_obj = $row; + if ($row->person_id == $personToKeep) + { + $alma_has_personToKeep = true; + } + if ($row->person_id == $personToDelete) + { + $alma_has_personToDelete = true; + $alma_update_obj = $row; + } } } - } - - // Falls nur die zu löschende Person in ALMA vorhanden ist, mit der zu behaltenden Person ersetzen - if ($alma_has_personToDelete && !$alma_has_personToKeep) + + // Falls nur die zu löschende Person in ALMA vorhanden ist, mit der zu behaltenden Person ersetzen + if ($alma_has_personToDelete && !$alma_has_personToKeep) + { + $alma_query_upd = " + UPDATE sync.tbl_alma + SET person_id = " . $db->db_add_param($personToKeep, FHC_INTEGER) . " + WHERE alma_match_id = " . $alma_update_obj->alma_match_id . " + AND person_id = " . $alma_update_obj->person_id . ";"; + } + // Falls bereits doppelte Einträge in ALMA vorhanden sind (zu löschende und zu behaltende), manuell lösen + elseif ($alma_has_personToDelete && $alma_has_personToKeep) + { + die('Es sind bereits beide Personen in ALMA vorhanden. Bitte zuerst direkt im ALMA Bibliotheksystem und in der tbl_alma lösen.'); + } + } + + // Prüfen, ob tbl_sap_students exisitiert + if($result = @$db->db_query("SELECT 1 FROM sync.tbl_sap_students LIMIT 1")) { - $alma_query_upd = " - UPDATE sync.tbl_alma - SET person_id = " . $db->db_add_param($personToKeep, FHC_INTEGER) . " - WHERE alma_match_id = " . $alma_update_obj->alma_match_id . " - AND person_id = " . $alma_update_obj->person_id . ";"; - } - // Falls bereits doppelte Einträge in ALMA vorhanden sind, manuell lösen - elseif ($alma_has_personToDelete && $alma_has_personToKeep) - { - die('Es sind bereits beide Personen in ALMA vorhanden. Bitte zuerst direkt im ALMA Bibliotheksystem und in der tbl_alma lösen.'); - } - - - // Wenn Person in SAP students vorkommt, ggf. die Person dort übernehmen - $sap_students_has_personToKeep = false; - $sap_students_has_personToDelete = false; - $sap_students_update_obj = new StdClass(); - $sap_students_query_upd = ''; - - $sap_students_query = " + // Wenn Person in SAP students vorkommt, ggf. die Person dort übernehmen + $sap_students_has_personToKeep = false; + $sap_students_has_personToDelete = false; + $sap_students_update_obj = new StdClass(); + $sap_students_query_upd = ''; + + $sap_students_query = " SELECT * FROM sync.tbl_sap_students WHERE ( person_id = " . $db->db_add_param($personToKeep, FHC_INTEGER) . " OR person_id = " . $db->db_add_param($personToDelete, FHC_INTEGER) . " )"; - - if ($result = $db->db_query($sap_students_query)) - { - while ($row = $db->db_fetch_object($result)) - { - if ($row->person_id == $personToKeep) - { - $sap_students_has_personToKeep = true; - } - if ($row->person_id == $personToDelete) - { - $sap_students_has_personToDelete = true; - $sap_students_update_obj = $row; + + if ($result = $db->db_query($sap_students_query)) { + while ($row = $db->db_fetch_object($result)) { + if ($row->person_id == $personToKeep) { + $sap_students_has_personToKeep = true; + } + if ($row->person_id == $personToDelete) { + $sap_students_has_personToDelete = true; + $sap_students_update_obj = $row; + } } } - } - - // Wenn die zu löschende Person in SAP students eingetragen ist, dann mit der zu behaltenden Person überschreiben - if ($sap_students_has_personToDelete && !$sap_students_has_personToKeep) - { - $sap_students_query_upd = " + + // Wenn die zu löschende Person in SAP students eingetragen ist, dann mit der zu behaltenden Person überschreiben + if ($sap_students_has_personToDelete && !$sap_students_has_personToKeep) { + $sap_students_query_upd = " UPDATE sync.tbl_sap_students SET person_id = " . $db->db_add_param($personToKeep, FHC_INTEGER) . " WHERE sap_user_id = " . $db->db_add_param($sap_students_update_obj->sap_user_id, FHC_STRING) . " AND person_id = " . $sap_students_update_obj->person_id . ";"; - } - // Wenn doppelte Personeneinträge in SAP students vorhanden sind (zu löschende UND zu behaltende Person), - // dann manuell lösen - elseif ($sap_students_has_personToDelete && $sap_students_has_personToKeep) - { - die('Es sind bereits beide Personen in SAP vorhanden. Bitte zuerst direkt in der tbl_sap_students lösen.'); + } + // Wenn doppelte Personeneinträge in SAP students vorhanden sind (zu löschende UND zu behaltende Person), + // dann manuell lösen + elseif ($sap_students_has_personToDelete && $sap_students_has_personToKeep) { + die('Es sind bereits beide Personen in SAP vorhanden. Bitte zuerst direkt in der tbl_sap_students lösen.'); + } } $personToDelete_obj = new person(); From c3ab40282b1035d7e97efd058c2020b4427f8915 Mon Sep 17 00:00:00 2001 From: OliiverHacker Date: Wed, 16 Dec 2020 16:39:43 +0100 Subject: [PATCH 006/132] add azgrelevant column and alter zeitaufzeichnung column in bis.tbl_bisverwendung --- system/dbupdate_3.3.php | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/system/dbupdate_3.3.php b/system/dbupdate_3.3.php index 2336ebad4..dafec165d 100644 --- a/system/dbupdate_3.3.php +++ b/system/dbupdate_3.3.php @@ -4465,6 +4465,21 @@ if($result = $db->db_query("SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE } } +// ADD COLUMN azgrelevant in bis.tbl_bisverwendung +if(!$result = @$db->db_query("SELECT incoming FROM bis.tbl_bisverwendung LIMIT 1")) +{ + $qry = " + ALTER TABLE bis.tbl_bisverwendung ADD COLUMN azgrelevant boolean; + UPDATE bis.tbl_bisverwendung SET azgrelevant = zeitaufzeichnungspflichtig; + UPDATE bis.tbl_bisverwendung SET zeitaufzeichnungspflichtig = true WHERE ba1code=103; + "; + + if(!$db->db_query($qry)) + echo 'bis.tbl_bisverwendung: '.$db->db_last_error().'
'; + else + echo '
bis.tbl_bisverwendung Spalte azgrelevant hinzugefügt.'; +} + // *** Pruefung und hinzufuegen der neuen Attribute und Tabellen echo '

Pruefe Tabellen und Attribute!

'; From 30960adf8179e2131ce5df4e2b262e87c380ca88 Mon Sep 17 00:00:00 2001 From: OliiverHacker Date: Mon, 21 Dec 2020 08:55:33 +0100 Subject: [PATCH 007/132] fix typo in query --- system/dbupdate_3.3.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/dbupdate_3.3.php b/system/dbupdate_3.3.php index dafec165d..e01105db6 100644 --- a/system/dbupdate_3.3.php +++ b/system/dbupdate_3.3.php @@ -4466,7 +4466,7 @@ if($result = $db->db_query("SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE } // ADD COLUMN azgrelevant in bis.tbl_bisverwendung -if(!$result = @$db->db_query("SELECT incoming FROM bis.tbl_bisverwendung LIMIT 1")) +if(!$result = @$db->db_query("SELECT azgrelevant FROM bis.tbl_bisverwendung LIMIT 1")) { $qry = " ALTER TABLE bis.tbl_bisverwendung ADD COLUMN azgrelevant boolean; From d62b1bead4692c7f9f97ea1bcf1aaa922a48e989 Mon Sep 17 00:00:00 2001 From: OliiverHacker Date: Mon, 21 Dec 2020 09:27:23 +0100 Subject: [PATCH 008/132] change table --- include/bisverwendung.class.php | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/include/bisverwendung.class.php b/include/bisverwendung.class.php index 9d92db489..798b2213b 100644 --- a/include/bisverwendung.class.php +++ b/include/bisverwendung.class.php @@ -47,6 +47,7 @@ class bisverwendung extends basis_db public $dv_art; public $inkludierte_lehre; public $zeitaufzeichnungspflichtig; + public $azgrelevant; public $ba1bez; public $ba2bez; @@ -122,6 +123,7 @@ class bisverwendung extends basis_db $this->dv_art = $row->dv_art; $this->inkludierte_lehre = $row->inkludierte_lehre; $this->zeitaufzeichnungspflichtig = $this->db_parse_bool($row->zeitaufzeichnungspflichtig); + $this->azgrelevant = $this->db_parse_bool($row->azgrelevant); return true; } else @@ -359,7 +361,7 @@ class bisverwendung extends basis_db $obj->dv_art = $row->dv_art; $obj->inkludierte_lehre = $row->inkludierte_lehre; $obj->zeitaufzeichnungspflichtig = $this->db_parse_bool($row->zeitaufzeichnungspflichtig); - + $obj->azgrelevant = $this->db_parse_bool($row->azgrelevant); $this->result[] = $obj; } return true; @@ -416,6 +418,7 @@ class bisverwendung extends basis_db $obj->dv_art = $row->dv_art; $obj->inkludierte_lehre = $row->inkludierte_lehre; $obj->zeitaufzeichnungspflichtig = $this->db_parse_bool($row->zeitaufzeichnungspflichtig); + $obj->azgrelevant = $this->db_parse_bool($row->azgrelevant); $this->result[] = $obj; } @@ -474,6 +477,7 @@ class bisverwendung extends basis_db $obj->dv_art = $row->dv_art; $obj->inkludierte_lehre = $row->inkludierte_lehre; $obj->zeitaufzeichnungspflichtig = $this->db_parse_bool($row->zeitaufzeichnungspflichtig); + $obj->azgrelevant = $this->db_parse_bool($row->azgrelevant); $this->result[] = $obj; } @@ -525,6 +529,7 @@ class bisverwendung extends basis_db $this->dv_art = $row->dv_art; $this->inkludierte_lehre = $row->inkludierte_lehre; $this->zeitaufzeichnungspflichtig = $this->db_parse_bool($row->zeitaufzeichnungspflichtig); + $this->azgrelevant = $this->db_parse_bool($row->azgrelevant); } return true; } @@ -578,6 +583,7 @@ class bisverwendung extends basis_db $this->dv_art = $row->dv_art; $this->inkludierte_lehre = $row->inkludierte_lehre; $this->zeitaufzeichnungspflichtig = $this->db_parse_bool($row->zeitaufzeichnungspflichtig); + $this->azgrelevant = $this->db_parse_bool($row->azgrelevant); } return true; } @@ -640,6 +646,7 @@ class bisverwendung extends basis_db $obj->dv_art = $row->dv_art; $obj->inkludierte_lehre = $row->inkludierte_lehre; $obj->zeitaufzeichnungspflichtig = $this->db_parse_bool($row->zeitaufzeichnungspflichtig); + $obj->azgrelevant = $this->db_parse_bool($row->azgrelevant); $this->result[] = $obj; } From 57722553eca12b8db3aecef0ef4424cd0e991309 Mon Sep 17 00:00:00 2001 From: KarpAlex Date: Wed, 13 Jan 2021 00:05:03 +0100 Subject: [PATCH 009/132] - new funktion type kstzuordnung for cost center assignment in public.tbl_funktion --- system/dbupdate_3.3.php | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/system/dbupdate_3.3.php b/system/dbupdate_3.3.php index 2336ebad4..d3672ffc7 100644 --- a/system/dbupdate_3.3.php +++ b/system/dbupdate_3.3.php @@ -4465,6 +4465,20 @@ if($result = $db->db_query("SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE } } +// Add new funktion type kstzuordnung for cost center assignment in public.tbl_funktion +if ($result = @$db->db_query("SELECT 1 FROM public.tbl_funktion WHERE funktion_kurzbz = 'kstzuordnung';")) +{ + if ($db->db_num_rows($result) == 0) + { + $qry = "INSERT INTO public.tbl_funktion(funktion_kurzbz, beschreibung, aktiv, fachbereich, semester) VALUES('kstzuordnung','Standardkostenstelle Zuordnung',true,false,false);"; + + if (!$db->db_query($qry)) + echo 'public.tbl_funktion '.$db->db_last_error().'
'; + else + echo '
public.tbl_funktion: Added funktion kstzuordnung
'; + } +} + // *** Pruefung und hinzufuegen der neuen Attribute und Tabellen echo '

Pruefe Tabellen und Attribute!

'; From 254dad870045edb7d54fef9869a07d8841099fa9 Mon Sep 17 00:00:00 2001 From: KarpAlex Date: Wed, 13 Jan 2021 21:15:44 +0100 Subject: [PATCH 010/132] db changes for projektarbeitsbeurteilung - added lehre.tbl_projektarbeitsbeurteilung - added columns zugangstoken, zugangstoken_gueltigbis to lehre.tbl_projektbetreuer --- system/dbupdate_3.3.php | 110 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 109 insertions(+), 1 deletion(-) diff --git a/system/dbupdate_3.3.php b/system/dbupdate_3.3.php index 2336ebad4..b08a7581d 100644 --- a/system/dbupdate_3.3.php +++ b/system/dbupdate_3.3.php @@ -4465,6 +4465,113 @@ if($result = $db->db_query("SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE } } +// SEQUENCE tbl_projektarbeitsbeurteilung_id_se +if ($result = $db->db_query("SELECT 0 FROM pg_class WHERE relname = 'tbl_projektarbeitsbeurteilung_id_seq'")) +{ + if ($db->db_num_rows($result) == 0) + { + $qry = ' + CREATE SEQUENCE lehre.tbl_projektarbeitsbeurteilung_id_seq + START WITH 1 + INCREMENT BY 1 + NO MAXVALUE + NO MINVALUE + CACHE 1; + '; + if(!$db->db_query($qry)) + echo 'lehre.tbl_projektarbeitsbeurteilung_id_seq '.$db->db_last_error().'
'; + else + echo '
Created sequence: lehre.tbl_projektarbeitsbeurteilung_id_seq'; + + // GRANT SELECT, UPDATE ON SEQUENCE lehre.tbl_projektarbeitsbeurteilung_id_seq TO vilesci; + $qry = 'GRANT SELECT, UPDATE ON SEQUENCE lehre.tbl_projektarbeitsbeurteilung_id_seq TO vilesci;'; + if (!$db->db_query($qry)) + echo 'lehre.tbl_projektarbeitsbeurteilung_id_seq '.$db->db_last_error().'
'; + else + echo '
Granted privileges to vilesci on lehre.tbl_projektarbeitsbeurteilung_id_seq'; + + // GRANT SELECT, UPDATE ON SEQUENCE lehre.tbl_projektarbeitsbeurteilung_id_seq TO fhcomplete; + $qry = 'GRANT SELECT, UPDATE ON SEQUENCE lehre.tbl_projektarbeitsbeurteilung_id_seq TO fhcomplete;'; + if (!$db->db_query($qry)) + echo 'lehre.tbl_projektarbeitsbeurteilung_id_seq '.$db->db_last_error().'
'; + else + echo '
Granted privileges to vilesci on lehre.tbl_projektarbeitsbeurteilung_id_seq'; + } +} + +// TABLE lehre.tbl_projektarbeitsbeurteilung +if (!@$db->db_query("SELECT 0 FROM lehre.tbl_projektarbeitsbeurteilung WHERE 0 = 1")) +{ + $qry = ' + CREATE TABLE lehre.tbl_projektarbeitsbeurteilung ( + projektarbeitsbeurteilung_id integer NOT NULL DEFAULT nextval(\'lehre.tbl_projektarbeitsbeurteilung_id_seq\'::regclass), + projektarbeit_id integer NOT NULL, + projektbetreuer_person_id integer NOT NULL, + betreuerart_kurzbz varchar(16) NOT NULL, + bewertung jsonb NOT NULL, + abgeschicktamum timestamp, + abgeschicktvon varchar(32), + insertamum timestamp default now(), + insertvon varchar(32), + updateamum timestamp + ); + + ALTER TABLE lehre.tbl_projektarbeitsbeurteilung ADD CONSTRAINT pk_projektarbeitsbeurteilung PRIMARY KEY (projektarbeitsbeurteilung_id); + ALTER TABLE lehre.tbl_projektarbeitsbeurteilung ADD CONSTRAINT fk_projektarbeitsbeurteilung_projektarbeit_id FOREIGN KEY (projektarbeit_id, projektbetreuer_person_id, betreuerart_kurzbz) REFERENCES lehre.tbl_projektbetreuer (projektarbeit_id, person_id, betreuerart_kurzbz) ON DELETE RESTRICT ON UPDATE CASCADE; + '; + + if (!$db->db_query($qry)) + echo 'lehre.tbl_projektarbeitsbeurteilung ' . $db->db_last_error() . '
'; + else + echo '
Created table lehre.tbl_projektarbeitsbeurteilung'; + + + // GRANT SELECT ON TABLE lehre.tbl_projektarbeitsbeurteilung TO web; + $qry = 'GRANT SELECT ON TABLE lehre.tbl_projektarbeitsbeurteilung TO web;'; + if (!$db->db_query($qry)) + echo 'lehre.tbl_projektarbeitsbeurteilung ' . $db->db_last_error() . '
'; + else + echo '
Granted privileges to web on lehre.tbl_projektarbeitsbeurteilung'; + + // GRANT SELECT, UPDATE, INSERT, DELETE ON TABLE lehre.tbl_projektarbeitsbeurteilung TO vilesci; + $qry = 'GRANT SELECT, UPDATE, INSERT, DELETE ON TABLE lehre.tbl_projektarbeitsbeurteilung TO vilesci;'; + if (!$db->db_query($qry)) + echo 'lehre.tbl_projektarbeitsbeurteilung ' . $db->db_last_error() . '
'; + else + echo '
Granted privileges to vilesci on lehre.tbl_projektarbeitsbeurteilung'; + +// COMMENT ON TABLE lehre.tbl_projektarbeitsbeurteilung + $qry = 'COMMENT ON TABLE lehre.tbl_projektarbeitsbeurteilung IS \'Table to manage project work asessments\';'; + if (!$db->db_query($qry)) + echo 'Adding comment to lehre.tbl_projektarbeitsbeurteilung: ' . $db->db_last_error() . '
'; + else + echo '
Added comment to lehre.tbl_projektarbeitsbeurteilung'; +} + +// Add column zugangstoken to tbl_projektbetreuer +if(!$result = @$db->db_query("SELECT zugangstoken FROM lehre.tbl_projektbetreuer LIMIT 1")) +{ + $qry = "ALTER table lehre.tbl_projektbetreuer ADD COLUMN zugangstoken VARCHAR(32); + COMMENT ON COLUMN lehre.tbl_projektbetreuer.zugangstoken IS 'Zugangstoken zur Projektarbeitsbewertung fuer externe Betreuer';"; + + if(!$db->db_query($qry)) + echo 'lehre.tbl_projektbetreuer: '.$db->db_last_error().'
'; + else + echo '
lehre.tbl_projektbetreuer: Spalte zugangstoken hinzugefuegt'; +} + +// Add column zugangstoken_gueltigbis to tbl_projektbetreuer +if(!$result = @$db->db_query("SELECT zugangstoken_gueltigbis FROM lehre.tbl_projektbetreuer LIMIT 1")) +{ + $qry = "ALTER table lehre.tbl_projektbetreuer ADD COLUMN zugangstoken_gueltigbis date; + COMMENT ON COLUMN lehre.tbl_projektbetreuer.zugangstoken_gueltigbis IS 'Gueligkeitsdatum fuer Zugangstoken zur Projektarbeitsbewertung fuer externe Betreuer';"; + + if(!$db->db_query($qry)) + echo 'lehre.tbl_projektbetreuer: '.$db->db_last_error().'
'; + else + echo '
lehre.tbl_projektbetreuer: Spalte zugangstoken_gueltigbis hinzugefuegt'; +} + // *** Pruefung und hinzufuegen der neuen Attribute und Tabellen echo '

Pruefe Tabellen und Attribute!

'; @@ -4593,7 +4700,8 @@ $tabellen=array( "lehre.tbl_notenschluesselzuordnung" => array("notenschluesselzuordnung_id","notenschluessel_kurzbz","lehrveranstaltung_id","studienplan_id","oe_kurzbz","studiensemester_kurzbz"), "lehre.tbl_note" => array("note","bezeichnung","anmerkung","farbe","positiv","notenwert","aktiv","lehre","offiziell","bezeichnung_mehrsprachig","lkt_ueberschreibbar"), "lehre.tbl_projektarbeit" => array("projektarbeit_id","projekttyp_kurzbz","titel","lehreinheit_id","student_uid","firma_id","note","punkte","beginn","ende","faktor","freigegeben","gesperrtbis","stundensatz","gesamtstunden","themenbereich","anmerkung","updateamum","updatevon","insertamum","insertvon","ext_id","titel_english","seitenanzahl","abgabedatum","kontrollschlagwoerter","schlagwoerter","schlagwoerter_en","abstract", "abstract_en", "sprache","final"), - "lehre.tbl_projektbetreuer" => array("person_id","projektarbeit_id","betreuerart_kurzbz","note","faktor","name","punkte","stunden","stundensatz","updateamum","updatevon","insertamum","insertvon","ext_id","vertrag_id"), + "lehre.tbl_projektarbeitsbeurteilung" => array("projektarbeitsbeurteilung_id","projektarbeit_id","projektbetreuer_person_id","betreuerart_kurzbz","bewertung","abgeschicktamum","abgeschicktvon","insertamum","insertvon","updateamum"), + "lehre.tbl_projektbetreuer" => array("person_id","projektarbeit_id","betreuerart_kurzbz","note","faktor","name","punkte","stunden","stundensatz","updateamum","updatevon","insertamum","insertvon","ext_id","vertrag_id", "zugangstoken", "zugangstoken_gueltigbis"), "lehre.tbl_projekttyp" => array("projekttyp_kurzbz","bezeichnung","aktiv"), "lehre.tbl_pruefung" => array("pruefung_id","lehreinheit_id","student_uid","mitarbeiter_uid","note","pruefungstyp_kurzbz","datum","anmerkung","insertamum","insertvon","updateamum","updatevon","ext_id","pruefungsanmeldung_id","vertrag_id", "punkte"), "lehre.tbl_pruefungstyp" => array("pruefungstyp_kurzbz","beschreibung","abschluss","sort"), From 98deb3d2a0fd9d86fabb5fedaaa5af73ba669c48 Mon Sep 17 00:00:00 2001 From: KarpAlex Date: Thu, 14 Jan 2021 10:32:42 +0100 Subject: [PATCH 011/132] moved creation of tbl_projektarbeitsbeurteilung to FHC_Core_Abschlusspruefungsbeurteilung extension --- system/dbupdate_3.3.php | 83 ----------------------------------------- 1 file changed, 83 deletions(-) diff --git a/system/dbupdate_3.3.php b/system/dbupdate_3.3.php index b08a7581d..3adf241ff 100644 --- a/system/dbupdate_3.3.php +++ b/system/dbupdate_3.3.php @@ -4465,89 +4465,6 @@ if($result = $db->db_query("SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE } } -// SEQUENCE tbl_projektarbeitsbeurteilung_id_se -if ($result = $db->db_query("SELECT 0 FROM pg_class WHERE relname = 'tbl_projektarbeitsbeurteilung_id_seq'")) -{ - if ($db->db_num_rows($result) == 0) - { - $qry = ' - CREATE SEQUENCE lehre.tbl_projektarbeitsbeurteilung_id_seq - START WITH 1 - INCREMENT BY 1 - NO MAXVALUE - NO MINVALUE - CACHE 1; - '; - if(!$db->db_query($qry)) - echo 'lehre.tbl_projektarbeitsbeurteilung_id_seq '.$db->db_last_error().'
'; - else - echo '
Created sequence: lehre.tbl_projektarbeitsbeurteilung_id_seq'; - - // GRANT SELECT, UPDATE ON SEQUENCE lehre.tbl_projektarbeitsbeurteilung_id_seq TO vilesci; - $qry = 'GRANT SELECT, UPDATE ON SEQUENCE lehre.tbl_projektarbeitsbeurteilung_id_seq TO vilesci;'; - if (!$db->db_query($qry)) - echo 'lehre.tbl_projektarbeitsbeurteilung_id_seq '.$db->db_last_error().'
'; - else - echo '
Granted privileges to vilesci on lehre.tbl_projektarbeitsbeurteilung_id_seq'; - - // GRANT SELECT, UPDATE ON SEQUENCE lehre.tbl_projektarbeitsbeurteilung_id_seq TO fhcomplete; - $qry = 'GRANT SELECT, UPDATE ON SEQUENCE lehre.tbl_projektarbeitsbeurteilung_id_seq TO fhcomplete;'; - if (!$db->db_query($qry)) - echo 'lehre.tbl_projektarbeitsbeurteilung_id_seq '.$db->db_last_error().'
'; - else - echo '
Granted privileges to vilesci on lehre.tbl_projektarbeitsbeurteilung_id_seq'; - } -} - -// TABLE lehre.tbl_projektarbeitsbeurteilung -if (!@$db->db_query("SELECT 0 FROM lehre.tbl_projektarbeitsbeurteilung WHERE 0 = 1")) -{ - $qry = ' - CREATE TABLE lehre.tbl_projektarbeitsbeurteilung ( - projektarbeitsbeurteilung_id integer NOT NULL DEFAULT nextval(\'lehre.tbl_projektarbeitsbeurteilung_id_seq\'::regclass), - projektarbeit_id integer NOT NULL, - projektbetreuer_person_id integer NOT NULL, - betreuerart_kurzbz varchar(16) NOT NULL, - bewertung jsonb NOT NULL, - abgeschicktamum timestamp, - abgeschicktvon varchar(32), - insertamum timestamp default now(), - insertvon varchar(32), - updateamum timestamp - ); - - ALTER TABLE lehre.tbl_projektarbeitsbeurteilung ADD CONSTRAINT pk_projektarbeitsbeurteilung PRIMARY KEY (projektarbeitsbeurteilung_id); - ALTER TABLE lehre.tbl_projektarbeitsbeurteilung ADD CONSTRAINT fk_projektarbeitsbeurteilung_projektarbeit_id FOREIGN KEY (projektarbeit_id, projektbetreuer_person_id, betreuerart_kurzbz) REFERENCES lehre.tbl_projektbetreuer (projektarbeit_id, person_id, betreuerart_kurzbz) ON DELETE RESTRICT ON UPDATE CASCADE; - '; - - if (!$db->db_query($qry)) - echo 'lehre.tbl_projektarbeitsbeurteilung ' . $db->db_last_error() . '
'; - else - echo '
Created table lehre.tbl_projektarbeitsbeurteilung'; - - - // GRANT SELECT ON TABLE lehre.tbl_projektarbeitsbeurteilung TO web; - $qry = 'GRANT SELECT ON TABLE lehre.tbl_projektarbeitsbeurteilung TO web;'; - if (!$db->db_query($qry)) - echo 'lehre.tbl_projektarbeitsbeurteilung ' . $db->db_last_error() . '
'; - else - echo '
Granted privileges to web on lehre.tbl_projektarbeitsbeurteilung'; - - // GRANT SELECT, UPDATE, INSERT, DELETE ON TABLE lehre.tbl_projektarbeitsbeurteilung TO vilesci; - $qry = 'GRANT SELECT, UPDATE, INSERT, DELETE ON TABLE lehre.tbl_projektarbeitsbeurteilung TO vilesci;'; - if (!$db->db_query($qry)) - echo 'lehre.tbl_projektarbeitsbeurteilung ' . $db->db_last_error() . '
'; - else - echo '
Granted privileges to vilesci on lehre.tbl_projektarbeitsbeurteilung'; - -// COMMENT ON TABLE lehre.tbl_projektarbeitsbeurteilung - $qry = 'COMMENT ON TABLE lehre.tbl_projektarbeitsbeurteilung IS \'Table to manage project work asessments\';'; - if (!$db->db_query($qry)) - echo 'Adding comment to lehre.tbl_projektarbeitsbeurteilung: ' . $db->db_last_error() . '
'; - else - echo '
Added comment to lehre.tbl_projektarbeitsbeurteilung'; -} - // Add column zugangstoken to tbl_projektbetreuer if(!$result = @$db->db_query("SELECT zugangstoken FROM lehre.tbl_projektbetreuer LIMIT 1")) { From 8441345d7a5e228300d611384bcd7ad574516736 Mon Sep 17 00:00:00 2001 From: OliiverHacker Date: Tue, 19 Jan 2021 13:22:47 +0100 Subject: [PATCH 012/132] add azgrelevant to save method in bisverwendungclass --- include/bisverwendung.class.php | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/include/bisverwendung.class.php b/include/bisverwendung.class.php index 798b2213b..774fe413f 100644 --- a/include/bisverwendung.class.php +++ b/include/bisverwendung.class.php @@ -220,13 +220,21 @@ class bisverwendung extends basis_db { $zeitaufzeichnungspflichtig = 'null'; } + if(is_bool($this->azgrelevant)) + { + $azgrelevant = $this->db_add_param($this->azgrelevant, FHC_BOOLEAN); + } + else + { + $azgrelevant = 'null'; + } if($new) { //Neuen Datensatz anlegen $qry = "BEGIN;INSERT INTO bis.tbl_bisverwendung (ba1code, ba2code, beschausmasscode, verwendung_code, mitarbeiter_uid, hauptberufcode, hauptberuflich, habilitation, beginn, ende, vertragsstunden, - updateamum, updatevon, insertamum, insertvon, dv_art, inkludierte_lehre, zeitaufzeichnungspflichtig) VALUES (". + updateamum, updatevon, insertamum, insertvon, dv_art, inkludierte_lehre, zeitaufzeichnungspflichtig, azgrelevant) VALUES (". $this->db_add_param($this->ba1code, FHC_INTEGER).', '. $this->db_add_param($this->ba2code, FHC_INTEGER).', '. $this->db_add_param($this->beschausmasscode, FHC_INTEGER).', '. @@ -244,7 +252,8 @@ class bisverwendung extends basis_db $this->db_add_param($this->insertvon).', '. $this->db_add_param($this->dv_art).','. $this->db_add_param($this->inkludierte_lehre).','. - $zeitaufzeichnungspflichtig. ');'; + $zeitaufzeichnungspflichtig.','. + $azgrelevant. ');'; } else @@ -268,7 +277,8 @@ class bisverwendung extends basis_db " insertvon=".$this->db_add_param($this->insertvon).",". " dv_art=".$this->db_add_param($this->dv_art).",". " inkludierte_lehre=".$this->db_add_param($this->inkludierte_lehre).",". - " zeitaufzeichnungspflichtig=". $zeitaufzeichnungspflichtig. + " zeitaufzeichnungspflichtig=". $zeitaufzeichnungspflichtig.",". + " azgrelevant =". $azgrelevant. " WHERE bisverwendung_id=".$this->db_add_param($this->bisverwendung_id, FHC_INTEGER); } From 943961127faaa084fc2947f41de8f79fcf6ac9a4 Mon Sep 17 00:00:00 2001 From: OliiverHacker Date: Tue, 19 Jan 2021 16:15:03 +0100 Subject: [PATCH 013/132] implement checkbox --- content/mitarbeiter/mitarbeiterDBDML.php | 8 +++++++- content/mitarbeiter/mitarbeiteroverlay.js.php | 2 ++ .../mitarbeiter/mitarbeiterverwendungdialog.js.php | 14 +++++++++++++- .../mitarbeiterverwendungdialog.xul.php | 4 ++++ 4 files changed, 26 insertions(+), 2 deletions(-) diff --git a/content/mitarbeiter/mitarbeiterDBDML.php b/content/mitarbeiter/mitarbeiterDBDML.php index 6bb1513d0..eb7ba6650 100644 --- a/content/mitarbeiter/mitarbeiterDBDML.php +++ b/content/mitarbeiter/mitarbeiterDBDML.php @@ -174,7 +174,13 @@ if(!$error) elseif($_POST['zeitaufzeichnungspflichtig']=='false') $verwendung->zeitaufzeichnungspflichtig = false; else - $verwendung->zeitaufzeichnungspflichtig = ''; + $verwendung->azgrelevant = ''; + if($_POST['azgrelevant']=='true') + $verwendung->azgrelevant = true; + elseif($_POST['azgrelevant']=='false') + $verwendung->azgrelevant = false; + else + $verwendung->azgrelevant = ''; if($verwendung->save()) { diff --git a/content/mitarbeiter/mitarbeiteroverlay.js.php b/content/mitarbeiter/mitarbeiteroverlay.js.php index d0aa4f40d..adf7bdf90 100644 --- a/content/mitarbeiter/mitarbeiteroverlay.js.php +++ b/content/mitarbeiter/mitarbeiteroverlay.js.php @@ -1210,6 +1210,7 @@ function MitarbeiterVerwendungSpeichern(dialog, bisverwendung_id, mitarbeiter_ui dv_art = dialog.getElementById('mitarbeiter-verwendung-detail-textbox-dv_art').value; inkludierte_lehre = dialog.getElementById('mitarbeiter-verwendung-detail-textbox-inkludierte_lehre').value; zeitaufzeichnungspflichtig = dialog.getElementById('mitarbeiter-verwendung-detail-checkbox-zeitaufzeichnungspflichtig').checked; + azgrelevant = dialog.getElementById('mitarbeiter-verwendung-detail-checkbox-azgrelevant').checked; if(verwendung_code=='1') { @@ -1268,6 +1269,7 @@ function MitarbeiterVerwendungSpeichern(dialog, bisverwendung_id, mitarbeiter_ui req.add('dv_art', dv_art); req.add('inkludierte_lehre', inkludierte_lehre); req.add('zeitaufzeichnungspflichtig', zeitaufzeichnungspflichtig); + req.add('azgrelevant', azgrelevant); var response = req.executePOST(); diff --git a/content/mitarbeiter/mitarbeiterverwendungdialog.js.php b/content/mitarbeiter/mitarbeiterverwendungdialog.js.php index 841f167e9..123f471f8 100644 --- a/content/mitarbeiter/mitarbeiterverwendungdialog.js.php +++ b/content/mitarbeiter/mitarbeiterverwendungdialog.js.php @@ -70,6 +70,7 @@ function MitarbeiterVerwendungInit(mitarbeiter_uid, bisverwendung_id) dv_art = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#dv_art" )); inkludierte_lehre = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#inkludierte_lehre" )); zeitaufzeichnungspflichtig = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#zeitaufzeichnungspflichtig" )); + azgrelevant = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#azgrelevant" )); } else { @@ -112,6 +113,14 @@ function MitarbeiterVerwendungInit(mitarbeiter_uid, bisverwendung_id) { zeitaufzeichnungspflichtig='Nein'; } + if (azgrelevant=='Ja') + { + azgrelevant='Ja'; + } + else + { + azgrelevant='Nein'; + } } document.getElementById('mitarbeiter-verwendung-detail-menulist-beschart1').value=ba1code; @@ -138,7 +147,10 @@ function MitarbeiterVerwendungInit(mitarbeiter_uid, bisverwendung_id) document.getElementById('mitarbeiter-verwendung-detail-checkbox-zeitaufzeichnungspflichtig').checked=true; else document.getElementById('mitarbeiter-verwendung-detail-checkbox-zeitaufzeichnungspflichtig').checked=false; - + if(azgrelevant=='Ja') + document.getElementById('mitarbeiter-verwendung-detail-checkbox-azgrelevant').checked=true; + else + document.getElementById('mitarbeiter-verwendung-detail-checkbox-azgrelevant').checked=false; MitarbeiterVerwendungDetailToggleHauptberuf(); MitarbeiterVerwendungVerwendungChange(); } diff --git a/content/mitarbeiter/mitarbeiterverwendungdialog.xul.php b/content/mitarbeiter/mitarbeiterverwendungdialog.xul.php index bc87a097d..492b2f838 100644 --- a/content/mitarbeiter/mitarbeiterverwendungdialog.xul.php +++ b/content/mitarbeiter/mitarbeiterverwendungdialog.xul.php @@ -167,6 +167,10 @@ echo ' + + From c3f24f30385a87c13417907c8d1cd862297bbc9e Mon Sep 17 00:00:00 2001 From: KarpAlex Date: Thu, 28 Jan 2021 13:03:18 +0100 Subject: [PATCH 014/132] - Projektarbeitsbeurtielung: added app Projektarbeitsbeurteilung and phrases for Projektarbeitsformular --- system/dbupdate_3.3.php | 15 +- system/phrasesupdate.php | 1205 +++++++++++++++++++++++++++++++++++++- 2 files changed, 1218 insertions(+), 2 deletions(-) diff --git a/system/dbupdate_3.3.php b/system/dbupdate_3.3.php index 3adf241ff..59dba9f9d 100644 --- a/system/dbupdate_3.3.php +++ b/system/dbupdate_3.3.php @@ -4489,6 +4489,20 @@ if(!$result = @$db->db_query("SELECT zugangstoken_gueltigbis FROM lehre.tbl_proj echo '
lehre.tbl_projektbetreuer: Spalte zugangstoken_gueltigbis hinzugefuegt'; } +// App 'projektarbeitsbeurteilung' hinzufügen +if($result = $db->db_query("SELECT 1 FROM system.tbl_app WHERE app='projektarbeitsbeurteilung'")) +{ + if($db->db_num_rows($result)==0) + { + $qry = "INSERT INTO system.tbl_app(app) VALUES('projektarbeitsbeurteilung');"; + + if(!$db->db_query($qry)) + echo 'App: '.$db->db_last_error().'
'; + else + echo '
Neue App projektarbeitsbeurteilung in system.tbl_app hinzugefügt'; + } +} + // *** Pruefung und hinzufuegen der neuen Attribute und Tabellen echo '

Pruefe Tabellen und Attribute!

'; @@ -4617,7 +4631,6 @@ $tabellen=array( "lehre.tbl_notenschluesselzuordnung" => array("notenschluesselzuordnung_id","notenschluessel_kurzbz","lehrveranstaltung_id","studienplan_id","oe_kurzbz","studiensemester_kurzbz"), "lehre.tbl_note" => array("note","bezeichnung","anmerkung","farbe","positiv","notenwert","aktiv","lehre","offiziell","bezeichnung_mehrsprachig","lkt_ueberschreibbar"), "lehre.tbl_projektarbeit" => array("projektarbeit_id","projekttyp_kurzbz","titel","lehreinheit_id","student_uid","firma_id","note","punkte","beginn","ende","faktor","freigegeben","gesperrtbis","stundensatz","gesamtstunden","themenbereich","anmerkung","updateamum","updatevon","insertamum","insertvon","ext_id","titel_english","seitenanzahl","abgabedatum","kontrollschlagwoerter","schlagwoerter","schlagwoerter_en","abstract", "abstract_en", "sprache","final"), - "lehre.tbl_projektarbeitsbeurteilung" => array("projektarbeitsbeurteilung_id","projektarbeit_id","projektbetreuer_person_id","betreuerart_kurzbz","bewertung","abgeschicktamum","abgeschicktvon","insertamum","insertvon","updateamum"), "lehre.tbl_projektbetreuer" => array("person_id","projektarbeit_id","betreuerart_kurzbz","note","faktor","name","punkte","stunden","stundensatz","updateamum","updatevon","insertamum","insertvon","ext_id","vertrag_id", "zugangstoken", "zugangstoken_gueltigbis"), "lehre.tbl_projekttyp" => array("projekttyp_kurzbz","bezeichnung","aktiv"), "lehre.tbl_pruefung" => array("pruefung_id","lehreinheit_id","student_uid","mitarbeiter_uid","note","pruefungstyp_kurzbz","datum","anmerkung","insertamum","insertvon","updateamum","updatevon","ext_id","pruefungsanmeldung_id","vertrag_id", "punkte"), diff --git a/system/phrasesupdate.php b/system/phrasesupdate.php index 727a389e4..833ca1c73 100644 --- a/system/phrasesupdate.php +++ b/system/phrasesupdate.php @@ -7988,7 +7988,1210 @@ Any unusual occurrences 'insertvon' => 'system' ) ) - ) + ), + array( + 'app' => 'core', + 'category' => 'global', + 'phrase' => 'und', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'und', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'and', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + + //******************* Projektarbeitsbeurteilung - CORE + array( + 'app' => 'core', + 'category' => 'lehre', + 'phrase' => 'sehrGut', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Sehr Gut', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Excellent', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'core', + 'category' => 'lehre', + 'phrase' => 'gut', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Gut', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Good', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'core', + 'category' => 'lehre', + 'phrase' => 'befriedigend', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Befriedigend', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Satisfactory', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'core', + 'category' => 'lehre', + 'phrase' => 'genuegend', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Genügend', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Sufficient', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'core', + 'category' => 'lehre', + 'phrase' => 'nichtGenuegend', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Nicht genügend', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Insufficient', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'core', + 'category' => 'lehre', + 'phrase' => 'notenschluessel', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Notenschlüssel', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'criteria', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'core', + 'category' => 'ui', + 'phrase' => 'speichernAbsenden', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Speichern und Absenden', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Save and send', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + //******************* Projektarbeitsbeurteilung - specific + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'beurteilung', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Beurteilung', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Assessment', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'erstBegutachter', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Erst-Begutachter*in', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'First Assessor', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'plagiatscheckUnauffaellig', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Der Plagiatscheck ist unauffällig.', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'The plagiarism check reveals nothing of note.', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'kriterien', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Kriterien', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Criteria', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'punkte', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Punkte', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Points', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'thema', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Thema', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Subject', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'themaText', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Das Thema wurde in eine im Rahmen einer Masterarbeit bearbeitbare Form übergeführt (Entwicklung sinnvoller Forschungsfragen bzw. Aufgabenstellungen, etc.).', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'The subject was handled in a suitable manner for a master thesis (well-structured, meaningful research questions or tasks, etc.)', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'loesungsansatz', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Lösungsansatz', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Solution Approach', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'loesungsansatzText', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Der Lösungsansatz ist dem Stand der Technik entsprechend argumentiert und zeigt ein adäquates Problemverständnis.', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'The approach to the solution is argued according to the state of the art and shows an adequate understanding of the problem.', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'methode', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Methode', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Methods', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'methodeText', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Die methodische Vorgangsweise ist in Bezug auf die Ausrichtung der Arbeit (technisch-ingenieurwissenschaftlich, sozial-wirtschaftswissenschaftlich…) angemessen, gut begründet und wird korrekt umgesetzt.', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'The methodological approach is appropriate, well-founded and correctly implemented in relation to the orientation of the work (technical-engineering, socio-economic…).', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'ereignisseDiskussion', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Ergebnisse und Diskussion', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Results & Discussion of the conclusion', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'ereignisseDiskussionText', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Die Frage- bzw. Aufgabenstellungen wurden zielführend beantwortet; die Ergebnisse werden diskutiert.', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'The research questions or the tasks were answered in a manner appropriate with the objectives; the results are discussed.', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'ereignisseDiskussionTextMaster', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Die Forschungsfrage(n) wurde(n) zielführend beantwortet; die Ergebnisse werden kritisch diskutiert und liefern einen Mehrwert für Forschung und/oder Berufspraxis.', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'The research question(s) was (were) answered in a manner appropriate with the objectives; the results are examined critically and provide added value for research and / or professional practice.', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'eigenstaendigkeit', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Eigenständigkeit', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Independence', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'eigenstaendigkeitText', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Die Arbeit wurde in selbständiger Arbeitsweise (z.B. eigenständige Lösung der Fragestellungen und aufgetretener Probleme) verfasst.', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'The thesis was written in an independent way (e.g. independent solutions to the questions and problems that occurred)', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'struktur', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Struktur', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Structure', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'strukturText', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Die Arbeit ist schlüssig aufgebaut und gut strukturiert.', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'The thesis is coherently arranged and well structured.', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'stil', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Stil', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Style', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'stilText', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Der Stil entspricht einer wissenschaftlichen Arbeit. Die Arbeit ist flüssig lesbar und weist eine klare, eindeutige und gendergerechte Sprache auf.', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'The style is suitable for a piece of scientific work. The thesis is easy to read and has a clear, unambiguous and gender-appropriate language.', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'form', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Form', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Form', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'formText', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Die Anforderungen an Gliederung, Verzeichnisse, Textsatz und Grafiken bzw. Tabellen sind nach den geltenden Richtlinien umgesetzt.', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'The requirements for structure, lists, typesetting and graphics or tables are implemented in accordance with the applicable guidelines.', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'literatur', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Literatur', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Sources', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'literaturText', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Die verwendeten Quellen sind passend, aktuell und werden ausreichend variiert.', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'The sources used are appropriate, current and sufficiently varied.', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'zitierregeln', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Zitierregeln', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Citation Rules', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'zitierregelnText', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Die Zitierregeln werden korrekt angewendet und durchgehend umgesetzt.', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'The citation rules are correctly applied and implemented throughout.', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'gesamtpunkte', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Gesamtpunkte', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Total points', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'gutachtenZweitBegutachtung', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Das Gutachten des/der Zweit-BegutachterIn liegt vor und ist in die Beurteilung eingeflossen.', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'The second assessor’s assessment has been submitted and is part of the final grade.', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'bitteBeurteilen', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Bitte beurteilen', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Please assess', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'begruendungText', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Begründung (verpflichtend nur für die Note "Nicht Genügend")', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Reason (only required for the grade "insufficient")', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'unzureichendErfuellt', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'unzureichend erfüllt', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'inadequately met', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'genuegendErfuellt', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'genügend erfüllt', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'adequately met', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'gutErfuellt', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'gut erfüllt', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'well fulfilled', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'sehrGutErfuellt', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'sehr gut erfüllt', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'very well fulfilled', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'notenschluesselHinweis', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Liegt die Punkteanzahl bei den Kriterien "1 - 5" oder "6 - 10" in Summe unter 50%, ist die Masterarbeit insgesamt als negativ zu beurteilen.', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'If, within any of the criteria, the points total is under 50%, the Master’s Thesis is deemed to have failed overall.', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'zweitBegutachter', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Zweit-Begutachter*in', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Second Assessor', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'kurzeSchriftlicheBeurteilung', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Kurze schriftliche Beurteilung', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Short written assessment', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'fragestellungRelevant', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Ist die Fragestellung relevant und aktuell?', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Is the question relevant and topical?', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'inhaltMethode', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Inhalt und Methode', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Content and Methods', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'aufgabenstellungNachvollziehbar', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Ist die Aufgabenstellung nachvollziehbar und gut argumentiert dargestellt?', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Is the task presented comprehensibly and is it well argued?', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'methodischeVorgangsweiseAngemessen', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Ist die methodische Vorgangsweise angemessen und korrekt angewendet?', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Has the methodological approach been applied appropriately and correctly?', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'mehrwertBerufspraxis', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Liefert das Ergebnis einen Mehrwert für die Berufspraxis?', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Does the result provide added value for professional practice?', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'eigenstaendigkeitErgebnis', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Eigenständigkeit beim Erreichen des Ergebnisses', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Independence in achieving the result', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'arbeitEigenstaendigVerfasst', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Ist die Arbeit eigenständig verfasst worden?', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Was the thesis written independently?', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'arbeitGutStrukturiert', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Ist die Arbeit gut strukturiert?', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Is the thesis well structured?', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'gliederungInhaltlichVerstaendlich', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Ist die Gliederung inhaltlich verständlich und in Bezug auf das Thema schlüssig aufgebaut ("roter Faden")?', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 's the structure understandable in terms of content and is it coherent in relation to the topic ("red thread")?', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'nameStudierende', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Name des/der Studierenden', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Name of student', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'beurteiltVon', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Beurteilt von', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Assessed by', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'personenkennzeichen', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Personenkennzeichen', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Student number', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'beurteilungGespeichertGesendet', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Beurteilung gespeichert und gesendet', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Assessment saved and sent', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'beurteilungGespeichert', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Beurteilung gespeichert', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Assessment saved', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'beurteilungFehler', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Fehler beim Speichern der Beurteilung', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Error when saving assessment', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), ); From 1f88bfae4078889beb5881373f61dbde72b99b0f Mon Sep 17 00:00:00 2001 From: KarpAlex Date: Thu, 4 Feb 2021 11:21:40 +0100 Subject: [PATCH 015/132] - Projektbetreuer Model: added getBetreuerByToken method - phrasesupdate: added new Projektarbeitsbeurtielung phrases --- .../education/Projektbetreuer_model.php | 19 ++++ system/phrasesupdate.php | 101 ++++++++++++++++++ 2 files changed, 120 insertions(+) diff --git a/application/models/education/Projektbetreuer_model.php b/application/models/education/Projektbetreuer_model.php index 746e4c052..4da88e344 100644 --- a/application/models/education/Projektbetreuer_model.php +++ b/application/models/education/Projektbetreuer_model.php @@ -41,4 +41,23 @@ class Projektbetreuer_model extends DB_Model return error ('Incorrect parameter type'); } } + + /** + * Get Projektbetreuer data by authentification token + * @param $zugangstoken + * @return object + */ + public function getBetreuerByToken($zugangstoken) + { + $qry = ' + SELECT tbl_projektbetreuer.person_id, tbl_projektbetreuer.projektarbeit_id, student_uid + FROM lehre.tbl_projektbetreuer + JOIN lehre.tbl_projektarbeit USING (projektarbeit_id) + WHERE zugangstoken = ? AND zugangstoken_gueltigbis >= NOW() + ORDER BY tbl_projektbetreuer.insertamum DESC, projektarbeit_id DESC + LIMIT 1 + '; + + return $this->execQuery($qry, array($zugangstoken)); + } } diff --git a/system/phrasesupdate.php b/system/phrasesupdate.php index 833ca1c73..7dff6a675 100644 --- a/system/phrasesupdate.php +++ b/system/phrasesupdate.php @@ -8151,6 +8151,46 @@ Any unusual occurrences ) ) ), + array( + 'app' => 'core', + 'category' => 'ui', + 'phrase' => 'fehlt', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'fehlt', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'missing', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'core', + 'category' => 'ui', + 'phrase' => 'ungueltig', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'ungültig', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'invalid', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), //******************* Projektarbeitsbeurteilung - specific array( 'app' => 'projektarbeitsbeurteilung', @@ -8172,6 +8212,26 @@ Any unusual occurrences ) ) ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'projektarbeitsbeurteilung', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Projektarbeitsbeurteilung', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Projekt Work Assessment', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), array( 'app' => 'projektarbeitsbeurteilung', 'category' => 'projektarbeitsbeurteilung', @@ -9192,6 +9252,47 @@ Any unusual occurrences ) ) ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'ungueltigerToken', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Ungültiger Token', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Invalid Token', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'projektarbeitsbeurteilung', + 'category' => 'projektarbeitsbeurteilung', + 'phrase' => 'zurProjektarbeitsUebersicht', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Zur Projektarbeitsübersicht (CIS login)', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Projekt work overview (CIS login)', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + ); From fd79551f0081c669d05b080434ccb094d4c96d02 Mon Sep 17 00:00:00 2001 From: KarpAlex Date: Thu, 4 Feb 2021 20:37:05 +0100 Subject: [PATCH 016/132] - Pruefungsprotokoll bugfix: replaced bitwise and with logical and --- application/controllers/lehre/Pruefungsprotokoll.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/application/controllers/lehre/Pruefungsprotokoll.php b/application/controllers/lehre/Pruefungsprotokoll.php index 467a7dc71..21f50acca 100644 --- a/application/controllers/lehre/Pruefungsprotokoll.php +++ b/application/controllers/lehre/Pruefungsprotokoll.php @@ -220,7 +220,7 @@ class Pruefungsprotokoll extends Auth_Controller $nullfields = array('uhrzeit', 'endezeit', 'abschlussbeurteilung_kurzbz', 'protokoll'); foreach ($data as $idx => $item) { - if (in_array($idx, $nullfields) & $item === '') + if (in_array($idx, $nullfields) && $item === '') $data[$idx] = null; } From d84da96669cf4da3324eed26b4dfd0c488ce14d2 Mon Sep 17 00:00:00 2001 From: OliiverHacker Date: Mon, 8 Feb 2021 09:57:08 +0100 Subject: [PATCH 017/132] display Feiertage and Wochenenden --- cis/private/profile/urlaubstool.php | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/cis/private/profile/urlaubstool.php b/cis/private/profile/urlaubstool.php index 11620a99a..141f9be9e 100644 --- a/cis/private/profile/urlaubstool.php +++ b/cis/private/profile/urlaubstool.php @@ -464,7 +464,6 @@ if ((isset($wmonat) || isset($wmonat))&&(isset($wjahr) || isset($wjahr))) { if($hgfarbe[$i]!='#FFFC7F' && $hgfarbe[$i]!='#bbb' && $hgfarbe[$i]!='#CDDDEE') { - $hgfarbe[$i]='#E9ECEE'; $datensatz[$i]=0; $freigabevon[$i]=$row->freigabevon; @@ -761,11 +760,25 @@ for ($i=0;$i<6;$i++) echo "\n"; if(strlen(stristr($tage[$j+7*$i],"."))>0) { - echo ''; + if($j%6==0 || $j==7) + { + echo ''; + } + else + { + echo ''; + } } else { - echo ''; + if($j%6==0 || $j==7) + { + echo ''; + } + else + { + echo ''; + } } if($tage[$j+7*$i]!='') { @@ -781,11 +794,11 @@ for ($i=0;$i<6;$i++) echo ''.$tage[$j+7*$i].'
'; if(strlen(stristr($tage[$j+7*$i],"."))>0) { - echo ''; + echo ''; } else { - echo ''; + echo ''; } } else From 544def7f5a9b2c8ec242ec6dce3661abe36c1776 Mon Sep 17 00:00:00 2001 From: KarpAlex Date: Tue, 9 Feb 2021 04:41:14 +0100 Subject: [PATCH 018/132] - Organisationseinheit Dropdown in zeitaufzeichnung is limited by funktionen, only dizipl. Zuordnung, standardkostenstelle Zuordnung and funktionale Zuordnungen are shown --- cis/private/tools/zeitaufzeichnung.php | 2 +- include/organisationseinheit.class.php | 72 ++++++++++++++++---------- 2 files changed, 45 insertions(+), 29 deletions(-) diff --git a/cis/private/tools/zeitaufzeichnung.php b/cis/private/tools/zeitaufzeichnung.php index 71fdda2bb..8c348a848 100644 --- a/cis/private/tools/zeitaufzeichnung.php +++ b/cis/private/tools/zeitaufzeichnung.php @@ -1145,7 +1145,7 @@ if($projekt->getProjekteMitarbeiter($user, true)) echo ''.$p->t("zeitaufzeichnung/organisationseinheiten").' - "; + $htmlstr .= ""; - if(!is_null($row->babgeschickt)) - { - $path = "../pdfExport.php?xml=projektarbeitsbeurteilung.xml.php&xsl=Projektbeurteilung&betreuerart_kurzbz=" . $row->betreuerart_kurzbz . "&projektarbeit_id=" . $row->projektarbeit_id . "&person_id=" . $row->betreuer_person_id; - $htmlstr .= ""; - } + if (!is_null($row->babgeschickt)) + $htmlstr .= "".$p->t('abgabetool/projektbeurteilungErstDownload').""; + + if (!is_null($row->babgeschickt) && !is_null($row->zweitbetreuer_abgeschickt)) + $htmlstr .= "/"; if (!is_null($row->zweitbetreuer_abgeschickt)) - { - $path = "../pdfExport.php?xml=projektarbeitsbeurteilung.xml.php&xsl=Projektbeurteilung&betreuerart_kurzbz=" . $row->zweitbetreuer_betreuerart_kurzbz . "&projektarbeit_id=" . $row->projektarbeit_id . "&person_id=" . $row->zweitbetreuer_person_id; - $htmlstr .= ""; - } - $htmlstr .= ""; + $htmlstr .= "".$p->t('abgabetool/projektbeurteilungZweitDownload').""; + + $htmlstr .= ""; } else { $htmlstr .= ""; From f681827e5dd6a8937cf5796d714b5ab634d11c8e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Tue, 6 Apr 2021 16:56:19 +0200 Subject: [PATCH 059/132] Personalmeldung Formatierung von Dezimalwerten korrigiert --- vilesci/bis/personalmeldung.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/vilesci/bis/personalmeldung.php b/vilesci/bis/personalmeldung.php index d237ab5ff..1591b6464 100644 --- a/vilesci/bis/personalmeldung.php +++ b/vilesci/bis/personalmeldung.php @@ -964,8 +964,8 @@ function _generateXML($person_arr) $xml .= 'verwendung_code. ']]>'; $xml .= 'ba1code. ']]>'; $xml .= 'ba2code. ']]>'; - $xml .= 'vzae. ']]>'; - $xml .= 'jvzae. ']]>'; + $xml .= 'vzae,2,'.',''). ']]>'; + $xml .= 'jvzae,2,'.',''). ']]>'; $xml .= ''; } From 96ba02bd6923d6fa6b9cab559c26dbb588e97302 Mon Sep 17 00:00:00 2001 From: manu Date: Wed, 7 Apr 2021 09:55:55 +0200 Subject: [PATCH 060/132] =?UTF-8?q?bst=5Fzeit=20ins=20Downloaddokumentenar?= =?UTF-8?q?ray=20=C3=BCbernommen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cms/dms.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/cms/dms.php b/cms/dms.php index 7e587b6ec..a9f9060ca 100644 --- a/cms/dms.php +++ b/cms/dms.php @@ -79,12 +79,13 @@ if($doc->isLocked($id)) $dokumente_arr[] .= $row->dokument_kurzbz; // An der FHTW wird das vorläufige ZGV Dokument verlangt und kann somit auch heruntergeladen werden - // Auch der Inivtation Letter kann von BewerberInnen heruntergeladen werden + // Auch der Invitation Letter und die Zeitbestätigung können von BewerberInnen heruntergeladen werden if (CAMPUS_NAME == 'FH Technikum Wien') { $dokumente_arr[] .= 'ZgvBaPre'; $dokumente_arr[] .= 'ZgvMaPre'; $dokumente_arr[] .= 'InvitLet'; + $dokumente_arr[] .= 'bst_zeit'; } if ($person_id!=$akte_person || !in_array($akte_dokument_kurzbz, $dokumente_arr)) die('Sie haben keinen Zugriff auf dieses Dokument'); From c2f74b1bba2728927deafac8b747c7a60f89847c Mon Sep 17 00:00:00 2001 From: KarpAlex Date: Wed, 7 Apr 2021 18:00:10 +0200 Subject: [PATCH 061/132] - mail to Zweitbegutachter after student upload is only sent when it is the endupload - removed comments --- cis/private/lehre/abgabe_student_details.php | 107 +++++++------------ 1 file changed, 38 insertions(+), 69 deletions(-) diff --git a/cis/private/lehre/abgabe_student_details.php b/cis/private/lehre/abgabe_student_details.php index 0caa1c6d6..6e8433bb2 100644 --- a/cis/private/lehre/abgabe_student_details.php +++ b/cis/private/lehre/abgabe_student_details.php @@ -426,27 +426,7 @@ if($command=="update" && $error!=true) { $row_std=$db->db_fetch_object($result_std); -/* $mail_anrede = "Sehr geehrte".($row_betr->anrede=="Herr"?"r":"")." ".$row_betr->anrede." ".$row_betr->first."!\n\n"; - $mail_abgabetext = ($row_std->anrede)." ".trim($row_std->titelpre." ".$row_std->vorname." ".$row_std->nachname." ".$row_std->titelpost)." hat eine Abgabe vorgenommen.\n\n"; - $mail_zurbeurteilung = "Zur Beurteilung der Arbeit:\n"; - $mail_baselink = APP_ROOT."index.ci.php/extensions/FHC-Core-Projektarbeitsbeurteilung/Projektarbeitsbeurteilung"; - $mail_fulllink = "$mail_baselink?projektarbeit_id=".$projektarbeit_id."&uid=".$user."\n\n"; - $mail_abschluss = "--------------------------------------------------------------------------\n"; - $mail_abschluss .= "Dies ist ein vom Bachelor-/Masterarbeitsabgabesystem generiertes Info-Mail\nCis->Mein CIS->Projektarbeiten->Bachelor- und Masterarbeitsabgabe\n"; - $mail_abschluss .= "--------------------------------------------------------------------------"; - - $mailtext_erstbetr = $mail_anrede.$mail_abgabetext.$mail_zurbeurteilung.$mail_fulllink.$mail_abschluss; - - // send Mail to 1. Begutachter - $mail = new mail($row_betr->mitarbeiter_uid."@".DOMAIN, "no-reply@".DOMAIN, "Bachelor-/Masterarbeitsbetreuung", - $mailtext_erstbetr); - $mail->setReplyTo($user."@".DOMAIN); - if(!$mail->send()) - { - echo "".$p->t('abgabetool/fehlerMailBegutachter')."
 "; - }*/ - - // 1. Begutachter ohne Token + // 1. Begutachter mail ohne Token $mail_baselink = APP_ROOT."index.ci.php/extensions/FHC-Core-Projektarbeitsbeurteilung/Projektarbeitsbeurteilung"; $mail_fulllink = "$mail_baselink?projektarbeit_id=".$projektarbeit_id."&uid=".$row_std->uid; $maildata = array(); @@ -473,61 +453,50 @@ if($command=="update" && $error!=true) echo "".$p->t('abgabetool/fehlerMailBegutachter')."
 "; } - // 2. Begutachter mit Token wenn extern - $projektbetreuer = new projektbetreuer(); - $zweitbetr = $projektbetreuer->getZweitbegutachterWithToken($bid, $projektarbeit_id, $row_std->uid); - - if ($zweitbetr) + // 2. Begutachter mail, wenn Endabgabe, mit Token wenn extern + if ($paabgabetyp_kurzbz == 'end') { - $tokenGenRes = $projektbetreuer->generateZweitbegutachterToken($zweitbetr->person_id, $projektarbeit_id); - - if (!$tokenGenRes) - echo "" . $p->t('abgabetool/fehlerMailZweitBegutachter') . "
 "; - + $projektbetreuer = new projektbetreuer(); $zweitbetr = $projektbetreuer->getZweitbegutachterWithToken($bid, $projektarbeit_id, $row_std->uid); - if (!$zweitbetr) - echo "".$p->t('abgabetool/fehlerMailZweitBegutachter')."
 "; - - $intern = isset($zweitbetr->uid); - - /*$mail_link = $intern ? $mail_fulllink : $mail_baselink."\n\n"; - $mail_anrede = "Sehr geehrte".($zweitbetr->anrede=="Herr"?"r":"")." ".$zweitbetr->anrede." ".$zweitbetr->first."!\n\n"; - $mail_token = isset($zweitbetr->zugangstoken) && !$intern ? "Zugangstoken: ".$zweitbetr->zugangstoken."\n\n" : ""; - - $mailtext_zweitbetr = $mail_anrede.$mail_abgabetext.$mail_zurbeurteilung.$mail_link.$mail_token.$mail_abschluss; - - $mail = new mail($zweitbetrmail, "no-reply@".DOMAIN, "Masterarbeitsbetreuung", - $mailtext_zweitbetr); - $mail->setReplyTo($user."@".DOMAIN); - if(!$mail->send()) + if ($zweitbetr) { - echo "".$p->t('abgabetool/fehlerMailBegutachter')."
 "; - }*/ + $tokenGenRes = $projektbetreuer->generateZweitbegutachterToken($zweitbetr->person_id, $projektarbeit_id); - $zweitbetmaildata = array(); - $zweitbetmaildata['geehrt'] = "geehrte".($zweitbetr->anrede=="Herr"?"r":""); - $zweitbetmaildata['anrede'] = $zweitbetr->anrede; - $zweitbetmaildata['betreuer_voller_name'] = $zweitbetr->voller_name; - $zweitbetmaildata['student_anrede'] = $maildata['student_anrede']; - $zweitbetmaildata['student_voller_name'] = $maildata['student_voller_name']; - $zweitbetmaildata['parbeituebersichtlink'] = $intern ? $maildata['parbeituebersichtlink'] : ""; - $zweitbetmaildata['bewertunglink'] = $mail_link = $intern ? $mail_fulllink : $mail_baselink; - $zweitbetmaildata['token'] = isset($zweitbetr->zugangstoken) && !$intern ? "

Zugangstoken: ".$zweitbetr->zugangstoken."

" : ""; + if (!$tokenGenRes) + echo "" . $p->t('abgabetool/fehlerMailZweitBegutachter') . "
 "; - $mailres = sendSanchoMail( - 'ParbeitsbeurteilungEndupload', - $zweitbetmaildata, - $zweitbetr->email, - "Masterarbeitsbetreuung", - 'sancho_header_min_bw.jpg', - 'sancho_footer_min_bw.jpg', - $user."@".DOMAIN - ); + $zweitbetr = $projektbetreuer->getZweitbegutachterWithToken($bid, $projektarbeit_id, $row_std->uid); - if(!$mailres) - { - echo "".$p->t('abgabetool/fehlerMailZweitBegutachter')."
 "; + if (!$zweitbetr) + echo "" . $p->t('abgabetool/fehlerMailZweitBegutachter') . "
 "; + + $intern = isset($zweitbetr->uid); + + $zweitbetmaildata = array(); + $zweitbetmaildata['geehrt'] = "geehrte" . ($zweitbetr->anrede == "Herr" ? "r" : ""); + $zweitbetmaildata['anrede'] = $zweitbetr->anrede; + $zweitbetmaildata['betreuer_voller_name'] = $zweitbetr->voller_name; + $zweitbetmaildata['student_anrede'] = $maildata['student_anrede']; + $zweitbetmaildata['student_voller_name'] = $maildata['student_voller_name']; + $zweitbetmaildata['parbeituebersichtlink'] = $intern ? $maildata['parbeituebersichtlink'] : ""; + $zweitbetmaildata['bewertunglink'] = $mail_link = $intern ? $mail_fulllink : $mail_baselink; + $zweitbetmaildata['token'] = isset($zweitbetr->zugangstoken) && !$intern ? "

Zugangstoken: " . $zweitbetr->zugangstoken . "

" : ""; + + $mailres = sendSanchoMail( + 'ParbeitsbeurteilungEndupload', + $zweitbetmaildata, + $zweitbetr->email, + "Masterarbeitsbetreuung", + 'sancho_header_min_bw.jpg', + 'sancho_footer_min_bw.jpg', + $user . "@" . DOMAIN + ); + + if (!$mailres) + { + echo "" . $p->t('abgabetool/fehlerMailZweitBegutachter') . "
 "; + } } } } From 88dbd77a959a5492461ad4423f51bfd47700d140 Mon Sep 17 00:00:00 2001 From: ma0048 Date: Thu, 8 Apr 2021 09:43:36 +0200 Subject: [PATCH 062/132] bug gefixed, akzeptieren von mehreren sonstigen dokumenten nun ohne fehlermeldung moeglich --- content/student/studentDBDML.php | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/content/student/studentDBDML.php b/content/student/studentDBDML.php index a80ea171a..becb31e88 100644 --- a/content/student/studentDBDML.php +++ b/content/student/studentDBDML.php @@ -2296,8 +2296,12 @@ if(!$error) { $dokumente = explode(';',$_POST['dokumente']); $errormsg = ''; + $sonst = 0; foreach ($dokumente as $dokument_kurzbz) { + if ($dokument_kurzbz === 'Sonst' && $sonst !== 0) + continue; + if($dokument_kurzbz!='') { $dok = new dokument(); @@ -2308,6 +2312,8 @@ if(!$error) $dok->insertamum = date('Y-m-d H:i:s'); $dok->insertvon = $user; $dok->new = true; + if ($dokument_kurzbz === 'Sonst') + $sonst++; if(!$dok->save()) { @@ -2501,8 +2507,13 @@ if(!$error) { $dokumente = explode(';',$_POST['dokumente']); $errormsg = ''; + $sonst = 0; + foreach ($dokumente as $dokument_kurzbz) { + if ($dokument_kurzbz === 'Sonst' && $sonst !== 0) + continue; + if($dokument_kurzbz!='') { $dok = new dokument(); @@ -2514,6 +2525,11 @@ if(!$error) { $errormsg .= "Fehler bei $dokument_kurzbz: $dok->errormsg\n"; } + else + { + if ($dokument_kurzbz === 'Sonst') + $sonst++; + } } else { From 07f483f3bfd3fcfe55286566dcad9fcac1f859e9 Mon Sep 17 00:00:00 2001 From: manu Date: Thu, 8 Apr 2021 19:13:19 +0200 Subject: [PATCH 063/132] =?UTF-8?q?Erg=C3=A4nzung=20tablesorter?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cis/private/tools/projektabgabe.php | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/cis/private/tools/projektabgabe.php b/cis/private/tools/projektabgabe.php index 586380bd6..7f440a34e 100644 --- a/cis/private/tools/projektabgabe.php +++ b/cis/private/tools/projektabgabe.php @@ -35,6 +35,9 @@ require_once('../../../include/datum.class.php'); require_once('../../../include/mail.class.php'); require_once('../../../include/phrasen.class.php'); +include('../../../include/meta/jquery.php'); +include('../../../include/meta/jquery-tablesorter.php'); + $sprache = getSprache(); $p = new phrasen($sprache); @@ -91,20 +94,18 @@ if($aktion!='zip') - - - - - - - + + + + From b29621354f191ea748912328fb8b8d156f8fa382 Mon Sep 17 00:00:00 2001 From: KarpAlex Date: Sat, 10 Apr 2021 03:55:05 +0200 Subject: [PATCH 064/132] - abgabetool: added zweitbetreuer mailto Link incl. icons - Bewertunglink is not sent in Parbeit Enduploadmail if older Semester - phrasesupdate Projektarbeitsbeurteilung: added female form --- cis/private/lehre/abgabe_lektor_details.php | 21 ++++++++++++++--- cis/private/lehre/abgabe_student_details.php | 24 ++++++++++++++++---- locale/de-AT/abgabetool.php | 3 ++- locale/en-US/abgabetool.php | 3 ++- locale/it-IT/abgabetool.php | 3 ++- system/phrasesupdate.php | 4 ++-- 6 files changed, 46 insertions(+), 12 deletions(-) diff --git a/cis/private/lehre/abgabe_lektor_details.php b/cis/private/lehre/abgabe_lektor_details.php index 84ac87445..06d29fd88 100644 --- a/cis/private/lehre/abgabe_lektor_details.php +++ b/cis/private/lehre/abgabe_lektor_details.php @@ -130,6 +130,10 @@ $qry_sem="SELECT 1 LIMIT 1"; $result_sem=$db->db_query($qry_sem); $num_rows_sem = $db->db_num_rows($result_sem); +if($num_rows_sem < 0) +{ + echo "Fehler bei Ermittlung der Aktualität der Projektarbeit
 "; +} // Zweitbegutachter holen if($betreuerart=="Erstbegutachter") @@ -203,12 +207,18 @@ echo ' cursor: pointer; outline: inherit; } - #tokenmailimg { + #zweitbetrmailicon { top: 4px; height: 18px; width: 18px; position: relative; } + #tokenmailicon { + top: 2px; + height: 15px; + width: 15px; + position: relative; + } @@ -493,10 +503,13 @@ if (isset($zweitbegutachter) && $zweitbegutachter) // wenn es Zweitbegutachter g $htmlstr .= ""; $htmlstr .= ""; $htmlstr .= ""; + $htmlstr .= " email) . "' alt='" . $p->t('abgabetool/zweitbetreuerMailSenden', $zweitbegutachter->email) . "'/>\n"; $htmlstr .= " \n"; + " . $p->t(\n"; $htmlstr .= ""; } + $htmlstr .= "\n"; $htmlstr .= "\n"; $htmlstr .= "\n"; @@ -703,6 +716,8 @@ function sendZweitbegutachterMail($zweitbegutachter, $erstbegutachter_person_id, $intern = isset($zweitbetr->uid); $mail_baselink = APP_ROOT."index.ci.php/extensions/FHC-Core-Projektarbeitsbeurteilung/Projektarbeitsbeurteilung"; $mail_fulllink = "$mail_baselink?projektarbeit_id=".$zweitbegutachter->projektarbeit_id."&uid=".$student->uid; + $mail_link = $intern ? $mail_fulllink : $mail_baselink; + $maildata = array(); $maildata['geehrt'] = "geehrte".($zweitbegutachter->anrede=="Herr"?"r":""); $maildata['anrede'] = $zweitbegutachter->anrede; @@ -710,7 +725,7 @@ function sendZweitbegutachterMail($zweitbegutachter, $erstbegutachter_person_id, $maildata['student_anrede'] = $student->anrede; $maildata['student_voller_name'] = trim($student->titelpre." ".$student->vorname." ".$student->nachname." ".$student->titelpost); $maildata['parbeituebersichtlink'] = $intern ? "

Zur Projektarbeitsübersicht

" : ""; - $maildata['bewertunglink'] = $mail_link = $intern ? $mail_fulllink : $mail_baselink; + $maildata['bewertunglink'] = "

Zur Beurteilung der Arbeit

"; $maildata['token'] = isset($zweitbetr->zugangstoken) && !$intern ? "

Zugangstoken: ".$zweitbetr->zugangstoken."

" : ""; return sendSanchoMail( diff --git a/cis/private/lehre/abgabe_student_details.php b/cis/private/lehre/abgabe_student_details.php index 6e8433bb2..293da2fa0 100644 --- a/cis/private/lehre/abgabe_student_details.php +++ b/cis/private/lehre/abgabe_student_details.php @@ -326,7 +326,6 @@ if($command=="update" && $error!=true) { if($row_zd=@$db->db_fetch_object($result_zd)) { - $htmlstr = "
".$p->t('abgabetool/betreuer').": ".$db->convert_html_chars($betreuer)."
".$p->t('abgabetool/titel').": ".$db->convert_html_chars($titel)."

\n"; $htmlstr .= "\n"; $htmlstr .= "\n"; @@ -424,6 +423,22 @@ if($command=="update" && $error!=true) } else { + // paarbeit sollte nur ab SS2021 online bewertet werden + $qry_sem="SELECT 1 + FROM lehre.tbl_projektarbeit + JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) + JOIN public.tbl_studiensemester USING(studiensemester_kurzbz) + WHERE projektarbeit_id=".$db->db_add_param($projektarbeit_id, FHC_INTEGER)." + AND tbl_studiensemester.start::date >= (SELECT start FROM public.tbl_studiensemester WHERE studiensemester_kurzbz = 'SS2021')::date + LIMIT 1"; + + $result_sem=$db->db_query($qry_sem); + $num_rows_sem = $db->db_num_rows($result_sem); + if($num_rows_sem < 0) + { + echo "Fehler bei Ermittlung der Aktualität der Projektarbeit
 "; + } + $row_std=$db->db_fetch_object($result_std); // 1. Begutachter mail ohne Token @@ -436,7 +451,7 @@ if($command=="update" && $error!=true) $maildata['student_anrede'] = $row_std->anrede; $maildata['student_voller_name'] = trim($row_std->titelpre." ".$row_std->vorname." ".$row_std->nachname." ".$row_std->titelpost); $maildata['parbeituebersichtlink'] = "

Zur Projektarbeitsübersicht

"; - $maildata['bewertunglink'] = $mail_fulllink; + $maildata['bewertunglink'] = $num_rows_sem >= 1 ? "

Zur Beurteilung der Arbeit

" : ""; $maildata['token'] = ""; $mailres = sendSanchoMail( @@ -472,6 +487,7 @@ if($command=="update" && $error!=true) echo "" . $p->t('abgabetool/fehlerMailZweitBegutachter') . "
 "; $intern = isset($zweitbetr->uid); + $mail_link = $intern ? $mail_fulllink : $mail_baselink; $zweitbetmaildata = array(); $zweitbetmaildata['geehrt'] = "geehrte" . ($zweitbetr->anrede == "Herr" ? "r" : ""); @@ -480,8 +496,8 @@ if($command=="update" && $error!=true) $zweitbetmaildata['student_anrede'] = $maildata['student_anrede']; $zweitbetmaildata['student_voller_name'] = $maildata['student_voller_name']; $zweitbetmaildata['parbeituebersichtlink'] = $intern ? $maildata['parbeituebersichtlink'] : ""; - $zweitbetmaildata['bewertunglink'] = $mail_link = $intern ? $mail_fulllink : $mail_baselink; - $zweitbetmaildata['token'] = isset($zweitbetr->zugangstoken) && !$intern ? "

Zugangstoken: " . $zweitbetr->zugangstoken . "

" : ""; + $zweitbetmaildata['bewertunglink'] = $num_rows_sem >= 1 ? "

Zur Beurteilung der Arbeit

" : ""; + $zweitbetmaildata['token'] = $num_rows_sem >= 1 && isset($zweitbetr->zugangstoken) && !$intern ? "

Zugangstoken: " . $zweitbetr->zugangstoken . "

" : ""; $mailres = sendSanchoMail( 'ParbeitsbeurteilungEndupload', diff --git a/locale/de-AT/abgabetool.php b/locale/de-AT/abgabetool.php index a130ddcbc..c3257edbe 100644 --- a/locale/de-AT/abgabetool.php +++ b/locale/de-AT/abgabetool.php @@ -81,8 +81,9 @@ $this->phrasen['abgabetool/gelesenUndAkzeptiert']='Gelesen und akzeptiert'; $this->phrasen['abgabetool/erklaerungNichtAkzeptiert']='Erklärung nicht akzeptiert'; $this->phrasen['abgabetool/downloadProjektarbeit']='Dokument herunterladen'; $this->phrasen['abgabetool/zweitBegutachter']='ZweitbegutachterIn'; -$this->phrasen['abgabetool/zweitbetreuerTokenMailSenden']='Zugangstoken an ZweitbegutachterIn senden'; +$this->phrasen['abgabetool/zweitbetreuerTokenMailSenden']='Zugangstoken an ZweitbegutachterIn noch einmal senden'; $this->phrasen['abgabetool/zweitbegutachterMailGesendet']='Mail an ZweitbegutachterIn (%s) gesendet'; +$this->phrasen['abgabetool/zweitbetreuerMailSenden']='Mail an ZweitbegutachterIn (%s) senden'; $this->phrasen['abgabetool/zweitBegutachterEmailFehlt']='keine Zustellmail für Zweitbegutachter vorhanden!'; $this->phrasen['abgabetool/projektbeurteilungDownload']='Projektbeurteilung herunterladen'; $this->phrasen['abgabetool/projektbeurteilungErstDownload']='Erst-/Begutachter'; diff --git a/locale/en-US/abgabetool.php b/locale/en-US/abgabetool.php index a04477aee..59b10ed4b 100644 --- a/locale/en-US/abgabetool.php +++ b/locale/en-US/abgabetool.php @@ -81,7 +81,8 @@ $this->phrasen['abgabetool/gelesenUndAkzeptiert']='Read and accepted'; $this->phrasen['abgabetool/erklaerungNichtAkzeptiert']='Declaration not accepted'; $this->phrasen['abgabetool/downloadProjektarbeit']='Download File'; $this->phrasen['abgabetool/zweitBegutachter']='Second assessor'; -$this->phrasen['abgabetool/zweitbetreuerTokenMailSenden']='Send access token to second assessor'; +$this->phrasen['abgabetool/zweitbetreuerTokenMailSenden']='Resend access token to second assessor'; +$this->phrasen['abgabetool/zweitbetreuerMailSenden']='Send mail to second assessor (%s)'; $this->phrasen['abgabetool/zweitbegutachterMailGesendet']='Mail sent to second assessor (%s)'; $this->phrasen['abgabetool/zweitBegutachterEmailFehlt']='Second assessor has no delivery mail adress!'; $this->phrasen['abgabetool/projektbeurteilungDownload']='Thesis-Assessment download'; diff --git a/locale/it-IT/abgabetool.php b/locale/it-IT/abgabetool.php index 66c5058ff..f5afd8da5 100644 --- a/locale/it-IT/abgabetool.php +++ b/locale/it-IT/abgabetool.php @@ -71,7 +71,8 @@ $this->phrasen['abgabetool/upload']='Upload'; $this->phrasen['abgabetool/variablerAbgabetermin']='scadenza consegna variabile'; $this->phrasen['abgabetool/zweitbetreuerBei']='secondo relatore presso'; $this->phrasen['abgabetool/zweitBegutachter']='Second assessor'; -$this->phrasen['abgabetool/zweitbetreuerTokenMailSenden']='Send access token to second assessor'; +$this->phrasen['abgabetool/zweitbetreuerTokenMailSenden']='Resend access token to second assessor'; +$this->phrasen['abgabetool/zweitbetreuerMailSenden']='Send mail to second assessor (%s)'; $this->phrasen['abgabetool/zweitbegutachterMailGesendet']='Mail sent to second assessor (%s)'; $this->phrasen['abgabetool/zweitBegutachterEmailFehlt']='Second assessor has no delivery mail adress!'; ?> diff --git a/system/phrasesupdate.php b/system/phrasesupdate.php index b0c8b1e3d..b49aa6044 100644 --- a/system/phrasesupdate.php +++ b/system/phrasesupdate.php @@ -9400,7 +9400,7 @@ Any unusual occurrences 'phrases' => array( array( 'sprache' => 'German', - 'text' => 'Zur Bewertung des Zweitbegutachters', + 'text' => 'Zur Bewertung des/der Zweitbegutachters*in', 'description' => '', 'insertvon' => 'system' ), @@ -9420,7 +9420,7 @@ Any unusual occurrences 'phrases' => array( array( 'sprache' => 'German', - 'text' => 'Die Beurteilung des Zweitbegutachters liegt noch nicht vor.', + 'text' => 'Die Beurteilung des/der Zweitbegutachters*in liegt noch nicht vor.', 'description' => '', 'insertvon' => 'system' ), From 1f02506eaf9c1c1091998f8e5bfcb8fc408d42cd Mon Sep 17 00:00:00 2001 From: KarpAlex Date: Sat, 10 Apr 2021 04:09:29 +0200 Subject: [PATCH 065/132] =?UTF-8?q?added=20phrase=20for=20Parbeitaktualit?= =?UTF-8?q?=C3=A4t=20error?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cis/private/lehre/abgabe_lektor_details.php | 2 +- cis/private/lehre/abgabe_student_details.php | 2 +- locale/de-AT/abgabetool.php | 1 + locale/en-US/abgabetool.php | 1 + locale/it-IT/abgabetool.php | 1 + 5 files changed, 5 insertions(+), 2 deletions(-) diff --git a/cis/private/lehre/abgabe_lektor_details.php b/cis/private/lehre/abgabe_lektor_details.php index 06d29fd88..6b6b5633b 100644 --- a/cis/private/lehre/abgabe_lektor_details.php +++ b/cis/private/lehre/abgabe_lektor_details.php @@ -132,7 +132,7 @@ $result_sem=$db->db_query($qry_sem); $num_rows_sem = $db->db_num_rows($result_sem); if($num_rows_sem < 0) { - echo "Fehler bei Ermittlung der Aktualität der Projektarbeit
 "; + echo "".$p->t('abgabetool/fehlerAktualitaetProjektarbeit')."
 "; } // Zweitbegutachter holen diff --git a/cis/private/lehre/abgabe_student_details.php b/cis/private/lehre/abgabe_student_details.php index 293da2fa0..a30250435 100644 --- a/cis/private/lehre/abgabe_student_details.php +++ b/cis/private/lehre/abgabe_student_details.php @@ -436,7 +436,7 @@ if($command=="update" && $error!=true) $num_rows_sem = $db->db_num_rows($result_sem); if($num_rows_sem < 0) { - echo "Fehler bei Ermittlung der Aktualität der Projektarbeit
 "; + echo "".$p->t('abgabetool/fehlerAktualitaetProjektarbeit')."
 "; } $row_std=$db->db_fetch_object($result_std); diff --git a/locale/de-AT/abgabetool.php b/locale/de-AT/abgabetool.php index c3257edbe..7943868ad 100644 --- a/locale/de-AT/abgabetool.php +++ b/locale/de-AT/abgabetool.php @@ -65,6 +65,7 @@ $this->phrasen['abgabetool/dateneingabeUnvollstaendig']='Die Dateneingabe ist un $this->phrasen['abgabetool/fehlerMailBegutachter']='Fehler beim Versenden des Mails an den Erstbegutachter!'; $this->phrasen['abgabetool/fehlerMailZweitBegutachter']='Fehler beim Versenden des Mails an den Zweitbegutachter!'; $this->phrasen['abgabetool/fehlerBetreuerNichtGefundenKeinMail']='Betreuer nicht gefunden. Kein Mail verschickt!'; +$this->phrasen['abgabetool/fehlerAktualitaetProjektarbeit']='Fehler bei Ermittlung der Aktualität der Projektarbeit'; $this->phrasen['abgabetool/keinPDF']='Upload ist keine pdf-Datei! Bitte wiederholen Sie den Fileupload.'; $this->phrasen['abgabetool/dateiZuGross']='Die Datei ist zu groß! Maximale Dateigröße 15 MB'; $this->phrasen['abgabetool/fehlerTerminVorbei']='Die Abgabefrist für diesen Termin ist bereits abgelaufen.'; diff --git a/locale/en-US/abgabetool.php b/locale/en-US/abgabetool.php index 59b10ed4b..c4e6eb7bd 100644 --- a/locale/en-US/abgabetool.php +++ b/locale/en-US/abgabetool.php @@ -64,6 +64,7 @@ $this->phrasen['abgabetool/dateneingabeUnvollstaendig']='Incomplete Data input'; $this->phrasen['abgabetool/fehlerMailBegutachter']='Error sending E-Mail to first Assessor!'; $this->phrasen['abgabetool/fehlerMailZweitBegutachter']='Error sending E-Mail to second Assessor!'; $this->phrasen['abgabetool/fehlerBetreuerNichtGefundenKeinMail']='Assessor not found. No E-Mail sent!'; +$this->phrasen['abgabetool/fehlerAktualitaetProjektarbeit']='Error when checking if current thesis'; $this->phrasen['abgabetool/keinPDF']='Upload-File ist not a PDF! Please retry the Fileupload.'; $this->phrasen['abgabetool/dateiZuGross']='The File is too big! Maximum File size: 15 MB'; $this->phrasen['abgabetool/fehlerTerminVorbei']='The deadline for this upload has already expired.'; diff --git a/locale/it-IT/abgabetool.php b/locale/it-IT/abgabetool.php index f5afd8da5..f7e7d9cf9 100644 --- a/locale/it-IT/abgabetool.php +++ b/locale/it-IT/abgabetool.php @@ -34,6 +34,7 @@ $this->phrasen['abgabetool/fehlerMailZweitBegutachter']='Errore di trasmissione $this->phrasen['abgabetool/fehlerMailStudent']='errore di spedizione della mai agli studenti!'; $this->phrasen['abgabetool/fehlerTerminEintragen']='scadenza non è stata registrata!'; $this->phrasen['abgabetool/fehlerTerminLoeschen']='Errore in sede di cancellazione della scadenza!'; +$this->phrasen['abgabetool/fehlerAktualitaetProjektarbeit']='Error when checking if current thesis'; $this->phrasen['abgabetool/fix']='fisso'; $this->phrasen['abgabetool/fixerAbgabetermin']='scadenza consegna inderogabile'; $this->phrasen['abgabetool/gelesenUndAkzeptiert']='Letto e accettato'; From 456a4e2057071d19e99f29bc13f456f6c44935dd Mon Sep 17 00:00:00 2001 From: OliiverHacker Date: Mon, 12 Apr 2021 11:52:01 +0200 Subject: [PATCH 066/132] bugfix for datum validation --- include/bisverwendung.class.php | 112 ++++++++++++++++++++------------ 1 file changed, 71 insertions(+), 41 deletions(-) diff --git a/include/bisverwendung.class.php b/include/bisverwendung.class.php index 9d92db489..5302d7b96 100644 --- a/include/bisverwendung.class.php +++ b/include/bisverwendung.class.php @@ -104,8 +104,8 @@ class bisverwendung extends basis_db $this->verwendung_code = $row->verwendung_code; $this->mitarbeiter_uid = $row->mitarbeiter_uid; $this->hauptberufcode = $row->hauptberufcode; - $this->hauptberuflich = $this->db_parse_bool($row->hauptberuflich); - $this->habilitation = $this->db_parse_bool($row->habilitation); + $this->hauptberuflich = $this->db_parse_bool($row->hauptberuflich); + $this->habilitation = $this->db_parse_bool($row->habilitation); $this->beginn = $row->beginn; $this->ende = $row->ende; $this->updatevon = $row->updatevon; @@ -177,6 +177,24 @@ class bisverwendung extends basis_db } } + + /** + * Prueft das Datum + * @param $date = string + * @return true wenn ok, sonst false + */ + static public function verifyDate($date, $strict = true) + { + $dateTime = DateTime::createFromFormat('Y-m-d', $date); + if ($strict) { + $errors = DateTime::getLastErrors(); + if (!empty($errors['warning_count'])) { + return false; + } + } + return $dateTime !== false; + } + /** * Prueft die Daten vor dem Speichern * @@ -189,6 +207,17 @@ class bisverwendung extends basis_db $this->errormsg = 'Vertragsstunden sind ungueltig'; return false; } + elseif(!$this->verifyDate($this->beginn) && !empty($this->beginn)) + { + $this->errormsg = 'Start Datum ist kein Valides Datum: '.$this->beginn; + return false; + } + elseif(!$this->verifyDate($this->ende) && !empty($this->ende)) + { + $this->errormsg = 'End Datum ist kein Valides Datum: '.$this->ende; + return false; + } + return true; } @@ -225,49 +254,49 @@ class bisverwendung extends basis_db $qry = "BEGIN;INSERT INTO bis.tbl_bisverwendung (ba1code, ba2code, beschausmasscode, verwendung_code, mitarbeiter_uid, hauptberufcode, hauptberuflich, habilitation, beginn, ende, vertragsstunden, updateamum, updatevon, insertamum, insertvon, dv_art, inkludierte_lehre, zeitaufzeichnungspflichtig) VALUES (". - $this->db_add_param($this->ba1code, FHC_INTEGER).', '. - $this->db_add_param($this->ba2code, FHC_INTEGER).', '. - $this->db_add_param($this->beschausmasscode, FHC_INTEGER).', '. - $this->db_add_param($this->verwendung_code, FHC_INTEGER).', '. - $this->db_add_param($this->mitarbeiter_uid).', '. - $this->db_add_param($this->hauptberufcode, FHC_INTEGER).', '. - $hauptberuflich.', '. - $this->db_add_param($this->habilitation, FHC_BOOLEAN).', '. - $this->db_add_param($this->beginn).', '. - $this->db_add_param($this->ende).', '. - $this->db_add_param($this->vertragsstunden).', '. - $this->db_add_param($this->updateamum).', '. - $this->db_add_param($this->updatevon).', '. - $this->db_add_param($this->insertamum).', '. - $this->db_add_param($this->insertvon).', '. - $this->db_add_param($this->dv_art).','. - $this->db_add_param($this->inkludierte_lehre).','. - $zeitaufzeichnungspflichtig. ');'; + $this->db_add_param($this->ba1code, FHC_INTEGER).', '. + $this->db_add_param($this->ba2code, FHC_INTEGER).', '. + $this->db_add_param($this->beschausmasscode, FHC_INTEGER).', '. + $this->db_add_param($this->verwendung_code, FHC_INTEGER).', '. + $this->db_add_param($this->mitarbeiter_uid).', '. + $this->db_add_param($this->hauptberufcode, FHC_INTEGER).', '. + $hauptberuflich.', '. + $this->db_add_param($this->habilitation, FHC_BOOLEAN).', '. + $this->db_add_param($this->beginn).', '. + $this->db_add_param($this->ende).', '. + $this->db_add_param($this->vertragsstunden).', '. + $this->db_add_param($this->updateamum).', '. + $this->db_add_param($this->updatevon).', '. + $this->db_add_param($this->insertamum).', '. + $this->db_add_param($this->insertvon).', '. + $this->db_add_param($this->dv_art).','. + $this->db_add_param($this->inkludierte_lehre).','. + $zeitaufzeichnungspflichtig. ');'; } else { //Bestehenden Datensatz aktualisieren $qry= "UPDATE bis.tbl_bisverwendung SET". - " ba1code=".$this->db_add_param($this->ba1code, FHC_INTEGER).",". - " ba2code=".$this->db_add_param($this->ba2code, FHC_INTEGER).",". - " beschausmasscode=".$this->db_add_param($this->beschausmasscode, FHC_INTEGER).",". - " verwendung_code=".$this->db_add_param($this->verwendung_code, FHC_INTEGER).",". - " mitarbeiter_uid=".$this->db_add_param($this->mitarbeiter_uid).",". - " hauptberufcode=".$this->db_add_param($this->hauptberufcode, FHC_INTEGER).",". - " hauptberuflich=".$hauptberuflich.",". - " habilitation=".$this->db_add_param($this->habilitation, FHC_BOOLEAN).",". - " beginn=".$this->db_add_param($this->beginn).",". - " ende=".$this->db_add_param($this->ende).",". - " vertragsstunden=".$this->db_add_param($this->vertragsstunden).",". - " updateamum=".$this->db_add_param($this->updateamum).",". - " updatevon=".$this->db_add_param($this->updatevon).",". - " insertamum=".$this->db_add_param($this->insertamum).",". - " insertvon=".$this->db_add_param($this->insertvon).",". - " dv_art=".$this->db_add_param($this->dv_art).",". - " inkludierte_lehre=".$this->db_add_param($this->inkludierte_lehre).",". - " zeitaufzeichnungspflichtig=". $zeitaufzeichnungspflichtig. - " WHERE bisverwendung_id=".$this->db_add_param($this->bisverwendung_id, FHC_INTEGER); + " ba1code=".$this->db_add_param($this->ba1code, FHC_INTEGER).",". + " ba2code=".$this->db_add_param($this->ba2code, FHC_INTEGER).",". + " beschausmasscode=".$this->db_add_param($this->beschausmasscode, FHC_INTEGER).",". + " verwendung_code=".$this->db_add_param($this->verwendung_code, FHC_INTEGER).",". + " mitarbeiter_uid=".$this->db_add_param($this->mitarbeiter_uid).",". + " hauptberufcode=".$this->db_add_param($this->hauptberufcode, FHC_INTEGER).",". + " hauptberuflich=".$hauptberuflich.",". + " habilitation=".$this->db_add_param($this->habilitation, FHC_BOOLEAN).",". + " beginn=".$this->db_add_param($this->beginn).",". + " ende=".$this->db_add_param($this->ende).",". + " vertragsstunden=".$this->db_add_param($this->vertragsstunden).",". + " updateamum=".$this->db_add_param($this->updateamum).",". + " updatevon=".$this->db_add_param($this->updatevon).",". + " insertamum=".$this->db_add_param($this->insertamum).",". + " insertvon=".$this->db_add_param($this->insertvon).",". + " dv_art=".$this->db_add_param($this->dv_art).",". + " inkludierte_lehre=".$this->db_add_param($this->inkludierte_lehre).",". + " zeitaufzeichnungspflichtig=". $zeitaufzeichnungspflichtig. + " WHERE bisverwendung_id=".$this->db_add_param($this->bisverwendung_id, FHC_INTEGER); } if($this->db_query($qry)) @@ -341,8 +370,8 @@ class bisverwendung extends basis_db $obj->verwendung_code = $row->verwendung_code; $obj->mitarbeiter_uid = $row->mitarbeiter_uid; $obj->hauptberufcode = $row->hauptberufcode; - $obj->hauptberuflich = $this->db_parse_bool($row->hauptberuflich); - $obj->habilitation = $this->db_parse_bool($row->habilitation); + $obj->hauptberuflich = $this->db_parse_bool($row->hauptberuflich); + $obj->habilitation = $this->db_parse_bool($row->habilitation); $obj->beginn = $row->beginn; $obj->ende = $row->ende; $obj->updatevon = $row->updatevon; @@ -770,3 +799,4 @@ class bisverwendung extends basis_db } } ?> + From 72b076c785889700a9f0bbca385276874b6b24c6 Mon Sep 17 00:00:00 2001 From: KarpAlex Date: Tue, 13 Apr 2021 13:25:42 +0200 Subject: [PATCH 067/132] added repeat.png image for abgabetool --- skin/images/repeat.png | Bin 0 -> 21827 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 skin/images/repeat.png diff --git a/skin/images/repeat.png b/skin/images/repeat.png new file mode 100644 index 0000000000000000000000000000000000000000..03ec1790b91f186f281e62b4435c38d0acca0eb2 GIT binary patch literal 21827 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 Date: Thu, 15 Apr 2021 11:54:50 +0200 Subject: [PATCH 068/132] Changed fhcomplete.org Wiki Links to fhcomplete.info --- README.md | 2 +- locale/de-AT/dms_link.php | 14 +++++++------- locale/en-US/dms_link.php | 12 ++++++------ 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index d5620010a..c5212a353 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ # FH-Complete * [FH-Complete Homepage](https://www.fhcomplete.org) -* [Wiki](https://wiki.fhcomplete.org/) +* [Wiki](https://wiki.fhcomplete.info/) * [Changelog](CHANGELOG.md) diff --git a/locale/de-AT/dms_link.php b/locale/de-AT/dms_link.php index 5bf5541dc..8a0d24dac 100644 --- a/locale/de-AT/dms_link.php +++ b/locale/de-AT/dms_link.php @@ -11,11 +11,11 @@ $this->phrasen['dms_link/iconPDF']='46'; //PDF Icon $this->phrasen['dms_link/bedienungsanleitungMailverteiler']='1474'; //Bedienungsanleitung Mailverteiler $this->phrasen['dms_link/berechtigungskonzeptMailverteiler']='1475'; //Berechtigungskonzept Mailverteiler $this->phrasen['dms_link/handbuchUrlaubsverwaltung']='759'; //Handbuch Urlaubsverwaltung -> Leer lassen, falls es keines gibt -$this->phrasen['dms_link/handbuchZeitaufzeichnung']='1545'; //Handbuch Zeitaufzeichnung -> Leer lassen, falls es keines gibt +$this->phrasen['dms_link/handbuchZeitaufzeichnung']='1545'; //Handbuch Zeitaufzeichnung -> Leer lassen, falls es keines gibt $this->phrasen['dms_link/fiktiveNormalarbeitszeit']='2512'; //fiktive Normalarbeitszeit -> Leer lassen, falls es keines gibt $this->phrasen['dms_link/learningAgreementErasmus']='85863'; //Learning Agreement Incomings Erasmus -$this->phrasen['dms_link/learningAgreement']='38866'; //Learning Agreement Incomings NICHT Erasmus -$this->phrasen['dms_link/passwortpolicy']='57972'; //Passwortpolicy +$this->phrasen['dms_link/learningAgreement']='38866'; //Learning Agreement Incomings NICHT Erasmus +$this->phrasen['dms_link/passwortpolicy']='57972'; //Passwortpolicy // Content IDs (=Englisch) $this->phrasen['dms_link/lvPlanFAQ']='6887'; //Hilfe-Link aus dem LV-Plan in die LV-Plan FAQ auf der CIS (CMS-ID) @@ -32,8 +32,8 @@ $this->phrasen['dms_link/lvevaluierungStudierendeCMS']=''; //Beschreibung des Ab $this->phrasen['dms_link/lvevaluierungMitarbeiterCMS']=''; //Beschreibung des Ablaufs der LVEvaluierung für Mitarbeiter //Links auf externe Seiten -$this->phrasen['dms_link/dokuwikiGesamtnote']='https://wiki.fhcomplete.org/doku.php?id=cis:gesamtnote'; //Link ins Dokuwiki zur Anleitung Gesamtnote -$this->phrasen['dms_link/abgabetoolLektorHandbuch']='https://wiki.fhcomplete.org/doku.php?id=cis:abgabetool_fuer_lektoren'; //Abgabetool Handbuch fuer LektorInnen -$this->phrasen['dms_link/abgabetoolStudentHandbuch']='https://wiki.fhcomplete.org/doku.php?id=cis:abgabetool_fuer_studierende'; //Abgabetool Handbuch fuer Studierende -$this->phrasen['dms_link/abgabetoolAssistenzHandbuch']='https://wiki.fhcomplete.org/doku.php?id=cis:abgabetool_fuer_lektoren'; //Abgabetool Handbuch fuer Assistenz +$this->phrasen['dms_link/dokuwikiGesamtnote']='https://wiki.fhcomplete.info/doku.php?id=cis:gesamtnote'; //Link ins Dokuwiki zur Anleitung Gesamtnote +$this->phrasen['dms_link/abgabetoolLektorHandbuch']='https://wiki.fhcomplete.info/doku.php?id=cis:abgabetool_fuer_lektoren'; //Abgabetool Handbuch fuer LektorInnen +$this->phrasen['dms_link/abgabetoolStudentHandbuch']='https://wiki.fhcomplete.info/doku.php?id=cis:abgabetool_fuer_studierende'; //Abgabetool Handbuch fuer Studierende +$this->phrasen['dms_link/abgabetoolAssistenzHandbuch']='https://wiki.fhcomplete.info/doku.php?id=cis:abgabetool_fuer_lektoren'; //Abgabetool Handbuch fuer Assistenz ?> diff --git a/locale/en-US/dms_link.php b/locale/en-US/dms_link.php index 297feb2b4..287ee5a37 100644 --- a/locale/en-US/dms_link.php +++ b/locale/en-US/dms_link.php @@ -10,11 +10,11 @@ $this->phrasen['dms_link/moodleHandbuch24']='1426'; //Moodle Handbuch $this->phrasen['dms_link/iconPDF']='46'; //PDF Icon $this->phrasen['dms_link/bedienungsanleitungMailverteiler']='1474'; //Bedienungsanleitung Mailverteiler $this->phrasen['dms_link/berechtigungskonzeptMailverteiler']='1475'; //Berechtigungskonzept Mailverteiler -$this->phrasen['dms_link/handbuchUrlaubsverwaltung']='759'; //Handbuch Urlaubsverwaltung +$this->phrasen['dms_link/handbuchUrlaubsverwaltung']='759'; //Handbuch Urlaubsverwaltung $this->phrasen['dms_link/handbuchZeitaufzeichnung']='1545'; //Handbuch Zeitaufzeichnung -> Leer lassen, falls es keines gibt $this->phrasen['dms_link/fiktiveNormalarbeitszeit']='2512'; //fiktive Normalarbeitszeit -> Leer lassen, falls es keines gibt $this->phrasen['dms_link/learningAgreementErasmus']='85863'; //Learning Agreement Incomings Erasmus -$this->phrasen['dms_link/learningAgreement']='38866'; //Learning Agreement Incomings NICHT Erasmus +$this->phrasen['dms_link/learningAgreement']='38866'; //Learning Agreement Incomings NICHT Erasmus // Content IDs (=Deutsch) $this->phrasen['dms_link/lvPlanFAQ']='6887'; //Hilfe-Link aus dem LV-Plan in die LV-Plan FAQ auf der CIS (CMS-ID) @@ -27,8 +27,8 @@ $this->phrasen['dms_link/profilhilfe']=''; //Hilfe-Link aus dem Profil $this->phrasen['dms_link/anleitungMailverteiler']='7578'; //Anleitung für die Benutzung der Mailverteiler und der Berechtigungsschlüssel //Links auf externe Seiten -$this->phrasen['dms_link/dokuwikiGesamtnote']='https://wiki.fhcomplete.org/doku.php?id=cis:gesamtnote'; //Link ins Dokuwiki zur Anleitung Gesamtnote -$this->phrasen['dms_link/abgabetoolLektorHandbuch']='https://wiki.fhcomplete.org/doku.php?id=cis:abgabetool_fuer_lektoren'; //Abgabetool Handbuch fuer LektorInnen -$this->phrasen['dms_link/abgabetoolStudentHandbuch']='https://wiki.fhcomplete.org/doku.php?id=cis:abgabetool_fuer_studierende'; //Abgabetool Handbuch fuer Studierende -$this->phrasen['dms_link/abgabetoolAssistenzHandbuch']='https://wiki.fhcomplete.org/doku.php?id=cis:abgabetool_fuer_lektoren'; //Abgabetool Handbuch fuer Assistenz +$this->phrasen['dms_link/dokuwikiGesamtnote']='https://wiki.fhcomplete.info/doku.php?id=cis:gesamtnote'; //Link ins Dokuwiki zur Anleitung Gesamtnote +$this->phrasen['dms_link/abgabetoolLektorHandbuch']='https://wiki.fhcomplete.info/doku.php?id=cis:abgabetool_fuer_lektoren'; //Abgabetool Handbuch fuer LektorInnen +$this->phrasen['dms_link/abgabetoolStudentHandbuch']='https://wiki.fhcomplete.info/doku.php?id=cis:abgabetool_fuer_studierende'; //Abgabetool Handbuch fuer Studierende +$this->phrasen['dms_link/abgabetoolAssistenzHandbuch']='https://wiki.fhcomplete.info/doku.php?id=cis:abgabetool_fuer_lektoren'; //Abgabetool Handbuch fuer Assistenz ?> From 9699de8c33d2808959ed73ab9e2ced160eb9304b Mon Sep 17 00:00:00 2001 From: Paolo Date: Tue, 20 Apr 2021 14:09:52 +0200 Subject: [PATCH 069/132] Removed commented code --- application/libraries/LDAPLib.php | 1 - 1 file changed, 1 deletion(-) diff --git a/application/libraries/LDAPLib.php b/application/libraries/LDAPLib.php index 0dfcc9498..a119af51e 100644 --- a/application/libraries/LDAPLib.php +++ b/application/libraries/LDAPLib.php @@ -167,7 +167,6 @@ class LDAPLib } // LDAP connection - //$ldapConnection = @ldap_connect($ldapConfigs[self::SERVER], $ldapConfigs[self::PORT]); $ldapConnection = @ldap_connect($ldapConfigs[self::SERVER].':'.$ldapConfigs[self::PORT]); if ($ldapConnection) // if success { From a7482425ef689716bc623f63be37d82d10f9fc70 Mon Sep 17 00:00:00 2001 From: OliiverHacker Date: Tue, 20 Apr 2021 15:57:43 +0200 Subject: [PATCH 070/132] fix inserst typos --- include/bisverwendung.class.php | 83 ++++++++++++++++----------------- 1 file changed, 41 insertions(+), 42 deletions(-) diff --git a/include/bisverwendung.class.php b/include/bisverwendung.class.php index 5302d7b96..799cfc93e 100644 --- a/include/bisverwendung.class.php +++ b/include/bisverwendung.class.php @@ -104,8 +104,8 @@ class bisverwendung extends basis_db $this->verwendung_code = $row->verwendung_code; $this->mitarbeiter_uid = $row->mitarbeiter_uid; $this->hauptberufcode = $row->hauptberufcode; - $this->hauptberuflich = $this->db_parse_bool($row->hauptberuflich); - $this->habilitation = $this->db_parse_bool($row->habilitation); + $this->hauptberuflich = $this->db_parse_bool($row->hauptberuflich); + $this->habilitation = $this->db_parse_bool($row->habilitation); $this->beginn = $row->beginn; $this->ende = $row->ende; $this->updatevon = $row->updatevon; @@ -254,49 +254,49 @@ class bisverwendung extends basis_db $qry = "BEGIN;INSERT INTO bis.tbl_bisverwendung (ba1code, ba2code, beschausmasscode, verwendung_code, mitarbeiter_uid, hauptberufcode, hauptberuflich, habilitation, beginn, ende, vertragsstunden, updateamum, updatevon, insertamum, insertvon, dv_art, inkludierte_lehre, zeitaufzeichnungspflichtig) VALUES (". - $this->db_add_param($this->ba1code, FHC_INTEGER).', '. - $this->db_add_param($this->ba2code, FHC_INTEGER).', '. - $this->db_add_param($this->beschausmasscode, FHC_INTEGER).', '. - $this->db_add_param($this->verwendung_code, FHC_INTEGER).', '. - $this->db_add_param($this->mitarbeiter_uid).', '. - $this->db_add_param($this->hauptberufcode, FHC_INTEGER).', '. - $hauptberuflich.', '. - $this->db_add_param($this->habilitation, FHC_BOOLEAN).', '. - $this->db_add_param($this->beginn).', '. - $this->db_add_param($this->ende).', '. - $this->db_add_param($this->vertragsstunden).', '. - $this->db_add_param($this->updateamum).', '. - $this->db_add_param($this->updatevon).', '. - $this->db_add_param($this->insertamum).', '. - $this->db_add_param($this->insertvon).', '. - $this->db_add_param($this->dv_art).','. - $this->db_add_param($this->inkludierte_lehre).','. - $zeitaufzeichnungspflichtig. ');'; + $this->db_add_param($this->ba1code, FHC_INTEGER).', '. + $this->db_add_param($this->ba2code, FHC_INTEGER).', '. + $this->db_add_param($this->beschausmasscode, FHC_INTEGER).', '. + $this->db_add_param($this->verwendung_code, FHC_INTEGER).', '. + $this->db_add_param($this->mitarbeiter_uid).', '. + $this->db_add_param($this->hauptberufcode, FHC_INTEGER).', '. + $hauptberuflich.', '. + $this->db_add_param($this->habilitation, FHC_BOOLEAN).', '. + $this->db_add_param($this->beginn).', '. + $this->db_add_param($this->ende).', '. + $this->db_add_param($this->vertragsstunden).', '. + $this->db_add_param($this->updateamum).', '. + $this->db_add_param($this->updatevon).', '. + $this->db_add_param($this->insertamum).', '. + $this->db_add_param($this->insertvon).', '. + $this->db_add_param($this->dv_art).','. + $this->db_add_param($this->inkludierte_lehre).','. + $zeitaufzeichnungspflichtig. ');'; } else { //Bestehenden Datensatz aktualisieren $qry= "UPDATE bis.tbl_bisverwendung SET". - " ba1code=".$this->db_add_param($this->ba1code, FHC_INTEGER).",". - " ba2code=".$this->db_add_param($this->ba2code, FHC_INTEGER).",". - " beschausmasscode=".$this->db_add_param($this->beschausmasscode, FHC_INTEGER).",". - " verwendung_code=".$this->db_add_param($this->verwendung_code, FHC_INTEGER).",". - " mitarbeiter_uid=".$this->db_add_param($this->mitarbeiter_uid).",". - " hauptberufcode=".$this->db_add_param($this->hauptberufcode, FHC_INTEGER).",". - " hauptberuflich=".$hauptberuflich.",". - " habilitation=".$this->db_add_param($this->habilitation, FHC_BOOLEAN).",". - " beginn=".$this->db_add_param($this->beginn).",". - " ende=".$this->db_add_param($this->ende).",". - " vertragsstunden=".$this->db_add_param($this->vertragsstunden).",". - " updateamum=".$this->db_add_param($this->updateamum).",". - " updatevon=".$this->db_add_param($this->updatevon).",". - " insertamum=".$this->db_add_param($this->insertamum).",". - " insertvon=".$this->db_add_param($this->insertvon).",". - " dv_art=".$this->db_add_param($this->dv_art).",". - " inkludierte_lehre=".$this->db_add_param($this->inkludierte_lehre).",". - " zeitaufzeichnungspflichtig=". $zeitaufzeichnungspflichtig. - " WHERE bisverwendung_id=".$this->db_add_param($this->bisverwendung_id, FHC_INTEGER); + " ba1code=".$this->db_add_param($this->ba1code, FHC_INTEGER).",". + " ba2code=".$this->db_add_param($this->ba2code, FHC_INTEGER).",". + " beschausmasscode=".$this->db_add_param($this->beschausmasscode, FHC_INTEGER).",". + " verwendung_code=".$this->db_add_param($this->verwendung_code, FHC_INTEGER).",". + " mitarbeiter_uid=".$this->db_add_param($this->mitarbeiter_uid).",". + " hauptberufcode=".$this->db_add_param($this->hauptberufcode, FHC_INTEGER).",". + " hauptberuflich=".$hauptberuflich.",". + " habilitation=".$this->db_add_param($this->habilitation, FHC_BOOLEAN).",". + " beginn=".$this->db_add_param($this->beginn).",". + " ende=".$this->db_add_param($this->ende).",". + " vertragsstunden=".$this->db_add_param($this->vertragsstunden).",". + " updateamum=".$this->db_add_param($this->updateamum).",". + " updatevon=".$this->db_add_param($this->updatevon).",". + " insertamum=".$this->db_add_param($this->insertamum).",". + " insertvon=".$this->db_add_param($this->insertvon).",". + " dv_art=".$this->db_add_param($this->dv_art).",". + " inkludierte_lehre=".$this->db_add_param($this->inkludierte_lehre).",". + " zeitaufzeichnungspflichtig=". $zeitaufzeichnungspflichtig. + " WHERE bisverwendung_id=".$this->db_add_param($this->bisverwendung_id, FHC_INTEGER); } if($this->db_query($qry)) @@ -370,8 +370,8 @@ class bisverwendung extends basis_db $obj->verwendung_code = $row->verwendung_code; $obj->mitarbeiter_uid = $row->mitarbeiter_uid; $obj->hauptberufcode = $row->hauptberufcode; - $obj->hauptberuflich = $this->db_parse_bool($row->hauptberuflich); - $obj->habilitation = $this->db_parse_bool($row->habilitation); + $obj->hauptberuflich = $this->db_parse_bool($row->hauptberuflich); + $obj->habilitation = $this->db_parse_bool($row->habilitation); $obj->beginn = $row->beginn; $obj->ende = $row->ende; $obj->updatevon = $row->updatevon; @@ -799,4 +799,3 @@ class bisverwendung extends basis_db } } ?> - From 197accbb020d1cd47e0d7fcaccc3e9eb619aa0af Mon Sep 17 00:00:00 2001 From: OliiverHacker Date: Thu, 22 Apr 2021 13:47:01 +0200 Subject: [PATCH 071/132] Add Titel to Projektexport --- cis/private/tools/zeitaufzeichnung_projektliste.php | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/cis/private/tools/zeitaufzeichnung_projektliste.php b/cis/private/tools/zeitaufzeichnung_projektliste.php index c578ccb88..284eba962 100644 --- a/cis/private/tools/zeitaufzeichnung_projektliste.php +++ b/cis/private/tools/zeitaufzeichnung_projektliste.php @@ -46,7 +46,7 @@ $sprache_obj = new sprache(); $sprache_obj->load($sprache); $sprache_index = $sprache_obj->index; -$uid = get_uid(); +$uid = 'oesi';//get_uid(); //Wenn User Administrator ist und UID uebergeben wurde, dann die Zeitaufzeichnung //des uebergebenen Users anzeigen @@ -57,7 +57,7 @@ if (isset($_GET['uid'])) if ($rechte->isBerechtigt('admin')) { - $uid = $_GET['uid']; + $uid = "oesi";//$_GET['uid']; } else { @@ -90,6 +90,7 @@ $ztauf->getListeUserFromTo($uid, $year.'-'.$month.'-01', $year.'-'.$month.'-'.$d $projektlines = array(); $dayStart = $dayEnd = ''; $projektnames = $projektphasenames = $tosubtract = $allpauseranges = array(); +$projektTiteles = array(); $activitiesToSubtract = ['Pause', 'LehreExtern', 'Arztbesuch', 'Behoerde'];//aktivitaetstypen which should be subtracted fromworktime $ztaufdata = $ztauf->result; $totalmonthsum = 0.00; @@ -281,7 +282,12 @@ for ($i = 0; $i < count($ztaufdata); $i++) //add new projekt to array with unique projekt names if (!in_array($ztaufrow->projekt_kurzbz, $projektnames)) + { $projektnames[] = $ztaufrow->projekt_kurzbz; + $pt = new projekt(); + $pt->load($ztaufrow->projekt_kurzbz); + $projektTiteles[$ztaufrow->projekt_kurzbz] = $pt->titel; + } } } @@ -558,7 +564,8 @@ if ($nrProjects < 1)//no projekts - merge all cells and write notice foreach ($projektnames as $projektname) { //Creating a worksheet - $worksheet =& $workbook->addWorksheet($projektname); + $titel = $projektTiteles[$projektname]; + $worksheet =& $workbook->addWorksheet($projektname.' ('.$titel.')'); $worksheet->setInputEncoding('utf-8'); //general options From 6ddc912cb3a688452b6bc330d8c684027a9fa39c Mon Sep 17 00:00:00 2001 From: OliiverHacker Date: Thu, 22 Apr 2021 14:23:10 +0200 Subject: [PATCH 072/132] uncomment uid --- cis/private/tools/zeitaufzeichnung_projektliste.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cis/private/tools/zeitaufzeichnung_projektliste.php b/cis/private/tools/zeitaufzeichnung_projektliste.php index 284eba962..c3d800dc1 100644 --- a/cis/private/tools/zeitaufzeichnung_projektliste.php +++ b/cis/private/tools/zeitaufzeichnung_projektliste.php @@ -46,7 +46,7 @@ $sprache_obj = new sprache(); $sprache_obj->load($sprache); $sprache_index = $sprache_obj->index; -$uid = 'oesi';//get_uid(); +$uid = get_uid(); //Wenn User Administrator ist und UID uebergeben wurde, dann die Zeitaufzeichnung //des uebergebenen Users anzeigen @@ -57,7 +57,7 @@ if (isset($_GET['uid'])) if ($rechte->isBerechtigt('admin')) { - $uid = "oesi";//$_GET['uid']; + $uid = $_GET['uid']; } else { From e4f6496387d027cf87513cc60c3a36a4dfbf58c6 Mon Sep 17 00:00:00 2001 From: FHBGLD <33415881+FHBGLD@users.noreply.github.com> Date: Tue, 27 Apr 2021 14:37:32 +0200 Subject: [PATCH 073/132] Update gemeinde.class.php --- include/gemeinde.class.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/gemeinde.class.php b/include/gemeinde.class.php index b829a7f7f..00b2e0128 100644 --- a/include/gemeinde.class.php +++ b/include/gemeinde.class.php @@ -139,7 +139,7 @@ class gemeinde extends basis_db if($this->db_query($qry)) { //naechste ID aus der Sequence holen - $qry="SELECT currval('tbl_gemeinde_gemeinde_id_seq') as id;"; + $qry="SELECT currval('bis.tbl_gemeinde_gemeinde_id_seq') as id;"; if($this->db_query($qry)) { if($row = $this->db_fetch_object()) @@ -219,4 +219,4 @@ class gemeinde extends basis_db return true; } } -?> \ No newline at end of file +?> From 35f1b00d7a8d6da2d9b7ebe4aeafe3bd735d1eea Mon Sep 17 00:00:00 2001 From: OliiverHacker Date: Wed, 28 Apr 2021 12:53:57 +0200 Subject: [PATCH 074/132] display correct mitarbeiter ressources --- rdf/ressource.rdf.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/rdf/ressource.rdf.php b/rdf/ressource.rdf.php index fce26f36d..5306113b2 100644 --- a/rdf/ressource.rdf.php +++ b/rdf/ressource.rdf.php @@ -19,7 +19,7 @@ */ $projekt_kurzbz=(isset($_GET['projekt_kurzbz'])?$_GET['projekt_kurzbz']:null); -$projekt_phase=(isset($_GET['projekt_phase'])?$_GET['projekt_phase']:null); +$projekt_phase=(isset($_GET['projekt_phase'])?$_GET['projekt_phase']:null); if($projekt_phase != null && (is_numeric($projekt_phase) == false )) die('Ungültige ProjektphasenID'); @@ -81,7 +81,7 @@ $ressource = new ressource(); if($projekt_kurzbz!=null) $ressource->getProjectRessourcen($projekt_kurzbz); else if($projekt_phase!= null) - $ressource->getPhaseRessourcen($projekt_phase); + $ressource->getPhaseRessourcen($projekt_phase); else $ressource->getAllRessourcen(); @@ -171,7 +171,7 @@ function draw_ressource($ressource) else die('Fehler beim Laden der Mitarbeiter-daten'); - $mitarbeiter.="\n\t\t\tressource_id."\" />"; + $mitarbeiter.="\n\t\t\tressource_id.'/'.$ressource->projekt_ressource_id."\" />"; $typ ='Mitarbeiter'; } // Ressource ist ein Student @@ -229,7 +229,7 @@ function draw_ressource($ressource) } echo ' - + ressource_id.']]> bezeichnung.']]> @@ -242,7 +242,7 @@ function draw_ressource($ressource) insertvon.']]> updateamum.']]> updatevon.']]> - aufwand.']]> + aufwand.']]> funktion_kurzbz.']]> projekt_ressource_id.']]> From 898562e742b64d08e3a9bbcf47187516dee6cd97 Mon Sep 17 00:00:00 2001 From: OliiverHacker Date: Thu, 29 Apr 2021 11:06:51 +0200 Subject: [PATCH 075/132] fix bug when deleting ressource from project --- content/projekt/ressource.xml.php | 8 ++- include/ressource.class.php | 88 +++++++++++++++++++++++++++---- soap/ressource_projekt.soap.php | 6 ++- soap/ressource_projekt.wsdl.php | 2 +- 4 files changed, 88 insertions(+), 16 deletions(-) diff --git a/content/projekt/ressource.xml.php b/content/projekt/ressource.xml.php index 966b79a80..d6f6c47c2 100644 --- a/content/projekt/ressource.xml.php +++ b/content/projekt/ressource.xml.php @@ -259,16 +259,19 @@ echo ''; ]]> - + - + '; projektRessource.appendChild(new SOAPObject("projekt_kurzbz")).val(''); } projektRessource.appendChild(new SOAPObject("ressource_id")).val(ressource_id); + projektRessource.appendChild(new SOAPObject("projekt_ressource_id")).val(projekt_ressource_id); soapBody.appendChild(projektRessource); var sr = new SOAPRequest("deleteProjektRessource",soapBody); diff --git a/include/ressource.class.php b/include/ressource.class.php index 2e6915480..a0567a5e9 100644 --- a/include/ressource.class.php +++ b/include/ressource.class.php @@ -86,7 +86,7 @@ class ressource extends basis_db $this->insertamum = $row->insertamum; $this->insertvon = $row->insertvon; $this->updateamum = $row->updateamum; - $this->updatevon = $row->updatevon; + $this->updatevon = $row->updatevon; $this->funktion_kurzbz = $row->funktion_kurzbz; return true; } @@ -130,7 +130,7 @@ class ressource extends basis_db $obj->insertamum = $row->insertamum; $obj->insertvon = $row->insertvon; $obj->updateamum = $row->updateamum; - $obj->updatevon = $row->updatevon; + $obj->updatevon = $row->updatevon; $this->result[] = $obj; } //var_dump($this->result); @@ -174,7 +174,7 @@ class ressource extends basis_db $obj->insertvon = $row->insertvon; $obj->updateamum = $row->updateamum; $obj->updatevon = $row->updatevon; - $obj->aufwand = $row->aufwand; + $obj->aufwand = $row->aufwand; $obj->funktion_kurzbz = $row->funktion_kurzbz; $obj->projekt_ressource_id= $row->projekt_ressource_id; @@ -189,8 +189,8 @@ class ressource extends basis_db return false; } } - - + + /** * * Lädt die Projektressource @@ -203,15 +203,15 @@ class ressource extends basis_db $this->result=array(); if($this->db_query($qry)) - { + { if($row = $this->db_fetch_object()) { $this->ressource_id = $row->ressource_id; $this->beschreibung = $row->beschreibung; - $this->aufwand = $row->aufwand; + $this->aufwand = $row->aufwand; $this->funktion_kurzbz = $row->funktion_kurzbz; - $this->projekt_ressource_id= $row->projekt_ressource_id; - $this->projekt_kurzbz = $row->projekt_kurzbz; + $this->projekt_ressource_id= $row->projekt_ressource_id; + $this->projekt_kurzbz = $row->projekt_kurzbz; $this->projektphase_id = $row->projektphase_id; return true; } @@ -223,7 +223,7 @@ class ressource extends basis_db $this->errormsg = 'Fehler beim Laden der Daten'; return false; } - } + } /** * @@ -256,7 +256,7 @@ class ressource extends basis_db $obj->insertvon = $row->insertvon; $obj->updateamum = $row->updateamum; $obj->updatevon = $row->updatevon; - $obj->aufwand = $row->aufwand; + $obj->aufwand = $row->aufwand; $obj->funktion_kurzbz = $row->funktion_kurzbz; $obj->projekt_ressource_id = $row->projekt_ressource_id; $this->result[] = $obj; @@ -688,5 +688,71 @@ class ressource extends basis_db return false; } } + + /** + * Löscht eine Ressource zu Projekt Zuordnung + * @param type $ressource_id + * @param type $projekt_kurzbz + * @return boolean + */ + public function deleteFromProjektWithProjektRessourceId($ressource_id, $projekt_kurzbz, $project_ressource_id) + { + if($ressource_id == '' || !is_numeric($ressource_id)) + { + $this->errormsg = 'Ressource Id ist keine gültige Zahl'; + return false; + } + /*$qry="DELETE FROM fue.tbl_projekt_ressource WHERE ressource_id =".$this->db_add_param($ressource_id, FHC_INTEGER, false)." + AND projekt_kurzbz=".$this->db_add_param($projekt_kurzbz, FHC_STRING, false).';'; + */ + $qry=" + DELETE FROM fue.tbl_projekt_ressource pr + USING fue.tbl_ressource r + WHERE r.ressource_id =".$this->db_add_param($ressource_id, FHC_INTEGER, false). " + AND pr.projekt_ressource_id=".$this->db_add_param($project_ressource_id, FHC_INTEGER, false). " + AND pr.projekt_kurzbz=".$this->db_add_param($projekt_kurzbz, FHC_STRING, false).';'; + + if($this->db_query($qry)) + { + return true; + } + else + { + $this->errormsg = 'Fehler beim Löschen der Daten'; + return false; + } + } + + /** + * Löscht eine Ressource zu Phase Zuordnung + * @param type $ressource_id + * @param type $projekt_kurzbz + * @return boolean + */ + public function deleteFromPhaseWithProjektRessourceId($ressource_id, $projektphase_id, $project_ressource_id) + { + if($ressource_id == '' || !is_numeric($ressource_id)) + { + $this->errormsg = 'Ressource Id ist keine gültige Zahl'; + return false; + } + + if($projektphase_id == '' || !is_numeric($projektphase_id)) + { + $this->errormsg = 'Ressource Id ist keine gültige Zahl'; + return false; + } + + $qry="DELETE FROM fue.tbl_projekt_ressource WHERE ressource_id =".$this->db_add_param($ressource_id, FHC_INTEGER, false)." + AND projektphase_id=".$this->db_add_param($projektphase_id, FHC_INTEGER, false).';'; + + if($this->db_query($qry)) + return true; + else + { + $this->errormsg = 'Fehler beim Löschen der Daten'; + return false; + } + } } ?> diff --git a/soap/ressource_projekt.soap.php b/soap/ressource_projekt.soap.php index 4c1e13dec..065568269 100644 --- a/soap/ressource_projekt.soap.php +++ b/soap/ressource_projekt.soap.php @@ -70,7 +70,7 @@ function saveProjektRessource($username, $passwort, $projektRessource) $ressource->projekt_ressource_id=$projektRessource->projekt_ressource_id; $ressource->projektphase_id=$projektRessource->projektphase_id; $ressource->projekt_kurzbz=$projektRessource->projekt_kurzbz; - $ressource->ressource_id = $projektRessource->ressource_id; + $ressource->ressource_id = $projektRessource->ressource_id; $ressource->funktion_kurzbz = $projektRessource->funktion_kurzbz; $ressource->beschreibung = $projektRessource->beschreibung; $ressource->aufwand = $projektRessource->aufwand; @@ -113,8 +113,10 @@ function deleteProjektRessource($username, $passwort, $projektRessource) } else { + // von Projekt löschen - if($ressource->deleteFromProjekt($projektRessource->ressource_id, $projektRessource->projekt_kurzbz)) + //if($ressource->deleteFromProjekt($projektRessource->ressource_id, $projektRessource->projekt_kurzbz)) + if($ressource->deleteFromProjektWithProjektRessourceId($projektRessource->ressource_id, $projektRessource->projekt_kurzbz, $projektRessource->projekt_ressource_id)) return "Erfolg"; else return "Fehler beim Löschen"; diff --git a/soap/ressource_projekt.wsdl.php b/soap/ressource_projekt.wsdl.php index bc9071468..5024aa3a6 100644 --- a/soap/ressource_projekt.wsdl.php +++ b/soap/ressource_projekt.wsdl.php @@ -37,7 +37,7 @@ xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"> - + From c0b07ac1d2d3dac8229e58748b3a6855194f0a51 Mon Sep 17 00:00:00 2001 From: OliiverHacker Date: Thu, 29 Apr 2021 11:12:32 +0200 Subject: [PATCH 076/132] fix bug when deleting ressource from projectphasen --- include/ressource.class.php | 10 ++++++++-- soap/ressource_projekt.soap.php | 2 +- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/include/ressource.class.php b/include/ressource.class.php index a0567a5e9..e01be0df4 100644 --- a/include/ressource.class.php +++ b/include/ressource.class.php @@ -743,9 +743,15 @@ class ressource extends basis_db return false; } - $qry="DELETE FROM fue.tbl_projekt_ressource WHERE ressource_id =".$this->db_add_param($ressource_id, FHC_INTEGER, false)." + /*$qry="DELETE FROM fue.tbl_projekt_ressource WHERE ressource_id =".$this->db_add_param($ressource_id, FHC_INTEGER, false)." AND projektphase_id=".$this->db_add_param($projektphase_id, FHC_INTEGER, false).';'; - + */ + $qry=" + DELETE FROM fue.tbl_projekt_ressource pr + USING fue.tbl_ressource r + WHERE r.ressource_id =".$this->db_add_param($ressource_id, FHC_INTEGER, false). " + AND pr.projekt_ressource_id=".$this->db_add_param($project_ressource_id, FHC_INTEGER, false). " + AND pr.projektphase_id=".$this->db_add_param($projektphase_id, FHC_INTEGER, false).';'; if($this->db_query($qry)) return true; else diff --git a/soap/ressource_projekt.soap.php b/soap/ressource_projekt.soap.php index 065568269..1a9f9b426 100644 --- a/soap/ressource_projekt.soap.php +++ b/soap/ressource_projekt.soap.php @@ -105,7 +105,7 @@ function deleteProjektRessource($username, $passwort, $projektRessource) if($projektRessource->projektphase_id != '') { // von Projektphase löschen - if($ressource->deleteFromPhase($projektRessource->ressource_id, $projektRessource->projektphase_id)) + if($ressource->deleteFromPhaseWithProjektRessourceId($projektRessource->ressource_id, $projektRessource->projektphase_id, $projektRessource->projekt_ressource_id)) return "Erfolg"; else return "Fehler beim Löschen"; From 27549c1a7058b64f7a6a1a65445fbbccb3ce9576 Mon Sep 17 00:00:00 2001 From: OliiverHacker Date: Thu, 29 Apr 2021 13:03:19 +0200 Subject: [PATCH 077/132] fix umlaute und max length also for excel --- .../tools/zeitaufzeichnung_projektliste.php | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/cis/private/tools/zeitaufzeichnung_projektliste.php b/cis/private/tools/zeitaufzeichnung_projektliste.php index c3d800dc1..0856869ee 100644 --- a/cis/private/tools/zeitaufzeichnung_projektliste.php +++ b/cis/private/tools/zeitaufzeichnung_projektliste.php @@ -286,7 +286,10 @@ for ($i = 0; $i < count($ztaufdata); $i++) $projektnames[] = $ztaufrow->projekt_kurzbz; $pt = new projekt(); $pt->load($ztaufrow->projekt_kurzbz); - $projektTiteles[$ztaufrow->projekt_kurzbz] = $pt->titel; + if(!empty($pt->titel)) + $projektTiteles[convertProblemChars($ztaufrow->projekt_kurzbz)] = convertProblemChars($pt->titel); + else + $projektTiteles[convertProblemChars($ztaufrow->projekt_kurzbz)] = 'kein Titel'; } } } @@ -563,9 +566,19 @@ if ($nrProjects < 1)//no projekts - merge all cells and write notice foreach ($projektnames as $projektname) { + + $titel = $projektTiteles[convertProblemChars($projektname)]; + + if ((strlen($titel)+strlen($projektname)) > 30) + { + $maxLength = 31; + $maxLength = ($maxLength - strlen($projektname)); + $titel = substr($titel, 0, $maxLength); + $titel.='...'; + } //Creating a worksheet - $titel = $projektTiteles[$projektname]; - $worksheet =& $workbook->addWorksheet($projektname.' ('.$titel.')'); + + $worksheet =& $workbook->addWorksheet(convertProblemChars($projektname).' ('.$titel.')'); $worksheet->setInputEncoding('utf-8'); //general options From 44be64dccaefb8c7c4e3e980ec1ecd548d98b18f Mon Sep 17 00:00:00 2001 From: OliiverHacker Date: Fri, 30 Apr 2021 10:56:16 +0200 Subject: [PATCH 078/132] add titel also to sheet header --- cis/private/tools/zeitaufzeichnung_projektliste.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/cis/private/tools/zeitaufzeichnung_projektliste.php b/cis/private/tools/zeitaufzeichnung_projektliste.php index 0856869ee..4621c4a66 100644 --- a/cis/private/tools/zeitaufzeichnung_projektliste.php +++ b/cis/private/tools/zeitaufzeichnung_projektliste.php @@ -569,10 +569,10 @@ foreach ($projektnames as $projektname) $titel = $projektTiteles[convertProblemChars($projektname)]; - if ((strlen($titel)+strlen($projektname)) > 30) + if ((strlen($titel)+strlen($projektname)) > 31) { $maxLength = 31; - $maxLength = ($maxLength - strlen($projektname)); + $maxLength = ($maxLength - 3 - strlen($projektname)); $titel = substr($titel, 0, $maxLength); $titel.='...'; } @@ -580,7 +580,7 @@ foreach ($projektnames as $projektname) $worksheet =& $workbook->addWorksheet(convertProblemChars($projektname).' ('.$titel.')'); $worksheet->setInputEncoding('utf-8'); - + $titel = $projektTiteles[convertProblemChars($projektname)]; //general options $worksheet->setLandscape(); $worksheet->hideGridlines(); @@ -706,7 +706,7 @@ foreach ($projektnames as $projektname) $worksheet->write($zeile, $spalte + 1 + $i, '', $format_bold_centered_toprightline); $worksheet->setMerge($zeile, $spalte, $zeile, $spalte + 1 + $phasenameslength); - $worksheet->write($zeile, $spalte, $projektname, $format_bold_centered_toprightline); + $worksheet->write($zeile, $spalte, $projektname.' ('.$titel.')', $format_bold_centered_toprightline); for ($i = 0; $i < $phasenameslength; $i++) $worksheet->write($zeile + 1, $spalte + 1 + $i, $phasenames[$i], $format_bold_centered_bottomline); From d21773bad523db593f06b0103a1dd5e9270c5917 Mon Sep 17 00:00:00 2001 From: OliiverHacker Date: Wed, 5 May 2021 09:21:32 +0200 Subject: [PATCH 079/132] markierung auch im vor und folgemonat --- cis/private/profile/urlaubstool.php | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/cis/private/profile/urlaubstool.php b/cis/private/profile/urlaubstool.php index 141f9be9e..b15bcebb8 100644 --- a/cis/private/profile/urlaubstool.php +++ b/cis/private/profile/urlaubstool.php @@ -794,11 +794,14 @@ for ($i=0;$i<6;$i++) echo ''.$tage[$j+7*$i].'
'; if(strlen(stristr($tage[$j+7*$i],"."))>0) { - echo ''; + echo ''; } else { - echo ''; + echo ''; } } else From 73c2319933e4eb7ae1f8cefd88b2d0ffa0fc32f6 Mon Sep 17 00:00:00 2001 From: KarpAlex Date: Wed, 5 May 2021 16:14:10 +0200 Subject: [PATCH 080/132] =?UTF-8?q?Parbeitsbeurteilung=20Abgabe:=20-=20Mai?= =?UTF-8?q?l=20after=20Zwischenabgabe=20for=20Erstbegutachter=20has=20not?= =?UTF-8?q?=20Beurteilunglink=20-=20added=20Paabgabetyp=20for=20Mail=20aft?= =?UTF-8?q?er=20Abgabe=20-=20Plagiatspr=C3=BCfung=20Button=20links=20to=20?= =?UTF-8?q?newer=20Plagiatschecksite?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cis/private/lehre/abgabe_lektor_details.php | 2 +- cis/private/lehre/abgabe_student_details.php | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/cis/private/lehre/abgabe_lektor_details.php b/cis/private/lehre/abgabe_lektor_details.php index 6b6b5633b..5bd82a8ef 100644 --- a/cis/private/lehre/abgabe_lektor_details.php +++ b/cis/private/lehre/abgabe_lektor_details.php @@ -475,7 +475,7 @@ $htmlstr .= ""; if($betreuerart!="Zweitbegutachter") { - $htmlstr .= "
"; $htmlstr .= "\n"; $htmlstr .= "\n"; diff --git a/cis/private/lehre/abgabe_student_details.php b/cis/private/lehre/abgabe_student_details.php index a30250435..e9384390b 100644 --- a/cis/private/lehre/abgabe_student_details.php +++ b/cis/private/lehre/abgabe_student_details.php @@ -398,7 +398,7 @@ if($command=="update" && $error!=true) echo $p->t('global/dateiNichtErfolgreichHochgeladen'); } } - //E-Mail an 1.Begutachter und 2.Begutachter + //E-Mail an 1.Begutachter und 2.Begutachter senden if($bid!='' && $bid!=NULL) { $qry_betr="SELECT distinct trim(COALESCE(titelpre,'')||' '||COALESCE(vorname,'')||' '||COALESCE(nachname,'')||' '||COALESCE(titelpost,'')) as first, @@ -444,14 +444,17 @@ if($command=="update" && $error!=true) // 1. Begutachter mail ohne Token $mail_baselink = APP_ROOT."index.ci.php/extensions/FHC-Core-Projektarbeitsbeurteilung/Projektarbeitsbeurteilung"; $mail_fulllink = "$mail_baselink?projektarbeit_id=".$projektarbeit_id."&uid=".$row_std->uid; + $abgabetyp = $paabgabetyp_kurzbz == 'end' ? 'Endabgabe' : 'Zwischenabgabe'; + $maildata = array(); $maildata['geehrt'] = "geehrte".($row_betr->anrede=="Herr"?"r":""); $maildata['anrede'] = $row_betr->anrede; $maildata['betreuer_voller_name'] = $row_betr->first; $maildata['student_anrede'] = $row_std->anrede; $maildata['student_voller_name'] = trim($row_std->titelpre." ".$row_std->vorname." ".$row_std->nachname." ".$row_std->titelpost); + $maildata['abgabetyp'] = $abgabetyp; $maildata['parbeituebersichtlink'] = "

Zur Projektarbeitsübersicht

"; - $maildata['bewertunglink'] = $num_rows_sem >= 1 ? "

Zur Beurteilung der Arbeit

" : ""; + $maildata['bewertunglink'] = $num_rows_sem >= 1 && $paabgabetyp_kurzbz == 'end' ? "

Zur Beurteilung der Arbeit

" : ""; $maildata['token'] = ""; $mailres = sendSanchoMail( @@ -495,6 +498,7 @@ if($command=="update" && $error!=true) $zweitbetmaildata['betreuer_voller_name'] = $zweitbetr->voller_name; $zweitbetmaildata['student_anrede'] = $maildata['student_anrede']; $zweitbetmaildata['student_voller_name'] = $maildata['student_voller_name']; + $zweitbetmaildata['abgabetyp'] = $abgabetyp; $zweitbetmaildata['parbeituebersichtlink'] = $intern ? $maildata['parbeituebersichtlink'] : ""; $zweitbetmaildata['bewertunglink'] = $num_rows_sem >= 1 ? "

Zur Beurteilung der Arbeit

" : ""; $zweitbetmaildata['token'] = $num_rows_sem >= 1 && isset($zweitbetr->zugangstoken) && !$intern ? "

Zugangstoken: " . $zweitbetr->zugangstoken . "

" : ""; From 912148815137ff2ccfa72dade90ae96ae50d73c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Thu, 6 May 2021 12:57:52 +0200 Subject: [PATCH 081/132] Updated PHPSecLib --- composer.lock | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/composer.lock b/composer.lock index d707ce776..467af9461 100644 --- a/composer.lock +++ b/composer.lock @@ -681,12 +681,12 @@ "version": "0.9.1", "source": { "type": "git", - "url": "https://github.com/njh/easyrdf.git", + "url": "https://github.com/easyrdf/easyrdf.git", "reference": "acd09dfe0555fbcfa254291e433c45fdd4652566" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/njh/easyrdf/zipball/acd09dfe0555fbcfa254291e433c45fdd4652566", + "url": "https://api.github.com/repos/easyrdf/easyrdf/zipball/acd09dfe0555fbcfa254291e433c45fdd4652566", "reference": "acd09dfe0555fbcfa254291e433c45fdd4652566", "shasum": "" }, @@ -796,6 +796,7 @@ "faker", "fixtures" ], + "abandoned": true, "time": "2019-12-12 13:22:17" }, { @@ -1321,16 +1322,16 @@ }, { "name": "phpseclib/phpseclib", - "version": "2.0.23", + "version": "2.0.31", "source": { "type": "git", "url": "https://github.com/phpseclib/phpseclib.git", - "reference": "c78eb5058d5bb1a183133c36d4ba5b6675dfa099" + "reference": "233a920cb38636a43b18d428f9a8db1f0a1a08f4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/c78eb5058d5bb1a183133c36d4ba5b6675dfa099", - "reference": "c78eb5058d5bb1a183133c36d4ba5b6675dfa099", + "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/233a920cb38636a43b18d428f9a8db1f0a1a08f4", + "reference": "233a920cb38636a43b18d428f9a8db1f0a1a08f4", "shasum": "" }, "require": { @@ -1338,8 +1339,7 @@ }, "require-dev": { "phing/phing": "~2.7", - "phpunit/phpunit": "^4.8.35|^5.7|^6.0", - "sami/sami": "~2.0", + "phpunit/phpunit": "^4.8.35|^5.7|^6.0|^9.4", "squizlabs/php_codesniffer": "~2.0" }, "suggest": { @@ -1409,7 +1409,7 @@ "x.509", "x509" ], - "time": "2019-09-17 03:41:22" + "time": "2021-04-06 13:56:45" }, { "name": "rmariuzzo/jquery-checkboxes", From 7a80a1f1cd1689c225373287359501d99d49ea36 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Fri, 7 May 2021 11:49:56 +0200 Subject: [PATCH 082/132] Tokenversand Link ist jetzt immer Sichtbar --- cis/private/lehre/abgabe_lektor_details.php | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/cis/private/lehre/abgabe_lektor_details.php b/cis/private/lehre/abgabe_lektor_details.php index 5bd82a8ef..be65ab7cd 100644 --- a/cis/private/lehre/abgabe_lektor_details.php +++ b/cis/private/lehre/abgabe_lektor_details.php @@ -122,7 +122,7 @@ $student_uid = $projektarbeit_obj->student_uid; // paarbeit sollte nur ab SS2021 online bewertet werden $qry_sem="SELECT 1 - FROM lehre.tbl_projektarbeit + FROM lehre.tbl_projektarbeit JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) JOIN public.tbl_studiensemester USING(studiensemester_kurzbz) WHERE projektarbeit_id=".$db->db_add_param($projektarbeit_id, FHC_INTEGER)." @@ -188,16 +188,16 @@ echo ' '.$p->t('abgabetool/abgabetool').' - - + '; + include('../../../include/meta/jquery.php'); + include('../../../include/meta/jquery-tablesorter.php'); + echo '
"; + $htmlstr .= "
"; $htmlstr .= "