diff --git a/application/config/fhcomplete.php b/application/config/fhcomplete.php index 47867d517..5f28032c3 100644 --- a/application/config/fhcomplete.php +++ b/application/config/fhcomplete.php @@ -110,6 +110,9 @@ $config['fhc_acl'] = array 'lehre.tbl_studienordnungstatus' => 'basis/studienordnungstatus', 'lehre.tbl_studienplan' => 'basis/studienplan', 'lehre.tbl_studienplatz' => 'basis/studienplatz', + + 'lehre.tbl_studienplan_semester' => 'basis/studienplan_semester', + 'lehre.tbl_stunde' => 'basis/stunde', 'lehre.tbl_stundenplan' => 'basis/stundenplan', 'lehre.tbl_stundenplandev' => 'basis/stundenplandev', diff --git a/application/controllers/api/v1/organisation/Studienplan.php b/application/controllers/api/v1/organisation/Studienplan.php index 9f7913bba..4b1f2e5da 100644 --- a/application/controllers/api/v1/organisation/Studienplan.php +++ b/application/controllers/api/v1/organisation/Studienplan.php @@ -47,4 +47,46 @@ class Studienplan extends APIv1_Controller $this->response(); } } + + public function getStudienplaeneFromSem() + { + $studiengang_kz = $this->get('studiengang_kz'); + $studiensemester_kurzbz = $this->get('studiensemester_kurzbz'); + $ausbildungssemester = $this->get('ausbildungssemester'); + $orgform_kurzbz = $this->get('orgform_kurzbz'); + + if (isset($studiengang_kz) && isset($studiensemester_kurzbz)) + { + $result = $this->StudienplanModel->addJoin('lehre.tbl_studienordnung', 'studienordnung_id'); + if ($result->error == EXIT_SUCCESS) + { + $result = $this->StudienplanModel->addJoin('lehre.tbl_studienplan_semester', 'studienplan_id'); + if ($result->error == EXIT_SUCCESS) + { + $whereArray = array('tbl_studienplan.aktiv' => 'TRUE', + 'tbl_studienordnung.studiengang_kz' => $studiengang_kz, + 'tbl_studienplan_semester.studiensemester_kurzbz' => $studiensemester_kurzbz + ); + + if(isset($ausbildungssemester)) + { + $whereArray['tbl_studienplan_semester.semester'] = $ausbildungssemester; + } + + if(isset($orgform_kurzbz)) + { + $whereArray['orgform_kurzbz'] = $orgform_kurzbz; + } + + $result = $this->StudienplanModel->loadWhere($whereArray); + } + } + + $this->response($result, REST_Controller::HTTP_OK); + } + else + { + $this->response(); + } + } } \ No newline at end of file diff --git a/application/controllers/api/v1/organisation/Studiensemester.php b/application/controllers/api/v1/organisation/Studiensemester.php index 5b3228b92..4f1bf2ce7 100644 --- a/application/controllers/api/v1/organisation/Studiensemester.php +++ b/application/controllers/api/v1/organisation/Studiensemester.php @@ -46,6 +46,33 @@ class Studiensemester extends APIv1_Controller $this->response(); } } + + /** + * @return void + */ + public function getNextStudiensemester() + { + $art = $this->get('art'); + + $result = $this->StudiensemesterModel->addOrder('start'); + if ($result->error == EXIT_SUCCESS) + { + $result = $this->StudiensemesterModel->addLimit(1); + if ($result->error == EXIT_SUCCESS) + { + if (isset($art)) + { + $result = $this->StudiensemesterModel->loadWhere(array('start >' => 'NOW()', 'SUBSTRING(studiensemester_kurzbz FROM 1 FOR 2) = ' => $art)); + } + else + { + $result = $this->StudiensemesterModel->loadWhere(array('start >' => 'NOW()')); + } + } + } + + $this->response($result, REST_Controller::HTTP_OK); + } /** * @return void diff --git a/tests/codeception/_data/dump.sql b/tests/codeception/_data/dump.sql index 175b449d0..327ffdaa2 100644 --- a/tests/codeception/_data/dump.sql +++ b/tests/codeception/_data/dump.sql @@ -390,7 +390,8 @@ DELETE FROM system.tbl_rolleberechtigung WHERE berechtigung_kurzbz IN ( 'basis/rechnung', 'basis/rechnungsbetrag', 'basis/rechnungstyp', - 'basis/zahlungstyp' + 'basis/zahlungstyp', + 'basis/studienplan_semester' ); DELETE FROM system.tbl_berechtigung WHERE berechtigung_kurzbz IN ( @@ -606,7 +607,8 @@ DELETE FROM system.tbl_berechtigung WHERE berechtigung_kurzbz IN ( 'basis/rechnung', 'basis/rechnungsbetrag', 'basis/rechnungstyp', - 'basis/zahlungstyp' + 'basis/zahlungstyp', + 'basis/studienplan_semester' ); -- Permissions @@ -823,6 +825,7 @@ INSERT INTO system.tbl_berechtigung (berechtigung_kurzbz, beschreibung) VALUES(' INSERT INTO system.tbl_berechtigung (berechtigung_kurzbz, beschreibung) VALUES('basis/rechnungsbetrag', 'Tbl_rechnungsbetrag'); INSERT INTO system.tbl_berechtigung (berechtigung_kurzbz, beschreibung) VALUES('basis/rechnungstyp', 'Tbl_rechnungstyp'); INSERT INTO system.tbl_berechtigung (berechtigung_kurzbz, beschreibung) VALUES('basis/zahlungstyp', 'Tbl_zahlungstyp'); +INSERT INTO system.tbl_berechtigung (berechtigung_kurzbz, beschreibung) VALUES('basis/studienplan_semester', 'Tbl_studienplan_semester'); INSERT INTO system.tbl_rolleberechtigung (berechtigung_kurzbz, rolle_kurzbz, art) VALUES('basis/archiv', 'admin', 'suid'); INSERT INTO system.tbl_rolleberechtigung (berechtigung_kurzbz, rolle_kurzbz, art) VALUES('basis/ausbildung', 'admin', 'suid'); @@ -1036,4 +1039,5 @@ INSERT INTO system.tbl_rolleberechtigung (berechtigung_kurzbz, rolle_kurzbz, art INSERT INTO system.tbl_rolleberechtigung (berechtigung_kurzbz, rolle_kurzbz, art) VALUES('basis/rechnung', 'admin', 'suid'); INSERT INTO system.tbl_rolleberechtigung (berechtigung_kurzbz, rolle_kurzbz, art) VALUES('basis/rechnungsbetrag', 'admin', 'suid'); INSERT INTO system.tbl_rolleberechtigung (berechtigung_kurzbz, rolle_kurzbz, art) VALUES('basis/rechnungstyp', 'admin', 'suid'); -INSERT INTO system.tbl_rolleberechtigung (berechtigung_kurzbz, rolle_kurzbz, art) VALUES('basis/zahlungstyp', 'admin', 'suid'); \ No newline at end of file +INSERT INTO system.tbl_rolleberechtigung (berechtigung_kurzbz, rolle_kurzbz, art) VALUES('basis/zahlungstyp', 'admin', 'suid'); +INSERT INTO system.tbl_rolleberechtigung (berechtigung_kurzbz, rolle_kurzbz, art) VALUES('basis/studienplan_semester', 'admin', 'suid'); \ No newline at end of file