Files
FHC-Core/application/models/organisation/Studiensemester_model.php
T
alex fbb3f1694b - added function for generating unique lv-group strings
- added functions for getting students and lecturers by lv
- added function for getting Studiengaenge By Studiensemester
- added function for getting Ausbildungssemester by Studiensemester and Studiengang
2018-08-22 17:36:53 +02:00

103 lines
2.2 KiB
PHP

<?php
class Studiensemester_model extends DB_Model
{
/**
* Constructor
*/
public function __construct()
{
parent::__construct();
$this->dbTable = 'public.tbl_studiensemester';
$this->pk = 'studiensemester_kurzbz';
$this->hasSequence = false;
}
/**
* getLastOrAktSemester
*/
public function getLastOrAktSemester($days = 60)
{
if (!is_numeric($days))
{
$days = 60;
}
$query = 'SELECT studiensemester_kurzbz
FROM public.tbl_studiensemester
WHERE start < NOW() - \'' . $days . ' DAYS\'::INTERVAL
ORDER BY start DESC
LIMIT 1';
return $this->execQuery($query);
}
/**
* getNextFrom
*/
public function getNextFrom($studiensemester_kurzbz)
{
$query = 'SELECT studiensemester_kurzbz,
start,
ende
FROM public.tbl_studiensemester
WHERE start > (
SELECT ende
FROM public.tbl_studiensemester
WHERE studiensemester_kurzbz = ?
)
ORDER BY start
LIMIT 1';
return $this->execQuery($query, array($studiensemester_kurzbz));
}
/**
* getNearest
*/
public function getNearest($semester = '')
{
$query = 'SELECT studiensemester_kurzbz,
start,
ende
FROM public.vw_studiensemester';
if (is_numeric($semester))
{
if ($semester % 2 == 0)
{
$ss = 'SS';
}
else
{
$ss = 'WS';
}
$query .= ' WHERE SUBSTRING(studiensemester_kurzbz FROM 1 FOR 2) = \'' . $ss . '\'';
}
$query .= ' ORDER BY delta LIMIT 1';
return $this->execQuery($query);
}
/**
* Gets valid Ausbildungssemester of a Studiensemester with a Studiengang
* @param $studiensemester_kurzbz
* @param $studiengang_kz
* @return array|null
*/
public function getAusbildungssemesterByStudiensemesterAndStudiengang($studiensemester_kurzbz, $studiengang_kz)
{
$query = "SELECT DISTINCT semester
FROM lehre.tbl_studienplan
JOIN lehre.tbl_studienordnung USING(studienordnung_id)
JOIN lehre.tbl_studienplan_semester USING(studienplan_id)
WHERE tbl_studienplan_semester.studiensemester_kurzbz = ?
AND tbl_studienordnung.studiengang_kz = ?
ORDER BY semester";
return $this->execQuery($query, array($studiensemester_kurzbz, $studiengang_kz));
}
}