mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-16 22:42:16 +00:00
Removed 2 methods getNonQuellkursLvs and getNonQuellkursLvsAutocompleteSuggestions from Lehrveranstaltung_model.php
This commit is contained in:
@@ -15,187 +15,6 @@ class Lehrveranstaltung_model extends DB_Model
|
||||
$this->load->model('organisation/studiensemester_model', 'StudiensemesterModel');
|
||||
}
|
||||
|
||||
/**
|
||||
* Get Lehrveranstaltungen by eventQuery string. Use with autocomplete event queries.
|
||||
* @param $eventQuery String
|
||||
* @param string $studiensemester_kurzbz Filter by Studiensemester
|
||||
* @param array $oes Filter by Organisationseinheiten. Checks against STG OE
|
||||
* @param null $lehrtyp_kurzbz Filter by Lehrtyp 'lv' or 'modul'
|
||||
* @return array
|
||||
*/
|
||||
public function getNonQuellkursLvsAutocompleteSuggestions($eventQuery, $studienjahr_kurzbz = null, $oes = null)
|
||||
{
|
||||
// Subquery
|
||||
$subQry = $this->_getQryLvsByStudienplan();
|
||||
$params = [];
|
||||
|
||||
// filter lvs only (no templates)
|
||||
$subQry .= '
|
||||
AND lehrtyp_kurzbz = \'lv\'
|
||||
AND lehrveranstaltung_template_id IS NULL';
|
||||
|
||||
if (isset($studienjahr_kurzbz) && is_string($studienjahr_kurzbz))
|
||||
{
|
||||
/* filter by studienjahr*/
|
||||
$params[] = $studienjahr_kurzbz;
|
||||
$subQry.= '
|
||||
AND stplsem.studiensemester_kurzbz IN
|
||||
(
|
||||
SELECT studiensemester_kurzbz
|
||||
FROM public.tbl_studiensemester
|
||||
WHERE studienjahr_kurzbz = ?
|
||||
)
|
||||
';
|
||||
}
|
||||
|
||||
if (isset($oes) && is_array($oes))
|
||||
{
|
||||
/* filter by STG organisationseinheit */
|
||||
$subQry.= ' AND stg.oe_kurzbz IN ?';
|
||||
$params[]= $oes;
|
||||
}
|
||||
|
||||
if (is_string($eventQuery))
|
||||
{
|
||||
/* filter by input string */
|
||||
$subQry.= ' AND lv.bezeichnung ILIKE ?';
|
||||
$params[] = '%' . $eventQuery . '%';
|
||||
}
|
||||
|
||||
// Final Query
|
||||
$qry = 'SELECT * FROM ('. $subQry. ') AS tmp
|
||||
ORDER BY lv_bezeichnung';
|
||||
|
||||
return $this->execQuery($qry, $params);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get Lehrveranstaltungen with its Stg, OE and OE-type.
|
||||
* @param null|string $studienjahr_kurzbz Filter by Studienjahr
|
||||
* @param null $stg_oes Filter oes by lv's stg oe
|
||||
* @param null|array $lv_ids Filter by Lehrveranstaltungen
|
||||
* @return array
|
||||
*/
|
||||
public function getNonQuellkursLvs($studienjahr_kurzbz = null, $stg_oes = null, $lv_ids = null)
|
||||
{
|
||||
// Subquery LVs
|
||||
$subQry = $this->_getQryLvsByStudienplan();
|
||||
|
||||
/* filter by lehrtyp_kurzbz 'lv' and that are not assigned to a Quellkurs */
|
||||
$subQry .= '
|
||||
AND lehrtyp_kurzbz = \'lv\'
|
||||
AND lehrveranstaltung_template_id IS NULL
|
||||
';
|
||||
|
||||
$params = [];
|
||||
|
||||
if (is_string($studienjahr_kurzbz))
|
||||
{
|
||||
/* filter by studienjahr */
|
||||
$params[] = $studienjahr_kurzbz;
|
||||
$subQry .= '
|
||||
AND stplsem.studiensemester_kurzbz IN
|
||||
(
|
||||
SELECT studiensemester_kurzbz
|
||||
FROM public.tbl_studiensemester
|
||||
WHERE studienjahr_kurzbz = ?
|
||||
)
|
||||
';
|
||||
}
|
||||
|
||||
if (isset($stg_oes) && is_array($stg_oes))
|
||||
{
|
||||
/* filter by lv studiengangs organisationseinheit */
|
||||
$subQry.= ' AND stg.oe_kurzbz IN ?';
|
||||
$params[]= $stg_oes;
|
||||
}
|
||||
|
||||
// Final Query
|
||||
$qry = 'SELECT * FROM ('. $subQry. ') AS tmp';
|
||||
|
||||
if (isset($lv_ids) && is_array($lv_ids))
|
||||
{
|
||||
/* filter by lv_ids */
|
||||
$implodedLvIds = "'". implode("', '", $lv_ids). "'";
|
||||
$qry.= ' WHERE lehrveranstaltung_id IN ('. $implodedLvIds. ')';
|
||||
}
|
||||
|
||||
$qry.= ' ORDER BY lv_bezeichnung';
|
||||
|
||||
return $this->execQuery($qry, $params);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get basic query to retrieve Lehrveranstaltungen according to the Orgforms and Ausbildungssemesters actual Studienplan.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
private function _getQryLvsByStudienplan()
|
||||
{
|
||||
$qry = '
|
||||
SELECT
|
||||
lv.oe_kurzbz AS lv_oe_kurzbz,
|
||||
CASE
|
||||
WHEN oe.organisationseinheittyp_kurzbz = \'Kompetenzfeld\' THEN (\'KF \' || oe.bezeichnung)
|
||||
WHEN oe.organisationseinheittyp_kurzbz = \'Department\' THEN (\'DEP \' || oe.bezeichnung)
|
||||
ELSE (oe.organisationseinheittyp_kurzbz || \' \' || oe.bezeichnung)
|
||||
END AS lv_oe_bezeichnung,
|
||||
stplsem.studiensemester_kurzbz,
|
||||
studienordnung_id,
|
||||
sto.studiengang_kz,
|
||||
stpl.studienplan_id,
|
||||
stpl.bezeichnung AS studienplan_bezeichnung,
|
||||
stplsem.semester,
|
||||
stpl.orgform_kurzbz,
|
||||
upper(stg.typ || stg.kurzbz) AS stg_typ_kurzbz,
|
||||
stg.bezeichnung AS stg_bezeichnung,
|
||||
stg.oe_kurzbz AS stg_oe_kurzbz,
|
||||
stgtyp.bezeichnung AS stg_typ_bezeichnung,
|
||||
lv.lehrveranstaltung_id,
|
||||
lv.semester,
|
||||
lv.bezeichnung AS lv_bezeichnung,
|
||||
lv.lehrtyp_kurzbz,
|
||||
lv.lehrveranstaltung_template_id,
|
||||
(
|
||||
-- comma seperated string of all lehreinheitgruppen
|
||||
SELECT string_agg(bezeichnung, \', \') AS lehreinheitgruppe_bezeichnung
|
||||
FROM(
|
||||
-- distinct bezeichnung, as may come multiple times from different lehreinheiten
|
||||
SELECT DISTINCT ON (studiengang_kz, bezeichnung) studiengang_kz, bezeichnung FROM
|
||||
(
|
||||
-- distinct lehreinheitgruppe, as may come multiple times from different lehrform
|
||||
SELECT DISTINCT ON (legr.lehreinheitgruppe_id) legr.studiengang_kz,
|
||||
-- get Spezialgruppe or Lehrverbandgruppe
|
||||
COALESCE(
|
||||
legr.gruppe_kurzbz,
|
||||
CONCAT( UPPER(stg1.typ), UPPER(stg1.kurzbz), \'-\', legr.semester, legr.verband, legr.gruppe )
|
||||
) as bezeichnung
|
||||
FROM lehre.tbl_lehreinheitgruppe legr
|
||||
JOIN lehre.tbl_lehreinheit le USING (lehreinheit_id)
|
||||
JOIN lehre.tbl_lehrveranstaltung lv1 USING (lehrveranstaltung_id)
|
||||
JOIN public.tbl_studiengang stg1 ON stg1.studiengang_kz = legr.studiengang_kz
|
||||
WHERE lv1.lehrveranstaltung_id = lv.lehrveranstaltung_id
|
||||
AND le.studiensemester_kurzbz = stplsem.studiensemester_kurzbz
|
||||
) AS lehreinheitgruppen
|
||||
GROUP BY studiengang_kz, bezeichnung
|
||||
ORDER BY studiengang_kz DESC
|
||||
) AS uniqueLehreinheitgruppen_bezeichnung
|
||||
) AS lehreinheitgruppen_bezeichnung
|
||||
FROM
|
||||
lehre.tbl_studienplan stpl
|
||||
JOIN lehre.tbl_studienordnung sto USING (studienordnung_id)
|
||||
JOIN lehre.tbl_studienplan_semester stplsem USING (studienplan_id)
|
||||
JOIN lehre.tbl_studienplan_lehrveranstaltung stpllv ON (stpllv.studienplan_id = stpl.studienplan_id AND stpllv.semester = stplsem.semester)
|
||||
JOIN lehre.tbl_lehrveranstaltung lv USING (lehrveranstaltung_id)
|
||||
JOIN public.tbl_organisationseinheit oe USING (oe_kurzbz)
|
||||
JOIN public.tbl_studiengang stg ON stg.studiengang_kz = sto.studiengang_kz
|
||||
JOIN public.tbl_studiengangstyp stgtyp ON stgtyp.typ = stg.typ
|
||||
WHERE 1 = 1
|
||||
';
|
||||
|
||||
return $qry;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get all Templates and its assigned Lehrveranstaltungen of given Studiensemester and Oes.
|
||||
* Lvs are queried via actual Studienordnung and Studienplan.
|
||||
|
||||
Reference in New Issue
Block a user