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;
+ }
}
?>