diff --git a/application/controllers/system/infocenter/InfoCenter.php b/application/controllers/system/infocenter/InfoCenter.php index 92636e6df..287dbf515 100644 --- a/application/controllers/system/infocenter/InfoCenter.php +++ b/application/controllers/system/infocenter/InfoCenter.php @@ -1374,7 +1374,7 @@ class InfoCenter extends Auth_Controller { if (isset($prestudentstatus->bestaetigtam)) { - //if statusgrund set - RTfreigabe, otherwise Stgfreigabe + //if statusgrund set - freigegeben for Studiengang, otherwise freigegeben for RT if (isset($prestudentstatus->statusgrund_id)) { if (isset($prestudentstatus->bezeichnung_statusgrund[0]) @@ -1388,23 +1388,37 @@ class InfoCenter extends Auth_Controller $zgvpruefung->isRtFreigegeben = true; } } - } + } - //application priority change possible? - $zgvpruefung->changeup = false; - $zgvpruefung->changedown = false; + //application priority change possible? + $zgvpruefung->changeup = false; + $zgvpruefung->changedown = false; + $zgvpruefung->hasBewerber = false; - if (isset($zgvpruefung->prestudentstatus->status_kurzbz) && $zgvpruefung->prestudentstatus->status_kurzbz == self::INTERESSENTSTATUS) - { - if (isset($zgvpruefung->prestudentstatus->studiensemester_kurzbz)) - { - $studiensemester = $zgvpruefung->prestudentstatus->studiensemester_kurzbz; - $zgvpruefung->changeup = $this->PrestudentModel->checkPrioChange($zgvpruefung->prestudent_id, $studiensemester, -1); - $zgvpruefung->changedown = $this->PrestudentModel->checkPrioChange($zgvpruefung->prestudent_id, $studiensemester, 1); - } - } + if (isset($zgvpruefung->prestudentstatus->status_kurzbz) && $zgvpruefung->prestudentstatus->status_kurzbz == self::INTERESSENTSTATUS) + { + if (isset($zgvpruefung->prestudentstatus->studiensemester_kurzbz)) + { + $studiensemester = $zgvpruefung->prestudentstatus->studiensemester_kurzbz; + //show warning if there is already another bewerber (RT result already exists) + $bewerber = $this->PersonModel->hasBewerber($person_id, $studiensemester, 'b'); - $zgvpruefungen[] = $zgvpruefung; + if (hasData($bewerber)) + { + $bewerbercnt = getData($bewerber); + + if (is_numeric($bewerbercnt[0]->anzahl_bewerber) && $bewerbercnt[0]->anzahl_bewerber > 0) + { + $zgvpruefung->hasBewerber = true; + } + } + + $zgvpruefung->changeup = $this->PrestudentModel->checkPrioChange($zgvpruefung->prestudent_id, $studiensemester, -1); + $zgvpruefung->changedown = $this->PrestudentModel->checkPrioChange($zgvpruefung->prestudent_id, $studiensemester, 1); + } + } + + $zgvpruefungen[] = $zgvpruefung; } $this->_sortPrestudents($zgvpruefungen); diff --git a/application/controllers/system/messages/MessageClient.php b/application/controllers/system/messages/MessageClient.php index a0cc5c518..5adb49296 100644 --- a/application/controllers/system/messages/MessageClient.php +++ b/application/controllers/system/messages/MessageClient.php @@ -34,7 +34,7 @@ class MessageClient extends FHC_Controller public function read() { // Loads the view to read messages - $this->load->view('system/messages/ajaxRead'); + $this->load->view('system/messages/ajaxRead', $this->CLMessagesModel->prepareAjaxRead()); } /** diff --git a/application/models/CL/Messages_model.php b/application/models/CL/Messages_model.php index 119f9b37c..67e7ff969 100644 --- a/application/models/CL/Messages_model.php +++ b/application/models/CL/Messages_model.php @@ -91,6 +91,23 @@ class Messages_model extends CI_Model } } + /** + * Prepares data for the view system/messages/ajaxRead + */ + public function prepareAjaxRead() + { + $psResult = $this->PrestudentModel->loadWhere(array('person_id' => getAuthPersonId())); + + if (isError($psResult)) show_error('An error occurred while loading this page, please contact the site administrator'); + + if (hasData($psResult)) + { + return array('writeButton' => ''); + } + + return array('writeButton' => ''); + } + /** * Prepares data for the view system/messages/ajaxWrite */ @@ -267,15 +284,10 @@ class Messages_model extends CI_Model $sender = getData($senderResult)[0]; // Found sender data - // Check if the receiver is an employee - $isEmployee = false; // not by default - $isEmployeeResult = $this->MessageTokenModel->isEmployee($message->receiver_id); - if (isError($isEmployeeResult)) show_error(getError($isEmployeeResult)); - if (hasData($isEmployeeResult)) $isEmployee = true; - - // If the sender is not an employee and are present configurations to reply + // If the sender is not the system sender and are present configurations to reply $hrefReply = ''; - if (!$isEmployee && !isEmptyString($this->config->item(MessageLib::CFG_REDIRECT_VIEW_MESSAGE_URL))) + if ($message->sender_id != $this->config->item(MessageLib::CFG_SYSTEM_PERSON_ID) + && !isEmptyString($this->config->item(MessageLib::CFG_REDIRECT_VIEW_MESSAGE_URL))) { $hrefReply = $this->config->item(MessageLib::CFG_MESSAGE_SERVER). $this->config->item(MessageLib::CFG_REDIRECT_VIEW_MESSAGE_URL). diff --git a/application/views/system/infocenter/infocenterFreigegebenData.php b/application/views/system/infocenter/infocenterFreigegebenData.php index 729fabb04..aab69b651 100644 --- a/application/views/system/infocenter/infocenterFreigegebenData.php +++ b/application/views/system/infocenter/infocenterFreigegebenData.php @@ -185,6 +185,25 @@ ORDER BY pss.datum DESC, pss.insertamum DESC, pss.ext_id DESC LIMIT 1 ) AS "ReihungstestApplied", + ( + SELECT rtp.datum + FROM public.tbl_prestudentstatus pss + JOIN public.tbl_prestudent ps USING(prestudent_id) + LEFT JOIN ( + SELECT rtp.person_id, + rt.studiensemester_kurzbz, + rtp.teilgenommen, + rt.datum + FROM public.tbl_rt_person rtp + JOIN tbl_reihungstest rt ON(rtp.rt_id = rt.reihungstest_id) + WHERE rt.stufe = 1 + ) rtp ON(rtp.person_id = ps.person_id AND rtp.studiensemester_kurzbz = pss.studiensemester_kurzbz) + WHERE pss.status_kurzbz = '.$INTERESSENT_STATUS.' + AND ps.person_id = p.person_id + AND pss.studiensemester_kurzbz = '.$STUDIENSEMESTER.' + ORDER BY pss.datum DESC, pss.insertamum DESC, pss.ext_id DESC + LIMIT 1 + ) AS "ReihungstestDate", ( SELECT ps.zgvnation FROM public.tbl_prestudent ps @@ -258,6 +277,7 @@ 'Statusgrund', 'Reihungstest angetreten', 'Reihungstest angemeldet', + 'Reihungstest date', 'ZGV Nation' ), 'formatRow' => function($datasetRaw) { @@ -337,6 +357,16 @@ { $datasetRaw->{'ReihungstestApplied'} = 'Nein'; } + + if ($datasetRaw->{'ReihungstestDate'} == null) + { + $datasetRaw->{'ReihungstestDate'} = '-'; + } + else + { + $datasetRaw->{'ReihungstestDate'} = date_format(date_create($datasetRaw->{'ReihungstestDate'}),'Y-m-d'); + } + if ($datasetRaw->{'ZGVNation'} == null) { $datasetRaw->{'ZGVNation'} = '-'; diff --git a/application/views/system/infocenter/zgvpruefungen.php b/application/views/system/infocenter/zgvpruefungen.php index 86344d06b..a1a1e68b3 100644 --- a/application/views/system/infocenter/zgvpruefungen.php +++ b/application/views/system/infocenter/zgvpruefungen.php @@ -34,12 +34,14 @@ //set bootstrap columns for zgv form $columns = array(3, 3, 3, 3); - $headercolumns = array(7, 5); if (!$infoonly && isset($zgvpruefung->prestudentstatus->bewerbungsnachfrist) && isset($zgvpruefung->prestudentstatus->bewerbungstermin)) { - $headercolumns[0] = 4; - $headercolumns[1] = 8; + $headercolumns = $zgvpruefung->hasBewerber === true ? array(3, 5, 4) : array(4, 8); } + else + { + $headercolumns = $zgvpruefung->hasBewerber === true ? array(4, 4, 4) : array(7, 5); + } if (!$first) echo '
'; @@ -68,6 +70,11 @@ ?> + hasBewerber === true): ?> +
+ p->t('infocenter', 'rtErgebnisExistiert') ?> +
+ changeup) && $zgvpruefung->changeup === true; $changedown = isset($zgvpruefung->changedown) && $zgvpruefung->changedown === true; @@ -77,7 +84,7 @@ > prestudentstatus->bestaetigtam)): ?> - + prestudentstatus->statusgrund_id)) echo $this->p->t('global', 'anStudiengangFreigegeben').(isset($zgvpruefung->prestudentstatus->bezeichnung_statusgrund[0]) ? ' ('.$zgvpruefung->prestudentstatus->bezeichnung_statusgrund[0].')' : ''); else @@ -85,9 +92,9 @@ ?> - p->t('infocenter', 'bewerbung')) . ' ' . $this->p->t('global', 'abgeschickt') . ': '.(isset($zgvpruefung->prestudentstatus->bewerbung_abgeschicktamum) ? '' : ''); ?> - prestudentstatus->bewerbungsnachfrist) ? ' | ' . $this->p->t('infocenter', 'nachfrist') . ': ' . date_format(date_create($zgvpruefung->prestudentstatus->bewerbungsnachfrist), 'd.m.Y') : ''); ?> - prestudentstatus->bewerbungstermin) ? ' | ' . $this->p->t('infocenter', 'bewerbungsfrist') . ': ' . date_format(date_create($zgvpruefung->prestudentstatus->bewerbungstermin), 'd.m.Y') : ''); ?> + p->t('infocenter', 'bewerbung')) . ' ' . $this->p->t('global', 'abgeschickt') . ': '.(isset($zgvpruefung->prestudentstatus->bewerbung_abgeschicktamum) ? '' : ''); ?> + prestudentstatus->bewerbungsnachfrist) ? ' | ' . $this->p->t('infocenter', 'nachfrist') . ': ' . date_format(date_create($zgvpruefung->prestudentstatus->bewerbungsnachfrist), 'd.m.Y') : ''); ?> + prestudentstatus->bewerbungstermin) ? ' | ' . $this->p->t('infocenter', 'bewerbungsfrist') . ': ' . date_format(date_create($zgvpruefung->prestudentstatus->bewerbungstermin), 'd.m.Y') : ''); ?> p->t('infocenter', 'priorisierung')) . ': '; @@ -472,10 +479,10 @@ prestudentstatus->status_kurzbz) && $zgvpruefung->prestudentstatus->status_kurzbz === 'Interessent'): ?> -