mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-24 10:22:18 +00:00
replace dependencies on legacy code with ci model functions
This commit is contained in:
@@ -299,6 +299,91 @@ class Vertrag_model extends DB_Model
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Prueft ob ein Mitarbeiter einen erteilten Vertrag zu einer Lehrveranstaltung besitzt.
|
||||
* @param $lehrveranstaltung_id ID der Lehrveranstaltung
|
||||
* @param $studiensemester_kurzbz Studiensemester das geprueft wird
|
||||
* @param $mitarbeiter_uid UID des Mitarbeiters
|
||||
*/
|
||||
public function isVertragErteiltLV($lehrveranstaltung_id, $studiensemester_kurzbz, $mitarbeiter_uid)
|
||||
{
|
||||
if (defined('CIS_LV_LEKTORINNENZUTEILUNG_VERTRAGSPRUEFUNG_VON')
|
||||
&& CIS_LV_LEKTORINNENZUTEILUNG_VERTRAGSPRUEFUNG_VON != '')
|
||||
{
|
||||
// Liegt das Studiensemester vor dem Pruefdatum, wird die LV immer als Erteilt angezeigt
|
||||
$stsemquery = "
|
||||
SELECT
|
||||
tbl_studiensemester.start
|
||||
FROM
|
||||
public.tbl_studiensemester
|
||||
WHERE
|
||||
studiensemester_kurzbz = " . $this->escape($studiensemester_kurzbz)."
|
||||
AND tbl_studiensemester.start < (
|
||||
SELECT
|
||||
start
|
||||
FROM
|
||||
public.tbl_studiensemester stsem
|
||||
WHERE
|
||||
stsem.studiensemester_kurzbz = " . $this->escape(CIS_LV_LEKTORINNENZUTEILUNG_VERTRAGSPRUEFUNG_VON)."
|
||||
)";
|
||||
|
||||
if ($stsemresult = $this->execReadOnlyQuery($stsemquery))
|
||||
{
|
||||
$stsemdata = getData($stsemresult);
|
||||
if ($stsemdata && count($stsemdata) > 0)
|
||||
{
|
||||
// Wenn das Studiensemester vor dem Pruefdatum liegt, gilt der Vertrag immer als erteilt.
|
||||
return true;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
$query = "
|
||||
SELECT
|
||||
1
|
||||
FROM
|
||||
lehre.tbl_lehreinheitmitarbeiter
|
||||
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
|
||||
JOIN lehre.tbl_vertrag USING(vertrag_id)
|
||||
JOIN lehre.tbl_vertrag_vertragsstatus USING(vertrag_id)
|
||||
WHERE
|
||||
tbl_lehreinheitmitarbeiter.mitarbeiter_uid = " . $this->escape($mitarbeiter_uid) . "
|
||||
AND tbl_lehreinheit.studiensemester_kurzbz = " . $this->escape($studiensemester_kurzbz) . "
|
||||
AND tbl_lehreinheit.lehrveranstaltung_id = " . $this->escape(intval($lehrveranstaltung_id)) . "
|
||||
AND tbl_vertrag_vertragsstatus.vertragsstatus_kurzbz='erteilt'
|
||||
AND NOT EXISTS(
|
||||
SELECT
|
||||
1
|
||||
FROM
|
||||
lehre.tbl_vertrag_vertragsstatus vstatus
|
||||
WHERE
|
||||
vstatus.vertrag_id = tbl_vertrag.vertrag_id
|
||||
AND vstatus.vertragsstatus_kurzbz = 'storno'
|
||||
)
|
||||
";
|
||||
|
||||
if ($result = $this->execReadOnlyQuery($query))
|
||||
{
|
||||
$data = getData($result);
|
||||
if ($data && count($data) > 0)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------------------------------------------
|
||||
// Private methods
|
||||
|
||||
|
||||
@@ -156,4 +156,92 @@ class Lehreinheit_model extends DB_Model
|
||||
) AS subquery
|
||||
",[DOMAIN,DOMAIN,$lehreinheit_id,$lehreinheit_id ]);
|
||||
}
|
||||
|
||||
public function getLehreinheitenForStudentAndStudienSemester($lehrveranstaltung_id, $student_uid, $studiensemester_kurzbz)
|
||||
{
|
||||
$query = <<<EOSQL
|
||||
SELECT
|
||||
le.*
|
||||
FROM
|
||||
lehre.tbl_lehreinheit le
|
||||
JOIN
|
||||
campus.vw_student_lehrveranstaltung vslv USING(lehreinheit_id)
|
||||
WHERE
|
||||
vslv.lehrveranstaltung_id = {$this->escape($lehrveranstaltung_id)} AND
|
||||
vslv.uid = {$this->escape($student_uid)} AND
|
||||
vslv.studiensemester_kurzbz = {$this->escape($studiensemester_kurzbz)}
|
||||
EOSQL;
|
||||
|
||||
$res = $this->execReadOnlyQuery($query);
|
||||
return $res;
|
||||
}
|
||||
|
||||
public function getLehrfachIdMitarbeiter($angezeigtes_stsem,$user,$lvid)
|
||||
{
|
||||
$query = "
|
||||
SELECT
|
||||
distinct lehrfach_id
|
||||
FROM
|
||||
lehre.tbl_lehreinheit
|
||||
JOIN lehre.tbl_lehreinheitmitarbeiter USING(lehreinheit_id)
|
||||
WHERE
|
||||
studiensemester_kurzbz=" . $this->escape($angezeigtes_stsem) . "
|
||||
AND mitarbeiter_uid=" . $this->escape($user)."
|
||||
AND lehrveranstaltung_id=" . $this->escape(intval($lvid));
|
||||
|
||||
$res = $this->execReadOnlyQuery($query);
|
||||
return $res;
|
||||
}
|
||||
|
||||
public function getLehrfachIdStudierender($angezeigtes_stsem,$user,$lvid)
|
||||
{
|
||||
$query = "
|
||||
SELECT
|
||||
distinct lehrfach_id
|
||||
FROM
|
||||
campus.vw_student_lehrveranstaltung
|
||||
WHERE
|
||||
lehrveranstaltung_id=" . $this->escape(intval($lvid))."
|
||||
AND studiensemester_kurzbz=" . $this->escape($angezeigtes_stsem)."
|
||||
AND uid=" . $this->escape($user);
|
||||
|
||||
$res = $this->execReadOnlyQuery($query);
|
||||
return $res;
|
||||
}
|
||||
|
||||
public function getLehreinheitInfo($lvid, $angezeigtes_stsem, $lehrfach_id)
|
||||
{
|
||||
$query = "
|
||||
SELECT
|
||||
*
|
||||
FROM (
|
||||
SELECT
|
||||
distinct on(uid) vorname, nachname, tbl_benutzer.uid as uid,
|
||||
CASE
|
||||
WHEN lehrfunktion_kurzbz='LV-Leitung' THEN true
|
||||
ELSE false
|
||||
END as lvleiter
|
||||
FROM
|
||||
lehre.tbl_lehreinheit, lehre.tbl_lehreinheitmitarbeiter,
|
||||
public.tbl_benutzer, public.tbl_person
|
||||
WHERE
|
||||
tbl_lehreinheit.lehreinheit_id = tbl_lehreinheitmitarbeiter.lehreinheit_id
|
||||
AND tbl_lehreinheitmitarbeiter.mitarbeiter_uid = tbl_benutzer.uid
|
||||
AND tbl_person.person_id = tbl_benutzer.person_id
|
||||
AND lehrveranstaltung_id = " . $this->escape(intval($lvid)) . "
|
||||
AND tbl_lehreinheitmitarbeiter.mitarbeiter_uid NOT like '_Dummy%'
|
||||
AND tbl_benutzer.aktiv = true
|
||||
AND tbl_person.aktiv = true
|
||||
AND studiensemester_kurzbz = " . $this->escape($angezeigtes_stsem);
|
||||
|
||||
if($lehrfach_id != '')
|
||||
{
|
||||
$query .= " AND tbl_lehreinheit.lehrfach_id = " . $this->escape(intval($lehrfach_id));
|
||||
}
|
||||
|
||||
$query .= " ORDER BY uid, lvleiter desc) as a ORDER BY lvleiter desc, nachname, vorname";
|
||||
|
||||
$res = $this->execReadOnlyQuery($query);
|
||||
return $res;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -969,4 +969,47 @@ class Lehrveranstaltung_model extends DB_Model
|
||||
$this->addJoin('public.tbl_studiengang stg', 'studiengang_kz');
|
||||
return $this->load($lehrveranstaltung_id);
|
||||
}
|
||||
|
||||
//Berechtigungen auf Fachbereichsebene
|
||||
public function getBerechtigungenAufFachberechsebene($lvid, $angezeigtes_stsem)
|
||||
{
|
||||
$query = "
|
||||
SELECT
|
||||
DISTINCT lehrfach.oe_kurzbz
|
||||
FROM
|
||||
lehre.tbl_lehrveranstaltung
|
||||
JOIN
|
||||
lehre.tbl_lehreinheit USING(lehrveranstaltung_id)
|
||||
JOIN
|
||||
lehre.tbl_lehrveranstaltung as lehrfach ON(tbl_lehreinheit.lehrfach_id=lehrfach.lehrveranstaltung_id)
|
||||
WHERE
|
||||
tbl_lehrveranstaltung.lehrveranstaltung_id = " . $this->escape(intval($lvid));
|
||||
|
||||
if(isset($angezeigtes_stsem) && $angezeigtes_stsem != ''){
|
||||
$query .= " AND studiensemester_kurzbz = " . $this->escape($angezeigtes_stsem);
|
||||
}
|
||||
|
||||
$res = $this->execReadOnlyQuery($query);
|
||||
return $res;
|
||||
}
|
||||
|
||||
public function getStudentEMail($lvid, $angezeigtes_stsem)
|
||||
{
|
||||
$query = "
|
||||
SELECT
|
||||
DISTINCT vw_lehreinheit.stg_kurzbz, vw_lehreinheit.stg_typ,
|
||||
vw_lehreinheit.semester, COALESCE(vw_lehreinheit.verband,'') as verband,
|
||||
COALESCE(vw_lehreinheit.gruppe,'') as gruppe,
|
||||
vw_lehreinheit.gruppe_kurzbz, tbl_gruppe.mailgrp
|
||||
FROM
|
||||
campus.vw_lehreinheit
|
||||
LEFT JOIN
|
||||
public.tbl_gruppe USING(gruppe_kurzbz)
|
||||
WHERE
|
||||
lehrveranstaltung_id = " . $this->escape(intval($lvid)) . "
|
||||
AND studiensemester_kurzbz = " . $this->escape($angezeigtes_stsem);
|
||||
|
||||
$res = $this->execReadOnlyQuery($query);
|
||||
return $res;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,4 +11,39 @@ class Lvangebot_model extends DB_Model
|
||||
$this->dbTable = 'lehre.tbl_lvangebot';
|
||||
$this->pk = 'lvangebot_id';
|
||||
}
|
||||
|
||||
/**
|
||||
* Prueft ob eine Abmeldung von einer Lehrveranstaltung moeglich ist
|
||||
* und liefert die Gruppen von denen sich abgemeldet werden kann
|
||||
* @param $lehrveranstaltung_id
|
||||
* @param $studiensemester_kurzbz
|
||||
* @param $uid
|
||||
* @return $gruppen Array mit den Gruppen
|
||||
*/
|
||||
public function AbmeldungMoeglich($lehrveranstaltung_id, $studiensemester_kurzbz, $uid)
|
||||
{
|
||||
$query = "SELECT
|
||||
gruppe_kurzbz
|
||||
FROM
|
||||
lehre.tbl_lvangebot
|
||||
JOIN public.tbl_benutzergruppe USING(studiensemester_kurzbz, gruppe_kurzbz)
|
||||
WHERE
|
||||
tbl_lvangebot.studiensemester_kurzbz = " . $this->escape($studiensemester_kurzbz)."
|
||||
AND tbl_benutzergruppe.uid = " . $this->escape($uid)."
|
||||
AND (tbl_lvangebot.lehrveranstaltung_id = " . $this->escape(intval($lehrveranstaltung_id))."
|
||||
OR tbl_lvangebot.lehrveranstaltung_id IN(SELECT lehrveranstaltung_id_kompatibel
|
||||
FROM lehre.tbl_lehrveranstaltung_kompatibel
|
||||
WHERE lehrveranstaltung_id = " . $this->escape(intval($lehrveranstaltung_id))."
|
||||
)
|
||||
)";
|
||||
$res = $this->execReadOnlyQuery($query);
|
||||
$rows = (hasData($res)) ? getData($res) : array();
|
||||
|
||||
$gruppen=array();
|
||||
foreach($rows as $row)
|
||||
{
|
||||
$gruppen[] = $row->gruppe_kurzbz;
|
||||
}
|
||||
return $gruppen;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,4 +12,25 @@ class Benutzergruppe_model extends DB_Model
|
||||
$this->pk = array('gruppe_kurzbz', 'uid');
|
||||
$this->hasSequence = false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt die User in einer Benutzergruppe
|
||||
* @param gruppe_kurzbz, stsem
|
||||
* @return array
|
||||
*/
|
||||
public function getUids($gruppe_kurzbz, $stsem)
|
||||
{
|
||||
$query = "
|
||||
SELECT
|
||||
uid
|
||||
FROM
|
||||
public.tbl_benutzergruppe
|
||||
WHERE
|
||||
gruppe_kurzbz = " . $this->escape($gruppe_kurzbz) . "
|
||||
AND studiensemester_kurzbz = " . $this->escape($stsem);
|
||||
|
||||
$res = $this->execReadOnlyQuery($query);
|
||||
$uids = (hasData($res)) ? getData($res) : array();
|
||||
return $uids;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,62 @@
|
||||
<?php
|
||||
class Lehretools_model extends DB_Model
|
||||
{
|
||||
/**
|
||||
* Constructor
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
$this->dbTable = 'campus.tbl_lehre_tools';
|
||||
$this->pk = 'lehre_tools_id';
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* Laedt die Tools zu einer Lehrveranstaltung
|
||||
* @param $lehrveranstaltung_id
|
||||
* @param $studiensemester_kurzbz
|
||||
*/
|
||||
public function getTools($lehrveranstaltung_id, $studiensemester_kurzbz, $sprache)
|
||||
{
|
||||
$query = "SELECT
|
||||
lehre_tools_id,
|
||||
bezeichnung[(SELECT index FROM public.tbl_sprache WHERE sprache = " . $this->escape($sprache) . ")] AS bezeichnung,
|
||||
kurzbz,
|
||||
basis_url,
|
||||
logo_dms_id
|
||||
FROM
|
||||
campus.tbl_lehre_tools
|
||||
JOIN campus.tbl_lehre_tools_organisationseinheit USING(lehre_tools_id)
|
||||
WHERE
|
||||
campus.tbl_lehre_tools_organisationseinheit.aktiv AND
|
||||
(
|
||||
oe_kurzbz IN(
|
||||
SELECT
|
||||
tbl_studiengang.oe_kurzbz
|
||||
FROM
|
||||
lehre.tbl_lehrveranstaltung
|
||||
JOIN public.tbl_studiengang USING(studiengang_kz)
|
||||
WHERE
|
||||
tbl_lehrveranstaltung.lehrveranstaltung_id = " . $this->escape(intval($lehrveranstaltung_id)) . "
|
||||
)
|
||||
OR
|
||||
oe_kurzbz IN(
|
||||
SELECT
|
||||
lehrfach.oe_kurzbz
|
||||
FROM
|
||||
lehre.tbl_lehreinheit
|
||||
JOIN lehre.tbl_lehrveranstaltung as lehrfach ON(lehrfach_id=lehrfach.lehrveranstaltung_id)
|
||||
WHERE
|
||||
tbl_lehreinheit.studiensemester_kurzbz = " . $this->escape($studiensemester_kurzbz) . "
|
||||
AND tbl_lehreinheit.lehrveranstaltung_id = " . $this->escape(intval($lehrveranstaltung_id)) . "
|
||||
)
|
||||
)
|
||||
ORDER BY lehre_tools_id";
|
||||
|
||||
$toolsres = $this->execReadOnlyQuery($query);
|
||||
$tools = (hasData($toolsres)) ? getData($toolsres) : array();
|
||||
|
||||
return $tools;
|
||||
}
|
||||
}
|
||||
@@ -66,6 +66,15 @@ class Variable_model extends DB_Model
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!isset($vardata['emailadressentrennzeichen']))
|
||||
{
|
||||
$vardata['emailadressentrennzeichen'] =
|
||||
(defined('DEFAULT_EMAILADRESSENTRENNZEICHEN'))
|
||||
? DEFAULT_EMAILADRESSENTRENNZEICHEN
|
||||
: ',';
|
||||
}
|
||||
|
||||
$result = success($vardata);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user