use postgres function

This commit is contained in:
chfhtw
2025-10-02 15:43:24 +02:00
parent b2ccc42aa2
commit ba1401f98d
10 changed files with 27 additions and 27 deletions
+1 -11
View File
@@ -328,17 +328,7 @@ $config['prestudent'] = [
WHERE status_kurzbz = public.get_rolle_prestudent(ps.prestudent_id, NULL)
LIMIT 1
) AS status",
"COALESCE(
(
SELECT COALESCE(plan.orgform_kurzbz, pss.orgform_kurzbz)
FROM public.tbl_prestudentstatus pss
LEFT JOIN lehre.tbl_studienplan plan USING (studienplan_id)
WHERE pss.prestudent_id=ps.prestudent_id
ORDER BY pss.datum DESC, pss.insertamum DESC, pss.ext_id DESC
LIMIT 1
),
sg.orgform_kurzbz
) AS orgform",
"public.get_orgform_prestudent(ps.prestudent_id, NULL) AS orgform",
"b.aktiv",
"array_position(" . $prestudent_sort_array . ", public.get_rolle_prestudent(ps.prestudent_id, NULL)) AS sort"
],
@@ -330,7 +330,14 @@ class Prestudentstatus_model extends DB_Model
$this->addJoin('public.tbl_studiengang', 'studiengang_kz', 'LEFT');
$this->addJoin('public.tbl_status', 'tbl_status.status_kurzbz = tbl_prestudentstatus.status_kurzbz');
$this->addJoin('public.tbl_status_grund', 'statusgrund_id', 'LEFT');
$this->addJoin('bis.tbl_orgform', 'COALESCE(tbl_studienplan.orgform_kurzbz, ' . $this->dbTable . '.orgform_kurzbz, tbl_studiengang.orgform_kurzbz) = tbl_orgform.orgform_kurzbz', 'LEFT');
$this->addJoin(
'bis.tbl_orgform',
'public.get_orgform_prestudent(
' . $this->dbTable . '.prestudent_id,
' . $this->dbTable . '.studiensemester_kurzbz
) = tbl_orgform.orgform_kurzbz',
'LEFT'
);
$this->db->where('tbl_status.status_kurzbz = tbl_prestudentstatus.status_kurzbz');
$where = array('prestudent_id' => $prestudent_id);
@@ -377,7 +384,10 @@ class Prestudentstatus_model extends DB_Model
$this->addJoin('public.tbl_person pers', 'person_id');
$this->addJoin('public.tbl_studiengang g', 'p.studiengang_kz=g.studiengang_kz');
$this->addJoin('lehre.tbl_studienplan plan', 'studienplan_id', 'LEFT');
$this->addJoin('bis.tbl_orgform o', 'COALESCE(plan.orgform_kurzbz, ' . $this->dbTable . '.orgform_kurzbz, g.orgform_kurzbz)=o.orgform_kurzbz');
$this->addJoin(
'bis.tbl_orgform o',
'public.get_orgform_prestudent(' . $this->dbTable . '.prestudent_id, ' . $this->dbTable . '.studiensemester_kurzbz) = o.orgform_kurzbz'
);
$this->addOrder($this->dbTable . '.datum', 'DESC');
$this->addOrder($this->dbTable . '.insertamum', 'DESC');
@@ -124,7 +124,7 @@ class Pruefung_model extends DB_Model
'LEFT'
);
$this->addJoin('lehre.tbl_studienplan plan', 'studienplan_id', 'LEFT');
$this->addJoin('bis.tbl_orgform o', 'COALESCE(plan.orgform_kurzbz, pss.orgform_kurzbz, g.orgform_kurzbz)=o.orgform_kurzbz');
$this->addJoin('bis.tbl_orgform o', 'public.get_orgform_prestudent(ps.prestudent_id, le.studiensemester_kurzbz)=o.orgform_kurzbz');
$this->db->join('campus.tbl_studierendenantrag a', 'ps.prestudent_id=a.prestudent_id and a.typ = ?', 'LEFT', false);
$this->db->where("n.positiv", false);
@@ -221,7 +221,7 @@ class Pruefung_model extends DB_Model
'LEFT'
);
$this->addJoin('lehre.tbl_studienplan plan', 'studienplan_id', 'LEFT');
$this->addJoin('bis.tbl_orgform o', 'COALESCE(plan.orgform_kurzbz, pss.orgform_kurzbz, g.orgform_kurzbz)=o.orgform_kurzbz');
$this->addJoin('bis.tbl_orgform o', 'public.get_orgform_prestudent(ps.prestudent_id, le.studiensemester_kurzbz)=o.orgform_kurzbz');
$this->addJoin(
'campus.tbl_studierendenantrag a',
'ps.prestudent_id=a.prestudent_id and a.typ=' . $this->escape(Studierendenantrag_model::TYP_WIEDERHOLUNG),
@@ -65,7 +65,7 @@ class Studierendenantrag_model extends DB_Model
'LEFT'
);
$this->addJoin('lehre.tbl_studienplan plan', 'studienplan_id', 'LEFT');
$this->addJoin('bis.tbl_orgform of', 'of.orgform_kurzbz=COALESCE(plan.orgform_kurzbz, ps.orgform_kurzbz, stg.orgform_kurzbz)');
$this->addJoin('bis.tbl_orgform of', 'of.orgform_kurzbz=public.get_orgform_prestudent(p.prestudent_id, ss.studiensemester_kurzbz)');
$this->addJoin(
'campus.tbl_studierendenantrag_status as s',
'campus.get_status_id_studierendenantrag('. $this->dbTable .'.studierendenantrag_id) = studierendenantrag_status_id'
@@ -197,7 +197,7 @@ class Studierendenantrag_model extends DB_Model
$this->addSelect('stg.bezeichnung');
$this->addSelect('s.ausbildungssemester');
$this->addSelect('plan.sprache');
$this->addSelect('COALESCE(plan.orgform_kurzbz, s.orgform_kurzbz, stg.orgform_kurzbz) AS orgform_kurzbz');
$this->addSelect('public.get_orgform_prestudent(s.prestudent_id, s.studiensemester_kurzbz) AS orgform_kurzbz');
$this->addJoin(
'public.tbl_prestudentstatus s',
@@ -288,7 +288,7 @@ class Studierendenantrag_model extends DB_Model
'LEFT'
);
$this->addJoin('lehre.tbl_studienplan plan', 'studienplan_id', 'LEFT');
$this->addJoin('bis.tbl_orgform of', 'of.orgform_kurzbz=COALESCE(plan.orgform_kurzbz, ps.orgform_kurzbz, stg.orgform_kurzbz)');
$this->addJoin('bis.tbl_orgform of', 'of.orgform_kurzbz=public.get_orgform_prestudent(p.prestudent_id, ps.studiensemester_kurzbz)');
$this->addJoin(
'campus.tbl_studierendenantrag_status s',
'campus.get_status_id_studierendenantrag(' . $this->dbTable . '.studierendenantrag_id)=s.studierendenantrag_status_id',
@@ -605,7 +605,7 @@ class Studiengang_model extends DB_Model
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('bis.tbl_orgform o', 'public.get_orgform_prestudent(p.prestudent_id, NULL)=o.orgform_kurzbz');
$this->addJoin('public.tbl_person pers', 'person_id');
$this->addJoin('public.tbl_student stud', 'p.prestudent_id=stud.prestudent_id', 'LEFT');
+4 -4
View File
@@ -1861,7 +1861,7 @@ class prestudent extends person
tbl_prestudentstatus.studiensemester_kurzbz,
tbl_prestudent.studiengang_kz,
tbl_prestudentstatus.ausbildungssemester,
COALESCE(tbl_prestudentstatus.orgform_kurzbz, tbl_studiengang.orgform_kurzbz) as orgform_kurzbz
public.get_orgform_prestudent(tbl_prestudentstatus.prestudent_id, tbl_prestudentstatus.studiensemester_kurzbz) as orgform_kurzbz
FROM
public.tbl_prestudent
JOIN public.tbl_prestudentstatus USING(prestudent_id)
@@ -1924,7 +1924,7 @@ class prestudent extends person
tbl_prestudentstatus.studiensemester_kurzbz,
tbl_prestudent.studiengang_kz,
tbl_prestudentstatus.ausbildungssemester,
COALESCE(tbl_prestudentstatus.orgform_kurzbz, tbl_studiengang.orgform_kurzbz) as orgform_kurzbz
public.get_orgform_prestudent(tbl_prestudentstatus.prestudent_id, tbl_prestudentstatus.studiensemester_kurzbz) as orgform_kurzbz
FROM
public.tbl_prestudent
JOIN public.tbl_prestudentstatus USING(prestudent_id)
@@ -1981,7 +1981,7 @@ class prestudent extends person
tbl_prestudentstatus.studiensemester_kurzbz,
tbl_prestudent.studiengang_kz,
tbl_prestudentstatus.ausbildungssemester,
COALESCE(tbl_prestudentstatus.orgform_kurzbz, tbl_studiengang.orgform_kurzbz) as orgform_kurzbz
public.get_orgform_prestudent(tbl_prestudentstatus.prestudent_id, tbl_prestudentstatus.studiensemester_kurzbz) as orgform_kurzbz
FROM
public.tbl_prestudent
JOIN public.tbl_prestudentstatus USING(prestudent_id)
@@ -2038,7 +2038,7 @@ class prestudent extends person
tbl_prestudentstatus.studiensemester_kurzbz,
tbl_prestudent.studiengang_kz,
tbl_prestudentstatus.ausbildungssemester,
COALESCE(tbl_prestudentstatus.orgform_kurzbz, tbl_studiengang.orgform_kurzbz) as orgform_kurzbz
public.get_orgform_prestudent(tbl_prestudentstatus.prestudent_id, tbl_prestudentstatus.studiensemester_kurzbz) as orgform_kurzbz
FROM
public.tbl_prestudent
JOIN public.tbl_prestudentstatus USING(prestudent_id)
+1 -1
View File
@@ -46,7 +46,7 @@ $query = "
JOIN public.tbl_studiensemester USING (studiensemester_kurzbz)
LEFT JOIN public.tbl_prestudentstatus pss ON (pss.prestudent_id = a.prestudent_id AND pss.studiensemester_kurzbz=a.studiensemester_kurzbz AND pss.status_kurzbz=get_rolle_prestudent(a.prestudent_id, a.studiensemester_kurzbz))
LEFT JOIN lehre.tbl_studienplan plan USING (studienplan_id)
JOIN bis.tbl_orgform ON (tbl_orgform.orgform_kurzbz = COALESCE(plan.orgform_kurzbz, pss.orgform_kurzbz, stg.orgform_kurzbz))" . $where;
JOIN bis.tbl_orgform ON (tbl_orgform.orgform_kurzbz = public.get_orgform_prestudent(a.prestudent_id, a.studiensemester_kurzbz))" . $where;
if (!$db->db_query($query) || !$db->db_num_rows())
+1 -1
View File
@@ -46,7 +46,7 @@ $query = "
JOIN public.tbl_studiensemester USING (studiensemester_kurzbz)
LEFT JOIN public.tbl_prestudentstatus pss ON (pss.prestudent_id = a.prestudent_id AND pss.studiensemester_kurzbz=a.studiensemester_kurzbz AND pss.status_kurzbz=get_rolle_prestudent(a.prestudent_id, a.studiensemester_kurzbz))
LEFT JOIN lehre.tbl_studienplan plan USING (studienplan_id)
JOIN bis.tbl_orgform ON (tbl_orgform.orgform_kurzbz = COALESCE(plan.orgform_kurzbz, pss.orgform_kurzbz, stg.orgform_kurzbz))" . $where;
JOIN bis.tbl_orgform ON (tbl_orgform.orgform_kurzbz = public.get_orgform_prestudent(a.prestudent_id, a.studiensemester_kurzbz))" . $where;
if (!$db->db_query($query) || !$db->db_num_rows())
+1 -1
View File
@@ -47,7 +47,7 @@ $query = "
JOIN public.tbl_studiensemester USING (studiensemester_kurzbz)
LEFT JOIN public.tbl_prestudentstatus pss ON (pss.prestudent_id = a.prestudent_id AND pss.studiensemester_kurzbz=a.studiensemester_kurzbz AND pss.status_kurzbz=get_rolle_prestudent(a.prestudent_id, a.studiensemester_kurzbz))
LEFT JOIN lehre.tbl_studienplan plan USING (studienplan_id)
JOIN bis.tbl_orgform ON (tbl_orgform.orgform_kurzbz = COALESCE(plan.orgform_kurzbz, pss.orgform_kurzbz, stg.orgform_kurzbz))" . $where;
JOIN bis.tbl_orgform ON (tbl_orgform.orgform_kurzbz = public.get_orgform_prestudent(a.prestudent_id, a.studiensemester_kurzbz))" . $where;
if (!$db->db_query($query) || !$db->db_num_rows())
+1 -1
View File
@@ -97,7 +97,7 @@ $query = "
JOIN public.tbl_studiensemester USING (studiensemester_kurzbz)
LEFT JOIN public.tbl_prestudentstatus pss ON (pss.prestudent_id = a.prestudent_id AND pss.studiensemester_kurzbz=a.studiensemester_kurzbz AND pss.status_kurzbz=get_rolle_prestudent(a.prestudent_id, a.studiensemester_kurzbz))
LEFT JOIN lehre.tbl_studienplan plan USING (studienplan_id)
JOIN bis.tbl_orgform ON (tbl_orgform.orgform_kurzbz = COALESCE(plan.orgform_kurzbz, pss.orgform_kurzbz, stg.orgform_kurzbz))" . $where;
JOIN bis.tbl_orgform ON (tbl_orgform.orgform_kurzbz = public.get_orgform_prestudent(a.prestudent_id, a.studiensemester_kurzbz))" . $where;
if (!$db->db_query($query) || !$db->db_num_rows())