mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-23 09:52:22 +00:00
Merge branch 'master' into feature-30660/FHC4_StudierendenGUI_Prototyp
This commit is contained in:
@@ -511,10 +511,10 @@ class Studiengang_model extends DB_Model
|
||||
public function getStudiengangTyp($studiengang_kz, $typ = null)
|
||||
{
|
||||
$query = "SELECT DISTINCT(sgt.*)
|
||||
FROM tbl_studiengangstyp sgt JOIN tbl_studiengang sg on sgt.typ = sg.typ
|
||||
FROM tbl_studiengangstyp sgt JOIN tbl_studiengang sg on sgt.typ = sg.typ
|
||||
WHERE studiengang_kz IN ?";
|
||||
|
||||
$params[] = $studiengang_kz;
|
||||
$params = [$studiengang_kz];
|
||||
|
||||
if (!is_null($typ))
|
||||
{
|
||||
@@ -524,4 +524,80 @@ class Studiengang_model extends DB_Model
|
||||
|
||||
return $this->execQuery($query, $params);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array $studiengang_kzs
|
||||
* @param array $not_antrag_typ (optional) If the prestudent has an antrag with one of the specified types it will be excluded from the result
|
||||
* @param array $prestudent_stati (optional)
|
||||
*
|
||||
* @return stdClass
|
||||
*/
|
||||
public function getAktivePrestudenten($studiengang_kzs, $not_antrag_typ = null, $query = null)
|
||||
{
|
||||
$this->load->config('studierendenantrag');
|
||||
|
||||
$sql = "SELECT index FROM public.tbl_sprache WHERE sprache='" . getUserLanguage() . "' LIMIT 1";
|
||||
|
||||
$this->addSelect($this->dbTable . '.studiengang_kz');
|
||||
$this->addSelect($this->dbTable . '.bezeichnung');
|
||||
$this->addSelect('o.orgform_kurzbz');
|
||||
$this->addSelect('o.bezeichnung_mehrsprachig[(' . $sql . ')] AS orgform', false);
|
||||
$this->addSelect('ps.ausbildungssemester AS semester');
|
||||
$this->addSelect('ps.studiensemester_kurzbz');
|
||||
$this->addSelect('p.prestudent_id');
|
||||
$this->addSelect('pers.vorname');
|
||||
$this->addSelect('pers.nachname');
|
||||
$this->addSelect("CONCAT(UPPER(pers.nachname), ' ', pers.vorname, ' (', " . $this->dbTable . ".bezeichnung, ')') AS name");
|
||||
|
||||
$this->addJoin('public.tbl_prestudent p', 'studiengang_kz');
|
||||
$this->addJoin(
|
||||
'public.tbl_prestudentstatus ps',
|
||||
'ps.prestudent_id=p.prestudent_id
|
||||
AND ps.studiensemester_kurzbz=get_stdsem_prestudent(p.prestudent_id, NULL)
|
||||
AND ps.ausbildungssemester=get_absem_prestudent(p.prestudent_id, NULL)
|
||||
AND ps.status_kurzbz=get_rolle_prestudent(p.prestudent_id, NULL)'
|
||||
);
|
||||
$this->addJoin('lehre.tbl_studienplan plan', 'studienplan_id');
|
||||
$this->addJoin('bis.tbl_orgform o', 'COALESCE(plan.orgform_kurzbz, ps.orgform_kurzbz, ' . $this->dbTable . '.orgform_kurzbz)=o.orgform_kurzbz');
|
||||
$this->addJoin('public.tbl_person pers', 'person_id');
|
||||
$this->addJoin('public.tbl_student stud', 'p.prestudent_id=stud.prestudent_id', 'LEFT');
|
||||
|
||||
$this->db->where_in($this->dbTable . '.studiengang_kz', $studiengang_kzs);
|
||||
$this->db->where_in('ps.status_kurzbz', $this->config->item('antrag_prestudentstatus_whitelist'));
|
||||
$this->db->where($this->dbTable . ".aktiv", true);
|
||||
|
||||
if ($not_antrag_typ !== null && is_array($not_antrag_typ)) {
|
||||
foreach($not_antrag_typ as $k => $v)
|
||||
$not_antrag_typ[$k] = $this->db->escape($v);
|
||||
$this->addJoin(
|
||||
'campus.tbl_studierendenantrag a',
|
||||
'a.prestudent_id=p.prestudent_id and a.typ in ('.
|
||||
implode(',', $not_antrag_typ).
|
||||
") AND campus.get_status_studierendenantrag (a.studierendenantrag_id)<>'" .
|
||||
Studierendenantragstatus_model::STATUS_CANCELLED . "'",
|
||||
'LEFT'
|
||||
);
|
||||
$this->db->where('a.typ IS NULL');
|
||||
}
|
||||
|
||||
if ($query) {
|
||||
$query = explode(' ', $query);
|
||||
$this->db->group_start();
|
||||
foreach ($query as $q) {
|
||||
$this->db->group_start();
|
||||
$this->db->where('pers.vorname ILIKE', "%" . $q . "%");
|
||||
$this->db->or_where('pers.nachname ILIKE', "%" . $q . "%");
|
||||
$this->db->or_where('stud.student_uid ILIKE', "%" . $q . "%");
|
||||
$this->db->or_where($this->dbTable . '.bezeichnung ILIKE', "%" . $q . "%");
|
||||
if (is_numeric($q))
|
||||
$this->db->or_where('p.prestudent_id', $q);
|
||||
$this->db->group_end();
|
||||
}
|
||||
$this->db->group_end();
|
||||
}
|
||||
|
||||
$this->addOrder('name');
|
||||
|
||||
return $this->load();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -45,7 +45,7 @@ class Studienplan_model extends DB_Model
|
||||
$whereArray["tbl_studienplan.sprache"] = $sprache;
|
||||
}
|
||||
|
||||
return $this->StudienplanModel->loadWhere($whereArray);
|
||||
return $this->loadWhere($whereArray);
|
||||
}
|
||||
|
||||
public function getStudienplanLehrveranstaltung($studienplan_id, $semester)
|
||||
@@ -53,6 +53,38 @@ class Studienplan_model extends DB_Model
|
||||
$this->addJoin('lehre.tbl_studienplan_lehrveranstaltung', 'studienplan_id');
|
||||
$this->addJoin('lehre.tbl_lehrveranstaltung', 'lehrveranstaltung_id');
|
||||
$this->addOrder('tbl_lehrveranstaltung.sort');
|
||||
|
||||
return $this->loadWhere(array(
|
||||
'studienplan_id' => $studienplan_id,
|
||||
'tbl_studienplan_lehrveranstaltung.semester' => $semester
|
||||
));
|
||||
}
|
||||
|
||||
public function getStudienplanLehrveranstaltungForPrestudent($studienplan_id, $semester, $prestudent_id, $note_stsem)
|
||||
{
|
||||
$lang = 'SELECT index FROM public.tbl_sprache WHERE sprache=' . $this->escape(getUserLanguage());
|
||||
$sql = 'SELECT student_uid FROM public.tbl_student WHERE prestudent_id=' . $this->escape($prestudent_id);
|
||||
|
||||
$this->addSelect($this->dbTable . '.*');
|
||||
$this->addSelect('lv.*');
|
||||
$this->addSelect('COALESCE(n.bezeichnung_mehrsprachig[(' . $lang . ')], NULL) AS note');
|
||||
$this->addSelect('n.positiv');
|
||||
$this->addSelect('lehre.tbl_studienplan_lehrveranstaltung.studienplan_lehrveranstaltung_id');
|
||||
$this->addSelect('lehre.tbl_studienplan_lehrveranstaltung.sort plan_sort');
|
||||
$this->addSelect('lehre.tbl_studienplan_lehrveranstaltung.studienplan_lehrveranstaltung_id_parent');
|
||||
|
||||
$this->addJoin('lehre.tbl_studienplan_lehrveranstaltung', 'studienplan_id');
|
||||
$this->addJoin('lehre.tbl_lehrveranstaltung lv', 'lehrveranstaltung_id');
|
||||
$this->addJoin(
|
||||
'lehre.tbl_zeugnisnote zn',
|
||||
'zn.lehrveranstaltung_id=lv.lehrveranstaltung_id AND zn.student_uid=(' . $sql . ') AND zn.studiensemester_kurzbz=' . $this->escape($note_stsem),
|
||||
'LEFT'
|
||||
);
|
||||
$this->addJoin('lehre.tbl_note n', 'n.note=zn.note', 'LEFT');
|
||||
|
||||
$this->addOrder('lehre.tbl_studienplan_lehrveranstaltung.sort');
|
||||
$this->addOrder('lv.sort');
|
||||
|
||||
return $this->loadWhere(array(
|
||||
'studienplan_id' => $studienplan_id,
|
||||
'tbl_studienplan_lehrveranstaltung.semester' => $semester
|
||||
|
||||
@@ -204,4 +204,14 @@ class Studiensemester_model extends DB_Model
|
||||
|
||||
return $this->execQuery($query, array($studiensemester_kurzbz));
|
||||
}
|
||||
|
||||
public function getAktAndFutureSemester()
|
||||
{
|
||||
$query = 'SELECT studiensemester_kurzbz
|
||||
FROM public.tbl_studiensemester
|
||||
WHERE start >= NOW() OR (start <= NOW() AND ende >= NOW())
|
||||
ORDER BY start';
|
||||
|
||||
return $this->execQuery($query);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user