mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-23 09:52:22 +00:00
Merge branch 'feature-27351/Digitalisierung_Formulare_Neu' into feature-25999/C4
This commit is contained in:
@@ -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);
|
||||
@@ -180,8 +186,7 @@ class AntragLib
|
||||
// NOTE(chris): Sancho mail
|
||||
sendSanchoMail($vorlage, $data, $prestudent_status->email, $subject);
|
||||
}
|
||||
}
|
||||
if ($antrag->typ == Studierendenantrag_model::TYP_ABMELDUNG_STGL) {
|
||||
} else { // ($antrag->typ == Studierendenantrag_model::TYP_ABMELDUNG_STGL)
|
||||
$result = $this->_ci->PrestudentstatusModel->getLastStatus($antrag->prestudent_id, '', 'Student');
|
||||
if (isError($result))
|
||||
{
|
||||
@@ -200,39 +205,41 @@ class AntragLib
|
||||
'status_kurzbz'=>$prestudentstatus->status_kurzbz,
|
||||
'studiensemester_kurzbz'=>$prestudentstatus->studiensemester_kurzbz,
|
||||
'ausbildungssemester'=>$prestudentstatus->ausbildungssemester
|
||||
],[]);
|
||||
], []);
|
||||
if (isError($result))
|
||||
{
|
||||
$errors[] = getError($result);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
$res = $this->_ci->PrestudentModel->load($antrag->prestudent_id);
|
||||
|
||||
$res = $this->_ci->PrestudentModel->load($antrag->prestudent_id);
|
||||
|
||||
if (hasData($res)) {
|
||||
$prestudent = current(getData($res));
|
||||
$res = $this->_ci->PersonModel->load($prestudent->person_id);
|
||||
if (hasData($res)) {
|
||||
$prestudent = current(getData($res));
|
||||
$res = $this->_ci->PersonModel->load($prestudent->person_id);
|
||||
if (hasData($res)) {
|
||||
$person = current(getData($res));
|
||||
$name = trim($person->vorname . ' ' . $person->nachname);
|
||||
} else {
|
||||
$name = $this->_ci->p->t('person', 'studentIn');
|
||||
}
|
||||
$res = $this->_ci->KontaktModel->getZustellKontakt($prestudent->person_id, ['email']);
|
||||
if (hasData($res)) {
|
||||
$kontakt = current(getData($res));
|
||||
$email = $kontakt->kontakt;
|
||||
sendSanchoMail(
|
||||
'Sancho_Mail_Antrag_A_Stgl',
|
||||
[
|
||||
'name' => $name,
|
||||
'grund' => $antrag->grund
|
||||
],
|
||||
$email,
|
||||
$this->_ci->p->t('studierendenantrag', 'mail_subject_A_Stgl')
|
||||
);
|
||||
}
|
||||
$person = current(getData($res));
|
||||
$name = trim($person->vorname . ' ' . $person->nachname);
|
||||
} else {
|
||||
$name = $this->_ci->p->t('person', 'studentIn');
|
||||
}
|
||||
$res = $this->_ci->KontaktModel->getZustellKontakt($prestudent->person_id, ['email']);
|
||||
if (hasData($res)) {
|
||||
$kontakt = current(getData($res));
|
||||
$email = $kontakt->kontakt;
|
||||
$vorlage = $antrag->typ == Studierendenantrag_model::TYP_ABMELDUNG ? 'Student' : 'Stgl';
|
||||
|
||||
// NOTE(chris): Sancho mail
|
||||
sendSanchoMail(
|
||||
'Sancho_Mail_Antrag_A_' . $vorlage,
|
||||
[
|
||||
'name' => $name,
|
||||
'grund' => $antrag->grund
|
||||
],
|
||||
$email,
|
||||
$this->_ci->p->t('studierendenantrag', 'mail_subject_A_' . $vorlage)
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -250,8 +257,9 @@ class AntragLib
|
||||
*
|
||||
* @return stdClass
|
||||
*/
|
||||
public function denyObjectionAbmeldung($studierendenantrag_id, $insertvon)
|
||||
public function denyObjectionAbmeldung($studierendenantrag_id, $insertvon, $grund = null)
|
||||
{
|
||||
// TODO(chris): grund?
|
||||
$result = $this->_ci->StudierendenantragModel->load($studierendenantrag_id);
|
||||
if (isError($result))
|
||||
{
|
||||
@@ -277,12 +285,19 @@ class AntragLib
|
||||
$result = $this->_ci->StudierendenantragstatusModel->insert([
|
||||
'studierendenantrag_id' => $studierendenantrag_id,
|
||||
'studierendenantrag_statustyp_kurzbz' => Studierendenantragstatus_model::STATUS_OBJECTION_DENIED,
|
||||
'grund' => $grund,
|
||||
'insertvon' => $insertvon
|
||||
]);
|
||||
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;
|
||||
@@ -303,11 +318,10 @@ class AntragLib
|
||||
$kontakt = current(getData($res));
|
||||
$email = $kontakt->kontakt;
|
||||
sendSanchoMail(
|
||||
// TODO(chris): Vorlage erstellen
|
||||
'Sancho_Mail_Antrag_A_ObjectionDenied',
|
||||
'Sancho_Mail_Antrag_A_ObjDenied',
|
||||
[
|
||||
'name' => $name,
|
||||
'grund' => $antrag->grund
|
||||
'grund' => $grund
|
||||
],
|
||||
$email,
|
||||
$this->_ci->p->t('studierendenantrag', 'mail_subject_A_ObjectionDenied')
|
||||
@@ -415,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);
|
||||
@@ -437,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'] . '<br>' . $data['errors']['person']]);
|
||||
$errors[] = $this->_ci->p->t('studierendenantrag', 'error_mail_and_name', [
|
||||
'message' => $data['errors']['email'] . '<br>' . $data['errors']['person']
|
||||
]);
|
||||
$mail['ass'] = $this->_ci->p->t('studierendenantrag', 'StudentIn', ['prestudent_id' => $data['antrag']->prestudent_id]);
|
||||
}
|
||||
else
|
||||
@@ -537,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 = '';
|
||||
|
||||
@@ -665,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
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -984,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)
|
||||
{
|
||||
@@ -1007,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))
|
||||
@@ -1047,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)
|
||||
{
|
||||
@@ -1069,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))
|
||||
@@ -1113,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)
|
||||
{
|
||||
@@ -1142,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))
|
||||
@@ -1331,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;
|
||||
|
||||
@@ -1407,8 +1458,8 @@ class AntragLib
|
||||
return $result;
|
||||
if (!hasData($result))
|
||||
return error($this->_ci->p->t('studierendenantrag', 'error_no_person_prestudent', ['prestudent_id' => $prestudent_id]));
|
||||
$result = current(getData($result));
|
||||
$student = trim($result->vorname . ' ' . $result->nachname);
|
||||
$person = current(getData($result));
|
||||
$student = trim($person->vorname . ' ' . $person->nachname);
|
||||
|
||||
$result = $this->_ci->PersonModel->getFullName($insertvon);
|
||||
if (isError($result))
|
||||
@@ -1434,6 +1485,27 @@ class AntragLib
|
||||
))
|
||||
return error($this->_ci->p->t('studierendenantrag', 'error_mail_to', ['email' => $email]));
|
||||
|
||||
$result = $this->_ci->KontaktModel->getZustellKontakt($person->person_id, ['email']);
|
||||
if (hasData($result)) {
|
||||
$kontakt = current(getData($result));
|
||||
$email = $kontakt->kontakt;
|
||||
|
||||
// NOTE(chris): Sancho mail
|
||||
sendSanchoMail(
|
||||
'Sancho_Mail_Antrag_W_Student',
|
||||
[
|
||||
'antrag_id' => $antrag_id,
|
||||
'stg' => $stg->bezeichnung,
|
||||
'sem' => $semester,
|
||||
'mitarbeiter' => $mitarbeiter,
|
||||
'name' => $student
|
||||
],
|
||||
$email,
|
||||
$this->_ci->p->t('studierendenantrag', 'mail_subject_W_Student')
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
return success();
|
||||
}
|
||||
|
||||
@@ -1545,7 +1617,16 @@ class AntragLib
|
||||
*/
|
||||
public function isEntitledToCancelAntrag($antrag_id)
|
||||
{
|
||||
return $this->isOwnAntrag($antrag_id);
|
||||
$result = $this->_ci->StudierendenantragModel->load($antrag_id);
|
||||
if (!hasData($result))
|
||||
return false;
|
||||
$antrag = current(getData($result));
|
||||
|
||||
if ($antrag->typ != Studierendenantrag_model::TYP_ABMELDUNG_STGL)
|
||||
return $this->isOwnAntrag($antrag_id);
|
||||
|
||||
// TODO(chris): assistenz can not cancel - should they be able to?
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user