From 2e30841b0daa98a1b8d179833f5116c00e81dc15 Mon Sep 17 00:00:00 2001 From: alex Date: Tue, 28 Jan 2020 17:21:47 +0100 Subject: [PATCH] - added UDF prestudent dropdown to infocenterDetails - crm/Prestudent_model: improved code, e.g. replaced ->retval --- .../system/infocenter/InfoCenter.php | 24 +++++--- application/models/crm/Prestudent_model.php | 56 +++++++++++++------ .../models/organisation/Studienjahr_model.php | 2 +- .../system/infocenter/infocenterDetails.php | 1 + .../views/system/infocenter/zgvpruefungen.php | 48 ++++++++++------ public/js/infocenter/infocenterDetails.js | 36 +++++++----- 6 files changed, 108 insertions(+), 59 deletions(-) diff --git a/application/controllers/system/infocenter/InfoCenter.php b/application/controllers/system/infocenter/InfoCenter.php index d085e7db0..3f65ed605 100644 --- a/application/controllers/system/infocenter/InfoCenter.php +++ b/application/controllers/system/infocenter/InfoCenter.php @@ -1271,7 +1271,7 @@ class InfoCenter extends Auth_Controller show_error(getError($prestudentWithZgv)); } - $zgvpruefung = $prestudentWithZgv->retval[0]; + $zgvpruefung = getData($prestudentWithZgv); if (isset($zgvpruefung->prestudentstatus)) { @@ -1296,11 +1296,15 @@ class InfoCenter extends Auth_Controller $zgvpruefung->isRtFreigegeben = false; $zgvpruefung->isStgFreigegeben = false; $zgvpruefung->sendStgFreigabeMsg = true;//wether Stgudiengangfreigabemessage can be sent (for "exceptions", Studiengänge with no message sending) - $this->PrestudentstatusModel->addSelect('bestaetigtam, statusgrund_id, tbl_status_grund.bezeichnung_mehrsprachig AS bezeichnung_statusgrund'); - $this->PrestudentstatusModel->addJoin('public.tbl_status_grund', 'statusgrund_id', 'LEFT'); - $isFreigegeben = $this->PrestudentstatusModel->loadWhere(array('studiensemester_kurzbz' => $zgvpruefung->prestudentstatus->studiensemester_kurzbz, - 'tbl_prestudentstatus.status_kurzbz' => self::INTERESSENTSTATUS, 'prestudent_id' => $prestudent->prestudent_id)); + $isFreigegeben = null; + if (isset($zgvpruefung->prestudentstatus->studiensemester_kurzbz)) + { + $this->PrestudentstatusModel->addSelect('bestaetigtam, statusgrund_id, tbl_status_grund.bezeichnung_mehrsprachig AS bezeichnung_statusgrund'); + $this->PrestudentstatusModel->addJoin('public.tbl_status_grund', 'statusgrund_id', 'LEFT'); + $isFreigegeben = $this->PrestudentstatusModel->loadWhere(array('studiensemester_kurzbz' => $zgvpruefung->prestudentstatus->studiensemester_kurzbz, + 'tbl_prestudentstatus.status_kurzbz' => self::INTERESSENTSTATUS, 'prestudent_id' => $prestudent->prestudent_id)); + } if (hasData($isFreigegeben)) { @@ -1457,9 +1461,10 @@ class InfoCenter extends Auth_Controller show_error(getError($prestudent)); } - $person_id = $prestudent->retval[0]->person_id; - $studiengang_kurzbz = $prestudent->retval[0]->studiengang; - $studiengang_bezeichnung = $prestudent->retval[0]->studiengangbezeichnung; + $prestudentdata = getData($prestudent); + $person_id = $prestudentdata->person_id; + $studiengang_kurzbz = $prestudentdata->studiengang; + $studiengang_bezeichnung = $prestudentdata->studiengangbezeichnung; return array('person_id' => $person_id, 'studiengang_kurzbz' => $studiengang_kurzbz, 'studiengang_bezeichnung' => $studiengang_bezeichnung); } @@ -1502,7 +1507,8 @@ class InfoCenter extends Auth_Controller private function _sendFreigabeMail($prestudent_id) { //get data - $prestudent = $this->PrestudentModel->getPrestudentWithZgv($prestudent_id)->retval[0]; + $prestudent = $this->PrestudentModel->getPrestudentWithZgv($prestudent_id); + $prestudent = getData($prestudent); $prestudentstatus = $prestudent->prestudentstatus; $person_id = $prestudent->person_id; $person = $this->PersonModel->getPersonStammdaten($person_id, true)->retval; diff --git a/application/models/crm/Prestudent_model.php b/application/models/crm/Prestudent_model.php index d5c52a3c3..250b68099 100644 --- a/application/models/crm/Prestudent_model.php +++ b/application/models/crm/Prestudent_model.php @@ -209,6 +209,9 @@ class Prestudent_model extends DB_Model if (!hasData($prestudent)) return error('prestudent could not be loaded'); + $prestudentdata = getData($prestudent); + $prestudentdata = $prestudentdata[0]; + //Prestudentstatus $lastStatus = $this->PrestudentstatusModel->getLastStatus($prestudent_id); @@ -217,32 +220,41 @@ class Prestudent_model extends DB_Model return $lastStatus; } - if (count($lastStatus->retval) > 0) + if (hasData($lastStatus)) { + $lastStatusData = getData($lastStatus); + $lastStatusData = $lastStatusData[0]; //get Studiengangname from Studienplan and -ordnung $studienordnung = $this->PrestudentstatusModel->getStudienordnungFromPrestudent($prestudent_id); if ($studienordnung->error) return $studienordnung; - if (count($studienordnung->retval) > 0) + if (hasData($studienordnung)) { - $lastStatus->retval[0]->studiengang_kz = $studienordnung->retval[0]->studiengang_kz; - $lastStatus->retval[0]->studiengangkurzbzlang = $studienordnung->retval[0]->studiengangkurzbzlang; - $lastStatus->retval[0]->studiengangbezeichnung = $studienordnung->retval[0]->studiengangbezeichnung; - $lastStatus->retval[0]->studiengangbezeichnung_englisch = $studienordnung->retval[0]->studiengangbezeichnung_englisch; - $lastStatus->retval[0]->regelstudiendauer = $studienordnung->retval[0]->regelstudiendauer; + $studienordnungdata = getData($studienordnung); + $studienordnungdata = $studienordnungdata[0]; + + $lastStatusData->studiengang_kz = $studienordnungdata->studiengang_kz; + $lastStatusData->studiengangkurzbzlang = $studienordnungdata->studiengangkurzbzlang; + $lastStatusData->studiengangbezeichnung = $studienordnungdata->studiengangbezeichnung; + $lastStatusData->studiengangbezeichnung_englisch = $studienordnungdata->studiengangbezeichnung_englisch; + $lastStatusData->regelstudiendauer = $studienordnungdata->regelstudiendauer; } //get Sprache $this->load->model('system/sprache_model', 'SpracheModel'); $this->SpracheModel->addSelect('sprache, locale, bezeichnung'); - $language = $this->SpracheModel->load($lastStatus->retval[0]->sprache); + $language = $this->SpracheModel->load($lastStatusData->sprache); if ($language->error) return $language; - if (count($language->retval) > 0) - $lastStatus->retval[0]->sprachedetails = $language->retval[0]; + if (hasData($language)) + { + $languagedata = getData($language); + $languagedata = $languagedata[0]; + $lastStatusData->sprachedetails = $languagedata; + } //get Bewerbungsfrist $this->load->model('crm/bewerbungstermine_model', 'BewerbungstermineModel'); @@ -251,24 +263,32 @@ class Prestudent_model extends DB_Model $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 + 'studienplan_id' => $lastStatusData->studienplan_id, + 'studiensemester_kurzbz' => $lastStatusData->studiensemester_kurzbz, + 'studiengang_kz' => $prestudentdata->studiengang_kz ) ); if ($bewerbungstermin->error) return $bewerbungstermin; - if (count($bewerbungstermin->retval) > 0) + if (hasData($bewerbungstermin)) { - $lastStatus->retval[0]->bewerbungstermin = $bewerbungstermin->retval[0]->ende; - $lastStatus->retval[0]->bewerbungsnachfrist = $bewerbungstermin->retval[0]->nachfrist_ende; + $bewerbungstermindata = getData($bewerbungstermin); + $bewerbungstermindata = $bewerbungstermindata[0]; + $lastStatusData->bewerbungstermin = $bewerbungstermindata->ende; + $lastStatusData->bewerbungsnachfrist = $bewerbungstermindata->nachfrist_ende; } - $prestudent->retval[0]->prestudentstatus = $lastStatus->retval[0]; + $prestudentdata->prestudentstatus = $lastStatusData; + + + if ($this->hasUDF()) + { + $prestudentdata->prestudentUdfs = $this->getUDFs($prestudent_id); + } } - return success($prestudent->retval); + return success($prestudentdata); } /** diff --git a/application/models/organisation/Studienjahr_model.php b/application/models/organisation/Studienjahr_model.php index 36784a280..3bbe3a07f 100644 --- a/application/models/organisation/Studienjahr_model.php +++ b/application/models/organisation/Studienjahr_model.php @@ -14,7 +14,7 @@ class Studienjahr_model extends DB_Model } /** - * Gets current Studienjahr, as determined by its start and enddate + * Gets current Studienjahr, as determined by start and enddate of current semester * @return array|null */ public function getCurrStudienjahr() diff --git a/application/views/system/infocenter/infocenterDetails.php b/application/views/system/infocenter/infocenterDetails.php index ab4e3533e..326c38035 100644 --- a/application/views/system/infocenter/infocenterDetails.php +++ b/application/views/system/infocenter/infocenterDetails.php @@ -14,6 +14,7 @@ 'sbadmintemplate' => true, 'addons' => true, 'navigationwidget' => true, + 'udfs' => true, 'customCSSs' => array( 'public/css/sbadmin2/admintemplate.css', 'public/css/sbadmin2/tablesort_bootstrap.css', diff --git a/application/views/system/infocenter/zgvpruefungen.php b/application/views/system/infocenter/zgvpruefungen.php index 86344d06b..5accd22a4 100644 --- a/application/views/system/infocenter/zgvpruefungen.php +++ b/application/views/system/infocenter/zgvpruefungen.php @@ -118,8 +118,7 @@
-
+
@@ -302,21 +301,38 @@
- -
-
- -
-
- -
-
- + +
+
+ +
+
+ +
+
+ +
+ prestudentUdfs)) + { + echo $this->udflib->UDFWidget( + array( + UDFLib::UDF_UNIQUE_ID => 'infocenterPrestudentUDFs_'.$zgvpruefung->prestudent_id, + UDFLib::REQUIRED_PERMISSIONS_PARAMETER => 'infocenter', + UDFLib::SCHEMA_ARG_NAME => 'public', + UDFLib::TABLE_ARG_NAME => 'tbl_prestudent', + UDFLib::PRIMARY_KEY_NAME => 'prestudent_id', + UDFLib::PRIMARY_KEY_VALUE => $zgvpruefung->prestudent_id, + UDFLib::UDFS_ARG_NAME => $zgvpruefung->prestudentUdfs + ) + ); + } + ?>