diff --git a/application/controllers/api/frontend/v1/stv/Konto.php b/application/controllers/api/frontend/v1/stv/Konto.php index ecd58671a..d59bc76b0 100644 --- a/application/controllers/api/frontend/v1/stv/Konto.php +++ b/application/controllers/api/frontend/v1/stv/Konto.php @@ -48,7 +48,8 @@ class Konto extends FHCAPI_Controller // Load language phrases $this->loadPhrases([ - 'konto' + 'konto', + 'lehre' ]); } @@ -112,7 +113,7 @@ class Konto extends FHCAPI_Controller * * @return void */ - public function getBuchungstypen() + public function getBuchungstypen($studiensemester_kurzbz = null) { $this->load->model('crm/Buchungstyp_model', 'BuchungstypModel'); @@ -122,6 +123,7 @@ class Konto extends FHCAPI_Controller $data = $this->getDataOrTerminateWithError($result); + $this->_getOEHBeitrag($data, $studiensemester_kurzbz); $this->terminateWithSuccess($data); } @@ -494,4 +496,43 @@ class Konto extends FHCAPI_Controller $this->terminateWithSuccess(); } + + private function _getOEHBeitrag(&$data, $studiensemester_kurzbz = null) + { + if (is_null($studiensemester_kurzbz)) + { + $this->load->library('VariableLib', ['uid' => getAuthUID()]); + $studiensemester_akt = $this->variablelib->getVar('semester_aktuell'); + } + else + { + $this->load->model('organisation/Studiensemester_model', 'StudiensemesterModel'); + if ($this->StudiensemesterModel->isValidStudiensemester($studiensemester_kurzbz)) + $studiensemester_akt = $studiensemester_kurzbz; + else + $this->terminateWithError($this->p->t('lehre', 'error_noStudiensemester')); + } + + $this->load->model('codex/Oehbeitrag_model', 'OehbeitragModel'); + $oehBeitrag = $this->OehbeitragModel->getByStudiensemester($studiensemester_akt); + + $oehStandardbetrag = null; + if (hasData($oehBeitrag)) + { + $oeh = getData($oehBeitrag)[0]; + $summe = ($oeh->studierendenbeitrag + $oeh->versicherung) * -1; + $oehStandardbetrag = number_format((float)$summe, 2, '.', ''); + } + + if ($oehStandardbetrag !== null) + { + $data = array_map(function ($buchungstyp) use ($oehStandardbetrag) { + if (isset($buchungstyp->buchungstyp_kurzbz) && (strtolower($buchungstyp->buchungstyp_kurzbz) === 'oeh')) + { + $buchungstyp->standardbetrag = $oehStandardbetrag; + } + return $buchungstyp; + }, $data); + } + } } diff --git a/application/core/Notiz_Controller.php b/application/core/Notiz_Controller.php index 923970923..7269c3b09 100644 --- a/application/core/Notiz_Controller.php +++ b/application/core/Notiz_Controller.php @@ -417,6 +417,7 @@ abstract class Notiz_Controller extends FHCAPI_Controller $notiz_id = $this->input->post('notiz_id'); $this->NotizModel->addSelect('campus.tbl_dms_version.*'); + $this->NotizModel->addSelect($this->NotizModel->escape(base_url('content/notizdokdownload.php?id=')) . ' || public.tbl_notiz_dokument.dms_id AS preview'); $this->NotizModel->addJoin('public.tbl_notiz_dokument', 'ON (public.tbl_notiz_dokument.notiz_id = public.tbl_notiz.notiz_id)'); $this->NotizModel->addJoin('campus.tbl_dms_version', 'ON (public.tbl_notiz_dokument.dms_id = campus.tbl_dms_version.dms_id)'); diff --git a/include/konto.class.php b/include/konto.class.php index 51f79200b..da76c147f 100644 --- a/include/konto.class.php +++ b/include/konto.class.php @@ -25,6 +25,7 @@ */ require_once(dirname(__FILE__).'/basis_db.class.php'); require_once(dirname(__FILE__).'/'.EXT_FKT_PATH.'/generateZahlungsreferenz.inc.php'); +require_once(dirname(__FILE__).'/variable.class.php'); class konto extends basis_db { @@ -432,6 +433,8 @@ class konto extends basis_db $qry.=" ORDER BY beschreibung"; + $oehBeitrag = $this->_getOEHBeitrag(); + if($this->db_query($qry)) { while($row = $this->db_fetch_object()) @@ -440,7 +443,15 @@ class konto extends basis_db $typ->buchungstyp_kurzbz = $row->buchungstyp_kurzbz; $typ->beschreibung = $row->beschreibung; - $typ->standardbetrag = $row->standardbetrag; + if (strtolower($typ->buchungstyp_kurzbz) === 'oeh' && $oehBeitrag) + { + $typ->standardbetrag = $oehBeitrag; + } + else + { + $typ->standardbetrag = $row->standardbetrag; + } + $typ->standardtext = $row->standardtext; $typ->credit_points = $row->credit_points; $typ->aktiv = $this->db_parse_bool($row->aktiv); @@ -990,6 +1001,38 @@ class konto extends basis_db return false; } } + + private function _getOEHBeitrag() + { + $variablen_obj = new variable(); + $variablen_obj->loadVariables(get_uid()); + + $qry = "WITH semstart AS ( + SELECT start FROM public.tbl_studiensemester + WHERE studiensemester_kurzbz = '". $this->db_escape($variablen_obj->variable->semester_aktuell) . "' + ) + SELECT * FROM bis.tbl_oehbeitrag oehb + JOIN public.tbl_studiensemester semvon ON oehb.von_studiensemester_kurzbz = semvon.studiensemester_kurzbz + LEFT JOIN public.tbl_studiensemester sembis ON oehb.bis_studiensemester_kurzbz = sembis.studiensemester_kurzbz + JOIN semstart ON semstart.start::date >= semvon.start::date AND (sembis.studiensemester_kurzbz IS NULL OR semstart.start::date <= sembis.start::date) + ORDER BY semvon.start + LIMIT 1"; + + if ($this->db_query($qry)) + { + if($row = $this->db_fetch_object()) + { + $summe = ($row->studierendenbeitrag + $row->versicherung) * -1; + return number_format((float)$summe, 2, '.', ''); + } + return false; + } + else + { + $this->errormsg = 'Fehler bei der Abfrage aufgetreten'; + return false; + } + } } ?> diff --git a/public/css/Studentenverwaltung.css b/public/css/Studentenverwaltung.css index cb4b8f2e9..fb56ec75c 100644 --- a/public/css/Studentenverwaltung.css +++ b/public/css/Studentenverwaltung.css @@ -197,10 +197,6 @@ html.fs_huge { margin-bottom: -1px; } -.tiny-90 div.tox.tox-tinymce { - height: 90% !important; -} - /* slim begin */ .stv .form-label { margin-bottom: .15rem; diff --git a/public/js/api/factory/stv/konto.js b/public/js/api/factory/stv/konto.js index 6c17d460d..c6c167f6a 100644 --- a/public/js/api/factory/stv/konto.js +++ b/public/js/api/factory/stv/konto.js @@ -38,6 +38,10 @@ export default { }; }, insert(params) { + if(params.betrag) + { + params.betrag = params.betrag.replace(',', '.'); + } return { method: 'post', url: 'api/frontend/v1/stv/konto/insert', @@ -52,6 +56,10 @@ export default { }; }, edit(params) { + if(params.betrag) + { + params.betrag = params.betrag.replace(',', '.'); + } return { method: 'post', url: 'api/frontend/v1/stv/konto/update', @@ -65,10 +73,14 @@ export default { params: { buchungsnr } }; }, - getBuchungstypen() { + getBuchungstypen(studiensemester_kurzbz) { + let url = 'api/frontend/v1/stv/konto/getBuchungstypen' + if (!!studiensemester_kurzbz) + url = url + '/' + encodeURIComponent(studiensemester_kurzbz); + return { method: 'get', - url: 'api/frontend/v1/stv/konto/getBuchungstypen' + url: url }; - } + }, }; \ No newline at end of file diff --git a/public/js/components/Messages/Details/NewMessage/Modal.js b/public/js/components/Messages/Details/NewMessage/Modal.js index eeda421e6..b23eebbcd 100644 --- a/public/js/components/Messages/Details/NewMessage/Modal.js +++ b/public/js/components/Messages/Details/NewMessage/Modal.js @@ -63,7 +63,7 @@ export default { const vm = this; tinymce.init({ target: this.$refs.editor.$refs.input, //Important: not selector: to enable multiple import of component - //height: 800, + min_height: 300, //plugins: ['lists'], toolbar: 'styleselect | bold italic underline | alignleft aligncenter alignright alignjustify | link', plugins: 'link', @@ -313,7 +313,7 @@ export default {