diff --git a/include/studienjahr.class.php b/include/studienjahr.class.php new file mode 100644 index 000000000..368fa8095 --- /dev/null +++ b/include/studienjahr.class.php @@ -0,0 +1,167 @@ +, + */ +require_once('basis_db.class.php'); + +class studienjahr extends basis_db +{ + public $new; // boolean + public $result = array(); // studienjahr Objekt + + //Tabellenspalten + public $studienjahr_kurzbz;// varchar(16) + public $bezeichnung; // varchar(64) + + /** + * Konstruktor - Laedt optional ein StSem + * + * @param $studienjahr_kurzbz StSem das geladen werden soll (default=null) + */ + public function __construct($studienjahr_kurzbz=null) + { + parent::__construct(); + + if($studienjahr_kurzbz != null) + $this->load($studienjahr_kurzbz); + } + + /** + * Laedt das Studienjahr mit der uebergebenen Kurzbz + * + * @param $studienjahr_kurzbz Stsem das geladen werden soll + */ + public function load($studienjahr_kurzbz) + { + $qry = "SELECT * FROM public.tbl_studienjahr WHERE studienjahr_kurzbz=".$this->db_add_param($studienjahr_kurzbz); + + if(!$this->db_query($qry)) + { + $this->errormsg = 'Fehler beim Lesen des Studienjahrs'; + return false; + } + + if($row = $this->db_fetch_object()) + { + $this->studienjahr_kurzbz = $row->studienjahr_kurzbz; + $this->bezeichnung = $row->bezeichnung; + } + else + { + $this->errormsg = "Es ist kein Studienjahr mit dieser Kurzbezeichung vorhanden"; + return false; + } + + return true; + } + + /** + * Prueft die Variablen vor dem Speichern + * auf Gueltigkeit. + * + * @return true wenn ok, false im Fehlerfall + */ + private function validate() + { + if(mb_strlen($this->studienjahr_kurzbz)>16) + { + $this->errormsg = 'Studienjahr Kurzbezeichnung darf nicht laenger als 16 Zeichen sein'; + return false; + } + if(mb_strlen($this->bezeichnung)>64) + { + $this->errormsg = 'Studienjahr Bezeichnung darf nicht laenger als 64 Zeichen sein'; + return false; + } + if($this->studienjahr_kurzbz=='') + { + $this->errormsg = 'Es muss eine Kurzbezeichnung eingegeben werden'; + return false; + } + return true; + } + + /** + * Speichert das Studienjahr in die Datenbank + * Wenn $new auf true gesetzt ist wird ein neuer Datensatz + * angelegt, ansonsten der Datensatz upgedated + * + * @return true wenn erfolgreich, false im Fehlerfall + */ + public function save() + { + //Variablen auf Gueltigkeit pruefen + if(!$this->validate()) + return false; + + if($this->new) + { + $qry = "INSERT INTO public.tbl_studienjahr (studienjahr_kurzbz, bezeichnung) + VALUES(".$this->db_add_param($this->studienjahr_kurzbz).",". + $this->db_add_param($this->bezeichnung).');'; + } + else + { + $qry = 'UPDATE public.tbl_studienjahr SET'. + ' start='.$this->db_add_param($this->start).','. + ' ende='.$this->db_add_param($this->ende). + " WHERE studienjahr_kurzbz=".$this->db_add_param($this->studienjahr_kurzbz); + } + + if($this->db_query($qry)) + { + //Log schreiben + return true; + } + else + { + $this->errormsg = 'Fehler beim Speichern des Studienjahrs'; + return false; + } + } + + /** + * Liefert alle Studienjahr + * + * @return true wenn ok, sonst false + */ + public function getAll() + { + $qry = "SELECT * FROM public.tbl_studienjahr ORDER BY studienjahr_kurzbz;"; + + if($this->db_query($qry)) + { + while($row = $this->db_fetch_object()) + { + $stsem_obj = new studienjahr(); + + $stsem_obj->studienjahr_kurzbz = $row->studienjahr_kurzbz; + $stsem_obj->bezeichnung = $row->bezeichnung; + + $this->result[] = $stsem_obj; + } + return true; + } + else + { + $this->errormsg = 'Fehler beim Laden der Studienjahr'; + return false; + } + } +} +?> diff --git a/system/dbupdate_3.2.php b/system/dbupdate_3.2.php index 738bbba72..f21de5640 100755 --- a/system/dbupdate_3.2.php +++ b/system/dbupdate_3.2.php @@ -1062,7 +1062,32 @@ if(!@$db->db_query("SELECT aufwand_pt FROM fue.tbl_projekt LIMIT 1")) echo '
Spalte aufwand_pt in fue.tbl_projekt hinzugefügt'; } +//Tabelle public.tbl_studienjahr +if (!$result = @$db->db_query("SELECT 1 FROM public.tbl_studienjahr LIMIT 1;")) +{ + $qry = " + CREATE TABLE public.tbl_studienjahr + ( + studienjahr_kurzbz varchar(16) NOT NULL, + bezeichnung varchar(64) + + ); + ALTER TABLE public.tbl_studienjahr ADD CONSTRAINT pk_studienjahr_kurzbz PRIMARY KEY (studienjahr_kurzbz); + + INSERT INTO public.tbl_studienjahr (studienjahr_kurzbz) SELECT DISTINCT s.studienjahr_kurzbz FROM public.tbl_studiensemester s; + + ALTER TABLE public.tbl_studiensemester ADD CONSTRAINT fk_studiensemester_studienjahr FOREIGN KEY (studienjahr_kurzbz) REFERENCES public.tbl_studienjahr (studienjahr_kurzbz) ON DELETE RESTRICT ON UPDATE CASCADE; + + GRANT SELECT ON public.tbl_studienjahr TO web; + GRANT SELECT, UPDATE, INSERT, DELETE ON public.tbl_studienjahr TO vilesci; + "; + + if (!$db->db_query($qry)) + echo 'public.tbl_studienjahr: ' . $db->db_last_error() . '
'; + else + echo 'public.tbl_studienjahr: Tabelle hinzugefuegt
'; +} @@ -1288,6 +1313,7 @@ $tabellen=array( "public.tbl_studentlehrverband" => array("student_uid","studiensemester_kurzbz","studiengang_kz","semester","verband","gruppe","updateamum","updatevon","insertamum","insertvon","ext_id"), "public.tbl_studiengang" => array("studiengang_kz","kurzbz","kurzbzlang","typ","bezeichnung","english","farbe","email","telefon","max_semester","max_verband","max_gruppe","erhalter_kz","bescheid","bescheidbgbl1","bescheidbgbl2","bescheidgz","bescheidvom","orgform_kurzbz","titelbescheidvom","aktiv","ext_id","zusatzinfo_html","moodle","sprache","testtool_sprachwahl","studienplaetze","oe_kurzbz","lgartcode","mischform","projektarbeit_note_anzeige", "onlinebewerbung"), "public.tbl_studiengangstyp" => array("typ","bezeichnung","beschreibung"), + "public.tbl_studienjahr" => array("studienjahr_id","studienjahr_kurzbz"), "public.tbl_studiensemester" => array("studiensemester_kurzbz","bezeichnung","start","ende","studienjahr_kurzbz","ext_id","beschreibung","onlinebewerbung"), "public.tbl_tag" => array("tag"), "public.tbl_variable" => array("name","uid","wert"),