From 5b6227171144a31c0e2b32b002efd237df264410 Mon Sep 17 00:00:00 2001 From: cgfhtw Date: Tue, 2 Jan 2024 09:36:28 +0100 Subject: [PATCH] s&d --- application/controllers/jobs/AntragJob.php | 93 +++++++++++-------- .../education/Studierendenantrag_model.php | 3 +- .../Studierendenantragstatus_model.php | 1 + .../27351_digitalisierung_formulare.php | 18 +++- 4 files changed, 73 insertions(+), 42 deletions(-) diff --git a/application/controllers/jobs/AntragJob.php b/application/controllers/jobs/AntragJob.php index 2730ee802..131cfdced 100644 --- a/application/controllers/jobs/AntragJob.php +++ b/application/controllers/jobs/AntragJob.php @@ -345,6 +345,7 @@ class AntragJob extends JOB_Controller $dateDeadline = new DateTime(); $dateDeadline->sub(DateInterval::createFromDateString($modifier_deadline)); + $this->StudierendenantragModel->addSelect('tbl_studierendenantrag.studierendenantrag_id'); $this->StudierendenantragModel->addSelect('prestudent_id'); $this->StudierendenantragModel->addSelect('studiensemester_kurzbz'); $this->StudierendenantragModel->addSelect('s.insertamum'); @@ -369,50 +370,62 @@ class AntragJob extends JOB_Controller foreach ($antraege as $antrag) { - $result = $this->prestudentlib->setAbbrecher( - $antrag->prestudent_id, - $antrag->studiensemester_kurzbz, - 'AntragJob', - 'abbrecherStgl', - $antrag->insertamum, - null, - $antrag->insertvon ?: $insertvon - ); + $result = $this->StudierendenantragstatusModel->insert([ + 'studierendenantrag_id' => $antrag->studierendenantrag_id, + 'studierendenantrag_statustyp_kurzbz' => Studierendenantragstatus_model::STATUS_DEREGISTERED, + 'insertvon' => 'AntragJob' + ]); if (isError($result)) $this->logError(getError($result)); - else - { - $count++; - $result = $this->PrestudentModel->load($antrag->prestudent_id); - if(!hasData($result)) { - $this->logWarning('No Prestudent found'); - continue; - } - $prestudent = current(getData($result)); - $result = $this->StudiengangModel->load($prestudent->studiengang_kz); - if(!hasData($result)) { - $this->logWarning('No Studiengang found'); - continue; - } - $studiengang = current(getData($result)); - $result = $this->PersonModel->loadPrestudent($antrag->prestudent_id); - if(!hasData($result)) - { - $this->logWarning('No Person found'); - continue; - } - $person = current(getData($result)); - $email = $studiengang->email; - $dataMail = array( - 'prestudent' => $antrag->prestudent_id, - 'studiensemester' => $antrag->studiensemester_kurzbz, - 'name' => trim($person->vorname . ' '. $person->nachname), - ); + else { + $deregisterStatus = getData($result); - if(!sendSanchoMail('Sancho_Mail_Antrag_A_Assist', $dataMail, $email, 'Einspruchsfrist abgelaufen')) - { - $this->logWarning("Failed to send Notification to " . $email); + $result = $this->prestudentlib->setAbbrecher( + $antrag->prestudent_id, + $antrag->studiensemester_kurzbz, + 'AntragJob', + 'abbrecherStgl', + $antrag->insertamum, + null, + $antrag->insertvon ?: $insertvon + ); + if (isError($result)) { + $this->StudierendenantragstatusModel->delete($deregisterStatus); + $this->logError(getError($result)); + } else { + $count++; + $result = $this->PrestudentModel->load($antrag->prestudent_id); + if(!hasData($result)) { + $this->logWarning('No Prestudent found'); + continue; + } + $prestudent = current(getData($result)); + $result = $this->StudiengangModel->load($prestudent->studiengang_kz); + if(!hasData($result)) { + $this->logWarning('No Studiengang found'); + continue; + } + $studiengang = current(getData($result)); + $result = $this->PersonModel->loadPrestudent($antrag->prestudent_id); + if(!hasData($result)) + { + $this->logWarning('No Person found'); + continue; + } + $person = current(getData($result)); + $email = $studiengang->email; + $dataMail = array( + 'prestudent' => $antrag->prestudent_id, + 'studiensemester' => $antrag->studiensemester_kurzbz, + 'name' => trim($person->vorname . ' '. $person->nachname), + ); + + if(!sendSanchoMail('Sancho_Mail_Antrag_A_Assist', $dataMail, $email, 'Einspruchsfrist abgelaufen')) + { + $this->logWarning("Failed to send Notification to " . $email); + } } + } } $this->logInfo($count . "/" . count($antraege) . " Students set to Abbrecher"); diff --git a/application/models/education/Studierendenantrag_model.php b/application/models/education/Studierendenantrag_model.php index 3d688eb82..4a226fea9 100644 --- a/application/models/education/Studierendenantrag_model.php +++ b/application/models/education/Studierendenantrag_model.php @@ -83,7 +83,8 @@ class Studierendenantrag_model extends DB_Model Studierendenantragstatus_model::STATUS_CANCELLED, Studierendenantragstatus_model::STATUS_APPROVED, Studierendenantragstatus_model::STATUS_REJECTED, - Studierendenantragstatus_model::STATUS_OBJECTION_DENIED + Studierendenantragstatus_model::STATUS_OBJECTION_DENIED, + Studierendenantragstatus_model::STATUS_DEREGISTERED ]); $this->db->or_group_start(); $this->db->where('s.studierendenantrag_statustyp_kurzbz', Studierendenantragstatus_model::STATUS_APPROVED); diff --git a/application/models/education/Studierendenantragstatus_model.php b/application/models/education/Studierendenantragstatus_model.php index b4bf3938b..c134cc4ee 100644 --- a/application/models/education/Studierendenantragstatus_model.php +++ b/application/models/education/Studierendenantragstatus_model.php @@ -14,6 +14,7 @@ class Studierendenantragstatus_model extends DB_Model const STATUS_REQUESTSENT_2 = 'ZweiteAufforderungVersandt'; const STATUS_OBJECTED = 'Beeinsprucht'; const STATUS_OBJECTION_DENIED = 'EinspruchAbgelehnt'; + const STATUS_DEREGISTERED = 'Abgemeldet'; /** * Constructor diff --git a/system/dbupdate_3.4/27351_digitalisierung_formulare.php b/system/dbupdate_3.4/27351_digitalisierung_formulare.php index 1f8dd4b4b..75e634569 100644 --- a/system/dbupdate_3.4/27351_digitalisierung_formulare.php +++ b/system/dbupdate_3.4/27351_digitalisierung_formulare.php @@ -37,7 +37,8 @@ if($result = @$db->db_query("SELECT 1 FROM campus.tbl_studierendenantrag_statust ('ErsteAufforderungVersandt', '{\"1.Aufforderung Versandt\",\"1st Request Sent\"}'), ('ZweiteAufforderungVersandt', '{\"2.Aufforderung Versandt\",\"2nd Request Sent\"}'), ('Beeinsprucht', '{\"Beeinsprucht\",\"Objected\"}'), - ('EinspruchAbgelehnt', '{\"Einspruch abgelehnt\",\"Objection denied\"}'); + ('EinspruchAbgelehnt', '{\"Einspruch abgelehnt\",\"Objection denied\"}'), + ('Abgemeldet', '{\"Abgemeldet\",\"Deregistered\"}'); "; if (!$db->db_query($qry)) echo 'campus.tbl_studierendenantrag_statustyp (insert): '.$db->db_last_error().'
'; @@ -45,6 +46,21 @@ if($result = @$db->db_query("SELECT 1 FROM campus.tbl_studierendenantrag_statust echo '
campus.tbl_studierendenantrag_statustyp: table prefilled'; } } +if($result = @$db->db_query("SELECT 1 FROM campus.tbl_studierendenantrag_statustyp WHERE studierendenantrag_statustyp_kurzbz = 'Abgemeldet' ")) +{ + if($db->db_num_rows($result) == 0) + { + $qry = "INSERT INTO campus.tbl_studierendenantrag_statustyp + (studierendenantrag_statustyp_kurzbz, bezeichnung) + VALUES + ('Abgemeldet', '{\"Abgemeldet\",\"Deregistered\"}'); + "; + if (!$db->db_query($qry)) + echo 'campus.tbl_studierendenantrag_statustyp (insert): '.$db->db_last_error().'
'; + else + echo '
campus.tbl_studierendenantrag_statustyp: "Abgemeldet" added'; + } +} if(!$result = @$db->db_query("SELECT 1 FROM campus.tbl_studierendenantrag LIMIT 1")) {