diff --git a/application/libraries/AntragLib.php b/application/libraries/AntragLib.php index c1cab664f..628068498 100644 --- a/application/libraries/AntragLib.php +++ b/application/libraries/AntragLib.php @@ -180,8 +180,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)) { @@ -206,33 +205,35 @@ class AntragLib $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 +251,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,6 +279,7 @@ 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)) @@ -303,11 +306,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') @@ -1407,8 +1409,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 +1436,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(); } diff --git a/system/phrasesupdate.php b/system/phrasesupdate.php index 9e86b0bdc..aa16ea77b 100644 --- a/system/phrasesupdate.php +++ b/system/phrasesupdate.php @@ -20426,6 +20426,26 @@ array( ) ) ), + array( + 'app' => 'core', + 'category' => 'studierendenantrag', + 'phrase' => 'mail_subject_A_Student', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Abmeldung freigegeben', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Unsubscribe released', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), array( 'app' => 'core', 'category' => 'studierendenantrag', @@ -20546,6 +20566,26 @@ array( ) ) ), + array( + 'app' => 'core', + 'category' => 'studierendenantrag', + 'phrase' => 'mail_subject_W_Student', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Wiederholung von Studiengangsleitung freigegeben', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Repetition approved by course director', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), array( 'app' => 'core', 'category' => 'studierendenantrag',