This commit is contained in:
Paolo
2018-04-17 13:13:11 +02:00
3 changed files with 302 additions and 4 deletions
+29
View File
@@ -5,6 +5,11 @@ $config['navigation_header'] = array(
'FH-Complete' => site_url(''),
'Vilesci' => base_url('/vilesci'),
'CIS' => CIS_ROOT
),
'system/infocenter/InfoCenter/infocenterFreigegeben' => array(
'FH-Complete' => base_url('index.ci.php/'),
'Vilesci' => base_url('/vilesci'),
'CIS' => CIS_ROOT
)
);
@@ -57,3 +62,27 @@ $config['navigation_menu']['Vilesci/index'] = array(
)
)
);
//HIDDEN as long as filter is revised
//$config['navigation_menu']['system/infocenter/InfoCenter/index'] = array(
// 'Freigegeben' => array(
// 'link' => base_url('index.ci.php/system/infocenter/InfoCenter/infocenterFreigegeben'),
// 'description' => 'Freigegeben',
// 'icon' => 'thumbs-up'
// ));
$config['navigation_menu']['system/infocenter/InfoCenter/showDetails'] = array(
'Freigegeben' => array(
'link' => base_url('index.ci.php/system/infocenter/InfoCenter/infocenterFreigegeben'),
'description' => 'Freigegeben',
'icon' => 'thumbs-up'
));
$config['navigation_menu']['system/infocenter/InfoCenter/infocenterFreigegeben'] = array(
'Zurück' => array(
'link' => base_url('index.ci.php/system/infocenter/InfoCenter/index'),
'description' => 'Zurück',
'icon' => 'angle-left'
));
@@ -88,7 +88,12 @@ class InfoCenter extends VileSci_Controller
{
$this->load->view('system/infocenter/infocenter.php');
}
public function infocenterFreigegeben()
{
$this->load->view('system/infocenter/infocenterFreigegeben.php');
}
/**
* Initialization function, gets person and prestudent data and loads the view with the data
* @param $person_id
@@ -122,7 +127,7 @@ class InfoCenter extends VileSci_Controller
)
);
}
/**
* unlocks page from edit by a person, redirects to overview filter page
* @param $person_id
@@ -352,7 +357,7 @@ class InfoCenter extends VileSci_Controller
$this->_redirectToStart($prestudent_id, 'ZgvPruef');
}
/**
* Saves a new Notiz for a person
* @param $person_id
@@ -499,7 +504,7 @@ class InfoCenter extends VileSci_Controller
'children' => array()
)
);
$this->_fillFilters($listFiltersSent, $filtersarray['abgeschickt']);
$this->_fillFilters($listFiltersNotSent, $filtersarray['nichtabgeschickt']);
@@ -0,0 +1,264 @@
<?php
$this->load->view(
'templates/FHC-Header',
array(
'title' => 'Info Center',
'jquery' => true,
'jqueryui' => true,
'bootstrap' => true,
'fontawesome' => true,
'sbadmintemplate' => true,
'tablesorter' => true,
'customCSSs' => 'skin/tablesort_bootstrap.css',
'customJSs' => array('include/js/bootstrapper.js', 'include/js/infocenter/infocenterPersonDataset.js')
)
);
?>
<body>
<div id="wrapper">
<?php echo $this->widgetlib->widget('NavigationWidget'); ?>
<div id="page-wrapper">
<div class="container-fluid">
<div class="row">
<div class="col-lg-12">
<h3 class="page-header">Freigegebene Interessenten</h3>
</div>
</div>
<div>
<?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\')
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\')
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()
)
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()
)
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 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()
)
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 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 NOT 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
',
'hideHeader' => false,
'hideSave' => false,
'checkboxes' => 'PersonId',
'additionalColumns' => array('Details'),
'columnsAliases' => array('PersonID','Vorname','Nachname','GebDatum','Nation','Letzte Aktion','Letzter Bearbeiter',
'StSem','GesendetAm','NumAbgeschickt','Studiengänge','Sperrdatum','GesperrtVon'),
'formatRaw' => function($datasetRaw) {
$datasetRaw->{'Details'} = sprintf(
'<a href="%s%s">Details</a>',
base_url('index.ci.php/system/infocenter/InfoCenter/showDetails/'),
$datasetRaw->{'PersonId'}
);
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->{'StgAbgeschickt'} == null)
{
$datasetRaw->{'StgAbgeschickt'} = 'N/A';
}
if ($datasetRaw->{'Nation'} == null)
{
$datasetRaw->{'Nation'} = '-';
}
return $datasetRaw;
},
'markRow' => function($datasetRaw) {
if ($datasetRaw->LockDate != null)
{
return FilterWidget::DEFAULT_MARK_ROW_CLASS;
}
}
);
$filterId = isset($_GET[InfoCenter::FILTER_ID]) ? $_GET[InfoCenter::FILTER_ID] : null;
if (isset($filterId) && is_numeric($filterId))
{
$filterWidgetArray[InfoCenter::FILTER_ID] = $filterId;
}
else
{
$filterWidgetArray['app'] = $APP;
$filterWidgetArray['datasetName'] = 'PersonActions';
$filterWidgetArray['filterKurzbz'] = 'InfoCenterNotSentApplicationAll';
}
echo $this->widgetlib->widget('FilterWidget', $filterWidgetArray);
?>
</div>
</div>
</div>
</div>
</body>
<?php $this->load->view('templates/FHC-Footer'); ?>