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"),