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