mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-24 02:12:17 +00:00
Merge branch 'master' into feature-3716/Messaging_inbox_outbox_user
This commit is contained in:
@@ -3,6 +3,7 @@ $this->load->view('templates/FHC-Header',
|
||||
array(
|
||||
'title' => 'FH-Complete',
|
||||
'jquery' => true,
|
||||
'jqueryui' => true,
|
||||
'bootstrap' => true,
|
||||
'fontawesome' => true,
|
||||
'sbadmintemplate' => true,
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
<?php
|
||||
$this->load->view(
|
||||
'templates/FHC-Header',
|
||||
array(
|
||||
'title' => 'Lehrauftrag bestellen',
|
||||
'jquery' => true,
|
||||
'jqueryui' => true,
|
||||
'bootstrap' => true,
|
||||
'fontawesome' => true,
|
||||
'sbadmintemplate' => true,
|
||||
'ajaxlib' => true,
|
||||
'dialoglib' => true,
|
||||
'navigationwidget' => true,
|
||||
'addons' => true,
|
||||
)
|
||||
);
|
||||
?>
|
||||
|
||||
<body>
|
||||
<?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">
|
||||
Lehrauftrag
|
||||
</h3>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="dashboard"></div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
<?php $this->load->view('templates/FHC-Footer'); ?>
|
||||
@@ -0,0 +1,39 @@
|
||||
<?php
|
||||
$this->load->view(
|
||||
'templates/FHC-Header',
|
||||
array(
|
||||
'title' => 'Lehrauftrag bestellen',
|
||||
'jquery' => true,
|
||||
'bootstrap' => true,
|
||||
'fontawesome' => true,
|
||||
'sbadmintemplate' => true,
|
||||
'ajaxlib' => true,
|
||||
'navigationwidget' => true,
|
||||
)
|
||||
);
|
||||
?>
|
||||
|
||||
<body>
|
||||
<?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">
|
||||
Lehraufträge - Lehrendenübersicht
|
||||
</h3>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<iframe src="<?php echo base_url() . '/addons/reports/cis/vorschau.php?statistik_kurzbz=LehrauftraegeOeUebersicht'; ?>"
|
||||
style="height: 950px; width: 100%; border: none">
|
||||
</iframe>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
<?php $this->load->view('templates/FHC-Footer'); ?>
|
||||
@@ -0,0 +1,204 @@
|
||||
<?php
|
||||
$this->load->view(
|
||||
'templates/FHC-Header',
|
||||
array(
|
||||
'title' => 'Lehrauftrag annehmen',
|
||||
'jquery' => true,
|
||||
'jqueryui' => true,
|
||||
'jquerycheckboxes' => true,
|
||||
'bootstrap' => true,
|
||||
'fontawesome' => true,
|
||||
'sbadmintemplate' => false,
|
||||
'tabulator' => true,
|
||||
'momentjs' => true,
|
||||
'ajaxlib' => true,
|
||||
'dialoglib' => true,
|
||||
'tablewidget' => true,
|
||||
'phrases' => array(
|
||||
'global' => array('lehrauftraegeAnnehmen'),
|
||||
),
|
||||
'customJSs' => array(
|
||||
'public/js/bootstrapper.js',
|
||||
'public/js/lehre/lehrauftrag/acceptLehrauftrag.js')
|
||||
)
|
||||
);
|
||||
|
||||
?>
|
||||
|
||||
<body>
|
||||
<div id="page-wrapper">
|
||||
<div class="container-fluid">
|
||||
|
||||
<!-- title & helper link -->
|
||||
<div class="row">
|
||||
<div class="col-lg-12 page-header">
|
||||
<a class="pull-right" data-toggle="collapse" href="#collapseHelp" aria-expanded="false" aria-controls="collapseExample">
|
||||
Hilfe zu dieser Seite
|
||||
</a>
|
||||
<h3>
|
||||
<?php echo ucfirst($this->p->t('global', 'lehrauftraegeAnnehmen')); ?>
|
||||
</h3>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- helper collapse module -->
|
||||
<div class="row">
|
||||
<div class="col-lg-12 collapse" id="collapseHelp">
|
||||
<div class="well">
|
||||
<h4>Wie nehme ich Lehraufträge an?</h4>
|
||||
<div class="panel panel-body">
|
||||
Sobald Ihnen ein oder mehrere Lehraufträge erteilt wurden, können Sie diese annehmen.
|
||||
<ol>
|
||||
<li>Klicken Sie unten auf das Status-Icon 'Nur erteilte anzeigen' oder 'Alle anzeigen'</li>
|
||||
<li>Wählen Sie die Lehraufträge, die Sie annehmen möchten, selbst oder alle über den Button 'Alle auswählen'.</li>
|
||||
<li>Geben Sie Ihr CIS-Passwort ein und klicken auf Lehrauftrag annehmen.</li>
|
||||
</ol>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<h4>Warum kann ich manche Lehraufträge nicht auswählen?</h4>
|
||||
<div class="panel panel-body">
|
||||
Nur Lehraufträge mit dem Status 'erteilt' können gewählt werden.<br>
|
||||
Angenommene Lehraufträge oder Lehraufträge in Bearbeitung werden nur zu Ihrer Information angezeigt.
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<h4>Filter</h4>
|
||||
<div class="panel panel-body">
|
||||
<div class="col-xs-12 col-md-8 col-lg-6">
|
||||
<table class="table table-bordered">
|
||||
<tr class="text-center">
|
||||
<td class="col-xs-1"><i class='fa fa-users'></i></td>
|
||||
<td class="col-xs-1"><img src="../../../public/images/icons/fa-user-tag.png" style="height: 30px; width: 30px;"></td>
|
||||
<td class="col-xs-1"><img src="../../../public/images/icons/fa-user-check.png" style="height: 30px; width: 30px;"></td>
|
||||
<td class="col-xs-1"><i class='fa fa-handshake-o'></i></td>
|
||||
</tr>
|
||||
<tr class="text-center">
|
||||
<td><b>Alle</b><br>Alle Lehraufträge mit jedem Status</td>
|
||||
<td><b>Bestellt</b><br>Nur bestellte UND bestellte Lehraufträge, die in Bearbeitung sind</td>
|
||||
<td><b>Erteilt</b><br>Nur erteilte UND geänderte Lehraufträge, die in Bearbeitung sind</td>
|
||||
<td><b>Angenommen</b><br>Nur von Ihnen angenommene Lehraufträge</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<h4>Auswahl</h4>
|
||||
<div class="panel panel-body">
|
||||
<ul>
|
||||
<li>Einzeln auswählen: <kbd>Strg</kbd> + Klick auf einzelne Zeile(n)</li>
|
||||
<li>Bereich auswählen: <kbd>Shift</kbd> + Klick auf Anfangs- und Endzeile</li>
|
||||
<li>Alle auswählen: Button 'Alle auswählen'</li>
|
||||
</ul>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<h4>Ansicht</h4>
|
||||
<div class="panel panel-body">
|
||||
<b>Spaltenbreite verändern</b>
|
||||
<p>
|
||||
Um die Spaltenbreite zu verändern, fährt man im Spaltenkopf langsam mit dem Mauszeiger auf
|
||||
den rechten Rand der entprechenden Spalte. <br>
|
||||
Sobald sich der Mauszeiger in einen Doppelpfeil verwandelt, wird die Maustaste geklickt und
|
||||
mit gedrückter Maustaste die Spalte nach rechts erweitert oder nach links verkleinert.
|
||||
</p>
|
||||
</div>
|
||||
<br>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- dropdown widgets -->
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<form id="formLehrauftrag" class="form-inline" action="" method="get">
|
||||
<div class="form-group">
|
||||
<?php
|
||||
echo $this->widgetlib->widget(
|
||||
'Studiensemester_widget',
|
||||
array(
|
||||
DropdownWidget::SELECTED_ELEMENT => $studiensemester_selected
|
||||
),
|
||||
array(
|
||||
'name' => 'studiensemester',
|
||||
'id' => 'studiensemester'
|
||||
)
|
||||
);
|
||||
?>
|
||||
</div>
|
||||
<button type="submit" name="submit" value="anzeigen" class="btn btn-default form-group">Anzeigen</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- tabulator data table 'Lehrauftraege annehmen'-->
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<?php $this->load->view('lehre/lehrauftrag/acceptLehrauftragData.php'); ?>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<!-- filter buttons & password field & akzeptieren-button -->
|
||||
<div class="row">
|
||||
<div class="col-xs-6">
|
||||
<div class="btn-toolbar" role="toolbar">
|
||||
<div class="btn-group" role="group">
|
||||
<button id="show-all" class="btn btn-default btn-lehrauftrag active focus" type="button"
|
||||
data-toggle="tooltip" data-placement="left" title="Alle anzeigen"><i class='fa fa-users'></i>
|
||||
</button>
|
||||
<button id="show-ordered" class="btn btn-default btn-lehrauftrag" type="button"
|
||||
data-toggle="tooltip" data-placement="left" title="Nur bestellte anzeigen">
|
||||
</button><!-- png img set in javascript -->
|
||||
<button id="show-approved" class="btn btn-default btn-lehrauftrag" type="button"
|
||||
data-toggle="tooltip" data-placement="left" title="Nur erteilte anzeigen">
|
||||
</button><!-- png img set in javascript -->
|
||||
<button id="show-accepted" class="btn btn-default btn-lehrauftrag" type="button"
|
||||
data-toggle="tooltip" data-placement="left" title="Nur angenommene anzeigen"><i class='fa fa-handshake-o'></i>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<button id="show-cancelled" class="btn btn-default btn-lehrauftrag" type="button" style="margin-left: 20px;"
|
||||
data-toggle="collapse" data-placement="left" title="Stornierte anzeigen"
|
||||
data-target ="#collapseCancelledLehrauftraege" aria-expanded="false" aria-controls="collapseExample">
|
||||
</button><!-- png img set in javascript -->
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-offset-2 col-md-4 col-xs-6">
|
||||
<div class="input-group">
|
||||
<input id="password" type="password" class="form-control" placeholder="CIS-Passwort">
|
||||
<span class="input-group-btn">
|
||||
<button id="accept-lehrauftraege" class="btn btn-primary pull-right">Lehrauftrag annehmen</button>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
<br>
|
||||
|
||||
<!-- collapse module with data table 'Stornierte Lehrauftraege' (collapsed by default until opened on buttonclick)-->
|
||||
<div class="row">
|
||||
<div class="col-lg-12 collapse" id="collapseCancelledLehrauftraege">
|
||||
<h4>
|
||||
<?php echo ucfirst($this->p->t('global', 'stornierteLehrauftraege')); ?>:
|
||||
<small>
|
||||
<abbr title="Anderes Studiensemester? Bitte oben im Dropdown wählen." >
|
||||
<?php echo $studiensemester_selected ?>
|
||||
</abbr>
|
||||
</small>
|
||||
</h4>
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<?php $this->load->view('lehre/lehrauftrag/cancelledLehrauftragData.php'); ?>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
</div>
|
||||
</div>
|
||||
</div><!-- end container -->
|
||||
</div><!-- end page-wrapper -->
|
||||
<br>
|
||||
</body>
|
||||
|
||||
<?php $this->load->view('templates/FHC-Footer'); ?>
|
||||
@@ -0,0 +1,398 @@
|
||||
<?php
|
||||
|
||||
$STUDIENSEMESTER = $studiensemester_selected;
|
||||
$UID = getAuthUID();
|
||||
$PERSON_ID = getAuthPersonId();
|
||||
|
||||
|
||||
$query = '
|
||||
SELECT
|
||||
/* provide extra row index for tabulator, because no other column has unique ids */
|
||||
ROW_NUMBER() OVER () AS "row_index",
|
||||
lehreinheit_id,
|
||||
lehrveranstaltung_id,
|
||||
projektarbeit_id,
|
||||
studiensemester_kurzbz,
|
||||
studiengang_kz,
|
||||
stg_typ_kurzbz,
|
||||
semester,
|
||||
orgform_kurzbz,
|
||||
person_id,
|
||||
typ,
|
||||
auftrag,
|
||||
lv_oe_kurzbz,
|
||||
gruppe,
|
||||
stunden,
|
||||
betrag,
|
||||
vertrag_id,
|
||||
vertrag_stunden,
|
||||
vertrag_betrag,
|
||||
mitarbeiter_uid,
|
||||
bestellt,
|
||||
erteilt,
|
||||
akzeptiert,
|
||||
(SELECT
|
||||
vorname || \' \' || nachname
|
||||
FROM
|
||||
public.tbl_person
|
||||
JOIN public.tbl_benutzer benutzer USING (person_id)
|
||||
WHERE
|
||||
benutzer.uid = (
|
||||
SELECT
|
||||
insertvon
|
||||
FROM
|
||||
lehre.tbl_vertrag_vertragsstatus vvs
|
||||
WHERE
|
||||
vvs.vertragsstatus_kurzbz = \'bestellt\'
|
||||
AND vvs.vertrag_id = auftraege.vertrag_id
|
||||
)
|
||||
) AS "bestellt_von",
|
||||
(SELECT
|
||||
vorname || \' \' || nachname
|
||||
FROM
|
||||
public.tbl_person
|
||||
JOIN public.tbl_benutzer benutzer USING (person_id)
|
||||
WHERE
|
||||
benutzer.uid = (
|
||||
SELECT
|
||||
insertvon
|
||||
FROM
|
||||
lehre.tbl_vertrag_vertragsstatus vvs
|
||||
WHERE
|
||||
vvs.vertragsstatus_kurzbz = \'erteilt\'
|
||||
AND vvs.vertrag_id = auftraege.vertrag_id
|
||||
)
|
||||
) AS "erteilt_von",
|
||||
(SELECT
|
||||
vorname || \' \' || nachname
|
||||
FROM
|
||||
public.tbl_person
|
||||
JOIN public.tbl_benutzer benutzer USING (person_id)
|
||||
WHERE
|
||||
benutzer.uid = (
|
||||
SELECT
|
||||
insertvon
|
||||
FROM
|
||||
lehre.tbl_vertrag_vertragsstatus vvs
|
||||
WHERE
|
||||
vvs.vertragsstatus_kurzbz = \'akzeptiert\'
|
||||
AND vvs.vertrag_id = auftraege.vertrag_id
|
||||
)
|
||||
) AS "akzeptiert_von"
|
||||
FROM
|
||||
(
|
||||
/* Lehraufträge and -vertragsstati */
|
||||
SELECT *,
|
||||
/* concatinated and aggregated gruppen */
|
||||
(SELECT
|
||||
string_agg(
|
||||
CASE WHEN gruppe_kurzbz is null THEN
|
||||
concat(upper(grpstg.typ || grpstg.kurzbz), \'-\', semester, verband, gruppe)
|
||||
ELSE
|
||||
gruppe_kurzbz
|
||||
END
|
||||
, \', \')
|
||||
FROM
|
||||
lehre.tbl_lehreinheitgruppe
|
||||
JOIN public.tbl_studiengang grpstg USING(studiengang_kz)
|
||||
WHERE
|
||||
lehreinheit_id = tmp_lehrauftraege.lehreinheit_id
|
||||
) AS "gruppe",
|
||||
/* existing contracts with status bestellt */
|
||||
(SELECT
|
||||
datum
|
||||
FROM
|
||||
lehre.tbl_vertrag_vertragsstatus
|
||||
WHERE
|
||||
tbl_vertrag_vertragsstatus.vertragsstatus_kurzbz = \'bestellt\'
|
||||
AND vertrag_id = tmp_lehrauftraege.vertrag_id) AS "bestellt",
|
||||
/* existing contracts with status erteilt */
|
||||
(SELECT
|
||||
datum
|
||||
FROM
|
||||
lehre.tbl_vertrag_vertragsstatus
|
||||
WHERE
|
||||
tbl_vertrag_vertragsstatus.vertragsstatus_kurzbz = \'erteilt\'
|
||||
AND vertrag_id = tmp_lehrauftraege.vertrag_id) AS "erteilt",
|
||||
/* existing contracts with status akzeptiert */
|
||||
(SELECT
|
||||
datum
|
||||
FROM
|
||||
lehre.tbl_vertrag_vertragsstatus
|
||||
WHERE
|
||||
tbl_vertrag_vertragsstatus.vertragsstatus_kurzbz = \'akzeptiert\'
|
||||
AND vertrag_id = tmp_lehrauftraege.vertrag_id) AS "akzeptiert"
|
||||
FROM
|
||||
(
|
||||
SELECT
|
||||
lema.lehreinheit_id,
|
||||
lv.lehrveranstaltung_id,
|
||||
NULL AS "projektarbeit_id",
|
||||
le.studiensemester_kurzbz,
|
||||
stg.studiengang_kz,
|
||||
upper(stg.typ || stg.kurzbz) AS "stg_typ_kurzbz",
|
||||
lv.orgform_kurzbz,
|
||||
person.person_id,
|
||||
upper(lv.lehrtyp_kurzbz) AS "typ",
|
||||
(lv.bezeichnung || \' [\' || le.lehrform_kurzbz ||
|
||||
\']\') AS "auftrag",
|
||||
lv.semester,
|
||||
CASE
|
||||
WHEN oe.organisationseinheittyp_kurzbz = \'Kompetenzfeld\' THEN (\'KF \' || oe.bezeichnung)
|
||||
WHEN oe.organisationseinheittyp_kurzbz = \'Department\' THEN (\'DEP \' || oe.bezeichnung)
|
||||
ELSE (oe.organisationseinheittyp_kurzbz || \' \' || oe.bezeichnung)
|
||||
END AS "lv_oe_kurzbz",
|
||||
TRUNC(lema.semesterstunden, 1) AS "stunden",
|
||||
TRUNC((lema.semesterstunden * lema.stundensatz), 2) AS "betrag",
|
||||
vertrag_id,
|
||||
vertragsstunden AS "vertrag_stunden",
|
||||
vertrag.betrag AS "vertrag_betrag",
|
||||
mitarbeiter_uid
|
||||
FROM
|
||||
lehre.tbl_lehreinheitmitarbeiter lema
|
||||
JOIN lehre.tbl_lehreinheit le USING (lehreinheit_id)
|
||||
JOIN lehre.tbl_lehrveranstaltung lv USING (lehrveranstaltung_id)
|
||||
JOIN PUBLIC.tbl_organisationseinheit oe USING (oe_kurzbz)
|
||||
JOIN PUBLIC.tbl_mitarbeiter ma USING (mitarbeiter_uid)
|
||||
JOIN PUBLIC.tbl_benutzer benutzer
|
||||
ON ma.mitarbeiter_uid = benutzer.uid
|
||||
JOIN PUBLIC.tbl_person person USING (person_id)
|
||||
LEFT JOIN lehre.tbl_vertrag vertrag USING (vertrag_id)
|
||||
LEFT JOIN lehre.tbl_vertrag_vertragsstatus vvs USING (vertrag_id)
|
||||
JOIN PUBLIC.tbl_studiengang stg ON stg.studiengang_kz = lv.studiengang_kz
|
||||
WHERE
|
||||
/* filter lector */
|
||||
mitarbeiter_uid = \'' . $UID . '\'
|
||||
/* filter studiensemester */
|
||||
AND le.studiensemester_kurzbz = \'' . $STUDIENSEMESTER . '\'
|
||||
/* filter active lehrveranstaltungen */
|
||||
AND lv.aktiv = TRUE
|
||||
/* filter active organisationseinheiten */
|
||||
AND oe.aktiv = TRUE
|
||||
/* filter vertragsstatus to avoid showing before status is bestellt */
|
||||
AND vvs.vertragsstatus_kurzbz IN (\'bestellt\', \'erteilt\', \'akzeptiert\')
|
||||
) tmp_lehrauftraege
|
||||
|
||||
UNION
|
||||
|
||||
/* Projektbetreuungsaufträge and -vertragsstati */
|
||||
SELECT *,
|
||||
/* mitarbeiter uid retrieved by person_id */
|
||||
/* NOTE: mitarbeiter MUST come after Select * to ensure correct order with select for tmp_lehrauftraege*/
|
||||
(SELECT
|
||||
uid
|
||||
FROM
|
||||
public.tbl_benutzer
|
||||
WHERE
|
||||
person_id = tmp_projektbetreuung.person_id
|
||||
ORDER BY aktiv DESC, updateaktivam DESC -- accept inactive as some person_ids have no active, but order them last
|
||||
LIMIT 1) AS "mitarbeiter_uid",
|
||||
/* concatinated and aggregated gruppen */
|
||||
(SELECT
|
||||
string_agg(
|
||||
CASE WHEN gruppe_kurzbz is null THEN
|
||||
concat(upper(grpstg.typ || grpstg.kurzbz), \'-\', semester, verband, gruppe)
|
||||
ELSE
|
||||
gruppe_kurzbz
|
||||
END
|
||||
, \', \')
|
||||
FROM
|
||||
lehre.tbl_lehreinheitgruppe
|
||||
JOIN public.tbl_studiengang grpstg USING(studiengang_kz)
|
||||
WHERE
|
||||
lehreinheit_id = tmp_projektbetreuung.lehreinheit_id
|
||||
) AS "gruppe",
|
||||
/* existing contracts with status bestellt */
|
||||
(SELECT
|
||||
datum
|
||||
FROM
|
||||
lehre.tbl_vertrag_vertragsstatus
|
||||
WHERE
|
||||
tbl_vertrag_vertragsstatus.vertragsstatus_kurzbz = \'bestellt\'
|
||||
AND vertrag_id = tmp_projektbetreuung.vertrag_id) AS "bestellt",
|
||||
/* existing contracts with status erteilt */
|
||||
(SELECT
|
||||
datum
|
||||
FROM
|
||||
lehre.tbl_vertrag_vertragsstatus
|
||||
WHERE
|
||||
tbl_vertrag_vertragsstatus.vertragsstatus_kurzbz = \'erteilt\'
|
||||
AND vertrag_id = tmp_projektbetreuung.vertrag_id) AS "erteilt",
|
||||
/* existing contracts with status akzeptiert */
|
||||
(SELECT
|
||||
datum
|
||||
FROM
|
||||
lehre.tbl_vertrag_vertragsstatus
|
||||
WHERE
|
||||
tbl_vertrag_vertragsstatus.vertragsstatus_kurzbz = \'akzeptiert\'
|
||||
AND vertrag_id = tmp_projektbetreuung.vertrag_id) AS "akzeptiert"
|
||||
FROM
|
||||
(
|
||||
SELECT
|
||||
pa.lehreinheit_id,
|
||||
lv.lehrveranstaltung_id,
|
||||
pa.projektarbeit_id AS "projektarbeit_id",
|
||||
le.studiensemester_kurzbz,
|
||||
stg.studiengang_kz,
|
||||
upper(stg.typ || stg.kurzbz) AS "stg_typ_kurzbz",
|
||||
lv.orgform_kurzbz,
|
||||
person.person_id,
|
||||
\'Betreuung\' AS "typ",
|
||||
(betreuerart_kurzbz || \' \' ||
|
||||
(SELECT
|
||||
vorname || \' \' || nachname
|
||||
FROM
|
||||
PUBLIC.tbl_person
|
||||
JOIN PUBLIC.tbl_benutzer USING (person_id)
|
||||
WHERE
|
||||
uid = pa.student_uid
|
||||
)
|
||||
|| \' [\' || projekttyp_kurzbz || \'arbeit]\') AS "auftrag",
|
||||
lv.semester,
|
||||
CASE
|
||||
WHEN oe.organisationseinheittyp_kurzbz =
|
||||
\'Kompetenzfeld\' THEN (
|
||||
\'KF \' || oe.bezeichnung)
|
||||
WHEN oe.organisationseinheittyp_kurzbz =
|
||||
\'Department\' THEN (
|
||||
\'DEP \' || oe.bezeichnung)
|
||||
ELSE (oe.organisationseinheittyp_kurzbz ||
|
||||
\' \' || oe.bezeichnung)
|
||||
END AS "lv_oe_kurzbz",
|
||||
TRUNC(pb.stunden, 1) AS "stunden",
|
||||
TRUNC((pb.stunden * pb.stundensatz), 2) AS "betrag",
|
||||
vertrag_id,
|
||||
vertragsstunden AS "vertrag_stunden",
|
||||
vertrag.betrag AS "vertrag_betrag"
|
||||
FROM
|
||||
lehre.tbl_projektbetreuer pb
|
||||
JOIN lehre.tbl_projektarbeit pa USING (projektarbeit_id)
|
||||
JOIN lehre.tbl_lehreinheit le USING (lehreinheit_id)
|
||||
JOIN lehre.tbl_lehrveranstaltung lv USING (lehrveranstaltung_id)
|
||||
JOIN PUBLIC.tbl_organisationseinheit oe USING (oe_kurzbz)
|
||||
JOIN PUBLIC.tbl_person person USING (person_id)
|
||||
LEFT JOIN lehre.tbl_vertrag vertrag USING (vertrag_id)
|
||||
LEFT JOIN lehre.tbl_vertrag_vertragsstatus vvs USING (vertrag_id)
|
||||
JOIN PUBLIC.tbl_studiengang stg
|
||||
ON stg.studiengang_kz = lv.studiengang_kz
|
||||
WHERE
|
||||
/* filter projektbetreuuer */
|
||||
pb.person_id = \'' . $PERSON_ID . '\'
|
||||
/* filter studiensemester */
|
||||
AND le.studiensemester_kurzbz = \'' . $STUDIENSEMESTER . '\'
|
||||
/* filter active lehrveranstaltungen */
|
||||
AND lv.aktiv = TRUE
|
||||
/* filter active organisationseinheiten */
|
||||
AND oe.aktiv = TRUE
|
||||
/* filter vertragsstatus to avoid showing before status is bestellt */
|
||||
AND vvs.vertragsstatus_kurzbz IN (\'bestellt\', \'erteilt\', \'akzeptiert\')
|
||||
) tmp_projektbetreuung
|
||||
) auftraege
|
||||
ORDER BY "akzeptiert" NULLS FIRST, "erteilt" NULLS LAST, "bestellt"
|
||||
';
|
||||
|
||||
$filterWidgetArray = array(
|
||||
'query' => $query,
|
||||
'tableUniqueId' => 'acceptLehrauftrag',
|
||||
'requiredPermissions' => 'lehre/lehrauftrag_akzeptieren',
|
||||
'datasetRepresentation' => 'tabulator',
|
||||
'columnsAliases' => array( // TODO: use phrasen
|
||||
'Status', // alias for row_index, because row_index is formatted to display the status icons
|
||||
'LV-Teil',
|
||||
'LV-ID',
|
||||
'PA-ID',
|
||||
'Studiensemester',
|
||||
'Studiengang-KZ',
|
||||
'Studiengang',
|
||||
'Semester',
|
||||
'OrgForm',
|
||||
'Person-ID',
|
||||
'Typ',
|
||||
'LV- / Projektbezeichnung',
|
||||
'Organisationseinheit',
|
||||
'Gruppe',
|
||||
'Stunden',
|
||||
'Betrag',
|
||||
'Vertrag-ID',
|
||||
'Vertrag-Stunden',
|
||||
'Vertrag-Betrag',
|
||||
'UID',
|
||||
'Bestellt',
|
||||
'Erteilt',
|
||||
'Angenommen',
|
||||
'Bestellt von',
|
||||
'Erteilt von',
|
||||
'Angenommen von'
|
||||
),
|
||||
'datasetRepOptions' => '{
|
||||
height: 550,
|
||||
layout: "fitColumns", // fit columns to width of table
|
||||
responsiveLayout: "hide", // hide columns that dont fit on the table
|
||||
movableColumns: true, // allows changing column
|
||||
placeholder: func_placeholder(),
|
||||
headerFilterPlaceholder: " ",
|
||||
index: "row_index", // assign specific column as unique id (important for row indexing)
|
||||
selectable: true, // allow row selection
|
||||
selectableRangeMode: "click", // allow range selection using shift end click on end of range
|
||||
selectablePersistence:false, // deselect previously selected rows when table is filtered, sorted or paginated
|
||||
selectableCheck: function(row){
|
||||
return func_selectableCheck(row);
|
||||
},
|
||||
footerElement: func_footerElement(),
|
||||
rowUpdated:function(row){
|
||||
func_rowUpdated(row);
|
||||
},
|
||||
rowSelectionChanged:function(data, rows){
|
||||
func_rowSelectionChanged(data, rows);
|
||||
},
|
||||
rowFormatter:function(row){
|
||||
func_rowFormatter(row);
|
||||
},
|
||||
tableBuilt: function(){
|
||||
func_tableBuilt(this);
|
||||
},
|
||||
renderComplete:function(){
|
||||
func_renderComplete(this);
|
||||
},
|
||||
renderStarted:function(){
|
||||
func_renderStarted(this);
|
||||
}
|
||||
}', // tabulator properties
|
||||
'datasetRepFieldsDefs' => '{
|
||||
row_index: {visible:false}, // necessary for row indexing
|
||||
lehreinheit_id: {headerFilter:"input", bottomCalc:"count", bottomCalcFormatter:function(cell){return "Anzahl: " + cell.getValue();}, width: "7%"},
|
||||
lehrveranstaltung_id: {headerFilter:"input", width: "5%"},
|
||||
projektarbeit_id: {visible: false},
|
||||
studiensemester_kurzbz: {visible: false},
|
||||
studiengang_kz: {visible: false},
|
||||
stg_typ_kurzbz: {headerFilter:"input", width: "5%"},
|
||||
semester: {headerFilter:"input"},
|
||||
orgform_kurzbz: {headerFilter:"input"},
|
||||
person_id: {visible: false},
|
||||
typ: {headerFilter:"input", width: "7%"},
|
||||
auftrag: {headerFilter:"input", width: "15%"},
|
||||
lv_oe_kurzbz: {headerFilter:"input", width: "8%"},
|
||||
gruppe: {headerFilter:"input", width: "5%"},
|
||||
stunden: {align:"right", formatter: form_formatNulltoStringNumber, formatterParams:{precision:1},
|
||||
headerFilter:"input", headerFilterFunc: hf_filterStringnumberWithOperator,
|
||||
bottomCalc:"sum", bottomCalcParams:{precision:1}, width: "5%"},
|
||||
betrag: {align:"right", width: "6%", formatter: form_formatNulltoStringNumber,
|
||||
headerFilter:"input", headerFilterFunc: hf_filterStringnumberWithOperator,
|
||||
bottomCalc:"sum", bottomCalcParams:{precision:2}, bottomCalcFormatter:"money", bottomCalcFormatterParams:{decimal: ",", thousand: ".", symbol:"€"},
|
||||
width: "8%"},
|
||||
vertrag_id: {visible: false},
|
||||
vertrag_stunden: {visible: false},
|
||||
vertrag_betrag: {visible: false},
|
||||
mitarbeiter_uid: {visible: false},
|
||||
bestellt: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: bestellt_tooltip, width: "8%"},
|
||||
erteilt: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: erteilt_tooltip, width: "8%"},
|
||||
akzeptiert: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: akzeptiert_tooltip, width: "8%"},
|
||||
bestellt_von: {visible: false},
|
||||
erteilt_von: {visible: false},
|
||||
akzeptiert_von: {visible: false}
|
||||
}', // col properties
|
||||
);
|
||||
|
||||
echo $this->widgetlib->widget('TableWidget', $filterWidgetArray);
|
||||
|
||||
?>
|
||||
@@ -0,0 +1,240 @@
|
||||
<?php
|
||||
$this->load->view(
|
||||
'templates/FHC-Header',
|
||||
array(
|
||||
'title' => 'Lehrauftrag erteilen',
|
||||
'jquery' => true,
|
||||
'jqueryui' => true,
|
||||
'jquerycheckboxes' => true,
|
||||
'bootstrap' => true,
|
||||
'fontawesome' => true,
|
||||
'sbadmintemplate' => true,
|
||||
'tabulator' => true,
|
||||
'momentjs' => true,
|
||||
'ajaxlib' => true,
|
||||
'dialoglib' => true,
|
||||
'tablewidget' => true,
|
||||
'navigationwidget' => true,
|
||||
'phrases' => array(
|
||||
'global' => array('lehrauftraegeErteilen'),
|
||||
),
|
||||
'customJSs' => array(
|
||||
'public/js/bootstrapper.js',
|
||||
'public/js/lehre/lehrauftrag/approveLehrauftrag.js'
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
?>
|
||||
|
||||
<body>
|
||||
<?php echo $this->widgetlib->widget('NavigationWidget'); ?>
|
||||
<div id="page-wrapper">
|
||||
<div class="container-fluid">
|
||||
|
||||
<!-- title & helper link -->
|
||||
<div class="row">
|
||||
<div class="col-lg-12 page-header">
|
||||
<a class="pull-right" data-toggle="collapse" href="#collapseHelp" aria-expanded="false" aria-controls="collapseExample">
|
||||
Hilfe zu dieser Seite
|
||||
</a>
|
||||
<h3>
|
||||
<?php echo ucfirst($this->p->t('global', 'lehrauftraegeErteilen')); ?>
|
||||
</h3>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- helper collapse module -->
|
||||
<div class="row">
|
||||
<div class="col-lg-12 collapse" id="collapseHelp">
|
||||
<div class="well">
|
||||
|
||||
<h4>Lehrauftrag Standard-Bestellprozess</h4>
|
||||
<div class="panel panel-body">
|
||||
<table>
|
||||
<tr class="text-center">
|
||||
<td><img src="../../../public/images/icons/fa-user-tag.png" style="height: 60px; width: 60px;"></td>
|
||||
<td><i class='fa fa-2x fa-long-arrow-right'></i></td>
|
||||
<td><img src="../../../public/images/icons/fa-user-check.png" style="height: 60px; width: 60px;"></td>
|
||||
<td><i class='fa fa-2x fa-long-arrow-right'></i></td>
|
||||
<td><i class='fa fa-2x fa-handshake-o'></i></td>
|
||||
</tr>
|
||||
<tr class="text-center">
|
||||
<td class="text-muted">BESTELLEN<br>(Studiengangsleitung)</td>
|
||||
<td></td>
|
||||
<td><b>ERTEILEN<br>(Department-/Kompetenzfeldleitung)</b></td>
|
||||
<td></td>
|
||||
<td class="text-muted">ANNEHMEN<br>(LektorIn)</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<h4>Lehraufträge erteilen</h4>
|
||||
<div class="panel panel-body">
|
||||
Sobald Lehraufträge bestellt wurden, können Sie diese hier erteilen.<br>
|
||||
Erteilte Lehraufträge können von den Lehrenden angenommen werden.<br>
|
||||
<ol>
|
||||
<li>Klicken Sie unten auf das Status-Icon 'Nur bestellte anzeigen' oder 'Alle anzeigen'</li>
|
||||
<li>Wählen Sie die zu erteilenden Lehraufträge selbst oder alle über den Button 'Alle auswählen'.</li>
|
||||
<li>Klicken Sie auf Lehrauftrag erteilen.</li>
|
||||
</ol>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<h4>Geänderte Lehraufträge</h4>
|
||||
<div class="panel panel-body">
|
||||
Im FAS können Änderungen an Stunden/Stundensatz eines Lehrauftrags durchgeführt werden, solange dieser nicht vom Lehrenden angenommen wurde.<br>
|
||||
Wenn Änderungen an bereits bestellten oder erteilten Lehraufträgen vorgenommen wurden, müssen diese vom Studiengang erneut bestellt werden.<br>
|
||||
Bei bereits erteilten Lehraufträgen wird zusätzlich der Status 'erteilt' zurückgesetzt.
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<h4>Warum kann ich manche Lehraufträge nicht auswählen?</h4>
|
||||
<div class="panel panel-body">
|
||||
Nur Lehraufträge mit dem Status 'bestellt' können gewählt werden.<br>
|
||||
Neue, Bestellte, Akzeptierte oder geänderte Lehraufträge werden nur zu Ihrer Information angezeigt und sind daher NICHT wählbar.
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<h4>Filter</h4>
|
||||
<div class="panel panel-body">
|
||||
<table class="table table-bordered">
|
||||
<tr class="text-center">
|
||||
<td class="col-xs-1"><i class='fa fa-users'></i></td>
|
||||
<td class="col-xs-1"><i class='fa fa-user-plus'></i></td>
|
||||
<td class="col-xs-1"><img src="../../../public/images/icons/fa-user-tag.png" style="height: 30px; width: 30px;"></td>
|
||||
<td class="col-xs-1"><img src="../../../public/images/icons/fa-user-check.png" style="height: 30px; width: 30px;"></td>
|
||||
<td class="col-xs-1"><i class='fa fa-handshake-o'></i></td>
|
||||
<td class="col-xs-1"><img src="../../../public/images/icons/fa-user-edit.png" style="height: 30px; width: 30px;"></td>
|
||||
<td class="col-xs-1"><i class='fa fa-user-secret'></i></td>
|
||||
|
||||
</tr>
|
||||
<tr class="text-center">
|
||||
<td><b>Alle</b><br>Alle Lehraufträge mit jedem Status, auch geänderte und Dummy-Aufträge</td>
|
||||
<td><b>Neu</b><br>Nur Lehraufträge, die im FAS über die Zuteilung eines Lehrenden zu einer Lehreinheit/einem Projekt angelegt und noch nicht bestellt worden sind</td>
|
||||
<td><b>Bestellt</b><br>Nur bestellte UND geänderte bestellte Lehraufträge</td>
|
||||
<td><b>Erteilt</b><br>Nur erteilte UND geänderte erteilte Lehraufträge</td>
|
||||
<td><b>Angenommen</b><br>Nur vom Lehrenden angenommene Lehraufträge</td>
|
||||
<td><b>Geändert</b><br>Nur Lehraufträge, die geändert wurden, nachdem sie bereits bestellt oder erteilt worden sind</td>
|
||||
<td><b>Dummies</b><br>Nur Lehraufträge, die mit einem Dummylektor angelegt sind</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<h4>Auswahl</h4>
|
||||
<div class="panel panel-body">
|
||||
<ul>
|
||||
<li>Einzeln auswählen: <kbd>Strg</kbd> + Klick auf einzelne Zeile(n)</li>
|
||||
<li>Bereich auswählen: <kbd>Shift</kbd> + Klick auf Anfangs- und Endzeile</li>
|
||||
<li>Alle auswählen: Button 'Alle auswählen'</li>
|
||||
</ul>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<h4>Ansicht</h4>
|
||||
<div class="panel panel-body">
|
||||
<b>Spaltenbreite verändern</b>
|
||||
<p>
|
||||
Um die Spaltenbreite zu verändern, fährt man im Spaltenkopf langsam mit dem Mauszeiger auf
|
||||
den rechten Rand der entprechenden Spalte. <br>
|
||||
Sobald sich der Mauszeiger in einen Doppelpfeil verwandelt, wird die Maustaste geklickt und
|
||||
mit gedrückter Maustaste die Spalte nach rechts erweitert oder nach links verkleinert.
|
||||
</p>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- dropdown widgets -->
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<form id="formLehrauftrag" class="form-inline" action="" method="get">
|
||||
<div class="form-group">
|
||||
<?php
|
||||
echo $this->widgetlib->widget(
|
||||
'Studiensemester_widget',
|
||||
array(
|
||||
DropdownWidget::SELECTED_ELEMENT => $studiensemester_selected
|
||||
),
|
||||
array(
|
||||
'name' => 'studiensemester',
|
||||
'id' => 'studiensemester'
|
||||
)
|
||||
);
|
||||
?>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<?php
|
||||
echo $this->widgetlib->widget(
|
||||
'Organisationseinheit_widget',
|
||||
array(
|
||||
DropdownWidget::SELECTED_ELEMENT => $organisationseinheit_selected,
|
||||
'organisationseinheit' => $organisationseinheit
|
||||
),
|
||||
array(
|
||||
'name' => 'organisationseinheit',
|
||||
'id' => 'organisationseinheit'
|
||||
)
|
||||
);
|
||||
?>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<?php
|
||||
echo $this->widgetlib->widget(
|
||||
'Ausbildungssemester_widget',
|
||||
array(
|
||||
DropdownWidget::SELECTED_ELEMENT => $ausbildungssemester_selected,
|
||||
'number_semester' => 6
|
||||
),
|
||||
array(
|
||||
'name' => 'ausbildungssemester',
|
||||
'id' => 'ausbildungssemester'
|
||||
)
|
||||
);
|
||||
?>
|
||||
</div>
|
||||
<button type="submit" name="submit" value="anzeigen" class="btn btn-default form-group">Anzeigen</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- tabulator data table -->
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<?php $this->load->view('lehre/lehrauftrag/approveLehrauftragData.php'); ?>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<!-- filter buttons & erteil-button -->
|
||||
<div class="row">
|
||||
<div class="col-xs-12">
|
||||
<button id="approve-lehrauftraege" class="btn btn-primary pull-right">Lehrauftrag erteilen</button>
|
||||
<div class="btn-toolbar" role="toolbar">
|
||||
<div class="btn-group" role="group">
|
||||
<button id="show-all" class="btn btn-default btn-lehrauftrag" type="button" data-toggle="tooltip" data-placement="left" title="Alle anzeigen"><i class='fa fa-users'></i></button>
|
||||
<button id="show-new" class="btn btn-default btn-lehrauftrag" type="button" data-toggle="tooltip" data-placement="left" title="Nur neue anzeigen"><i class='fa fa-user-plus'></i></button>
|
||||
<button id="show-ordered" class="btn btn-default btn-lehrauftrag active focus" type="button" data-toggle="tooltip" data-placement="left" title="Nur bestellte anzeigen"></button><!-- png img set in javascript -->
|
||||
<button id="show-approved" class="btn btn-default btn-lehrauftrag" type="button" data-toggle="tooltip" data-placement="left" title="Nur erteilte anzeigen"></button><!-- png img set in javascript -->
|
||||
<button id="show-accepted" class="btn btn-default btn-lehrauftrag" type="button" data-toggle="tooltip" data-placement="left" title="Nur angenommene anzeigen"><i class='fa fa-handshake-o'></i></button>
|
||||
</div>
|
||||
<div class="btn-group" role="group" style="margin-left: 20px;">
|
||||
<button id="show-changed" class="btn btn-default btn-lehrauftrag" type="button" data-toggle="tooltip" data-placement="left" title="Nur geänderte anzeigen"></button><!-- png img set in javascript -->
|
||||
</div>
|
||||
<div class="btn-group" role="group" style="margin-left: 20px;">
|
||||
<button id="show-dummies" class="btn btn-default btn-lehrauftrag" type="button" data-toggle="tooltip" data-placement="left" title="Nur verplante ohne Lektor anzeigen (Dummies)"><i class='fa fa-user-secret'></i></button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div><!-- end container -->
|
||||
</div><!-- end page-wrapper -->
|
||||
<br>
|
||||
</body>
|
||||
|
||||
<?php $this->load->view('templates/FHC-Footer'); ?>
|
||||
@@ -0,0 +1,418 @@
|
||||
<?php
|
||||
|
||||
$STUDIENSEMESTER = $studiensemester_selected;
|
||||
$ORGANISATIONSEINHEIT = (isset($organisationseinheit_selected) && !is_null($organisationseinheit_selected)) ? array($organisationseinheit_selected) : $organisationseinheit;
|
||||
$AUSBILDUNGSSEMESTER = (isset($ausbildungssemester_selected) && !is_null($ausbildungssemester_selected)) ? $ausbildungssemester_selected : '1,2,3,4,5,6,7,8';
|
||||
|
||||
$query = '
|
||||
SELECT
|
||||
/* provide extra row index for tabulator, because no other column has unique ids */
|
||||
ROW_NUMBER() OVER () AS "row_index",
|
||||
personalnummer,
|
||||
lehreinheit_id,
|
||||
lehrveranstaltung_id,
|
||||
lv_bezeichnung,
|
||||
projektarbeit_id,
|
||||
studiensemester_kurzbz,
|
||||
studiengang_kz,
|
||||
stg_typ_kurzbz,
|
||||
semester,
|
||||
orgform_kurzbz,
|
||||
person_id,
|
||||
typ,
|
||||
auftrag,
|
||||
lv_oe_kurzbz,
|
||||
gruppe,
|
||||
lektor,
|
||||
stunden,
|
||||
betrag,
|
||||
vertrag_id,
|
||||
vertrag_stunden,
|
||||
vertrag_betrag,
|
||||
mitarbeiter_uid,
|
||||
bestellt,
|
||||
erteilt,
|
||||
akzeptiert,
|
||||
(SELECT
|
||||
vorname || \' \' || nachname
|
||||
FROM
|
||||
public.tbl_person
|
||||
JOIN public.tbl_benutzer benutzer USING (person_id)
|
||||
WHERE
|
||||
benutzer.uid = (
|
||||
SELECT
|
||||
insertvon
|
||||
FROM
|
||||
lehre.tbl_vertrag_vertragsstatus vvs
|
||||
WHERE
|
||||
vvs.vertragsstatus_kurzbz = \'bestellt\'
|
||||
AND vvs.vertrag_id = auftraege.vertrag_id
|
||||
)
|
||||
) AS "bestellt_von",
|
||||
(SELECT
|
||||
vorname || \' \' || nachname
|
||||
FROM
|
||||
public.tbl_person
|
||||
JOIN public.tbl_benutzer benutzer USING (person_id)
|
||||
WHERE
|
||||
benutzer.uid = (
|
||||
SELECT
|
||||
insertvon
|
||||
FROM
|
||||
lehre.tbl_vertrag_vertragsstatus vvs
|
||||
WHERE
|
||||
vvs.vertragsstatus_kurzbz = \'erteilt\'
|
||||
AND vvs.vertrag_id = auftraege.vertrag_id
|
||||
)
|
||||
) AS "erteilt_von",
|
||||
(SELECT
|
||||
vorname || \' \' || nachname
|
||||
FROM
|
||||
public.tbl_person
|
||||
JOIN public.tbl_benutzer benutzer USING (person_id)
|
||||
WHERE
|
||||
benutzer.uid = (
|
||||
SELECT
|
||||
insertvon
|
||||
FROM
|
||||
lehre.tbl_vertrag_vertragsstatus vvs
|
||||
WHERE
|
||||
vvs.vertragsstatus_kurzbz = \'akzeptiert\'
|
||||
AND vvs.vertrag_id = auftraege.vertrag_id
|
||||
)
|
||||
) AS "akzeptiert_von"
|
||||
FROM
|
||||
(
|
||||
/* Lehraufträge and -vertragsstati */
|
||||
SELECT *,
|
||||
/* concatinated and aggregated gruppen */
|
||||
(SELECT
|
||||
string_agg(
|
||||
CASE WHEN gruppe_kurzbz is null THEN
|
||||
concat(upper(grpstg.typ || grpstg.kurzbz), \'-\', semester, verband, gruppe)
|
||||
ELSE
|
||||
gruppe_kurzbz
|
||||
END
|
||||
, \', \')
|
||||
FROM
|
||||
lehre.tbl_lehreinheitgruppe
|
||||
JOIN public.tbl_studiengang grpstg USING(studiengang_kz)
|
||||
WHERE
|
||||
lehreinheit_id = tmp_lehrauftraege.lehreinheit_id
|
||||
) AS "gruppe",
|
||||
/* existing contracts with status bestellt */
|
||||
(SELECT
|
||||
datum
|
||||
FROM
|
||||
lehre.tbl_vertrag_vertragsstatus
|
||||
WHERE
|
||||
tbl_vertrag_vertragsstatus.vertragsstatus_kurzbz = \'bestellt\'
|
||||
AND vertrag_id = tmp_lehrauftraege.vertrag_id) AS "bestellt",
|
||||
/* existing contracts with status erteilt */
|
||||
(SELECT
|
||||
datum
|
||||
FROM
|
||||
lehre.tbl_vertrag_vertragsstatus
|
||||
WHERE
|
||||
tbl_vertrag_vertragsstatus.vertragsstatus_kurzbz = \'erteilt\'
|
||||
AND vertrag_id = tmp_lehrauftraege.vertrag_id) AS "erteilt",
|
||||
/* existing contracts with status akzeptiert */
|
||||
(SELECT
|
||||
datum
|
||||
FROM
|
||||
lehre.tbl_vertrag_vertragsstatus
|
||||
WHERE
|
||||
tbl_vertrag_vertragsstatus.vertragsstatus_kurzbz = \'akzeptiert\'
|
||||
AND vertrag_id = tmp_lehrauftraege.vertrag_id) AS "akzeptiert"
|
||||
FROM
|
||||
(
|
||||
SELECT
|
||||
/* lehrauftraege also planned with dummies, therefore personalnummer is needed */
|
||||
ma.personalnummer,
|
||||
lema.lehreinheit_id,
|
||||
lv.lehrveranstaltung_id,
|
||||
lv.bezeichnung AS "lv_bezeichnung",
|
||||
NULL AS "projektarbeit_id",
|
||||
le.studiensemester_kurzbz,
|
||||
stg.studiengang_kz,
|
||||
upper(stg.typ || stg.kurzbz) AS "stg_typ_kurzbz",
|
||||
lv.orgform_kurzbz,
|
||||
person.person_id,
|
||||
upper(lv.lehrtyp_kurzbz) AS "typ",
|
||||
(lv.bezeichnung || \' [\' || le.lehrform_kurzbz ||
|
||||
\']\') AS "auftrag",
|
||||
lv.semester,
|
||||
CASE
|
||||
WHEN oe.organisationseinheittyp_kurzbz = \'Kompetenzfeld\' THEN (\'KF \' || oe.bezeichnung)
|
||||
WHEN oe.organisationseinheittyp_kurzbz = \'Department\' THEN (\'DEP \' || oe.bezeichnung)
|
||||
ELSE (oe.organisationseinheittyp_kurzbz || \' \' || oe.bezeichnung)
|
||||
END AS "lv_oe_kurzbz",
|
||||
(person.nachname || \' \' || person.vorname) AS "lektor",
|
||||
TRUNC(lema.semesterstunden, 1) AS "stunden",
|
||||
TRUNC((lema.semesterstunden * lema.stundensatz), 2) AS "betrag",
|
||||
vertrag_id,
|
||||
vertragsstunden AS "vertrag_stunden",
|
||||
vertrag.betrag AS "vertrag_betrag",
|
||||
mitarbeiter_uid
|
||||
FROM
|
||||
lehre.tbl_lehreinheitmitarbeiter lema
|
||||
JOIN lehre.tbl_lehreinheit le USING (lehreinheit_id)
|
||||
JOIN lehre.tbl_lehrveranstaltung lv USING (lehrveranstaltung_id)
|
||||
JOIN PUBLIC.tbl_organisationseinheit oe USING (oe_kurzbz)
|
||||
JOIN PUBLIC.tbl_mitarbeiter ma USING (mitarbeiter_uid)
|
||||
JOIN PUBLIC.tbl_benutzer benutzer
|
||||
ON ma.mitarbeiter_uid = benutzer.uid
|
||||
JOIN PUBLIC.tbl_person person USING (person_id)
|
||||
LEFT JOIN lehre.tbl_vertrag vertrag USING (vertrag_id)
|
||||
JOIN PUBLIC.tbl_studiengang stg ON stg.studiengang_kz = lv.studiengang_kz
|
||||
WHERE
|
||||
/* filter organisationseinheit */
|
||||
lv.oe_kurzbz IN (\'' . implode('\',\'', $ORGANISATIONSEINHEIT) . '\')
|
||||
/* filter studiensemester */
|
||||
AND le.studiensemester_kurzbz = \'' . $STUDIENSEMESTER . '\'
|
||||
/* filter active lehrveranstaltungen */
|
||||
AND lv.aktiv = TRUE
|
||||
/* filter active organisationseinheiten */
|
||||
AND oe.aktiv = TRUE
|
||||
/* filter ausbildungssemester */
|
||||
AND lv.semester IN ('. $AUSBILDUNGSSEMESTER . ')
|
||||
) tmp_lehrauftraege
|
||||
|
||||
UNION
|
||||
|
||||
/* Projektbetreuungsaufträge and -vertragsstati */
|
||||
SELECT *,
|
||||
/* mitarbeiter uid retrieved by person_id */
|
||||
/* NOTE: mitarbeiter MUST come after Select * to ensure correct order with select for tmp_lehrauftraege*/
|
||||
(SELECT
|
||||
uid
|
||||
FROM
|
||||
public.tbl_benutzer
|
||||
WHERE
|
||||
person_id = tmp_projektbetreuung.person_id
|
||||
ORDER BY aktiv DESC, updateaktivam DESC -- accept inactive as some person_ids have no active, but order them last
|
||||
LIMIT 1) AS "mitarbeiter_uid",
|
||||
/* concatinated and aggregated gruppen */
|
||||
(SELECT
|
||||
string_agg(
|
||||
CASE WHEN gruppe_kurzbz is null THEN
|
||||
concat(upper(grpstg.typ || grpstg.kurzbz), \'-\', semester, verband, gruppe)
|
||||
ELSE
|
||||
gruppe_kurzbz
|
||||
END
|
||||
, \', \')
|
||||
FROM
|
||||
lehre.tbl_lehreinheitgruppe
|
||||
JOIN public.tbl_studiengang grpstg USING(studiengang_kz)
|
||||
WHERE
|
||||
lehreinheit_id = tmp_projektbetreuung.lehreinheit_id
|
||||
) AS "gruppe",
|
||||
/* existing contracts with status bestellt */
|
||||
(SELECT
|
||||
datum
|
||||
FROM
|
||||
lehre.tbl_vertrag_vertragsstatus
|
||||
WHERE
|
||||
tbl_vertrag_vertragsstatus.vertragsstatus_kurzbz = \'bestellt\'
|
||||
AND vertrag_id = tmp_projektbetreuung.vertrag_id) AS "bestellt",
|
||||
/* existing contracts with status erteilt */
|
||||
(SELECT
|
||||
datum
|
||||
FROM
|
||||
lehre.tbl_vertrag_vertragsstatus
|
||||
WHERE
|
||||
tbl_vertrag_vertragsstatus.vertragsstatus_kurzbz = \'erteilt\'
|
||||
AND vertrag_id = tmp_projektbetreuung.vertrag_id) AS "erteilt",
|
||||
/* existing contracts with status akzeptiert */
|
||||
(SELECT
|
||||
datum
|
||||
FROM
|
||||
lehre.tbl_vertrag_vertragsstatus
|
||||
WHERE
|
||||
tbl_vertrag_vertragsstatus.vertragsstatus_kurzbz = \'akzeptiert\'
|
||||
AND vertrag_id = tmp_projektbetreuung.vertrag_id) AS "akzeptiert"
|
||||
FROM
|
||||
(
|
||||
SELECT
|
||||
/* projektbetreuung does not plan with dummies, therefore no need to retrieve personalnummer */
|
||||
NULL AS personalnummer,
|
||||
pa.lehreinheit_id,
|
||||
lv.lehrveranstaltung_id,
|
||||
lv.bezeichnung AS "lv_bezeichnung",
|
||||
pa.projektarbeit_id AS "projektarbeit_id",
|
||||
le.studiensemester_kurzbz,
|
||||
stg.studiengang_kz,
|
||||
upper(stg.typ || stg.kurzbz) AS "stg_typ_kurzbz",
|
||||
lv.orgform_kurzbz,
|
||||
person.person_id,
|
||||
\'Betreuung\' AS "typ",
|
||||
(betreuerart_kurzbz || \' \' ||
|
||||
(SELECT
|
||||
vorname || \' \' || nachname
|
||||
FROM
|
||||
PUBLIC.tbl_person
|
||||
JOIN PUBLIC.tbl_benutzer USING (person_id)
|
||||
WHERE
|
||||
uid = pa.student_uid
|
||||
)
|
||||
|| \' [\' || projekttyp_kurzbz || \'arbeit]\') AS "auftrag",
|
||||
lv.semester,
|
||||
CASE
|
||||
WHEN oe.organisationseinheittyp_kurzbz =
|
||||
\'Kompetenzfeld\' THEN (
|
||||
\'KF \' || oe.bezeichnung)
|
||||
WHEN oe.organisationseinheittyp_kurzbz =
|
||||
\'Department\' THEN (
|
||||
\'DEP \' || oe.bezeichnung)
|
||||
ELSE (oe.organisationseinheittyp_kurzbz ||
|
||||
\' \' || oe.bezeichnung)
|
||||
END AS "lv_oe_kurzbz",
|
||||
(nachname || \' \' || vorname) AS "lektor",
|
||||
TRUNC(pb.stunden, 1) AS "stunden",
|
||||
TRUNC((pb.stunden * pb.stundensatz), 2) AS "betrag",
|
||||
vertrag_id,
|
||||
vertragsstunden AS "vertrag_stunden",
|
||||
vertrag.betrag AS "vertrag_betrag"
|
||||
FROM
|
||||
lehre.tbl_projektbetreuer pb
|
||||
JOIN lehre.tbl_projektarbeit pa USING (projektarbeit_id)
|
||||
JOIN lehre.tbl_lehreinheit le USING (lehreinheit_id)
|
||||
JOIN lehre.tbl_lehrveranstaltung lv USING (lehrveranstaltung_id)
|
||||
JOIN PUBLIC.tbl_organisationseinheit oe USING (oe_kurzbz)
|
||||
JOIN PUBLIC.tbl_person person USING (person_id)
|
||||
LEFT JOIN lehre.tbl_vertrag vertrag USING (vertrag_id)
|
||||
JOIN PUBLIC.tbl_studiengang stg
|
||||
ON stg.studiengang_kz = lv.studiengang_kz
|
||||
WHERE
|
||||
/* filter organisationseinheit */
|
||||
lv.oe_kurzbz IN (\'' . implode('\',\'', $ORGANISATIONSEINHEIT) . '\')
|
||||
/* filter studiensemester */
|
||||
AND le.studiensemester_kurzbz = \'' . $STUDIENSEMESTER . '\'
|
||||
/* filter active lehrveranstaltungen */
|
||||
AND lv.aktiv = TRUE
|
||||
/* filter active organisationseinheiten */
|
||||
AND oe.aktiv = TRUE
|
||||
/* filter ausbildungssemester */
|
||||
AND lv.semester IN ('. $AUSBILDUNGSSEMESTER . ')
|
||||
) tmp_projektbetreuung
|
||||
) auftraege
|
||||
ORDER BY "typ" DESC, "auftrag", "personalnummer" DESC, "lektor", "bestellt", "erteilt"
|
||||
';
|
||||
|
||||
$filterWidgetArray = array(
|
||||
'query' => $query,
|
||||
'tableUniqueId' => 'approveLehrauftrag',
|
||||
'requiredPermissions' => 'lehre/lehrauftrag_erteilen',
|
||||
'datasetRepresentation' => 'tabulator',
|
||||
'columnsAliases' => array( // TODO: use phrasen
|
||||
'Status', // alias for row_index, because row_index is formatted to display the status icons
|
||||
'Personalnummer',
|
||||
'LV-Teil',
|
||||
'LV-ID',
|
||||
'LV',
|
||||
'PA-ID',
|
||||
'Studiensemester',
|
||||
'Studiengang-KZ',
|
||||
'Studiengang',
|
||||
'Semester',
|
||||
'OrgForm',
|
||||
'Person-ID',
|
||||
'Typ',
|
||||
'LV- / Projektbezeichnung',
|
||||
'Organisationseinheit',
|
||||
'Gruppe',
|
||||
'Lektor',
|
||||
'Stunden',
|
||||
'Betrag',
|
||||
'Vertrag-ID',
|
||||
'Vertrag-Stunden',
|
||||
'Vertrag-Betrag',
|
||||
'UID',
|
||||
'Bestellt',
|
||||
'Erteilt',
|
||||
'Angenommen',
|
||||
'Bestellt von',
|
||||
'Erteilt von',
|
||||
'Angenommen von'
|
||||
),
|
||||
'datasetRepOptions' => '{
|
||||
height: 700,
|
||||
layout: "fitColumns", // fit columns to width of table
|
||||
responsiveLayout: "hide", // hide columns that dont fit on the table
|
||||
movableColumns: true, // allows changing column
|
||||
placeholder: func_placeholder(),
|
||||
headerFilterPlaceholder: " ",
|
||||
groupBy:"lehrveranstaltung_id",
|
||||
groupToggleElement:"header", //toggle group on click anywhere in the group header
|
||||
groupHeader: function(value, count, data, group){
|
||||
return func_groupHeader(data);
|
||||
},
|
||||
columnCalcs:"both", // show column calculations at top and bottom of table and in groups
|
||||
index: "row_index", // assign specific column as unique id (important for row indexing)
|
||||
selectable: true, // allow row selection
|
||||
selectableRangeMode: "click", // allow range selection using shift end click on end of range
|
||||
selectablePersistence:false, // deselect previously selected rows when table is filtered, sorted or paginated
|
||||
selectableCheck: function(row){
|
||||
return func_selectableCheck(row);
|
||||
},
|
||||
initialFilter: func_initialFilter(),
|
||||
footerElement: func_footerElement(),
|
||||
rowUpdated:function(row){
|
||||
func_rowUpdated(row);
|
||||
},
|
||||
rowSelectionChanged:function(data, rows){
|
||||
func_rowSelectionChanged(data, rows);
|
||||
},
|
||||
rowFormatter:function(row)
|
||||
{
|
||||
func_rowFormatter(row);
|
||||
},
|
||||
renderStarted:function(){
|
||||
func_renderStarted(this);
|
||||
},
|
||||
tableBuilt: function(){
|
||||
func_tableBuilt(this);
|
||||
}
|
||||
}', // tabulator properties
|
||||
'datasetRepFieldsDefs' => '{
|
||||
// column status is built dynamically in funcTableBuilt(),
|
||||
row_index: {visible:false}, // necessary for row indexing
|
||||
personalnummer: {visible: false},
|
||||
lehreinheit_id: {headerFilter:"input", bottomCalc:"count", width: "7%",
|
||||
bottomCalcFormatter:function(cell){return "Anzahl: " + cell.getValue();},},
|
||||
lehrveranstaltung_id: {headerFilter:"input"},
|
||||
lv_bezeichnung: {visible: false},
|
||||
projektarbeit_id: {visible: false},
|
||||
studiensemester_kurzbz: {headerFilter:"input"},
|
||||
studiengang_kz: {visible: false},
|
||||
stg_typ_kurzbz: {headerFilter:"input", width: "5%"},
|
||||
semester: {headerFilter:"input"},
|
||||
orgform_kurzbz: {headerFilter:"input"},
|
||||
person_id: {visible: false},
|
||||
typ: {headerFilter:"input"},
|
||||
auftrag: {headerFilter:"input", width:"20%"},
|
||||
lv_oe_kurzbz: {headerFilter:"input"},
|
||||
gruppe: {headerFilter:"input"},
|
||||
lektor: {headerFilter:"input", widthGrow: 3},
|
||||
stunden: {align:"right", formatter: form_formatNulltoStringNumber, formatterParams:{precision:1},
|
||||
headerFilter:"input", headerFilterFunc: hf_filterStringnumberWithOperator,
|
||||
bottomCalc:"sum", bottomCalcParams:{precision:1}},
|
||||
betrag: {align:"right", width: "8%", formatter: form_formatNulltoStringNumber,
|
||||
headerFilter:"input", headerFilterFunc: hf_filterStringnumberWithOperator,
|
||||
bottomCalc:"sum", bottomCalcParams:{precision:2}, bottomCalcFormatter:"money", bottomCalcFormatterParams:{decimal: ",", thousand: ".", symbol:"€"}},
|
||||
vertrag_id: {visible: false},
|
||||
vertrag_stunden: {visible: false},
|
||||
vertrag_betrag: {visible: false},
|
||||
mitarbeiter_uid: {visible: false},
|
||||
bestellt: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: bestellt_tooltip, width: "8%"},
|
||||
erteilt: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: erteilt_tooltip, width: "8%"},
|
||||
akzeptiert: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: akzeptiert_tooltip, width: "8%"},
|
||||
bestellt_von: {visible: false},
|
||||
erteilt_von: {visible: false},
|
||||
akzeptiert_von: {visible: false},
|
||||
}', // col properties
|
||||
);
|
||||
|
||||
echo $this->widgetlib->widget('TableWidget', $filterWidgetArray);
|
||||
|
||||
?>
|
||||
@@ -0,0 +1,104 @@
|
||||
<?php
|
||||
|
||||
$STUDIENSEMESTER = $studiensemester_selected;
|
||||
$UID = getAuthUID();
|
||||
|
||||
$query = '
|
||||
SELECT
|
||||
vertrag_id,
|
||||
vertragsstunden_studiensemester_kurzbz,
|
||||
vertragstyp_kurzbz,
|
||||
bezeichnung,
|
||||
vertragsstunden,
|
||||
betrag,
|
||||
datum AS "storniert",
|
||||
(
|
||||
SELECT
|
||||
vorname || \' \' || nachname
|
||||
FROM
|
||||
public.tbl_person
|
||||
JOIN public.tbl_benutzer benutzer USING (person_id)
|
||||
WHERE benutzer.uid = (
|
||||
SELECT
|
||||
insertvon
|
||||
FROM
|
||||
lehre.tbl_vertrag_vertragsstatus
|
||||
WHERE vertragsstatus_kurzbz = \'storno\'
|
||||
AND vertrag_id = vvs.vertrag_id
|
||||
)
|
||||
) AS "storniert_von",
|
||||
(
|
||||
SELECT
|
||||
vertragsstatus_kurzbz
|
||||
FROM
|
||||
lehre.tbl_vertrag_vertragsstatus
|
||||
WHERE vertrag_id = vvs.vertrag_id
|
||||
AND vertragsstatus_kurzbz != \'storno\'
|
||||
ORDER BY datum DESC
|
||||
LIMIT 1
|
||||
) AS "letzterStatus_vorStorniert"
|
||||
FROM lehre.tbl_vertrag_vertragsstatus vvs
|
||||
JOIN lehre.tbl_vertrag USING (vertrag_id)
|
||||
WHERE
|
||||
/* filter lector */
|
||||
uid = \'' . $UID . '\'
|
||||
/* filter studiensemester */
|
||||
AND vertragsstunden_studiensemester_kurzbz = \'' . $STUDIENSEMESTER . '\'
|
||||
/* filter cancelled only */
|
||||
AND vertragsstatus_kurzbz = \'storno\'
|
||||
';
|
||||
|
||||
$tableWidgetArray = array(
|
||||
'query' => $query,
|
||||
'tableUniqueId' => 'cancelledLehrauftrag',
|
||||
'requiredPermissions' => 'lehre/lehrauftrag_akzeptieren',
|
||||
'datasetRepresentation' => 'tabulator',
|
||||
'columnsAliases' => array( // TODO: use phrasen
|
||||
'Status',
|
||||
'Studiensemester',
|
||||
'Typ',
|
||||
'LV- / Projektbezeichnung',
|
||||
'Stunden',
|
||||
'Betrag',
|
||||
'Storniert am'
|
||||
),
|
||||
'datasetRepOptions' => '{
|
||||
layout: "fitColumns", // fit columns to width of table
|
||||
responsiveLayout: "hide", // hide columns that dont fit on the table
|
||||
movableColumns: true, // allows changing column
|
||||
placeholder: func_placeholder(),
|
||||
rowFormatter:function(row){
|
||||
func_rowFormatter(row);
|
||||
},
|
||||
selectableCheck: function(row){
|
||||
return func_selectableCheck(row);
|
||||
},
|
||||
renderComplete:function(){
|
||||
func_renderComplete(this);
|
||||
},
|
||||
tableBuilt: function(){
|
||||
func_tableBuilt(this);
|
||||
}
|
||||
}', // tabulator properties
|
||||
'datasetRepFieldsDefs' => '{
|
||||
vertrag_id: {visible: false},
|
||||
vertragsstunden_studiensemester_kurzbz: {visible: false},
|
||||
vertragstyp_kurzbz: {widthGrow: 2},
|
||||
bezeichnung: {widthGrow: 2},
|
||||
vertragsstunden: {
|
||||
align:"right", formatter: form_formatNulltoStringNumber, formatterParams:{precision:1},
|
||||
bottomCalc:"sum", bottomCalcParams:{precision:1}
|
||||
},
|
||||
betrag: {
|
||||
align:"right", formatter: form_formatNulltoStringNumber,
|
||||
bottomCalc:"sum", bottomCalcParams:{precision:2}, bottomCalcFormatter:"money", bottomCalcFormatterParams:{decimal: ",", thousand: ".", symbol:"€"}
|
||||
},
|
||||
storniert: {align:"center", mutator: mut_formatStringDate, tooltip: storniert_tooltip},
|
||||
storniert_von: {visible: false},
|
||||
letzterStatus_vorStorniert: {visible: false}
|
||||
}', // col properties
|
||||
);
|
||||
|
||||
echo $this->widgetlib->widget('TableWidget', $tableWidgetArray);
|
||||
|
||||
?>
|
||||
@@ -0,0 +1,242 @@
|
||||
<?php
|
||||
// TODO: phrasen anpassen
|
||||
$this->load->view(
|
||||
'templates/FHC-Header',
|
||||
array(
|
||||
'title' => 'Lehrauftrag bestellen',
|
||||
'jquery' => true,
|
||||
'jqueryui' => true,
|
||||
'jquerycheckboxes' => true,
|
||||
'bootstrap' => true,
|
||||
'fontawesome' => true,
|
||||
'sbadmintemplate' => true,
|
||||
'tabulator' => true,
|
||||
'momentjs' => true,
|
||||
'ajaxlib' => true,
|
||||
'dialoglib' => true,
|
||||
'tablewidget' => true,
|
||||
'navigationwidget' => true,
|
||||
'phrases' => array(
|
||||
'global' => array('lehrauftraegeBestellen'),
|
||||
),
|
||||
'customJSs' => array(
|
||||
'public/js/bootstrapper.js',
|
||||
'public/js/lehre/lehrauftrag/orderLehrauftrag.js'
|
||||
)
|
||||
)
|
||||
);
|
||||
?>
|
||||
|
||||
<body>
|
||||
<?php echo $this->widgetlib->widget('NavigationWidget'); ?>
|
||||
<div id="page-wrapper">
|
||||
<div class="container-fluid">
|
||||
|
||||
<!-- title & helper link -->
|
||||
<div class="row">
|
||||
<div class="col-lg-12 page-header">
|
||||
<a class="pull-right" data-toggle="collapse" href="#collapseHelp" aria-expanded="false" aria-controls="collapseExample">
|
||||
Hilfe zu dieser Seite
|
||||
</a>
|
||||
<h3>
|
||||
<?php echo ucfirst($this->p->t('global', 'lehrauftraegeBestellen')); ?>
|
||||
</h3>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- helper collapse module -->
|
||||
<div class="row">
|
||||
<div class="col-lg-12 collapse" id="collapseHelp">
|
||||
<div class="well">
|
||||
|
||||
<h4>Lehrauftrag Standard-Bestellprozess</h4>
|
||||
<div class="panel panel-body">
|
||||
<table>
|
||||
<tr class="text-center">
|
||||
<td><img src="../../../public/images/icons/fa-user-tag.png" style="height: 60px; width: 60px;"></td>
|
||||
<td><i class='fa fa-2x fa-long-arrow-right'></i></td>
|
||||
<td><img src="../../../public/images/icons/fa-user-check.png" style="height: 60px; width: 60px;"></td>
|
||||
<td><i class='fa fa-2x fa-long-arrow-right'></i></td>
|
||||
<td><i class='fa fa-2x fa-handshake-o'></i></td>
|
||||
</tr>
|
||||
<tr class="text-center">
|
||||
<td><b>BESTELLEN<br>(Studiengangsleitung)</b></td>
|
||||
<td></td>
|
||||
<td class="text-muted">ERTEILEN<br>(Department-/Kompetenzfeldleitung)</td>
|
||||
<td></td>
|
||||
<td class="text-muted">ANNEHMEN<br>(LektorIn)</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<h4>Lehraufträge bestellen</h4>
|
||||
<div class="panel panel-body">
|
||||
Sobald im FAS ein Lehrauftrag/eine Projektbetreuung angelegt wurde, können Sie diese hier bestellen.<br>
|
||||
Bestellte Lehraufträge sind zur Erteilung freigegeben.<br>
|
||||
<ol>
|
||||
<li>Klicken Sie unten auf das Status-Icon 'Nur neue anzeigen', 'Nur geänderte anzeigen' oder 'Alle anzeigen'</li>
|
||||
<li>Wählen Sie die zu bestellenden Lehraufträge selbst oder über den Button 'Alle auswählen'.</li>
|
||||
<li>Klicken Sie auf Lehrauftrag bestellen.</li>
|
||||
</ol>
|
||||
Für jeden bestellten Lehrauftrag legt das System einen Vertrag an.
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<h4>Geänderte Lehraufträge</h4>
|
||||
<div class="panel panel-body">
|
||||
Im FAS können Änderungen an Stunden/Stundensatz eines Lehrauftrags durchgeführt werden, solange dieser nicht vom Lehrenden angenommen wurde.<br>
|
||||
Diese müssen dann erneut bestellt werden.<br><br>
|
||||
Wenn Änderungen an bereits bestellten oder erteilten Lehraufträgen vorgenommen wurden, werden diese in einem tooltip angezeigt.<br>
|
||||
Fahren Sie dazu mit der Maus über dem Status-Icon am Beginn der Zeile.<br>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<h4>Warum kann ich manche Lehraufträge nicht auswählen?</h4>
|
||||
<div class="panel panel-body">
|
||||
Nur Lehraufträge mit dem Status 'neu' und 'geändert' können bestellt werden.<br>
|
||||
Erteilte oder akzeptierte Lehraufträge werden nur zu Ihrer Information angezeigt und sind daher NICHT wählbar.
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<h4>Filter</h4>
|
||||
<div class="panel panel-body">
|
||||
<table class="table table-bordered">
|
||||
<tr class="text-center">
|
||||
<td class="col-xs-1"><i class='fa fa-users'></i></td>
|
||||
<td class="col-xs-1"><i class='fa fa-user-plus'></i></td>
|
||||
<td class="col-xs-1"><img src="../../../public/images/icons/fa-user-tag.png" style="height: 30px; width: 30px;"></td>
|
||||
<td class="col-xs-1"><img src="../../../public/images/icons/fa-user-check.png" style="height: 30px; width: 30px;"></td>
|
||||
<td class="col-xs-1"><i class='fa fa-handshake-o'></i></td>
|
||||
<td class="col-xs-1"><img src="../../../public/images/icons/fa-user-edit.png" style="height: 30px; width: 30px;"></td>
|
||||
<td class="col-xs-1"><i class='fa fa-user-secret'></i></td>
|
||||
|
||||
</tr>
|
||||
<tr class="text-center">
|
||||
<td><b>Alle</b><br>Alle Lehraufträge mit jedem Status, auch geänderte und Dummy-Aufträge</td>
|
||||
<td><b>Neu</b><br>Nur Lehraufträge, die im FAS über die Zuteilung eines Lehrenden zu einer Lehreinheit/einem Projekt angelegt und noch nicht bestellt worden sind</td>
|
||||
<td><b>Bestellt</b><br>Nur bestellte UND geänderte bestellte Lehraufträge</td>
|
||||
<td><b>Erteilt</b><br>Nur erteilte UND geänderte erteilte Lehraufträge</td>
|
||||
<td><b>Angenommen</b><br>Nur vom Lehrenden angenommene Lehraufträge</td>
|
||||
<td><b>Geändert</b><br>Nur Lehraufträge, die geändert wurden, nachdem sie bereits bestellt oder erteilt worden sind</td>
|
||||
<td><b>Dummies</b><br>Nur Lehraufträge, die mit einem Dummylektor angelegt sind</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<h4>Auswahl</h4>
|
||||
<div class="panel panel-body">
|
||||
<ul>
|
||||
<li>Einzeln auswählen: <kbd>Strg</kbd> + Klick auf einzelne Zeile(n)</li>
|
||||
<li>Bereich auswählen: <kbd>Shift</kbd> + Klick auf Anfangs- und Endzeile</li>
|
||||
<li>Alle auswählen: Button 'Alle auswählen'</li>
|
||||
</ul>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<h4>Ansicht</h4>
|
||||
<div class="panel panel-body">
|
||||
<b>Spaltenbreite verändern</b>
|
||||
<p>
|
||||
Um die Spaltenbreite zu verändern, fährt man im Spaltenkopf langsam mit dem Mauszeiger auf
|
||||
den rechten Rand der entprechenden Spalte. <br>
|
||||
Sobald sich der Mauszeiger in einen Doppelpfeil verwandelt, wird die Maustaste geklickt und
|
||||
mit gedrückter Maustaste die Spalte nach rechts erweitert oder nach links verkleinert.
|
||||
</p>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- dropdown widgets -->
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<form id="formLehrauftrag" class="form-inline" action="" method="get">
|
||||
<div class="form-group">
|
||||
<?php
|
||||
echo $this->widgetlib->widget(
|
||||
'Studiensemester_widget',
|
||||
array(
|
||||
DropdownWidget::SELECTED_ELEMENT => $studiensemester_selected
|
||||
),
|
||||
array(
|
||||
'name' => 'studiensemester',
|
||||
'id' => 'studiensemester'
|
||||
)
|
||||
);
|
||||
?>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<?php
|
||||
echo $this->widgetlib->widget(
|
||||
'Studiengang_widget',
|
||||
array(
|
||||
DropdownWidget::SELECTED_ELEMENT => $studiengang_selected,
|
||||
'studiengang' => $studiengang
|
||||
),
|
||||
array(
|
||||
'name' => 'studiengang',
|
||||
'id' => 'studiengang'
|
||||
)
|
||||
);
|
||||
?>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<?php
|
||||
echo $this->widgetlib->widget(
|
||||
'Ausbildungssemester_widget',
|
||||
array(
|
||||
DropdownWidget::SELECTED_ELEMENT => $ausbildungssemester_selected,
|
||||
'number_semester' => 6
|
||||
),
|
||||
array(
|
||||
'name' => 'ausbildungssemester',
|
||||
'id' => 'ausbildungssemester'
|
||||
)
|
||||
);
|
||||
?>
|
||||
</div>
|
||||
<button type="submit" name="submit" value="anzeigen" class="btn btn-default form-group">Anzeigen</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- tabulator data table -->
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<?php $this->load->view('lehre/lehrauftrag/orderLehrauftragData.php'); ?>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<!-- filter buttons & bestell-button -->
|
||||
<div class="row">
|
||||
<div class="col-xs-12">
|
||||
<button id="order-lehrauftraege" class="btn btn-primary pull-right" data-toggle="tooltip" data-placement="left" title="">Lehrauftrag bestellen</button>
|
||||
<div class="btn-toolbar" role="toolbar">
|
||||
<div class="btn-group" role="group">
|
||||
<button id="show-all" class="btn btn-default btn-lehrauftrag" type="button" data-toggle="tooltip" data-placement="left" title="Alle anzeigen"><i class='fa fa-users'></i></button>
|
||||
<button id="show-new" class="btn btn-default btn-lehrauftrag active focus" type="button" data-toggle="tooltip" data-placement="left" title="Nur neue anzeigen"><i class='fa fa-user-plus'></i></button>
|
||||
<button id="show-ordered" class="btn btn-default btn-lehrauftrag" type="button" data-toggle="tooltip" data-placement="left" title="Nur bestellte anzeigen"></button><!-- png img set in javascript -->
|
||||
<button id="show-approved" class="btn btn-default btn-lehrauftrag" type="button" data-toggle="tooltip" data-placement="left" title="Nur erteilte anzeigen"></button><!-- png img set in javascript -->
|
||||
<button id="show-accepted" class="btn btn-default btn-lehrauftrag" type="button" data-toggle="tooltip" data-placement="left" title="Nur angenommene anzeigen"><i class='fa fa-handshake-o'></i></button>
|
||||
</div>
|
||||
<div class="btn-group" role="group" style="margin-left: 20px;">
|
||||
<button id="show-changed" class="btn btn-default btn-lehrauftrag active focus" type="button" data-toggle="tooltip" data-placement="left" title="Nur geänderte anzeigen"></button><!-- png img set in javascript -->
|
||||
</div>
|
||||
<div class="btn-group" role="group" style="margin-left: 20px;">
|
||||
<button id="show-dummies" class="btn btn-default btn-lehrauftrag" type="button" data-toggle="tooltip" data-placement="left" title="Nur verplante ohne Lektor anzeigen (Dummies)"><i class='fa fa-user-secret'></i></button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div><!-- end container -->
|
||||
</div><!-- end page-wrapper -->
|
||||
<br>
|
||||
</body>
|
||||
|
||||
<?php $this->load->view('templates/FHC-Footer'); ?>
|
||||
@@ -0,0 +1,456 @@
|
||||
<?php
|
||||
|
||||
$STUDIENSEMESTER = $studiensemester_selected;
|
||||
$STUDIENGANG = (isset($studiengang_selected) && !is_null($studiengang_selected)) ? array($studiengang_selected) : $studiengang;
|
||||
$AUSBILDUNGSSEMESTER = (isset($ausbildungssemester_selected) && !is_null($ausbildungssemester_selected)) ? $ausbildungssemester_selected : '1,2,3,4,5,6,7,8';
|
||||
|
||||
$query = '
|
||||
SELECT
|
||||
/* provide extra row index for tabulator, because no other column has unique ids */
|
||||
ROW_NUMBER() OVER () AS "row_index",
|
||||
personalnummer,
|
||||
lehreinheit_id,
|
||||
lehrveranstaltung_id,
|
||||
lv_bezeichnung,
|
||||
projektarbeit_id,
|
||||
studiensemester_kurzbz,
|
||||
studiengang_kz,
|
||||
stg_typ_kurzbz,
|
||||
semester,
|
||||
/* get valid STPL(s), to which the lehrveranstaltung is assigned to (can be more) */
|
||||
/* therefore join over lv, studiensemester and semester */
|
||||
(
|
||||
SELECT
|
||||
string_agg(bezeichnung, \', \')
|
||||
FROM (
|
||||
SELECT stpl.bezeichnung
|
||||
FROM lehre.tbl_studienplan stpl
|
||||
JOIN lehre.tbl_studienplan_semester stplsem USING (studienplan_id)
|
||||
JOIN lehre.tbl_studienplan_lehrveranstaltung stpllv USING (studienplan_id)
|
||||
JOIN lehre.tbl_lehrveranstaltung lv USING (lehrveranstaltung_id)
|
||||
JOIN lehre.tbl_lehreinheit le USING (lehrveranstaltung_id)
|
||||
WHERE
|
||||
/* join over lv of the le */
|
||||
le.lehreinheit_id = auftraege.lehreinheit_id
|
||||
AND stpl.aktiv
|
||||
/* then restrict on stpl of les studiensemester */
|
||||
AND stplsem.studiensemester_kurzbz = le.studiensemester_kurzbz
|
||||
/* then restrict on stpl of lvs semester*/
|
||||
AND stplsem.semester = stpllv.semester
|
||||
/* then restrict on most recent inserted studienplan of the lv */
|
||||
AND studienplan_id = (
|
||||
SELECT stpllv.studienplan_id
|
||||
FROM lehre.tbl_studienplan_lehrveranstaltung
|
||||
WHERE lehrveranstaltung_id = lv.lehrveranstaltung_id
|
||||
ORDER BY insertamum DESC
|
||||
LIMIT 1
|
||||
)
|
||||
) AS tmp_stpl
|
||||
) AS "studienplan_bezeichnung",
|
||||
orgform_kurzbz,
|
||||
person_id,
|
||||
typ,
|
||||
auftrag,
|
||||
lv_oe_kurzbz,
|
||||
gruppe,
|
||||
lektor,
|
||||
stunden,
|
||||
stundensatz,
|
||||
betrag,
|
||||
vertrag_id,
|
||||
vertrag_stunden,
|
||||
vertrag_betrag,
|
||||
mitarbeiter_uid,
|
||||
bestellt,
|
||||
erteilt,
|
||||
akzeptiert,
|
||||
(SELECT
|
||||
vorname || \' \' || nachname
|
||||
FROM
|
||||
public.tbl_person
|
||||
JOIN public.tbl_benutzer benutzer USING (person_id)
|
||||
WHERE
|
||||
benutzer.uid = (
|
||||
SELECT
|
||||
insertvon
|
||||
FROM
|
||||
lehre.tbl_vertrag_vertragsstatus vvs
|
||||
WHERE
|
||||
vvs.vertragsstatus_kurzbz = \'bestellt\'
|
||||
AND vvs.vertrag_id = auftraege.vertrag_id
|
||||
)
|
||||
) AS "bestellt_von",
|
||||
(SELECT
|
||||
vorname || \' \' || nachname
|
||||
FROM
|
||||
public.tbl_person
|
||||
JOIN public.tbl_benutzer benutzer USING (person_id)
|
||||
WHERE
|
||||
benutzer.uid = (
|
||||
SELECT
|
||||
insertvon
|
||||
FROM
|
||||
lehre.tbl_vertrag_vertragsstatus vvs
|
||||
WHERE
|
||||
vvs.vertragsstatus_kurzbz = \'erteilt\'
|
||||
AND vvs.vertrag_id = auftraege.vertrag_id
|
||||
)
|
||||
) AS "erteilt_von",
|
||||
(SELECT
|
||||
vorname || \' \' || nachname
|
||||
FROM
|
||||
public.tbl_person
|
||||
JOIN public.tbl_benutzer benutzer USING (person_id)
|
||||
WHERE
|
||||
benutzer.uid = (
|
||||
SELECT
|
||||
insertvon
|
||||
FROM
|
||||
lehre.tbl_vertrag_vertragsstatus vvs
|
||||
WHERE
|
||||
vvs.vertragsstatus_kurzbz = \'akzeptiert\'
|
||||
AND vvs.vertrag_id = auftraege.vertrag_id
|
||||
)
|
||||
) AS "akzeptiert_von"
|
||||
FROM
|
||||
(
|
||||
/* Lehraufträge and -vertragsstati */
|
||||
SELECT *,
|
||||
/* concatinated and aggregated gruppen */
|
||||
(SELECT
|
||||
string_agg(
|
||||
CASE WHEN gruppe_kurzbz is null THEN
|
||||
concat(upper(grpstg.typ || grpstg.kurzbz), \'-\', semester, verband, gruppe)
|
||||
ELSE
|
||||
gruppe_kurzbz
|
||||
END
|
||||
, \', \')
|
||||
FROM
|
||||
lehre.tbl_lehreinheitgruppe
|
||||
JOIN public.tbl_studiengang grpstg USING(studiengang_kz)
|
||||
WHERE
|
||||
lehreinheit_id = tmp_lehrauftraege.lehreinheit_id
|
||||
) AS "gruppe",
|
||||
/* existing contracts with status bestellt */
|
||||
(SELECT
|
||||
datum
|
||||
FROM
|
||||
lehre.tbl_vertrag_vertragsstatus
|
||||
WHERE
|
||||
tbl_vertrag_vertragsstatus.vertragsstatus_kurzbz = \'bestellt\'
|
||||
AND vertrag_id = tmp_lehrauftraege.vertrag_id) AS "bestellt",
|
||||
/* existing contracts with status erteilt */
|
||||
(SELECT
|
||||
datum
|
||||
FROM
|
||||
lehre.tbl_vertrag_vertragsstatus
|
||||
WHERE
|
||||
tbl_vertrag_vertragsstatus.vertragsstatus_kurzbz = \'erteilt\'
|
||||
AND vertrag_id = tmp_lehrauftraege.vertrag_id) AS "erteilt",
|
||||
/* existing contracts with status akzeptiert */
|
||||
(SELECT
|
||||
datum
|
||||
FROM
|
||||
lehre.tbl_vertrag_vertragsstatus
|
||||
WHERE
|
||||
tbl_vertrag_vertragsstatus.vertragsstatus_kurzbz = \'akzeptiert\'
|
||||
AND vertrag_id = tmp_lehrauftraege.vertrag_id) AS "akzeptiert"
|
||||
FROM
|
||||
(
|
||||
SELECT
|
||||
/* lehrauftraege also planned with dummies, therefore personalnummer is needed */
|
||||
ma.personalnummer,
|
||||
lema.lehreinheit_id,
|
||||
lv.lehrveranstaltung_id,
|
||||
lv.bezeichnung AS "lv_bezeichnung",
|
||||
NULL AS "projektarbeit_id",
|
||||
le.studiensemester_kurzbz,
|
||||
stg.studiengang_kz,
|
||||
upper(stg.typ || stg.kurzbz) AS "stg_typ_kurzbz",
|
||||
lv.orgform_kurzbz,
|
||||
person.person_id,
|
||||
upper(lv.lehrtyp_kurzbz) AS "typ",
|
||||
(lv.bezeichnung || \' [\' || le.lehrform_kurzbz ||
|
||||
\']\') AS "auftrag",
|
||||
lv.semester,
|
||||
CASE
|
||||
WHEN oe.organisationseinheittyp_kurzbz = \'Kompetenzfeld\' THEN (\'KF \' || oe.bezeichnung)
|
||||
WHEN oe.organisationseinheittyp_kurzbz = \'Department\' THEN (\'DEP \' || oe.bezeichnung)
|
||||
ELSE (oe.organisationseinheittyp_kurzbz || \' \' || oe.bezeichnung)
|
||||
END AS "lv_oe_kurzbz",
|
||||
(person.nachname || \' \' || person.vorname) AS "lektor",
|
||||
TRUNC(lema.semesterstunden, 1) AS "stunden",
|
||||
lema.stundensatz,
|
||||
TRUNC((lema.semesterstunden * lema.stundensatz), 2) AS "betrag",
|
||||
vertrag_id,
|
||||
vertragsstunden AS "vertrag_stunden",
|
||||
vertrag.betrag AS "vertrag_betrag",
|
||||
mitarbeiter_uid
|
||||
FROM
|
||||
lehre.tbl_lehreinheitmitarbeiter lema
|
||||
JOIN lehre.tbl_lehreinheit le USING (lehreinheit_id)
|
||||
JOIN lehre.tbl_lehrveranstaltung lv USING (lehrveranstaltung_id)
|
||||
JOIN PUBLIC.tbl_organisationseinheit oe USING (oe_kurzbz)
|
||||
JOIN PUBLIC.tbl_mitarbeiter ma USING (mitarbeiter_uid)
|
||||
JOIN PUBLIC.tbl_benutzer benutzer
|
||||
ON ma.mitarbeiter_uid = benutzer.uid
|
||||
JOIN PUBLIC.tbl_person person USING (person_id)
|
||||
LEFT JOIN lehre.tbl_vertrag vertrag USING (vertrag_id)
|
||||
JOIN PUBLIC.tbl_studiengang stg ON stg.studiengang_kz = lv.studiengang_kz
|
||||
WHERE
|
||||
/* filter studiengang */
|
||||
lv.studiengang_kz IN ('. implode(',', $STUDIENGANG) . ')
|
||||
/* filter studiensemester */
|
||||
AND le.studiensemester_kurzbz = \''. $STUDIENSEMESTER. '\'
|
||||
/* filter active lehrveranstaltungen */
|
||||
AND lv.aktiv = TRUE
|
||||
/* filter active organisationseinheiten */
|
||||
AND oe.aktiv = TRUE
|
||||
/* filter ausbildungssemester */
|
||||
AND lv.semester IN ('. $AUSBILDUNGSSEMESTER . ')
|
||||
) tmp_lehrauftraege
|
||||
|
||||
UNION
|
||||
|
||||
/* Projektbetreuungsaufträge and -vertragsstati */
|
||||
SELECT *,
|
||||
/* mitarbeiter uid retrieved by person_id */
|
||||
/* NOTE: mitarbeiter MUST come after Select * to ensure correct order with select for tmp_lehrauftraege*/
|
||||
(SELECT
|
||||
uid
|
||||
FROM
|
||||
public.tbl_benutzer
|
||||
WHERE
|
||||
person_id = tmp_projektbetreuung.person_id
|
||||
ORDER BY aktiv DESC, updateaktivam DESC -- accept inactive as some person_ids have no active, but order them last
|
||||
LIMIT 1) AS "mitarbeiter_uid",
|
||||
/* concatinated and aggregated gruppen */
|
||||
(SELECT
|
||||
string_agg(
|
||||
CASE WHEN gruppe_kurzbz is null THEN
|
||||
concat(upper(grpstg.typ || grpstg.kurzbz), \'-\', semester, verband, gruppe)
|
||||
ELSE
|
||||
gruppe_kurzbz
|
||||
END
|
||||
, \', \')
|
||||
FROM
|
||||
lehre.tbl_lehreinheitgruppe
|
||||
JOIN public.tbl_studiengang grpstg USING(studiengang_kz)
|
||||
WHERE
|
||||
lehreinheit_id = tmp_projektbetreuung.lehreinheit_id
|
||||
) AS "gruppe",
|
||||
/* existing contracts with status bestellt */
|
||||
(SELECT
|
||||
datum
|
||||
FROM
|
||||
lehre.tbl_vertrag_vertragsstatus
|
||||
WHERE
|
||||
tbl_vertrag_vertragsstatus.vertragsstatus_kurzbz = \'bestellt\'
|
||||
AND vertrag_id = tmp_projektbetreuung.vertrag_id) AS "bestellt",
|
||||
/* existing contracts with status erteilt */
|
||||
(SELECT
|
||||
datum
|
||||
FROM
|
||||
lehre.tbl_vertrag_vertragsstatus
|
||||
WHERE
|
||||
tbl_vertrag_vertragsstatus.vertragsstatus_kurzbz = \'erteilt\'
|
||||
AND vertrag_id = tmp_projektbetreuung.vertrag_id) AS "erteilt",
|
||||
/* existing contracts with status akzeptiert */
|
||||
(SELECT
|
||||
datum
|
||||
FROM
|
||||
lehre.tbl_vertrag_vertragsstatus
|
||||
WHERE
|
||||
tbl_vertrag_vertragsstatus.vertragsstatus_kurzbz = \'akzeptiert\'
|
||||
AND vertrag_id = tmp_projektbetreuung.vertrag_id) AS "akzeptiert"
|
||||
FROM
|
||||
(
|
||||
SELECT
|
||||
/* projektbetreuung does not plan with dummies, therefore no need to retrieve personalnummer */
|
||||
NULL AS personalnummer,
|
||||
pa.lehreinheit_id,
|
||||
lv.lehrveranstaltung_id,
|
||||
lv.bezeichnung AS "lv_bezeichnung",
|
||||
pa.projektarbeit_id AS "projektarbeit_id",
|
||||
le.studiensemester_kurzbz,
|
||||
stg.studiengang_kz,
|
||||
upper(stg.typ || stg.kurzbz) AS "stg_typ_kurzbz",
|
||||
lv.orgform_kurzbz,
|
||||
person.person_id,
|
||||
\'Betreuung\' AS "typ",
|
||||
(betreuerart_kurzbz || \' \' ||
|
||||
(SELECT
|
||||
vorname || \' \' || nachname
|
||||
FROM
|
||||
PUBLIC.tbl_person
|
||||
JOIN PUBLIC.tbl_benutzer USING (person_id)
|
||||
WHERE
|
||||
uid = pa.student_uid
|
||||
)
|
||||
|| \' [\' || projekttyp_kurzbz || \'arbeit]\') AS "auftrag",
|
||||
lv.semester,
|
||||
CASE
|
||||
WHEN oe.organisationseinheittyp_kurzbz =
|
||||
\'Kompetenzfeld\' THEN (
|
||||
\'KF \' || oe.bezeichnung)
|
||||
WHEN oe.organisationseinheittyp_kurzbz =
|
||||
\'Department\' THEN (
|
||||
\'DEP \' || oe.bezeichnung)
|
||||
ELSE (oe.organisationseinheittyp_kurzbz ||
|
||||
\' \' || oe.bezeichnung)
|
||||
END AS "lv_oe_kurzbz",
|
||||
(nachname || \' \' || vorname) AS "lektor",
|
||||
TRUNC(pb.stunden, 1) AS "stunden",
|
||||
pb.stundensatz,
|
||||
TRUNC((pb.stunden * pb.stundensatz), 2) AS "betrag",
|
||||
vertrag_id,
|
||||
vertragsstunden AS "vertrag_stunden",
|
||||
vertrag.betrag AS "vertrag_betrag"
|
||||
FROM
|
||||
lehre.tbl_projektbetreuer pb
|
||||
JOIN lehre.tbl_projektarbeit pa USING (projektarbeit_id)
|
||||
JOIN lehre.tbl_lehreinheit le USING (lehreinheit_id)
|
||||
JOIN lehre.tbl_lehrveranstaltung lv USING (lehrveranstaltung_id)
|
||||
JOIN PUBLIC.tbl_organisationseinheit oe USING (oe_kurzbz)
|
||||
JOIN PUBLIC.tbl_person person USING (person_id)
|
||||
LEFT JOIN lehre.tbl_vertrag vertrag USING (vertrag_id)
|
||||
JOIN PUBLIC.tbl_studiengang stg
|
||||
ON stg.studiengang_kz = lv.studiengang_kz
|
||||
WHERE
|
||||
/* filter studiengang */
|
||||
lv.studiengang_kz IN ('. implode(',', $STUDIENGANG) . ')
|
||||
/* filter studiensemester */
|
||||
AND le.studiensemester_kurzbz = \''. $STUDIENSEMESTER. '\'
|
||||
/* filter active lehrveranstaltungen */
|
||||
AND lv.aktiv = TRUE
|
||||
/* filter ausbildungssemester */
|
||||
AND lv.semester IN ('. $AUSBILDUNGSSEMESTER . ')
|
||||
/* filter active organisationseinheiten */
|
||||
AND oe.aktiv = TRUE
|
||||
) tmp_projektbetreuung
|
||||
) auftraege
|
||||
ORDER BY "typ" DESC, "auftrag", "personalnummer" DESC, "lektor", "bestellt"
|
||||
';
|
||||
$filterWidgetArray = array(
|
||||
'query' => $query,
|
||||
'tableUniqueId' => 'orderLehrauftrag',
|
||||
'requiredPermissions' => 'lehre/lehrauftrag_bestellen',
|
||||
'datasetRepresentation' => 'tabulator',
|
||||
'columnsAliases' => array( // TODO: use phrasen
|
||||
'Status', // alias for row_index, because row_index is formatted to display the status icons
|
||||
'Personalnummer',
|
||||
'LV-Teil',
|
||||
'LV-ID',
|
||||
'LV',
|
||||
'PA-ID',
|
||||
'Studiensemester',
|
||||
'Studiengang-KZ',
|
||||
'Studiengang',
|
||||
'Semester',
|
||||
'Studienplan',
|
||||
'OrgForm',
|
||||
'Person-ID',
|
||||
'Typ',
|
||||
'LV- / Projektbezeichnung',
|
||||
'Organisationseinheit',
|
||||
'Gruppe',
|
||||
'Lektor',
|
||||
'Stunden',
|
||||
'Stundensatz',
|
||||
'Betrag',
|
||||
'Vertrag-ID',
|
||||
'Vertrag-Stunden',
|
||||
'Vertrag-Betrag',
|
||||
'UID',
|
||||
'Bestellt',
|
||||
'Erteilt',
|
||||
'Angenommen',
|
||||
'Bestellt von',
|
||||
'Erteilt von',
|
||||
'Angenommen von'
|
||||
),
|
||||
'datasetRepOptions' => '{
|
||||
height: 700,
|
||||
layout:"fitColumns", // fit columns to width of table
|
||||
responsiveLayout:"hide", // hide columns that dont fit on the table
|
||||
movableColumns: true, // allows changing column
|
||||
placeholder: func_placeholder(),
|
||||
headerFilterPlaceholder: " ",
|
||||
groupBy:"lehrveranstaltung_id",
|
||||
groupToggleElement:"header", //toggle group on click anywhere in the group header
|
||||
groupHeader: function(value, count, data, group){
|
||||
return func_groupHeader(data);
|
||||
},
|
||||
footerElement: func_footerElement(),
|
||||
columnCalcs:"both", // show column calculations at top and bottom of table and in groups
|
||||
index: "row_index", // assign specific column as unique id (important for row indexing)
|
||||
selectable: true, // allows row selection
|
||||
selectableRangeMode: "click", // allows range selection using shift end click on end of range
|
||||
selectablePersistence:false, // deselect previously selected rows when table is filtered, sorted or paginated
|
||||
selectableCheck: function(row){
|
||||
return func_selectableCheck(row);
|
||||
},
|
||||
rowUpdated:function(row){
|
||||
func_rowUpdated(row);
|
||||
},
|
||||
rowSelectionChanged:function(data, rows){
|
||||
func_rowSelectionChanged(data, rows);
|
||||
},
|
||||
rowFormatter:function(row){
|
||||
func_rowFormatter(row);
|
||||
},
|
||||
renderStarted:function(){
|
||||
func_renderStarted(this);
|
||||
},
|
||||
tableBuilt: function(){
|
||||
func_tableBuilt(this);
|
||||
},
|
||||
dataLoaded: function(data){
|
||||
func_dataLoaded(data, this);
|
||||
},
|
||||
}', // tabulator properties
|
||||
'datasetRepFieldsDefs' => '{
|
||||
// column status is built dynamically in funcTableBuilt()
|
||||
row_index: {visible: false},
|
||||
personalnummer: {visible: false},
|
||||
lehreinheit_id: {headerFilter:"input", bottomCalc:"count", width: "7%",
|
||||
bottomCalcFormatter:function(cell){return "Anzahl: " + cell.getValue();}},
|
||||
lehrveranstaltung_id: {headerFilter:"input"},
|
||||
lv_bezeichnung: {visible: false},
|
||||
projektarbeit_id: {visible: false},
|
||||
studiensemester_kurzbz: {headerFilter:"input"},
|
||||
studiengang_kz: {visible: false},
|
||||
stg_typ_kurzbz: {headerFilter:"input", width: "5%"},
|
||||
semester: {headerFilter:"input"},
|
||||
studienplan_bezeichnung: {headerFilter:"input", width: "7%"},
|
||||
orgform_kurzbz: {headerFilter:"input"},
|
||||
person_id: {visible: false},
|
||||
typ: {headerFilter:"input"},
|
||||
auftrag: {headerFilter:"input", width:"15%"},
|
||||
lv_oe_kurzbz: {headerFilter:"input"},
|
||||
gruppe: {headerFilter:"input"},
|
||||
lektor: {headerFilter:"input", widthGrow: 3},
|
||||
stunden: {align:"right", formatter: form_formatNulltoStringNumber, formatterParams:{precision:1},
|
||||
headerFilter:"input", headerFilterFunc: hf_filterStringnumberWithOperator,
|
||||
bottomCalc:"sum", bottomCalcParams:{precision:1}},
|
||||
stundensatz: {visible: false},
|
||||
betrag: {align:"right", width: "8%", formatter: form_formatNulltoStringNumber,
|
||||
headerFilter:"input", headerFilterFunc: hf_filterStringnumberWithOperator,
|
||||
bottomCalc:"sum", bottomCalcParams:{precision:2}, bottomCalcFormatter:"money",
|
||||
bottomCalcFormatterParams:{decimal: ",", thousand: ".", symbol:"€"}},
|
||||
vertrag_id: {visible: false},
|
||||
vertrag_stunden: {visible: false},
|
||||
vertrag_betrag: {visible: false},
|
||||
mitarbeiter_uid: {visible: false},
|
||||
bestellt: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: bestellt_tooltip, width: "8%"},
|
||||
erteilt: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: erteilt_tooltip, width: "8%"},
|
||||
akzeptiert: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: akzeptiert_tooltip, width: "8%"},
|
||||
bestellt_von: {visible: false},
|
||||
erteilt_von: {visible: false},
|
||||
akzeptiert_von: {visible: false}
|
||||
}', // col properties
|
||||
);
|
||||
|
||||
echo $this->widgetlib->widget('TableWidget', $filterWidgetArray);
|
||||
|
||||
?>
|
||||
@@ -7,7 +7,7 @@ $this->load->view('templates/header', array('title' => 'StudienjahrEdit', 'jquer
|
||||
<div class="row">
|
||||
<div class="span4">
|
||||
<h2>Studienjahr bearbeiten: <?php echo $jahr->studienjahr_kurzbz; ?></h2>
|
||||
<form method="post" action="<?php echo site_url("organisation/studienjahr/saveStudienjahr"); ?>">
|
||||
<form method="post" action="<?php echo site_url("organisation/studienjahr/updateStudienjahr"); ?>">
|
||||
|
||||
<table>
|
||||
<?php include('studienjahrForm.php'); ?>
|
||||
|
||||
@@ -8,7 +8,7 @@ $this->load->view('templates/header', array('title' => 'StudiensemesterEdit', 'd
|
||||
<div class="span4">
|
||||
<h2>Studiensemester bearbeiten: <?php echo $sem->studiensemester_kurzbz; ?></h2>
|
||||
<form method="post"
|
||||
action="<?php echo site_url("organisation/studiensemester/saveStudiensemester") ?>">
|
||||
action="<?php echo site_url("organisation/studiensemester/updateStudiensemester") ?>">
|
||||
<table>
|
||||
<?php include('studiensemesterForm.php'); ?>
|
||||
<input type="hidden" name="semkurzbz" value="<?php echo $sem->studiensemester_kurzbz; ?>"/>
|
||||
|
||||
@@ -37,7 +37,8 @@
|
||||
<b><?php echo $this->p->t('lehre', 'gewichteternotendurchschnitt'); ?>
|
||||
<img src="../../../../skin/images/information.png" title="<?php echo htmlentities($this->p->t('lehre', 'info_notendurchschnitt_gewichtet')); ?>" />:</b>
|
||||
<?php echo $courses['overall']['notendurchschnittgewichtet'] ?><br>
|
||||
<b><?php echo $this->p->t('lehre', 'ects'); ?>:</b>
|
||||
<b><?php echo $this->p->t('lehre', 'ects'); ?>
|
||||
<img src="../../../../skin/images/information.png" title="Summe der positiv absolvierten ECTS" />:</b>
|
||||
<?php echo $courses['overall']['ectssumme_positiv'] ?><br>
|
||||
<br>
|
||||
<?php
|
||||
|
||||
@@ -143,8 +143,10 @@
|
||||
<div class="panel-footer">
|
||||
<b><?php echo $this->p->t('lehre','notendurchschnitt');?>:</b>
|
||||
<?php echo (isset($semesterdata['notendurchschnitt'])?$semesterdata['notendurchschnitt']:'');?>
|
||||
<img src="../../../../skin/images/information.png" title="<?php echo htmlentities($this->p->t('lehre', 'info_notendurchschnitt')); ?>" />
|
||||
<b><?php echo $this->p->t('lehre','gewichteternotendurchschnitt');?>:</b>
|
||||
<?php echo (isset($semesterdata['notendurchschnittgewichtet'])?$semesterdata['notendurchschnittgewichtet']:'');?>
|
||||
<img src="../../../../skin/images/information.png" title="<?php echo htmlentities($this->p->t('lehre', 'info_notendurchschnitt_gewichtet')); ?>" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
}
|
||||
}
|
||||
?>
|
||||
<form action="<?php echo site_url('system/UDF/saveUDF'); ?>" method="POST">
|
||||
<form action="<?php echo site_url('system/FAS_UDF/saveUDF'); ?>" method="POST">
|
||||
|
||||
<div class="div-table">
|
||||
<div class="div-row">
|
||||
@@ -18,7 +18,7 @@
|
||||
'global' => array('mailAnXversandt'),
|
||||
'ui' => array('bitteEintragWaehlen')
|
||||
),
|
||||
'customCSSs' => 'public/css/sbadmin2/tablesort_bootstrap.css',
|
||||
'customCSSs' => array('public/css/sbadmin2/tablesort_bootstrap.css', 'public/css/infocenter/infocenterPersonDataset.css'),
|
||||
'customJSs' => array('public/js/bootstrapper.js', 'public/js/infocenter/infocenterPersonDataset.js')
|
||||
)
|
||||
);
|
||||
|
||||
@@ -7,20 +7,14 @@
|
||||
$TAETIGKEIT_KURZBZ = '\'bewerbung\', \'kommunikation\'';
|
||||
$LOGDATA_NAME = '\'Login with code\', \'Login with user\', \'New application\', \'Interessent rejected\'';
|
||||
$LOGDATA_NAME_PARKED = '\'Parked\'';
|
||||
$LOGDATA_NAME_ONHOLD = '\'Onhold\'';
|
||||
$LOGTYPE_KURZBZ = '\'Processstate\'';
|
||||
$STATUS_KURZBZ = '\'Wartender\', \'Bewerber\', \'Aufgenommener\', \'Student\'';
|
||||
$ADDITIONAL_STG = '10021,10027';
|
||||
$AKTE_TYP = '\'identity\', \'zgv_bakk\'';
|
||||
$STUDIENSEMESTER = '\''.$this->variablelib->getVar('infocenter_studiensemester').'\'';
|
||||
|
||||
$query = '
|
||||
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",
|
||||
@@ -31,6 +25,7 @@
|
||||
pl.zeitpunkt AS "LockDate",
|
||||
pl.lockuser AS "LockUser",
|
||||
pd.parkdate AS "ParkDate",
|
||||
ohd.onholddate AS "OnholdDate",
|
||||
(
|
||||
SELECT l.zeitpunkt
|
||||
FROM system.tbl_log l
|
||||
@@ -100,13 +95,14 @@
|
||||
OR
|
||||
sg.studiengang_kz in('.$ADDITIONAL_STG.')
|
||||
)
|
||||
AND pss.studiensemester_kurzbz IN (SELECT cnss.studiensemester_kurzbz FROM currentOrNextStudiensemester cnss)
|
||||
AND pss.studiensemester_kurzbz = '.$STUDIENSEMESTER.'
|
||||
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 spss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende >
|
||||
(SELECT start FROM public.tbl_studiensemester sss WHERE studiensemester_kurzbz = '.$STUDIENSEMESTER.'))
|
||||
)
|
||||
ORDER BY pss.datum DESC, pss.insertamum DESC, pss.ext_id DESC
|
||||
LIMIT 1
|
||||
@@ -125,13 +121,14 @@
|
||||
OR
|
||||
sg.studiengang_kz in('.$ADDITIONAL_STG.')
|
||||
)
|
||||
AND pss.studiensemester_kurzbz IN (SELECT cnss.studiensemester_kurzbz FROM currentOrNextStudiensemester cnss)
|
||||
AND pss.studiensemester_kurzbz = '.$STUDIENSEMESTER.'
|
||||
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 spss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende >
|
||||
(SELECT start FROM public.tbl_studiensemester sss WHERE studiensemester_kurzbz = '.$STUDIENSEMESTER.'))
|
||||
)
|
||||
LIMIT 1
|
||||
) AS "AnzahlAbgeschickt",
|
||||
@@ -149,13 +146,14 @@
|
||||
OR
|
||||
sg.studiengang_kz in('.$ADDITIONAL_STG.')
|
||||
)
|
||||
AND pss.studiensemester_kurzbz IN (SELECT cnss.studiensemester_kurzbz FROM currentOrNextStudiensemester cnss)
|
||||
AND pss.studiensemester_kurzbz = '.$STUDIENSEMESTER.'
|
||||
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 spss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende >
|
||||
(SELECT start FROM public.tbl_studiensemester sss WHERE studiensemester_kurzbz = '.$STUDIENSEMESTER.'))
|
||||
)
|
||||
LIMIT 1
|
||||
) AS "StgAbgeschickt",
|
||||
@@ -173,13 +171,15 @@
|
||||
OR
|
||||
sg.studiengang_kz in('.$ADDITIONAL_STG.')
|
||||
)
|
||||
AND pss.studiensemester_kurzbz IN (SELECT cnss.studiensemester_kurzbz FROM currentOrNextStudiensemester cnss)
|
||||
AND pss.studiensemester_kurzbz = '.$STUDIENSEMESTER.'
|
||||
|
||||
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 spss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende >
|
||||
(SELECT start FROM public.tbl_studiensemester sss WHERE studiensemester_kurzbz = '.$STUDIENSEMESTER.'))
|
||||
)
|
||||
LIMIT 1
|
||||
) AS "StgNichtAbgeschickt",
|
||||
@@ -196,13 +196,14 @@
|
||||
OR
|
||||
sg.studiengang_kz in('.$ADDITIONAL_STG.')
|
||||
)
|
||||
AND pss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.start >= NOW())
|
||||
AND pss.studiensemester_kurzbz = '.$STUDIENSEMESTER.'
|
||||
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 spss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende >
|
||||
(SELECT start FROM public.tbl_studiensemester sss WHERE studiensemester_kurzbz = '.$STUDIENSEMESTER.'))
|
||||
)
|
||||
LIMIT 1
|
||||
) AS "StgAktiv",
|
||||
@@ -229,6 +230,14 @@
|
||||
AND l.logdata->>\'name\' = '.$LOGDATA_NAME_PARKED.'
|
||||
AND l.zeitpunkt >= NOW()
|
||||
) pd USING(person_id)
|
||||
LEFT JOIN (
|
||||
SELECT l.person_id,
|
||||
l.zeitpunkt AS onholddate
|
||||
FROM system.tbl_log l
|
||||
WHERE l.logtype_kurzbz = '.$LOGTYPE_KURZBZ.'
|
||||
AND l.logdata->>\'name\' = '.$LOGDATA_NAME_ONHOLD.'
|
||||
AND l.zeitpunkt >= NOW()
|
||||
) ohd USING(person_id)
|
||||
WHERE
|
||||
EXISTS (
|
||||
SELECT 1
|
||||
@@ -252,7 +261,7 @@
|
||||
WHERE spss.prestudent_id = sps.prestudent_id
|
||||
AND spss.status_kurzbz = '.$INTERESSENT_STATUS.'
|
||||
AND spss.bestaetigtam IS NULL
|
||||
AND spss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende > NOW())
|
||||
AND spss.studiensemester_kurzbz = '.$STUDIENSEMESTER.'
|
||||
)
|
||||
)
|
||||
ORDER BY "LastAction" ASC';
|
||||
@@ -265,7 +274,6 @@
|
||||
'filter_id' => $this->input->get('filter_id'),
|
||||
'requiredPermissions' => 'infocenter',
|
||||
'datasetRepresentation' => 'tablesorter',
|
||||
'reloadDataset' => ($this->input->get('reloadDataset')=='true'?true:false),
|
||||
'customMenu' => true,
|
||||
'checkboxes' => 'PersonId',
|
||||
'additionalColumns' => array('Details'),
|
||||
@@ -279,6 +287,7 @@
|
||||
ucfirst($this->p->t('global', 'sperrdatum')),
|
||||
ucfirst($this->p->t('global', 'gesperrtVon')),
|
||||
ucfirst($this->p->t('global', 'parkdatum')),
|
||||
ucfirst($this->p->t('global', 'rueckstelldatum')),
|
||||
ucfirst($this->p->t('global', 'letzteAktion')),
|
||||
'Aktionstyp',
|
||||
'AnzahlAktePflicht',
|
||||
@@ -341,6 +350,11 @@
|
||||
$datasetRaw->{'ParkDate'} = '-';
|
||||
}
|
||||
|
||||
if ($datasetRaw->{'OnholdDate'} == null)
|
||||
{
|
||||
$datasetRaw->{'OnholdDate'} = '-';
|
||||
}
|
||||
|
||||
if ($datasetRaw->{'StgAbgeschickt'} == null)
|
||||
{
|
||||
$datasetRaw->{'StgAbgeschickt'} = '-';
|
||||
@@ -377,6 +391,11 @@
|
||||
$mark = FilterWidget::DEFAULT_MARK_ROW_CLASS;
|
||||
}
|
||||
|
||||
if ($datasetRaw->OnholdDate != null)
|
||||
{
|
||||
$mark = "onhold";
|
||||
}
|
||||
|
||||
// Parking has priority over locking
|
||||
if ($datasetRaw->ParkDate != null)
|
||||
{
|
||||
|
||||
@@ -34,7 +34,14 @@
|
||||
'nichtsZumAusparken',
|
||||
'fehlerBeimAusparken',
|
||||
'fehlerBeimParken',
|
||||
'bewerberGeparktBis'
|
||||
'bewerberGeparktBis',
|
||||
'bewerberOnHold',
|
||||
'bewerberOnHoldEntfernen',
|
||||
'bewerberOnHoldBis',
|
||||
'nichtsZumEntfernen',
|
||||
'fehlerBeimEntfernen',
|
||||
'rueckstelldatumUeberschritten',
|
||||
'parkenZurueckstellenInfo'
|
||||
),
|
||||
'ui' => array(
|
||||
'gespeichert',
|
||||
@@ -176,7 +183,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<div id="parking"></div>
|
||||
<div id="postponing"></div>
|
||||
<div id="logs">
|
||||
<?php $this->load->view('system/infocenter/logs.php'); ?>
|
||||
</div>
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
'global' => array('mailAnXversandt'),
|
||||
'ui' => array('bitteEintragWaehlen')
|
||||
),
|
||||
'customCSSs' => 'public/css/sbadmin2/tablesort_bootstrap.css',
|
||||
'customCSSs' => array('public/css/sbadmin2/tablesort_bootstrap.css', 'public/css/infocenter/infocenterPersonDataset.css'),
|
||||
'customJSs' => array('public/js/bootstrapper.js', 'public/js/infocenter/infocenterPersonDataset.js')
|
||||
)
|
||||
);
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
$REJECTED_STATUS = '\'Abgewiesener\'';
|
||||
$ADDITIONAL_STG = '10021,10027,10002';
|
||||
$STATUS_KURZBZ = '\'Wartender\', \'Bewerber\', \'Aufgenommener\', \'Student\'';
|
||||
$STUDIENSEMESTER = '\''.$this->variablelib->getVar('infocenter_studiensemester').'\'';
|
||||
|
||||
$query = '
|
||||
SELECT
|
||||
@@ -58,7 +59,7 @@
|
||||
sg.studiengang_kz in('.$ADDITIONAL_STG.')
|
||||
)
|
||||
AND pss.bestaetigtam is not null
|
||||
AND pss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende >= NOW())
|
||||
AND pss.studiensemester_kurzbz = '.$STUDIENSEMESTER.'
|
||||
ORDER BY pss.datum DESC, pss.insertamum DESC, pss.ext_id DESC
|
||||
LIMIT 1
|
||||
) AS "Studiensemester",
|
||||
@@ -74,7 +75,7 @@
|
||||
OR
|
||||
sg.studiengang_kz in('.$ADDITIONAL_STG.')
|
||||
)
|
||||
AND pss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende >= NOW())
|
||||
AND pss.studiensemester_kurzbz = '.$STUDIENSEMESTER.'
|
||||
ORDER BY pss.datum DESC, pss.insertamum DESC, pss.ext_id DESC
|
||||
LIMIT 1
|
||||
) AS "SendDate",
|
||||
@@ -90,7 +91,7 @@
|
||||
OR
|
||||
sg.studiengang_kz in('.$ADDITIONAL_STG.')
|
||||
)
|
||||
AND pss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende >= NOW())
|
||||
AND pss.studiensemester_kurzbz = '.$STUDIENSEMESTER.'
|
||||
AND NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM tbl_prestudentstatus spss
|
||||
@@ -112,7 +113,7 @@
|
||||
OR
|
||||
sg.studiengang_kz in('.$ADDITIONAL_STG.')
|
||||
)
|
||||
AND pss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende >= NOW())
|
||||
AND pss.studiensemester_kurzbz = '.$STUDIENSEMESTER.'
|
||||
LIMIT 1
|
||||
) AS "StgAbgeschickt",
|
||||
(
|
||||
@@ -128,13 +129,14 @@
|
||||
OR
|
||||
sg.studiengang_kz in('.$ADDITIONAL_STG.')
|
||||
)
|
||||
AND pss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende >= NOW())
|
||||
AND pss.studiensemester_kurzbz = '.$STUDIENSEMESTER.'
|
||||
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 spss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende >
|
||||
(SELECT start FROM public.tbl_studiensemester sss WHERE studiensemester_kurzbz = '.$STUDIENSEMESTER.'))
|
||||
)
|
||||
LIMIT 1
|
||||
) AS "StgAktiv",
|
||||
@@ -145,7 +147,7 @@
|
||||
LEFT JOIN public.tbl_status_grund sg USING(statusgrund_id)
|
||||
WHERE pss.status_kurzbz = '.$INTERESSENT_STATUS.'
|
||||
AND ps.person_id = p.person_id
|
||||
AND pss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende >= NOW())
|
||||
AND pss.studiensemester_kurzbz = '.$STUDIENSEMESTER.'
|
||||
LIMIT 1
|
||||
) AS "Statusgrund",
|
||||
(
|
||||
@@ -162,7 +164,7 @@
|
||||
) rtp ON(rtp.person_id = ps.person_id AND rtp.studiensemester_kurzbz = pss.studiensemester_kurzbz)
|
||||
WHERE pss.status_kurzbz = '.$INTERESSENT_STATUS.'
|
||||
AND ps.person_id = p.person_id
|
||||
AND pss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende >= NOW())
|
||||
AND pss.studiensemester_kurzbz = '.$STUDIENSEMESTER.'
|
||||
ORDER BY pss.datum DESC, pss.insertamum DESC, pss.ext_id DESC
|
||||
LIMIT 1
|
||||
) AS "ReihungstestAngetreten",
|
||||
@@ -179,7 +181,7 @@
|
||||
) rtp ON(rtp.person_id = ps.person_id AND rtp.studiensemester_kurzbz = pss.studiensemester_kurzbz)
|
||||
WHERE pss.status_kurzbz = '.$INTERESSENT_STATUS.'
|
||||
AND ps.person_id = p.person_id
|
||||
AND pss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.studiensemester_kurzbz = \'WS2019\')
|
||||
AND pss.studiensemester_kurzbz = '.$STUDIENSEMESTER.'
|
||||
ORDER BY pss.datum DESC, pss.insertamum DESC, pss.ext_id DESC
|
||||
LIMIT 1
|
||||
) AS "ReihungstestApplied",
|
||||
@@ -204,6 +206,7 @@
|
||||
FROM public.tbl_prestudent ps
|
||||
JOIN public.tbl_studiengang sg USING(studiengang_kz)
|
||||
WHERE ps.person_id = p.person_id
|
||||
AND ps.reihungstestangetreten = FALSE
|
||||
AND (sg.typ IN ('.$STUDIENGANG_TYP.')
|
||||
OR
|
||||
sg.studiengang_kz in('.$ADDITIONAL_STG.')
|
||||
@@ -215,7 +218,7 @@
|
||||
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())
|
||||
AND pss.studiensemester_kurzbz = '.$STUDIENSEMESTER.'
|
||||
AND NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM tbl_prestudentstatus spss
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
'global' => array('mailAnXversandt'),
|
||||
'ui' => array('bitteEintragWaehlen')
|
||||
),
|
||||
'customCSSs' => 'public/css/sbadmin2/tablesort_bootstrap.css',
|
||||
'customCSSs' => array('public/css/sbadmin2/tablesort_bootstrap.css', 'public/css/infocenter/infocenterPersonDataset.css'),
|
||||
'customJSs' => array('public/js/bootstrapper.js', 'public/js/infocenter/infocenterPersonDataset.js')
|
||||
)
|
||||
);
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
$TAETIGKEIT_KURZBZ = '\'bewerbung\', \'kommunikation\'';
|
||||
$LOGDATA_NAME = '\'Login with code\', \'Login with user\', \'New application\'';
|
||||
$ADDITIONAL_STG = '10021,10027';
|
||||
$STUDIENSEMESTER = '\''.$this->variablelib->getVar('infocenter_studiensemester').'\'';
|
||||
|
||||
$query = '
|
||||
SELECT
|
||||
@@ -46,7 +47,7 @@
|
||||
OR
|
||||
sg.studiengang_kz in('.$ADDITIONAL_STG.')
|
||||
)
|
||||
AND pss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende >= NOW())
|
||||
AND pss.studiensemester_kurzbz = '.$STUDIENSEMESTER.'
|
||||
ORDER BY pss.datum DESC, pss.insertamum DESC, pss.ext_id DESC
|
||||
LIMIT 1
|
||||
) AS "Studiensemester",
|
||||
@@ -62,7 +63,7 @@
|
||||
OR
|
||||
sg.studiengang_kz in('.$ADDITIONAL_STG.')
|
||||
)
|
||||
AND pss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende >= NOW())
|
||||
AND pss.studiensemester_kurzbz = '.$STUDIENSEMESTER.'
|
||||
ORDER BY pss.datum DESC, pss.insertamum DESC, pss.ext_id DESC
|
||||
LIMIT 1
|
||||
) AS "SendDate",
|
||||
@@ -78,7 +79,7 @@
|
||||
OR
|
||||
sg.studiengang_kz in('.$ADDITIONAL_STG.')
|
||||
)
|
||||
AND pss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende >= NOW())
|
||||
AND pss.studiensemester_kurzbz = '.$STUDIENSEMESTER.'
|
||||
LIMIT 1
|
||||
) AS "AnzahlAbgeschickt",
|
||||
(
|
||||
@@ -93,7 +94,7 @@
|
||||
OR
|
||||
sg.studiengang_kz in('.$ADDITIONAL_STG.')
|
||||
)
|
||||
AND pss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende >= NOW())
|
||||
AND pss.studiensemester_kurzbz = '.$STUDIENSEMESTER.'
|
||||
LIMIT 1
|
||||
) AS "StgAbgeschickt",
|
||||
(
|
||||
@@ -103,7 +104,7 @@
|
||||
LEFT JOIN public.tbl_status_grund sg USING(statusgrund_id)
|
||||
WHERE pss.status_kurzbz = '.$INTERESSENT_STATUS.'
|
||||
AND ps.person_id = p.person_id
|
||||
AND pss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende >= NOW())
|
||||
AND pss.studiensemester_kurzbz = '.$STUDIENSEMESTER.'
|
||||
LIMIT 1
|
||||
) AS "Statusgrund",
|
||||
(
|
||||
@@ -120,7 +121,7 @@
|
||||
) rtp ON(rtp.person_id = ps.person_id AND rtp.studiensemester_kurzbz = pss.studiensemester_kurzbz)
|
||||
WHERE pss.status_kurzbz = '.$INTERESSENT_STATUS.'
|
||||
AND ps.person_id = p.person_id
|
||||
AND pss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende >= NOW())
|
||||
AND pss.studiensemester_kurzbz = '.$STUDIENSEMESTER.'
|
||||
ORDER BY pss.datum DESC, pss.insertamum DESC, pss.ext_id DESC
|
||||
LIMIT 1
|
||||
) AS "ReihungstestAngetreten",
|
||||
@@ -137,7 +138,7 @@
|
||||
) rtp ON(rtp.person_id = ps.person_id AND rtp.studiensemester_kurzbz = pss.studiensemester_kurzbz)
|
||||
WHERE pss.status_kurzbz = '.$INTERESSENT_STATUS.'
|
||||
AND ps.person_id = p.person_id
|
||||
AND pss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende >= NOW())
|
||||
AND pss.studiensemester_kurzbz = '.$STUDIENSEMESTER.'
|
||||
ORDER BY pss.datum DESC, pss.insertamum DESC, pss.ext_id DESC
|
||||
LIMIT 1
|
||||
) AS "ReihungstestApplied",
|
||||
@@ -155,7 +156,7 @@
|
||||
) rtp ON(rtp.person_id = ps.person_id AND rtp.studiensemester_kurzbz = pss.studiensemester_kurzbz)
|
||||
WHERE pss.status_kurzbz = '.$INTERESSENT_STATUS.'
|
||||
AND ps.person_id = p.person_id
|
||||
AND pss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende >= NOW())
|
||||
AND pss.studiensemester_kurzbz = '.$STUDIENSEMESTER.'
|
||||
ORDER BY pss.datum DESC, pss.insertamum DESC, pss.ext_id DESC
|
||||
LIMIT 1
|
||||
) AS "ReihungstestDatum",
|
||||
@@ -191,7 +192,7 @@
|
||||
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())
|
||||
AND pss.studiensemester_kurzbz = '.$STUDIENSEMESTER.'
|
||||
)
|
||||
)
|
||||
ORDER BY "LastAction" DESC';
|
||||
|
||||
@@ -0,0 +1,47 @@
|
||||
<?php
|
||||
$this->load->view(
|
||||
'templates/FHC-Header',
|
||||
array(
|
||||
'title' => 'Logs viewer',
|
||||
'jquery' => true,
|
||||
'jqueryui' => true,
|
||||
'bootstrap' => true,
|
||||
'fontawesome' => true,
|
||||
'sbadmintemplate' => true,
|
||||
'tablesorter' => true,
|
||||
'ajaxlib' => true,
|
||||
'filterwidget' => true,
|
||||
'navigationwidget' => true,
|
||||
'phrases' => array(
|
||||
'global' => array('mailAnXversandt'),
|
||||
'ui' => array('bitteEintragWaehlen')
|
||||
),
|
||||
'customCSSs' => 'public/css/sbadmin2/tablesort_bootstrap.css',
|
||||
'customJSs' => array('public/js/bootstrapper.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">
|
||||
JobsViewer
|
||||
</h3>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<?php $this->load->view('system/logs/logsViewerData.php'); ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
<?php $this->load->view('templates/FHC-Footer'); ?>
|
||||
@@ -0,0 +1,65 @@
|
||||
<?php
|
||||
|
||||
$filterWidgetArray = array(
|
||||
'query' => '
|
||||
SELECT wsl.webservicelog_id AS "LogId",
|
||||
wsl.request_id AS "RequestId",
|
||||
wsl.execute_time AS "ExecutionTime",
|
||||
wsl.execute_user AS "ExecutedBy",
|
||||
wsl.beschreibung AS "Description",
|
||||
wsl.request_data AS "Data",
|
||||
wsl.webservicetyp_kurzbz AS "WebserviceType"
|
||||
FROM system.tbl_webservicelog wsl
|
||||
ORDER BY wsl.execute_time DESC
|
||||
',
|
||||
'requiredPermissions' => 'admin',
|
||||
'datasetRepresentation' => 'tablesorter',
|
||||
'columnsAliases' => array(
|
||||
'Log id',
|
||||
'Request id',
|
||||
'Execution time',
|
||||
'Executed by',
|
||||
'Producer',
|
||||
'Data',
|
||||
'Webservice type'
|
||||
),
|
||||
'formatRow' => function($datasetRaw) {
|
||||
|
||||
$datasetRaw->ExecutionTime = date_format(date_create($datasetRaw->ExecutionTime), 'd.m.Y H:i:s');
|
||||
|
||||
return $datasetRaw;
|
||||
},
|
||||
'markRow' => function($datasetRaw) {
|
||||
|
||||
$mark = '';
|
||||
|
||||
if ($datasetRaw->RequestId == 'Cronjob error')
|
||||
{
|
||||
$mark = 'text-red';
|
||||
}
|
||||
|
||||
if ($datasetRaw->RequestId == 'Cronjob info')
|
||||
{
|
||||
$mark = 'text-green';
|
||||
}
|
||||
|
||||
if ($datasetRaw->RequestId == 'Cronjob warning')
|
||||
{
|
||||
$mark = 'text-orange';
|
||||
}
|
||||
|
||||
if ($datasetRaw->RequestId == 'Cronjob debug')
|
||||
{
|
||||
$mark = 'text-info';
|
||||
}
|
||||
|
||||
return $mark;
|
||||
}
|
||||
);
|
||||
|
||||
$filterWidgetArray['app'] = 'core';
|
||||
$filterWidgetArray['datasetName'] = 'logs';
|
||||
$filterWidgetArray['filter_id'] = $this->input->get('filter_id');
|
||||
|
||||
echo $this->widgetlib->widget('FilterWidget', $filterWidgetArray);
|
||||
?>
|
||||
@@ -30,6 +30,7 @@
|
||||
$pivotui = isset($pivotui) ? $pivotui : false;
|
||||
$sbadmintemplate = isset($sbadmintemplate) ? $sbadmintemplate : false;
|
||||
$tablesorter = isset($tablesorter) ? $tablesorter : false;
|
||||
$tablewidget = isset($tablewidget) ? $tablewidget : false;
|
||||
$tabulator = isset($tabulator) ? $tabulator : false;
|
||||
$tinymce = isset($tinymce) ? $tinymce : false;
|
||||
$widgets = isset($widgets) ? $widgets : false;
|
||||
@@ -198,6 +199,9 @@
|
||||
// PhrasesLib JS
|
||||
if ($phrases != null) generateJSsInclude('public/js/PhrasesLib.js');
|
||||
|
||||
// TableWidget JS
|
||||
if ($tablewidget === true) generateJSsInclude('public/js/TableWidget.js');
|
||||
|
||||
// Load addon hooks JS
|
||||
// NOTE: keep it as the latest but one
|
||||
if ($addons === true) generateAddonsJSsInclude($calledPath.'/'.$calledMethod);
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<div class="row">
|
||||
|
||||
<div class="row" id="divFilterWidgetDataset">
|
||||
<div class="col-lg-12">
|
||||
|
||||
<!-- Filter name -->
|
||||
@@ -6,40 +7,7 @@
|
||||
|
||||
<br>
|
||||
|
||||
<!-- Filter options -->
|
||||
<div class="panel-group">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<h4 class="panel-title">
|
||||
<a data-toggle="collapse" href="#collapseFilterHeader"><?php echo ucfirst($this->p->t('filter', 'filterEinstellungen')) ?></a>
|
||||
</h4>
|
||||
</div>
|
||||
<div id="collapseFilterHeader" class="panel-collapse collapse">
|
||||
<div class="filters-hidden-panel">
|
||||
<!-- Filter fields options -->
|
||||
<div>
|
||||
<?php FilterWidget::loadViewSelectFields(); ?>
|
||||
</div>
|
||||
|
||||
<br>
|
||||
|
||||
<!-- Filter filters options -->
|
||||
<div>
|
||||
<?php FilterWidget::loadViewSelectFilters(); ?>
|
||||
</div>
|
||||
|
||||
<br>
|
||||
|
||||
<!-- Filter save options -->
|
||||
<div>
|
||||
<?php FilterWidget::loadViewSaveFilter(); ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<br>
|
||||
<?php FilterWidget::loadViewFilterOptions(); ?>
|
||||
|
||||
<!-- Filter info top -->
|
||||
<div id="datasetActionsTop"></div>
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
|
||||
<!-- Filter options -->
|
||||
<div class="panel-group">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<h4 class="panel-title">
|
||||
<a data-toggle="collapse" href="#collapseFilterHeader"><?php echo ucfirst($this->p->t('filter', 'filterEinstellungen')) ?></a>
|
||||
</h4>
|
||||
</div>
|
||||
<div id="collapseFilterHeader" class="panel-collapse collapse">
|
||||
<div class="filters-hidden-panel">
|
||||
<!-- Filter fields options -->
|
||||
<div>
|
||||
<?php FilterWidget::loadViewSelectFields(); ?>
|
||||
</div>
|
||||
|
||||
<br>
|
||||
|
||||
<!-- Filter filters options -->
|
||||
<div>
|
||||
<?php FilterWidget::loadViewSelectFilters(); ?>
|
||||
</div>
|
||||
|
||||
<br>
|
||||
|
||||
<!-- Filter save options -->
|
||||
<div>
|
||||
<?php FilterWidget::loadViewSaveFilter(); ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<br>
|
||||
@@ -1,8 +1,7 @@
|
||||
<div>
|
||||
|
||||
<table class="tablesorter table-bordered table-responsive" id="filterTableDataset">
|
||||
<thead>
|
||||
<tr></tr>
|
||||
</thead>
|
||||
<tbody></tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
<div id="filterTabulator"></div>
|
||||
@@ -0,0 +1 @@
|
||||
<div id="tableWidgetPivotUI"></div>
|
||||
@@ -0,0 +1,17 @@
|
||||
|
||||
<div class="row" id="divTableWidgetDataset" tableUniqueId="<?php echo $tableUniqueId; ?>">
|
||||
<div class="col-lg-12">
|
||||
|
||||
<!-- Table info top -->
|
||||
<div id="tableDatasetActionsTop"></div>
|
||||
|
||||
<!-- TableWidget table -->
|
||||
<div>
|
||||
<?php TableWidget::loadViewDataset(); ?>
|
||||
</div>
|
||||
|
||||
<!-- Table info bottom -->
|
||||
<div id="tableDatasetActionsBottom"></div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,7 @@
|
||||
|
||||
<table class="tablesorter table-bordered table-responsive" id="tableWidgetTableDataset">
|
||||
<thead>
|
||||
<tr></tr>
|
||||
</thead>
|
||||
<tbody></tbody>
|
||||
</table>
|
||||
@@ -0,0 +1 @@
|
||||
<div id="tableWidgetTabulator"></div>
|
||||
Reference in New Issue
Block a user