diff --git a/include/gruppe.class.php b/include/gruppe.class.php
index 8e4d6ffbd..019e6c025 100644
--- a/include/gruppe.class.php
+++ b/include/gruppe.class.php
@@ -47,6 +47,7 @@ class gruppe extends basis_db
public $orgform_kurzbz;
public $gesperrt=false; // boolean
public $zutrittssystem=false; // boolean
+ public $aufnahmegruppe=false; // boolean
/**
* Konstruktor - Laedt optional eine Gruppe
@@ -55,7 +56,7 @@ class gruppe extends basis_db
public function __construct($gruppe_kurzbz=null)
{
parent::__construct();
-
+
if(!is_null($gruppe_kurzbz))
$this->load($gruppe_kurzbz);
}
@@ -68,7 +69,7 @@ class gruppe extends basis_db
public function delete($gruppe_kurzbz)
{
$qry ="DELETE FROM public.tbl_gruppe WHERE gruppe_kurzbz=".$this->db_add_param($gruppe_kurzbz);
-
+
if($this->db_query($qry))
return true;
else
@@ -102,7 +103,7 @@ class gruppe extends basis_db
return false;
}
}
- else
+ else
{
$this->errormsg = 'Fehler bei einer Abfrage';
return false;
@@ -116,7 +117,7 @@ class gruppe extends basis_db
public function load($gruppe_kurzbz)
{
$qry = "SELECT * FROM public.tbl_gruppe WHERE gruppe_kurzbz=".$this->db_add_param($gruppe_kurzbz);
-
+
if($this->db_query($qry))
{
if($row = $this->db_fetch_object())
@@ -140,6 +141,7 @@ class gruppe extends basis_db
$this->orgform_kurzbz = $row->orgform_kurzbz;
$this->gesperrt = $this->db_parse_bool($row->gesperrt);
$this->zutrittssystem = $this->db_parse_bool($row->zutrittssystem);
+ $this->aufnahmegruppe = $this->db_parse_bool($row->aufnahmegruppe);
return true;
}
else
@@ -169,7 +171,7 @@ class gruppe extends basis_db
while($row = $this->db_fetch_object())
{
$grp_obj = new gruppe();
-
+
$grp_obj->gruppe_kurzbz = $row->gruppe_kurzbz;
$grp_obj->studiengang_kz = $row->studiengang_kz;
$grp_obj->bezeichnung = $row->bezeichnung;
@@ -189,6 +191,7 @@ class gruppe extends basis_db
$grp_obj->orgform_kurzbz = $row->orgform_kurzbz;
$grp_obj->gesperrt = $this->db_parse_bool($row->gesperrt);
$grp_obj->zutrittssystem = $this->db_parse_bool($row->zutrittssystem);
+ $grp_obj->aufnahmegruppe = $this->db_parse_bool($row->aufnahmegruppe);
$this->result[] = $grp_obj;
}
@@ -209,9 +212,9 @@ class gruppe extends basis_db
*/
public function countStudenten($gruppe_kurzbz)
{
- $qry = "SELECT count(*) as anzahl FROM public.tbl_benutzergruppe
+ $qry = "SELECT count(*) as anzahl FROM public.tbl_benutzergruppe
WHERE gruppe_kurzbz=".$this->db_add_param($gruppe_kurzbz);
-
+
if($this->db_query($qry))
{
if($row = $this->db_fetch_object())
@@ -265,7 +268,7 @@ class gruppe extends basis_db
while($row = $this->db_fetch_object())
{
$grp_obj = new gruppe();
-
+
$grp_obj->gruppe_kurzbz = $row->gruppe_kurzbz;
$grp_obj->studiengang_kz = $row->studiengang_kz;
$grp_obj->bezeichnung = $row->bezeichnung;
@@ -285,6 +288,7 @@ class gruppe extends basis_db
$grp_obj->orgform_kurzbz = $row->orgform_kurzbz;
$grp_obj->gesperrt = $this->db_parse_bool($row->gesperrt);
$grp_obj->zutrittsssystem = $this->db_parse_bool($row->zutrittssystem);
+ $grp_obj->aufnahmegruppe = $this->db_parse_bool($row->aufnahmegruppe);
$this->result[] = $grp_obj;
}
@@ -367,7 +371,7 @@ class gruppe extends basis_db
return true;
}
-
+
/**
* Speichert Gruppe in die Datenbank
* Wenn $new auf true gesetzt ist wird ein neuer Datensatz
@@ -385,15 +389,16 @@ class gruppe extends basis_db
if($new)
{
- if ($upper)
+ if ($upper)
$kurzbz = mb_strtoupper($this->gruppe_kurzbz);
else
$kurzbz = $this->gruppe_kurzbz;
-
+
$qry = 'INSERT INTO public.tbl_gruppe (gruppe_kurzbz, studiengang_kz, bezeichnung, semester, sort,
- mailgrp, beschreibung, sichtbar, generiert, aktiv, lehre, content_visible,
- updateamum, updatevon, insertamum, insertvon, orgform_kurzbz, gesperrt,zutrittssystem)
- VALUES('.$this->db_add_param($kurzbz).','.
+ mailgrp, beschreibung, sichtbar, generiert, aktiv, lehre, content_visible,
+ updateamum, updatevon, insertamum, insertvon, orgform_kurzbz, gesperrt,
+ zutrittssystem, aufnahmegruppe)
+ VALUES('.$this->db_add_param($kurzbz).','.
$this->db_add_param($this->studiengang_kz).','.
$this->db_add_param($this->bezeichnung).','.
$this->db_add_param($this->semester).','.
@@ -411,31 +416,34 @@ class gruppe extends basis_db
$this->db_add_param($this->insertvon).','.
$this->db_add_param($this->orgform_kurzbz).','.
$this->db_add_param($this->gesperrt, FHC_BOOLEAN).','.
- $this->db_add_param($this->zutrittssystem, FHC_BOOLEAN).');';
+ $this->db_add_param($this->zutrittssystem, FHC_BOOLEAN).','.
+ $this->db_add_param($this->aufnahmegruppe, FHC_BOOLEAN).');';
}
else
{
$qry = 'UPDATE public.tbl_gruppe SET'.
- ' studiengang_kz='.$this->db_add_param($this->studiengang_kz).','.
- ' bezeichnung='.$this->db_add_param($this->bezeichnung).','.
- ' semester='.$this->db_add_param($this->semester).','.
- ' sort='.$this->db_add_param($this->sort).','.
- ' mailgrp='.$this->db_add_param($this->mailgrp, FHC_BOOLEAN).','.
- ' beschreibung='.$this->db_add_param($this->beschreibung).','.
- ' sichtbar='.$this->db_add_param($this->sichtbar, FHC_BOOLEAN).','.
- ' generiert='.$this->db_add_param($this->generiert, FHC_BOOLEAN).','.
- ' aktiv='.$this->db_add_param($this->aktiv, FHC_BOOLEAN).','.
- ' lehre='.$this->db_add_param($this->lehre, FHC_BOOLEAN).','.
- ' content_visible='.$this->db_add_param($this->content_visible, FHC_BOOLEAN).','.
- ' updateamum='.$this->db_add_param($this->updateamum).','.
- ' updatevon='.$this->db_add_param($this->updatevon).','.
- ' orgform_kurzbz='.$this->db_add_param($this->orgform_kurzbz).', '.
- ' gesperrt='.$this->db_add_param($this->gesperrt, FHC_BOOLEAN).', '.
- ' zutrittssystem='.$this->db_add_param($this->zutrittssystem, FHC_BOOLEAN).' ';
- if($this->gruppe_kurbzNeu != null) {
- $qry.=', gruppe_kurzbz='.$this->db_add_param($this->gruppe_kurbzNeu).' ';
- }
- $qry.=" WHERE gruppe_kurzbz=".$this->db_add_param($this->gruppe_kurzbz).";";
+ ' studiengang_kz='.$this->db_add_param($this->studiengang_kz).','.
+ ' bezeichnung='.$this->db_add_param($this->bezeichnung).','.
+ ' semester='.$this->db_add_param($this->semester).','.
+ ' sort='.$this->db_add_param($this->sort).','.
+ ' mailgrp='.$this->db_add_param($this->mailgrp, FHC_BOOLEAN).','.
+ ' beschreibung='.$this->db_add_param($this->beschreibung).','.
+ ' sichtbar='.$this->db_add_param($this->sichtbar, FHC_BOOLEAN).','.
+ ' generiert='.$this->db_add_param($this->generiert, FHC_BOOLEAN).','.
+ ' aktiv='.$this->db_add_param($this->aktiv, FHC_BOOLEAN).','.
+ ' lehre='.$this->db_add_param($this->lehre, FHC_BOOLEAN).','.
+ ' content_visible='.$this->db_add_param($this->content_visible, FHC_BOOLEAN).','.
+ ' updateamum='.$this->db_add_param($this->updateamum).','.
+ ' updatevon='.$this->db_add_param($this->updatevon).','.
+ ' orgform_kurzbz='.$this->db_add_param($this->orgform_kurzbz).', '.
+ ' gesperrt='.$this->db_add_param($this->gesperrt, FHC_BOOLEAN).', '.
+ ' zutrittssystem='.$this->db_add_param($this->zutrittssystem, FHC_BOOLEAN).', '.
+ ' aufnahmegruppe='.$this->db_add_param($this->aufnahmegruppe, FHC_BOOLEAN).' ';
+ if($this->gruppe_kurbzNeu != null)
+ {
+ $qry.=', gruppe_kurzbz='.$this->db_add_param($this->gruppe_kurbzNeu).' ';
+ }
+ $qry.=" WHERE gruppe_kurzbz=".$this->db_add_param($this->gruppe_kurzbz).";";
}
if($this->db_query($qry))
@@ -449,34 +457,34 @@ class gruppe extends basis_db
return false;
}
}
-
+
/**
* Laedt die User dieser Gruppe
- *
+ *
* @param $gruppe_kurzbz
*/
public function loadUser($gruppe_kurzbz)
{
- $qry = "SELECT
+ $qry = "SELECT
tbl_benutzer.uid, tbl_person.vorname, tbl_person.nachname
- FROM
- public.tbl_benutzergruppe
- JOIN public.tbl_benutzer USING(uid)
- JOIN public.tbl_person USING(person_id)
+ FROM
+ public.tbl_benutzergruppe
+ JOIN public.tbl_benutzer USING(uid)
+ JOIN public.tbl_person USING(person_id)
WHERE
tbl_benutzergruppe.gruppe_kurzbz=".$this->db_add_param($gruppe_kurzbz)."
- ORDER BY nachname, vorname";
-
+ ORDER BY nachname, vorname";
+
if($result = $this->db_query($qry))
{
while($row = $this->db_fetch_object($result))
{
$obj = new gruppe();
-
+
$obj->uid = $row->uid;
$obj->vorname = $row->vorname;
$obj->nachname = $row->nachname;
-
+
$this->result[]=$obj;
}
return true;
@@ -485,9 +493,9 @@ class gruppe extends basis_db
{
$this->errormsg = 'Fehler beim Laden der Daten';
return false;
- }
+ }
}
-
+
/**
* Laedt alle Zutrittsgruppen in denen sich der Benutzer befindet
*
@@ -495,21 +503,21 @@ class gruppe extends basis_db
*/
public function loadZutrittsgruppen($user)
{
- $qry = "SELECT
- *
- FROM
- public.tbl_benutzergruppe
+ $qry = "SELECT
+ *
+ FROM
+ public.tbl_benutzergruppe
JOIN public.tbl_gruppe USING(gruppe_kurzbz)
WHERE
tbl_gruppe.zutrittssystem=true
AND tbl_benutzergruppe.uid=".$this->db_add_param($user);
-
+
if($result = $this->db_query($qry))
{
while($row = $this->db_fetch_object($result))
{
$grp_obj = new gruppe();
-
+
$grp_obj->gruppe_kurzbz = $row->gruppe_kurzbz;
$grp_obj->studiengang_kz = $row->studiengang_kz;
$grp_obj->bezeichnung = $row->bezeichnung;
@@ -529,6 +537,7 @@ class gruppe extends basis_db
$grp_obj->orgform_kurzbz = $row->orgform_kurzbz;
$grp_obj->gesperrt = $this->db_parse_bool($row->gesperrt);
$grp_obj->zutrittssystem = $this->db_parse_bool($row->zutrittssystem);
+ $grp_obj->aufnahmegruppe = $this->db_parse_bool($row->aufnahmegruppe);
$this->result[] = $grp_obj;
}
@@ -540,7 +549,7 @@ class gruppe extends basis_db
return false;
}
}
-
+
/**
* Prüft ob die Gruppenbezeichnung bereits vorhanden ist
* und gibt bei Bedarf die Bezeichnung inkl. Nummerierung zurück
@@ -550,7 +559,7 @@ class gruppe extends basis_db
public function getNummerierteGruppenbez($gruppe_kurzbz)
{
$gruppe_kurzbz_regex = $gruppe_kurzbz . '-[0-9]+$';
-
+
$qry = 'SELECT COUNT(gruppe_kurzbz) AS anzahl
FROM public.tbl_gruppe
WHERE gruppe_kurzbz = ' . $this->db_add_param($gruppe_kurzbz) . '
@@ -564,8 +573,55 @@ class gruppe extends basis_db
$gruppe_kurzbz = $gruppe_kurzbz . "-" . $row->anzahl;
}
}
-
+
return $gruppe_kurzbz;
}
+
+ /**
+ * Laedt alle Aufnahmegruppen
+ *
+ * @return boolean true wenn erfolgreich, false im Fehlerfall
+ */
+ public function getAufnahmegruppen()
+ {
+ $qry = "SELECT * FROM public.tbl_gruppe WHERE aufnahmegruppe=true ORDER BY bezeichnung";
+
+ if($result = $this->db_query($qry))
+ {
+ while($row = $this->db_fetch_object($result))
+ {
+ $grp_obj = new gruppe();
+
+ $grp_obj->gruppe_kurzbz = $row->gruppe_kurzbz;
+ $grp_obj->studiengang_kz = $row->studiengang_kz;
+ $grp_obj->bezeichnung = $row->bezeichnung;
+ $grp_obj->semester = $row->semester;
+ $grp_obj->sort = $row->sort;
+ $grp_obj->mailgrp = $this->db_parse_bool($row->mailgrp);
+ $grp_obj->lehre = $this->db_parse_bool($row->lehre);
+ $grp_obj->beschreibung = $row->beschreibung;
+ $grp_obj->sichtbar = $this->db_parse_bool($row->sichtbar);
+ $grp_obj->aktiv = $this->db_parse_bool($row->aktiv);
+ $grp_obj->content_visible = $this->db_parse_bool($row->content_visible);
+ $grp_obj->generiert = $this->db_parse_bool($row->generiert);
+ $grp_obj->updateamum = $row->updateamum;
+ $grp_obj->updatevon = $row->updatevon;
+ $grp_obj->insertamum = $row->insertamum;
+ $grp_obj->insertvon = $row->insertvon;
+ $grp_obj->orgform_kurzbz = $row->orgform_kurzbz;
+ $grp_obj->gesperrt = $this->db_parse_bool($row->gesperrt);
+ $grp_obj->zutrittssystem = $this->db_parse_bool($row->zutrittssystem);
+ $grp_obj->aufnahmegruppe = $this->db_parse_bool($row->aufnahmegruppe);
+
+ $this->result[] = $grp_obj;
+ }
+ return true;
+ }
+ else
+ {
+ $this->errormsg = 'Fehler beim Laden der Daten';
+ return false;
+ }
+ }
}
?>
diff --git a/include/reihungstest.class.php b/include/reihungstest.class.php
index 4ba670919..93c215f37 100644
--- a/include/reihungstest.class.php
+++ b/include/reihungstest.class.php
@@ -50,6 +50,7 @@ class reihungstest extends basis_db
public $studiensemester_kurzbz; //string
public $stufe; //smallint
public $anmeldefrist; //date
+ public $aufnahmegruppe_kurzbz; // varchar(32)
/**
* Konstruktor
@@ -100,6 +101,8 @@ class reihungstest extends basis_db
$this->studiensemester_kurzbz = $row->studiensemester_kurzbz;
$this->stufe = $row->stufe;
$this->anmeldefrist = $row->anmeldefrist;
+ $this->aufnahmegruppe_kurzbz = $row->aufnahmegruppe_kurzbz;
+
return true;
}
else
@@ -152,6 +155,7 @@ class reihungstest extends basis_db
$obj->studiensemester_kurzbz = $row->studiensemester_kurzbz;
$obj->stufe = $row->stufe;
$obj->anmeldefrist = $row->anmeldefrist;
+ $this->aufnahmegruppe_kurzbz = $row->aufnahmegruppe_kurzbz;
$this->result[] = $obj;
}
@@ -209,7 +213,7 @@ class reihungstest extends basis_db
$qry = 'BEGIN; INSERT INTO public.tbl_reihungstest (studiengang_kz, ort_kurzbz, anmerkung, datum, uhrzeit,
insertamum, insertvon, updateamum, updatevon, max_teilnehmer, oeffentlich, freigeschaltet,
- studiensemester_kurzbz, stufe, anmeldefrist) VALUES('.
+ studiensemester_kurzbz, stufe, anmeldefrist, aufnahmegruppe_kurzbz) VALUES('.
$this->db_add_param($this->studiengang_kz, FHC_INTEGER).', '.
$this->db_add_param($this->ort_kurzbz).', '.
$this->db_add_param($this->anmerkung).', '.
@@ -222,7 +226,8 @@ class reihungstest extends basis_db
$this->db_add_param($this->freigeschaltet, FHC_BOOLEAN).','.
$this->db_add_param($this->studiensemester_kurzbz).','.
$this->db_add_param($this->stufe, FHC_INTEGER).','.
- $this->db_add_param($this->anmeldefrist).');';
+ $this->db_add_param($this->anmeldefrist).','.
+ $this->db_add_param($this->aufnahmegruppe_kurzbz).');';
}
else
{
@@ -239,7 +244,8 @@ class reihungstest extends basis_db
'freigeschaltet='.$this->db_add_param($this->freigeschaltet, FHC_BOOLEAN).', '.
'studiensemester_kurzbz='.$this->db_add_param($this->studiensemester_kurzbz).', '.
'stufe='.$this->db_add_param($this->stufe, FHC_INTEGER).', '.
- 'anmeldefrist='.$this->db_add_param($this->anmeldefrist).' '.
+ 'anmeldefrist='.$this->db_add_param($this->anmeldefrist).', '.
+ 'aufnahmegruppe_kurzbz='.$this->db_add_param($this->aufnahmegruppe_kurzbz).' '.
'WHERE reihungstest_id='.$this->db_add_param($this->reihungstest_id, FHC_INTEGER, false).';';
}
@@ -324,6 +330,7 @@ class reihungstest extends basis_db
$obj->studiensemester_kurzbz = $row->studiensemester_kurzbz;
$obj->stufe = $row->stufe;
$obj->anmeldefrist = $row->anmeldefrist;
+ $obj->aufnahmegruppe_kurzbz = $row->aufnahmegruppe_kurzbz;
$this->result[] = $obj;
}
@@ -407,6 +414,7 @@ class reihungstest extends basis_db
$obj->angemeldete_teilnehmer = $row->angemeldete_teilnehmer;
$obj->stufe = $row->stufe;
$obj->anmeldefrist = $row->anmeldefrist;
+ $obj->aufnahmegruppe_kurzbz = $row->aufnahmegruppe_kurzbz;
$this->result[] = $obj;
}
@@ -455,6 +463,7 @@ class reihungstest extends basis_db
$obj->studiensemester_kurzbz = $row->studiensemester_kurzbz;
$obj->stufe = $row->stufe;
$obj->anmeldefrist = $row->anmeldefrist;
+ $obj->aufnahmegruppe_kurzbz = $row->aufnahmegruppe_kurzbz;
$this->result[] = $obj;
}
@@ -1001,6 +1010,7 @@ class reihungstest extends basis_db
$obj->studiensemester_kurzbz = $row->studiensemester_kurzbz;
$obj->stufe = $row->stufe;
$obj->anmeldefrist = $row->anmeldefrist;
+ $obj->aufnahmegruppe_kurzbz = $row->aufnahmegruppe_kurzbz;
$obj->angemeldete_teilnehmer = $row->angemeldete_teilnehmer;
$this->result[] = $obj;
@@ -1059,6 +1069,7 @@ class reihungstest extends basis_db
$obj->studiensemester_kurzbz = $row->studiensemester_kurzbz;
$obj->stufe = $row->stufe;
$obj->anmeldefrist = $row->anmeldefrist;
+ $obj->aufnahmegruppe_kurzbz = $row->aufnahmegruppe_kurzbz;
$this->result[] = $obj;
}
diff --git a/system/dbupdate_3.2.php b/system/dbupdate_3.2.php
index a46b3c1d1..ded5ddd96 100755
--- a/system/dbupdate_3.2.php
+++ b/system/dbupdate_3.2.php
@@ -1338,7 +1338,7 @@ if($result = $db->db_query("SELECT * FROM public.tbl_vorlage WHERE vorlage_kurzb
$testQuery = "SELECT setval('seq_vorlagestudiengang_vorlagestudiengang_id', max(vorlagestudiengang_id)) FROM tbl_vorlagestudiengang;";
$testResult = $db->db_query($testQuery);
-
+
$text = file_get_contents(DOC_ROOT . '/system/xsl/Bewerberakt.xsl');
while($row = $db->db_fetch_object($result))
@@ -1618,7 +1618,7 @@ if(!$result = @$db->db_query("SELECT bezeichnung_mehrsprachig FROM testtool.tbl_
echo 'testtool.tbl_gebiet '.$db->db_last_error().'
';
else
echo 'testtool.tbl_gebiet: Spalte bezeichnung_mehrsprachig hinzugefuegt!
';
-
+
// Bezeichnung_mehrsprachig aus existierender Bezeichnung vorausfuellen. Ein Eintrag fuer jede Sprache mit Content aktiv.
$qry_help = "SELECT count(*) FROM public.tbl_sprache WHERE content=TRUE;";
if(!$result = $db->db_query($qry_help))
@@ -1636,7 +1636,7 @@ if(!$result = @$db->db_query("SELECT bezeichnung_mehrsprachig FROM testtool.tbl_
//Komma am Ende entfernen
$bezeichnungen = mb_substr($bezeichnungen,0,-1);
$qry = "UPDATE testtool.tbl_gebiet set bezeichnung_mehrsprachig = cast('{".$bezeichnungen."}' as varchar[]);";
-
+
if(!$db->db_query($qry))
echo 'Setzen der bezeichnung_mehrsprachig fehlgeschlagen: '.$db->db_last_error().'
';
else
@@ -1655,6 +1655,21 @@ if($result = @$db->db_query("SELECT 1 FROM kommune.tbl_match"))
echo 'kommune schema is dropped
';
}
+// Aufnahmegruppe boolean tbl_gruppe, FK prestudent und reihungstest zu gruppe
+if(!$result = @$db->db_query("SELECT aufnahmegruppe FROM public.tbl_gruppe"))
+{
+ $qry = "ALTER TABLE public.tbl_gruppe ADD COLUMN aufnahmegruppe boolean DEFAULT false NOT NULL;
+ ALTER TABLE public.tbl_prestudent ADD COLUMN aufnahmegruppe_kurzbz varchar(32);
+ ALTER TABLE public.tbl_prestudent ADD CONSTRAINT fk_prestudent_aufnahmegruppe FOREIGN KEY (aufnahmegruppe_kurzbz) REFERENCES public.tbl_gruppe (gruppe_kurzbz) ON DELETE RESTRICT ON UPDATE CASCADE;
+ ALTER TABLE public.tbl_reihungstest ADD COLUMN aufnahmegruppe_kurzbz varchar(32);
+ ALTER TABLE public.tbl_reihungstest ADD CONSTRAINT fk_reihungstest_aufnahmegruppe FOREIGN KEY (aufnahmegruppe_kurzbz) REFERENCES public.tbl_gruppe (gruppe_kurzbz) ON DELETE RESTRICT ON UPDATE CASCADE;";
+
+ if(!$db->db_query($qry))
+ echo 'aufnahmegruppe '.$db->db_last_error().'
';
+ else
+ echo 'Boolean aufnahmegruppe zu Gruppen hinzugefuegt. aufnahmegruppe_kurzbz zu tbl_prestudent und tbl_reihungstest hinzugefuegt
';
+}
+
// *** Pruefung und hinzufuegen der neuen Attribute und Tabellen
echo '