mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-20 00:12:15 +00:00
Merge branch 'master' into benutzerberechtigungGUIneu
This commit is contained in:
@@ -663,10 +663,10 @@ class lehreinheit extends basis_db
|
||||
$sql_lkt=mb_substr($sql_lkt,3);
|
||||
$sql_query="SELECT * FROM campus.tbl_zeitsperre
|
||||
WHERE ($sql_lkt) AND
|
||||
( (vondatum<".$this->db_add_param($datum)." AND bisdatum>".$this->db_add_param($datum).")
|
||||
OR (vondatum=".$this->db_add_param($datum)." AND bisdatum=".$this->db_add_param($datum)." AND vonstunde<=".$this->db_add_param($stunde)." AND bisstunde>=".$this->db_add_param($stunde).")
|
||||
OR (vondatum=".$this->db_add_param($datum)." AND bisdatum>".$this->db_add_param($datum)." AND vonstunde<=".$this->db_add_param($stunde).")
|
||||
OR (vondatum<".$this->db_add_param($datum)." AND bisdatum=".$this->db_add_param($datum)." AND bisstunde>=".$this->db_add_param($stunde).") )";
|
||||
(vondatum <= ".$this->db_add_param($datum)." AND
|
||||
bisdatum >= ".$this->db_add_param($datum)." AND
|
||||
(vonstunde <= ". $this->db_add_param($stunde)." OR vonstunde IS NULL) AND
|
||||
(bisstunde >= ". $this->db_add_param($stunde)." OR bisstunde IS NULL))";
|
||||
//echo $sql_query.'<br>';
|
||||
if (!$this->db_query($sql_query))
|
||||
{
|
||||
|
||||
@@ -472,10 +472,65 @@ class projektarbeit extends basis_db
|
||||
|
||||
/**
|
||||
* Prüft ob Projektarbeit aktuell ist (ab bestimmtem Semester).
|
||||
* Masterarbeiten sind ab der Änderung zur Gewichtung der Punkte aktuell,
|
||||
* Bachelorarbeiten schon ab dem Umstieg auf das Online Beurteilungsformular.
|
||||
* @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
|
||||
(
|
||||
(
|
||||
projekttyp_kurzbz = 'Diplom'
|
||||
AND tbl_studiensemester.start::date >= (
|
||||
SELECT start
|
||||
FROM public.tbl_studiensemester
|
||||
WHERE studiensemester_kurzbz = 'SS2023'
|
||||
)::date
|
||||
)
|
||||
OR
|
||||
(
|
||||
projekttyp_kurzbz <> 'Diplom'
|
||||
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;
|
||||
}
|
||||
|
||||
/**
|
||||
* Prüft ob Projektarbeit aktuell ist (ab bestimmtem Semester), vor der Änderung zur Gewichtung der Punkte.
|
||||
* @param $projektarbeit_id
|
||||
* @return int -1 wenn Fehler, 0 wenn nicht aktuell, 1 wenn aktuell
|
||||
*/
|
||||
public function projektarbeitIsCurrentBeforeWeightening($projektarbeit_id)
|
||||
{
|
||||
// paarbeit sollte nur ab einem Studiensemester online bewertet werden
|
||||
$qry="SELECT 1
|
||||
|
||||
@@ -395,40 +395,66 @@ class projektbetreuer extends basis_db
|
||||
* @param $erstbegutachter_person_id int person_id des Erstbegutachters
|
||||
* @param $projektarbeit_id int
|
||||
* @param $student_uid string uid des Studenten der Arbeit abgibt
|
||||
* @param $zweitbegutachter_person_id int person_id des Zweitbegutachters (wenn mehrere Zweitbetreuer zu einem Erstbegutachter erwartet werden)
|
||||
* @return object | bool
|
||||
*/
|
||||
public function getZweitbegutachterWithToken($erstbegutachter_person_id, $projektarbeit_id, $student_uid)
|
||||
public function getZweitbegutachterWithToken($erstbegutachter_person_id, $projektarbeit_id, $student_uid, $zweitbegutachter_person_id = null)
|
||||
{
|
||||
$qry_betr="SELECT betr.person_id, betr.projektarbeit_id, pers.anrede, betr.zugangstoken, betr.zugangstoken_gueltigbis, tbl_benutzer.uid, kontakt,
|
||||
$qry_betr="SELECT DISTINCT ON (betr.person_id) betr.person_id, betr.projektarbeit_id, pers.anrede, betr.zugangstoken, betr.zugangstoken_gueltigbis,
|
||||
tbl_benutzer.uid, kontakt, betr.betreuerart_kurzbz,
|
||||
trim(COALESCE(titelpre,'')||' '||COALESCE(vorname,'')||' '||COALESCE(nachname,'')||' '||COALESCE(titelpost,'')) as voller_name,
|
||||
CASE WHEN tbl_benutzer.uid IS NULL THEN kontakt ELSE tbl_benutzer.uid || '@".DOMAIN."' END AS email, abg.abgabedatum
|
||||
FROM lehre.tbl_projektbetreuer betr
|
||||
JOIN lehre.tbl_projektarbeit parb ON betr.projektarbeit_id = parb.projektarbeit_id
|
||||
JOIN lehre.tbl_projektarbeit parb ON betr.projektarbeit_id = parb.projektarbeit_id
|
||||
JOIN public.tbl_person pers ON betr.person_id = pers.person_id
|
||||
LEFT JOIN public.tbl_kontakt ON pers.person_id = tbl_kontakt.person_id AND kontakttyp = 'email' AND zustellung = true
|
||||
LEFT JOIN public.tbl_benutzer ON pers.person_id = tbl_benutzer.person_id
|
||||
LEFT JOIN campus.tbl_paabgabe abg ON betr.projektarbeit_id = abg.projektarbeit_id AND abg.paabgabetyp_kurzbz = 'end'
|
||||
WHERE betr.betreuerart_kurzbz = 'Zweitbegutachter'
|
||||
WHERE
|
||||
(
|
||||
(
|
||||
betr.betreuerart_kurzbz = 'Zweitbegutachter'
|
||||
AND EXISTS (
|
||||
SELECT 1 FROM lehre.tbl_projektbetreuer
|
||||
WHERE person_id = ".$this->db_add_param($erstbegutachter_person_id, FHC_INTEGER)."
|
||||
AND betreuerart_kurzbz = 'Erstbegutachter'
|
||||
AND projektarbeit_id = betr.projektarbeit_id
|
||||
)
|
||||
)
|
||||
OR /* either Zweitbegutachter of masterarbeit, or Kommissionsprüfer if Kommission */
|
||||
(
|
||||
betr.betreuerart_kurzbz = 'Senatsmitglied'
|
||||
AND EXISTS (
|
||||
SELECT 1 FROM lehre.tbl_projektbetreuer
|
||||
WHERE person_id = ".$this->db_add_param($erstbegutachter_person_id, FHC_INTEGER)."
|
||||
AND betreuerart_kurzbz = 'Senatsvorsitz'
|
||||
AND projektarbeit_id = betr.projektarbeit_id
|
||||
)
|
||||
)
|
||||
)
|
||||
AND betr.projektarbeit_id = ".$this->db_add_param($projektarbeit_id, FHC_INTEGER)."
|
||||
AND parb.student_uid = ".$this->db_add_param($student_uid)."
|
||||
AND EXISTS (
|
||||
SELECT 1 FROM lehre.tbl_projektbetreuer
|
||||
WHERE person_id = ".$this->db_add_param($erstbegutachter_person_id, FHC_INTEGER)."
|
||||
AND betreuerart_kurzbz = 'Erstbegutachter'
|
||||
AND projektarbeit_id = betr.projektarbeit_id
|
||||
)
|
||||
AND (tbl_benutzer.aktiv OR tbl_benutzer.aktiv IS NULL)
|
||||
ORDER BY betr.insertamum DESC
|
||||
LIMIT 1";
|
||||
AND (tbl_benutzer.aktiv OR tbl_benutzer.aktiv IS NULL)";
|
||||
|
||||
if (isset($zweitbegutachter_person_id))
|
||||
{
|
||||
$qry_betr .= " AND betr.person_id = ".$this->db_add_param($zweitbegutachter_person_id, FHC_INTEGER);
|
||||
}
|
||||
|
||||
$qry_betr .= " ORDER BY betr.person_id DESC,
|
||||
(CASE WHEN EXISTS ( /* if multiple accounts, prioritize mitarbeiter */
|
||||
SELECT 1 FROM public.tbl_mitarbeiter ma
|
||||
WHERE ma.mitarbeiter_uid = tbl_benutzer.uid
|
||||
) THEN 0 ELSE 1 END), betr.insertamum DESC";
|
||||
|
||||
if ($betr=$this->db_query($qry_betr))
|
||||
{
|
||||
$row_betr = $this->db_fetch_object($betr);
|
||||
|
||||
if ($row_betr)
|
||||
return $row_betr;
|
||||
else
|
||||
return false;
|
||||
$result = array();
|
||||
while ($row_betr = $this->db_fetch_object())
|
||||
{
|
||||
$this->result[] = $row_betr;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -451,7 +477,7 @@ class projektbetreuer extends basis_db
|
||||
LEFT JOIN public.tbl_benutzer USING(person_id)
|
||||
WHERE projektarbeit_id = ".$this->db_add_param($projektarbeit_id, FHC_INTEGER)."
|
||||
AND tbl_projektbetreuer.person_id = ".$this->db_add_param($zweitbegutachter_person_id, FHC_INTEGER)."
|
||||
AND betreuerart_kurzbz = 'Zweitbegutachter'
|
||||
AND betreuerart_kurzbz IN ('Zweitbegutachter', 'Senatsmitglied')
|
||||
LIMIT 1";
|
||||
|
||||
if ($betreueruidres = $this->db_query($betreuerUidQry))
|
||||
@@ -494,7 +520,7 @@ class projektbetreuer extends basis_db
|
||||
zugangstoken_gueltigbis = CURRENT_DATE + interval '1 year'
|
||||
WHERE projektarbeit_id = " . $this->db_add_param($projektarbeit_id, FHC_INTEGER) . "
|
||||
AND person_id = " . $this->db_add_param($row_betr->person_id, FHC_INTEGER) . "
|
||||
AND betreuerart_kurzbz = 'Zweitbegutachter'";
|
||||
AND betreuerart_kurzbz IN ('Zweitbegutachter', 'Senatsmitglied')";
|
||||
|
||||
if ($this->db_query($qry_upd))
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user