mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-06-21 22:19:27 +00:00
315 lines
11 KiB
PHP
Executable File
315 lines
11 KiB
PHP
Executable File
<?php
|
|
|
|
$APP = 'infocenter';
|
|
$NOTBEFORE = '2018-03-01 18:00:00';
|
|
|
|
$filterWidgetArray = array(
|
|
'query' => '
|
|
SELECT
|
|
p.person_id AS "PersonId",
|
|
p.vorname AS "Vorname",
|
|
p.nachname AS "Nachname",
|
|
p.gebdatum AS "Gebdatum",
|
|
p.staatsbuergerschaft AS "Nation",
|
|
(
|
|
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
|
|
) 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
|
|
) 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
|
|
) 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()
|
|
)
|
|
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
|
|
) 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()
|
|
)
|
|
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 "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()
|
|
)
|
|
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 "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()
|
|
)
|
|
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 "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()
|
|
)
|
|
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()
|
|
) pd 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 \'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()
|
|
)
|
|
)
|
|
)
|
|
ORDER BY "LastAction" ASC
|
|
',
|
|
'checkboxes' => 'PersonId',
|
|
'additionalColumns' => array('Details'),
|
|
'columnsAliases' => array(
|
|
'PersonID',
|
|
ucfirst($this->p->t('person', 'vorname')) ,
|
|
ucfirst($this->p->t('person', 'nachname')),
|
|
ucfirst($this->p->t('person', 'geburtsdatum')),
|
|
ucfirst($this->p->t('person', 'nation')),
|
|
ucfirst($this->p->t('global', 'letzteAktion')),
|
|
ucfirst($this->p->t('global', 'letzterBearbeiter')),
|
|
ucfirst($this->p->t('lehre', 'studiensemester')),
|
|
ucfirst($this->p->t('global', 'gesendetAm')),
|
|
ucfirst($this->p->t('global', 'abgeschickt')).' ('.$this->p->t('global', 'anzahl').')',
|
|
ucfirst($this->p->t('lehre', 'studiengang')).' ('.$this->p->t('global', 'gesendet').')',
|
|
ucfirst($this->p->t('lehre', 'studiengang')).' ('.$this->p->t('global', 'nichtGesendet').')',
|
|
ucfirst($this->p->t('lehre', 'studiengang')).' ('.$this->p->t('global', 'aktiv').')',
|
|
ucfirst($this->p->t('global', 'sperrdatum')),
|
|
ucfirst($this->p->t('global', 'gesperrtVon')),
|
|
ucfirst($this->p->t('global', 'parkdatum'))
|
|
),
|
|
'formatRow' => function($datasetRaw) {
|
|
|
|
$datasetRaw->{'Details'} = sprintf(
|
|
'<a href="%s?person_id=%s&origin_page=%s&fhc_controller_id=%s">Details</a>',
|
|
site_url('system/infocenter/InfoCenter/showDetails'),
|
|
$datasetRaw->{'PersonId'},
|
|
$this->router->method,
|
|
$this->input->get('fhc_controller_id')
|
|
);
|
|
|
|
if ($datasetRaw->{'SendDate'} == null)
|
|
{
|
|
$datasetRaw->{'SendDate'} = 'Not sent';
|
|
}
|
|
else
|
|
{
|
|
$datasetRaw->{'SendDate'} = date_format(date_create($datasetRaw->{'SendDate'}), 'Y-m-d H:i');
|
|
}
|
|
|
|
if ($datasetRaw->{'LastAction'} == null)
|
|
{
|
|
$datasetRaw->{'LastAction'} = '-';
|
|
}
|
|
else
|
|
{
|
|
$datasetRaw->{'LastAction'} = date_format(date_create($datasetRaw->{'LastAction'}), 'Y-m-d H:i');
|
|
}
|
|
|
|
if ($datasetRaw->{'User/Operator'} == '')
|
|
{
|
|
$datasetRaw->{'User/Operator'} = 'NA';
|
|
}
|
|
|
|
if ($datasetRaw->{'LockDate'} == null)
|
|
{
|
|
$datasetRaw->{'LockDate'} = '-';
|
|
}
|
|
|
|
if ($datasetRaw->{'LockUser'} == null)
|
|
{
|
|
$datasetRaw->{'LockUser'} = '-';
|
|
}
|
|
|
|
if ($datasetRaw->{'ParkDate'} == null)
|
|
{
|
|
$datasetRaw->{'ParkDate'} = '-';
|
|
}
|
|
|
|
if ($datasetRaw->{'StgAbgeschickt'} == null)
|
|
{
|
|
$datasetRaw->{'StgAbgeschickt'} = '-';
|
|
}
|
|
|
|
if ($datasetRaw->{'StgNichtAbgeschickt'} == null)
|
|
{
|
|
$datasetRaw->{'StgNichtAbgeschickt'} = '-';
|
|
}
|
|
|
|
if ($datasetRaw->{'StgAktiv'} == null)
|
|
{
|
|
$datasetRaw->{'StgAktiv'} = '-';
|
|
}
|
|
|
|
if ($datasetRaw->{'Nation'} == null)
|
|
{
|
|
$datasetRaw->{'Nation'} = '-';
|
|
}
|
|
|
|
return $datasetRaw;
|
|
},
|
|
'markRow' => function($datasetRaw) {
|
|
|
|
$mark = '';
|
|
|
|
if ($datasetRaw->LockDate != null)
|
|
{
|
|
$mark = FilterWidget::DEFAULT_MARK_ROW_CLASS;
|
|
}
|
|
|
|
// Parking has priority over locking
|
|
if ($datasetRaw->ParkDate != null)
|
|
{
|
|
$mark = "text-info";
|
|
}
|
|
|
|
return $mark;
|
|
}
|
|
);
|
|
|
|
$filterWidgetArray['app'] = $APP;
|
|
$filterWidgetArray['datasetName'] = 'PersonActions';
|
|
$filterWidgetArray['filterKurzbz'] = 'InfoCenterSentApplicationAll';
|
|
$filterWidgetArray['filter_id'] = $this->input->get('filter_id');
|
|
|
|
echo $this->widgetlib->widget('FilterWidget', $filterWidgetArray);
|
|
?>
|