Abmeldung: Einspruch Abgelehnt handling

This commit is contained in:
cgfhtw
2023-07-13 11:48:25 +02:00
parent 6f1eed6696
commit f8da119ad7
6 changed files with 121 additions and 5 deletions
@@ -145,7 +145,7 @@ class Leitung extends FHC_Controller
$studierendenantrag_id = $this->input->post('studierendenantrag_id');
$result = $this->antraglib->approveAbmeldung([$studierendenantrag_id], getAuthUID());
$result = $this->antraglib->denyObjectionAbmeldung($studierendenantrag_id, getAuthUID());
if (isError($result))
return $this->outputJsonError(['studierendenantrag_id' => getError($result)]);
@@ -200,7 +200,6 @@ class AntragJob extends JOB_Controller
foreach ($antraege as $antrag)
{
$result = $this->prestudentlib->setAbbrecher($antrag->prestudent_id, $antrag->studiensemester_kurzbz, $insertvon, 'abbrecherStgl', $antrag->insertamum);
if (isError($result))
$this->logError(getError($result));
+76 -1
View File
@@ -145,7 +145,7 @@ class AntragLib
'studierendenantrag_id' => $studierendenantrag_id,
'studierendenantrag_statustyp_kurzbz' => Studierendenantragstatus_model::STATUS_APPROVED,
'insertvon' => $insertvon,
'insertam' => $insertam
'insertamum' => $insertam
]);
if (isError($result))
$errors[] = getError($result);
@@ -244,6 +244,81 @@ class AntragLib
return success();
}
/**
* @param integer $studierendenantrag_id
* @param string $insertvon
*
* @return stdClass
*/
public function denyObjectionAbmeldung($studierendenantrag_id, $insertvon)
{
$result = $this->_ci->StudierendenantragModel->load($studierendenantrag_id);
if (isError($result))
{
return $result;
}
if(!hasData($result))
{
return error($this->_ci->p->t('studierendenantrag', 'error_no_antrag_found', ['id' => $studierendenantrag_id]));
}
$antrag = getData($result)[0];
$result = $this->_ci->StudierendenantragstatusModel->loadWhere([
'studierendenantrag_id' => $studierendenantrag_id,
'studierendenantrag_statustyp_kurzbz' => Studierendenantragstatus_model::STATUS_APPROVED
]);
if (isError($result))
return $result;
if (!hasData($result))
return error($this->_ci->p->t('studierendenantrag', 'error_not_approved'));
$status = current(getData($result));
$result = $this->_ci->StudierendenantragstatusModel->insert([
'studierendenantrag_id' => $studierendenantrag_id,
'studierendenantrag_statustyp_kurzbz' => Studierendenantragstatus_model::STATUS_OBJECTION_DENIED,
'insertvon' => $insertvon
]);
if (isError($result))
return $result;
else {
$result = $this->_ci->prestudentlib->setAbbrecher($antrag->prestudent_id, $antrag->studiensemester_kurzbz, $insertvon, 'abbrecherStgl', $status->insertamum);
if (isError($result))
return $result;
$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)) {
$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(
// TODO(chris): Vorlage erstellen
'Sancho_Mail_Antrag_A_ObjectionDenied',
[
'name' => $name,
'grund' => $antrag->grund
],
$email,
$this->_ci->p->t('studierendenantrag', 'mail_subject_A_ObjectionDenied')
);
}
}
}
return success();
}
/**
* NOTE(chris): permissions & verification must be handled outside
*
@@ -13,6 +13,7 @@ class Studierendenantragstatus_model extends DB_Model
const STATUS_REQUESTSENT_1 = 'ErsteAufforderungVersandt';
const STATUS_REQUESTSENT_2 = 'ZweiteAufforderungVersandt';
const STATUS_OBJECTED = 'Beeinsprucht';
const STATUS_OBJECTION_DENIED = 'EinspruchAbgelehnt';
/**
* Constructor
@@ -28,15 +28,16 @@ if($result = @$db->db_query("SELECT 1 FROM campus.tbl_studierendenantrag_statust
VALUES
('Erstellt', '{\"Erstellt\",\"Created\"}'),
('Genehmigt', '{\"Genehmigt\",\"Approved\"}'),
('Beeinsprucht', '{\"Beeinsprucht\",\"Objected\"}'),
('Abgelehnt', '{\"Abgelehnt\",\"Rejected\"}'),
('Verzichtet', '{\"Verzichtet\",\"Pass\"}'),
('Offen', '{\"Offen\",\"Reopened\"}'),
('Zurückgezogen', '{\"Zurückgezogen\",\"Cancelled\"}'),
('Lvszugewiesen', '{\"Lvszugewiesen\",\"Lvsassigned\"}'),
('EmailVersandt', '{\"Email Versandt\",\"Reminder Sent\"}'),
('ErsteAufforderungVersandt', '{\"1.Aufforderung Versandt\",\"1st Request Sent\"}'),
('ZweiteAufforderungVersandt', '{\"2.Aufforderung Versandt\",\"2nd Request Sent\"}'),
('Lvszugewiesen', '{\"Lvszugewiesen\",\"Lvsassigned\"}');
('Beeinsprucht', '{\"Beeinsprucht\",\"Objected\"}'),
('EinspruchAbgelehnt', '{\"Einspruch abgelehnt\",\"Objection denied\"}');
";
if (!$db->db_query($qry))
echo '<strong>campus.tbl_studierendenantrag_statustyp (insert): '.$db->db_last_error().'</strong><br>';
+40
View File
@@ -20106,6 +20106,26 @@ array(
)
)
),
array(
'app' => 'core',
'category' => 'studierendenantrag',
'phrase' => 'error_not_approved',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Antrag ist nicht bestätigt worden',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'Application is not approved',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'core',
'category' => 'studierendenantrag',
@@ -20426,6 +20446,26 @@ array(
)
)
),
array(
'app' => 'core',
'category' => 'studierendenantrag',
'phrase' => 'mail_subject_A_ObjectionDenied',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Ihr Einspruch wurde Abgelehnt',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'Your objection was denied',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'core',
'category' => 'studierendenantrag',