diff --git a/application/controllers/api/frontend/v1/stv/Students.php b/application/controllers/api/frontend/v1/stv/Students.php
index 2f16435f9..7b7bfc87d 100644
--- a/application/controllers/api/frontend/v1/stv/Students.php
+++ b/application/controllers/api/frontend/v1/stv/Students.php
@@ -187,10 +187,21 @@ class Students extends FHCAPI_Controller
$stdsemEsc = $studiensemester_kurzbz ? $this->PrestudentModel->escape($studiensemester_kurzbz) : 'NULL';
- $selectRT = 'SELECT 1 FROM public.tbl_rt_person JOIN public.tbl_reihungstest r ON (rt_id = reihungstest_id) WHERE person_id=p.person_id AND studienplan_id IN (SELECT studienplan_id FROM lehre.tbl_studienplan JOIN lehre.tbl_studienordnung o USING(studienordnung_id) WHERE o.studiengang_kz=tbl_prestudent.studiengang_kz) AND r.studiensemester_kurzbz=' . $stdsemEsc;
+ $selectRT = "
+ SELECT 1
+ FROM public.tbl_rt_person
+ JOIN public.tbl_reihungstest r ON (rt_id = reihungstest_id)
+ WHERE person_id=p.person_id
+ AND studienplan_id IN (
+ SELECT studienplan_id
+ FROM lehre.tbl_studienplan
+ JOIN lehre.tbl_studienordnung o USING(studienordnung_id)
+ WHERE o.studiengang_kz=tbl_prestudent.studiengang_kz
+ )
+ AND r.studiensemester_kurzbz=" . $stdsemEsc;
- $where = ['studiengang_kz' => $studiengang_kz];
+ $where = ['tbl_prestudent.studiengang_kz' => $studiengang_kz];
if ($orgform_kurzbz) {
$where['ps.orgform_kurzbz'] = $orgform_kurzbz;
@@ -312,64 +323,29 @@ class Students extends FHCAPI_Controller
break;
}
- $this->PrestudentModel->addJoin('public.tbl_studiengang stg', 'studiengang_kz', 'LEFT');
- $this->PrestudentModel->addJoin('public.tbl_person p', 'person_id');
- $this->PrestudentModel->addJoin('public.tbl_prestudentstatus ps', 'ps.status_kurzbz=public.get_rolle_prestudent(tbl_prestudent.prestudent_id, ' . $stdsemEsc . ') AND ps.prestudent_id=tbl_prestudent.prestudent_id AND ps.studiensemester_kurzbz=public.get_stdsem_prestudent(tbl_prestudent.prestudent_id, ' . $stdsemEsc . ') AND ps.ausbildungssemester=public.get_absem_prestudent(tbl_prestudent.prestudent_id, ' . $stdsemEsc . ')', 'LEFT');
+ /*
+ $this->PrestudentModel->addJoin('public.tbl_studiengang stg', 'studiengang_kz', 'LEFT');
+ $this->PrestudentModel->addJoin('public.tbl_person p', 'person_id');
+ $this->PrestudentModel->addJoin('public.tbl_prestudentstatus pls', '
+ pls.status_kurzbz=public.get_rolle_prestudent(tbl_prestudent.prestudent_id, NULL)
+ AND pls.prestudent_id=tbl_prestudent.prestudent_id
+ AND pls.studiensemester_kurzbz=public.get_stdsem_prestudent(tbl_prestudent.prestudent_id, NULL)
+ AND pls.ausbildungssemester=public.get_absem_prestudent(tbl_prestudent.prestudent_id, NULL)', 'LEFT');
+ $this->PrestudentModel->addJoin('lehre.tbl_studienplan sp', 'studienplan_id', 'LEFT');
+ $this->PrestudentModel->addJoin('public.tbl_prestudentstatus ps', '
+ ps.status_kurzbz=public.get_rolle_prestudent(tbl_prestudent.prestudent_id, ' . $stdsemEsc . ')
+ AND ps.prestudent_id=tbl_prestudent.prestudent_id
+ AND ps.studiensemester_kurzbz=public.get_stdsem_prestudent(tbl_prestudent.prestudent_id, ' . $stdsemEsc . ')
+ AND ps.ausbildungssemester=public.get_absem_prestudent(tbl_prestudent.prestudent_id, ' . $stdsemEsc . ')', 'LEFT');*/
+ $this->prepareQuery($studiensemester_kurzbz);
- $this->PrestudentModel->addSelect("'' AS uid");
- $this->PrestudentModel->addSelect('titelpre');
- $this->PrestudentModel->addSelect('nachname');
- $this->PrestudentModel->addSelect('vorname');
- $this->PrestudentModel->addSelect('wahlname');
- $this->PrestudentModel->addSelect('vornamen');
- $this->PrestudentModel->addSelect('titelpost');
- $this->PrestudentModel->addSelect('svnr');
- $this->PrestudentModel->addSelect('ersatzkennzeichen');
- $this->PrestudentModel->addSelect('gebdatum');
- $this->PrestudentModel->addSelect('geschlecht');
- $this->PrestudentModel->addSelect("CASE WHEN ps.status_kurzbz IN ('Aufgenommener', 'Bewerber', 'Wartender', 'interessent') THEN ps.ausbildungssemester::text ELSE ''::text END AS semester", false);
+ $this->PrestudentModel->addSelect("
+ CASE WHEN ps.status_kurzbz IN ('Aufgenommener', 'Bewerber', 'Wartender', 'interessent')
+ THEN ps.ausbildungssemester::text
+ ELSE ''::text END AS semester", false);
$this->PrestudentModel->addSelect("'' AS verband");
$this->PrestudentModel->addSelect("'' AS gruppe");
- $this->PrestudentModel->addSelect('UPPER(stg.typ || stg.kurzbz) AS studiengang');
- $this->PrestudentModel->addSelect('tbl_prestudent.studiengang_kz');
- $this->PrestudentModel->addSelect("'' AS matrikelnr");
- $this->PrestudentModel->addSelect('p.person_id');
- $this->PrestudentModel->addSelect('public.get_rolle_prestudent(tbl_prestudent.prestudent_id, NULL) as status');
- //status datum
- //status bestätigung
- //status datum iso
- //status bestätigung iso
- $this->PrestudentModel->addSelect(
- "(SELECT kontakt FROM public.tbl_kontakt WHERE kontakttyp='email' AND person_id=p.person_id AND zustellung LIMIT 1) AS email_privat",
- false
- );
- //email intern
- $this->PrestudentModel->addSelect('p.anmerkung AS anmerkungen');
- $this->PrestudentModel->addSelect('tbl_prestudent.anmerkung');
- //orgform
- $this->PrestudentModel->addSelect('aufmerksamdurch_kurzbz');
- $this->PrestudentModel->addSelect(
- "(SELECT rt_gesamtpunkte AS punkte FROM public.tbl_prestudent WHERE prestudent_id=ps.prestudent_id) AS punkte",
- false
- );
- $this->PrestudentModel->addSelect('tbl_prestudent.aufnahmegruppe_kurzbz');
- $this->PrestudentModel->addSelect('tbl_prestudent.dual');
- $this->PrestudentModel->addSelect('p.matr_nr');
- //studienplan
- $this->PrestudentModel->addSelect('tbl_prestudent.prestudent_id');
- $this->PrestudentModel->addSelect('tbl_prestudent.priorisierung');
- $this->PrestudentModel->addSelect('mentor');
- $this->PrestudentModel->addSelect('NULL AS bnaktiv', false);
- //gebdatum iso
-
- $this->PrestudentModel->addSelect('tbl_prestudent.reihungstest_id');
- $this->PrestudentModel->addSelect('tbl_prestudent.anmeldungreihungstest');
- $this->PrestudentModel->addSelect('tbl_prestudent.gsstudientyp_kurzbz');
- $this->PrestudentModel->addSelect('p.zugangscode');
- $this->PrestudentModel->addSelect('p.bpk');
-
- $this->PrestudentModel->addOrder('nachname');
- $this->PrestudentModel->addOrder('vorname');
+ $this->addSelectPrioRel();
$this->addFilter($studiensemester_kurzbz);
@@ -394,59 +370,30 @@ class Students extends FHCAPI_Controller
{
$studiensemester_kurzbz = $this->variablelib->getVar('semester_aktuell');
+
$this->load->model('crm/Prestudent_model', 'PrestudentModel');
- $this->PrestudentModel->addJoin('public.tbl_person p', 'person_id');
- $this->PrestudentModel->addJoin('public.tbl_student s', 'prestudent_id');
- $this->PrestudentModel->addJoin('public.tbl_benutzer b', 's.student_uid=b.uid');
- $this->PrestudentModel->addJoin(
- 'public.tbl_studentlehrverband v',
- 'v.student_uid=s.student_uid AND v.studiensemester_kurzbz=' . $this->PrestudentModel->escape($studiensemester_kurzbz)
- );
+ /*
+ $this->PrestudentModel->addJoin('public.tbl_studiengang stg', 'studiengang_kz', 'LEFT');
+ $this->PrestudentModel->addJoin('public.tbl_person p', 'person_id');
+ $this->PrestudentModel->addJoin('public.tbl_student s', 'prestudent_id');
+ $this->PrestudentModel->addJoin('public.tbl_prestudentstatus pls', '
+ pls.status_kurzbz=public.get_rolle_prestudent(tbl_prestudent.prestudent_id, NULL)
+ AND pls.prestudent_id=tbl_prestudent.prestudent_id
+ AND pls.studiensemester_kurzbz=public.get_stdsem_prestudent(tbl_prestudent.prestudent_id, NULL)
+ AND pls.ausbildungssemester=public.get_absem_prestudent(tbl_prestudent.prestudent_id, NULL)', 'LEFT');
+ $this->PrestudentModel->addJoin('lehre.tbl_studienplan sp', 'studienplan_id', 'LEFT');
+ $this->PrestudentModel->addJoin('public.tbl_benutzer b', 's.student_uid=b.uid');
+ $this->PrestudentModel->addJoin(
+ 'public.tbl_studentlehrverband v',
+ 'v.student_uid=s.student_uid AND v.studiensemester_kurzbz=' . $this->PrestudentModel->escape($studiensemester_kurzbz)
+ );*/
+ $this->prepareQuery($studiensemester_kurzbz, '');
- $this->PrestudentModel->addSelect('p.person_id');
- $this->PrestudentModel->addSelect('s.prestudent_id');
- $this->PrestudentModel->addSelect('b.uid');
- $this->PrestudentModel->addSelect('titelpre');
- $this->PrestudentModel->addSelect('titelpost');
- $this->PrestudentModel->addSelect('vorname');
- $this->PrestudentModel->addSelect('wahlname');
- $this->PrestudentModel->addSelect('vornamen');
- $this->PrestudentModel->addSelect('geschlecht');
- $this->PrestudentModel->addSelect('nachname');
- $this->PrestudentModel->addSelect('gebdatum');
- $this->PrestudentModel->addSelect('tbl_prestudent.anmerkung');
- $this->PrestudentModel->addSelect('ersatzkennzeichen');
- $this->PrestudentModel->addSelect('svnr');
- $this->PrestudentModel->addSelect('s.matrikelnr');
- $this->PrestudentModel->addSelect('p.anmerkung AS anmerkungen');
$this->PrestudentModel->addSelect('v.semester');
$this->PrestudentModel->addSelect('v.verband');
$this->PrestudentModel->addSelect('v.gruppe');
- $this->PrestudentModel->addSelect('tbl_prestudent.studiengang_kz');
- $this->PrestudentModel->addSelect('aufmerksamdurch_kurzbz');
- $this->PrestudentModel->addSelect('mentor');
- $this->PrestudentModel->addSelect('b.aktiv AS bnaktiv');
- $this->PrestudentModel->addSelect(
- "(SELECT kontakt FROM public.tbl_kontakt WHERE kontakttyp='email' AND person_id=p.person_id AND zustellung LIMIT 1) AS email_privat",
- false
- );
- $this->PrestudentModel->addSelect(
- "(SELECT rt_gesamtpunkte AS punkte FROM public.tbl_prestudent WHERE prestudent_id=s.prestudent_id) AS punkte",
- false
- );
- $this->PrestudentModel->addSelect('tbl_prestudent.dual');
- $this->PrestudentModel->addSelect('tbl_prestudent.reihungstest_id');
- $this->PrestudentModel->addSelect('tbl_prestudent.anmeldungreihungstest');
- $this->PrestudentModel->addSelect('p.matr_nr');
- $this->PrestudentModel->addSelect('tbl_prestudent.gsstudientyp_kurzbz');
- $this->PrestudentModel->addSelect('tbl_prestudent.aufnahmegruppe_kurzbz');
- $this->PrestudentModel->addSelect('tbl_prestudent.priorisierung');
- $this->PrestudentModel->addSelect('p.zugangscode');
- $this->PrestudentModel->addSelect('p.bpk');
-
- $this->PrestudentModel->addOrder('nachname');
- $this->PrestudentModel->addOrder('vorname');
+ $this->PrestudentModel->addSelect("'' AS priorisierung_relativ");
$where = [];
@@ -503,57 +450,28 @@ class Students extends FHCAPI_Controller
$this->load->model('crm/Prestudent_model', 'PrestudentModel');
- $this->PrestudentModel->addJoin('public.tbl_studiengang stg', 'studiengang_kz', 'LEFT');
- $this->PrestudentModel->addJoin('public.tbl_person p', 'person_id');
- $this->PrestudentModel->addJoin('public.tbl_student s', 'prestudent_id', 'LEFT');
- $this->PrestudentModel->addJoin('public.tbl_benutzer b', 's.student_uid=b.uid', 'LEFT');
- $this->PrestudentModel->addJoin(
- 'public.tbl_studentlehrverband v',
- 'v.student_uid=s.student_uid AND v.studiensemester_kurzbz=' . $this->PrestudentModel->escape($studiensemester_kurzbz),
- 'LEFT'
- );
+ /*
+ $this->PrestudentModel->addJoin('public.tbl_studiengang stg', 'studiengang_kz', 'LEFT');
+ $this->PrestudentModel->addJoin('public.tbl_person p', 'person_id');
+ $this->PrestudentModel->addJoin('public.tbl_student s', 'prestudent_id', 'LEFT');
+ $this->PrestudentModel->addJoin('public.tbl_prestudentstatus pls', '
+ pls.status_kurzbz=public.get_rolle_prestudent(tbl_prestudent.prestudent_id, NULL)
+ AND pls.prestudent_id=tbl_prestudent.prestudent_id
+ AND pls.studiensemester_kurzbz=public.get_stdsem_prestudent(tbl_prestudent.prestudent_id, NULL)
+ AND pls.ausbildungssemester=public.get_absem_prestudent(tbl_prestudent.prestudent_id, NULL)', 'LEFT');
+ $this->PrestudentModel->addJoin('lehre.tbl_studienplan sp', 'studienplan_id', 'LEFT');
+ $this->PrestudentModel->addJoin('public.tbl_benutzer b', 's.student_uid=b.uid', 'LEFT');
+ $this->PrestudentModel->addJoin(
+ 'public.tbl_studentlehrverband v',
+ 'v.student_uid=s.student_uid AND v.studiensemester_kurzbz=' . $this->PrestudentModel->escape($studiensemester_kurzbz),
+ 'LEFT'
+ );*/
+ $this->prepareQuery($studiensemester_kurzbz);
- $this->PrestudentModel->addSelect('p.person_id');
- $this->PrestudentModel->addSelect('tbl_prestudent.prestudent_id');
- $this->PrestudentModel->addSelect('b.uid');
- $this->PrestudentModel->addSelect('titelpre');
- $this->PrestudentModel->addSelect('titelpost');
- $this->PrestudentModel->addSelect('vorname');
- $this->PrestudentModel->addSelect('wahlname');
- $this->PrestudentModel->addSelect('vornamen');
- $this->PrestudentModel->addSelect('geschlecht');
- $this->PrestudentModel->addSelect('nachname');
- $this->PrestudentModel->addSelect('gebdatum');
- $this->PrestudentModel->addSelect('tbl_prestudent.anmerkung');
- $this->PrestudentModel->addSelect('ersatzkennzeichen');
- $this->PrestudentModel->addSelect('svnr');
- $this->PrestudentModel->addSelect('s.matrikelnr');
- $this->PrestudentModel->addSelect('p.anmerkung AS anmerkungen');
- $this->PrestudentModel->addSelect("COALESCE(v.semester::text, CASE WHEN public.get_rolle_prestudent(prestudent_id, NULL) IN ('Aufgenommener', 'Bewerber', 'Wartender', 'interessent') THEN public.get_absem_prestudent(prestudent_id, NULL)::text ELSE ''::text END) AS semester", false);
+ $this->PrestudentModel->addSelect("COALESCE(v.semester::text, CASE WHEN public.get_rolle_prestudent(tbl_prestudent.prestudent_id, NULL) IN ('Aufgenommener', 'Bewerber', 'Wartender', 'interessent') THEN public.get_absem_prestudent(tbl_prestudent.prestudent_id, NULL)::text ELSE ''::text END) AS semester", false);
$this->PrestudentModel->addSelect('v.verband');
$this->PrestudentModel->addSelect('v.gruppe');
- $this->PrestudentModel->addSelect('UPPER(stg.typ || stg.kurzbz) AS studiengang');
- $this->PrestudentModel->addSelect('tbl_prestudent.studiengang_kz');
- $this->PrestudentModel->addSelect('aufmerksamdurch_kurzbz');
- $this->PrestudentModel->addSelect('mentor');
- $this->PrestudentModel->addSelect('b.aktiv AS bnaktiv');
- $this->PrestudentModel->addSelect(
- "(SELECT kontakt FROM public.tbl_kontakt WHERE kontakttyp='email' AND person_id=p.person_id AND zustellung LIMIT 1) AS email_privat",
- false
- );
- $this->PrestudentModel->addSelect(
- "(SELECT rt_gesamtpunkte AS punkte FROM public.tbl_prestudent WHERE prestudent_id=s.prestudent_id) AS punkte",
- false
- );
- $this->PrestudentModel->addSelect('tbl_prestudent.dual');
- $this->PrestudentModel->addSelect('tbl_prestudent.reihungstest_id');
- $this->PrestudentModel->addSelect('tbl_prestudent.anmeldungreihungstest');
- $this->PrestudentModel->addSelect('p.matr_nr');
- $this->PrestudentModel->addSelect('tbl_prestudent.gsstudientyp_kurzbz');
- $this->PrestudentModel->addSelect('tbl_prestudent.aufnahmegruppe_kurzbz');
- $this->PrestudentModel->addSelect('tbl_prestudent.priorisierung');
- $this->PrestudentModel->addSelect('p.zugangscode');
- $this->PrestudentModel->addSelect('p.bpk');
+ $this->addSelectPrioRel();
$this->addFilter($studiensemester_kurzbz);
@@ -577,55 +495,28 @@ class Students extends FHCAPI_Controller
$this->load->model('crm/Prestudent_model', 'PrestudentModel');
- $this->PrestudentModel->addJoin('public.tbl_person p', 'person_id');
- $this->PrestudentModel->addJoin('public.tbl_student s', 'prestudent_id');
- $this->PrestudentModel->addJoin('public.tbl_benutzer b', 's.student_uid=b.uid');
- $this->PrestudentModel->addJoin(
- 'public.tbl_studentlehrverband v',
- 'v.student_uid=s.student_uid AND v.studiensemester_kurzbz=' . $this->PrestudentModel->escape($studiensemester_kurzbz),
- 'LEFT'
- );
+ /*
+ $this->PrestudentModel->addJoin('public.tbl_studiengang stg', 'studiengang_kz', 'LEFT');
+ $this->PrestudentModel->addJoin('public.tbl_person p', 'person_id');
+ $this->PrestudentModel->addJoin('public.tbl_student s', 'prestudent_id');
+ $this->PrestudentModel->addJoin('public.tbl_prestudentstatus pls', '
+ pls.status_kurzbz=public.get_rolle_prestudent(tbl_prestudent.prestudent_id, NULL)
+ AND pls.prestudent_id=tbl_prestudent.prestudent_id
+ AND pls.studiensemester_kurzbz=public.get_stdsem_prestudent(tbl_prestudent.prestudent_id, NULL)
+ AND pls.ausbildungssemester=public.get_absem_prestudent(tbl_prestudent.prestudent_id, NULL)', 'LEFT');
+ $this->PrestudentModel->addJoin('lehre.tbl_studienplan sp', 'studienplan_id', 'LEFT');
+ $this->PrestudentModel->addJoin('public.tbl_benutzer b', 's.student_uid=b.uid');
+ $this->PrestudentModel->addJoin(
+ 'public.tbl_studentlehrverband v',
+ 'v.student_uid=s.student_uid AND v.studiensemester_kurzbz=' . $this->PrestudentModel->escape($studiensemester_kurzbz),
+ 'LEFT'
+ );*/
+ $this->prepareQuery($studiensemester_kurzbz);
- $this->PrestudentModel->addSelect('p.person_id');
- $this->PrestudentModel->addSelect('s.prestudent_id');
- $this->PrestudentModel->addSelect('b.uid');
- $this->PrestudentModel->addSelect('titelpre');
- $this->PrestudentModel->addSelect('titelpost');
- $this->PrestudentModel->addSelect('vorname');
- $this->PrestudentModel->addSelect('wahlname');
- $this->PrestudentModel->addSelect('vornamen');
- $this->PrestudentModel->addSelect('geschlecht');
- $this->PrestudentModel->addSelect('nachname');
- $this->PrestudentModel->addSelect('gebdatum');
- $this->PrestudentModel->addSelect('tbl_prestudent.anmerkung');
- $this->PrestudentModel->addSelect('ersatzkennzeichen');
- $this->PrestudentModel->addSelect('svnr');
- $this->PrestudentModel->addSelect('s.matrikelnr');
- $this->PrestudentModel->addSelect('p.anmerkung AS anmerkungen');
$this->PrestudentModel->addSelect('v.semester');
$this->PrestudentModel->addSelect('v.verband');
$this->PrestudentModel->addSelect('v.gruppe');
- $this->PrestudentModel->addSelect('tbl_prestudent.studiengang_kz');
- $this->PrestudentModel->addSelect('aufmerksamdurch_kurzbz');
- $this->PrestudentModel->addSelect('mentor');
- $this->PrestudentModel->addSelect('b.aktiv AS bnaktiv');
- $this->PrestudentModel->addSelect(
- "(SELECT kontakt FROM public.tbl_kontakt WHERE kontakttyp='email' AND person_id=p.person_id AND zustellung LIMIT 1) AS email_privat",
- false
- );
- $this->PrestudentModel->addSelect(
- "(SELECT rt_gesamtpunkte AS punkte FROM public.tbl_prestudent WHERE prestudent_id=s.prestudent_id) AS punkte",
- false
- );
- $this->PrestudentModel->addSelect('tbl_prestudent.dual');
- $this->PrestudentModel->addSelect('tbl_prestudent.reihungstest_id');
- $this->PrestudentModel->addSelect('tbl_prestudent.anmeldungreihungstest');
- $this->PrestudentModel->addSelect('p.matr_nr');
- $this->PrestudentModel->addSelect('tbl_prestudent.gsstudientyp_kurzbz');
- $this->PrestudentModel->addSelect('tbl_prestudent.aufnahmegruppe_kurzbz');
- $this->PrestudentModel->addSelect('tbl_prestudent.priorisierung');
- $this->PrestudentModel->addSelect('p.zugangscode');
- $this->PrestudentModel->addSelect('p.bpk');
+ $this->addSelectPrioRel();
$this->addFilter($studiensemester_kurzbz);
@@ -649,55 +540,21 @@ class Students extends FHCAPI_Controller
$this->load->model('crm/Prestudent_model', 'PrestudentModel');
- $this->PrestudentModel->addJoin('public.tbl_person p', 'person_id');
- $this->PrestudentModel->addJoin('public.tbl_student s', 'prestudent_id');
- $this->PrestudentModel->addJoin('public.tbl_benutzer b', 's.student_uid=b.uid');
- $this->PrestudentModel->addJoin(
- 'public.tbl_studentlehrverband v',
- 'v.student_uid=s.student_uid AND v.studiensemester_kurzbz=' . $this->PrestudentModel->escape($studiensemester_kurzbz),
- 'LEFT'
- );
+ /*
+ $this->PrestudentModel->addJoin('public.tbl_person p', 'person_id');
+ $this->PrestudentModel->addJoin('public.tbl_student s', 'prestudent_id');
+ $this->PrestudentModel->addJoin('public.tbl_benutzer b', 's.student_uid=b.uid');
+ $this->PrestudentModel->addJoin(
+ 'public.tbl_studentlehrverband v',
+ 'v.student_uid=s.student_uid AND v.studiensemester_kurzbz=' . $this->PrestudentModel->escape($studiensemester_kurzbz),
+ 'LEFT'
+ );*/
+ $this->prepareQuery($studiensemester_kurzbz);
- $this->PrestudentModel->addSelect('p.person_id');
- $this->PrestudentModel->addSelect('s.prestudent_id');
- $this->PrestudentModel->addSelect('b.uid');
- $this->PrestudentModel->addSelect('titelpre');
- $this->PrestudentModel->addSelect('titelpost');
- $this->PrestudentModel->addSelect('vorname');
- $this->PrestudentModel->addSelect('wahlname');
- $this->PrestudentModel->addSelect('vornamen');
- $this->PrestudentModel->addSelect('geschlecht');
- $this->PrestudentModel->addSelect('nachname');
- $this->PrestudentModel->addSelect('gebdatum');
- $this->PrestudentModel->addSelect('tbl_prestudent.anmerkung');
- $this->PrestudentModel->addSelect('ersatzkennzeichen');
- $this->PrestudentModel->addSelect('svnr');
- $this->PrestudentModel->addSelect('s.matrikelnr');
- $this->PrestudentModel->addSelect('p.anmerkung AS anmerkungen');
$this->PrestudentModel->addSelect('v.semester');
$this->PrestudentModel->addSelect('v.verband');
$this->PrestudentModel->addSelect('v.gruppe');
- $this->PrestudentModel->addSelect('tbl_prestudent.studiengang_kz');
- $this->PrestudentModel->addSelect('aufmerksamdurch_kurzbz');
- $this->PrestudentModel->addSelect('mentor');
- $this->PrestudentModel->addSelect('b.aktiv AS bnaktiv');
- $this->PrestudentModel->addSelect(
- "(SELECT kontakt FROM public.tbl_kontakt WHERE kontakttyp='email' AND person_id=p.person_id AND zustellung LIMIT 1) AS email_privat",
- false
- );
- $this->PrestudentModel->addSelect(
- "(SELECT rt_gesamtpunkte AS punkte FROM public.tbl_prestudent WHERE prestudent_id=s.prestudent_id) AS punkte",
- false
- );
- $this->PrestudentModel->addSelect('tbl_prestudent.dual');
- $this->PrestudentModel->addSelect('tbl_prestudent.reihungstest_id');
- $this->PrestudentModel->addSelect('tbl_prestudent.anmeldungreihungstest');
- $this->PrestudentModel->addSelect('p.matr_nr');
- $this->PrestudentModel->addSelect('tbl_prestudent.gsstudientyp_kurzbz');
- $this->PrestudentModel->addSelect('tbl_prestudent.aufnahmegruppe_kurzbz');
- $this->PrestudentModel->addSelect('tbl_prestudent.priorisierung');
- $this->PrestudentModel->addSelect('p.zugangscode');
- $this->PrestudentModel->addSelect('p.bpk');
+ $this->addSelectPrioRel();
$this->addFilter($studiensemester_kurzbz);
@@ -710,6 +567,126 @@ class Students extends FHCAPI_Controller
$this->terminateWithSuccess($data);
}
+ /**
+ * @param string|null $studiensemester_kurzbz
+ * @param string $type
+ *
+ * @return void
+ */
+ protected function prepareQuery($studiensemester_kurzbz, $type = 'LEFT')
+ {
+ $stdsemEsc = $studiensemester_kurzbz ? $this->PrestudentModel->escape($studiensemester_kurzbz) : 'NULL';
+
+
+ $this->PrestudentModel->addJoin('public.tbl_studiengang stg', 'studiengang_kz', 'LEFT');
+ $this->PrestudentModel->addJoin('public.tbl_person p', 'person_id');
+ $this->PrestudentModel->addJoin('public.tbl_student s', 'prestudent_id', $type);
+ $this->PrestudentModel->addJoin('public.tbl_prestudentstatus pls', '
+ pls.status_kurzbz=public.get_rolle_prestudent(tbl_prestudent.prestudent_id, NULL)
+ AND pls.prestudent_id=tbl_prestudent.prestudent_id
+ AND pls.studiensemester_kurzbz=public.get_stdsem_prestudent(tbl_prestudent.prestudent_id, NULL)
+ AND pls.ausbildungssemester=public.get_absem_prestudent(tbl_prestudent.prestudent_id, NULL)', 'LEFT');
+ $this->PrestudentModel->addJoin('lehre.tbl_studienplan sp', 'studienplan_id', 'LEFT');
+ $this->PrestudentModel->addJoin('public.tbl_benutzer b', 's.student_uid=b.uid', 'LEFT');
+ $this->PrestudentModel->addJoin(
+ 'public.tbl_studentlehrverband v',
+ 'v.student_uid=s.student_uid AND v.studiensemester_kurzbz' . ($studiensemester_kurzbz ? '=' . $stdsemEsc : ' IS NULL'),
+ $type
+ );
+ $this->PrestudentModel->addJoin('public.tbl_prestudentstatus ps', '
+ ps.status_kurzbz=public.get_rolle_prestudent(tbl_prestudent.prestudent_id, ' . $stdsemEsc . ')
+ AND ps.prestudent_id=tbl_prestudent.prestudent_id
+ AND ps.studiensemester_kurzbz=public.get_stdsem_prestudent(tbl_prestudent.prestudent_id, ' . $stdsemEsc . ')
+ AND ps.ausbildungssemester=public.get_absem_prestudent(tbl_prestudent.prestudent_id, ' . $stdsemEsc . ')', 'LEFT');
+
+
+ $this->PrestudentModel->addSelect("b.uid");
+ $this->PrestudentModel->addSelect('titelpre');
+ $this->PrestudentModel->addSelect('nachname');
+ $this->PrestudentModel->addSelect('vorname');
+ $this->PrestudentModel->addSelect('wahlname');
+ $this->PrestudentModel->addSelect('vornamen');
+ $this->PrestudentModel->addSelect('titelpost');
+ $this->PrestudentModel->addSelect('svnr');
+ $this->PrestudentModel->addSelect('ersatzkennzeichen');
+ $this->PrestudentModel->addSelect('gebdatum');
+ $this->PrestudentModel->addSelect('geschlecht');
+
+ // semester
+ // verband
+ // gruppe
+
+ $this->PrestudentModel->addSelect('UPPER(stg.typ || stg.kurzbz) AS studiengang');
+ $this->PrestudentModel->addSelect('tbl_prestudent.studiengang_kz');
+ $this->PrestudentModel->addSelect("s.matrikelnr");
+ $this->PrestudentModel->addSelect('p.person_id');
+ $this->PrestudentModel->addSelect('pls.status_kurzbz AS status');
+ $this->PrestudentModel->addSelect('pls.datum AS status_datum');
+ $this->PrestudentModel->addSelect('pls.bestaetigtam AS status_bestaetigung');
+ $this->PrestudentModel->addSelect(
+ "(SELECT kontakt FROM public.tbl_kontakt WHERE kontakttyp='email' AND person_id=p.person_id AND zustellung LIMIT 1) AS mail_privat",
+ false
+ );
+ $this->PrestudentModel->addSelect("
+ CASE WHEN b.uid IS NOT NULL AND b.uid<>''
+ THEN b.uid || " . $this->PrestudentModel->escape(DOMAIN) . "
+ ELSE '' END AS mail_intern", false);
+ $this->PrestudentModel->addSelect('p.anmerkung AS anmerkungen');
+ $this->PrestudentModel->addSelect('tbl_prestudent.anmerkung');
+ $this->PrestudentModel->addSelect('pls.orgform_kurzbz');
+ $this->PrestudentModel->addSelect('aufmerksamdurch_kurzbz');
+ $this->PrestudentModel->addSelect(
+ "(SELECT rt_gesamtpunkte AS punkte FROM public.tbl_prestudent WHERE prestudent_id=ps.prestudent_id) AS punkte",
+ false
+ );
+ $this->PrestudentModel->addSelect('tbl_prestudent.aufnahmegruppe_kurzbz');
+ $this->PrestudentModel->addSelect('tbl_prestudent.dual');
+ $this->PrestudentModel->addSelect('p.matr_nr');
+ $this->PrestudentModel->addSelect('sp.bezeichnung AS studienplan_bezeichnung');
+ $this->PrestudentModel->addSelect('tbl_prestudent.prestudent_id');
+
+ // priorisierung_relativ
+
+ $this->PrestudentModel->addSelect('mentor');
+ $this->PrestudentModel->addSelect('b.aktiv AS bnaktiv');
+
+ /*$this->PrestudentModel->addSelect('tbl_prestudent.reihungstest_id');
+ $this->PrestudentModel->addSelect('tbl_prestudent.anmeldungreihungstest');
+ $this->PrestudentModel->addSelect('tbl_prestudent.gsstudientyp_kurzbz');
+ $this->PrestudentModel->addSelect('tbl_prestudent.priorisierung');
+ $this->PrestudentModel->addSelect('p.zugangscode');
+ $this->PrestudentModel->addSelect('p.bpk');*/
+
+ $this->PrestudentModel->addOrder('nachname');
+ $this->PrestudentModel->addOrder('vorname');
+ }
+
+ /**
+ * @return void
+ */
+ protected function addSelectPrioRel()
+ {
+ $this->PrestudentModel->addSelect("(
+ SELECT count(*)
+ FROM (
+ SELECT *, public.get_rolle_prestudent(tbl_prestudent.prestudent_id, NULL) AS laststatus
+ FROM PUBLIC.tbl_prestudent pss
+ JOIN PUBLIC.tbl_prestudentstatus USING (prestudent_id)
+ WHERE person_id = p.person_id
+ AND studiensemester_kurzbz = (
+ SELECT studiensemester_kurzbz
+ FROM PUBLIC.tbl_prestudentstatus
+ WHERE prestudent_id = tbl_prestudent.prestudent_id
+ AND status_kurzbz = 'Interessent'
+ LIMIT 1
+ )
+ AND status_kurzbz = 'Interessent'
+ ) prest
+ WHERE laststatus NOT IN ('Abbrecher', 'Abgewiesener', 'Absolvent')
+ AND priorisierung <= tbl_prestudent.priorisierung
+ ) || ' (' || tbl_prestudent.priorisierung || ')' AS priorisierung_relativ", false);
+ }
+
/**
* Adds additional filters to the query
*
diff --git a/public/js/components/Stv/Studentenverwaltung/List.js b/public/js/components/Stv/Studentenverwaltung/List.js
index 243f9c76f..d9965e365 100644
--- a/public/js/components/Stv/Studentenverwaltung/List.js
+++ b/public/js/components/Stv/Studentenverwaltung/List.js
@@ -20,6 +20,15 @@ export default {
'update:selected'
],
data() {
+ function dateFormatter(cell)
+ {
+ let val = cell.getValue();
+ if (!val)
+ return ' ';
+ let date = new Date(val);
+ return date.toLocaleDateString();
+ }
+
return {
tabulatorOptions: {
columns:[
@@ -32,36 +41,40 @@ export default {
{title:"TitelPost", field:"titelpost"},
{title:"SVNR", field:"svnr"},
{title:"Ersatzkennzeichen", field:"ersatzkennzeichen"},
- {title:"Geburtsdatum", field:"gebdatum"},
+ {title:"Geburtsdatum", field:"gebdatum", formatter:dateFormatter},
{title:"Geschlecht", field:"geschlecht"},
{title:"Sem.", field:"semester"},
{title:"Verb.", field:"verband"},
{title:"Grp.", field:"gruppe"},
{title:"Studiengang", field:"studiengang"},
{title:"Studiengang_kz", field:"studiengang_kz", visible:false},
- {title:"Personenkennzeichen", field:"matrikelnummer"},
+ {title:"Personenkennzeichen", field:"matrikelnr"},
{title:"PersonID", field:"person_id"},
{title:"Status", field:"status"},
- {title:"Status Datum", field:"status_datum", visible:false},
- {title:"Status Bestaetigung", field:"status_bestaetigung", visible:false},
- {title:"Status Datum ISO", field:"status_datum_iso", visible:false},
- {title:"Status Bestaetigung ISO", field:"status_bestaetigung_iso", visible:false},
+ {title:"Status Datum", field:"status_datum", visible:false, formatter:dateFormatter},
+ {title:"Status Bestaetigung", field:"status_bestaetigung", visible:false, formatter:dateFormatter},
{title:"EMail (Privat)", field:"mail_privat", visible:false},
{title:"EMail (Intern)", field:"mail_intern", visible:false},
{title:"Anmerkungen", field:"anmerkungen", visible:false},
- {title:"AnmerkungPre", field:"anmerkungpre", visible:false},
- {title:"OrgForm", field:"orgform"},
- {title:"Aufmerksamdurch", field:"orgform", visible:false},
+ {title:"AnmerkungPre", field:"anmerkung", visible:false},
+ {title:"OrgForm", field:"orgform_kurzbz"},
+ {title:"Aufmerksamdurch", field:"aufmerksamdurch_kurzbz", visible:false},
{title:"Gesamtpunkte", field:"punkte", visible:false},
{title:"Aufnahmegruppe", field:"aufnahmegruppe_kurzbz", visible:false},
- {title:"Dual", field:"dual_bezeichnung", visible:false},
+ {title:"Dual", field:"dual", visible:false, formatter:'tickCross', formatterParams: {
+ tickElement: '',
+ crossElement: ''
+ }},
{title:"Matrikelnummer", field:"matr_nr", visible:false},
{title:"Studienplan", field:"studienplan_bezeichnung"},
{title:"PreStudentInnenID", field:"prestudent_id"},
- {title:"Priorität", field:"priorisierung_realtiv"},
+ {title:"Priorität", field:"priorisierung_relativ"},
{title:"Mentor", field:"mentor", visible:false},
- {title:"Aktiv", field:"bnaktiv", visible:false},
- {title:"GeburtsdatumISO", field:"geburtsdatum_iso", visible:false},
+ {title:"Aktiv", field:"bnaktiv", visible:false, formatter:'tickCross', formatterParams: {
+ allowEmpty:true,
+ tickElement: '',
+ crossElement: ''
+ }},
],
rowFormatter(row) {
if (row.getData().bnaktiv === false) {