diff --git a/include/bewerbungstermin.class.php b/include/bewerbungstermin.class.php new file mode 100644 index 000000000..89a0d93c4 --- /dev/null +++ b/include/bewerbungstermin.class.php @@ -0,0 +1,245 @@ + + */ +/** + * Klasse Bewerbungstermin + * @create 10-01-2007 + */ + +require_once(dirname(__FILE__).'/basis_db.class.php'); + +class bewerbungstermin extends basis_db +{ + public $new; // boolean + public $result = array(); + + //Tabellenspalten + public $bewerbungstermin_id;// integer + public $studiengang_kz; //integer + public $studiensemester_kurzbz; // string + public $beginn; // timestamp + public $ende; // timestamp + public $nachfrist; // boolean + public $nachfrist_ende; // timestamp + public $anmerkung; // string + public $insertamum; // timestamp + public $insertvon; // bigint + public $updateamum; // timestamp + public $updatevon; // bigint + + /** + * Konstruktor + * @param $reihungstest_id ID der Adresse die geladen werden soll (Default=null) + */ + public function __construct($bewerbungstermin_id=null) + { + parent::__construct(); + + if(!is_null($bewerbungstermin_id)) + $this->load($bewerbungstermin_id); + } + + /** + * Laedt den Fördervertrag mit der ID $foerdervertrag_id + * @param $foerdervertrag_id ID des zu ladenden Fördervertrags + * @return true wenn ok, false im Fehlerfall + */ + public function load($bewerbungstermin_id) + { + if(!is_numeric($bewerbungstermin_id)) + { + $this->errormsg = 'bewerbungstermin_id ist ungueltig'; + return false; + } + + $qry = "SELECT * FROM public.tbl_bewerbungstermine WHERE bewerbungstermin_id=".$this->db_add_param($bewerbungstermin_id, FHC_INTEGER, false); + + if($this->db_query($qry)) + { + if($row = $this->db_fetch_object()) + { + $this->bewerbungstermin_id = $row->bewerbungstermin_id; + $this->studiengang_kz = $row->studiengang_kz; + $this->studiensemester_kurzbz = $row->studiensemester_kurzbz; + $this->beginn = $row->beginn; + $this->ende = $row->ende; + $this->nachfrist = $row->nachfrist; + $this->nachfrist_ende = $row->nachfrist_ende; + $this->anmerkung = $row->anmerkung; + $this->insertamum = $row->insertamum; + $this->insertvon = $row->insertvon; + $this->updateamum = $row->updateamum; + $this->updatevon = $row->updatevon; + return true; + } + else + { + $this->errormsg = 'Bewerbungstermin existiert nicht'; + return false; + } + } + else + { + $this->errormsg = 'Fehler beim Laden des Bewerbungstermins'; + return false; + } + } + + /** + * Liefert alle Förderverträge + */ + public function getBewerbungstermine($studiengang_kz, $studiensemester_kurzbz=null, $sort=null) + { + $qry = "SELECT * FROM public.tbl_bewerbungstermine WHERE studiengang_kz=".$this->db_add_param($studiengang_kz, FHC_INTEGER); + if($studiensemester_kurzbz!=null) + $qry.=" AND studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz); + + if($sort != null) + { + $qry.=" ORDER BY ".$sort; + } + $qry.=";"; + + if($this->db_query($qry)) + { + while($row = $this->db_fetch_object()) + { + $obj = new bewerbungstermin(); + + $obj->bewerbungstermin_id = $row->bewerbungstermin_id; + $obj->studiengang_kz = $row->studiengang_kz; + $obj->studiensemester_kurzbz = $row->studiensemester_kurzbz; + $obj->beginn = $row->beginn; + $obj->ende = $row->ende; + $obj->nachfrist = $this->db_parse_bool($row->nachfrist); + $obj->nachfrist_ende = $row->nachfrist_ende; + $obj->anmerkung = $row->anmerkung; + $obj->insertamum = $row->insertamum; + $obj->insertvon = $row->insertvon; + $obj->updateamum = $row->updateamum; + $obj->updatevon = $row->updatevon; + + $this->result[] = $obj; + } + return true; + } + else + { + $this->errormsg = 'Fehler beim Laden der Bewerbungstermine.'; + return false; + } + } + + /** + * Prueft die Variablen auf Gueltigkeit + * @return true wenn ok, false im Fehlerfall + */ + private function validate() + { + return true; + } + + /** + * Speichert den aktuellen Datensatz in die Datenbank + * Wenn $neu auf true gesetzt ist wird ein neuer Datensatz angelegt + * andernfalls wird der Datensatz mit der ID in $reihungstest_id aktualisiert + * @return true wenn ok, false im Fehlerfall + */ + public function save() + { + if(!$this->validate()) + return false; + + if($this->new) + { + //Neuen Datensatz einfuegen + + $qry='BEGIN; INSERT INTO public.tbl_bewerbungstermine(studiensemester_kurzbz, studiengang_kz, beginn, ende, nachfrist, nachfrist_ende, anmerkung, insertamum, insertvon) VALUES('. + $this->db_add_param($this->studiensemester_kurzbz).', '. + $this->db_add_param($this->studiengang_kz, FHC_INTEGER).', '. + $this->db_add_param($this->beginn).', '. + $this->db_add_param($this->ende).', '. + $this->db_add_param($this->nachfrist, FHC_BOOLEAN).', '. + $this->db_add_param($this->nachfrist_ende).', '. + $this->db_add_param($this->anmerkung).', now(),'. + $this->db_add_param($this->insertvon).');'; + } + else + { + $qry='UPDATE public.tbl_bewerbungstermine SET '. + 'studiensemester_kurzbz='.$this->db_add_param($this->studiensemester_kurzbz).', '. + 'studiengang_kz='.$this->db_add_param($this->studiengang_kz,FHC_INTEGER).', '. + 'beginn='.$this->db_add_param($this->beginn).', '. + 'ende='.$this->db_add_param($this->ende).', '. + 'nachfrist='.$this->db_add_param($this->nachfrist, FHC_BOOLEAN).', '. + 'nachfrist_ende='.$this->db_add_param($this->nachfrist_ende).', '. + 'anmerkung='.$this->db_add_param($this->anmerkung).', '. + 'updateamum= now(), '. + 'updatevon='.$this->db_add_param($this->updatevon).' '. + 'WHERE bewerbungstermin_id='.$this->db_add_param($this->bewerbungstermin_id, FHC_INTEGER, false).';'; + } + if($this->db_query($qry)) + { + if($this->new) + { + $qry = "SELECT currval('public.tbl_bewerbungstermine_bewerbungstermin_id_seq') as id"; + if($this->db_query($qry)) + { + if($row = $this->db_fetch_object()) + { + $this->foerdervertrag_id = $row->id; + $this->db_query('COMMIT'); + return true; + } + else + { + $this->errormsg = 'Fehler beim Auslesen der Sequence'; + $this->db_query('ROLLBACK'); + return false; + } + } + else + { + $this->errormsg = 'Fehler beim Auslesen der Sequence'; + $this->db_query('ROLLBACK'); + return false; + } + } + return true; + } + else + { + $this->errormsg = 'Fehler beim Speichern der Daten'; + return false; + } + } + + public function delete($bewerbungstermin_id) + { + $qry = "DELETE from public.tbl_bewerbungstermine WHERE bewerbungstermin_id=".$this->db_add_param($bewerbungstermin_id); + + if(!$this->db_query($qry)) + { + $this->errormsg = 'Fehler beim Löschen der Daten'; + return false; + } + + return true; + } +} diff --git a/include/studienordnung.class.php b/include/studienordnung.class.php index fd46a4552..17c1cc366 100644 --- a/include/studienordnung.class.php +++ b/include/studienordnung.class.php @@ -44,6 +44,9 @@ class studienordnung extends basis_db protected $studiengangbezeichnung_englisch; // varchar (256) protected $studiengangkurzbzlang; // varchar (256) protected $akadgrad_id; // integer (FK akadgrad) + protected $status_kurzbz; //varchar(32) + protected $standort_id; + protected $orgform_kurzbz; protected $updateamum; // timestamp protected $updatevon; // varchar protected $insertamum; // timestamp @@ -112,6 +115,8 @@ class studienordnung extends basis_db $this->studiengangbezeichnung_englisch = $row->studiengangbezeichnung_englisch; $this->studiengangkurzbzlang = $row->studiengangkurzbzlang; $this->akadgrad_id = $row->akadgrad_id; + $this->status_kurzbz = $row->status_kurzbz; + $this->standort_id = $row->standort_id; $this->updateamum = $row->updateamum; $this->updatevon = $row->updatevon; $this->insertamum = $row->insertamum; @@ -144,22 +149,16 @@ class studienordnung extends basis_db if(is_null($studiensemester_kurzbz)) { - $qry = 'SELECT - * - FROM - lehre.tbl_studienordnung - WHERE - studiengang_kz='.$this->db_add_param($studiengang_kz, FHC_INTEGER, false); + $qry = 'SELECT sto.*, s.bezeichnung as status_bezeichnung FROM lehre.tbl_studienordnung sto + JOIN lehre.tbl_studienordnungstatus s USING(status_kurzbz) + WHERE studiengang_kz='.$this->db_add_param($studiengang_kz, FHC_INTEGER, false); } else { - $qry = 'SELECT - * - FROM - lehre.tbl_studienordnung - LEFT JOIN lehre.tbl_studienordnung_semester USING (studienordnung_id) - WHERE - studiengang_kz='.$this->db_add_param($studiengang_kz, FHC_INTEGER, false); + $qry = 'SELECT sto.*, s.bezeichnung as status_bezeichnung FROM lehre.tbl_studienordnung + JOIN lehre.tbl_studienordnungstatus s USING(status_kurzbz) + LEFT JOIN lehre.tbl_studienordnung_semester USING (studienordnung_id) + WHERE studiengang_kz='.$this->db_add_param($studiengang_kz, FHC_INTEGER, false); if (!is_null($studiensemester_kurzbz)) $qry.=" AND studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz, FHC_STRING,false); @@ -188,6 +187,9 @@ class studienordnung extends basis_db $obj->studiengangbezeichnung_englisch = $row->studiengangbezeichnung_englisch; $obj->studiengangkurzbzlang = $row->studiengangkurzbzlang; $obj->akadgrad_id = $row->akadgrad_id; + $obj->status_kurzbz = $row->status_kurzbz; + $obj->status_bezeichnung = $row->status_bezeichnung; + $obj->standort_id = $row->standort_id; $obj->updateamum = $row->updateamum; $obj->updatevon = $row->updatevon; $obj->insertamum = $row->insertamum; @@ -283,7 +285,7 @@ class studienordnung extends basis_db if($this->new) { //Neuen Datensatz einfuegen - $qry='BEGIN;INSERT INTO lehre.tbl_studienordnung (studiengang_kz, version, bezeichnung, ects, gueltigvon, gueltigbis, studiengangbezeichnung, studiengangbezeichnung_englisch, studiengangkurzbzlang, akadgrad_id, insertamum, insertvon) VALUES ('. + $qry='BEGIN;INSERT INTO lehre.tbl_studienordnung (studiengang_kz, version, bezeichnung, ects, gueltigvon, gueltigbis, studiengangbezeichnung, studiengangbezeichnung_englisch, studiengangkurzbzlang, akadgrad_id, standort_id, status_kurzbz, insertamum, insertvon) VALUES ('. $this->db_add_param($this->studiengang_kz, FHC_INTEGER).', '. $this->db_add_param($this->version).', '. $this->db_add_param($this->bezeichnung).', '. @@ -294,6 +296,8 @@ class studienordnung extends basis_db $this->db_add_param($this->studiengangbezeichnung_englisch).', '. $this->db_add_param($this->studiengangkurzbzlang).', '. $this->db_add_param($this->akadgrad_id,FHC_INTEGER).', '. + $this->db_add_param($this->standort_id,FHC_INTEGER).', '. + $this->db_add_param($this->status_kurzb).', '. ' now(), '. $this->db_add_param($this->insertvon).');'; } @@ -316,6 +320,8 @@ class studienordnung extends basis_db ' studiengangbezeichnung_englisch='.$this->db_add_param($this->studiengangbezeichnung_englisch).', '. ' studiengangkurzbzlang='.$this->db_add_param($this->studiengangkurzbzlang).','. ' akadgrad_id='.$this->db_add_param($this->akadgrad_id, FHC_INTEGER).', '. + ' standort_id='.$this->db_add_param($this->standort_id, FHC_INTEGER).', '. + ' status_kurzbz='.$this->db_add_param($this->status_kurzbz, FHC_INTEGER).', '. ' updateamum= now(), '. ' updatevon='.$this->db_add_param($this->updatevon).' '. ' WHERE studienordnung_id='.$this->db_add_param($this->studienordnung_id, FHC_INTEGER, false).';'; @@ -410,6 +416,8 @@ class studienordnung extends basis_db $obj->studiengangbezeichnung_englisch = $row->studiengangbezeichnung_englisch; $obj->studiengangkurzbzlang = $row->studiengangkurzbzlang; $obj->akadgrad_id = $row->akadgrad_id; + $obj->standort_id = $row->standort_id; + $obj->status_kurzb = $row->status_kurzb; $obj->updateamum = $row->updateamum; $obj->updatevon = $row->updatevon; $obj->insertamum = $row->insertamum; @@ -433,6 +441,8 @@ class studienordnung extends basis_db $obj->studiengangbezeichnung_englisch = $this->studiengangbezeichnung_englisch; $obj->studiengangkurzbzlang = $this->studiengangkurzbzlang; $obj->akadgrad_id = $this->akadgrad_id; + $obj->standort_id = $this->standort_id; + $obj->status_kurzb = $this->status_kurzb; $obj->updateamum = $this->updateamum; $obj->updatevon = $this->updatevon; $obj->insertamum = $this->insertamum; @@ -735,6 +745,8 @@ class studienordnung extends basis_db $this->studiengangbezeichnung_englisch = $row->studiengangbezeichnung_englisch; $this->studiengangkurzbzlang = $row->studiengangkurzbzlang; $this->akadgrad_id = $row->akadgrad_id; + $this->standort_id = $row->standort_id; + $this->status_kurzb = $row->status_kurzb; $this->updateamum = $row->updateamum; $this->updatevon = $row->updatevon; $this->insertamum = $row->insertamum; @@ -793,6 +805,8 @@ class studienordnung extends basis_db $obj->studiengangbezeichnung_englisch = $row->studiengangbezeichnung_englisch; $obj->studiengangkurzbzlang = $row->studiengangkurzbzlang; $obj->akadgrad_id = $row->akadgrad_id; + $this->standort_id = $row->standort_id; + $this->status_kurzb = $row->status_kurzb; $obj->updateamum = $row->updateamum; $obj->updatevon = $row->updatevon; $obj->insertamum = $row->insertamum; @@ -812,5 +826,62 @@ class studienordnung extends basis_db return true; } + + public function loadStudienordnungWithStatus($studiengang_kz, $status_kurzbz) + { + $qry = "SELECT sto.*, s.bezeichnung as status_bezeichnung " + . "FROM lehre.tbl_studienordnung sto " + . "JOIN lehre.tbl_studienordnungstatus s USING(status_kurzbz) " + . "WHERE status_kurzbz=" . $this->db_add_param($status_kurzbz, FHC_STRING) . "" + . " AND studiengang_kz=" . $this->db_add_param($studiengang_kz, FHC_INTEGER) . ";"; + + if (!$this->db_query($qry)) + { + $this->errormsg = 'Fehler bei einer Datenbankabfrage'; + return false; + } + + while ($row = $this->db_fetch_object()) + { + $obj = new studienordnung(); + + $obj->studienordnung_id = $row->studienordnung_id; + $obj->studiengang_kz = $row->studiengang_kz; + $obj->version = $row->version; + $obj->bezeichnung = $row->bezeichnung; + $obj->ects = $row->ects; + $obj->gueltigvon = $row->gueltigvon; + $obj->gueltigbis = $row->gueltigbis; + $obj->studiengangbezeichnung = $row->studiengangbezeichnung; + $obj->studiengangbezeichnung_englisch = $row->studiengangbezeichnung_englisch; + $obj->studiengangkurzbzlang = $row->studiengangkurzbzlang; + $obj->akadgrad_id = $row->akadgrad_id; + $obj->status_kurzbz = $row->status_kurzbz; + $obj->status_bezeichnung = $row->status_bezeichnung; + $obj->begruendung = json_decode($row->begruendung); + $obj->studiengangsart = $row->studiengangsart; + $obj->standort_id = $row->standort_id; + $obj->updateamum = $row->updateamum; + $obj->updatevon = $row->updatevon; + $obj->insertamum = $row->insertamum; + $obj->insertvon = $row->insertvon; + $obj->new = false; + $this->result[] = $obj; + } + return true; + } + + public function changeState($studienordnung_id, $status_kurzbz) + { + $qry = "UPDATE lehre.tbl_studienordnung SET status_kurzbz=" . $this->db_add_param($status_kurzbz) + . " WHERE studienordnung_id=" . $this->db_add_param($studienordnung_id) . ";"; + + if (!$this->db_query($qry)) + { + $this->errormsg = "Status konnte nicht geändert werden."; + return false; + } + return true; + } } ?> diff --git a/include/studienplan.class.php b/include/studienplan.class.php index 78abd3ec5..986135738 100644 --- a/include/studienplan.class.php +++ b/include/studienplan.class.php @@ -46,6 +46,9 @@ class studienplan extends basis_db protected $updatevon; // varchar protected $insertamum; // timestamp protected $insertvon; // varchar + protected $ects_stpl; + protected $pflicht_sws; + protected $pflicht_lvs; //Tabellenspalten für Zwischentabelle tbl_studienplan_lehrveranstaltung protected $studienplan_lehrveranstaltung_id; //integer @@ -111,6 +114,9 @@ class studienplan extends basis_db $this->aktiv = $this->db_parse_bool($row->aktiv); $this->semesterwochen = $row->semesterwochen; $this->testtool_sprachwahl = $this->db_parse_bool($row->testtool_sprachwahl); + $this->ects_stpl = $row->ects_stpl; + $this->pflicht_lvs = $row->pflicht_lvs; + $this->pflicht_sws = $row->pflicht_sws; $this->updateamum = $row->updateamum; $this->updatevon = $row->updatevon; $this->insertamum = $row->insertamum; @@ -164,6 +170,9 @@ class studienplan extends basis_db $obj->aktiv = $this->db_parse_bool($row->aktiv); $obj->semesterwochen = $row->semesterwochen; $obj->testtool_sprachwahl = $this->db_parse_bool($row->testtool_sprachwahl); + $obj->ects_stpl = $row->ects_stpl; + $obj->pflicht_lvs = $row->pflicht_lvs; + $obj->pflicht_sws = $row->pflicht_sws; $obj->updateamum = $row->updateamum; $obj->updatevon = $row->updatevon; $obj->insertamum = $row->insertamum; @@ -257,7 +266,7 @@ class studienplan extends basis_db //Neuen Datensatz einfuegen $qry='BEGIN;INSERT INTO lehre.tbl_studienplan (studienordnung_id, orgform_kurzbz,version, bezeichnung, regelstudiendauer, sprache, aktiv, semesterwochen, testtool_sprachwahl, - insertamum, insertvon) VALUES ('. + pflicht_sws, pflicht_lvs, ects_stpl, insertamum, insertvon) VALUES ('. $this->db_add_param($this->studienordnung_id, FHC_INTEGER).', '. $this->db_add_param($this->orgform_kurzbz).', '. $this->db_add_param($this->version).', '. @@ -267,6 +276,9 @@ class studienplan extends basis_db $this->db_add_param($this->aktiv, FHC_BOOLEAN).', '. $this->db_add_param($this->semesterwochen,FHC_INTEGER).', '. $this->db_add_param($this->testtool_sprachwahl,FHC_BOOLEAN).', '. + $this->db_add_param($this->pflicht_sws) . ', ' . + $this->db_add_param($this->pflicht_lvs) . ', ' . + $this->db_add_param($this->ects_stpl) . ', ' . 'now(), '. $this->db_add_param($this->insertvon).');'; } @@ -288,6 +300,9 @@ class studienplan extends basis_db ' aktiv='.$this->db_add_param($this->aktiv, FHC_BOOLEAN).', '. ' semesterwochen='.$this->db_add_param($this->semesterwochen, FHC_INTEGER).', '. ' testtool_sprachwahl='.$this->db_add_param($this->testtool_sprachwahl, FHC_BOOLEAN).','. + ' ects_stpl=' . $this->db_add_param($this->ects_stpl) . ',' . + ' pflicht_sws=' . $this->db_add_param($this->pflicht_sws, FHC_INTEGER) . ',' . + ' pflicht_lvs=' . $this->db_add_param($this->pflicht_lvs, FHC_INTEGER) . ',' . ' updateamum= now(), '. ' updatevon='.$this->db_add_param($this->updatevon).' '. ' WHERE studienplan_id='.$this->db_add_param($this->studienplan_id, FHC_INTEGER, false).';'; @@ -821,5 +836,211 @@ class studienplan extends basis_db return true; } } + + /** + * speichert die Semesterzuordnung für die Studieordnung + * @param int $$studienplan_id Die ID des Studienplans + * @param string $studiensemester_kurzbz Kurzbezeichnung des Studiensemesters + * @param int $ausbildungssemester Ausbildungssemester als Zahl + */ + public function saveSemesterZuordnung($zuordnung = array()) + { + + if (is_array($zuordnung)) + { + $qry = ""; + foreach ($zuordnung as $key) + { + if (!is_numeric($key["studienplan_id"])) + { + $this->errormsg = 'studienplan_id muss eine gueltige Zahl sein'; + return false; + } + + if (!is_string($key["studiensemester_kurzbz"]) || strlen($key["studiensemester_kurzbz"]) != 6) + { + $this->errormsg = 'studiensemester_kurzbz muss ein String mit 6 Zeichen sein'; + return false; + } + + if (!is_numeric($key["ausbildungssemester"])) + { + $this->errormsg = 'ausbildungssemester muss eine gueltige Zahl sein'; + return false; + } + + + $qry .= "INSERT INTO lehre.tbl_studienplan_semester (studienplan_id, studiensemester_kurzbz, semester) VALUES (" . + $this->db_add_param($key["studienplan_id"]) . ', ' . + $this->db_add_param($key["studiensemester_kurzbz"]) . ', ' . + $this->db_add_param($key["ausbildungssemester"]) . '); '; + } + + if (!$this->db_query($qry)) + { + $this->errormsg = 'Fehler beim Speichern des Datensatzes'; + return false; + } + return true; + } else + { + $this->errormsg = 'Der übergebene Parameter ist kein Array.'; + return false; + } + return false; + } + + /** + * lädt alle zugeordneten Semester eines Studienplans + * @param int $studienplan ID + */ + public function loadStudiensemesterFromStudienplan($studienplan_id) + { + if (!is_numeric($studienplan_id)) + { + $this->errormsg = 'studienplan_id muss eine gueltige Zahl sein'; + return false; + } + + $qry = 'SELECT DISTINCT studiensemester_kurzbz, tbl_studiensemester.start + FROM + lehre.tbl_studienplan_semester + JOIN public.tbl_studiensemester USING(studiensemester_kurzbz) + WHERE studienplan_id=' . $this->db_add_param($studienplan_id) . ' + ORDER BY tbl_studiensemester.start, studiensemester_kurzbz'; + + if (!$this->db_query($qry)) + { + $this->errormsg = 'Fehler bei einer Datenbankabfrage'; + return false; + } + + $data = array(); + while ($row = $this->db_fetch_object()) + { + $obj = new stdClass(); + $data[] = $row->studiensemester_kurzbz; + } + return $data; + } + + public function loadAusbildungsemesterFromStudiensemester($studienplan_id, $studiensemester_kurzbz) + { + $qry = 'SELECT semester + FROM lehre.tbl_studienplan_semester + WHERE studienplan_id=' . $this->db_add_param($studienplan_id) . ' AND + studiensemester_kurzbz=' . $this->db_add_param($studiensemester_kurzbz) . ' + ORDER BY semester;'; + + if (!$this->db_query($qry)) + { + return false; + } + + $data = array(); + while ($row = $this->db_fetch_object()) + { + $data[] = $row->semester; + } + return $data; + } + + function isSemesterZugeordnet($studienplan_id, $studiensemester_kurzbz, $ausbildungssemester) + { + if (!is_numeric($studienplan_id)) + { + $this->errormsg = 'studienplan_id muss eine gueltige Zahl sein'; + return false; + } + + if (!is_string($studiensemester_kurzbz) || strlen($studiensemester_kurzbz) != 6) + { + $this->errormsg = 'studiensemester_kurzbz muss ein String mit 6 Zeichen sein'; + return false; + } + + if (!is_numeric($ausbildungssemester)) + { + $this->errormsg = 'ausbildungssemester muss eine gueltige Zahl sein'; + return false; + } + + $qry = 'SELECT * FROM lehre.tbl_studienplan_semester WHERE + studienplan_id=' . $this->db_add_param($studienplan_id) . ' AND + studiensemester_kurzbz=' . $this->db_add_param($studiensemester_kurzbz) . ' AND + semester=' . $this->db_add_param($ausbildungssemester) . ';'; + + if ($this->db_query($qry)) + { + if ($this->db_num_rows() == 1) + { + return true; + } + if ($this->db_num_rows() == 0) + { + return false; + } + return false; + } + return false; + } + + public function deleteSemesterZuordnung($studienplan_id, $studiensemester_kurzbz, $ausbildungssemester = NULL) + { + if (!is_numeric($studienplan_id)) + { + $this->errormsg = 'studienplan_id muss eine gueltige Zahl sein'; + return false; + } + + if (!is_string($studiensemester_kurzbz) || strlen($studiensemester_kurzbz) != 6) + { + $this->errormsg = 'studiensemester_kurzbz muss ein String mit 6 Zeichen sein'; + return false; + } + + $qry = 'DELETE FROM lehre.tbl_studienplan_semester + WHERE studienplan_id=' . $this->db_add_param($studienplan_id) . ' AND + studiensemester_kurzbz=' . $this->db_add_param($studiensemester_kurzbz) . ''; + if ($ausbildungssemester !== null) + $qry.=' AND semester=' . $this->db_add_param($ausbildungssemester) . ''; + + $qry.=';'; + + if ($this->db_query($qry)) + { + return true; + } else + { + $this->errormsg = 'Fehler beim Löschen der Zuordnung' . "\n"; + return false; + } + } + + /** + * prüft ob dem Studienplan Semester zugeordnet sind (Gültigkeit) + * @param int $studienplan_id Die ID des Studienplans + */ + public function hasSemesterZugeordnet($studienplan_id) + { + if (!is_numeric($studienplan_id)) + { + $this->errormsg = 'studienplan_id muss eine gueltige Zahl sein'; + return false; + } + + $qry = 'SELECT * FROM lehre.tbl_studienplan_semester WHERE + studienplan_id=' . $this->db_add_param($studienplan_id) . ';'; + + if ($this->db_query($qry)) + { + if ($this->db_num_rows() >= 1) + { + return true; + } + return false; + } + return false; + } } ?> diff --git a/system/dbupdate_3.2.php b/system/dbupdate_3.2.php index 15f3fb1b8..478010e5e 100644 --- a/system/dbupdate_3.2.php +++ b/system/dbupdate_3.2.php @@ -671,6 +671,173 @@ if(!$result = @$db->db_query("SELECT uhrzeit from lehre.tbl_abschlusspruefung LI echo 'lehre.tbl_abschlusspruefung: spalte uhrzeit hinzugefügt'; } +//Spalte status_kurzbz in lehre.tbl_studienordnung +if (!$result = @$db->db_query("SELECT status_kurzbz FROM lehre.tbl_studienordnung LIMIT 1;")) +{ + $qry = "ALTER TABLE lehre.tbl_studienordnung ADD COLUMN status_kurzbz varchar(32); + + ALTER TABLE lehre.tbl_studienordnung ADD CONSTRAINT status_kurzbz FOREIGN KEY (status_kurzbz) REFERENCES addon.tbl_stgv_studienordnungstatus (status_kurzbz) ON DELETE RESTRICT ON UPDATE CASCADE; + UPDATE lehre.tbl_studienordnung SET status_kurzbz = 'approved'; + "; + + if (!$db->db_query($qry)) + echo 'lehre.tbl_studienordnung: ' . $db->db_last_error() . '
'; + else + echo ' lehre.tbl_studienordnung: Spalte status_kurzbz hinzugefügt.
'; + +} + +//Spalte standort_id in lehre.tbl_studienordnung +if (!$result = @$db->db_query("SELECT standort_id FROM lehre.tbl_studienordnung LIMIT 1;")) +{ + $qry = "ALTER TABLE lehre.tbl_studienordnung ADD COLUMN standort_id integer; + + ALTER TABLE lehre.tbl_studienordnung ADD CONSTRAINT studienordnung_standort_id FOREIGN KEY (standort_id) REFERENCES public.tbl_standort (standort_id) ON DELETE RESTRICT ON UPDATE CASCADE; + "; + + if (!$db->db_query($qry)) + echo 'lehre.tbl_studienordnung: ' . $db->db_last_error() . '
'; + else + echo ' lehre.tbl_studienordnung: Spalte standort_id hinzugefügt.
'; + +} + +//Spalte ects_stpl in lehre.tbl_studienplan +if (!$result = @$db->db_query("SELECT ects_stpl FROM lehre.tbl_studienplan LIMIT 1;")) +{ + $qry = "ALTER TABLE lehre.tbl_studienplan ADD COLUMN ects_stpl numeric(5,2);"; + + if (!$db->db_query($qry)) + echo 'lehre.tbl_studienplan: ' . $db->db_last_error() . '
'; + else + echo ' lehre.tbl_studienplan: Spalte ects_stpl hinzugefügt.
'; + +} + +//Spalte pflicht_sws in lehre.tbl_studienplan +if (!$result = @$db->db_query("SELECT pflicht_sws FROM lehre.tbl_studienplan LIMIT 1;")) +{ + $qry = "ALTER TABLE lehre.tbl_studienplan ADD COLUMN pflicht_sws integer;"; + + if (!$db->db_query($qry)) + echo 'lehre.tbl_studienplan: ' . $db->db_last_error() . '
'; + else + echo ' lehre.tbl_studienplan: Spalte pflicht_sws hinzugefügt.
'; + +} + +//Spalte pflicht_lvs in lehre.tbl_studienplan +if (!$result = @$db->db_query("SELECT pflicht_lvs FROM lehre.tbl_studienplan LIMIT 1;")) +{ + $qry = "ALTER TABLE lehre.tbl_studienplan ADD COLUMN pflicht_lvs integer;"; + + if (!$db->db_query($qry)) + echo 'lehre.tbl_studienplan: ' . $db->db_last_error() . '
'; + else + echo ' lehre.tbl_studienplan: Spalte pflicht_lvs hinzugefügt.
'; + +} + +// Tabelle Studienplan_Semester +if (!$result = @$db->db_query("SELECT 1 FROM lehre.tbl_studienplan_semester LIMIT 1;")) { + $qry = "CREATE TABLE lehre.tbl_studienplan_semester + ( + studienplan_semester_id integer NOT NULL, + studienplan_id integer NOT NULL, + studiensemester_kurzbz varchar(16) NOT NULL, + semester smallint NOT NULL + ); + + CREATE SEQUENCE lehre.tbl_studienplan_semester_studienplan_semester_id + INCREMENT BY 1 + NO MAXVALUE + NO MINVALUE + CACHE 1; + + ALTER TABLE lehre.tbl_studienplan_semester ADD CONSTRAINT pk_studienplan_semester PRIMARY KEY (studienplan_semester_id); + ALTER TABLE lehre.tbl_studienplan_semester ALTER COLUMN studienplan_semester_id SET DEFAULT nextval('lehre.tbl_studienplan_semester_studienplan_semester_id'); + + ALTER TABLE lehre.tbl_studienplan_semester ADD CONSTRAINT fk_studienplan_semester_studienplan_id FOREIGN KEY (studienplan_id) REFERENCES lehre.tbl_studienplan (studienplan_id) ON DELETE RESTRICT ON UPDATE CASCADE; + ALTER TABLE lehre.tbl_studienplan_semester ADD CONSTRAINT fk_studienplan_semester_studiensemester FOREIGN KEY (studiensemester_kurzbz) REFERENCES public.tbl_studiensemester (studiensemester_kurzbz) ON DELETE RESTRICT ON UPDATE CASCADE; + + GRANT SELECT ON lehre.tbl_studienplan_semester TO web; + GRANT SELECT, UPDATE, INSERT, DELETE ON lehre.tbl_studienplan_semester TO vilesci; + GRANT SELECT, UPDATE ON lehre.tbl_studienplan_semester_studienplan_semester_id TO vilesci; + "; + + if (!$db->db_query($qry)) + echo 'lehre.tbl_studienplan_semester: ' . $db->db_last_error() . '
'; + else + echo ' lehre.tbl_studienplan_semester: Tabelle hinzugefuegt
'; +} + +//Tabelle public.tbl_bewerbungstermine +if (!$result = @$db->db_query("SELECT 1 FROM public.tbl_bewerbungstermine LIMIT 1;")) { + $qry = "CREATE TABLE public.tbl_bewerbungstermine + ( + bewerbungstermin_id integer NOT NULL, + studiengang_kz integer NOT NULL, + studiensemester_kurzbz varchar(16) NOT NULL, + beginn timestamp, + ende timestamp, + nachfrist boolean default false, + nachfrist_ende timestamp, + anmerkung text, + insertamum timestamp, + insertvon varchar(32), + updateamum timestamp, + updatevon varchar(32) + ); + + CREATE SEQUENCE public.tbl_bewerbungstermine_bewerbungstermin_id_seq + INCREMENT BY 1 + NO MAXVALUE + NO MINVALUE + CACHE 1; + + ALTER TABLE public.tbl_bewerbungstermine ADD CONSTRAINT pk_bewerbungstermin_id PRIMARY KEY (bewerbungstermin_id); + ALTER TABLE public.tbl_bewerbungstermine ALTER COLUMN bewerbungstermin_id SET DEFAULT nextval('public.tbl_bewerbungstermine_bewerbungstermin_id_seq'); + ALTER TABLE public.tbl_bewerbungstermine ADD CONSTRAINT fk_bewerbungstermin_studiensemester FOREIGN KEY (studiensemester_kurzbz) REFERENCES public.tbl_studiensemester (studiensemester_kurzbz) ON DELETE RESTRICT ON UPDATE CASCADE; + ALTER TABLE public.tbl_bewerbungstermine ADD CONSTRAINT fk_bewerbungstermin_studiengang FOREIGN KEY (studiengang_kz) REFERENCES public.tbl_studiengang (studiengang_kz) ON DELETE RESTRICT ON UPDATE CASCADE; + + GRANT SELECT ON public.tbl_bewerbungstermine TO web; + GRANT SELECT, UPDATE, INSERT, DELETE ON public.tbl_bewerbungstermine TO vilesci; + GRANT SELECT, UPDATE ON public.tbl_bewerbungstermine_bewerbungstermin_id_seq TO vilesci; + "; + + if (!$db->db_query($qry)) + echo 'public.tbl_studienordnungstatus: ' . $db->db_last_error() . '
'; + else + echo ' public.tbl_studienordnungstatus: Tabelle hinzugefuegt
'; +} + +//Tabelle lehre.tbl_studienordnungstatus +if (!$result = @$db->db_query("SELECT 1 FROM lehre.tbl_studienordnungstatus LIMIT 1;")) { + $qry = "CREATE TABLE lehre.tbl_studienordnungstatus + ( + status_kurzbz varchar(32) NOT NULL, + bezeichnung varchar(256), + reihenfolge integer + ); + + ALTER TABLE lehre.tbl_studienordnungstatus ADD CONSTRAINT pk_studienordnungstatus PRIMARY KEY (status_kurzbz); + + GRANT SELECT ON lehre.tbl_studienordnungstatus TO web; + GRANT SELECT, UPDATE, INSERT, DELETE ON lehre.tbl_studienordnungstatus TO vilesci; + + INSERT INTO lehre.tbl_studienordnungstatus (status_kurzbz, bezeichnung, reihenfolge) VALUES ('development', 'in Bearbeitung', 1); + INSERT INTO lehre.tbl_studienordnungstatus (status_kurzbz, bezeichnung, reihenfolge) VALUES ('review', 'in Review', 2); + INSERT INTO lehre.tbl_studienordnungstatus (status_kurzbz, bezeichnung, reihenfolge) VALUES ('approved', 'genehmigt', 3); + INSERT INTO lehre.tbl_studienordnungstatus (status_kurzbz, bezeichnung, reihenfolge) VALUES ('expired', 'ausgelaufen', 4); + INSERT INTO lehre.tbl_studienordnungstatus (status_kurzbz, bezeichnung, reihenfolge) VALUES ('notApproved', 'nicht genehmigt', 5); + "; + + if (!$db->db_query($qry)) + echo 'lehre.tbl_studienordnungstatus: ' . $db->db_last_error() . '
'; + else + echo ' lehre.tbl_studienordnungstatus: Tabelle hinzugefuegt
'; +} + // *** Pruefung und hinzufuegen der neuen Attribute und Tabellen echo '

Pruefe Tabellen und Attribute!

'; @@ -800,10 +967,12 @@ $tabellen=array( "lehre.tbl_projekttyp" => array("projekttyp_kurzbz","bezeichnung"), "lehre.tbl_pruefung" => array("pruefung_id","lehreinheit_id","student_uid","mitarbeiter_uid","note","pruefungstyp_kurzbz","datum","anmerkung","insertamum","insertvon","updateamum","updatevon","ext_id","pruefungsanmeldung_id","vertrag_id", "punkte"), "lehre.tbl_pruefungstyp" => array("pruefungstyp_kurzbz","beschreibung","abschluss"), - "lehre.tbl_studienordnung" => array("studienordnung_id","studiengang_kz","version","gueltigvon","gueltigbis","bezeichnung","ects","studiengangbezeichnung","studiengangbezeichnung_englisch","studiengangkurzbzlang","akadgrad_id","insertamum","insertvon","updateamum","updatevon","ext_id"), + "lehre.tbl_studienordnung" => array("studienordnung_id","studiengang_kz","version","gueltigvon","gueltigbis","bezeichnung","ects","studiengangbezeichnung","studiengangbezeichnung_englisch","studiengangkurzbzlang","akadgrad_id","insertamum","insertvon","updateamum","updatevon","ext_id", "status_kurzbz", "standort_id"), + "lehre.tbl_studienordnungstatus" => array("status_kurzbz","bezeichnung","reihenfolge"), "lehre.tbl_studienordnung_semester" => array("studienordnung_semester_id","studienordnung_id","studiensemester_kurzbz","semester"), - "lehre.tbl_studienplan" => array("studienplan_id","studienordnung_id","orgform_kurzbz","version","regelstudiendauer","sprache","aktiv","bezeichnung","insertamum","insertvon","updateamum","updatevon","semesterwochen","testtool_sprachwahl","ext_id"), + "lehre.tbl_studienplan" => array("studienplan_id","studienordnung_id","orgform_kurzbz","version","regelstudiendauer","sprache","aktiv","bezeichnung","insertamum","insertvon","updateamum","updatevon","semesterwochen","testtool_sprachwahl","ext_id", "ects_stpl", "pflicht_sws", "pflicht_lvs"), "lehre.tbl_studienplan_lehrveranstaltung" => array("studienplan_lehrveranstaltung_id","studienplan_id","lehrveranstaltung_id","semester","studienplan_lehrveranstaltung_id_parent","pflicht","koordinator","insertamum","insertvon","updateamum","updatevon","sort","ext_id", "curriculum"), + "lehre.tbl_studienplan_semester" => array("studienplan_semester_id", "studienplan_id", "studiensemester_kurzbz", "semester"), "lehre.tbl_studienplatz" => array("studienplatz_id","studiengang_kz","studiensemester_kurzbz","orgform_kurzbz","ausbildungssemester","gpz","npz","insertamum","insertvon","updateamum","updatevon","ext_id"), "lehre.tbl_stunde" => array("stunde","beginn","ende"), "lehre.tbl_stundenplan" => array("stundenplan_id","unr","mitarbeiter_uid","datum","stunde","ort_kurzbz","gruppe_kurzbz","titel","anmerkung","lehreinheit_id","studiengang_kz","semester","verband","gruppe","fix","updateamum","updatevon","insertamum","insertvon"), @@ -828,6 +997,7 @@ $tabellen=array( "public.tbl_benutzer" => array("uid","person_id","aktiv","alias","insertamum","insertvon","updateamum","updatevon","ext_id","updateaktivvon","updateaktivam","aktivierungscode"), "public.tbl_benutzerfunktion" => array("benutzerfunktion_id","fachbereich_kurzbz","uid","oe_kurzbz","funktion_kurzbz","semester", "datum_von","datum_bis", "updateamum","updatevon","insertamum","insertvon","ext_id","bezeichnung","wochenstunden"), "public.tbl_benutzergruppe" => array("uid","gruppe_kurzbz","studiensemester_kurzbz","updateamum","updatevon","insertamum","insertvon","ext_id"), + "public.tbl_bewerbungstermine" => array("bewerbungstermin_id","studiengang_kz","studiensemester_kurzbz","beginn","ende","nachfrist","nachfrist_ende","anmerkung", "insertamum", "insertvon", "updateamum", "updatevon"), "public.tbl_buchungstyp" => array("buchungstyp_kurzbz","beschreibung","standardbetrag","standardtext","aktiv","credit_points"), "public.tbl_dokument" => array("dokument_kurzbz","bezeichnung","ext_id","bezeichnung_mehrsprachig","dokumentbeschreibung_mehrsprachig"), "public.tbl_dokumentprestudent" => array("dokument_kurzbz","prestudent_id","mitarbeiter_uid","datum","updateamum","updatevon","insertamum","insertvon","ext_id"),