diff --git a/application/controllers/system/infocenter/InfoCenter.php b/application/controllers/system/infocenter/InfoCenter.php index 7d81cc021..4bafe591b 100644 --- a/application/controllers/system/infocenter/InfoCenter.php +++ b/application/controllers/system/infocenter/InfoCenter.php @@ -111,10 +111,11 @@ class InfoCenter extends VileSci_Controller show_error('person id is not numeric!'); $personexists = $this->PersonModel->load($person_id); + if(isError($personexists)) show_error($personexists->retval); - if (empty($personexists->retval[0])) + if (empty($personexists->retval)) show_error('person does not exist!'); //mark person as locked for editing @@ -211,6 +212,29 @@ class InfoCenter extends VileSci_Controller ->set_output(json_encode($jsonoutput)); } + /** + * Gets Zugangsvoraussetzungen for a prestudents as a description text + * @param $prestudent_id + */ + public function getZgvInfoForPrestudent($prestudent_id) + { + $studienordnung = $this->PrestudentstatusModel->getStudienordnungWithZgvText($prestudent_id); + + $prestudentdata = $this->_getPersonAndStudiengangFromPrestudent($prestudent_id); + $studiengangbezeichnung = $prestudentdata['studiengang_bezeichnung']; + + $data = array('studiengang_bezeichnung' => $studiengangbezeichnung, 'data' => null); + + if (hasData($studienordnung)) + { + $data['data'] = $studienordnung->retval[0]->data; + } + + $this->load->view('system/infocenter/studiengangZgvInfo.php', + $data + ); + } + /** * Saves a zgv for a prestudent. includes Ort, Datum, Nation for bachelor and master. * @param $prestudent_id @@ -279,7 +303,7 @@ class InfoCenter extends VileSci_Controller } //check if still Interessent and not freigegeben yet - if ($lastStatus->retval[0]->status_kurzbz === 'Interessent' && !isset($lastStatus->retval[0]->bestaetigtam)) + if (count($lastStatus->retval) > 0 && $lastStatus->retval[0]->status_kurzbz === 'Interessent' && !isset($lastStatus->retval[0]->bestaetigtam)) { $result = $this->PrestudentstatusModel->insert( array( @@ -327,6 +351,11 @@ class InfoCenter extends VileSci_Controller { $lastStatus = $this->PrestudentstatusModel->getLastStatus($prestudent_id); + if (isError($lastStatus)) + { + show_error($lastStatus->retval); + } + if (count($lastStatus->retval) > 0) { $lastStatus = $lastStatus->retval[0]; @@ -354,10 +383,34 @@ class InfoCenter extends VileSci_Controller show_error($result->retval); } - $this->_sendFreigabeMail($prestudent_id); + $this->load->model('crm/dokumentprestudent_model', 'DokumentprestudentModel'); $logdata = $this->_getPersonAndStudiengangFromPrestudent($prestudent_id); + //set documents which have been formal geprüft to accepted + $result = $this->AkteModel->loadWhere(array('person_id' => $logdata['person_id'], 'formal_geprueft_amum !=' => NULL)); + + if (isError($result)) + { + show_error($result->retval); + } + + $dokument_kurzbzs = array(); + + foreach ($result->retval as $akte) + { + $dokument_kurzbzs[] = $akte->dokument_kurzbz; + } + + $result = $this->DokumentprestudentModel->setAcceptedDocuments($prestudent_id, $dokument_kurzbzs); + + if (isError($result)) + { + show_error($result->retval); + } + + $this->_sendFreigabeMail($prestudent_id); + $this->_log($logdata['person_id'], 'freigegeben', array($prestudent_id, $logdata['studiengang_kurzbz'])); } } @@ -821,8 +874,9 @@ class InfoCenter extends VileSci_Controller $person_id = $prestudent->retval[0]->person_id; $studiengang_kurzbz = $prestudent->retval[0]->studiengang; + $studiengang_bezeichnung = $prestudent->retval[0]->studiengangbezeichnung; - return array('person_id' => $person_id, 'studiengang_kurzbz' => $studiengang_kurzbz); + return array('person_id' => $person_id, 'studiengang_kurzbz' => $studiengang_kurzbz, 'studiengang_bezeichnung' => $studiengang_bezeichnung); } /** diff --git a/application/models/crm/Prestudent_model.php b/application/models/crm/Prestudent_model.php index 2051c1666..2473099eb 100644 --- a/application/models/crm/Prestudent_model.php +++ b/application/models/crm/Prestudent_model.php @@ -229,10 +229,34 @@ class Prestudent_model extends DB_Model { $this->load->model('system/sprache_model', 'SpracheModel'); $language = $this->SpracheModel->load($lastStatus->retval[0]->sprache); + if ($language->error) return error($language->retval); + if (count($language->retval) > 0) $lastStatus->retval[0]->sprachedetails = $language->retval[0]; + + //get Bewerbungsfrist + $this->load->model('crm/bewerbungstermine_model', 'BewerbungstermineModel'); + $this->BewerbungstermineModel->addSelect('ende, nachfrist_ende'); + $this->BewerbungstermineModel->addOrder('ende', 'DESC'); + $this->BewerbungstermineModel->addLimit(1); + $bewerbungstermin = $this->BewerbungstermineModel->loadWhere( + array( + 'studienplan_id' => $lastStatus->retval[0]->studienplan_id, + 'studiensemester_kurzbz' => $lastStatus->retval[0]->studiensemester_kurzbz, + 'studiengang_kz' => $prestudent->retval[0]->studiengang_kz + ) + ); + if ($bewerbungstermin->error) + return error($bewerbungstermin->retval); + + if (count($bewerbungstermin->retval) > 0) + { + $lastStatus->retval[0]->bewerbungstermin = $bewerbungstermin->retval[0]->ende; + $lastStatus->retval[0]->bewerbungsnachfrist = $bewerbungstermin->retval[0]->nachfrist_ende; + } + $prestudent->retval[0]->prestudentstatus = $lastStatus->retval[0]; } diff --git a/application/models/crm/Prestudentstatus_model.php b/application/models/crm/Prestudentstatus_model.php index 27f09289a..f2ba9ee0a 100644 --- a/application/models/crm/Prestudentstatus_model.php +++ b/application/models/crm/Prestudentstatus_model.php @@ -119,4 +119,40 @@ class Prestudentstatus_model extends DB_Model return $this->execQuery($query, $parametersArray); } + + /** + * Gets Studienordnung for last status of Prestudent + * @param $prestudent_id + * @return array + */ + public function getStudienordnungWithZgvText($prestudent_id) + { + $lastStatus = $this->getLastStatus($prestudent_id); + + if ($lastStatus->error) + { + return error($lastStatus->retval); + } + + if (count($lastStatus->retval) > 0) + { + $lastStatus = $lastStatus->retval[0]; + + $this->addJoin('lehre.tbl_studienplan', 'studienplan_id'); + $this->addJoin('lehre.tbl_studienordnung', 'studienordnung_id'); + $this->addJoin('addon.tbl_stgv_zugangsvoraussetzung', 'studienordnung_id'); + return $this->loadWhere( + array( + 'public.tbl_prestudentstatus.prestudent_id' => $lastStatus->prestudent_id, + 'public.tbl_prestudentstatus.status_kurzbz' => $lastStatus->status_kurzbz, + 'public.tbl_prestudentstatus.studiensemester_kurzbz' => $lastStatus->studiensemester_kurzbz, + 'public.tbl_prestudentstatus.ausbildungssemester' => $lastStatus->ausbildungssemester + ) + ); + } + else + { + return sucess(array()); + } + } } diff --git a/application/views/system/infocenter/stammdaten.php b/application/views/system/infocenter/stammdaten.php index c3b14bd3e..daf0b7d24 100755 --- a/application/views/system/infocenter/stammdaten.php +++ b/application/views/system/infocenter/stammdaten.php @@ -91,7 +91,7 @@
-
+
zugangscode)): ?> -
+ diff --git a/application/views/system/infocenter/studiengangZgvInfo.php b/application/views/system/infocenter/studiengangZgvInfo.php new file mode 100644 index 000000000..92f9d08e1 --- /dev/null +++ b/application/views/system/infocenter/studiengangZgvInfo.php @@ -0,0 +1,37 @@ +load->view( + 'templates/FHC-Header', + array( + 'title' => 'ZGV Info', + 'jquery' => true, + 'bootstrap' => true, + 'fontawesome' => true, + 'sbadmintemplate' => true, + 'customCSSs' => 'public/css/sbadmin2/admintemplate_contentonly.css' + ) +); +?> + +
+
+
+
+
+ +
+
+
+ + Keine Zugangsvoraussetzungen für den Studiengang definiert + +
+
+
+
+ + +load->view('templates/FHC-Footer'); ?> \ No newline at end of file diff --git a/application/views/system/infocenter/zgvpruefungen.php b/application/views/system/infocenter/zgvpruefungen.php index 2e98005b8..c8091a5dc 100644 --- a/application/views/system/infocenter/zgvpruefungen.php +++ b/application/views/system/infocenter/zgvpruefungen.php @@ -9,18 +9,29 @@
-
+ - prestudentstatus->status_kurzbz) && $zgvpruefung->prestudentstatus->status_kurzbz === 'Interessent' && !$infoonly): ?> -
+ prestudentstatus->status_kurzbz) && $zgvpruefung->prestudentstatus->status_kurzbz === 'Interessent'/* && !$infoonly*/): ?> + + prestudentstatus->bestaetigtam)): ?> +
+ + An Studiengang freigegeben +
+ + +
prestudentstatus->bewerbung_abgeschicktamum) ? '' : ''); ?> + prestudentstatus->bewerbungsnachfrist) ? ' | Nachfrist: '. date_format(date_create($zgvpruefung->prestudentstatus->bewerbungsnachfrist), 'd.m.Y') : ''); ?> + prestudentstatus->bewerbungstermin) ? ' | Bewerbungsfrist: '. date_format(date_create($zgvpruefung->prestudentstatus->bewerbungstermin), 'd.m.Y') : ''); ?>
- + +
- - zgv_bez; - else +
+ +
+ + zgv_bez; ?> +
+ +
+ +
+ + +
+ widgetlib->widget( 'Zgv_widget', array(DropdownWidget::SELECTED_ELEMENT => $zgvpruefung->zgv_code), @@ -188,12 +213,12 @@
-
+
-
+
@@ -331,8 +356,7 @@ Interessentenstatus bestätigt und
deren Zgvdaten können im - Infocenter nicht mehr bearbeitet oder - freigegeben + Infocenter nicht mehr bearbeitet werden.
Alle nicht gespeicherten Zgvdaten gehen verloren. diff --git a/public/js/infocenter/infocenterDetails.js b/public/js/infocenter/infocenterDetails.js index bb67380af..e5c966f7b 100644 --- a/public/js/infocenter/infocenterDetails.js +++ b/public/js/infocenter/infocenterDetails.js @@ -79,6 +79,14 @@ $(document).ready( } ); + //show popup with zgvinfo + $(".zgvinfo").click(function () + { + var prestudentid = this.id.substr(this.id.indexOf("_") + 1); + openZgvInfoForPrestudent(prestudentid); + } + ); + //prevent opening modal when Statusgrund not chosen $(".absageModal").on('show.bs.modal', function (e) { @@ -119,7 +127,6 @@ $(document).ready( } ); - //update notiz - autofill notizform $(document).on("click", "#notiztable tbody tr", function () { @@ -145,6 +152,15 @@ $(document).ready( }); +function openZgvInfoForPrestudent(prestudent_id) +{ + var screenwidth = screen.width; + var popupwidth = 760; + var marginleft = screenwidth - popupwidth; + console.log(marginleft); + window.open("../getZgvInfoForPrestudent/" + prestudent_id, "_blank","resizable=yes,scrollbars=yes,width="+popupwidth+",height="+screen.height+",left="+marginleft); +} + // ----------------------------------------------------------------------------------------------------------------- // ajax calls