From 6eaa8c4c010abf724283cdd2f6c803697f40edb4 Mon Sep 17 00:00:00 2001 From: ma0068 Date: Mon, 24 Jul 2023 16:04:46 +0200 Subject: [PATCH] Codesniffer and MassDetector --- application/config/studierendenantrag.php | 1 - .../components/Antrag/Abmeldung.php | 8 +- .../controllers/components/Antrag/Leitung.php | 24 +- .../components/Antrag/Unterbrechung.php | 4 +- .../components/Antrag/Wiederholung.php | 10 +- .../controllers/components/Phrasen.php | 1 - application/controllers/jobs/AntragJob.php | 73 +-- .../controllers/lehre/Antrag/Wiederholung.php | 5 +- application/libraries/AntragLib.php | 83 +++- application/libraries/PrestudentLib.php | 26 +- .../models/crm/Prestudentstatus_model.php | 6 +- .../models/education/Pruefung_model.php | 31 +- .../education/Studierendenantrag_model.php | 13 +- ...dierendenantraglehrveranstaltung_model.php | 6 +- .../models/organisation/Studiengang_model.php | 9 +- .../lehre/Antrag/Wiederholung/Student.php | 4 +- public/js/apps/lehre/Antrag.js | 3 +- public/js/apps/lehre/Antrag/Lvzuweisung.js | 5 + .../Leitung/Actions/Columns.js | 2 +- .../Studierendenantrag/Leitung/LvPopup.js | 14 +- .../Studierendenantrag/Leitung/Table.js | 419 +++++++++--------- 21 files changed, 396 insertions(+), 351 deletions(-) diff --git a/application/config/studierendenantrag.php b/application/config/studierendenantrag.php index 89b066d33..786256a82 100644 --- a/application/config/studierendenantrag.php +++ b/application/config/studierendenantrag.php @@ -2,7 +2,6 @@ if (! defined('BASEPATH')) exit('No direct script access allowed'); -// TODO(chris): review this! $config['frist_rueckzahlung_studiengebuer_WS'] = '15.10.'; $config['frist_rueckzahlung_studiengebuer_SS'] = '15.03.'; diff --git a/application/controllers/components/Antrag/Abmeldung.php b/application/controllers/components/Antrag/Abmeldung.php index c55820437..f30de6803 100644 --- a/application/controllers/components/Antrag/Abmeldung.php +++ b/application/controllers/components/Antrag/Abmeldung.php @@ -57,7 +57,13 @@ class Abmeldung extends FHC_Controller } elseif ($result == -1) { - $result = $this->antraglib->getDetailsForLastAntrag($prestudent_id, [Studierendenantrag_model::TYP_ABMELDUNG, Studierendenantrag_model::TYP_ABMELDUNG_STGL]); + $result = $this->antraglib->getDetailsForLastAntrag( + $prestudent_id, + [ + Studierendenantrag_model::TYP_ABMELDUNG, + Studierendenantrag_model::TYP_ABMELDUNG_STGL + ] + ); if (isError($result)) { return $this->outputJsonError(getError($result)); } diff --git a/application/controllers/components/Antrag/Leitung.php b/application/controllers/components/Antrag/Leitung.php index 54e5b65e6..6cc25f87d 100644 --- a/application/controllers/components/Antrag/Leitung.php +++ b/application/controllers/components/Antrag/Leitung.php @@ -2,6 +2,8 @@ if (! defined('BASEPATH')) exit('No direct script access allowed'); +use \stdClass as stdClass; + /** * */ @@ -116,7 +118,7 @@ class Leitung extends FHC_Controller 'Studierenden Antrag', 'required|callback_isEntitledToReopenAntrag', [ - 'isEntitledToReopenAntrag' => $this->p->t('studierendenantrag','error_no_right') + 'isEntitledToReopenAntrag' => $this->p->t('studierendenantrag', 'error_no_right') ] ); @@ -146,8 +148,8 @@ class Leitung extends FHC_Controller 'Studierenden Antrag', 'required|callback_isEntitledToObjectAntrag|callback_canBeObjected', [ - 'isEntitledToObjectAntrag' => $this->p->t('studierendenantrag','error_no_right'), - 'canBeObjected' => $this->p->t('studierendenantrag','error_no_objection') + 'isEntitledToObjectAntrag' => $this->p->t('studierendenantrag', 'error_no_right'), + 'canBeObjected' => $this->p->t('studierendenantrag', 'error_no_objection') ] ); @@ -177,8 +179,8 @@ class Leitung extends FHC_Controller 'Studierenden Antrag', 'required|callback_isEntitledToObjectAntrag|callback_isObjected', [ - 'isEntitledToObjectAntrag' => $this->p->t('studierendenantrag','error_no_right'), - 'isObjected' => $this->p->t('studierendenantrag','error_not_objected') + 'isEntitledToObjectAntrag' => $this->p->t('studierendenantrag', 'error_no_right'), + 'isObjected' => $this->p->t('studierendenantrag', 'error_not_objected') ] ); @@ -208,8 +210,8 @@ class Leitung extends FHC_Controller 'Studierenden Antrag', 'required|callback_isEntitledToObjectAntrag|callback_isObjected', [ - 'isEntitledToObjectAntrag' => $this->p->t('studierendenantrag','error_no_right'), - 'isObjected' => $this->p->t('studierendenantrag','error_not_objected') + 'isEntitledToObjectAntrag' => $this->p->t('studierendenantrag', 'error_no_right'), + 'isObjected' => $this->p->t('studierendenantrag', 'error_not_objected') ] ); @@ -265,7 +267,7 @@ class Leitung extends FHC_Controller 'Studierenden Antrag', 'required|callback_isEntitledToApproveAntrag', [ - 'isEntitledToApproveAntrag' => $this->p->t('studierendenantrag','error_no_right') + 'isEntitledToApproveAntrag' => $this->p->t('studierendenantrag', 'error_no_right') ] ); @@ -301,7 +303,7 @@ class Leitung extends FHC_Controller 'Studierenden Antrag', 'required|callback_isEntitledToApproveAntrag', [ - 'isEntitledToApproveAntrag' => $this->p->t('studierendenantrag','error_no_right') + 'isEntitledToApproveAntrag' => $this->p->t('studierendenantrag', 'error_no_right') ] ); @@ -332,7 +334,7 @@ class Leitung extends FHC_Controller 'Studierenden Antrag', 'required|callback_isEntitledToRejectAntrag', [ - 'isEntitledToRejectAntrag' => $this->p->t('studierendenantrag','error_no_right') + 'isEntitledToRejectAntrag' => $this->p->t('studierendenantrag', 'error_no_right') ] ); $this->form_validation->set_rules('grund', 'Grund', 'required'); @@ -365,7 +367,7 @@ class Leitung extends FHC_Controller 'Studierenden Antrag', 'required|callback_isEntitledToApproveAntrag', [ - 'isEntitledToApproveAntrag' => $this->p->t('studierendenantrag','error_no_right') + 'isEntitledToApproveAntrag' => $this->p->t('studierendenantrag', 'error_no_right') ] ); diff --git a/application/controllers/components/Antrag/Unterbrechung.php b/application/controllers/components/Antrag/Unterbrechung.php index 78594fa65..f0c269617 100644 --- a/application/controllers/components/Antrag/Unterbrechung.php +++ b/application/controllers/components/Antrag/Unterbrechung.php @@ -69,7 +69,9 @@ class Unterbrechung extends FHC_Controller $result = getData($result); $this->output->set_status_header(400); - return $this->outputJsonError($this->p->t('studierendenantrag', 'error_antrag_pending', ['typ' => $this->p->t('studierendenantrag','antrag_typ_' . $result->typ)])); + return $this->outputJsonError($this->p->t('studierendenantrag', 'error_antrag_pending', [ + 'typ' => $this->p->t('studierendenantrag', 'antrag_typ_' . $result->typ) + ])); } elseif ($result == -3) { diff --git a/application/controllers/components/Antrag/Wiederholung.php b/application/controllers/components/Antrag/Wiederholung.php index a2252a7f5..e7fde6031 100644 --- a/application/controllers/components/Antrag/Wiederholung.php +++ b/application/controllers/components/Antrag/Wiederholung.php @@ -67,7 +67,7 @@ class Wiederholung extends FHC_Controller $result = $result->retval; if (!$result) { $this->output->set_status_header(REST_Controller::HTTP_FORBIDDEN); - return $this->outputJsonError($this->p->t('studierendenantrag','error_no_student_no_failed_exam')); + return $this->outputJsonError($this->p->t('studierendenantrag', 'error_no_student_no_failed_exam')); } elseif ($result == -1) { @@ -97,7 +97,9 @@ class Wiederholung extends FHC_Controller $result = getData($result); $this->output->set_status_header(REST_Controller::HTTP_BAD_REQUEST); - return $this->outputJsonError($this->p->t('studierendenantrag', 'error_antrag_pending', ['typ' => $this->p->t('studierendenantrag','antrag_typ_' . $result->typ)])); + return $this->outputJsonError($this->p->t('studierendenantrag', 'error_antrag_pending', [ + 'typ' => $this->p->t('studierendenantrag', 'antrag_typ_' . $result->typ) + ])); } elseif ($result == -3) { @@ -217,7 +219,9 @@ class Wiederholung extends FHC_Controller return [ 'studierendenantrag_id' => $lv->studierendenantrag_id, 'lehrveranstaltung_id' => $lv->lehrveranstaltung_id, - 'note' => $lv->zugelassen ? ($lv->zugelassen == 1 ? 0 : $this->config->item('wiederholung_note_angerechnet')) : $this->config->item('wiederholung_note_nicht_zugelassen'), + 'note' => $lv->zugelassen + ? ($lv->zugelassen == 1 ? 0 : $this->config->item('wiederholung_note_angerechnet')) + : $this->config->item('wiederholung_note_nicht_zugelassen'), 'anmerkung' => $lv->anmerkung, 'insertvon' => getAuthUID(), 'studiensemester_kurzbz' => $lv->studiensemester_kurzbz diff --git a/application/controllers/components/Phrasen.php b/application/controllers/components/Phrasen.php index 52de719f7..87516ce00 100644 --- a/application/controllers/components/Phrasen.php +++ b/application/controllers/components/Phrasen.php @@ -19,5 +19,4 @@ class Phrasen extends FHC_Controller $this->load->library('PhrasesLib', [$module], 'pj'); $this->outputJsonSuccess(json_decode($this->pj->getJSON())); } - } diff --git a/application/controllers/jobs/AntragJob.php b/application/controllers/jobs/AntragJob.php index a4be6da8b..f932a420c 100644 --- a/application/controllers/jobs/AntragJob.php +++ b/application/controllers/jobs/AntragJob.php @@ -6,8 +6,6 @@ use \DateTime as DateTime; class AntragJob extends JOB_Controller { - private $allPrestudentsWhereCommitteeExamFailed; - /** * API constructor */ @@ -40,7 +38,7 @@ class AntragJob extends JOB_Controller $this->load->model('organisation/Studiengang_model', 'StudiengangModel'); - $this->StudierendenantragModel->addJoin('public.tbl_prestudent','prestudent_id'); + $this->StudierendenantragModel->addJoin('public.tbl_prestudent', 'prestudent_id'); $this->db->group_start(); $this->db->where('typ', Studierendenantrag_model::TYP_ABMELDUNG); $this->db->where('campus.get_status_studierendenantrag(studierendenantrag_id)', Studierendenantragstatus_model::STATUS_CREATED); @@ -124,7 +122,7 @@ class AntragJob extends JOB_Controller if (isError($result)) { $this->logError(getError($result)); $languages = [DEFAULT_LANGUAGE]; - } else if (!hasData($result)) { + } elseif (!hasData($result)) { $languages = [DEFAULT_LANGUAGE]; } else { $languages = array_map(function ($row) { @@ -153,7 +151,11 @@ class AntragJob extends JOB_Controller $rows .= $this->p->t('studierendenantrag', 'mail_part_x_new_' . $typ, ['count' => $c]); } } - $table .= $this->p->t('studierendenantrag', 'mail_part_table', ['stg_bezeichnung' => $stg['Details']->bezeichnung, 'stg_orgform_kurzbz' => $stg['Details']->orgform_kurzbz, 'rows' => $rows]); + $table .= $this->p->t('studierendenantrag', 'mail_part_table', [ + 'stg_bezeichnung' => $stg['Details']->bezeichnung, + 'stg_orgform_kurzbz' => $stg['Details']->orgform_kurzbz, + 'rows' => $rows + ]); } $data['table_' . $lang] = $table; } @@ -321,13 +323,11 @@ class AntragJob extends JOB_Controller $this->StudierendenantragModel->addSelect('studiensemester_kurzbz'); $this->StudierendenantragModel->addSelect('s.insertamum'); - $result = $this->StudierendenantragModel->getWithLastStatusWhere( - [ - 'typ' => Studierendenantrag_model::TYP_ABMELDUNG_STGL, - 'studierendenantrag_statustyp_kurzbz' => Studierendenantragstatus_model::STATUS_APPROVED, - 's.insertamum <=' => $dateDeadline->format('c') - ] - ); + $result = $this->StudierendenantragModel->getWithLastStatusWhere([ + 'typ' => Studierendenantrag_model::TYP_ABMELDUNG_STGL, + 'studierendenantrag_statustyp_kurzbz' => Studierendenantragstatus_model::STATUS_APPROVED, + 's.insertamum <=' => $dateDeadline->format('c') + ]); if(isError($result)) { @@ -340,7 +340,13 @@ class AntragJob extends JOB_Controller foreach ($antraege as $antrag) { - $result = $this->prestudentlib->setAbbrecher($antrag->prestudent_id, $antrag->studiensemester_kurzbz, $insertvon, 'abbrecherStgl', $antrag->insertamum); + $result = $this->prestudentlib->setAbbrecher( + $antrag->prestudent_id, + $antrag->studiensemester_kurzbz, + $insertvon, + 'abbrecherStgl', + $antrag->insertamum + ); if (isError($result)) $this->logError(getError($result)); else @@ -402,7 +408,8 @@ class AntragJob extends JOB_Controller $this->logInfo('Ende Job sendAufforderungWiederholer'); } - protected function prestudentsGetUnique($prestudents) { + protected function prestudentsGetUnique($prestudents) + { $result = []; foreach ($prestudents as $prestudent) { if (!isset($result[$prestudent->prestudent_id])) @@ -504,42 +511,4 @@ class AntragJob extends JOB_Controller } $this->logInfo('Ende Job sendAufforderungWiederholer ' . $name); } - - - - // TODO(chris): REMOVE DEBUG! - - /** - * Writes a cronjob info log - */ - protected function logInfo($response, $parameters = null) - { - echo $response . "\n"; - } - - /** - * Writes a cronjob debug log - */ - protected function logDebug($response, $parameters = null) - { - echo $response . "\n"; - } - - /** - * Writes a cronjob warning log - */ - protected function logWarning($response, $parameters = null) - { - echo $response . "\n"; - } - - /** - * Writes a cronjob error log - */ - protected function logError($response, $parameters = null) - { - echo $response . "\n"; - } - - } diff --git a/application/controllers/lehre/Antrag/Wiederholung.php b/application/controllers/lehre/Antrag/Wiederholung.php index 5b22641f7..2aa57d733 100644 --- a/application/controllers/lehre/Antrag/Wiederholung.php +++ b/application/controllers/lehre/Antrag/Wiederholung.php @@ -29,7 +29,7 @@ class Wiederholung extends Auth_Controller // ----------------------------------------------------------------------------------------------------------------- // Public methods - public function assistenz($antrag_id, $frame = false) + public function assistenz($antrag_id) { $result = $this->antraglib->getDetailsForAntrag($antrag_id); @@ -42,8 +42,7 @@ class Wiederholung extends Auth_Controller $this->load->view('lehre/Antrag/Wiederholung/Student', [ 'antrag_id' => $antrag_id, - 'antrag' => getData($result), - 'frame' => $frame + 'antrag' => getData($result) ]); } } diff --git a/application/libraries/AntragLib.php b/application/libraries/AntragLib.php index 628068498..753432edf 100644 --- a/application/libraries/AntragLib.php +++ b/application/libraries/AntragLib.php @@ -125,7 +125,6 @@ class AntragLib { $errors = []; foreach ($studierendenantrag_ids as $studierendenantrag_id) { - $result = $this->_ci->StudierendenantragModel->load($studierendenantrag_id); if (isError($result)) { @@ -162,7 +161,14 @@ class AntragLib $vorlage ='Sancho_Mail_Antrag_A_Approve'; $subject = $this->_ci->p->t('studierendenantrag', 'mail_subject_A_Approve'); - $result = $this->_ci->prestudentlib->setAbbrecher($antrag->prestudent_id, $antrag->studiensemester_kurzbz, $insertvon, 'abbrecherStud', $antrag->datum, $insertam) ; + $result = $this->_ci->prestudentlib->setAbbrecher( + $antrag->prestudent_id, + $antrag->studiensemester_kurzbz, + $insertvon, + 'abbrecherStud', + $antrag->datum, + $insertam + ); if (isError($result)) { $errors[] = getError($result); @@ -199,7 +205,7 @@ class AntragLib 'status_kurzbz'=>$prestudentstatus->status_kurzbz, 'studiensemester_kurzbz'=>$prestudentstatus->studiensemester_kurzbz, 'ausbildungssemester'=>$prestudentstatus->ausbildungssemester - ],[]); + ], []); if (isError($result)) { $errors[] = getError($result); @@ -285,7 +291,13 @@ class AntragLib if (isError($result)) return $result; else { - $result = $this->_ci->prestudentlib->setAbbrecher($antrag->prestudent_id, $antrag->studiensemester_kurzbz, $insertvon, 'abbrecherStgl', $status->insertamum); + $result = $this->_ci->prestudentlib->setAbbrecher( + $antrag->prestudent_id, + $antrag->studiensemester_kurzbz, + $insertvon, + 'abbrecherStgl', + $status->insertamum + ); if (isError($result)) return $result; @@ -417,7 +429,11 @@ class AntragLib $resultAntrag = current($resultAntrag); // Prestudentstatus und Unterbrechungsfolgeaktionen setzen - $result = $this->_ci->prestudentlib->setUnterbrecher($resultAntrag->prestudent_id, $resultAntrag->studiensemester_kurzbz, $studierendenantrag_id); + $result = $this->_ci->prestudentlib->setUnterbrecher( + $resultAntrag->prestudent_id, + $resultAntrag->studiensemester_kurzbz, + $studierendenantrag_id + ); if (isError($result)) { $this->_ci->StudierendenantragstatusModel->delete($studierendenantrag_status_id); @@ -439,7 +455,9 @@ class AntragLib if (isset($data['errors']['person'])) { //send assistenz mit id - $errors[] = $this->_ci->p->t('studierendenantrag', 'error_mail_and_name', ['message' => $data['errors']['email'] . '
' . $data['errors']['person']]); + $errors[] = $this->_ci->p->t('studierendenantrag', 'error_mail_and_name', [ + 'message' => $data['errors']['email'] . '
' . $data['errors']['person'] + ]); $mail['ass'] = $this->_ci->p->t('studierendenantrag', 'StudentIn', ['prestudent_id' => $data['antrag']->prestudent_id]); } else @@ -539,9 +557,9 @@ class AntragLib ]); if (isError($result)) { $errors['failed_' . $studierendenantrag_id] = $this->_ci->p->t('studierendenantrag', 'error_U_Reject', [ - 'studierendenantrag_id' => $studierendenantrag_id, - 'message' => getError($result)['message'] - ]); + 'studierendenantrag_id' => $studierendenantrag_id, + 'message' => getError($result)['message'] + ]); } else { $name = ''; @@ -667,7 +685,10 @@ class AntragLib $date_created = new DateTime($result['antrag']->datum); if ($date_created < $date_target) { $this->_ci->load->model('crm/Konto_model', 'KontoModel'); - $result['studienbeitrag'] = $this->_ci->KontoModel->checkStudienbeitragFromPerson($person_id, $result['antrag']->studiensemester_kurzbz); + $result['studienbeitrag'] = $this->_ci->KontoModel->checkStudienbeitragFromPerson( + $person_id, + $result['antrag']->studiensemester_kurzbz + ); } } @@ -986,7 +1007,11 @@ class AntragLib * * @param integer $prestudent_id * - * @return \stdClass on success retval 0 means not a student; retval 1 means Berechtigt; retval -1 means has already an Antrag pending; retval -2 means other Antrag pending; retval -3 means in blacklist stg + * @return \stdClass on success retval 0 means not a student; + * retval 1 means Berechtigt; + * retval -1 means has already an Antrag pending; + * retval -2 means other Antrag pending; + * retval -3 means in blacklist stg */ public function getPrestudentAbmeldeBerechtigt($prestudent_id) { @@ -1009,7 +1034,13 @@ class AntragLib $datumStatus = $result->datum; if (!in_array($result->status_kurzbz, $this->_ci->config->item('antrag_prestudentstatus_whitelist'))) { - $result = $this->_ci->StudierendenantragModel->loadWithStatusWhere(['prestudent_id' => $prestudent_id, 'campus.get_status_studierendenantrag(studierendenantrag_id)' => Studierendenantragstatus_model::STATUS_APPROVED], [Studierendenantrag_model::TYP_ABMELDUNG, Studierendenantrag_model::TYP_ABMELDUNG_STGL]); + $result = $this->_ci->StudierendenantragModel->loadWithStatusWhere([ + 'prestudent_id' => $prestudent_id, + 'campus.get_status_studierendenantrag(studierendenantrag_id)' => Studierendenantragstatus_model::STATUS_APPROVED + ], [ + Studierendenantrag_model::TYP_ABMELDUNG, + Studierendenantrag_model::TYP_ABMELDUNG_STGL + ]); if (isError($result)) return $result; if (hasData($result)) @@ -1049,7 +1080,11 @@ class AntragLib * @param integer $prestudent_id * @param string $studiensemester_kurzbz (optional) * - * @return \stdClass on success retval 0 means not a student; retval 1 means Berechtigt; retval -1 means has already an Antrag pending; retval -2 means other Antrag pending; retval -3 means in blacklist stg + * @return \stdClass on success retval 0 means not a student; + * retval 1 means Berechtigt; + * retval -1 means has already an Antrag pending; + * retval -2 means other Antrag pending; + * retval -3 means in blacklist stg */ public function getPrestudentUnterbrechungsBerechtigt($prestudent_id, $studiensemester_kurzbz = null) { @@ -1071,7 +1106,11 @@ class AntragLib $result = current(getData($result)); $datumStatus = $result->datum; if (!in_array($result->status_kurzbz, $this->_ci->config->item('antrag_prestudentstatus_whitelist'))) { - $result = $this->_ci->StudierendenantragModel->loadWithStatusWhere(['prestudent_id' => $prestudent_id, 'typ' => Studierendenantrag_model::TYP_UNTERBRECHUNG, 'campus.get_status_studierendenantrag(studierendenantrag_id)' => Studierendenantragstatus_model::STATUS_APPROVED]); + $result = $this->_ci->StudierendenantragModel->loadWithStatusWhere([ + 'prestudent_id' => $prestudent_id, + 'typ' => Studierendenantrag_model::TYP_UNTERBRECHUNG, + 'campus.get_status_studierendenantrag(studierendenantrag_id)' => Studierendenantragstatus_model::STATUS_APPROVED + ]); if (isError($result)) return $result; if (hasData($result)) @@ -1115,7 +1154,11 @@ class AntragLib * * @param integer $prestudent_id * - * @return \stdClass on success retval 0 means not a student; retval 1 means Berechtigt; retval -1 means has already an Antrag pending; retval -2 means other Antrag pending; retval -3 means in blacklist stg + * @return \stdClass on success retval 0 means not a student; + * retval 1 means Berechtigt; + * retval -1 means has already an Antrag pending; + * retval -2 means other Antrag pending; + * retval -3 means in blacklist stg */ public function getPrestudentWiederholungsBerechtigt($prestudent_id) { @@ -1144,7 +1187,11 @@ class AntragLib $result = current(getData($result)); $datumStatus = $result->datum; if (!in_array($result->status_kurzbz, $this->_ci->config->item('antrag_prestudentstatus_whitelist'))) { - $result = $this->_ci->StudierendenantragModel->loadWithStatusWhere(['prestudent_id' => $prestudent_id, 'typ' => Studierendenantrag_model::TYP_WIEDERHOLUNG, 'campus.get_status_studierendenantrag(studierendenantrag_id)' => Studierendenantragstatus_model::STATUS_APPROVED]); + $result = $this->_ci->StudierendenantragModel->loadWithStatusWhere([ + 'prestudent_id' => $prestudent_id, + 'typ' => Studierendenantrag_model::TYP_WIEDERHOLUNG, + 'campus.get_status_studierendenantrag(studierendenantrag_id)' => Studierendenantragstatus_model::STATUS_APPROVED + ]); if (isError($result)) return $result; if (hasData($result)) @@ -1333,7 +1380,9 @@ class AntragLib public function saveLvs($lvArray) { - $result = $this->_ci->StudierendenantraglehrveranstaltungModel->deleteWhere(['studierendenantrag_id' => $lvArray[0]['studierendenantrag_id']]); + $result = $this->_ci->StudierendenantraglehrveranstaltungModel->deleteWhere([ + 'studierendenantrag_id' => $lvArray[0]['studierendenantrag_id'] + ]); if (isError($result)) return $result; diff --git a/application/libraries/PrestudentLib.php b/application/libraries/PrestudentLib.php index bb1250a62..59cba0df1 100644 --- a/application/libraries/PrestudentLib.php +++ b/application/libraries/PrestudentLib.php @@ -32,7 +32,6 @@ class PrestudentLib $this->_ci->load->model('organisation/Lehrverband_model', 'LehrverbandModel'); $this->_ci->load->model('education/Studentlehrverband_model', 'StudentlehrverbandModel'); $this->_ci->load->model('person/Benutzer_model', 'BenutzerModel'); - } public function setAbbrecher($prestudent_id, $studiensemester_kurzbz, $insertvon = null, $statusgrund_kurzbz = null, $datum = null, $bestaetigtam = null) @@ -153,7 +152,7 @@ class PrestudentLib 'studiensemester_kurzbz' => $lv->studiensemester_kurzbz, 'student_uid' => $lv->uid, 'lehrveranstaltung_id' => $lv->lehrveranstaltung_id - ],[ + ], [ 'note' => 9 ]); @@ -181,7 +180,7 @@ class PrestudentLib $this->_ci->StudentlehrverbandModel->update([ 'studiensemester_kurzbz' => $studiensemester_kurzbz, 'student_uid' => $student->student_uid - ],[ + ], [ 'studiengang_kz' => $student->studiengang_kz, 'semester' => 0, 'verband' => 'A', @@ -193,7 +192,7 @@ class PrestudentLib //Benutzer inaktiv setzen $this->_ci->BenutzerModel->update([ 'uid' => $student->student_uid - ],[ + ], [ 'aktiv' => false, 'updateaktivvon' => $insertvon, 'updateaktivam' => date('c'), @@ -214,20 +213,6 @@ class PrestudentLib return $result; $result = getData($result); if (!$result) { - /** TODO(chris): Zukünftige Unterbrecher so nicht möglich - * - Verband und Gruppe dürfen noch nicht gesetzt werden - * - Keine Garantie das Ausbildungssemester gleich bleibt (weiter Unterbrechungen oder eine Wiederholung in der Zwischenzeit) - * - LVs eventuell nicht zugewießen - * Mögliche Lösung: JOB! - - $result = $this->_ci->PrestudentstatusModel->getLastStatus($prestudent_id); - if (isError($result)) - return $result; - $result = getData($result); - if (!$result) { - return error('Kein Prestudent status gefunden'); - } - $result->studiensemester_kurzbz*/ return error($this->_ci->p->t('studierendenantrag', 'error_no_prestudent_in_sem', [ 'prestudent_id' => $prestudent_id, 'studiensemester_kurzbz' => $studiensemester_kurzbz @@ -341,7 +326,7 @@ class PrestudentLib 'studiensemester_kurzbz' => $lv->studiensemester_kurzbz, 'student_uid' => $lv->uid, 'lehrveranstaltung_id' => $lv->lehrveranstaltung_id - ],[ + ], [ 'note' => 9 ]); @@ -369,7 +354,7 @@ class PrestudentLib $this->_ci->StudentlehrverbandModel->update([ 'studiensemester_kurzbz' => $studiensemester_kurzbz, 'student_uid' => $student->student_uid - ],[ + ], [ 'studiengang_kz' => $student->studiengang_kz, 'semester' => 0, 'verband' => 'B', @@ -380,5 +365,4 @@ class PrestudentLib return success(); } - } diff --git a/application/models/crm/Prestudentstatus_model.php b/application/models/crm/Prestudentstatus_model.php index ddf8d3a7a..16f82fea5 100644 --- a/application/models/crm/Prestudentstatus_model.php +++ b/application/models/crm/Prestudentstatus_model.php @@ -328,7 +328,11 @@ class Prestudentstatus_model extends DB_Model public function withGrund($statusgrund_kurzbz) { if($statusgrund_kurzbz) - $this->db->set('statusgrund_id', '(SELECT statusgrund_id FROM public.tbl_status_grund WHERE statusgrund_kurzbz =' . $this->db->escape($statusgrund_kurzbz) .')', FALSE); + $this->db->set( + 'statusgrund_id', + '(SELECT statusgrund_id FROM public.tbl_status_grund WHERE statusgrund_kurzbz =' . $this->db->escape($statusgrund_kurzbz) .')', + false + ); return $this; } diff --git a/application/models/education/Pruefung_model.php b/application/models/education/Pruefung_model.php index 047cac02f..813a74179 100644 --- a/application/models/education/Pruefung_model.php +++ b/application/models/education/Pruefung_model.php @@ -64,7 +64,20 @@ class Pruefung_model extends DB_Model $this->addSelect('campus.get_status_studierendenantrag(a.studierendenantrag_id) status'); $this->addSelect('count(1) as count'); - $this->addGroupBy(['pers.vorname','pers.nachname','pers.person_id', 's.matrikelnr','g.bezeichnung', 'g.studiengang_kz','o.bezeichnung_mehrsprachig','ps.prestudent_id', 'lv.bezeichnung', 'le.studiensemester_kurzbz', 'a.typ', 'a.studierendenantrag_id']); + $this->addGroupBy([ + 'pers.vorname', + 'pers.nachname', + 'pers.person_id', + 's.matrikelnr', + 'g.bezeichnung', + 'g.studiengang_kz', + 'o.bezeichnung_mehrsprachig', + 'ps.prestudent_id', + 'lv.bezeichnung', + 'le.studiensemester_kurzbz', + 'a.typ', + 'a.studierendenantrag_id' + ]); $this->addJoin('lehre.tbl_note n', 'note'); $this->addJoin('lehre.tbl_lehreinheit le', 'lehreinheit_id'); $this->addJoin('lehre.tbl_lehrveranstaltung lv', 'lehrveranstaltung_id'); @@ -91,7 +104,15 @@ class Pruefung_model extends DB_Model AND ps.prestudent_id = ps1.prestudent_id)', null, false); // NOTE(chris): is Wiederholer without set statusgrund (legacy?) - $this->db->where('(SELECT COUNT(*) FROM (SELECT DISTINCT studiensemester_kurzbz FROM tbl_prestudentstatus _s WHERE ausbildungssemester=get_absem_prestudent(ps.prestudent_id, le.studiensemester_kurzbz) AND prestudent_id=ps.prestudent_id) a) = 1', null, false); + $this->db->where( + '(SELECT COUNT(*) + FROM (SELECT DISTINCT studiensemester_kurzbz + FROM tbl_prestudentstatus _s + WHERE ausbildungssemester=get_absem_prestudent(ps.prestudent_id, le.studiensemester_kurzbz) + AND prestudent_id=ps.prestudent_id) a) = 1', + null, + false + ); return $this->db->get_compiled_select($this->dbTable); } @@ -113,7 +134,11 @@ class Pruefung_model extends DB_Model if (!is_array($statusgruende)) $statusgruende = []; - return $this->execQuery('select * from ( ' . $sql . ') temp where count >= 3 AND prestudent_id = ?' , [Studierendenantrag_model::TYP_WIEDERHOLUNG, $statusgruende, $prestudent_id]); + return $this->execQuery('select * from ( ' . $sql . ') temp where count >= 3 AND prestudent_id = ?', [ + Studierendenantrag_model::TYP_WIEDERHOLUNG, + $statusgruende, + $prestudent_id + ]); } public function getAllPrestudentsWhereCommitteeExamFailed($status, $maxDate, $minDate) diff --git a/application/models/education/Studierendenantrag_model.php b/application/models/education/Studierendenantrag_model.php index a4dfb0d59..67adca855 100644 --- a/application/models/education/Studierendenantrag_model.php +++ b/application/models/education/Studierendenantrag_model.php @@ -54,8 +54,11 @@ class Studierendenantrag_model extends DB_Model $this->addJoin('public.tbl_studiengang stg', 'p.studiengang_kz=stg.studiengang_kz'); $this->addJoin('public.tbl_studiensemester', 'studiensemester_kurzbz'); $this->addJoin('bis.tbl_orgform', 'orgform_kurzbz'); - $this->addJoin('campus.tbl_studierendenantrag_status as s','campus.get_status_id_studierendenantrag('.$this->dbTable .'.studierendenantrag_id) = studierendenantrag_status_id' ); - $this->addJoin('campus.tbl_studierendenantrag_statustyp as st','studierendenantrag_statustyp_kurzbz' ); + $this->addJoin( + 'campus.tbl_studierendenantrag_status as s', + 'campus.get_status_id_studierendenantrag('. $this->dbTable .'.studierendenantrag_id) = studierendenantrag_status_id' + ); + $this->addJoin('campus.tbl_studierendenantrag_statustyp as st', 'studierendenantrag_statustyp_kurzbz'); $this->db->where_in('p.studiengang_kz', $studiengaenge); @@ -189,7 +192,11 @@ class Studierendenantrag_model extends DB_Model $this->addJoin('public.tbl_prestudent p', 'prestudent_id', 'RIGHT'); $this->addJoin('public.tbl_studiengang stg', 'p.studiengang_kz=stg.studiengang_kz'); $this->addJoin('bis.tbl_orgform', 'orgform_kurzbz'); - $this->addJoin('campus.tbl_studierendenantrag_statustyp st', 'campus.get_status_studierendenantrag(studierendenantrag_id)=st.studierendenantrag_statustyp_kurzbz','LEFT'); + $this->addJoin( + 'campus.tbl_studierendenantrag_statustyp st', + 'campus.get_status_studierendenantrag(studierendenantrag_id)=st.studierendenantrag_statustyp_kurzbz', + 'LEFT' + ); return $this->loadWhere([ 'p.person_id' => $person_id diff --git a/application/models/education/Studierendenantraglehrveranstaltung_model.php b/application/models/education/Studierendenantraglehrveranstaltung_model.php index 88d591053..9445b8cf8 100644 --- a/application/models/education/Studierendenantraglehrveranstaltung_model.php +++ b/application/models/education/Studierendenantraglehrveranstaltung_model.php @@ -65,7 +65,11 @@ class Studierendenantraglehrveranstaltung_model extends DB_Model 'stat.studierendenantrag_status_id = campus.get_status_id_studierendenantrag(a.studierendenantrag_id)' ); $this->addJoin('public.tbl_student s', 'prestudent_id'); - $this->addJoin('lehre.tbl_zeugnisnote z', 'z.lehrveranstaltung_id=lv.lehrveranstaltung_id AND z.student_uid=s.student_uid AND z.studiensemester_kurzbz=a.studiensemester_kurzbz', 'LEFT'); + $this->addJoin( + 'lehre.tbl_zeugnisnote z', + 'z.lehrveranstaltung_id=lv.lehrveranstaltung_id AND z.student_uid=s.student_uid AND z.studiensemester_kurzbz=a.studiensemester_kurzbz', + 'LEFT' + ); return $this->loadWhere([ 'ps.prestudent_id' => $prestudent_id, diff --git a/application/models/organisation/Studiengang_model.php b/application/models/organisation/Studiengang_model.php index 1fb733d04..8b7d93035 100644 --- a/application/models/organisation/Studiengang_model.php +++ b/application/models/organisation/Studiengang_model.php @@ -581,7 +581,14 @@ class Studiengang_model extends DB_Model if ($not_antrag_typ !== null && is_array($not_antrag_typ)) { foreach($not_antrag_typ as $k => $v) $not_antrag_typ[$k] = $this->db->escape($v); - $this->addJoin('campus.tbl_studierendenantrag a', 'a.prestudent_id=p.prestudent_id and a.typ in ('. implode(',', $not_antrag_typ ).") AND campus.get_status_studierendenantrag (a.studierendenantrag_id)<>'" . Studierendenantragstatus_model::STATUS_CANCELLED . "'", 'LEFT'); + $this->addJoin( + 'campus.tbl_studierendenantrag a', + 'a.prestudent_id=p.prestudent_id and a.typ in ('. + implode(',', $not_antrag_typ). + ") AND campus.get_status_studierendenantrag (a.studierendenantrag_id)<>'" . + Studierendenantragstatus_model::STATUS_CANCELLED . "'", + 'LEFT' + ); $this->db->where('a.typ IS NULL'); } diff --git a/application/views/lehre/Antrag/Wiederholung/Student.php b/application/views/lehre/Antrag/Wiederholung/Student.php index 1aa72ee69..9c2db040e 100644 --- a/application/views/lehre/Antrag/Wiederholung/Student.php +++ b/application/views/lehre/Antrag/Wiederholung/Student.php @@ -26,11 +26,9 @@ $this->load->view( ?>
- -
+

p->t('studierendenantrag', 'title_lvzuweisen', ['name' => $antrag->name]);?>

-
status != Studierendenantragstatus_model::STATUS_CREATED && $antrag->status != Studierendenantragstatus_model::STATUS_LVSASSIGNED) ? ' disabled' : ''; ?>>
diff --git a/public/js/apps/lehre/Antrag.js b/public/js/apps/lehre/Antrag.js index e5a4814f8..bcb7b37a7 100644 --- a/public/js/apps/lehre/Antrag.js +++ b/public/js/apps/lehre/Antrag.js @@ -15,8 +15,7 @@ const app = Vue.createApp({ statusMsg: "", statusSeverity: "", infoArray: [] - } - + }; } }); app.mount('#wrapper'); diff --git a/public/js/apps/lehre/Antrag/Lvzuweisung.js b/public/js/apps/lehre/Antrag/Lvzuweisung.js index 2cbe2f1c8..836d1168e 100644 --- a/public/js/apps/lehre/Antrag/Lvzuweisung.js +++ b/public/js/apps/lehre/Antrag/Lvzuweisung.js @@ -3,6 +3,11 @@ import LvZuweisung from '../../../components/Studierendenantrag/Lvzuweisung.js'; const app = Vue.createApp({ components: { LvZuweisung + }, + computed: { + notinframe() { + return window.self === window.top; + } } }); app.mount('#wrapper'); diff --git a/public/js/components/Studierendenantrag/Leitung/Actions/Columns.js b/public/js/components/Studierendenantrag/Leitung/Actions/Columns.js index df2b2a0de..7128761d7 100644 --- a/public/js/components/Studierendenantrag/Leitung/Actions/Columns.js +++ b/public/js/components/Studierendenantrag/Leitung/Actions/Columns.js @@ -22,4 +22,4 @@ export default {
` -} \ No newline at end of file +} diff --git a/public/js/components/Studierendenantrag/Leitung/LvPopup.js b/public/js/components/Studierendenantrag/Leitung/LvPopup.js index c09101c03..8efee8ae4 100644 --- a/public/js/components/Studierendenantrag/Leitung/LvPopup.js +++ b/public/js/components/Studierendenantrag/Leitung/LvPopup.js @@ -15,12 +15,14 @@ export default { antragId: Number, countRemaining: Number }, - data: () => ({ - lvs: null, - refresh: true, - result: false, - check: false - }), + data(){ + return { + lvs: null, + refresh: true, + result: false, + check: false + }; + }, computed: { lvzugelassen() { let zwischen = {}; diff --git a/public/js/components/Studierendenantrag/Leitung/Table.js b/public/js/components/Studierendenantrag/Leitung/Table.js index 7cc83e0ea..cb469ee57 100644 --- a/public/js/components/Studierendenantrag/Leitung/Table.js +++ b/public/js/components/Studierendenantrag/Leitung/Table.js @@ -73,7 +73,8 @@ export default { } }, mounted() { - function dateFormatter (cell) { + function dateFormatter(cell) + { let val = cell.getValue(); if (!val) return ''; @@ -96,239 +97,219 @@ export default { columns: ["width", "visible"], //persist columns }, persistenceID: 'studierendenantrag_leitung', - columns: [ - { - formatter: 'rowSelection', - titleFormatter: 'rowSelection', - titleFormatterParams: { - rowRange: 'active' - }, - hozAlign: 'center', - headerSort: false + columns: [{ + formatter: 'rowSelection', + titleFormatter: 'rowSelection', + titleFormatterParams: { + rowRange: 'active' }, - { - field: 'studierendenantrag_id', - title: '#' + hozAlign: 'center', + headerSort: false + }, { + field: 'studierendenantrag_id', + title: '#' + }, { + field: 'bezeichnung', + title: this.p.t('lehre', 'studiengang'), + headerFilter: 'list', + headerFilterParams: { + valuesLookup: true, + clearable: true, + autocomplete: true, + } + }, { + field: 'orgform', + title: this.p.t('lehre', 'organisationsform'), + headerFilter: 'list', + headerFilterParams: { + valuesLookup: true, + clearable: true, + autocomplete: true, + } + }, { + field: 'typ', + title: this.p.t('studierendenantrag', 'antrag_typ'), + headerFilter: 'list', + headerFilterParams: { + valuesLookup: true, + clearable: true, + autocomplete: true, }, - { - field: 'bezeichnung', - title: this.p.t('lehre', 'studiengang'), - headerFilter: 'list', - headerFilterParams: { - valuesLookup: true, - clearable: true, - autocomplete: true, - } - }, - { - field: 'orgform', - title: this.p.t('lehre', 'organisationsform'), - headerFilter: 'list', - headerFilterParams: { - valuesLookup: true, - clearable: true, - autocomplete: true, - } - }, - { - field: 'typ', - title: this.p.t('studierendenantrag', 'antrag_typ'), - headerFilter: 'list', - headerFilterParams: { - valuesLookup: true, - clearable: true, - autocomplete: true, - }, - formatter: (cell, formatterParams, onRendered) => { - return this.p.t('studierendenantrag','antrag_typ_' + cell.getValue()); - } - }, - { - field: 'statustyp', - title: this.p.t('studierendenantrag', 'antrag_status'), - headerFilter: 'list', - headerFilterParams: { - valuesLookup: true, - clearable: true, - autocomplete: true, - } - }, - { - field: 'matrikelnr', - title: this.p.t('person', 'personenkennzeichen'), - headerFilter: 'input' - }, - { - field: 'prestudent_id', - title: this.p.t('lehre', 'prestudent'), - headerFilter: 'input' - }, - { - field: 'name', - title: this.p.t('global', 'name'), - mutator: (value, data) => (data.vorname + ' ' + data.nachname).replace(/^\s*(.*)\s*$/, '$1'), - headerFilter: 'input' - }, - { - field: 'datum', - title: this.p.t('global', 'datum'), - formatter: dateFormatter, - headerFilterFunc: 'dates', - headerFilter: dateFilter - }, - { - field: 'datum_wiedereinstieg', - title: this.p.t('studierendenantrag', 'antrag_datum_wiedereinstieg'), - formatter: dateFormatter, - headerFilterFunc: 'dates', - headerFilter: dateFilter - }, - { - field: 'grund', - title: this.p.t('studierendenantrag', 'antrag_grund'), - formatter: (cell, formatterParams, onRendered) => { - let link = document.createElement('a'), - val = cell.getValue(); - link.href = "#modal-grund"; - link.setAttribute('data-bs-toggle', 'modal'); - link.innerHTML = this.p.t('studierendenantrag', 'antrag_grund'); - link.addEventListener('click', () => { - this.$refs.modalGrundPre.innerHTML = val; - }); + formatter: (cell, formatterParams, onRendered) => { + return this.p.t('studierendenantrag','antrag_typ_' + cell.getValue()); + } + }, { + field: 'statustyp', + title: this.p.t('studierendenantrag', 'antrag_status'), + headerFilter: 'list', + headerFilterParams: { + valuesLookup: true, + clearable: true, + autocomplete: true, + } + }, { + field: 'matrikelnr', + title: this.p.t('person', 'personenkennzeichen'), + headerFilter: 'input' + }, { + field: 'prestudent_id', + title: this.p.t('lehre', 'prestudent'), + headerFilter: 'input' + }, { + field: 'name', + title: this.p.t('global', 'name'), + mutator: (value, data) => (data.vorname + ' ' + data.nachname).replace(/^\s*(.*)\s*$/, '$1'), + headerFilter: 'input' + }, { + field: 'datum', + title: this.p.t('global', 'datum'), + formatter: dateFormatter, + headerFilterFunc: 'dates', + headerFilter: dateFilter + }, { + field: 'datum_wiedereinstieg', + title: this.p.t('studierendenantrag', 'antrag_datum_wiedereinstieg'), + formatter: dateFormatter, + headerFilterFunc: 'dates', + headerFilter: dateFilter + }, { + field: 'grund', + title: this.p.t('studierendenantrag', 'antrag_grund'), + formatter: (cell, formatterParams, onRendered) => { + let link = document.createElement('a'), + val = cell.getValue(); + link.href = "#modal-grund"; + link.setAttribute('data-bs-toggle', 'modal'); + link.innerHTML = this.p.t('studierendenantrag', 'antrag_grund'); + link.addEventListener('click', () => { + this.$refs.modalGrundPre.innerHTML = val; + }); - return val ? link : ''; - } - }, - { - field: 'dms_id', - title: this.p.t('studierendenantrag', 'antrag_dateianhaenge'), - formatter: (cell, formatterParams, onRendered) => { - let val = cell.getValue(); - if (!val) - return ''; - return ' ' + this.p.t('studierendenantrag', 'antrag_anhang') + ''; - } - }, - { - field: 'actions', - formatter: (cell, formatterParams, onRendered) => { - let container = document.createElement('div'), - data = cell.getData(); + return val ? link : ''; + } + }, { + field: 'dms_id', + title: this.p.t('studierendenantrag', 'antrag_dateianhaenge'), + formatter: (cell, formatterParams, onRendered) => { + let val = cell.getValue(); + if (!val) + return ''; + return ' ' + this.p.t('studierendenantrag', 'antrag_anhang') + ''; + } + }, { + field: 'actions', + formatter: (cell, formatterParams, onRendered) => { + let container = document.createElement('div'), + data = cell.getData(); - container.className = "d-flex gap-2"; + container.className = "d-flex gap-2"; - if((data.typ == 'Abmeldung' || data.typ == 'Unterbrechung') && (data.status == 'Genehmigt')) - { - // NOTE(chris): Download PDF + if ((data.typ == 'Abmeldung' || data.typ == 'Unterbrechung') && (data.status == 'Genehmigt')) { + // NOTE(chris): Download PDF + let button = document.createElement('a'); + button.innerHTML = ''; + button.className = "btn btn-outline-secondary"; + button.target = "_blank"; + button.href = FHC_JS_DATA_STORAGE_OBJECT.app_root + + 'content/pdfExport.php?xml=Antrag' + data.typ + '.xml.php&xsl=Antrag' + data.typ + '&id=' + data.studierendenantrag_id + '&output=pdf'; + container.append(button); + } + if (data.typ == 'AbmeldungStgl' && data.status == 'Genehmigt') { + // NOTE(chris): Object + let button = document.createElement('button'); + button.innerHTML = this.p.t('studierendenantrag', 'btn_object'); + button.className = "btn btn-outline-secondary"; + button.addEventListener('click', () => this.$emit('action:object', [cell.getData()])); + container.append(button); + } + + if (data.typ == 'AbmeldungStgl' && data.status == 'Beeinsprucht') { + // NOTE(chris): Deny Objection + let button = document.createElement('button'); + button.innerHTML = this.p.t('studierendenantrag', 'btn_objection_deny'); + button.className = "btn btn-outline-secondary"; + button.addEventListener('click', () => this.$emit('action:objectionDeny', [cell.getData()])); + container.append(button); + + // NOTE(chris): Approve Objection + button = document.createElement('button'); + button.innerHTML = this.p.t('studierendenantrag', 'btn_objection_approve'); + button.className = "btn btn-outline-secondary"; + button.addEventListener('click', () => this.$emit('action:objectionApprove', [cell.getData()])); + container.append(button); + } + + if (this.stgA.includes(data.studiengang_kz)) { + // NOTE(chris): Reopen + if (data.typ == 'Wiederholung' && data.status == 'Verzichtet') { + let button = document.createElement('button'); + button.innerHTML = this.p.t('studierendenantrag', 'btn_reopen'); + button.className = "btn btn-outline-secondary"; + button.addEventListener('click', () => this.$emit('action:reopen', [cell.getData()])); + container.append(button); + } + // NOTE(chris): Lv Zuweisen + if (data.typ == 'Wiederholung' && (data.status == 'Erstellt' || data.status == 'Lvszugewiesen')) { let button = document.createElement('a'); - button.innerHTML = ''; + button.innerHTML = this.p.t('studierendenantrag', 'btn_lvzuweisen'); button.className = "btn btn-outline-secondary"; - button.target = "_blank"; button.href = FHC_JS_DATA_STORAGE_OBJECT.app_root + - 'content/pdfExport.php?xml=Antrag' + data.typ + '.xml.php&xsl=Antrag' + data.typ + '&id='+ data.studierendenantrag_id +'&output=pdf'; - container.append(button); - } - if(data.typ == 'AbmeldungStgl' && data.status == 'Genehmigt') - { - // NOTE(chris): Object - let button = document.createElement('button'); - button.innerHTML = this.p.t('studierendenantrag', 'btn_object'); - button.className = "btn btn-outline-secondary"; - button.addEventListener('click',() => this.$emit('action:object', [cell.getData()])); - container.append(button); - } - - if(data.typ == 'AbmeldungStgl' && data.status == 'Beeinsprucht') - { - // NOTE(chris): Deny Objection - let button = document.createElement('button'); - button.innerHTML = this.p.t('studierendenantrag', 'btn_objection_deny'); - button.className = "btn btn-outline-secondary"; - button.addEventListener('click',() => this.$emit('action:objectionDeny', [cell.getData()])); - container.append(button); - - // NOTE(chris): Approve Objection - button = document.createElement('button'); - button.innerHTML = this.p.t('studierendenantrag', 'btn_objection_approve'); - button.className = "btn btn-outline-secondary"; - button.addEventListener('click',() => this.$emit('action:objectionApprove', [cell.getData()])); - container.append(button); - } - - if (this.stgA.includes(data.studiengang_kz)) - { - // NOTE(chris): Reopen - if (data.typ == 'Wiederholung' && data.status == 'Verzichtet') { - let button = document.createElement('button'); - button.innerHTML = this.p.t('studierendenantrag', 'btn_reopen'); - button.className = "btn btn-outline-secondary"; - button.addEventListener('click',() => this.$emit('action:reopen', [cell.getData()])); - container.append(button); - } - // NOTE(chris): Lv Zuweisen - if (data.typ == 'Wiederholung' && (data.status == 'Erstellt' || data.status == 'Lvszugewiesen')) { - let button = document.createElement('a'); - button.innerHTML = this.p.t('studierendenantrag', 'btn_lvzuweisen'); - button.className = "btn btn-outline-secondary"; - button.href = FHC_JS_DATA_STORAGE_OBJECT.app_root + FHC_JS_DATA_STORAGE_OBJECT.ci_router + '/lehre/Antrag/Wiederholung/assistenz/' + cell.getData().studierendenantrag_id + '/frame'; - button.onclick = e => { - e.preventDefault(); - BsModal.popup(Vue.h('iframe', { - src: button.href, - class: 'position-absolute top-0 start-0 w-100 h-100' - }), { - dialogClass: 'modal-fullscreen' - }, this.p.t('studierendenantrag', 'title_lvzuweisen', cell.getData())).then(() => { - this.$emit('reload'); - }); - }; - container.append(button); - } - } - - if (this.stgL.includes(data.studiengang_kz)) - { - // NOTE(chris): Approve - if ((data.typ == 'Wiederholung' && data.status == 'Lvszugewiesen') || (data.typ != 'Wiederholung' && data.status == 'Erstellt')) { - let button = document.createElement('button'); - button.innerHTML = this.p.t('studierendenantrag', 'btn_approve'); - button.className = "btn btn-outline-secondary"; - button.addEventListener('click', () => this.$emit('action:approve', [cell.getData()])); - container.append(button); - } - // NOTE(chris): Reject (Unterbrechung braucht grund) - if (data.status == 'Erstellt' && data.typ == 'Unterbrechung') { - let button = document.createElement('button'); - button.innerHTML = this.p.t('studierendenantrag', 'btn_reject'); - button.className = "btn btn-outline-secondary"; - button.addEventListener('click', () => this.$emit('action:reject', [cell.getData()])); - container.append(button); - } - } - - // NOTE(chris): Show LVs - if (data.typ == 'Wiederholung' && (data.status == 'Lvszugewiesen' || data.status == 'Genehmigt')) { - let button = document.createElement('button'); - button.innerHTML = this.p.t('studierendenantrag', 'btn_show_lvs'); - button.className = "btn btn-outline-secondary"; - button.addEventListener('click', () => this.showLVs(cell.getData())); + button.onclick = e => { + e.preventDefault(); + BsModal.popup(Vue.h('iframe', { + src: button.href, + class: 'position-absolute top-0 start-0 w-100 h-100' + }), { + dialogClass: 'modal-fullscreen' + }, this.p.t('studierendenantrag', 'title_lvzuweisen', cell.getData())).then(() => { + this.$emit('reload'); + }); + }; container.append(button); } - - // TODO(chris): not yet perfect - onRendered(() => { - cell.getColumn().setWidth(true); - }); - - return container; } + + if (this.stgL.includes(data.studiengang_kz)) { + // NOTE(chris): Approve + if ((data.typ == 'Wiederholung' && data.status == 'Lvszugewiesen') || (data.typ != 'Wiederholung' && data.status == 'Erstellt')) { + let button = document.createElement('button'); + button.innerHTML = this.p.t('studierendenantrag', 'btn_approve'); + button.className = "btn btn-outline-secondary"; + button.addEventListener('click', () => this.$emit('action:approve', [cell.getData()])); + container.append(button); + } + // NOTE(chris): Reject (Unterbrechung braucht grund) + if (data.status == 'Erstellt' && data.typ == 'Unterbrechung') { + let button = document.createElement('button'); + button.innerHTML = this.p.t('studierendenantrag', 'btn_reject'); + button.className = "btn btn-outline-secondary"; + button.addEventListener('click', () => this.$emit('action:reject', [cell.getData()])); + container.append(button); + } + } + + // NOTE(chris): Show LVs + if (data.typ == 'Wiederholung' && (data.status == 'Lvszugewiesen' || data.status == 'Genehmigt')) { + let button = document.createElement('button'); + button.innerHTML = this.p.t('studierendenantrag', 'btn_show_lvs'); + button.className = "btn btn-outline-secondary"; + button.addEventListener('click', () => this.showLVs(cell.getData())); + container.append(button); + } + + // TODO(chris): not yet perfect + onRendered(() => { + cell.getColumn().setWidth(true); + }); + + return container; } - ] + }] }); this.table.on("tableBuilt", () => { let columns = this.table.getColumns();