mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-24 10:22:18 +00:00
Documents Self Service
This commit is contained in:
@@ -106,6 +106,18 @@ class Documents extends Auth_Controller
|
||||
}
|
||||
}
|
||||
|
||||
$selfservice = null;
|
||||
if (!defined('CIS_DOKUMENTE_SELFSERVICE') || CIS_DOKUMENTE_SELFSERVICE) {
|
||||
$this->load->model('crm/Akte_model', 'AkteModel');
|
||||
$result = $this->AkteModel->getArchiv(getAuthPersonId(), null, true);
|
||||
if (isError($result))
|
||||
return $this->view->load('errors/html/error_db.php', [
|
||||
'heading' => 'Database Error',
|
||||
'message' => getError($result)
|
||||
]);
|
||||
$selfservice = getData($result) ?: [];
|
||||
}
|
||||
|
||||
|
||||
// TODO(chris): in array stsem stsemArray:
|
||||
// TODO(chris): - inskriptionsbestaetigung (konto)
|
||||
@@ -127,7 +139,8 @@ class Documents extends Auth_Controller
|
||||
'studiengaenge' => $studiengaenge,
|
||||
'inskriptionsbestaetigungen' => $inskriptionsbestaetigungen,
|
||||
'studienbuchblatt' => defined('CIS_DOKUMENTE_STUDIENBUCHLBATT_DRUCKEN') && CIS_DOKUMENTE_STUDIENBUCHLBATT_DRUCKEN,
|
||||
'studienerfolgsbestaetigung' => defined('CIS_DOKUMENTE_STUDIENERFOLGSBESTAETIGUNG_DRUCKEN') && CIS_DOKUMENTE_STUDIENERFOLGSBESTAETIGUNG_DRUCKEN
|
||||
'studienerfolgsbestaetigung' => defined('CIS_DOKUMENTE_STUDIENERFOLGSBESTAETIGUNG_DRUCKEN') && CIS_DOKUMENTE_STUDIENERFOLGSBESTAETIGUNG_DRUCKEN,
|
||||
'selfservice' => $selfservice
|
||||
]);
|
||||
}
|
||||
|
||||
|
||||
@@ -190,4 +190,55 @@ class Akte_model extends DB_Model
|
||||
|
||||
return success($dokumente->retval);
|
||||
}
|
||||
|
||||
/**
|
||||
* Liefert die Archivdokumente einer Person
|
||||
*
|
||||
* @param integer $person_id
|
||||
* @param boolean|null $signiert Wenn true werden nur Dokumente geliefert die digital signiert wurden.
|
||||
* @param boolean|null $stud_selfservice Wenn true werden nur Dokumente geliefert die Studierende selbst herunterladen duerfen.
|
||||
*
|
||||
* @return stdClass
|
||||
*/
|
||||
public function getArchiv($person_id, $signiert = null, $stud_selfservice = null)
|
||||
{
|
||||
$this->addSelect('akte_id');
|
||||
$this->addSelect('person_id');
|
||||
$this->addSelect('dokument_kurzbz');
|
||||
$this->addSelect('mimetype');
|
||||
$this->addSelect('erstelltam');
|
||||
$this->addSelect('gedruckt');
|
||||
$this->addSelect('titel_intern');
|
||||
$this->addSelect('anmerkung_intern');
|
||||
$this->addSelect('titel');
|
||||
$this->addSelect('bezeichnung');
|
||||
$this->addSelect('updateamum');
|
||||
$this->addSelect('insertamum');
|
||||
$this->addSelect('updatevon');
|
||||
$this->addSelect('insertvon');
|
||||
$this->addSelect('uid');
|
||||
$this->addSelect('dms_id');
|
||||
$this->addSelect('anmerkung');
|
||||
$this->addSelect('nachgereicht');
|
||||
$this->addSelect('CASE WHEN inhalt is not null THEN true ELSE false END as inhalt_vorhanden', false);
|
||||
$this->addSelect('nachgereicht_am');
|
||||
$this->addSelect('ausstellungsnation');
|
||||
$this->addSelect('formal_geprueft_amum');
|
||||
$this->addSelect('archiv');
|
||||
$this->addSelect('signiert');
|
||||
$this->addSelect('stud_selfservice');
|
||||
$this->addSelect('akzeptiertamum');
|
||||
|
||||
if ($signiert !== null)
|
||||
$this->db->where('signiert', (boolean)$signiert);
|
||||
if ($stud_selfservice !== null)
|
||||
$this->db->where('stud_selfservice', (boolean)$stud_selfservice);
|
||||
|
||||
$this->addOrder('erstelltam', 'DESC');
|
||||
|
||||
return $this->loadWhere([
|
||||
'person_id' => $person_id,
|
||||
'archiv' => true
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,95 +5,127 @@ $this->load->view('templates/CISHTML-Header', $includesArray);
|
||||
?>
|
||||
|
||||
<div id="content">
|
||||
<h2>Documents</h2>
|
||||
<hr>
|
||||
<div class="mb-3">
|
||||
<select class="form-select" onchange="location = this.value">
|
||||
<?php foreach ($stsemArray as $sem) { ?>
|
||||
<option value="<?= site_url('Cis/Documents/Semester/' . $sem); ?>"<?= $sem == $stsem ? ' selected': ''; ?>>
|
||||
<?= $sem; ?>
|
||||
</option>
|
||||
<?php } ?>
|
||||
</select>
|
||||
<div class="fhc-header">
|
||||
<h1><?= $this->p->t('global', 'dokumente'); ?><small><?= $this->p->t('tools', 'bestaetigungenZeugnisse'); ?></small></h1>
|
||||
</div>
|
||||
|
||||
<div class="row mb-3 justify-content-end">
|
||||
<div class="col-auto">
|
||||
<select class="form-select" onchange="location = this.value">
|
||||
<?php foreach ($stsemArray as $sem) { ?>
|
||||
<option value="<?= site_url('Cis/Documents/Semester/' . $sem); ?>"<?= $sem == $stsem ? ' selected': ''; ?>>
|
||||
<?= $sem; ?>
|
||||
</option>
|
||||
<?php } ?>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php if ($hasSemester) { ?>
|
||||
<h3><?= $this->p->t('tools', 'inskriptionsbestaetigung'); ?></h3>
|
||||
<ul class="list-unstyled">
|
||||
<?php foreach ($inskriptionsbestaetigungen as $stg => $hasPaid) { ?>
|
||||
<?php if (count($studiengaenge) != 1) { ?>
|
||||
<li>
|
||||
<b><?= $studiengaenge[$stg]->bezeichnung; ?></b>
|
||||
</li>
|
||||
<?php } ?>
|
||||
<?php if ($hasPaid) { ?>
|
||||
<li>
|
||||
<a class="text-decoration-none" target="_blank" href="<?= base_url('cis/private/pdfExport.php?xsl=Inskription&xml=student.rdf.php&ss=' . $stsem . '&uid=' . $uid . '&xsl_stg_kz=' . $stg); ?>">
|
||||
<img class="align-baseline" src="<?= base_url('skin/images/pdfpic.gif'); ?>" alt="PDF"> <?= $this->p->t('tools', 'inskriptionsbestaetigung') . ' ' . $stsem; ?>
|
||||
</a>
|
||||
</li>
|
||||
<?php } else { ?>
|
||||
<li class="text-danger">
|
||||
<?= $this->p->t('tools', 'studienbeitragFuerSSNochNichtBezahlt', ['stsem' => $stsem]); ?>
|
||||
</li>
|
||||
<?php } ?>
|
||||
<?php } ?>
|
||||
</ul>
|
||||
<?php if ($studienbuchblatt) { ?>
|
||||
<h3><?= $this->p->t('tools', 'studienbuchblatt'); ?></h3>
|
||||
<ul class="list-unstyled">
|
||||
<div class="card mb-3">
|
||||
<h3 class="card-header h5"><?= $this->p->t('tools', 'inskriptionsbestaetigung'); ?></h3>
|
||||
<ul class="list-group list-group-flush">
|
||||
<?php foreach ($inskriptionsbestaetigungen as $stg => $hasPaid) { ?>
|
||||
<?php if (count($studiengaenge) != 1) { ?>
|
||||
<li>
|
||||
<b><?= $studiengaenge[$stg]->bezeichnung; ?></b>
|
||||
<li class="list-group-item fw-bold">
|
||||
<?= $studiengaenge[$stg]->bezeichnung; ?>
|
||||
</li>
|
||||
<?php } ?>
|
||||
<?php if ($hasPaid) { ?>
|
||||
<li>
|
||||
<?php /* TODO(chris): studiengang_kz? */ ?>
|
||||
<a class="text-decoration-none" target="_blank" href="<?= base_url('cis/private/pdfExport.php?xsl=Studienblatt&xml=studienblatt.xml.php&ss=' . $stsem . '&uid=' . $uid); ?>">
|
||||
<img class="align-baseline" src="<?= base_url('skin/images/pdfpic.gif'); ?>" alt="PDF"> <?= $this->p->t('tools', 'studienbuchblatt') . ' ' . $stsem; ?>
|
||||
<li class="list-group-item">
|
||||
<a class="text-decoration-none" target="_blank" href="<?= base_url('cis/private/pdfExport.php?xsl=Inskription&xml=student.rdf.php&ss=' . $stsem . '&uid=' . $uid . '&xsl_stg_kz=' . $stg); ?>">
|
||||
<img class="align-baseline" src="<?= base_url('skin/images/pdfpic.gif'); ?>" alt="PDF"> <?= $this->p->t('tools', 'inskriptionsbestaetigung') . ' ' . $stsem; ?>
|
||||
</a>
|
||||
</li>
|
||||
<?php } else { ?>
|
||||
<li class="text-danger">
|
||||
<li class="list-group-item list-group-item-danger">
|
||||
<?= $this->p->t('tools', 'studienbeitragFuerSSNochNichtBezahlt', ['stsem' => $stsem]); ?>
|
||||
</li>
|
||||
<?php } ?>
|
||||
<?php } ?>
|
||||
</ul>
|
||||
</div>
|
||||
<?php if ($studienbuchblatt) { ?>
|
||||
<div class="card mb-3">
|
||||
<h3 class="card-header h5"><?= $this->p->t('tools', 'studienbuchblatt'); ?></h3>
|
||||
<ul class="list-group list-group-flush">
|
||||
<?php foreach ($inskriptionsbestaetigungen as $stg => $hasPaid) { ?>
|
||||
<?php if (count($studiengaenge) != 1) { ?>
|
||||
<li class="list-group-item fw-bold">
|
||||
<?= $studiengaenge[$stg]->bezeichnung; ?>
|
||||
</li>
|
||||
<?php } ?>
|
||||
<?php if ($hasPaid) { ?>
|
||||
<li class="list-group-item">
|
||||
<?php /* TODO(chris): studiengang_kz? */ ?>
|
||||
<a class="text-decoration-none" target="_blank" href="<?= base_url('cis/private/pdfExport.php?xsl=Studienblatt&xml=studienblatt.xml.php&ss=' . $stsem . '&uid=' . $uid); ?>">
|
||||
<img class="align-baseline" src="<?= base_url('skin/images/pdfpic.gif'); ?>" alt="PDF"> <?= $this->p->t('tools', 'studienbuchblatt') . ' ' . $stsem; ?>
|
||||
</a>
|
||||
</li>
|
||||
<?php } else { ?>
|
||||
<li class="list-group-item list-group-item-danger">
|
||||
<?= $this->p->t('tools', 'studienbeitragFuerSSNochNichtBezahlt', ['stsem' => $stsem]); ?>
|
||||
</li>
|
||||
<?php } ?>
|
||||
<?php } ?>
|
||||
</ul>
|
||||
</div>
|
||||
<?php } ?>
|
||||
<?php if ($studienerfolgsbestaetigung) { ?>
|
||||
<h3><?= $this->p->t('tools', 'studienerfolgsbestaetigung'); ?></h3>
|
||||
<ul class="list-unstyled">
|
||||
<?php foreach ($studiengaenge as $stg => $bezeichnung) { ?>
|
||||
<?php if (count($studiengaenge) != 1) { ?>
|
||||
<li>
|
||||
<b><?= $bezeichnung; ?></b>
|
||||
</li>
|
||||
<?php } ?>
|
||||
<?php foreach (['' => '&typ=finanzamt', ' (' . $this->p->t('tools', 'vorlageWohnsitzfinanzamt') . ')' => ''] as $finanz_bez => $finanz_param) { ?>
|
||||
<?php foreach (['de' => [$this->p->t('public', 'deutsch'), 'Studienerfolg'], 'en' => [$this->p->t('public', 'englisch'), 'StudienerfolgEng']] as $lang_kurz => $lang) { ?>
|
||||
<?php foreach ([$stsem => $stsem, $this->p->t('tools', 'alleStudiensemester') => 'alle&all=1'] as $sem_bez => $sem_param) { ?>
|
||||
<li>
|
||||
<a class="text-decoration-none" target="_blank" href="<?= base_url('cis/private/pdfExport.php?xsl=' . $lang[1] . '&xml=studienerfolg.rdf.php&ss=' . $sem_param . '&uid=' . $uid . $finanz_param); ?>">
|
||||
<img class="align-baseline" src="<?= base_url('skin/images/pdfpic.gif'); ?>" alt="PDF"> <?= $this->p->t('tools', 'studienerfolgsbestaetigung') . ' ' . $sem_bez . ' ' . $lang[0] . $finanz_bez; ?>
|
||||
</a>
|
||||
</li>
|
||||
<?php /* TODO(chris): Finanzamt $this->p->t('tools/vorlageWohnsitzfinanzamt') */ ?>
|
||||
<div class="card mb-3">
|
||||
<h3 class="card-header h5"><?= $this->p->t('tools', 'studienerfolgsbestaetigung'); ?></h3>
|
||||
<ul class="list-group list-group-flush">
|
||||
<?php foreach ($studiengaenge as $stg => $bezeichnung) { ?>
|
||||
<?php if (count($studiengaenge) != 1) { ?>
|
||||
<li class="list-group-item fw-bold">
|
||||
<?= $bezeichnung; ?>
|
||||
</li>
|
||||
<?php } ?>
|
||||
<?php foreach (['' => '&typ=finanzamt', ' (' . $this->p->t('tools', 'vorlageWohnsitzfinanzamt') . ')' => ''] as $finanz_bez => $finanz_param) { ?>
|
||||
<?php foreach (['de' => [$this->p->t('public', 'deutsch'), 'Studienerfolg'], 'en' => [$this->p->t('public', 'englisch'), 'StudienerfolgEng']] as $lang_kurz => $lang) { ?>
|
||||
<?php foreach ([$stsem => $stsem, $this->p->t('tools', 'alleStudiensemester') => 'alle&all=1'] as $sem_bez => $sem_param) { ?>
|
||||
<li class="list-group-item">
|
||||
<a class="text-decoration-none" target="_blank" href="<?= base_url('cis/private/pdfExport.php?xsl=' . $lang[1] . '&xml=studienerfolg.rdf.php&ss=' . $sem_param . '&uid=' . $uid . $finanz_param); ?>">
|
||||
<img class="align-baseline" src="<?= base_url('skin/images/pdfpic.gif'); ?>" alt="PDF"> <?= $this->p->t('tools', 'studienerfolgsbestaetigung') . ' ' . $sem_bez . ' ' . $lang[0] . $finanz_bez; ?>
|
||||
</a>
|
||||
</li>
|
||||
<?php } ?>
|
||||
<?php } ?>
|
||||
<?php } ?>
|
||||
<?php } ?>
|
||||
<?php } ?>
|
||||
</ul>
|
||||
</ul>
|
||||
</div>
|
||||
<?php } ?>
|
||||
<?php } else { ?>
|
||||
<div class="alert alert-danger" role="alert">
|
||||
<?= $this->p->t('tools', 'keinStatusImStudiensemester', ['stsem' => $stsem]); ?>
|
||||
</div>
|
||||
<?php } ?>
|
||||
TODO(chris): IMPLEMENT!
|
||||
|
||||
|
||||
<?php if ($selfservice !== null) { ?>
|
||||
<div class="card mb-3">
|
||||
<h3 class="card-header h5"><?= $this->p->t('tools', 'abschlussdokumente'); ?></h3>
|
||||
<ul class="list-group list-group-flush">
|
||||
<?php if (count($selfservice)) { ?>
|
||||
<li class="list-group-item list-group-item-warning">
|
||||
<?= $this->p->t('tools', 'warnungDruckDigitaleSignatur'); ?>
|
||||
</li>
|
||||
<?php foreach ($selfservice as $row) { ?>
|
||||
<li class="list-group-item">
|
||||
<a class="text-decoration-none" target="_blank" href="<?= base_url('dokumente.php?action=download&id='.$row->akte_id.'&uid='.$uid); ?>">
|
||||
<?php /* TODO(chris): datum & link */ ?>
|
||||
<img class="align-baseline" src="<?= base_url('skin/images/pdfpic.gif'); ?>" alt="PDF"> <?= $row->bezeichnung; ?>
|
||||
</a>
|
||||
</li>
|
||||
<?php } ?>
|
||||
<?php } else { ?>
|
||||
<li class="list-group-item list-group-item-danger">
|
||||
<?= $this->p->t('tools', 'nochKeineAbschlussdokumenteVorhanden'); ?>
|
||||
</li>
|
||||
<?php } ?>
|
||||
</ul>
|
||||
</div>
|
||||
<?php } ?>
|
||||
</div>
|
||||
|
||||
<?php $this->load->view('templates/CISHTML-Footer', $includesArray); ?>
|
||||
|
||||
@@ -306,3 +306,44 @@
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
/* Typography */
|
||||
.fhc-header {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: end;
|
||||
border-bottom: 1px solid #dee2e6;
|
||||
margin: 1rem 0;
|
||||
}
|
||||
.fhc-header > h1 {
|
||||
font-size: calc(1.3rem + 0.6vw);
|
||||
}
|
||||
@media (min-width: 1200px) {
|
||||
.fhc-header > h1 {
|
||||
font-size: 1.75rem;
|
||||
}
|
||||
}
|
||||
.fhc-header > h1 > small {
|
||||
color: #6c757d;
|
||||
font-size: 1rem;
|
||||
}
|
||||
.fhc-header > h1 > small:before {
|
||||
content: " | ";
|
||||
}
|
||||
.fhc-header > a {
|
||||
margin-bottom: 0.5rem;
|
||||
text-decoration: none;
|
||||
}
|
||||
.fhc-header > a:after {
|
||||
color: var(--bs-body-color);
|
||||
content: "\f059";
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
display: var(--fa-display, inline-block);
|
||||
font-style: normal;
|
||||
font-variant: normal;
|
||||
line-height: 1;
|
||||
text-rendering: auto;
|
||||
font-family: var(--fa-style-family, "Font Awesome 6 Free");
|
||||
font-weight: var(--fa-style, 900);
|
||||
margin-inline-start: 0.5rem;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user