From 2238b872c60949b7b21d547830e64393014ee155 Mon Sep 17 00:00:00 2001 From: cgfhtw Date: Mon, 13 Mar 2023 09:01:45 +0100 Subject: [PATCH] Documents Self Service --- application/controllers/Cis/Documents.php | 15 ++- application/models/crm/Akte_model.php | 51 +++++++ application/views/Cis/Documents.php | 156 +++++++++++++--------- public/css/Cis4/Cis.css | 41 ++++++ 4 files changed, 200 insertions(+), 63 deletions(-) diff --git a/application/controllers/Cis/Documents.php b/application/controllers/Cis/Documents.php index 98327e6f6..20380ca5a 100644 --- a/application/controllers/Cis/Documents.php +++ b/application/controllers/Cis/Documents.php @@ -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 ]); } diff --git a/application/models/crm/Akte_model.php b/application/models/crm/Akte_model.php index fe9db5330..0246ef866 100644 --- a/application/models/crm/Akte_model.php +++ b/application/models/crm/Akte_model.php @@ -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 + ]); + } } diff --git a/application/views/Cis/Documents.php b/application/views/Cis/Documents.php index f927bc053..480fabe85 100644 --- a/application/views/Cis/Documents.php +++ b/application/views/Cis/Documents.php @@ -5,95 +5,127 @@ $this->load->view('templates/CISHTML-Header', $includesArray); ?>
-

Documents

-
-
- +
+

p->t('global', 'dokumente'); ?>p->t('tools', 'bestaetigungenZeugnisse'); ?>

+
+ +
+
+ +
-

p->t('tools', 'inskriptionsbestaetigung'); ?>

- - -

p->t('tools', 'studienbuchblatt'); ?>

-
- TODO(chris): IMPLEMENT! - + + +
+

p->t('tools', 'abschlussdokumente'); ?>

+
    + +
  • + p->t('tools', 'warnungDruckDigitaleSignatur'); ?> +
  • + +
  • + + + PDF bezeichnung; ?> + +
  • + + +
  • + p->t('tools', 'nochKeineAbschlussdokumenteVorhanden'); ?> +
  • + +
+
+
load->view('templates/CISHTML-Footer', $includesArray); ?> diff --git a/public/css/Cis4/Cis.css b/public/css/Cis4/Cis.css index 810a55956..c698ff6e5 100644 --- a/public/css/Cis4/Cis.css +++ b/public/css/Cis4/Cis.css @@ -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; +}