diff --git a/include/lehrveranstaltung.class.php b/include/lehrveranstaltung.class.php index ec8c272a4..40b8f64f7 100755 --- a/include/lehrveranstaltung.class.php +++ b/include/lehrveranstaltung.class.php @@ -1177,7 +1177,7 @@ class lehrveranstaltung extends basis_db * @param $semeser Semester optional * @return boolean true wenn ok, false im Fehlerfall */ - public function loadLehrveranstaltungStudienplan($studienplan_id, $semester = null) + public function loadLehrveranstaltungStudienplan($studienplan_id, $semester = null, $order=null) { if (!is_numeric($studienplan_id) || $studienplan_id === '') { @@ -1204,7 +1204,10 @@ class lehrveranstaltung extends basis_db { $qry.=" AND tbl_studienplan_lehrveranstaltung.semester=" . $this->db_add_param($semester, FHC_INTEGER); } - $qry.=" ORDER BY stpllv_sort, semester, sort"; + if(is_null($order)) + $qry.=" ORDER BY stpllv_sort, semester, sort"; + else + $qry.=' ORDER BY '.$order; $this->lehrveranstaltungen = array(); if ($result = $this->db_query($qry)) { diff --git a/include/studiengang.class.php b/include/studiengang.class.php index 00317acf8..73c35f4b5 100755 --- a/include/studiengang.class.php +++ b/include/studiengang.class.php @@ -16,15 +16,15 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * * Authors: Christian Paminger , - * Andreas Oesterreicher , - * Rudolf Hangl and - * Gerald Raab . + * Andreas Oesterreicher , + * Rudolf Hangl and + * Gerald Raab . */ require_once(dirname(__FILE__).'/basis_db.class.php'); class studiengang extends basis_db { - public $new; // boolean + public $new; // boolean public $result = array(); // studiengang Objekt public $studiengang_kz; // integer @@ -63,7 +63,7 @@ class studiengang extends basis_db public $projektarbeit_note_anzeige; // boolean public $bezeichnung_arr = array(); - public $beschreibung; + public $beschreibung; /** * Konstruktor @@ -75,13 +75,6 @@ class studiengang extends basis_db if(!is_null($studiengang_kz)) $this->load($studiengang_kz); - - //$this->getAllTypes(); -/* $this->studiengang_typ_arr["b"] = "Bachelor"; - $this->studiengang_typ_arr["d"] = "Diplom"; - $this->studiengang_typ_arr["m"] = "Master"; - $this->studiengang_typ_arr["l"] = "LLL"; - $this->studiengang_typ_arr["e"] = "Erhalter"; */ } public function __get($value) @@ -234,22 +227,16 @@ class studiengang extends basis_db /** * Gibt alle Studiengaenge zurueck, fuer die man sich online bewerben kann - * @param array $studiensemester_kurzbz default: null Array aus Studiensemestern fuer die man sich onlinebewerben kann * @return boolean */ - public function getAllForBewerbung($studiensemester_kurzbz_arr=null) + public function getAllForBewerbung() { $qry = 'SELECT DISTINCT studiengang_kz, typ, organisationseinheittyp_kurzbz, studiengangbezeichnung, standort, studiengangbezeichnung_englisch, lgartcode, tbl_lgartcode.bezeichnung ' . 'FROM lehre.vw_studienplan ' . 'LEFT JOIN bis.tbl_lgartcode USING (lgartcode) ' . 'WHERE onlinebewerbung IS TRUE ' . 'AND aktiv IS TRUE '; - - /*if (!is_null($studiensemester_kurzbz_arr)) - { - $studiensemester_kurzbz_arr = $this->implode4SQL($studiensemester_kurzbz_arr); - $qry .= ' AND studiensemester_kurzbz IN('.$studiensemester_kurzbz_arr.')'; - }*/ + $qry .= ' ORDER BY typ, studiengangbezeichnung, tbl_lgartcode.bezeichnung ASC'; if(!$result = $this->db_query($qry)) @@ -693,56 +680,62 @@ class studiengang extends basis_db return $result; } - public function getStudiengangTyp($typ) - { - $qry = "SELECT * FROM public.tbl_studiengangstyp WHERE typ =".$this->db_add_param($typ,FHC_STRING).";"; + /** + * Laedt einen Studiengangstyp + * + * @param $typ Studiengangstyp + * @return boolean true wenn erfolgreich geladen, false im Fehlerfall + */ + public function getStudiengangTyp($typ) + { + $qry = "SELECT * FROM public.tbl_studiengangstyp WHERE typ =".$this->db_add_param($typ,FHC_STRING).";"; - if($result = $this->db_query($qry)) - { - if($row = $this->db_fetch_object($result)) - { - $this->typ = $row->typ; - $this->bezeichnung = $row->bezeichnung; - $this->beschreibung = $row->beschreibung; - } + if($result = $this->db_query($qry)) + { + if($row = $this->db_fetch_object($result)) + { + $this->typ = $row->typ; + $this->bezeichnung = $row->bezeichnung; + $this->beschreibung = $row->beschreibung; + } - return true; - } - else - { - $this->errormsg = "Fehler bei der Abfrage aufgetreten"; - return false; - } - } + return true; + } + else + { + $this->errormsg = "Fehler bei der Abfrage aufgetreten"; + return false; + } + } - /** - * @param $studiengaenge array - * @return array|bool - */ - public function getTypes($studiengaenge) { + /** + * @param $studiengaenge array + * @return array|bool + */ + public function getTypes($studiengaenge) { - $qry = 'SELECT distinct typ ' . - 'FROM public.tbl_studiengang ' . - 'WHERE studiengang_kz IN (' . implode(',', $studiengaenge) . ')'; + $qry = 'SELECT distinct typ ' . + 'FROM public.tbl_studiengang ' . + 'WHERE studiengang_kz IN (' . implode(',', $studiengaenge) . ')'; - $types = array(); + $types = array(); - if($result = $this->db_query($qry)) - { - while($row = $this->db_fetch_object($result)) { + if($result = $this->db_query($qry)) + { + while($row = $this->db_fetch_object($result)) { - $types[] = $row->typ; + $types[] = $row->typ; - } + } - return $types; - } - else - { - $this->errormsg = "Fehler bei der Abfrage aufgetreten"; - return false; - } - } + return $types; + } + else + { + $this->errormsg = "Fehler bei der Abfrage aufgetreten"; + return false; + } + } /** * Sucht nach einem Studiengang @@ -751,13 +744,13 @@ class studiengang extends basis_db */ public function search($searchItem) { - $qry = 'SELECT * FROM public.tbl_studiengang WHERE - LOWER(bezeichnung) LIKE LOWER(\'%'.$this->db_escape((implode(' ',$searchItem))).'%\') OR - LOWER(english) LIKE LOWER(\'%'.$this->db_escape((implode(' ',$searchItem))).'%\') - ORDER BY typ,bezeichnung;'; + $qry = 'SELECT * FROM public.tbl_studiengang WHERE + LOWER(bezeichnung) LIKE LOWER(\'%'.$this->db_escape((implode(' ',$searchItem))).'%\') OR + LOWER(english) LIKE LOWER(\'%'.$this->db_escape((implode(' ',$searchItem))).'%\') + ORDER BY typ,bezeichnung;'; - if($this->db_query($qry)) - { + if($this->db_query($qry)) + { while($row = $this->db_fetch_object()) { $obj = new studiengang(); @@ -799,12 +792,12 @@ class studiengang extends basis_db $this->result[] = $obj; } return true; - } - else - { + } + else + { $this->errormsg = 'Fehler beim Laden des Studiengangs'; return false; - } + } } /** @@ -911,4 +904,75 @@ class studiengang extends basis_db return false; } } + + /** + * Laedt die Studiengänge die innerhalb eines Studiensemesters gültig sind + * @param $studiensemester_kurzbz + */ + public function loadStudiengangFromStudiensemester($studiensemester_kurzbz) + { + $qry = "SELECT + distinct tbl_studiengang.* + FROM + public.tbl_studiengang + JOIN lehre.tbl_studienordnung USING(studiengang_kz) + JOIN lehre.tbl_studienplan USING(studienordnung_id) + JOIN lehre.tbl_studienplan_semester USING(studienplan_id) + WHERE + tbl_studienplan_semester.studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz)." + ORDER BY + typ, kurzbz"; + + if($this->db_query($qry)) + { + while($row = $this->db_fetch_object()) + { + $obj = new studiengang(); + + $obj->studiengang_kz = $row->studiengang_kz; + $obj->kurzbz = $row->kurzbz; + $obj->kurzbzlang = $row->kurzbzlang; + $obj->bezeichnung = $row->bezeichnung; + $obj->english = $row->english; + $obj->typ = $row->typ; + $obj->farbe = $row->farbe; + $obj->email = $row->email; + $obj->max_semester = $row->max_semester; + $obj->max_verband = $row->max_verband; + $obj->max_gruppe = $row->max_gruppe; + $obj->erhalter_kz = $row->erhalter_kz; + $obj->bescheid = $row->bescheid; + $obj->bescheidbgbl1 = $row->bescheidbgbl1; + $obj->bescheidbgbl2 = $row->bescheidbgbl2; + $obj->bescheidgz = $row->bescheidgz; + $obj->bescheidvom = $row->bescheidvom; + $obj->ext_id = $row->ext_id; + $obj->kuerzel = mb_strtoupper($row->typ . $row->kurzbz); + $obj->orgform_kurzbz = $row->orgform_kurzbz; + $obj->zusatzinfo_html = $row->zusatzinfo_html; + $obj->sprache = $row->sprache; + $obj->testtool_sprachwahl = $this->db_parse_bool($row->testtool_sprachwahl); + $obj->studienplaetze = $row->studienplaetze; + $obj->oe_kurzbz = $row->oe_kurzbz; + $obj->lgartcode = $row->lgartcode; + $obj->telefon = $row->telefon; + $obj->titelbescheidvom = $row->titelbescheidvom; + $obj->onlinebewerbung = $this->db_parse_bool($row->onlinebewerbung); + $obj->moodle = $this->db_parse_bool($row->moodle); + $obj->mischform = $this->db_parse_bool($row->mischform); + $obj->projektarbeit_note_anzeige = $this->db_parse_bool($row->projektarbeit_note_anzeige); + + $obj->bezeichnung_arr['German'] = $obj->bezeichnung; + $obj->bezeichnung_arr['English'] = $obj->english; + + $this->result[] = $obj; + } + return true; + } + else + { + $this->errormsg = "Fehler bei der Datenbankabfrage aufgetreten."; + return false; + } + } } diff --git a/include/studienordnung.class.php b/include/studienordnung.class.php index 73c05709b..2dbf270f2 100644 --- a/include/studienordnung.class.php +++ b/include/studienordnung.class.php @@ -149,24 +149,30 @@ class studienordnung extends basis_db if(is_null($studiensemester_kurzbz)) { - $qry = 'SELECT sto.*, s.bezeichnung as status_bezeichnung FROM lehre.tbl_studienordnung sto + $qry = 'SELECT sto.*, s.bezeichnung as status_bezeichnung, tbl_studiensemester.start as gueltig_startdatum + FROM lehre.tbl_studienordnung sto LEFT JOIN lehre.tbl_studienordnungstatus s USING(status_kurzbz) + LEFT JOIN public.tbl_studiensemester ON(sto.gueltigvon=tbl_studiensemester.studiensemester_kurzbz) WHERE studiengang_kz='.$this->db_add_param($studiengang_kz, FHC_INTEGER, false); } else { - $qry = 'SELECT distinct sto.*, s.bezeichnung as status_bezeichnung, sem.* FROM lehre.tbl_studienordnung sto + $qry = 'SELECT distinct sto.*, s.bezeichnung as status_bezeichnung, sem.*, tbl_studiensemester.start as gueltig_startdatum + FROM lehre.tbl_studienordnung sto JOIN lehre.tbl_studienordnungstatus s USING(status_kurzbz) LEFT JOIN lehre.tbl_studienplan USING(studienordnung_id) LEFT JOIN lehre.tbl_studienplan_semester sem USING (studienplan_id) + LEFT JOIN public.tbl_studiensemester ON(sto.gueltigvon=tbl_studiensemester.studiensemester_kurzbz) 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); + $qry.=" AND sem.studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz, FHC_STRING,false); if (!is_null($semester)) $qry.=" AND semester=".$this->db_add_param($semester, FHC_INTEGER,false); } + $qry.=" ORDER BY gueltig_startdatum desc"; + if(!$this->db_query($qry)) { $this->errormsg = 'Fehler bei einer Datenbankabfrage'; diff --git a/include/studienplan.class.php b/include/studienplan.class.php index 9cc117d85..f71c37d2a 100644 --- a/include/studienplan.class.php +++ b/include/studienplan.class.php @@ -157,6 +157,7 @@ class studienplan extends basis_db if(!is_null($orgform_kurzbz)) $qry.=" AND orgform_kurzbz=".$this->db_add_param($orgform_kurzbz); + $qry.=" ORDER BY bezeichnung"; if($this->db_query($qry)) { @@ -703,42 +704,42 @@ class studienplan extends basis_db function getStudienplaeneFromSem($studiengang_kz, $studiensemester_kurzbz, $ausbildungssemester="", $orgform_kurzbz = "") { $qry = "SELECT - studienplan_id, - studienordnung_id, - orgform_kurzbz, - tbl_studienplan.version AS version_studienplan, - tbl_studienplan.bezeichnung AS bezeichnung_studienplan, - regelstudiendauer, - sprache, - aktiv, - semesterwochen, - testtool_sprachwahl, - tbl_studienplan.insertamum AS insertamum_studienplan, - tbl_studienplan.insertvon AS insertvon_studienplan, - tbl_studienplan.updateamum AS updateamum_studienplan, - tbl_studienplan.updatevon AS updatevon_studienplan, - ects_stpl, - pflicht_sws, - pflicht_lvs, - studiengang_kz, + studienplan_id, + studienordnung_id, + orgform_kurzbz, + tbl_studienplan.version AS version_studienplan, + tbl_studienplan.bezeichnung AS bezeichnung_studienplan, + regelstudiendauer, + sprache, + aktiv, + semesterwochen, + testtool_sprachwahl, + tbl_studienplan.insertamum AS insertamum_studienplan, + tbl_studienplan.insertvon AS insertvon_studienplan, + tbl_studienplan.updateamum AS updateamum_studienplan, + tbl_studienplan.updatevon AS updatevon_studienplan, + ects_stpl, + pflicht_sws, + pflicht_lvs, + studiengang_kz, tbl_studienordnung.version AS version_studienordnung, - gueltigvon, - gueltigbis, - tbl_studienordnung.bezeichnung AS bezeichnung_studienordnung, - ects, - studiengangbezeichnung, - studiengangbezeichnung_englisch, - studiengangkurzbzlang, - akadgrad_id, - tbl_studienordnung.insertamum AS insertamum_studienordnung, - tbl_studienordnung.insertvon AS insertvon_studienordnung, - tbl_studienordnung.updateamum AS updateamum_studienordnung, - tbl_studienordnung.updatevon AS updatevon_studienordnung, - status_kurzbz, - standort_id, - studienplan_semester_id, - studiensemester_kurzbz, - semester + gueltigvon, + gueltigbis, + tbl_studienordnung.bezeichnung AS bezeichnung_studienordnung, + ects, + studiengangbezeichnung, + studiengangbezeichnung_englisch, + studiengangkurzbzlang, + akadgrad_id, + tbl_studienordnung.insertamum AS insertamum_studienordnung, + tbl_studienordnung.insertvon AS insertvon_studienordnung, + tbl_studienordnung.updateamum AS updateamum_studienordnung, + tbl_studienordnung.updatevon AS updatevon_studienordnung, + status_kurzbz, + standort_id, + studienplan_semester_id, + studiensemester_kurzbz, + semester FROM lehre.tbl_studienplan JOIN lehre.tbl_studienordnung USING(studienordnung_id) diff --git a/locale/de-AT/lehre.php b/locale/de-AT/lehre.php index 97f73c35a..69a144ca5 100755 --- a/locale/de-AT/lehre.php +++ b/locale/de-AT/lehre.php @@ -41,4 +41,7 @@ $this->phrasen['lehre/AbmeldungErfolgreich']='Sie wurden erfolgreich von der Leh $this->phrasen['lehre/AbmeldungAusGruppeNichtMoeglich']='Sie können sich nicht von dieser Lehrveranstaltung abmelden'; $this->phrasen['lehre/confirmAbmeldung']='Wollen Sie sich wirklich von der Lehrveranstaltung "%s" abmelden?'; $this->phrasen['lehre/nichtzugeteilt']='Sie sind nicht zu dieser Lehrveranstaltung zugeteilt'; + +$this->phrasen['lehre/studienordnung']='Studienordnung'; +$this->phrasen['lehre/studienplan']='Studienplan'; ?>