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 '