From ad1ada800c14db3a305312696358e002d75af249 Mon Sep 17 00:00:00 2001 From: paolo Date: Tue, 19 Jul 2016 10:31:58 +0200 Subject: [PATCH 1/7] Added method getDokumentstudiengangByStudiengang_bz to controller Dokumentstudiengang --- .../api/v1/crm/Dokumentstudiengang.php | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/application/controllers/api/v1/crm/Dokumentstudiengang.php b/application/controllers/api/v1/crm/Dokumentstudiengang.php index 35f86ae10..fd4dec511 100644 --- a/application/controllers/api/v1/crm/Dokumentstudiengang.php +++ b/application/controllers/api/v1/crm/Dokumentstudiengang.php @@ -47,6 +47,43 @@ class Dokumentstudiengang extends APIv1_Controller $this->response(); } } + + /** + * @return void + */ + public function getDokumentstudiengangByStudiengang_bz() + { + $studiengang_kz = $this->get('studiengang_kz'); + $onlinebewerbung = $this->get('onlinebewerbung'); + $pflicht = $this->get('pflicht'); + + if (isset($studiengang_kz)) + { + $result = $this->DokumentstudiengangModel->addJoin("public.tbl_dokument", "dokument_kurzbz"); + if(is_object($result) && $result->error == EXIT_SUCCESS) + { + $parameterArray = array("studiengang_kz" => $studiengang_kz); + + if( isset($onlinebewerbung)) + { + $parameterArray["onlinebewerbung"] = $onlinebewerbung; + } + + if( isset($pflicht)) + { + $parameterArray["pflicht"] = $pflicht; + } + + $result = $this->DokumentstudiengangModel->loadWhere($parameterArray); + } + + $this->response($result, REST_Controller::HTTP_OK); + } + else + { + $this->response(); + } + } /** * @return void From 325608ff6fdd3b8fa0ece2a4692ad4daa5a8747c Mon Sep 17 00:00:00 2001 From: Stefan Puraner Date: Tue, 19 Jul 2016 11:25:52 +0200 Subject: [PATCH 2/7] fixed typo in method name --- application/controllers/api/v1/crm/Dokumentstudiengang.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/application/controllers/api/v1/crm/Dokumentstudiengang.php b/application/controllers/api/v1/crm/Dokumentstudiengang.php index fd4dec511..c30a1704e 100644 --- a/application/controllers/api/v1/crm/Dokumentstudiengang.php +++ b/application/controllers/api/v1/crm/Dokumentstudiengang.php @@ -51,7 +51,7 @@ class Dokumentstudiengang extends APIv1_Controller /** * @return void */ - public function getDokumentstudiengangByStudiengang_bz() + public function getDokumentstudiengangByStudiengang_kz() { $studiengang_kz = $this->get('studiengang_kz'); $onlinebewerbung = $this->get('onlinebewerbung'); From e580df583a7f0e9b4193d86e3511c8c0a188e114 Mon Sep 17 00:00:00 2001 From: paolo Date: Tue, 19 Jul 2016 15:32:14 +0200 Subject: [PATCH 3/7] Added method getStudiengangStudienplan to controller Studiengang --- .../api/v1/organisation/Studiengang2.php | 65 ++++++++++++++++++- 1 file changed, 63 insertions(+), 2 deletions(-) diff --git a/application/controllers/api/v1/organisation/Studiengang2.php b/application/controllers/api/v1/organisation/Studiengang2.php index 6a95d9700..2e2ac94e1 100644 --- a/application/controllers/api/v1/organisation/Studiengang2.php +++ b/application/controllers/api/v1/organisation/Studiengang2.php @@ -23,8 +23,6 @@ class Studiengang2 extends APIv1_Controller parent::__construct(); // Load model PersonModel $this->load->model('organisation/studiengang_model', 'StudiengangModel'); - - } public function getStudiengang() @@ -47,4 +45,67 @@ class Studiengang2 extends APIv1_Controller { $this->response($this->StudiengangModel->getAllForBewerbung(), REST_Controller::HTTP_OK); } + + public function getStudiengangStudienplan() + { + $studiensemester_kurzbz = $this->get('studiensemester_kurzbz'); + $ausbildungssemester = $this->get('ausbildungssemester'); + + if (isset($studiensemester_kurzbz) && isset($ausbildungssemester)) + { + $this->load->model('organisation/studienplan_model', 'StudienplanModel'); + $result = $this->StudienplanModel->addJoin('lehre.tbl_studienplan_semester', 'studienplan_id'); + if ($result->error == EXIT_SUCCESS) + { + $result = $this->StudienplanModel->addJoin('lehre.tbl_studienordnung', 'studienordnung_id'); + if ($result->error == EXIT_SUCCESS) + { + $this->StudienplanModel->addSelect('tbl_studienplan.*, lehre.tbl_studienordnung.studiengang_kz'); + + $this->StudienplanModel->addOrder('lehre.tbl_studienordnung.studiengang_kz'); + + $resultStudienplan = $this->StudienplanModel->loadWhere( + array('semester' => $ausbildungssemester, + 'studiensemester_kurzbz' => $studiensemester_kurzbz, + 'tbl_studienplan.aktiv' => 'TRUE') + ); + + if (is_object($resultStudienplan) && $resultStudienplan->error == EXIT_SUCCESS && + is_array($resultStudienplan->retval) && count($resultStudienplan->retval) > 0) + { + $studiengangCount = 0; + $prevStudiengang_kz = ''; + $studiengangArray = array(); + + for ($i = 0; $i < count($resultStudienplan->retval); $i++) + { + if ($prevStudiengang_kz == $resultStudienplan->retval[$i]->studiengang_kz) + { + array_push($studiengangArray[$studiengangCount - 1]->studienpleane, $resultStudienplan->retval[$i]); + } + else + { + $resultStudiengang = $this->StudiengangModel->load($resultStudienplan->retval[$i]->studiengang_kz); + if (is_object($resultStudiengang) && $resultStudiengang->error == EXIT_SUCCESS && + is_array($resultStudiengang->retval) && count($resultStudiengang->retval) > 0) + { + $resultStudiengang->retval[0]->studienpleane = array($resultStudienplan->retval[$i]); + $studiengangArray[$studiengangCount++] = $resultStudiengang->retval[0]; + } + $prevStudiengang_kz = $resultStudienplan->retval[$i]->studiengang_kz; + } + } + + $result = $this->_success($studiengangArray); + } + } + } + + $this->response($result, REST_Controller::HTTP_OK); + } + else + { + $this->response(); + } + } } \ No newline at end of file From 19e63622d7816750c9dca6525ce6804f404c8450 Mon Sep 17 00:00:00 2001 From: Stefan Puraner Date: Tue, 19 Jul 2016 15:57:16 +0200 Subject: [PATCH 4/7] fixed typo --- application/controllers/api/v1/organisation/Studiengang2.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/application/controllers/api/v1/organisation/Studiengang2.php b/application/controllers/api/v1/organisation/Studiengang2.php index 2e2ac94e1..a325e2797 100644 --- a/application/controllers/api/v1/organisation/Studiengang2.php +++ b/application/controllers/api/v1/organisation/Studiengang2.php @@ -81,7 +81,7 @@ class Studiengang2 extends APIv1_Controller { if ($prevStudiengang_kz == $resultStudienplan->retval[$i]->studiengang_kz) { - array_push($studiengangArray[$studiengangCount - 1]->studienpleane, $resultStudienplan->retval[$i]); + array_push($studiengangArray[$studiengangCount - 1]->studienplaene, $resultStudienplan->retval[$i]); } else { @@ -89,7 +89,7 @@ class Studiengang2 extends APIv1_Controller if (is_object($resultStudiengang) && $resultStudiengang->error == EXIT_SUCCESS && is_array($resultStudiengang->retval) && count($resultStudiengang->retval) > 0) { - $resultStudiengang->retval[0]->studienpleane = array($resultStudienplan->retval[$i]); + $resultStudiengang->retval[0]->studienplaene = array($resultStudienplan->retval[$i]); $studiengangArray[$studiengangCount++] = $resultStudiengang->retval[0]; } $prevStudiengang_kz = $resultStudienplan->retval[$i]->studiengang_kz; From 8899a162fdac578dd95f4f919a428e08997685e7 Mon Sep 17 00:00:00 2001 From: paolo Date: Tue, 19 Jul 2016 16:03:08 +0200 Subject: [PATCH 5/7] Added method getByStudiengangStudiensemester to controller Bewerbungstermine --- .../api/v1/crm/Bewerbungstermine.php | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/application/controllers/api/v1/crm/Bewerbungstermine.php b/application/controllers/api/v1/crm/Bewerbungstermine.php index 6c2fbd79c..cc68c86b0 100644 --- a/application/controllers/api/v1/crm/Bewerbungstermine.php +++ b/application/controllers/api/v1/crm/Bewerbungstermine.php @@ -46,6 +46,29 @@ class Bewerbungstermine extends APIv1_Controller $this->response(); } } + + /** + * @return void + */ + public function getByStudiengangStudiensemester() + { + $studiengang_kz = $this->get('studiengang_kz'); + $studiensemester_kurzbz = $this->get('studiensemester_kurzbz'); + + if (isset($studiengang_kz) && isset($studiensemester_kurzbz)) + { + $result = $this->BewerbungstermineModel->loadWhere(array( + 'studiengang_kz' => $studiengang_kz, + 'studiensemester_kurzbz' => $studiensemester_kurzbz, + )); + + $this->response($result, REST_Controller::HTTP_OK); + } + else + { + $this->response(); + } + } /** * @return void From 0eaf36014023c31520c9a6434887643920dceb39 Mon Sep 17 00:00:00 2001 From: paolo Date: Tue, 19 Jul 2016 17:04:44 +0200 Subject: [PATCH 6/7] Added parameters aktiv and onlinebewerbung to method getByStudiengangStudiensemester of controller Bewerbungstermine --- .../api/v1/organisation/Studiengang2.php | 70 +++++++++++-------- 1 file changed, 40 insertions(+), 30 deletions(-) diff --git a/application/controllers/api/v1/organisation/Studiengang2.php b/application/controllers/api/v1/organisation/Studiengang2.php index a325e2797..deccd1579 100644 --- a/application/controllers/api/v1/organisation/Studiengang2.php +++ b/application/controllers/api/v1/organisation/Studiengang2.php @@ -50,6 +50,8 @@ class Studiengang2 extends APIv1_Controller { $studiensemester_kurzbz = $this->get('studiensemester_kurzbz'); $ausbildungssemester = $this->get('ausbildungssemester'); + $aktiv = $this->get('aktiv'); + $onlinebewerbung = $this->get('onlinebewerbung'); if (isset($studiensemester_kurzbz) && isset($ausbildungssemester)) { @@ -60,43 +62,51 @@ class Studiengang2 extends APIv1_Controller $result = $this->StudienplanModel->addJoin('lehre.tbl_studienordnung', 'studienordnung_id'); if ($result->error == EXIT_SUCCESS) { - $this->StudienplanModel->addSelect('tbl_studienplan.*, lehre.tbl_studienordnung.studiengang_kz'); - - $this->StudienplanModel->addOrder('lehre.tbl_studienordnung.studiengang_kz'); - - $resultStudienplan = $this->StudienplanModel->loadWhere( - array('semester' => $ausbildungssemester, - 'studiensemester_kurzbz' => $studiensemester_kurzbz, - 'tbl_studienplan.aktiv' => 'TRUE') - ); - - if (is_object($resultStudienplan) && $resultStudienplan->error == EXIT_SUCCESS && - is_array($resultStudienplan->retval) && count($resultStudienplan->retval) > 0) + $result = $this->StudienplanModel->addJoin('public.tbl_studiengang', 'studiengang_kz'); + if ($result->error == EXIT_SUCCESS) { - $studiengangCount = 0; - $prevStudiengang_kz = ''; - $studiengangArray = array(); - - for ($i = 0; $i < count($resultStudienplan->retval); $i++) + $this->StudienplanModel->addSelect('tbl_studienplan.*, lehre.tbl_studienordnung.studiengang_kz'); + + $this->StudienplanModel->addOrder('lehre.tbl_studienordnung.studiengang_kz'); + + if (!isset($aktiv)) $aktiv = 'TRUE'; + if (!isset($onlinebewerbung)) $onlinebewerbung = 'TRUE'; + + $resultStudienplan = $this->StudienplanModel->loadWhere( + array('semester' => $ausbildungssemester, + 'studiensemester_kurzbz' => $studiensemester_kurzbz, + 'public.tbl_studiengang.aktiv' => $aktiv, + 'public.tbl_studiengang.onlinebewerbung' => $onlinebewerbung) + ); + + if (is_object($resultStudienplan) && $resultStudienplan->error == EXIT_SUCCESS && + is_array($resultStudienplan->retval) && count($resultStudienplan->retval) > 0) { - if ($prevStudiengang_kz == $resultStudienplan->retval[$i]->studiengang_kz) + $studiengangCount = 0; + $prevStudiengang_kz = ''; + $studiengangArray = array(); + + for ($i = 0; $i < count($resultStudienplan->retval); $i++) { - array_push($studiengangArray[$studiengangCount - 1]->studienplaene, $resultStudienplan->retval[$i]); - } - else - { - $resultStudiengang = $this->StudiengangModel->load($resultStudienplan->retval[$i]->studiengang_kz); - if (is_object($resultStudiengang) && $resultStudiengang->error == EXIT_SUCCESS && - is_array($resultStudiengang->retval) && count($resultStudiengang->retval) > 0) + if ($prevStudiengang_kz == $resultStudienplan->retval[$i]->studiengang_kz) { - $resultStudiengang->retval[0]->studienplaene = array($resultStudienplan->retval[$i]); - $studiengangArray[$studiengangCount++] = $resultStudiengang->retval[0]; + array_push($studiengangArray[$studiengangCount - 1]->studienplaene, $resultStudienplan->retval[$i]); + } + else + { + $resultStudiengang = $this->StudiengangModel->load($resultStudienplan->retval[$i]->studiengang_kz); + if (is_object($resultStudiengang) && $resultStudiengang->error == EXIT_SUCCESS && + is_array($resultStudiengang->retval) && count($resultStudiengang->retval) > 0) + { + $resultStudiengang->retval[0]->studienplaene = array($resultStudienplan->retval[$i]); + $studiengangArray[$studiengangCount++] = $resultStudiengang->retval[0]; + } + $prevStudiengang_kz = $resultStudienplan->retval[$i]->studiengang_kz; } - $prevStudiengang_kz = $resultStudienplan->retval[$i]->studiengang_kz; } + + $result = $this->_success($studiengangArray); } - - $result = $this->_success($studiengangArray); } } } From 178b15315fba1215dc3e62660bc2f5c72a9fe2f2 Mon Sep 17 00:00:00 2001 From: paolo Date: Tue, 19 Jul 2016 17:33:27 +0200 Subject: [PATCH 7/7] Slightly better performance --- .../api/v1/organisation/Studiengang2.php | 75 ++++++++++--------- 1 file changed, 39 insertions(+), 36 deletions(-) diff --git a/application/controllers/api/v1/organisation/Studiengang2.php b/application/controllers/api/v1/organisation/Studiengang2.php index deccd1579..44e213ccf 100644 --- a/application/controllers/api/v1/organisation/Studiengang2.php +++ b/application/controllers/api/v1/organisation/Studiengang2.php @@ -62,51 +62,54 @@ class Studiengang2 extends APIv1_Controller $result = $this->StudienplanModel->addJoin('lehre.tbl_studienordnung', 'studienordnung_id'); if ($result->error == EXIT_SUCCESS) { - $result = $this->StudienplanModel->addJoin('public.tbl_studiengang', 'studiengang_kz'); - if ($result->error == EXIT_SUCCESS) + $this->StudienplanModel->addSelect('tbl_studienplan.*, lehre.tbl_studienordnung.studiengang_kz'); + + $this->StudienplanModel->addOrder('lehre.tbl_studienordnung.studiengang_kz'); + + if (!isset($aktiv)) $aktiv = 'TRUE'; + if (!isset($onlinebewerbung)) $onlinebewerbung = 'TRUE'; + + $resultStudienplan = $this->StudienplanModel->loadWhere( + array('semester' => $ausbildungssemester, + 'studiensemester_kurzbz' => $studiensemester_kurzbz) + ); + + if (is_object($resultStudienplan) && $resultStudienplan->error == EXIT_SUCCESS && + is_array($resultStudienplan->retval) && count($resultStudienplan->retval) > 0) { - $this->StudienplanModel->addSelect('tbl_studienplan.*, lehre.tbl_studienordnung.studiengang_kz'); + $studiengangCount = 0; + $prevStudiengang_kz = ''; + $studiengangArray = array(); - $this->StudienplanModel->addOrder('lehre.tbl_studienordnung.studiengang_kz'); - - if (!isset($aktiv)) $aktiv = 'TRUE'; - if (!isset($onlinebewerbung)) $onlinebewerbung = 'TRUE'; - - $resultStudienplan = $this->StudienplanModel->loadWhere( - array('semester' => $ausbildungssemester, - 'studiensemester_kurzbz' => $studiensemester_kurzbz, - 'public.tbl_studiengang.aktiv' => $aktiv, - 'public.tbl_studiengang.onlinebewerbung' => $onlinebewerbung) - ); - - if (is_object($resultStudienplan) && $resultStudienplan->error == EXIT_SUCCESS && - is_array($resultStudienplan->retval) && count($resultStudienplan->retval) > 0) + for ($i = 0; $i < count($resultStudienplan->retval); $i++) { - $studiengangCount = 0; - $prevStudiengang_kz = ''; - $studiengangArray = array(); - - for ($i = 0; $i < count($resultStudienplan->retval); $i++) + if ($prevStudiengang_kz == $resultStudienplan->retval[$i]->studiengang_kz) { - if ($prevStudiengang_kz == $resultStudienplan->retval[$i]->studiengang_kz) + if (isset($studiengangArray[$studiengangCount - 1]) && is_array($studiengangArray[$studiengangCount - 1]->studienplaene)) { array_push($studiengangArray[$studiengangCount - 1]->studienplaene, $resultStudienplan->retval[$i]); } - else - { - $resultStudiengang = $this->StudiengangModel->load($resultStudienplan->retval[$i]->studiengang_kz); - if (is_object($resultStudiengang) && $resultStudiengang->error == EXIT_SUCCESS && - is_array($resultStudiengang->retval) && count($resultStudiengang->retval) > 0) - { - $resultStudiengang->retval[0]->studienplaene = array($resultStudienplan->retval[$i]); - $studiengangArray[$studiengangCount++] = $resultStudiengang->retval[0]; - } - $prevStudiengang_kz = $resultStudienplan->retval[$i]->studiengang_kz; - } } - - $result = $this->_success($studiengangArray); + else + { + $resultStudiengang = $this->StudiengangModel->loadWhere( + array('studiengang_kz' => $resultStudienplan->retval[$i]->studiengang_kz, + 'aktiv' => $aktiv, + 'onlinebewerbung' => $onlinebewerbung) + ); + + if (is_object($resultStudiengang) && $resultStudiengang->error == EXIT_SUCCESS && + is_array($resultStudiengang->retval) && count($resultStudiengang->retval) > 0) + { + $resultStudiengang->retval[0]->studienplaene = array($resultStudienplan->retval[$i]); + $studiengangArray[$studiengangCount++] = $resultStudiengang->retval[0]; + } + + $prevStudiengang_kz = $resultStudienplan->retval[$i]->studiengang_kz; + } } + + $result = $this->_success($studiengangArray); } } }