From 3b8da2d7d09f3c2cb716886b8c4149e46f1f66a7 Mon Sep 17 00:00:00 2001 From: KarpAlex Date: Thu, 10 Feb 2022 15:42:19 +0100 Subject: [PATCH] moved check if projektarbeit is current to projektarbeit.class.php to projektarbeitIsCurrent method --- cis/private/lehre/abgabe_lektor_details.php | 15 +++------ cis/private/lehre/abgabe_student_details.php | 15 ++------- include/projektarbeit.class.php | 34 ++++++++++++++++++++ 3 files changed, 41 insertions(+), 23 deletions(-) diff --git a/cis/private/lehre/abgabe_lektor_details.php b/cis/private/lehre/abgabe_lektor_details.php index 9d89daa49..a508de098 100644 --- a/cis/private/lehre/abgabe_lektor_details.php +++ b/cis/private/lehre/abgabe_lektor_details.php @@ -120,17 +120,10 @@ if(!$projektarbeit_obj->load($projektarbeit_id)) $titel = $projektarbeit_obj->titel; $student_uid = $projektarbeit_obj->student_uid; -// paarbeit sollte nur ab SS2022 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 = 'SS2022')::date - LIMIT 1"; -$result_sem=$db->db_query($qry_sem); -$num_rows_sem = $db->db_num_rows($result_sem); -if($num_rows_sem < 0) +// paarbeit sollte nur ab bestimmten Zeitpunkt online bewertet werden +$num_rows_sem = $projektarbeit_obj->projektarbeitIsCurrent($projektarbeit_id); + +if(!is_numeric($num_rows_sem) || $num_rows_sem < 0) { echo "".$p->t('abgabetool/fehlerAktualitaetProjektarbeit')."
 "; } diff --git a/cis/private/lehre/abgabe_student_details.php b/cis/private/lehre/abgabe_student_details.php index ffb065b49..29d74ab66 100644 --- a/cis/private/lehre/abgabe_student_details.php +++ b/cis/private/lehre/abgabe_student_details.php @@ -423,18 +423,9 @@ if($command=="update" && $error!=true) } else { - // paarbeit sollte nur ab SS2022 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 = 'SS2022')::date - LIMIT 1"; - - $result_sem=$db->db_query($qry_sem); - $num_rows_sem = $db->db_num_rows($result_sem); - if($num_rows_sem < 0) + // paarbeit sollte nur ab bestimmten Zeitpunkt online bewertet werden + $num_rows_sem = $projektarbeit_obj->projektarbeitIsCurrent($projektarbeit_id); + if(!is_numeric($num_rows_sem) || $num_rows_sem < 0) { echo "".$p->t('abgabetool/fehlerAktualitaetProjektarbeit')."
 "; } diff --git a/include/projektarbeit.class.php b/include/projektarbeit.class.php index 131f8e323..cb5fb8f77 100644 --- a/include/projektarbeit.class.php +++ b/include/projektarbeit.class.php @@ -469,5 +469,39 @@ class projektarbeit extends basis_db return false; } } + + /** + * Prüft ob Projektarbeit aktuell ist (ab bestimmtem Semester). + * @param $projektarbeit_id + * @return int -1 wenn Fehler, 0 wenn nicht aktuell, 1 wenn aktuell + */ + public function projektarbeitIsCurrent($projektarbeit_id) + { + // paarbeit sollte nur ab einem Studiensemester online bewertet werden + $qry="SELECT 1 + FROM lehre.tbl_projektarbeit + JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) + JOIN public.tbl_studiensemester USING(studiensemester_kurzbz) + WHERE projektarbeit_id=".$this->db_add_param($projektarbeit_id, FHC_INTEGER)." + AND tbl_studiensemester.start::date >= (SELECT start FROM public.tbl_studiensemester WHERE studiensemester_kurzbz = 'SS2022')::date + LIMIT 1"; + + $result_sem=$this->db_query($qry); + + if (!$result_sem) + { + $this->errormsg = "Fehler beim Ermitteln der Projektarbeit Aktualität"; + return -1; + } + + $num_rows = $this->db_num_rows($result_sem); + + if ($num_rows < 0) + { + $this->errormsg = "Fehler beim Ermitteln der Anzahl der aktuellen Projektarbeiten"; + } + + return $num_rows; + } } ?>