Merge branch 'master' into feature-40953/LV-Template_Uebersichtsseite

# Conflicts:
#	application/models/organisation/Studiensemester_model.php
#	system/phrasesupdate.php
This commit is contained in:
Cris
2024-11-27 17:44:45 +01:00
356 changed files with 36741 additions and 5615 deletions
@@ -189,6 +189,19 @@ class Organisationseinheit_model extends DB_Model
return $this->loadWhere($condition);
}
/**
* @param string $oe_kurzbz
*
* @return stdClass
*/
public function getWithType($oe_kurzbz)
{
$this->addSelect($this->dbTable . '.*, t.bezeichnung AS organisationseinheittyp');
$this->addJoin('public.tbl_organisationseinheittyp t', 'organisationseinheittyp_kurzbz');
return $this->load($oe_kurzbz);
}
/**
* Get OEs by eventQuery string. Use with autocomplete event queries.
* @param $eventQuery String
@@ -457,7 +457,7 @@ class Studiengang_model extends DB_Model
*/
public function getLeitung($studiengang_kz = null)
{
$this->addSelect('uid, studiengang_kz, oe_kurzbz, vorname, nachname, email');
$this->addSelect('uid, studiengang_kz, oe_kurzbz, vorname, nachname, email, titelpre, titelpost, alias');
$this->addJoin('public.tbl_benutzerfunktion', 'oe_kurzbz');
$this->addJoin('public.tbl_benutzer', 'uid');
$this->addJoin('public.tbl_person', 'person_id');
@@ -493,6 +493,53 @@ class Studiengang_model extends DB_Model
return $this->loadWhere($condition);
}
/**
* Get Studiengangsleitung/en of Studiengang/Studiengaenge. With Details
*
* @param null $studiengang_kz Numeric or Array
* @return array
*/
public function getLeitungDetailed($studiengang_kz = null)
{
$this->addSelect('studiengang_kz, email, f.oe_kurzbz, b.uid, b.alias, b.aktiv, p.vorname, p.nachname, p.titelpre, p.titelpost, m.telefonklappe, k.kontakt, o.planbezeichnung');
$this->addJoin('public.tbl_benutzerfunktion f', 'oe_kurzbz');
$this->addJoin('public.tbl_benutzer b', 'uid');
$this->addJoin('public.tbl_person p', 'person_id');
$this->addJoin('public.tbl_mitarbeiter m', 'mitarbeiter_uid=uid', 'LEFT');
$this->addJoin('public.tbl_kontakt k', 'k.standort_id=m.standort_id AND kontakttyp=\'telefon\'', 'LEFT');
$this->addJoin('public.tbl_ort o', 'ort_kurzbz', 'LEFT');
if (!is_numeric($studiengang_kz) && !is_array($studiengang_kz))
{
return error('Studiengangskennzahl ungültig');
}
if (is_null($studiengang_kz))
{
$condition = '
funktion_kurzbz = \'Leitung\'
AND ( datum_von <= NOW() OR datum_von IS NULL )
AND ( datum_bis >= NOW() OR datum_bis IS NULL )
';
}
elseif (is_numeric($studiengang_kz) || is_array($studiengang_kz))
{
if (is_array($studiengang_kz))
{
$studiengang_kz = array_map(array($this,'escape'), $studiengang_kz);
$studiengang_kz = implode(', ', $studiengang_kz);
}
$condition = '
funktion_kurzbz = \'Leitung\'
AND ( datum_von <= NOW() OR datum_von IS NULL )
AND ( datum_bis >= NOW() OR datum_bis IS NULL )
AND studiengang_kz IN (' . $studiengang_kz. ')';
;
}
return $this->loadWhere($condition);
}
public function getStudiengaengeWithOrgForm($typ, $semester)
{
$query = "SELECT DISTINCT (UPPER(so.studiengangkurzbzlang || ':' || sp.orgform_kurzbz)) AS Studiengang
@@ -205,6 +205,25 @@ class Studiensemester_model extends DB_Model
return $this->execQuery($query, array($studiensemester_kurzbz));
}
/**
* @param string $student_uid
*
* @return StdClass
*/
public function getWhereStudentHasLvs($student_uid)
{
$this->addDistinct();
$this->addSelect($this->dbTable . '.*');
// TODO(chris): Potentielle Anpassung "Eine UID"
$this->addJoin('campus.vw_student_lehrveranstaltung v', 'studiensemester_kurzbz');
$this->db->where("v.lehreverzeichnis<>''");
$this->addOrder($this->dbTable . '.start');
return $this->loadWhere(['uid' => $student_uid, 'v.lehre' => true]);
}
public function getAktAndFutureSemester()
{
$query = 'SELECT studiensemester_kurzbz
@@ -289,4 +308,19 @@ class Studiensemester_model extends DB_Model
return success($studienjahrObj);
}
/**
* Holt Start und Ende des Studiensemester_kurzbz
* @param studiensemester_kurzbz
* @return stdClass
*/
public function getStartEndeFromStudiensemester($studiensemester_kurzbz)
{
return $this->execReadOnlyQuery("
SELECT
start, ende
FROM public.tbl_studiensemester
WHERE studiensemester_kurzbz = ?",[$studiensemester_kurzbz]);
}
}