|
|
|
@@ -123,6 +123,8 @@ class AntragLib
|
|
|
|
|
*/
|
|
|
|
|
public function approveAbmeldung($studierendenantrag_ids, $insertvon)
|
|
|
|
|
{
|
|
|
|
|
$this->_ci->load->model('crm/Student_model', 'StudentModel');
|
|
|
|
|
|
|
|
|
|
$errors = [];
|
|
|
|
|
foreach ($studierendenantrag_ids as $studierendenantrag_id) {
|
|
|
|
|
$result = $this->_ci->StudierendenantragModel->load($studierendenantrag_id);
|
|
|
|
@@ -149,6 +151,14 @@ class AntragLib
|
|
|
|
|
if (isError($result))
|
|
|
|
|
$errors[] = getError($result);
|
|
|
|
|
else {
|
|
|
|
|
$this->_ci->StudiengangModel->addJoin('public.tbl_prestudent ps','studiengang_kz');
|
|
|
|
|
$result = $this->_ci->StudiengangModel->loadWhere(['prestudent_id' => $antrag->prestudent_id]);
|
|
|
|
|
$stg = '';
|
|
|
|
|
$orgform = '';
|
|
|
|
|
if (hasData($result)) {
|
|
|
|
|
$studiengang = current(getData($result));
|
|
|
|
|
$stg = $studiengang->bezeichnung;
|
|
|
|
|
}
|
|
|
|
|
if ($antrag->typ == Studierendenantrag_model::TYP_ABMELDUNG)
|
|
|
|
|
{
|
|
|
|
|
$resultPrestudentStatus = $this->_ci->PrestudentstatusModel->getLastStatusWithStgEmail($antrag->prestudent_id);
|
|
|
|
@@ -157,6 +167,7 @@ class AntragLib
|
|
|
|
|
|
|
|
|
|
else {
|
|
|
|
|
$prestudent_status = getData($resultPrestudentStatus)[0];
|
|
|
|
|
$orgform = $prestudent_status->orgform_kurzbz;
|
|
|
|
|
|
|
|
|
|
$vorlage ='Sancho_Mail_Antrag_A_Approve';
|
|
|
|
|
$subject = $this->_ci->p->t('studierendenantrag', 'mail_subject_A_Approve');
|
|
|
|
@@ -177,17 +188,30 @@ class AntragLib
|
|
|
|
|
|
|
|
|
|
$result = $this->_ci->PersonModel->loadPrestudent($antrag->prestudent_id);
|
|
|
|
|
$data = [
|
|
|
|
|
'nameStudent' => $this->_ci->p->t('person', 'studentIn')
|
|
|
|
|
'student' => $this->_ci->p->t('person', 'studentIn'),
|
|
|
|
|
'sem' => $antrag->studiensemester_kurzbz,
|
|
|
|
|
'linkPdf' => base_url('content/pdfExport.php?xml=Antrag' . $antrag->typ . '.xml.php&xsl=Antrag' . $antrag->typ . '&id=' . $antrag->studierendenantrag_id . '&output=pdf')
|
|
|
|
|
];
|
|
|
|
|
if (hasData($result)) {
|
|
|
|
|
$person = current(getData($result));
|
|
|
|
|
$data['nameStudent'] = trim($person->vorname . ' ' . $person->nachname);
|
|
|
|
|
$data['student'] = trim($person->vorname . ' ' . $person->nachname);
|
|
|
|
|
$data['vorname'] = $person->vorname;
|
|
|
|
|
$data['nachname'] = $person->nachname;
|
|
|
|
|
}
|
|
|
|
|
$result = $this->_ci->StudentModel->loadWhere(['prestudent_id'=> $antrag->prestudent_id]);
|
|
|
|
|
if (hasData($result)) {
|
|
|
|
|
$student = current(getData($result));
|
|
|
|
|
$data['UID'] = $student->student_uid;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$data['Orgform'] = $prestudent_status->orgform;
|
|
|
|
|
$data['stg'] = $stg;
|
|
|
|
|
|
|
|
|
|
// NOTE(chris): Sancho mail
|
|
|
|
|
sendSanchoMail($vorlage, $data, $prestudent_status->email, $subject);
|
|
|
|
|
}
|
|
|
|
|
} else { // ($antrag->typ == Studierendenantrag_model::TYP_ABMELDUNG_STGL)
|
|
|
|
|
$result = $this->_ci->PrestudentstatusModel->getLastStatus($antrag->prestudent_id, '', 'Student');
|
|
|
|
|
$result = $this->_ci->PrestudentstatusModel->getLastStatusWithStgEmail($antrag->prestudent_id, '', 'Student');
|
|
|
|
|
if (isError($result))
|
|
|
|
|
{
|
|
|
|
|
$errors[] = getError($result);
|
|
|
|
@@ -199,6 +223,7 @@ class AntragLib
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
$prestudentstatus = getData($result)[0];
|
|
|
|
|
$orgform = $prestudentstatus->orgform_kurzbz;
|
|
|
|
|
|
|
|
|
|
$result = $this->_ci->PrestudentstatusModel->withGrund('preabbrecher')->update([
|
|
|
|
|
'prestudent_id' => $prestudentstatus->prestudent_id,
|
|
|
|
@@ -221,13 +246,16 @@ class AntragLib
|
|
|
|
|
if (hasData($res)) {
|
|
|
|
|
$person = current(getData($res));
|
|
|
|
|
$name = trim($person->vorname . ' ' . $person->nachname);
|
|
|
|
|
$vorname = $person->vorname;
|
|
|
|
|
$nachname = $person->nachname;
|
|
|
|
|
} else {
|
|
|
|
|
$name = $this->_ci->p->t('person', 'studentIn');
|
|
|
|
|
$vorname = '';
|
|
|
|
|
$nachname = $name;
|
|
|
|
|
}
|
|
|
|
|
$res = $this->_ci->KontaktModel->getZustellKontakt($prestudent->person_id, ['email']);
|
|
|
|
|
$res = $this->_ci->StudentModel->loadWhere(['prestudent_id' => $antrag->prestudent_id]);
|
|
|
|
|
if (hasData($res)) {
|
|
|
|
|
$kontakt = current(getData($res));
|
|
|
|
|
$email = $kontakt->kontakt;
|
|
|
|
|
$email = $this->_ci->StudentModel->getEmailFH(current(getData($res))->student_uid);
|
|
|
|
|
$vorlage = $antrag->typ == Studierendenantrag_model::TYP_ABMELDUNG ? 'Student' : 'Stgl';
|
|
|
|
|
|
|
|
|
|
// NOTE(chris): Sancho mail
|
|
|
|
@@ -235,7 +263,11 @@ class AntragLib
|
|
|
|
|
'Sancho_Mail_Antrag_A_' . $vorlage,
|
|
|
|
|
[
|
|
|
|
|
'name' => $name,
|
|
|
|
|
'grund' => $antrag->grund
|
|
|
|
|
'grund' => $antrag->grund,
|
|
|
|
|
'vorname' => $vorname,
|
|
|
|
|
'nachname' => $nachname,
|
|
|
|
|
'Orgform' => $orgform,
|
|
|
|
|
'stg' => $stg
|
|
|
|
|
],
|
|
|
|
|
$email,
|
|
|
|
|
$this->_ci->p->t('studierendenantrag', 'mail_subject_A_' . $vorlage)
|
|
|
|
@@ -281,9 +313,6 @@ class AntragLib
|
|
|
|
|
|
|
|
|
|
$status = current(getData($result));
|
|
|
|
|
|
|
|
|
|
if ($grund)
|
|
|
|
|
$grund = $this->_ci->p->t('studierendenantrag', 'mail_part_grund', ['grund' => $grund]);
|
|
|
|
|
|
|
|
|
|
$result = $this->_ci->StudierendenantragstatusModel->insert([
|
|
|
|
|
'studierendenantrag_id' => $studierendenantrag_id,
|
|
|
|
|
'studierendenantrag_statustyp_kurzbz' => Studierendenantragstatus_model::STATUS_OBJECTION_DENIED,
|
|
|
|
@@ -307,23 +336,41 @@ class AntragLib
|
|
|
|
|
$res = $this->_ci->PrestudentModel->load($antrag->prestudent_id);
|
|
|
|
|
|
|
|
|
|
if (hasData($res)) {
|
|
|
|
|
$this->_ci->load->model('crm/Student_model', 'StudentModel');
|
|
|
|
|
|
|
|
|
|
$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);
|
|
|
|
|
$vorname = $person->vorname;
|
|
|
|
|
$nachname = $person->nachname;
|
|
|
|
|
} else {
|
|
|
|
|
$name = $this->_ci->p->t('person', 'studentIn');
|
|
|
|
|
}
|
|
|
|
|
$res = $this->_ci->KontaktModel->getZustellKontakt($prestudent->person_id, ['email']);
|
|
|
|
|
|
|
|
|
|
$res = $this->_ci->StudentModel->loadWhere(['prestudent_id' => $antrag->prestudent_id]);
|
|
|
|
|
if (hasData($res)) {
|
|
|
|
|
$kontakt = current(getData($res));
|
|
|
|
|
$email = $kontakt->kontakt;
|
|
|
|
|
$email = $this->_ci->StudentModel->getEmailFH(current(getData($res))->student_uid);
|
|
|
|
|
|
|
|
|
|
$res = $this->_ci->StudierendenantragModel->getStgAndSem($antrag->studierendenantrag_id);
|
|
|
|
|
$stg = '';
|
|
|
|
|
$orgform = '';
|
|
|
|
|
if (hasData($res)) {
|
|
|
|
|
$studiengang = current(getData($res));
|
|
|
|
|
$stg = $studiengang->bezeichnung;
|
|
|
|
|
$orgform = $studiengang->orgform_kurzbz;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
sendSanchoMail(
|
|
|
|
|
'Sancho_Mail_Antrag_A_ObjDenied',
|
|
|
|
|
[
|
|
|
|
|
'name' => $name,
|
|
|
|
|
'grund' => $grund
|
|
|
|
|
'vorname' => $vorname,
|
|
|
|
|
'nachname' => $nachname,
|
|
|
|
|
'grund' => $grund,
|
|
|
|
|
'Orgform' => $orgform,
|
|
|
|
|
'stg' => $stg
|
|
|
|
|
],
|
|
|
|
|
$email,
|
|
|
|
|
$this->_ci->p->t('studierendenantrag', 'mail_subject_A_ObjectionDenied')
|
|
|
|
@@ -388,6 +435,7 @@ class AntragLib
|
|
|
|
|
public function approveUnterbrechung($studierendenantrag_ids, $insertvon)
|
|
|
|
|
{
|
|
|
|
|
$this->_ci->load->model('person/Kontakt_model', 'KontaktModel');
|
|
|
|
|
$this->_ci->load->model('crm/Student_model', 'StudentModel');
|
|
|
|
|
|
|
|
|
|
$errors = [];
|
|
|
|
|
|
|
|
|
@@ -405,6 +453,7 @@ class AntragLib
|
|
|
|
|
'<br>Details:<br>' .
|
|
|
|
|
$error_msg;
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
|
|
$data = getData($data);
|
|
|
|
|
|
|
|
|
|
$result = $this->_ci->StudierendenantragstatusModel->insert([
|
|
|
|
@@ -432,17 +481,18 @@ class AntragLib
|
|
|
|
|
|
|
|
|
|
// Prestudentstatus und Unterbrechungsfolgeaktionen setzen
|
|
|
|
|
$result = $this->_ci->prestudentlib->setUnterbrecher(
|
|
|
|
|
$resultAntrag->prestudent_id,
|
|
|
|
|
$resultAntrag->studiensemester_kurzbz,
|
|
|
|
|
$studierendenantrag_id
|
|
|
|
|
);
|
|
|
|
|
$resultAntrag->prestudent_id,
|
|
|
|
|
$resultAntrag->studiensemester_kurzbz,
|
|
|
|
|
$studierendenantrag_id
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
if (isError($result)) {
|
|
|
|
|
$this->_ci->StudierendenantragstatusModel->delete($studierendenantrag_status_id);
|
|
|
|
|
return $result;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//Mail
|
|
|
|
|
|
|
|
|
|
//Mail
|
|
|
|
|
$subject = $this->_ci->p->t('studierendenantrag', 'mail_subject_U_Approve');
|
|
|
|
|
$mail = [];
|
|
|
|
|
|
|
|
|
@@ -456,15 +506,15 @@ class AntragLib
|
|
|
|
|
{
|
|
|
|
|
if (isset($data['errors']['person']))
|
|
|
|
|
{
|
|
|
|
|
//send assistenz mit id
|
|
|
|
|
//send assistenz mit id
|
|
|
|
|
$errors[] = $this->_ci->p->t('studierendenantrag', 'error_mail_and_name', [
|
|
|
|
|
'message' => $data['errors']['email'] . '<br>' . $data['errors']['person']
|
|
|
|
|
]);
|
|
|
|
|
'message' => $data['errors']['email'] . '<br>' . $data['errors']['person']
|
|
|
|
|
]);
|
|
|
|
|
$mail['ass'] = $this->_ci->p->t('studierendenantrag', 'StudentIn', ['prestudent_id' => $data['antrag']->prestudent_id]);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
//send assistenz mit name
|
|
|
|
|
//send assistenz mit name
|
|
|
|
|
$errors[] = $this->_ci->p->t('studierendenantrag', 'error_mail', ['message' => $data['errors']['email']]);
|
|
|
|
|
$mail['ass'] = trim($data['person']->vorname . ' ' . $data['person']->nachname);
|
|
|
|
|
}
|
|
|
|
@@ -473,26 +523,49 @@ class AntragLib
|
|
|
|
|
{
|
|
|
|
|
if (isset($data['errors']['person']))
|
|
|
|
|
{
|
|
|
|
|
//send assistenz mit id & student mit "Student/in"
|
|
|
|
|
//send assistenz mit id & student mit "Student/in"
|
|
|
|
|
$errors[] = $this->_ci->p->t('studierendenantrag', 'error_name', ['message' => $data['errors']['person']]);
|
|
|
|
|
$mail['ass'] = $this->_ci->p->t('studierendenantrag', 'StudentIn', ['prestudent_id' => $data['antrag']->prestudent_id]);
|
|
|
|
|
$mail['stu'] = $this->_ci->p->t('person', 'StudentIn');
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
//send normal
|
|
|
|
|
//send normal
|
|
|
|
|
$mail['ass'] = $mail['stu'] = trim($data['person']->vorname . ' ' . $data['person']->nachname);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
$mailVorlage = 'Sancho_Mail_Antrag_U_Approve';
|
|
|
|
|
if ($data['studienbeitrag'])
|
|
|
|
|
$mailVorlage .= '_SB';
|
|
|
|
|
|
|
|
|
|
if (isset($mail['ass'])) {
|
|
|
|
|
// NOTE(chris): Sancho mail
|
|
|
|
|
$mailVorlage = 'Sancho_Mail_Antrag_U_Approve';
|
|
|
|
|
|
|
|
|
|
$result = $this->_ci->StudentModel->loadWhere(['prestudent_id'=> $data['antrag']->prestudent_id]);
|
|
|
|
|
if (hasData($result)) {
|
|
|
|
|
$student = current(getData($result));
|
|
|
|
|
$data['UID'] = $student->student_uid;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$result = $this->_ci->PersonModel->getFullName($insertvon);
|
|
|
|
|
if (isError($result))
|
|
|
|
|
return $result;
|
|
|
|
|
$approvedBy = $insertvon;
|
|
|
|
|
if (hasData($result))
|
|
|
|
|
{
|
|
|
|
|
$approvedBy = getData($result);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (!sendSanchoMail(
|
|
|
|
|
$mailVorlage,
|
|
|
|
|
[
|
|
|
|
|
'name' => $mail['ass']
|
|
|
|
|
'name' => $mail['ass'],
|
|
|
|
|
'stg' => $data['studiengang']->bezeichnung,
|
|
|
|
|
'Orgform' => $data['prestudent_status']->orgform_kurzbz,
|
|
|
|
|
'vorname' => $data['person']->vorname,
|
|
|
|
|
'nachname' => $data['person']->nachname,
|
|
|
|
|
'UID' => $data['UID'],
|
|
|
|
|
'sem' => $resultAntrag->studiensemester_kurzbz,
|
|
|
|
|
'linkPdf' => base_url('content/pdfExport.php?xml=AntragUnterbrechung.xml.php&xsl=AntragUnterbrechung&id=' . $studierendenantrag_id . '&output=pdf'),
|
|
|
|
|
'insertvon' => $approvedBy
|
|
|
|
|
],
|
|
|
|
|
$data['prestudent_status']->email,
|
|
|
|
|
$subject
|
|
|
|
@@ -502,10 +575,17 @@ class AntragLib
|
|
|
|
|
}
|
|
|
|
|
if (isset($mail['stu'])) {
|
|
|
|
|
// NOTE(chris): Sancho mail
|
|
|
|
|
$mailVorlage = 'Sancho_Mail_Antrag_U_Student';
|
|
|
|
|
if ($data['studienbeitrag'])
|
|
|
|
|
$mailVorlage .= '_SB';
|
|
|
|
|
if (!sendSanchoMail(
|
|
|
|
|
$mailVorlage,
|
|
|
|
|
[
|
|
|
|
|
'name' => $mail['stu']
|
|
|
|
|
'name' => $mail['stu'],
|
|
|
|
|
'stg' => $data['studiengang']->bezeichnung,
|
|
|
|
|
'Orgform' => $data['prestudent_status']->orgform_kurzbz,
|
|
|
|
|
'vorname' => $data['person']->vorname,
|
|
|
|
|
'nachname' => $data['person']->nachname
|
|
|
|
|
],
|
|
|
|
|
$data['email'],
|
|
|
|
|
$subject
|
|
|
|
@@ -533,6 +613,7 @@ class AntragLib
|
|
|
|
|
public function rejectUnterbrechung($studierendenantrag_ids, $insertvon, $grund)
|
|
|
|
|
{
|
|
|
|
|
$this->_ci->load->model('person/Kontakt_model', 'KontaktModel');
|
|
|
|
|
$this->_ci->load->model('crm/Student_model', 'StudentModel');
|
|
|
|
|
|
|
|
|
|
$errors = [];
|
|
|
|
|
|
|
|
|
@@ -577,10 +658,14 @@ class AntragLib
|
|
|
|
|
if (isset($data['errors']['person'])) {
|
|
|
|
|
//send student mit "Student/in"
|
|
|
|
|
$errors[] = $this->_ci->p->t('studierendenantrag', 'error_name', ['message' => $data['errors']['person']]);
|
|
|
|
|
$name = 'Student/in';
|
|
|
|
|
$name = $this->_ci->p->t('person', 'studentIn');
|
|
|
|
|
$vorname = "";
|
|
|
|
|
$nachname = $name;
|
|
|
|
|
} else {
|
|
|
|
|
//send normal
|
|
|
|
|
$name = trim($data['person']->vorname . ' ' . $data['person']->nachname);
|
|
|
|
|
$vorname = $data['person']->vorname;
|
|
|
|
|
$nachname = $data['person']->nachname;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if ($name)
|
|
|
|
@@ -589,7 +674,11 @@ class AntragLib
|
|
|
|
|
'Sancho_Mail_Antrag_U_Reject',
|
|
|
|
|
[
|
|
|
|
|
'name' => $name,
|
|
|
|
|
'vorname' => $vorname,
|
|
|
|
|
'nachname' => $nachname,
|
|
|
|
|
'grund' => $grund,
|
|
|
|
|
'stg' => $data['studiengang']->bezeichnung,
|
|
|
|
|
'Orgform' => $data['prestudent_status']->orgform_kurzbz,
|
|
|
|
|
'prestudent_id' => $data['prestudent_status']->prestudent_id,
|
|
|
|
|
'abmeldungLink' => site_url('lehre/Studierendenantrag/abmeldung/' . $data['prestudent_status']->prestudent_id),
|
|
|
|
|
'abmeldungLinkCIS' => CIS_ROOT . 'index.ci.php/lehre/Studierendenantrag/abmeldung/' . $data['prestudent_status']->prestudent_id
|
|
|
|
@@ -627,7 +716,15 @@ class AntragLib
|
|
|
|
|
return error($this->_ci->p->t('studierendenantrag', 'error_no_antrag_found', ['id' => $studierendenantrag_id]));
|
|
|
|
|
|
|
|
|
|
$result['antrag'] = $antrag = current($res);
|
|
|
|
|
|
|
|
|
|
$this->_ci->StudiengangModel->addJoin('public.tbl_prestudent ps','studiengang_kz');
|
|
|
|
|
$res = $this->_ci->StudiengangModel->loadWhere(['prestudent_id' => $antrag->prestudent_id]);
|
|
|
|
|
if (hasData($res)) {
|
|
|
|
|
$result['studiengang'] = current(getData($res));
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
$result['studiengang'] = new stdClass();
|
|
|
|
|
$result['studiengang']->bezeichnung = "";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$res = $this->_ci->PrestudentstatusModel->getLastStatusWithStgEmail($antrag->prestudent_id);
|
|
|
|
|
if (isError($res))
|
|
|
|
@@ -663,7 +760,7 @@ class AntragLib
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$res = $this->_ci->KontaktModel->getZustellKontakt($person_id, ['email']);
|
|
|
|
|
$res = $this->_ci->StudentModel->loadWhere(['prestudent_id' => $antrag->prestudent_id]);
|
|
|
|
|
if (isError($res)) {
|
|
|
|
|
$errors['email'] = getError($res);
|
|
|
|
|
} else {
|
|
|
|
@@ -672,7 +769,7 @@ class AntragLib
|
|
|
|
|
if (!$res) {
|
|
|
|
|
$errors['email'] = $this->_ci->p->t('studierendenantrag', 'error_no_email', ['person_id' => $person_id]);
|
|
|
|
|
} else {
|
|
|
|
|
$result['email'] = current($res)->kontakt;
|
|
|
|
|
$result['email'] = $this->_ci->StudentModel->getEmailFH(current($res)->student_uid);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@@ -762,12 +859,18 @@ class AntragLib
|
|
|
|
|
$prestudent_status = current($res);
|
|
|
|
|
$email = $prestudent_status->email;
|
|
|
|
|
// NOTE(chris): Sancho mail
|
|
|
|
|
$lvzuweisungLink = site_url('lehre/Antrag/Wiederholung/assistenz/' . $antrag_id);
|
|
|
|
|
if( defined('VILESCI_ROOT') )
|
|
|
|
|
{
|
|
|
|
|
$lvzuweisungLink = VILESCI_ROOT . 'index.ci.php/lehre/Antrag/Wiederholung/assistenz/' . $antrag_id;
|
|
|
|
|
}
|
|
|
|
|
sendSanchoMail(
|
|
|
|
|
'Sancho_Mail_Antrag_W_New',
|
|
|
|
|
[
|
|
|
|
|
'antrag_id' => $antrag_id,
|
|
|
|
|
'lvzuweisungLink' => site_url('lehre/Antrag/Wiederholung/assistenz/' . $antrag_id),
|
|
|
|
|
'lvzuweisungLinkCIS' => CIS_ROOT . 'index.ci.php/lehre/Antrag/Wiederholung/assistenz/' . $antrag_id
|
|
|
|
|
'stg' => $prestudent_status->stg_bezeichnung,
|
|
|
|
|
'Orgform' => $prestudent_status->orgform,
|
|
|
|
|
'lvzuweisungLink' => $lvzuweisungLink
|
|
|
|
|
],
|
|
|
|
|
$email,
|
|
|
|
|
$this->_ci->p->t('studierendenantrag', 'mail_subject_W_New')
|
|
|
|
@@ -1255,13 +1358,14 @@ class AntragLib
|
|
|
|
|
$where = [
|
|
|
|
|
'prestudent_id' => $prestudent_id
|
|
|
|
|
];
|
|
|
|
|
$types = null;
|
|
|
|
|
if ($typ) {
|
|
|
|
|
if (is_array($typ))
|
|
|
|
|
$this->_ci->StudierendenantragModel->db->where_in('typ', $typ);
|
|
|
|
|
$types = $typ;
|
|
|
|
|
else
|
|
|
|
|
$where['typ'] = $typ;
|
|
|
|
|
}
|
|
|
|
|
$result = $this->_ci->StudierendenantragModel->loadWithStatusWhere($where);
|
|
|
|
|
$result = $this->_ci->StudierendenantragModel->loadWithStatusWhere($where, $types);
|
|
|
|
|
if (isError($result))
|
|
|
|
|
return $result;
|
|
|
|
|
|
|
|
|
@@ -1325,42 +1429,52 @@ class AntragLib
|
|
|
|
|
return success($resultDetails);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function getSemesterForUnterbrechung($studiengang_kz, $studiensemester_kurzbz, $ausbildungssemester)
|
|
|
|
|
public function getSemesterForUnterbrechung($studiensemester_kurzbz)
|
|
|
|
|
{
|
|
|
|
|
$this->_ci->load->model('organisation/Studienplan_model', 'StudienplanModel');
|
|
|
|
|
$this->_ci->load->model('organisation/Studiensemester_model', 'StudiensemesterModel');
|
|
|
|
|
|
|
|
|
|
$semester = [];
|
|
|
|
|
|
|
|
|
|
$result = $this->_ci->StudienplanModel->getStudienplaeneBySemester($studiengang_kz, $studiensemester_kurzbz, $ausbildungssemester);
|
|
|
|
|
if (!hasData($result))
|
|
|
|
|
return $semester;
|
|
|
|
|
|
|
|
|
|
$result = $this->_ci->StudiensemesterModel->getNextFrom($studiensemester_kurzbz);
|
|
|
|
|
if (!hasData($result))
|
|
|
|
|
return $semester;
|
|
|
|
|
$nextSem = current(getData($result));
|
|
|
|
|
|
|
|
|
|
$semester[] = [
|
|
|
|
|
$semester[0] = [
|
|
|
|
|
'studiensemester_kurzbz' => $studiensemester_kurzbz,
|
|
|
|
|
'wiedereinstieg' => $nextSem->start
|
|
|
|
|
'wiedereinstieg' => [$nextSem]
|
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
$result = $this->_ci->StudienplanModel->getStudienplaeneBySemester($studiengang_kz, $nextSem->studiensemester_kurzbz, $ausbildungssemester+1);
|
|
|
|
|
if (!hasData($result))
|
|
|
|
|
return $semester;
|
|
|
|
|
|
|
|
|
|
$result = $this->_ci->StudiensemesterModel->getNextFrom($nextSem->studiensemester_kurzbz);
|
|
|
|
|
if (!hasData($result))
|
|
|
|
|
return $semester;
|
|
|
|
|
|
|
|
|
|
$semAfterNext = current(getData($result));
|
|
|
|
|
$currSemester = current(getData($result));
|
|
|
|
|
$followingSemester = [$currSemester];
|
|
|
|
|
|
|
|
|
|
$semester[] = [
|
|
|
|
|
$max = $this->_ci->config->item('unterbrecher_semester_max_length');
|
|
|
|
|
if(!$max || $max < 1)
|
|
|
|
|
$max = 2;
|
|
|
|
|
|
|
|
|
|
for ($i = 1; $i < $max; $i++) {
|
|
|
|
|
$result = $this->_ci->StudiensemesterModel->getNextFrom($currSemester->studiensemester_kurzbz);
|
|
|
|
|
if (!hasData($result))
|
|
|
|
|
break;
|
|
|
|
|
$currSemester = current(getData($result));
|
|
|
|
|
$followingSemester[] = $currSemester;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$semester[1] = [
|
|
|
|
|
'studiensemester_kurzbz' => $nextSem->studiensemester_kurzbz,
|
|
|
|
|
'wiedereinstieg' => $semAfterNext->start
|
|
|
|
|
'wiedereinstieg' => $followingSemester
|
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
//remove last Semester of the array
|
|
|
|
|
array_pop($followingSemester);
|
|
|
|
|
|
|
|
|
|
foreach ($followingSemester as $sem)
|
|
|
|
|
$semester[0]['wiedereinstieg'][] = $sem;
|
|
|
|
|
|
|
|
|
|
return $semester;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@@ -1408,6 +1522,8 @@ class AntragLib
|
|
|
|
|
|
|
|
|
|
public function approveWiederholung($antrag_id, $insertvon)
|
|
|
|
|
{
|
|
|
|
|
$this->_ci->load->model('crm/Student_model', 'StudentModel');
|
|
|
|
|
|
|
|
|
|
$result = $this->_ci->StudierendenantragstatusModel->insert([
|
|
|
|
|
'studierendenantrag_id' => $antrag_id,
|
|
|
|
|
'studierendenantrag_statustyp_kurzbz' => Studierendenantragstatus_model::STATUS_APPROVED,
|
|
|
|
@@ -1434,18 +1550,9 @@ class AntragLib
|
|
|
|
|
if (!$result)
|
|
|
|
|
return error($this->_ci->p->t('studierendenantrag', 'error_no_stg_antrag', ['id' => $antrag_id]));
|
|
|
|
|
|
|
|
|
|
$result = current($result);
|
|
|
|
|
$studiengang_kz = $result->studiengang_kz;
|
|
|
|
|
$semester = $result->ausbildungssemester;
|
|
|
|
|
|
|
|
|
|
$result = $this->_ci->StudiengangModel->load($studiengang_kz);
|
|
|
|
|
if (isError($result))
|
|
|
|
|
return $result;
|
|
|
|
|
$result = getData($result);
|
|
|
|
|
if (!$result)
|
|
|
|
|
return error($this->_ci->p->t('studierendenantrag', 'error_no_stg_antrag', ['id' => $antrag_id]));
|
|
|
|
|
|
|
|
|
|
$stg = current($result);
|
|
|
|
|
$studiengang_kz = $stg->studiengang_kz;
|
|
|
|
|
$semester = $stg->ausbildungssemester;
|
|
|
|
|
|
|
|
|
|
$result = $this->_ci->StudierendenantragModel->load($antrag_id);
|
|
|
|
|
if (isError($result))
|
|
|
|
@@ -1471,6 +1578,13 @@ class AntragLib
|
|
|
|
|
$mitarbeiter = getData($result);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$result = $this->_ci->StudentModel->loadWhere(['prestudent_id'=> $prestudent_id]);
|
|
|
|
|
if (hasData($result)) {
|
|
|
|
|
$studentObj = current(getData($result));
|
|
|
|
|
$student_uid = $studentObj->student_uid;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
$student_uid = '';
|
|
|
|
|
|
|
|
|
|
// NOTE(chris): Sancho mail
|
|
|
|
|
if (!sendSanchoMail(
|
|
|
|
@@ -1480,17 +1594,43 @@ class AntragLib
|
|
|
|
|
'stg' => $stg->bezeichnung,
|
|
|
|
|
'sem' => $semester,
|
|
|
|
|
'student' => $student,
|
|
|
|
|
'mitarbeiter' => $mitarbeiter
|
|
|
|
|
'mitarbeiter' => $mitarbeiter,
|
|
|
|
|
'Orgform' => $stg->orgform_kurzbz,
|
|
|
|
|
'UID' => $student_uid
|
|
|
|
|
],
|
|
|
|
|
$email,
|
|
|
|
|
$this->_ci->p->t('studierendenantrag', 'mail_subject_W_Approve')
|
|
|
|
|
))
|
|
|
|
|
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;
|
|
|
|
|
if ($student_uid) {
|
|
|
|
|
$email = $this->_ci->StudentModel->getEmailFH($student_uid);
|
|
|
|
|
|
|
|
|
|
$sem_not_allowed = $sem_to_repeat = '';
|
|
|
|
|
$list_not_allowed = $list_to_repeat = $this->_ci->p->t('studierendenantrag', 'mail_part_error_no_lvs');
|
|
|
|
|
|
|
|
|
|
$result = $this->getLvsForAntrag($antrag_id);
|
|
|
|
|
if (hasData($result)) {
|
|
|
|
|
$lvs = getData($result);
|
|
|
|
|
foreach ($lvs as $sem => $lv_list) {
|
|
|
|
|
$lvs_filtered = array_filter($lv_list, function ($el) {
|
|
|
|
|
return property_exists($el, 'antrag_zugelassen') && $el->antrag_zugelassen;
|
|
|
|
|
});
|
|
|
|
|
if (substr($sem, 0, 1) == '1') {
|
|
|
|
|
$sem_not_allowed = substr($sem, 1);
|
|
|
|
|
$list_not_allowed = array_map(function ($el) {
|
|
|
|
|
return $el->bezeichnung . '(' . $el->lehrform_kurzbz . ')';
|
|
|
|
|
}, $lvs_filtered);
|
|
|
|
|
$list_not_allowed = '<ul><li>' . implode('</li><li>', $list_not_allowed) . '</li></ul>';
|
|
|
|
|
} else {
|
|
|
|
|
$sem_to_repeat = substr($sem, 1);
|
|
|
|
|
$list_to_repeat = array_map(function ($el) {
|
|
|
|
|
return $el->bezeichnung . '(' . $el->lehrform_kurzbz . ')';
|
|
|
|
|
}, $lvs_filtered);
|
|
|
|
|
$list_to_repeat = '<ul><li>' . implode('</li><li>', $list_to_repeat) . '</li></ul>';
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// NOTE(chris): Sancho mail
|
|
|
|
|
sendSanchoMail(
|
|
|
|
@@ -1500,7 +1640,12 @@ class AntragLib
|
|
|
|
|
'stg' => $stg->bezeichnung,
|
|
|
|
|
'sem' => $semester,
|
|
|
|
|
'mitarbeiter' => $mitarbeiter,
|
|
|
|
|
'name' => $student
|
|
|
|
|
'student' => $student,
|
|
|
|
|
'sem_not_allowed' => $sem_not_allowed,
|
|
|
|
|
'list_not_allowed' => $list_not_allowed,
|
|
|
|
|
'sem_to_repeat' => $sem_to_repeat,
|
|
|
|
|
'list_to_repeat' => $list_to_repeat,
|
|
|
|
|
'Orgform' => $stg->orgform_kurzbz
|
|
|
|
|
],
|
|
|
|
|
$email,
|
|
|
|
|
$this->_ci->p->t('studierendenantrag', 'mail_subject_W_Student')
|
|
|
|
|