From d72c5811675deb0e1fafbe17c2ce58901bc97b1e Mon Sep 17 00:00:00 2001 From: Paolo Date: Wed, 21 Nov 2018 17:43:21 +0100 Subject: [PATCH] SQL statements improved in application/views/system/infocenter/infocenterData.php and application/views/system/infocenter/infocenterFreigegebenData.php --- .../system/infocenter/infocenterData.php | 343 +++++++++--------- .../infocenter/infocenterFreigegebenData.php | 199 +++++----- 2 files changed, 264 insertions(+), 278 deletions(-) diff --git a/application/views/system/infocenter/infocenterData.php b/application/views/system/infocenter/infocenterData.php index f1276bb36..424bac3f9 100755 --- a/application/views/system/infocenter/infocenterData.php +++ b/application/views/system/infocenter/infocenterData.php @@ -1,200 +1,209 @@ ' - SELECT + WITH currentOrNextStudiensemester AS ( + SELECT ss.studiensemester_kurzbz + FROM public.tbl_studiensemester ss + WHERE ss.ende > NOW() + ORDER BY ss.ende + LIMIT 3 + ) + + SELECT p.person_id AS "PersonId", p.vorname AS "Vorname", p.nachname AS "Nachname", p.gebdatum AS "Gebdatum", p.staatsbuergerschaft AS "Nation", + pl.zeitpunkt AS "LockDate", + pl.lockuser AS "LockUser", + pd.parkdate AS "ParkDate", ( - SELECT zeitpunkt - FROM system.tbl_log - WHERE taetigkeit_kurzbz IN(\'bewerbung\',\'kommunikation\') - AND logdata->>\'name\' NOT IN (\'Login with code\', \'New application\', \'Interessent rejected\') - AND person_id = p.person_id - ORDER BY zeitpunkt DESC - LIMIT 1 + SELECT l.zeitpunkt + FROM system.tbl_log l + WHERE l.taetigkeit_kurzbz IN ('.$TAETIGKEIT_KURZBZ.') + AND l.logdata->>\'name\' NOT IN ('.$LOGDATA_NAME.') + AND l.person_id = p.person_id + ORDER BY l.zeitpunkt DESC + LIMIT 1 ) AS "LastAction", ( - SELECT insertvon - FROM system.tbl_log - WHERE taetigkeit_kurzbz IN(\'bewerbung\',\'kommunikation\') - AND logdata->>\'name\' NOT IN (\'Login with code\', \'New application\', \'Interessent rejected\') - AND person_id = p.person_id - ORDER BY zeitpunkt DESC - LIMIT 1 + SELECT l.insertvon + FROM system.tbl_log l + WHERE l.taetigkeit_kurzbz IN ('.$TAETIGKEIT_KURZBZ.') + AND l.logdata->>\'name\' NOT IN ('.$LOGDATA_NAME.') + AND l.person_id = p.person_id + ORDER BY l.zeitpunkt DESC + LIMIT 1 ) AS "User/Operator", ( - SELECT - pss.studiensemester_kurzbz - FROM - public.tbl_prestudentstatus pss - INNER JOIN public.tbl_prestudent ps USING(prestudent_id) - JOIN public.tbl_studiengang USING(studiengang_kz) - WHERE pss.status_kurzbz = \'Interessent\' - AND pss.bestaetigtam IS NULL - AND ps.person_id = p.person_id - AND tbl_studiengang.typ in(\'b\') - AND studiensemester_kurzbz IN ( - SELECT studiensemester_kurzbz - FROM public.tbl_studiensemester - WHERE ende >= NOW() - ) - ORDER BY pss.datum DESC, pss.insertamum DESC, pss.ext_id DESC - LIMIT 1 + SELECT pss.studiensemester_kurzbz + FROM public.tbl_prestudentstatus pss + JOIN public.tbl_prestudent ps USING(prestudent_id) + JOIN public.tbl_studiengang sg USING(studiengang_kz) + WHERE pss.status_kurzbz = '.$INTERESSENT_STATUS.' + AND pss.bestaetigtam IS NULL + AND ps.person_id = p.person_id + AND sg.typ IN ('.$STUDIENGANG_TYP.') + AND pss.studiensemester_kurzbz IN (SELECT cnss.studiensemester_kurzbz FROM currentOrNextStudiensemester cnss) + ORDER BY pss.datum DESC, pss.insertamum DESC, pss.ext_id DESC + LIMIT 1 ) AS "Studiensemester", ( SELECT pss.bewerbung_abgeschicktamum - FROM - public.tbl_prestudentstatus pss - INNER JOIN public.tbl_prestudent ps USING(prestudent_id) - JOIN public.tbl_studiengang USING(studiengang_kz) - WHERE pss.status_kurzbz = \'Interessent\' - AND (pss.bewerbung_abgeschicktamum IS NOT NULL AND pss.bewerbung_abgeschicktamum>=\''.$NOTBEFORE.'\') - AND pss.bestaetigtam IS NULL - AND ps.person_id = p.person_id - AND tbl_studiengang.typ in(\'b\') - AND studiensemester_kurzbz IN ( - SELECT studiensemester_kurzbz - FROM public.tbl_studiensemester - WHERE ende >= NOW() + FROM public.tbl_prestudentstatus pss + JOIN public.tbl_prestudent ps USING(prestudent_id) + JOIN public.tbl_studiengang sg USING(studiengang_kz) + WHERE pss.status_kurzbz = '.$INTERESSENT_STATUS.' + AND pss.bewerbung_abgeschicktamum IS NOT NULL + AND pss.bestaetigtam IS NULL + AND ps.person_id = p.person_id + AND sg.typ IN ('.$STUDIENGANG_TYP.') + AND pss.studiensemester_kurzbz IN (SELECT cnss.studiensemester_kurzbz FROM currentOrNextStudiensemester cnss) + AND NOT EXISTS ( + SELECT 1 + FROM tbl_prestudentstatus spss + WHERE spss.prestudent_id = pss.prestudent_id + AND spss.status_kurzbz = '.$REJECTED_STATUS.' + AND spss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende > NOW()) ) - AND not exists (select 1 from tbl_prestudentstatus psss where psss.prestudent_id = pss.prestudent_id and psss.status_kurzbz = \'Abgewiesener\' and psss.studiensemester_kurzbz = \'WS2018\') - ORDER BY pss.datum DESC, pss.insertamum DESC, pss.ext_id DESC - LIMIT 1 + ORDER BY pss.datum DESC, pss.insertamum DESC, pss.ext_id DESC + LIMIT 1 ) AS "SendDate", ( - SELECT count(*) - FROM - public.tbl_prestudentstatus pss - INNER JOIN public.tbl_prestudent ps USING(prestudent_id) - JOIN public.tbl_studiengang USING(studiengang_kz) - WHERE pss.status_kurzbz = \'Interessent\' - AND (pss.bewerbung_abgeschicktamum IS NOT NULL AND pss.bewerbung_abgeschicktamum>=\''.$NOTBEFORE.'\') - AND pss.bestaetigtam IS NULL - AND ps.person_id = p.person_id - AND tbl_studiengang.typ in(\'b\') - AND studiensemester_kurzbz IN ( - SELECT studiensemester_kurzbz - FROM public.tbl_studiensemester - WHERE ende >= NOW() + SELECT COUNT(*) + FROM public.tbl_prestudentstatus pss + JOIN public.tbl_prestudent ps USING(prestudent_id) + JOIN public.tbl_studiengang sg USING(studiengang_kz) + WHERE pss.status_kurzbz = '.$INTERESSENT_STATUS.' + AND pss.bewerbung_abgeschicktamum IS NOT NULL + AND pss.bestaetigtam IS NULL + AND ps.person_id = p.person_id + AND sg.typ IN ('.$STUDIENGANG_TYP.') + AND pss.studiensemester_kurzbz IN (SELECT cnss.studiensemester_kurzbz FROM currentOrNextStudiensemester cnss) + AND NOT EXISTS ( + SELECT 1 + FROM tbl_prestudentstatus spss + WHERE spss.prestudent_id = pss.prestudent_id + AND spss.status_kurzbz = '.$REJECTED_STATUS.' + AND spss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende > NOW()) ) - AND not exists (select 1 from tbl_prestudentstatus psss where psss.prestudent_id = pss.prestudent_id and psss.status_kurzbz = \'Abgewiesener\' and psss.studiensemester_kurzbz = \'WS2018\') - LIMIT 1 + LIMIT 1 ) AS "AnzahlAbgeschickt", - array_to_string( - ( - SELECT array_agg(distinct UPPER(tbl_studiengang.typ || tbl_studiengang.kurzbz) || \':\' || tbl_studienplan.orgform_kurzbz) - FROM - public.tbl_prestudentstatus pss - INNER JOIN public.tbl_prestudent ps USING(prestudent_id) - JOIN public.tbl_studiengang USING(studiengang_kz) - JOIN lehre.tbl_studienplan using (studienplan_id) - WHERE pss.status_kurzbz = \'Interessent\' - AND (pss.bewerbung_abgeschicktamum IS NOT NULL AND pss.bewerbung_abgeschicktamum>=\''.$NOTBEFORE.'\') - AND pss.bestaetigtam IS NULL - AND ps.person_id = p.person_id - AND tbl_studiengang.typ in(\'b\') - AND studiensemester_kurzbz IN ( - SELECT studiensemester_kurzbz - FROM public.tbl_studiensemester - WHERE ende >= NOW() + ( + SELECT ARRAY_TO_STRING(ARRAY_AGG(DISTINCT UPPER(sg.typ || sg.kurzbz) || \':\' || sp.orgform_kurzbz), \', \') + FROM public.tbl_prestudentstatus pss + JOIN public.tbl_prestudent ps USING(prestudent_id) + JOIN public.tbl_studiengang sg USING(studiengang_kz) + JOIN lehre.tbl_studienplan sp USING(studienplan_id) + WHERE pss.status_kurzbz = '.$INTERESSENT_STATUS.' + AND pss.bewerbung_abgeschicktamum IS NOT NULL + AND pss.bestaetigtam IS NULL + AND ps.person_id = p.person_id + AND sg.typ IN ('.$STUDIENGANG_TYP.') + AND pss.studiensemester_kurzbz IN (SELECT cnss.studiensemester_kurzbz FROM currentOrNextStudiensemester cnss) + AND NOT EXISTS ( + SELECT 1 + FROM tbl_prestudentstatus spss + WHERE spss.prestudent_id = pss.prestudent_id + AND spss.status_kurzbz = '.$REJECTED_STATUS.' + AND spss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende > NOW()) ) - AND not exists (select 1 from tbl_prestudentstatus psss where psss.prestudent_id = pss.prestudent_id and psss.status_kurzbz = \'Abgewiesener\' and psss.studiensemester_kurzbz = \'WS2018\') - LIMIT 1 - ),\', \' + LIMIT 1 ) AS "StgAbgeschickt", - array_to_string( - ( - SELECT array_agg(distinct UPPER(tbl_studiengang.typ || tbl_studiengang.kurzbz) || \':\' || tbl_studienplan.orgform_kurzbz) - FROM - public.tbl_prestudentstatus pss - INNER JOIN public.tbl_prestudent ps USING(prestudent_id) - JOIN public.tbl_studiengang USING(studiengang_kz) - JOIN lehre.tbl_studienplan using (studienplan_id) - WHERE pss.status_kurzbz = \'Interessent\' - AND (pss.bewerbung_abgeschicktamum IS NULL) - AND pss.bestaetigtam IS NULL - AND ps.person_id = p.person_id - AND tbl_studiengang.typ in(\'b\') - AND studiensemester_kurzbz IN ( - SELECT studiensemester_kurzbz - FROM public.tbl_studiensemester - WHERE ende >= NOW() + ( + SELECT ARRAY_TO_STRING(ARRAY_AGG(DISTINCT UPPER(sg.typ || sg.kurzbz) || \':\' || sp.orgform_kurzbz), \', \') + FROM public.tbl_prestudentstatus pss + JOIN public.tbl_prestudent ps USING(prestudent_id) + JOIN public.tbl_studiengang sg USING(studiengang_kz) + JOIN lehre.tbl_studienplan sp USING(studienplan_id) + WHERE pss.status_kurzbz = '.$INTERESSENT_STATUS.' + AND pss.bewerbung_abgeschicktamum IS NULL + AND pss.bestaetigtam IS NULL + AND ps.person_id = p.person_id + AND sg.typ IN ('.$STUDIENGANG_TYP.') + AND pss.studiensemester_kurzbz IN (SELECT cnss.studiensemester_kurzbz FROM currentOrNextStudiensemester cnss) + AND NOT EXISTS ( + SELECT 1 + FROM tbl_prestudentstatus spss + WHERE spss.prestudent_id = pss.prestudent_id + AND spss.status_kurzbz = '.$REJECTED_STATUS.' + AND spss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende > NOW()) ) - AND not exists (select 1 from tbl_prestudentstatus psss where psss.prestudent_id = pss.prestudent_id and psss.status_kurzbz = \'Abgewiesener\' and psss.studiensemester_kurzbz = \'WS2018\') - LIMIT 1 - ),\', \' + LIMIT 1 ) AS "StgNichtAbgeschickt", - array_to_string( - ( - SELECT array_agg(distinct UPPER(tbl_studiengang.typ || tbl_studiengang.kurzbz) || \':\' || tbl_studienplan.orgform_kurzbz) - FROM - public.tbl_prestudentstatus pss - INNER JOIN public.tbl_prestudent ps USING(prestudent_id) - JOIN public.tbl_studiengang USING(studiengang_kz) - JOIN lehre.tbl_studienplan using (studienplan_id) - WHERE pss.status_kurzbz in (\'Wartender\', \'Bewerber\', \'Aufgenommener\', \'Student\') - AND (pss.bewerbung_abgeschicktamum IS NULL) - AND ps.person_id = p.person_id - AND tbl_studiengang.typ in(\'b\') - AND studiensemester_kurzbz IN ( - SELECT studiensemester_kurzbz - FROM public.tbl_studiensemester - WHERE start >= NOW() + ( + SELECT ARRAY_TO_STRING(ARRAY_AGG(DISTINCT UPPER(sg.typ || sg.kurzbz) || \':\' || sp.orgform_kurzbz), \', \') + FROM public.tbl_prestudentstatus pss + JOIN public.tbl_prestudent ps USING(prestudent_id) + JOIN public.tbl_studiengang sg USING(studiengang_kz) + JOIN lehre.tbl_studienplan sp USING(studienplan_id) + WHERE pss.status_kurzbz IN ('.$STATUS_KURZBZ.') + AND pss.bewerbung_abgeschicktamum IS NULL + AND ps.person_id = p.person_id + AND sg.typ IN ('.$STUDIENGANG_TYP.') + AND pss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.start >= NOW()) + AND NOT EXISTS ( + SELECT 1 + FROM tbl_prestudentstatus spss + WHERE spss.prestudent_id = pss.prestudent_id + AND spss.status_kurzbz = '.$REJECTED_STATUS.' + AND spss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende > NOW()) ) - AND not exists (select 1 from tbl_prestudentstatus psss where psss.prestudent_id = pss.prestudent_id and psss.status_kurzbz = \'Abgewiesener\' and psss.studiensemester_kurzbz = \'WS2018\') - LIMIT 1 - ),\', \' - ) AS "StgAktiv", - pl.zeitpunkt AS "LockDate", - pl.lockuser AS "LockUser", - pd.parkdate AS "ParkDate" - FROM public.tbl_person p - LEFT JOIN (SELECT person_id, zeitpunkt, uid as lockuser FROM system.tbl_person_lock WHERE app = \''.$APP.'\') pl USING(person_id) - LEFT JOIN ( - SELECT person_id, zeitpunkt as parkdate - FROM system.tbl_log - WHERE logtype_kurzbz = \'Processstate\' - AND logdata->>\'name\' = \'Parked\' - AND zeitpunkt >= now() + LIMIT 1 + ) AS "StgAktiv" + FROM public.tbl_person p + LEFT JOIN ( + SELECT tpl.person_id, + tpl.zeitpunkt, + tpl.uid AS lockuser + FROM system.tbl_person_lock tpl + WHERE tpl.app = '.$APP.' + ) pl USING(person_id) + LEFT JOIN ( + SELECT l.person_id, + l.zeitpunkt AS parkdate + FROM system.tbl_log l + WHERE l.logtype_kurzbz = '.$LOGTYPE_KURZBZ.' + AND l.logdata->>\'name\' = '.$LOGDATA_NAME_PARKED.' + AND l.zeitpunkt >= NOW() ) pd USING(person_id) - WHERE - EXISTS( + WHERE + EXISTS ( SELECT 1 - FROM - public.tbl_prestudent - JOIN public.tbl_studiengang USING(studiengang_kz) - WHERE - person_id=p.person_id - AND tbl_studiengang.typ in(\'b\') - AND \'Interessent\' = (SELECT status_kurzbz FROM public.tbl_prestudentstatus - WHERE prestudent_id=tbl_prestudent.prestudent_id - ORDER BY datum DESC, insertamum DESC, ext_id DESC - LIMIT 1 - ) - AND EXISTS ( - SELECT - 1 - FROM - public.tbl_prestudentstatus - WHERE - prestudent_id = tbl_prestudent.prestudent_id - AND status_kurzbz = \'Interessent\' - AND (bestaetigtam IS NULL AND (bewerbung_abgeschicktamum is null OR bewerbung_abgeschicktamum>=\''.$NOTBEFORE.'\')) - AND studiensemester_kurzbz IN ( - SELECT studiensemester_kurzbz - FROM public.tbl_studiensemester - WHERE ende >= NOW() - ) - ) + FROM public.tbl_prestudent sps + JOIN public.tbl_studiengang ssg USING(studiengang_kz) + WHERE sps.person_id = p.person_id + AND ssg.typ IN ('.$STUDIENGANG_TYP.') + AND '.$INTERESSENT_STATUS.' = ( + SELECT spss.status_kurzbz + FROM public.tbl_prestudentstatus spss + WHERE spss.prestudent_id = sps.prestudent_id + ORDER BY spss.datum DESC, spss.insertamum DESC, spss.ext_id DESC + LIMIT 1 + ) + AND EXISTS ( + SELECT 1 + FROM public.tbl_prestudentstatus spss + WHERE spss.prestudent_id = sps.prestudent_id + AND spss.status_kurzbz = '.$INTERESSENT_STATUS.' + AND spss.bestaetigtam IS NULL + AND spss.bewerbung_abgeschicktamum IS NOT NULL + AND spss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende > NOW()) + ) ) - ORDER BY "LastAction" ASC + ORDER BY "LastAction" ASC ', 'requiredPermissions' => 'infocenter', 'checkboxes' => 'PersonId', @@ -307,7 +316,7 @@ } ); - $filterWidgetArray['app'] = $APP; + $filterWidgetArray['app'] = 'infocenter'; $filterWidgetArray['datasetName'] = 'overview'; $filterWidgetArray['filterKurzbz'] = 'InfoCenterSentApplicationAll'; $filterWidgetArray['filter_id'] = $this->input->get('filter_id'); diff --git a/application/views/system/infocenter/infocenterFreigegebenData.php b/application/views/system/infocenter/infocenterFreigegebenData.php index d96f42c9f..818eda1d5 100644 --- a/application/views/system/infocenter/infocenterFreigegebenData.php +++ b/application/views/system/infocenter/infocenterFreigegebenData.php @@ -1,137 +1,114 @@ ' - SELECT + SELECT p.person_id AS "PersonId", p.vorname AS "Vorname", p.nachname AS "Nachname", p.gebdatum AS "Gebdatum", p.staatsbuergerschaft AS "Nation", + pl.zeitpunkt AS "LockDate", + pl.lockuser AS "LockUser", ( - SELECT zeitpunkt - FROM system.tbl_log - WHERE taetigkeit_kurzbz IN(\'bewerbung\',\'kommunikation\') - AND logdata->>\'name\' NOT IN (\'Login with code\', \'New application\') - AND person_id = p.person_id - ORDER BY zeitpunkt DESC - LIMIT 1 + SELECT l.zeitpunkt + FROM system.tbl_log l + WHERE l.taetigkeit_kurzbz IN('.$TAETIGKEIT_KURZBZ.') + AND l.logdata->>\'name\' NOT IN ('.$LOGDATA_NAME.') + AND l.person_id = p.person_id + ORDER BY l.zeitpunkt DESC + LIMIT 1 ) AS "LastAction", ( - SELECT insertvon - FROM system.tbl_log - WHERE taetigkeit_kurzbz IN(\'bewerbung\',\'kommunikation\') - AND logdata->>\'name\' NOT IN (\'Login with code\', \'New application\') - AND person_id = p.person_id - ORDER BY zeitpunkt DESC - LIMIT 1 + SELECT l.insertvon + FROM system.tbl_log l + WHERE l.taetigkeit_kurzbz IN('.$TAETIGKEIT_KURZBZ.') + AND l.logdata->>\'name\' NOT IN ('.$LOGDATA_NAME.') + AND l.person_id = p.person_id + ORDER BY l.zeitpunkt DESC + LIMIT 1 ) AS "User/Operator", ( - SELECT - pss.studiensemester_kurzbz - FROM - public.tbl_prestudentstatus pss - INNER JOIN public.tbl_prestudent ps USING(prestudent_id) - JOIN public.tbl_studiengang USING(studiengang_kz) - WHERE pss.status_kurzbz = \'Interessent\' - AND ps.person_id = p.person_id - AND tbl_studiengang.typ in(\'b\') - AND studiensemester_kurzbz IN ( - SELECT studiensemester_kurzbz - FROM public.tbl_studiensemester - WHERE ende >= NOW() - ) - ORDER BY pss.datum DESC, pss.insertamum DESC, pss.ext_id DESC - LIMIT 1 + SELECT pss.studiensemester_kurzbz + FROM public.tbl_prestudentstatus pss + JOIN public.tbl_prestudent ps USING(prestudent_id) + JOIN public.tbl_studiengang sg USING(studiengang_kz) + WHERE pss.status_kurzbz = '.$INTERESSENT_STATUS.' + AND ps.person_id = p.person_id + AND sg.typ IN ('.$STUDIENGANG_TYP.') + AND pss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende >= NOW()) + ORDER BY pss.datum DESC, pss.insertamum DESC, pss.ext_id DESC + LIMIT 1 ) AS "Studiensemester", ( SELECT pss.bewerbung_abgeschicktamum - FROM - public.tbl_prestudentstatus pss - INNER JOIN public.tbl_prestudent ps USING(prestudent_id) - JOIN public.tbl_studiengang USING(studiengang_kz) - WHERE pss.status_kurzbz = \'Interessent\' - AND (pss.bewerbung_abgeschicktamum IS NOT NULL AND pss.bewerbung_abgeschicktamum>=\''.$NOTBEFORE.'\') - AND ps.person_id = p.person_id - AND tbl_studiengang.typ in(\'b\') - AND studiensemester_kurzbz IN ( - SELECT studiensemester_kurzbz - FROM public.tbl_studiensemester - WHERE ende >= NOW() - ) - ORDER BY pss.datum DESC, pss.insertamum DESC, pss.ext_id DESC - LIMIT 1 + FROM public.tbl_prestudentstatus pss + JOIN public.tbl_prestudent ps USING(prestudent_id) + JOIN public.tbl_studiengang sg USING(studiengang_kz) + WHERE pss.status_kurzbz = '.$INTERESSENT_STATUS.' + AND pss.bewerbung_abgeschicktamum IS NOT NULL + AND ps.person_id = p.person_id + AND sg.typ IN ('.$STUDIENGANG_TYP.') + AND pss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende >= NOW()) + ORDER BY pss.datum DESC, pss.insertamum DESC, pss.ext_id DESC + LIMIT 1 ) AS "SendDate", ( - SELECT count(*) - FROM - public.tbl_prestudentstatus pss - INNER JOIN public.tbl_prestudent ps USING(prestudent_id) - JOIN public.tbl_studiengang USING(studiengang_kz) - WHERE pss.status_kurzbz = \'Interessent\' - AND (pss.bewerbung_abgeschicktamum IS NOT NULL AND pss.bewerbung_abgeschicktamum>=\''.$NOTBEFORE.'\') - AND ps.person_id = p.person_id - AND tbl_studiengang.typ in(\'b\') - AND studiensemester_kurzbz IN ( - SELECT studiensemester_kurzbz - FROM public.tbl_studiensemester - WHERE ende >= NOW() - ) - LIMIT 1 + SELECT COUNT(*) + FROM public.tbl_prestudentstatus pss + JOIN public.tbl_prestudent ps USING(prestudent_id) + JOIN public.tbl_studiengang sg USING(studiengang_kz) + WHERE pss.status_kurzbz = '.$INTERESSENT_STATUS.' + AND pss.bewerbung_abgeschicktamum IS NOT NULL + AND ps.person_id = p.person_id + AND sg.typ IN ('.$STUDIENGANG_TYP.') + AND pss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende >= NOW()) + LIMIT 1 ) AS "AnzahlAbgeschickt", - array_to_string( - ( - SELECT array_agg(distinct UPPER(tbl_studiengang.typ || tbl_studiengang.kurzbz)) - FROM - public.tbl_prestudentstatus pss - INNER JOIN public.tbl_prestudent ps USING(prestudent_id) - JOIN public.tbl_studiengang USING(studiengang_kz) - WHERE pss.status_kurzbz = \'Interessent\' - AND (pss.bewerbung_abgeschicktamum IS NOT NULL AND pss.bewerbung_abgeschicktamum>=\''.$NOTBEFORE.'\') - AND ps.person_id = p.person_id - AND tbl_studiengang.typ in(\'b\') - AND studiensemester_kurzbz IN ( - SELECT studiensemester_kurzbz - FROM public.tbl_studiensemester - WHERE ende >= NOW() - ) - LIMIT 1 - ),\', \' - ) AS "StgAbgeschickt", - pl.zeitpunkt AS "LockDate", - pl.lockuser as "LockUser" - FROM public.tbl_person p - LEFT JOIN (SELECT person_id, zeitpunkt, uid as lockuser FROM system.tbl_person_lock WHERE app = \''.$APP.'\') pl USING(person_id) - WHERE - EXISTS( + ( + SELECT ARRAY_TO_STRING(ARRAY_AGG(DISTINCT UPPER(sg.typ || sg.kurzbz)), \', \') + FROM public.tbl_prestudentstatus pss + JOIN public.tbl_prestudent ps USING(prestudent_id) + JOIN public.tbl_studiengang sg USING(studiengang_kz) + WHERE pss.status_kurzbz = '.$INTERESSENT_STATUS.' + AND pss.bewerbung_abgeschicktamum IS NOT NULL + AND ps.person_id = p.person_id + AND sg.typ IN ('.$STUDIENGANG_TYP.') + AND pss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende >= NOW()) + LIMIT 1 + ) AS "StgAbgeschickt" + FROM public.tbl_person p + LEFT JOIN ( + SELECT tpl.person_id, + tpl.zeitpunkt, + tpl.uid AS lockuser + FROM system.tbl_person_lock tpl + WHERE tpl.app = '.$APP.' + ) pl USING(person_id) + WHERE + EXISTS ( SELECT 1 - FROM - public.tbl_prestudent - JOIN public.tbl_studiengang USING(studiengang_kz) - WHERE - person_id=p.person_id - AND tbl_studiengang.typ in(\'b\') - - AND EXISTS ( - SELECT - 1 - FROM - public.tbl_prestudentstatus - WHERE - prestudent_id = tbl_prestudent.prestudent_id - AND status_kurzbz = \'Interessent\' - AND (bestaetigtam IS NOT NULL AND bewerbung_abgeschicktamum >= \''.$NOTBEFORE.'\') - AND studiensemester_kurzbz IN ( - SELECT studiensemester_kurzbz - FROM public.tbl_studiensemester - WHERE ende >= NOW() - ) + FROM public.tbl_prestudent ps + JOIN public.tbl_studiengang sg USING(studiengang_kz) + WHERE ps.person_id = p.person_id + AND sg.typ IN ('.$STUDIENGANG_TYP.') + AND EXISTS ( + SELECT 1 + FROM public.tbl_prestudentstatus pss + WHERE pss.prestudent_id = ps.prestudent_id + AND pss.status_kurzbz = '.$INTERESSENT_STATUS.' + AND pss.bestaetigtam IS NOT NULL + AND pss.bewerbung_abgeschicktamum IS NOT NULL + AND pss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende >= NOW()) ) ) - ORDER BY "LastAction" DESC + ORDER BY "LastAction" DESC ', 'requiredPermissions' => 'infocenter', 'checkboxes' => 'PersonId', @@ -216,7 +193,7 @@ } ); - $filterWidgetArray['app'] = $APP; + $filterWidgetArray['app'] = 'infocenter'; $filterWidgetArray['datasetName'] = 'freigegeben'; $filterWidgetArray['filterKurzbz'] = 'InfoCenterFreigegeben5days'; $filterWidgetArray['filter_id'] = $this->input->get('filter_id');