diff --git a/application/controllers/lehre/Studierendenantrag.php b/application/controllers/lehre/Studierendenantrag.php index ad333679d..8e6fbc1f5 100644 --- a/application/controllers/lehre/Studierendenantrag.php +++ b/application/controllers/lehre/Studierendenantrag.php @@ -22,6 +22,7 @@ class Studierendenantrag extends FHC_Controller // Load Models $this->load->model('education/Studierendenantrag_model', 'StudierendenantragModel'); $this->load->model('person/Person_model', 'PersonModel'); + $this->load->model('crm/Prestudenstatus_model', 'PrestudentstatusModel'); // Load language phrases $this->loadPhrases([ @@ -55,7 +56,8 @@ class Studierendenantrag extends FHC_Controller 'allowedNewTypes' => array(), 'antraege'=> array(), 'bezeichnungStg' => $antrag->bezeichnung, - 'bezeichnungOrgform' => $antrag->orgform + 'bezeichnungOrgform' => $antrag->orgform, + 'hasStatusUnterbrecher' => false ); if ($this->config->item('wiederholung_enabled') === true) @@ -70,6 +72,11 @@ class Studierendenantrag extends FHC_Controller $result = $this->antraglib->getPrestudentUnterbrechungsBerechtigt($antrag->prestudent_id); if (getData($result) == 1) $prestudentenArr[$antrag->prestudent_id]['allowedNewTypes'][] = 'Unterbrechung'; + //check if already status unterbrecher + elseif (getData($result) == -4){ + $prestudentenArr[$antrag->prestudent_id]['allowedNewTypes'][] = 'Unterbrechung'; + $prestudentenArr[$antrag->prestudent_id]['hasStatusUnterbrecher'] = true; + } } if ($this->config->item('abmeldung_enabled') === true) diff --git a/application/libraries/AntragLib.php b/application/libraries/AntragLib.php index 35edc826c..4fe3dcc27 100644 --- a/application/libraries/AntragLib.php +++ b/application/libraries/AntragLib.php @@ -1427,9 +1427,19 @@ class AntragLib * retval -1 means has already an Antrag pending; * retval -2 means other Antrag pending; * retval -3 means in blacklist stg + * retval -4 means existing Unterbrecher status in prestudent history */ public function getPrestudentUnterbrechungsBerechtigt($prestudent_id, $studiensemester_kurzbz = null, $datum_wiedereinstieg = null) { + //check if Unterbrecherstatus + $result = $this->_ci->PrestudentstatusModel->loadWhere([ + 'prestudent_id' => $prestudent_id, + 'status_kurzbz' => Prestudentstatus_model::STATUS_UNTERBRECHER + ]); + $hasStatusUnterbrecher = hasData($result) ? true : false; + if ($hasStatusUnterbrecher) + return success(-4); + $result = $this->_ci->PrestudentModel->load($prestudent_id); if (isError($result)) return $result; diff --git a/application/views/lehre/Antrag/Student/List.php b/application/views/lehre/Antrag/Student/List.php index 884d1f391..09025befe 100644 --- a/application/views/lehre/Antrag/Student/List.php +++ b/application/views/lehre/Antrag/Student/List.php @@ -57,6 +57,9 @@ if(defined('CIS4')){ if($type == 'Abmeldung' && $showInfoModalAbmeldung){ $href = "#modalinfo" . $prestudent_id; } + elseif($type == 'Unterbrechung' && $array['hasStatusUnterbrecher']){ + $href = "#modalalreadyinterruptor" . $prestudent_id; + } else $href = site_url('lehre/Studierendenantrag/' . strtolower($type) . '/' . $prestudent_id); ?> @@ -67,10 +70,52 @@ if(defined('CIS4')){ data-bs-toggle="modal" + + data-bs-toggle="modal" + > p->t('studierendenantrag', 'antrag_typ_' . $type); ?> + + + +