From 3366f091dd28013a0f45da62ff7cd7d015864f43 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Mon, 15 Feb 2021 21:12:14 +0100 Subject: [PATCH] Anrechnungen - Fixed Details Page for People with multiple Accounts --- .../anrechnung/ApproveAnrechnungDetail.php | 170 +++++++++--------- .../anrechnung/ReviewAnrechnungDetail.php | 124 ++++++------- application/models/crm/Prestudent_model.php | 21 --- application/models/crm/Student_model.php | 21 +++ 4 files changed, 168 insertions(+), 168 deletions(-) diff --git a/application/controllers/lehre/anrechnung/ApproveAnrechnungDetail.php b/application/controllers/lehre/anrechnung/ApproveAnrechnungDetail.php index eebe62226..c5e4b94d8 100644 --- a/application/controllers/lehre/anrechnung/ApproveAnrechnungDetail.php +++ b/application/controllers/lehre/anrechnung/ApproveAnrechnungDetail.php @@ -5,17 +5,17 @@ class approveAnrechnungDetail extends Auth_Controller { const BERECHTIGUNG_ANRECHNUNG_GENEHMIGEN = 'lehre/anrechnung_genehmigen'; - + const REVIEW_ANRECHNUNG_URI = '/lehre/anrechnung/ReviewAnrechnungUebersicht'; - + const ANRECHNUNGSTATUS_PROGRESSED_BY_STGL = 'inProgressDP'; const ANRECHNUNGSTATUS_PROGRESSED_BY_KF = 'inProgressKF'; const ANRECHNUNGSTATUS_PROGRESSED_BY_LEKTOR = 'inProgressLektor'; const ANRECHNUNGSTATUS_APPROVED = 'approved'; const ANRECHNUNGSTATUS_REJECTED = 'rejected'; - + const ANRECHNUNG_NOTIZTITEL_NOTIZ_BY_STGL = 'AnrechnungNotizSTGL'; - + public function __construct() { // Set required permissions @@ -28,28 +28,28 @@ class approveAnrechnungDetail extends Auth_Controller 'requestRecommendation' => 'lehre/anrechnung_genehmigen:rw' ) ); - + // Load models $this->load->model('education/Anrechnung_model', 'AnrechnungModel'); $this->load->model('education/Anrechnungstatus_model', 'AnrechnungstatusModel'); $this->load->model('content/DmsVersion_model', 'DmsVersionModel'); $this->load->model('education/Lehrveranstaltung_model', 'LehrveranstaltungModel'); - $this->load->model('crm/Prestudent_model', 'PrestudentModel'); + $this->load->model('crm/Student_model', 'StudentModel'); $this->load->model('person/Notiz_model', 'NotizModel'); $this->load->model('person/Person_model', 'PersonModel'); $this->load->model('organisation/Studiengang_model', 'StudiengangModel'); - + // Load libraries $this->load->library('WidgetLib'); $this->load->library('PermissionLib'); $this->load->library('AnrechnungLib'); $this->load->library('DmsLib'); - + // Load helpers $this->load->helper('form'); $this->load->helper('url'); $this->load->helper('hlp_sancho_helper'); - + // Load language phrases $this->loadPhrases( array( @@ -61,30 +61,30 @@ class approveAnrechnungDetail extends Auth_Controller 'table' ) ); - + $this->_setAuthUID(); - + $this->setControllerId(); } - + public function index() { $anrechnung_id = $this->input->get('anrechnung_id'); - + if (!is_numeric($anrechnung_id)) { show_error('Missing correct parameter'); } - + // Check if user is entitled to read the Anrechnung self::_checkIfEntitledToReadAnrechnung($anrechnung_id); - + // Get Anrechung data if (!$anrechnungData = getData($this->anrechnunglib->getAnrechnungData($anrechnung_id))) { show_error('Missing data for Anrechnung.'); } - + // Get Empfehlung data if(!$empfehlungData = getData($this->anrechnunglib->getEmpfehlungData($anrechnung_id))) { @@ -99,7 +99,7 @@ class approveAnrechnungDetail extends Auth_Controller $viewData = array( 'antragData' => $this->anrechnunglib->getAntragData( - $student_uid = $this->PrestudentModel->getUID($anrechnungData->prestudent_id), + $student_uid = $this->StudentModel->getUID($anrechnungData->prestudent_id), $anrechnungData->studiensemester_kurzbz, $anrechnungData->lehrveranstaltung_id ), @@ -107,34 +107,34 @@ class approveAnrechnungDetail extends Auth_Controller 'empfehlungData' => $empfehlungData, 'genehmigungData' => $genehmigungData ); - + $this->load->view('lehre/anrechnung/approveAnrechnungDetail.php', $viewData); } - + /** * Approve Anrechnungen. */ public function approve() { $data = $this->input->post('data'); - + if(isEmptyArray($data)) { return $this->outputJsonError('Fehler beim Übertragen der Daten.'); } - + // Get statusbezeichnung for 'approved' $this->AnrechnungstatusModel->addSelect('bezeichnung_mehrsprachig'); $approved = getData($this->AnrechnungstatusModel->load('approved'))[0]; $approved = getUserLanguage() == 'German' ? $approved->bezeichnung_mehrsprachig[0] : $approved->bezeichnung_mehrsprachig[1]; - + if (!$person = getData($this->PersonModel->getByUID($this->_uid))[0]) { show_error('Failed retrieving person data'); } - + foreach ($data as $item) { // Approve Anrechnung @@ -147,14 +147,14 @@ class approveAnrechnungDetail extends Auth_Controller 'abgeschlossen_am' => (new DateTime())->format('d.m.Y'), 'abgeschlossen_von' => $person->vorname. ' '. $person->nachname ); - + if(!$this->_sendSanchoMailToStudent($item['anrechnung_id'], self::ANRECHNUNGSTATUS_APPROVED)) { show_error('Failed sending mail'); } } } - + // Output json to ajax if (isset($json) && !isEmptyArray($json)) { @@ -165,31 +165,31 @@ class approveAnrechnungDetail extends Auth_Controller return $this->outputJsonError('Es wurden keine Anrechnungen genehmigt.'); } } - + /** * Reject Anrechnungen. */ public function reject() { $data = $this->input->post('data'); - + if(isEmptyArray($data)) { return $this->outputJsonError('Fehler beim Übertragen der Daten.'); } - + // Get statusbezeichnung for 'rejected' $this->AnrechnungstatusModel->addSelect('bezeichnung_mehrsprachig'); $rejected = getData($this->AnrechnungstatusModel->load('rejected'))[0]; $rejected = getUserLanguage() == 'German' ? $rejected->bezeichnung_mehrsprachig[0] : $rejected->bezeichnung_mehrsprachig[1]; - + if (!$person = getData($this->PersonModel->getByUID($this->_uid))[0]) { show_error('Failed retrieving person data'); } - + foreach ($data as $item) { // Reject Anrechnung @@ -202,14 +202,14 @@ class approveAnrechnungDetail extends Auth_Controller 'abgeschlossen_am' => (new DateTime())->format('d.m.Y'), 'abgeschlossen_von' => $person->vorname. ' '. $person->nachname ); - + if(!$this->_sendSanchoMailToStudent($item['anrechnung_id'], self::ANRECHNUNGSTATUS_REJECTED)) { show_error('Failed sending mail'); } } } - + // Output json to ajax if (isset($json) && !isEmptyArray($json)) { @@ -220,26 +220,26 @@ class approveAnrechnungDetail extends Auth_Controller return $this->outputJsonError('Es wurden keine Anrechnungen genehmigt.'); } } - + /** * Request recommendation for Anrechnungen. */ public function requestRecommendation() { $data = $this->input->post('data'); - + if(isEmptyArray($data)) { return $this->outputJsonError('Fehler beim Übertragen der Daten.'); } - + // Get statusbezeichnung for 'inProgressLektor' $this->AnrechnungstatusModel->addSelect('bezeichnung_mehrsprachig'); $inProgressLektor = getData($this->AnrechnungstatusModel->load('inProgressLektor'))[0]; $inProgressLektor = getUserLanguage() == 'German' ? $inProgressLektor->bezeichnung_mehrsprachig[0] : $inProgressLektor->bezeichnung_mehrsprachig[1]; - + foreach ($data as $item) { // Approve Anrechnung @@ -254,7 +254,7 @@ class approveAnrechnungDetail extends Auth_Controller ); } } - + // Output json to ajax if (isset($json) && !isEmptyArray($json)) { @@ -267,7 +267,7 @@ class approveAnrechnungDetail extends Auth_Controller { show_error('Failed sending emails'); } - + return $this->outputJsonSuccess($json); } else @@ -275,35 +275,35 @@ class approveAnrechnungDetail extends Auth_Controller return $this->outputJsonError('Es wurden keine Empfehlungen angefordert'); } } - + /** * Download and open uploaded document (Nachweisdokument). */ public function download() { $dms_id = $this->input->get('dms_id'); - + if (!is_numeric($dms_id)) { show_error('Wrong parameter'); } - + // Check if user is entitled to read dms doc self::_checkIfEntitledToReadDMSDoc($dms_id); - + $this->dmslib->download($dms_id); } - + /** * Retrieve the UID of the logged user and checks if it is valid */ private function _setAuthUID() { $this->_uid = getAuthUID(); - + if (!$this->_uid) show_error('User authentification failed'); } - + /** * Check if user is entitled to read this Anrechnung * @param $anrechnung_id @@ -311,21 +311,21 @@ class approveAnrechnungDetail extends Auth_Controller private function _checkIfEntitledToReadAnrechnung($anrechnung_id) { $result = $this->AnrechnungModel->load($anrechnung_id); - + if(!$result = getData($result)[0]) { show_error('Failed loading Anrechnung'); } - + $result = $this->LehrveranstaltungModel->loadWhere(array( 'lehrveranstaltung_id' => $result->lehrveranstaltung_id )); - + if(!$result = getData($result)[0]) { show_error('Failed loading Lehrveranstaltung'); } - + // Get STGL $result = $this->StudiengangModel->getLeitung($result->studiengang_kz); @@ -336,10 +336,10 @@ class approveAnrechnungDetail extends Auth_Controller return; } } - + show_error('You are not entitled to read this Anrechnung'); } - + /** * Check if user is entitled to read dms doc * @param $dms_id @@ -347,24 +347,24 @@ class approveAnrechnungDetail extends Auth_Controller private function _checkIfEntitledToReadDMSDoc($dms_id) { $result = $this->AnrechnungModel->loadWhere(array('dms_id' => $dms_id)); - + if(!$result = getData($result)[0]) { show_error('Failed retrieving Anrechnung'); } - + $result = $this->LehrveranstaltungModel->loadWhere(array( 'lehrveranstaltung_id' => $result->lehrveranstaltung_id )); - + if(!$result = getData($result)[0]) { show_error('Failed loading Lehrveranstaltung'); } - + // Get STGL $result = $this->StudiengangModel->getLeitung($result->studiengang_kz); - + if($result = getData($result)[0]) { if ($result->uid == $this->_uid) @@ -372,10 +372,10 @@ class approveAnrechnungDetail extends Auth_Controller return; } } - + show_error('You are not entitled to read this document'); } - + /** * Send mail to student to inform if Anrechnung was approved or rejected * @param $mail_params @@ -383,34 +383,34 @@ class approveAnrechnungDetail extends Auth_Controller private function _sendSanchoMailToStudent($anrechnung_id, $status_kurzbz) { $result = getData($this->anrechnunglib->getStudentData($anrechnung_id))[0]; - + // Get student name and mail address $to = $result->uid. '@'. DOMAIN; - + $anrede = $result->geschlecht == 'w' ? 'Sehr geehrte Frau ' : 'Sehr geehrter Herr '; - + $text = $status_kurzbz == self::ANRECHNUNGSTATUS_APPROVED ? 'Ihrem Antrag auf Anerkennung nachgewiesener Kenntnisse der Lehrveranstaltung "'. $result->lv_bezeichnung. '" wurde stattgegeben.' : 'wir haben Ihren Antrag auf Anerkennung nachgewiesener Kenntnisse geprüft und können die Lehrveranstaltung "'. $result->lv_bezeichnung. '" leider nicht anrechnen, weil die Gleichwertigkeit nicht festgestellt werden konnte.'; - + // Prepare mail content $body_fields = array( 'anrede_name' => $anrede. $result->vorname. ' '. $result->nachname, 'text' => $text ); - + sendSanchoMail( 'AnrechnungGenehmigen', $body_fields, $to, 'Anerkennung nachgewiesener Kenntnisse: Ihr Antrag ist abgeschlossen' ); - + return true; } - + /** * Send mail to lectors asking for recommendation. (first to LV-Leitung, if not present to all lectors of lv) * @param $mail_params @@ -420,7 +420,7 @@ class approveAnrechnungDetail extends Auth_Controller { // Get Lehrveranstaltungen $anrechnung_arr = array(); - + foreach ($mail_params as $item) { $this->AnrechnungModel->addSelect('lehrveranstaltung_id, studiensemester_kurzbz'); @@ -429,42 +429,42 @@ class approveAnrechnungDetail extends Auth_Controller 'studiensemester_kurzbz' => $this->AnrechnungModel->load($item['anrechnung_id'])->retval[0]->studiensemester_kurzbz ); } - + $anrechnung_arr = array_unique($anrechnung_arr, SORT_REGULAR); - - + + /** * Get lectors (prio for LV-Leitung, if not present to all lectors of LV. * Anyway this function will receive a unique array to avoid sending more mails to one and the same lector. * **/ $lector_arr = $this->_getLectors($anrechnung_arr); - + // Send mail to lectors foreach ($lector_arr as $lector) { $to = $lector->uid; $vorname = $lector->vorname; - + // Get full name of stgl $this->load->model('person/Person_model', 'PersonModel'); if (!$stgl_name = getData($this->PersonModel->getFullName($this->_uid))) { show_error ('Failed retrieving person'); } - + // Link to Antrag genehmigen $url = CIS_ROOT. 'cis/index.php?menu='. CIS_ROOT. 'cis/menu.php?content_id=&content='. CIS_ROOT. index_page(). self::REVIEW_ANRECHNUNG_URI; - + // Prepare mail content $body_fields = array( 'vorname' => $vorname, 'stgl_name' => $stgl_name, 'link' => anchor($url, 'Anrechnungsanträge Übersicht') ); - + sendSanchoMail( 'AnrechnungEmpfehlungAnfordern', $body_fields, @@ -474,7 +474,7 @@ class approveAnrechnungDetail extends Auth_Controller } return true; } - + /** * Get lectors (prio for LV-Leitung, if not present to all lectors of LV. * Anyway this function will receive a unique array to avoid sending more mails to one and the same lector. @@ -484,21 +484,21 @@ class approveAnrechnungDetail extends Auth_Controller private function _getLectors($anrechnung_arr) { $lector_arr = array(); - + // Get lectors foreach($anrechnung_arr as $anrechnung) { $this->load->model('education/Lehrveranstaltung_model', 'LehrveranstaltungModel'); $result = $this->LehrveranstaltungModel->getLecturersByLv($anrechnung['studiensemester_kurzbz'], $anrechnung['lehrveranstaltung_id']); - + if (!$result = getData($result)) { show_error('Failed retrieving lectors of Lehrveranstaltung'); } - + // Check if lv has LV-Leitung $key = array_search(true, array_column($result, 'lvleiter')); - + // If lv has LV-Leitung, keep only the one if ($key !== false) { @@ -510,7 +510,7 @@ class approveAnrechnungDetail extends Auth_Controller $lector_arr = array_merge($lector_arr, $result); } } - + /** * NOTE: This step is only done to make the array unique by uid, vorname and nachname in the following step * (e.g. if same lector is ones LV-Leitung and another time not, then array_unique would leave both. @@ -520,12 +520,12 @@ class approveAnrechnungDetail extends Auth_Controller { unset($lector->lvleiter); } - + // Now make the lector array aka mail receivers unique $lector_arr = array_unique($lector_arr, SORT_REGULAR); - + return $lector_arr; - + } - -} \ No newline at end of file + +} diff --git a/application/controllers/lehre/anrechnung/ReviewAnrechnungDetail.php b/application/controllers/lehre/anrechnung/ReviewAnrechnungDetail.php index 6fd09b5b1..b9c723eee 100644 --- a/application/controllers/lehre/anrechnung/ReviewAnrechnungDetail.php +++ b/application/controllers/lehre/anrechnung/ReviewAnrechnungDetail.php @@ -5,17 +5,17 @@ class reviewAnrechnungDetail extends Auth_Controller { const BERECHTIGUNG_ANRECHNUNG_EMPFEHLEN = 'lehre/anrechnung_empfehlen'; - + const APPROVE_ANRECHNUNG_URI = '/lehre/anrechnung/ApproveAnrechnungUebersicht'; - + const ANRECHNUNGSTATUS_PROGRESSED_BY_STGL = 'inProgressDP'; const ANRECHNUNGSTATUS_PROGRESSED_BY_KF = 'inProgressKF'; const ANRECHNUNGSTATUS_PROGRESSED_BY_LEKTOR = 'inProgressLektor'; const ANRECHNUNGSTATUS_APPROVED = 'approved'; const ANRECHNUNGSTATUS_REJECTED = 'rejected'; - + const ANRECHNUNG_NOTIZTITEL_NOTIZ_BY_LEKTOR = 'AnrechnungNotizLektor'; - + public function __construct() { // Set required permissions @@ -27,27 +27,27 @@ class reviewAnrechnungDetail extends Auth_Controller 'dontRecommend' => 'lehre/anrechnung_empfehlen:rw' ) ); - + // Load models $this->load->model('education/Anrechnung_model', 'AnrechnungModel'); $this->load->model('education/Anrechnungstatus_model', 'AnrechnungstatusModel'); $this->load->model('content/DmsVersion_model', 'DmsVersionModel'); $this->load->model('education/Lehrveranstaltung_model', 'LehrveranstaltungModel'); - $this->load->model('crm/Prestudent_model', 'PrestudentModel'); + $this->load->model('crm/Student_model', 'StudentModel'); $this->load->model('person/Notiz_model', 'NotizModel'); $this->load->model('person/Person_model', 'PersonModel'); - + // Load libraries $this->load->library('WidgetLib'); $this->load->library('PermissionLib'); $this->load->library('AnrechnungLib'); $this->load->library('DmsLib'); - + // Load helpers $this->load->helper('form'); $this->load->helper('url'); $this->load->helper('hlp_sancho_helper'); - + // Load language phrases $this->loadPhrases( array( @@ -59,30 +59,30 @@ class reviewAnrechnungDetail extends Auth_Controller 'table' ) ); - + $this->_setAuthUID(); - + $this->setControllerId(); } - + public function index() { $anrechnung_id = $this->input->get('anrechnung_id'); - + if (!is_numeric($anrechnung_id)) { show_error('Missing correct parameter'); } - + // Check if user is entitled to read this Anrechnung self::_checkIfEntitledToReadAnrechnung($anrechnung_id); - + // Get Anrechung data if (!$anrechnungData = getData($this->anrechnunglib->getAnrechnungData($anrechnung_id))) { show_error('Missing data for Anrechnung.'); } - + // Get Empfehlung data if(!$empfehlungData = getData($this->anrechnunglib->getEmpfehlungData($anrechnung_id))) { @@ -91,17 +91,17 @@ class reviewAnrechnungDetail extends Auth_Controller $viewData = array( 'antragData' => $this->anrechnunglib->getAntragData( - $student_uid = $this->PrestudentModel->getUID($anrechnungData->prestudent_id), + $student_uid = $this->StudentModel->getUID($anrechnungData->prestudent_id), $anrechnungData->studiensemester_kurzbz, $anrechnungData->lehrveranstaltung_id ), 'anrechnungData' => $anrechnungData, 'empfehlungData' => $empfehlungData ); - + $this->load->view('lehre/anrechnung/reviewAnrechnungDetail.php', $viewData); } - + /** * Recommend Anrechnungen. */ @@ -113,14 +113,14 @@ class reviewAnrechnungDetail extends Auth_Controller { return $this->outputJsonError('Fehler beim Übertragen der Daten.'); } - + // Get statusbezeichnung for 'inProgressDP' $this->AnrechnungstatusModel->addSelect('bezeichnung_mehrsprachig'); $inProgressDP = getData($this->AnrechnungstatusModel->load('inProgressDP'))[0]; $inProgressDP = getUserLanguage() == 'German' ? $inProgressDP->bezeichnung_mehrsprachig[0] : $inProgressDP->bezeichnung_mehrsprachig[1]; - + if (!$person = getData($this->PersonModel->getByUID($this->_uid))[0]) { show_error('Failed retrieving person data'); @@ -141,7 +141,7 @@ class reviewAnrechnungDetail extends Auth_Controller ); } } - + // Output json to ajax if (isset($json) && !isEmptyArray($json)) { @@ -161,31 +161,31 @@ class reviewAnrechnungDetail extends Auth_Controller return $this->outputJsonError('Empfehlungen wurden nicht durchgeführt'); } } - + /** * Dont recommend Anrechnungen. */ public function dontRecommend() { $data = $this->input->post('data'); - + if(isEmptyArray($data)) { return $this->outputJsonError('Fehler beim Übertragen der Daten.'); } - + // Get statusbezeichnung for 'inProgressDP' $this->AnrechnungstatusModel->addSelect('bezeichnung_mehrsprachig'); $inProgressDP = getData($this->AnrechnungstatusModel->load('inProgressDP'))[0]; $inProgressDP = getUserLanguage() == 'German' ? $inProgressDP->bezeichnung_mehrsprachig[0] : $inProgressDP->bezeichnung_mehrsprachig[1]; - + if (!$person = getData($this->PersonModel->getByUID($this->_uid))[0]) { show_error('Failed retrieving person data'); } - + foreach ($data as $item) { // Approve Anrechnung @@ -201,7 +201,7 @@ class reviewAnrechnungDetail extends Auth_Controller ); } } - + // Output json to ajax if (isset($json) && !isEmptyArray($json)) { @@ -210,7 +210,7 @@ class reviewAnrechnungDetail extends Auth_Controller { show_error('Failed sending emails'); } - + return $this->outputJsonSuccess($json); } else @@ -218,7 +218,7 @@ class reviewAnrechnungDetail extends Auth_Controller return $this->outputJsonError('Empfehlungen wurden nicht durchgeführt'); } } - + /** * Download and open uploaded document (Nachweisdokument). */ @@ -230,24 +230,24 @@ class reviewAnrechnungDetail extends Auth_Controller { show_error('Wrong parameter'); } - + // Check if user is entitled to read dms doc self::_checkIfEntitledToReadDMSDoc($dms_id); - + $this->dmslib->download($dms_id); } - - + + /** * Retrieve the UID of the logged user and checks if it is valid */ private function _setAuthUID() { $this->_uid = getAuthUID(); - + if (!$this->_uid) show_error('User authentification failed'); } - + /** * Check if user is entitled to read dms doc * @param $dms_id @@ -255,28 +255,28 @@ class reviewAnrechnungDetail extends Auth_Controller private function _checkIfEntitledToReadAnrechnung($anrechnung_id) { $result = $this->AnrechnungModel->load($anrechnung_id); - + if(!$result = getData($result)[0]) { show_error('Failed retrieving Anrechnung'); } - + $result = $this->LehrveranstaltungModel ->getLecturersByLv($result->studiensemester_kurzbz, $result->lehrveranstaltung_id); - + if($result = getData($result)) { $entitled_lector_arr = array_column($result, 'uid'); - + if (in_array($this->_uid, $entitled_lector_arr)) { return; } } - + show_error('You are not entitled to read this document'); } - + /** * Check if user is entitled to read dms doc * @param $dms_id @@ -284,28 +284,28 @@ class reviewAnrechnungDetail extends Auth_Controller private function _checkIfEntitledToReadDMSDoc($dms_id) { $result = $this->AnrechnungModel->loadWhere(array('dms_id' => $dms_id)); - + if(!$result = getData($result)[0]) { show_error('Failed retrieving Anrechnung'); } - + $result = $this->LehrveranstaltungModel ->getLecturersByLv($result->studiensemester_kurzbz, $result->lehrveranstaltung_id); - + if($result = getData($result)) { $entitled_lector_arr = array_column($result, 'uid'); - + if (in_array($this->_uid, $entitled_lector_arr)) { return; } } - + show_error('You are not entitled to read this document'); } - + /** * Send mails to STGL (if not present then to STGL assistance) * @param $mail_params @@ -316,36 +316,36 @@ class reviewAnrechnungDetail extends Auth_Controller { // Get studiengaenge $studiengang_kz_arr = array(); - + foreach ($mail_params as $item) { $this->AnrechnungModel->addSelect('studiengang_kz'); $this->AnrechnungModel->addJoin('public.tbl_prestudent', 'prestudent_id'); - + $studiengang_kz_arr[]= $this->AnrechnungModel->load($item['anrechnung_id'])->retval[0]->studiengang_kz; } - + $studiengang_kz_arr = array_unique($studiengang_kz_arr); - + // Send mail to STGL of each studiengang foreach ($studiengang_kz_arr as $studiengang_kz) { // Get STGL mail address, if available, otherwise get assistance mail address list ($to, $vorname) = $this->_getSTGLMailAddress($studiengang_kz); - + // Get full name of lector $this->load->model('person/Person_model', 'PersonModel'); if (!$lector_name = getData($this->PersonModel->getFullName($this->_uid))) { show_error ('Failed retrieving person'); } - + // Link to Antrag genehmigen $url = CIS_ROOT. 'cis/index.php?menu='. CIS_ROOT. 'cis/menu.php?content_id=&content='. CIS_ROOT. index_page(). self::APPROVE_ANRECHNUNG_URI; - + // Prepare mail content $body_fields = array( 'vorname' => $vorname, @@ -353,7 +353,7 @@ class reviewAnrechnungDetail extends Auth_Controller 'empfehlung' => $empfehlung ? 'positive' : 'negative', 'link' => anchor($url, 'Anrechnungsanträge Übersicht') ); - + sendSanchoMail( 'AnrechnungEmpfehlungAbgeben', $body_fields, @@ -361,16 +361,16 @@ class reviewAnrechnungDetail extends Auth_Controller 'Anerkennung nachgewiesener Kenntnisse: Empfehlung wurde abgegeben' ); } - + return true; } - + // Get STGL mail address, if available, otherwise get assistance mail address private function _getSTGLMailAddress($stg_kz) { $this->load->model('organisation/Studiengang_model', 'StudiengangModel'); $result = $this->StudiengangModel->getLeitung($stg_kz); - + // Get STGL mail address, if available if (hasData($result)) { @@ -383,7 +383,7 @@ class reviewAnrechnungDetail extends Auth_Controller else { $result = $this->StudiengangModel->load($stg_kz); - + if (hasData($result)) { return array( @@ -393,5 +393,5 @@ class reviewAnrechnungDetail extends Auth_Controller } } } - -} \ No newline at end of file + +} diff --git a/application/models/crm/Prestudent_model.php b/application/models/crm/Prestudent_model.php index 4ac78cb35..2e014800c 100644 --- a/application/models/crm/Prestudent_model.php +++ b/application/models/crm/Prestudent_model.php @@ -13,27 +13,6 @@ class Prestudent_model extends DB_Model $this->load->model('crm/prestudentstatus_model', 'PrestudentstatusModel'); } - - /** - * Get students UID by PrestudentID. - * @param $prestudent_id - * @return mixed - */ - public function getUID($prestudent_id) - { - $this->addSelect('uid'); - $this->addJoin('public.tbl_person', 'person_id'); - $this->addJoin('public.tbl_benutzer ', 'person_id'); - - $result = $this->load($prestudent_id); - - if (!hasData($result)) - { - show_error('Failed getting UID by prestudent_id'); - } - - return $result->retval[0]->uid; - } /** * getLastStatuses diff --git a/application/models/crm/Student_model.php b/application/models/crm/Student_model.php index 532658208..4d1c84521 100644 --- a/application/models/crm/Student_model.php +++ b/application/models/crm/Student_model.php @@ -45,4 +45,25 @@ class Student_model extends DB_Model $max += 1; return $matrikelnummer.sprintf("%03d", $max); } + + /** + * Get students UID by PrestudentID. + * @param $prestudent_id + * @return mixed + */ + public function getUID($prestudent_id) + { + $this->addSelect('student_uid'); + + $result = $this->loadWhere( + array('prestudent_id' => $prestudent_id) + ); + + if (!hasData($result)) + { + show_error('Failed getting UID by prestudent_id'); + } + + return $result->retval[0]->student_uid; + } }