Abbrecher 2dos: Änderungen Wordings, neue Statusgründe preabbrecher, durchStgl, durchStud, update setAbbrecher

This commit is contained in:
ma0068
2023-07-11 17:01:22 +02:00
parent f438d240f9
commit 6f1eed6696
5 changed files with 113 additions and 24 deletions
+8 -3
View File
@@ -177,9 +177,14 @@ class AntragJob extends JOB_Controller
$dateDeadline = new DateTime();
$dateDeadline->sub(DateInterval::createFromDateString($modifier_deadline));
$this->StudierendenantragModel->addSelect('prestudent_id');
$this->StudierendenantragModel->addSelect('studiensemester_kurzbz');
$this->StudierendenantragModel->addSelect('s.insertamum');
$result = $this->StudierendenantragModel->getWithLastStatusWhere(
[
'studierendenantrag_statustyp_kurzbz' => Studierendenantragstatus_model::STATUS_APPROVED_STGL,
'typ' => Studierendenantrag_model::TYP_ABMELDUNG_STGL,
'studierendenantrag_statustyp_kurzbz' => Studierendenantragstatus_model::STATUS_APPROVED,
's.insertamum <=' => $dateDeadline->format('c')
]
);
@@ -195,8 +200,8 @@ class AntragJob extends JOB_Controller
foreach ($antraege as $antrag)
{
$result = $this->antraglib->approveAbmeldung([$antrag->studierendenantrag_id], $insertvon);
$result = $this->prestudentlib->setAbbrecher($antrag->prestudent_id, $antrag->studiensemester_kurzbz, $insertvon, 'abbrecherStgl', $antrag->insertamum);
if (isError($result))
$this->logError(getError($result));
else
@@ -316,7 +321,7 @@ class AntragJob extends JOB_Controller
'urlCIS' => $urlCIS,
'fristablauf' => $fristende->format('d.m.Y')
);
// NOTE(chris): Sancho mail
if(sendSanchoMail('Sancho_Mail_Antrag_W_' . $name, $dataMail, $email, $subject))
{
+38 -16
View File
@@ -137,26 +137,21 @@ class AntragLib
$errors[] = $this->_ci->p->t('studierendenantrag', 'error_no_antrag_found', ['id' => $studierendenantrag_id]);
continue;
}
$status = getData($result)[0];
$antrag = getData($result)[0];
$insertam = date('c');
$result = $this->_ci->StudierendenantragstatusModel->insert([
'studierendenantrag_id' => $studierendenantrag_id,
'studierendenantrag_statustyp_kurzbz' => Studierendenantragstatus_model::STATUS_APPROVED,
'insertvon' => $insertvon
'insertvon' => $insertvon,
'insertam' => $insertam
]);
if (isError($result))
$errors[] = getError($result);
else {
$resultPrestudent = $this->_ci->StudierendenantragModel->load($studierendenantrag_id);
if (isError($resultPrestudent))
if ($antrag->typ == Studierendenantrag_model::TYP_ABMELDUNG)
{
$errors[] = getError($resultPrestudent);
continue;
}
if ($status->typ == Studierendenantrag_model::TYP_ABMELDUNG)
{
$antrag = getData($resultPrestudent)[0];
$resultPrestudentStatus = $this->_ci->PrestudentstatusModel->getLastStatusWithStgEmail($antrag->prestudent_id);
if (isError($resultPrestudentStatus))
$errors[] = getError($resultPrestudentStatus);
@@ -167,7 +162,7 @@ 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);
$result = $this->_ci->prestudentlib->setAbbrecher($antrag->prestudent_id, $antrag->studiensemester_kurzbz, $insertvon, 'abbrecherStud', $antrag->datum, $insertam) ;
if (isError($result))
{
$errors[] = getError($result);
@@ -186,8 +181,35 @@ class AntragLib
sendSanchoMail($vorlage, $data, $prestudent_status->email, $subject);
}
}
if ($status->typ == Studierendenantrag_model::TYP_ABMELDUNG_STGL) {
$res = $this->_ci->PrestudentModel->load($status->prestudent_id);
if ($antrag->typ == Studierendenantrag_model::TYP_ABMELDUNG_STGL) {
$result = $this->_ci->PrestudentstatusModel->getLastStatus($antrag->prestudent_id, '', 'Student');
if (isError($result))
{
$errors[] = getError($result);
continue;
}
if(!hasData($result))
{
$errors[] = $this->_ci->p->t('studierendenantrag', 'error_no_prestudentstatus', ['prestudent_id' => $antrag->prestudent_id]);
continue;
}
$prestudentstatus = getData($result)[0];
$result = $this->_ci->PrestudentstatusModel->withGrund('preabbrecher')->update([
'prestudent_id' => $prestudentstatus->prestudent_id,
'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);
if (hasData($res)) {
$prestudent = current(getData($res));
$res = $this->_ci->PersonModel->load($prestudent->person_id);
@@ -205,7 +227,7 @@ class AntragLib
'Sancho_Mail_Antrag_A_Stgl',
[
'name' => $name,
'grund' => $status->grund
'grund' => $antrag->grund
],
$email,
$this->_ci->p->t('studierendenantrag', 'mail_subject_A_Stgl')
@@ -857,7 +879,7 @@ class AntragLib
if (!hasData($result))
return error($this->_ci->p->t('studierendenantrag', 'error_no_stg', ['studiengang_kz' => $studiengang_kz]));
$stg = current(getData($result));
if ($ausbildungssemester > $stg->max_semester)
return success();
return error($this->_ci->p->t('studierendenantrag', 'error_no_studienplan', [
+12 -5
View File
@@ -35,7 +35,7 @@ class PrestudentLib
}
public function setAbbrecher($prestudent_id, $studiensemester_kurzbz, $insertvon = null)
public function setAbbrecher($prestudent_id, $studiensemester_kurzbz, $insertvon = null, $statusgrund_kurzbz = null, $datum = null, $bestaetigtam = null)
{
if (!$insertvon)
$insertvon = getAuthUID();
@@ -62,24 +62,31 @@ class PrestudentLib
$student = current($result);
//Status updaten
$result = $this->_ci->PrestudentstatusModel->insert([
if(!$datum)
$datum = date('c');
if(!$bestaetigtam)
$bestaetigtam = date('c');
//Status und Statusgrund updaten
$result = $this->_ci->PrestudentstatusModel->withGrund($statusgrund_kurzbz)->insert([
'prestudent_id' => $prestudent_id,
'status_kurzbz' => Prestudentstatus_model::STATUS_ABBRECHER,
'studiensemester_kurzbz' => $studiensemester_kurzbz,
'ausbildungssemester' => $prestudent_status->ausbildungssemester,
'datum' => date('c'),
'datum' => $datum,
'insertvon' => $insertvon,
'insertamum' => date('c'),
'orgform_kurzbz'=> $prestudent_status->orgform_kurzbz,
'studienplan_id'=> $prestudent_status->studienplan_id,
'bestaetigtvon' => $insertvon,
'bestaetigtam' => date('c')
'bestaetigtam' => $bestaetigtam
]);
if (isError($result))
return $result;
//Verband anlegen
$result = $this->_ci->LehrverbandModel->load([
'studiengang_kz' => $student->studiengang_kz,
@@ -316,4 +316,20 @@ class Prestudentstatus_model extends DB_Model
return $this->loadWhere($whereArr);
}
/**
* call like this:
* $this->PrestudentstatusModel->withGrund('grund_kurzbz')->update($id, $otherData);
* or:
* $this->PrestudentstatusModel->withGrund('grund_kurzbz')->insert($otherData);
* @param string $statusgrund_kurzbz
* @return object $this
*/
public function withGrund($statusgrund_kurzbz)
{
if($statusgrund_kurzbz)
$this->db->set('statusgrund_id', '(SELECT statusgrund_id FROM public.tbl_status_grund WHERE statusgrund_kurzbz =' . $this->db->escape($statusgrund_kurzbz) .')', FALSE);
return $this;
}
}
@@ -285,3 +285,42 @@ if (!$result = @$db->db_query("SELECT public.get_stdsem_prestudent(0, null)")) {
else
echo '<br>public.get_stdsem_prestudent(integer, character varying): function created';
}
if($result = @$db->db_query("SELECT 1 FROM public.tbl_status_grund WHERE statusgrund_kurzbz = 'abbrecherStgl';"))
{
if($db->db_num_rows($result) == 0)
{
$qry = "INSERT INTO public.tbl_status_grund(statusgrund_kurzbz, status_kurzbz, aktiv, beschreibung, bezeichnung_mehrsprachig) VALUES('abbrecherStgl', 'Abbrecher', TRUE, '{\"durch Stgl\", \"by Course Director\"}', '{\"durch Stgl\", \"by Course Director\"}');";
if(!$db->db_query($qry))
echo '<strong>public.tbl_status_grund '.$db->db_last_error().'</strong><br>';
else
echo ' public.tbl_status_grund: Added Statusgrund abbrecherStgl for Abbrecher<br>';
}
}
if($result = @$db->db_query("SELECT 1 FROM public.tbl_status_grund WHERE statusgrund_kurzbz = 'abbrecherStud';"))
{
if($db->db_num_rows($result) == 0)
{
$qry = "INSERT INTO public.tbl_status_grund(statusgrund_kurzbz, status_kurzbz, aktiv, beschreibung, bezeichnung_mehrsprachig) VALUES('abbrecherStud', 'Abbrecher', TRUE, '{\"durch Stud\", \"by Student\"}', '{\"durch Stud\", \"by Student\"}');";
if(!$db->db_query($qry))
echo '<strong>public.tbl_status_grund '.$db->db_last_error().'</strong><br>';
else
echo ' public.tbl_status_grund: Added Statusgrund abbrecherStud for Abbrecher<br>';
}
}
if($result = @$db->db_query("SELECT 1 FROM public.tbl_status_grund WHERE statusgrund_kurzbz = 'preabbrecher';"))
{
if($db->db_num_rows($result) == 0)
{
$qry = "INSERT INTO public.tbl_status_grund(statusgrund_kurzbz, status_kurzbz, aktiv, beschreibung, bezeichnung_mehrsprachig) VALUES('preabbrecher', 'Student', TRUE, '{\"Pre-Abbrecher\", \"Pre-Aborted\"}', '{\"Pre-Abbrecher\", \"Pre-Aborted\"}');";
if(!$db->db_query($qry))
echo '<strong>public.tbl_status_grund '.$db->db_last_error().'</strong><br>';
else
echo ' public.tbl_status_grund: Added Statusgrund pre-abbrecher for Student<br>';
}
}