From 25258f7d8776786907dd72e4782bc2f39ecd0106 Mon Sep 17 00:00:00 2001 From: cgfhtw Date: Mon, 10 Jul 2023 14:27:50 +0200 Subject: [PATCH] =?UTF-8?q?E-Mail=20Reminder=20f=C3=BCr=20Wiederholer=20so?= =?UTF-8?q?llen=20an=20die=20FH=20Adresse=20des=20Studierenden=20geschickt?= =?UTF-8?q?=20werden?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/controllers/jobs/AntragJob.php | 117 ++++++++---------- application/models/crm/Student_model.php | 10 ++ .../education/Studierendenantrag_model.php | 2 +- 3 files changed, 64 insertions(+), 65 deletions(-) diff --git a/application/controllers/jobs/AntragJob.php b/application/controllers/jobs/AntragJob.php index 7af0f55af..71068fbe9 100644 --- a/application/controllers/jobs/AntragJob.php +++ b/application/controllers/jobs/AntragJob.php @@ -25,6 +25,7 @@ class AntragJob extends JOB_Controller $this->load->model('education/Studierendenantragstatus_model', 'StudierendenantragstatusModel'); $this->load->model('education/Pruefung_model', 'PruefungModel'); $this->load->model('person/Kontakt_model', 'KontaktModel'); + $this->load->model('crm/Student_model', 'StudentModel'); } /** @@ -297,74 +298,62 @@ class AntragJob extends JOB_Controller continue; $url = site_url('lehre/Studierendenantrag/wiederholung/' . $prestudent->prestudent_id); $urlCIS = CIS_ROOT . 'index.ci.php/lehre/Studierendenantrag/wiederholung/' . $prestudent->prestudent_id; - $email = $this->KontaktModel->getZustellKontakt($prestudent->person_id, ['email']); - if (isError($email)) { - $this->logError(getError($email)); - } else { - $email = getData($email); + $email = $this->StudentModel->getEmailFH($this->StudentModel->getUID($prestudent->prestudent_id)); - if (!$email) { - $this->logError('No email contact found for person_id: ' . $prestudent->person_id); - } - else + $fristende = new DateTime($prestudent->datum); + $fristende->add(DateInterval::createFromDateString($modifier_deadline)); + + $dataMail = array( + 'name'=> trim($prestudent->vorname . ' '. $prestudent->nachname), + 'pers_kz'=> $prestudent->matrikelnr, + 'studiengang' => $prestudent->bezeichnung, + 'lvbezeichnung' => $prestudent->lvbezeichnung, + 'datum_kp' => $prestudent->datum, + 'studiensemester'=> $prestudent->studiensemester_kurzbz, + 'orgform'=> $prestudent->orgform, + 'prestudent_id' => $prestudent->prestudent_id, + 'url' => $url, + 'urlCIS' => $urlCIS, + 'fristablauf' => $fristende->format('d.m.Y') + ); + + // NOTE(chris): Sancho mail + if(sendSanchoMail('Sancho_Mail_Antrag_W_' . $name, $dataMail, $email, $subject)) + { + $antrag_id = null; + $result = $this->StudierendenantragModel->loadWhere([ + 'prestudent_id' => $prestudent->prestudent_id, + 'typ' => Studierendenantrag_model::TYP_WIEDERHOLUNG + ]); + if (isError($result)) + $this->logError(getError($result)); + elseif (hasData($result)) + $antrag_id = current(getData($result) ?: []) -> studierendenantrag_id; + if ($antrag_id == null) { - $email = current($email)->kontakt; - $fristende = new DateTime($prestudent->datum); - $fristende->add(DateInterval::createFromDateString($modifier_deadline)); - - $dataMail = array( - 'name'=> trim($prestudent->vorname . ' '. $prestudent->nachname), - 'pers_kz'=> $prestudent->matrikelnr, - 'studiengang' => $prestudent->bezeichnung, - 'lvbezeichnung' => $prestudent->lvbezeichnung, - 'datum_kp' => $prestudent->datum, - 'studiensemester'=> $prestudent->studiensemester_kurzbz, - 'orgform'=> $prestudent->orgform, + $result = $this->StudierendenantragModel->insert([ 'prestudent_id' => $prestudent->prestudent_id, - 'url' => $url, - 'urlCIS' => $urlCIS, - 'fristablauf' => $fristende->format('d.m.Y') - ); - - // NOTE(chris): Sancho mail - if(sendSanchoMail('Sancho_Mail_Antrag_W_' . $name, $dataMail, $email, $subject)) - { - $antrag_id = null; - $result = $this->StudierendenantragModel->loadWhere([ - 'prestudent_id' => $prestudent->prestudent_id, - 'typ' => Studierendenantrag_model::TYP_WIEDERHOLUNG - ]); - if (isError($result)) - $this->logError(getError($result)); - elseif (hasData($result)) - $antrag_id = current(getData($result) ?: []) -> studierendenantrag_id; - if ($antrag_id == null) - { - $result = $this->StudierendenantragModel->insert([ - 'prestudent_id' => $prestudent->prestudent_id, - 'studiensemester_kurzbz'=> $prestudent->studiensemester_kurzbz, - 'datum' => date('c'), - 'typ' => Studierendenantrag_model::TYP_WIEDERHOLUNG, - 'insertvon' => 'AntragJob' - ]); - if (isError($result)) - $this->logError(getError($result)); - else - $antrag_id = getData($result); - } - if ($antrag_id) - { - $result = $this->StudierendenantragstatusModel->insert([ - 'studierendenantrag_id' => $antrag_id, - 'studierendenantrag_statustyp_kurzbz' => $status_to, - 'insertvon' => 'AntragJob' - ]); - if (isError($result)) - $this->logError(getError($result)); - } - $count++; - } + 'studiensemester_kurzbz'=> $prestudent->studiensemester_kurzbz, + 'datum' => date('c'), + 'typ' => Studierendenantrag_model::TYP_WIEDERHOLUNG, + 'insertvon' => 'AntragJob' + ]); + if (isError($result)) + $this->logError(getError($result)); + else + $antrag_id = getData($result); } + if ($antrag_id) + { + $result = $this->StudierendenantragstatusModel->insert([ + 'studierendenantrag_id' => $antrag_id, + 'studierendenantrag_statustyp_kurzbz' => $status_to, + 'insertvon' => 'AntragJob' + ]); + if (isError($result)) + $this->logError(getError($result)); + } + $count++; } } $this->logInfo($count . " Mails '" . $subject . "' sent"); diff --git a/application/models/crm/Student_model.php b/application/models/crm/Student_model.php index 4404beb54..e27fa68dc 100644 --- a/application/models/crm/Student_model.php +++ b/application/models/crm/Student_model.php @@ -82,4 +82,14 @@ class Student_model extends DB_Model return $result; } + + /** + * Get the FH-Email for a student (not the private kontakt emailt) + * @param $student_uid + * @return string + */ + public function getEmailFH($student_uid) + { + return $student_uid . '@' . DOMAIN; + } } diff --git a/application/models/education/Studierendenantrag_model.php b/application/models/education/Studierendenantrag_model.php index d9313263f..a4dfb0d59 100644 --- a/application/models/education/Studierendenantrag_model.php +++ b/application/models/education/Studierendenantrag_model.php @@ -98,7 +98,7 @@ class Studierendenantrag_model extends DB_Model ); if ($types && is_array($types)) { - $this->db->where_in('typ' => $types); + $this->db->where_in('typ', $types); } $this->addOrder('datum', 'DESC');