new workflow Terminate of Studierendenantrag

- DB Update for new studierendenantrag_statustyp with studierendenantrag_statustyp_kurzbz = 'Storniert'
- new permission student/studierendenantrag
- possibility to set status to Terminated in case of new permission
This commit is contained in:
ma0068
2026-06-01 14:10:14 +02:00
parent cb7a0f7669
commit 7858d90d12
11 changed files with 234 additions and 7 deletions
+47
View File
@@ -1948,6 +1948,22 @@ class AntragLib
return $result;
}
/**
* @param integer $antrag_id
* @param string $insertvon
*
* @return stdClass
*/
public function terminateAntrag($antrag_id, $insertvon)
{
$result = $this->_ci->StudierendenantragstatusModel->insert([
'studierendenantrag_id' => $antrag_id,
'studierendenantrag_statustyp_kurzbz' => Studierendenantragstatus_model::STATUS_TERMINATED,
'insertvon' => $insertvon
]);
return $result;
}
/**
* @param integer $studierendenantrag_id
@@ -2119,6 +2135,16 @@ class AntragLib
return $this->hasAccessToAntrag($antrag_id, 'student/antragfreigabe');
}
/**
* @param integer $antrag_id
*
* @return boolean
*/
public function isEntitledToTerminateAntrag($antrag_id)
{
return ($this->hasAccessToAntrag($antrag_id, 'student/antragstornieren'));
}
/**
* @param integer $antrag_id
*
@@ -2149,6 +2175,27 @@ class AntragLib
return $this->_ci->StudierendenantragModel->isManuallyPaused($antrag_id);
}
/**
* @param integer $antrag_id
*
* @return boolean
*/
public function antragCanBeTerminated($antrag_id)
{
$this->_ci->StudierendenantragModel->db->where_not_in('campus.get_status_studierendenantrag(studierendenantrag_id)', [
Studierendenantragstatus_model::STATUS_DEREGISTERED,
Studierendenantragstatus_model::STATUS_APPROVED,
Studierendenantragstatus_model::STATUS_TERMINATED
]);
$result = $this->_ci->StudierendenantragModel->loadWhere([
'studierendenantrag_id' => $antrag_id,
'typ' => Studierendenantrag_model::TYP_WIEDERHOLUNG
]);
return hasData($result);
}
/**
* @param integer $antrag_id
* @param string|array $status