diff --git a/application/controllers/system/infocenter/InfoCenter.php b/application/controllers/system/infocenter/InfoCenter.php index 03d98dd14..c65d15238 100644 --- a/application/controllers/system/infocenter/InfoCenter.php +++ b/application/controllers/system/infocenter/InfoCenter.php @@ -69,7 +69,6 @@ class InfoCenter extends VileSci_Controller // Loads libraries $this->load->library('DmsLib'); $this->load->library('PersonLogLib'); - $this->load->library('MailLib'); $this->load->library('WidgetLib'); $this->_setAuthUID(); // sets property uid @@ -336,6 +335,8 @@ class InfoCenter extends VileSci_Controller show_error($result->retval); } + $this->_sendFreigabeMail($prestudent_id); + $logdata = $this->_getPersonAndStudiengangFromPrestudent($prestudent_id); $this->_log($logdata['person_id'], 'freigegeben', array($prestudent_id, $logdata['studiengang_kurzbz'])); @@ -645,6 +646,7 @@ class InfoCenter extends VileSci_Controller foreach ($prestudenten->retval as $prestudent) { $prestudent = $this->PrestudentModel->getPrestudentWithZgv($prestudent->prestudent_id); + $personid = $this->_getPersonAndStudiengangFromPrestudent($person_id); if (isError($prestudent)) { @@ -755,9 +757,86 @@ class InfoCenter extends VileSci_Controller $this->uid ); } -/* - private function _sendFreigabeMail() + + /** + * Sends infomail with prestudent and person data when Prestudent is freigegeben + * @param $prestudent_id + */ + private function _sendFreigabeMail($prestudent_id) { - $this->maillib->send('alex@alex-ThinkCentre-M900', 'karpen_ko@hotmail.com', 'test', 'test'); - }*/ + //get data + $prestudent = $this->PrestudentModel->getPrestudentWithZgv($prestudent_id)->retval[0]; + $prestudentstatus = $prestudent->prestudentstatus; + $person_id = $prestudent->person_id; + $person = $this->PersonModel->getPersonStammdaten($person_id, true)->retval; + + //fill mail variables + $interessentbez = $person->geschlecht == 'm' ? 'Ein Interessent' : 'Eine Interessentin'; + $sprache = $prestudentstatus->sprachedetails->bezeichnung[0]; + $orgform = $prestudentstatus->orgform != '' ? ' ('.$prestudentstatus->orgform.')' : ''; + $geschlecht = $person->geschlecht == 'm' ? 'männlich' : 'weiblich'; + $geburtsdatum = date('d.m.Y', strtotime($person->gebdatum)); + + $notizenBewerbung = $this->NotizModel->getNotizByTitel($person_id, 'Anmerkung zur Bewerbung')->retval; + + $notizentext = ''; + $lastElement = end($notizenBewerbung); + foreach ($notizenBewerbung as $notiz) + { + $notizentext .= $notiz->text; + if ($notiz != $lastElement) + $notizentext .= ' | '; + } + + $mailadresse = ''; + foreach ($person->kontakte as $kontakt) + { + if ($kontakt->kontakttyp === 'email') + { + $mailadresse = $kontakt->kontakt; + break; + } + } + + $data = array + ( + 'interessentbez' => $interessentbez, + 'studiengangbez' => $prestudent->studiengangbezeichnung, + 'studiengangtypbez' => $prestudent->studiengangtyp_bez, + 'orgform' => $orgform, + 'studiensemester' => $prestudentstatus->studiensemester_kurzbz, + 'sprache' => $sprache, + 'geschlecht' => $geschlecht, + 'vorname' => $person->vorname, + 'nachname' => $person->nachname, + 'gebdatum' => $geburtsdatum, + 'mailadresse' => $mailadresse, + 'prestudentid' => $prestudent_id, + 'notizentext' => $notizentext + ); + + $this->load->library('parser'); + $this->load->library('MailLib'); + $this->load->library('LogLib'); + + //parse freigabe html email template, wordwrap wraps text so no display errors + $email = wordwrap($this->parser->parse('templates/mailtemplates/interessentFreigabe', $data, true), 70); + + $subject = ($person->geschlecht == 'm' ? 'Interessent ' : 'Interessentin ').$person->vorname.' '.$person->nachname.' freigegeben'; + + $receiver = $prestudent->studiengangmail; + + if (!empty($receiver)) + { + //Freigabeinformationmail sent from default system mail to studiengang mail(s) + $sent = $this->maillib->send('', $receiver, $subject, $email); + + if (!$sent) + $this->loglib->logError('Error when sending Freigabe mail'); + } + else + { + $this->loglib->logError('Studiengang has no mail for sending Freigabe mail'); + } + } } diff --git a/application/models/crm/Prestudent_model.php b/application/models/crm/Prestudent_model.php index a56592467..d75d17236 100644 --- a/application/models/crm/Prestudent_model.php +++ b/application/models/crm/Prestudent_model.php @@ -201,10 +201,12 @@ class Prestudent_model extends DB_Model */ public function getPrestudentWithZgv($prestudent_id) { - $this->addSelect('tbl_prestudent.*, tbl_studiengang.kurzbzlang as studiengang, tbl_studiengang.bezeichnung as studiengangbezeichnung, tbl_studiengang.english as studiengangenglish, tbl_studiengang.typ as studiengangtyp, - tbl_zgv.zgv_code, tbl_zgv.zgv_bez, tbl_prestudent.zgvort, tbl_prestudent.zgvdatum, tbl_prestudent.zgvnation as zgvnation_code, zgvnat.kurztext as zgvnation_kurzbez, zgvnat.langtext as zgvnation_bez, zgvnat.engltext as zgvnation_englbez, - tbl_zgvmaster.zgvmas_code, tbl_zgvmaster.zgvmas_bez, tbl_prestudent.zgvmaort, tbl_prestudent.zgvmadatum, tbl_prestudent.zgvmanation as zgvmanation_code, zgvmanat.kurztext as zgvmanation_kurzbez, zgvmanat.langtext as zgvmanation_bez, zgvmanat.engltext as zgvmanation_englbez'); + $this->addSelect('tbl_prestudent.*, tbl_studiengang.studiengang_kz, tbl_studiengang.kurzbzlang as studiengang, tbl_studiengang.bezeichnung as studiengangbezeichnung, tbl_studiengang.english as studiengangenglish, + tbl_studiengang.email as studiengangmail, tbl_studiengang.typ as studiengangtyp, tbl_studiengangstyp.bezeichnung as studiengangtyp_bez, + tbl_zgv.zgv_code, tbl_zgv.zgv_bez, tbl_prestudent.zgvnation as zgvnation_code, zgvnat.kurztext as zgvnation_kurzbez, zgvnat.langtext as zgvnation_bez, zgvnat.engltext as zgvnation_englbez, + tbl_zgvmaster.zgvmas_code, tbl_zgvmaster.zgvmas_bez, tbl_prestudent.zgvmanation as zgvmanation_code, zgvmanat.kurztext as zgvmanation_kurzbez, zgvmanat.langtext as zgvmanation_bez, zgvmanat.engltext as zgvmanation_englbez'); $this->addJoin('public.tbl_studiengang', 'studiengang_kz', 'LEFT'); + $this->addJoin('public.tbl_studiengangstyp', 'typ', 'LEFT'); $this->addJoin('bis.tbl_zgv', 'zgv_code', 'LEFT'); $this->addJoin('bis.tbl_zgvmaster', 'zgvmas_code', 'LEFT'); $this->addJoin('bis.tbl_nation zgvnat', 'zgvnation = zgvnat.nation_code', 'LEFT'); @@ -223,13 +225,13 @@ class Prestudent_model extends DB_Model return error($lastStatus->retval); } - if(count($lastStatus->retval) > 0) + if (count($lastStatus->retval) > 0) { $this->load->model('system/sprache_model', 'SpracheModel'); $language = $this->SpracheModel->load($lastStatus->retval[0]->sprache); - if($language->error) + if ($language->error) return error($language->retval); - if(count($language->retval) > 0) + if (count($language->retval) > 0) $lastStatus->retval[0]->sprachedetails = $language->retval[0]; $prestudent->retval[0]->prestudentstatus = $lastStatus->retval[0]; } diff --git a/application/models/person/Notiz_model.php b/application/models/person/Notiz_model.php index 61f935d19..ccc1e2719 100644 --- a/application/models/person/Notiz_model.php +++ b/application/models/person/Notiz_model.php @@ -144,6 +144,19 @@ class Notiz_model extends DB_Model return $this->loadWhere(array('person_id' => $person_id)); } + + /** + * gets all Notizen for a person with a specific title + * @param $person_id + * @param $titel + */ + public function getNotizByTitel($person_id, $titel) + { + // Join with the table public.tbl_notizzuordnung using notiz_id + $this->addJoin('public.tbl_notizzuordnung', 'notiz_id'); + + return $this->loadWhere(array('person_id' => $person_id, 'titel' => $titel)); + } // ------------------------------------------------------------------------------------------------------ } diff --git a/application/views/templates/mailtemplates/interessentFreigabe.php b/application/views/templates/mailtemplates/interessentFreigabe.php new file mode 100644 index 000000000..91ca22f94 --- /dev/null +++ b/application/views/templates/mailtemplates/interessentFreigabe.php @@ -0,0 +1,54 @@ + + + Interessentenfreigabe mail + + +
+ {interessentbez} wurde freigegeben. +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Studiengang{studiengangbez} {studiengangtypbez} {orgform} {sprache}
Studiensemester{studiensemester}
Geschlecht{geschlecht}
Vorname{vorname}
Nachname{nachname}
Geburtsdatum{gebdatum}
E-Mail Adresse{mailadresse}
Prestudent ID{prestudentid}
Anmerkungen zur Bewerbung{notizentext}
+
+ Für mehr Details verwenden Sie die Personenansicht im FAS. +
+ + +