diff --git a/cis/private/lehre/pinboard.php b/cis/private/lehre/pinboard.php
index 29920bc7f..a7696e90d 100644
--- a/cis/private/lehre/pinboard.php
+++ b/cis/private/lehre/pinboard.php
@@ -69,6 +69,7 @@
$short = $stg_obj->kuerzel;
$short_long = $stg_obj->kurzbzlang;
$course_id = $_GET['course_id'];
+ $term_id = $_GET['term_id'];
}
if(isset($_GET['fachbereich_kurzbz']))
diff --git a/cis/private/tools/news_entry.php b/cis/private/tools/news_entry.php
index 4ad47ebfd..7b1c64133 100644
--- a/cis/private/tools/news_entry.php
+++ b/cis/private/tools/news_entry.php
@@ -250,8 +250,15 @@
| Titel: |
> |
+isBerechtigt('admin','0'))
+ {
+?>
Senat: |
fachbereich_kurzbz=='Senat') echo ' checked'?>> |
+
diff --git a/cis/topbar.html b/cis/topbar.html
index d3e3d9219..bdf15add6 100644
--- a/cis/topbar.html
+++ b/cis/topbar.html
@@ -26,7 +26,7 @@
diff --git a/content/student/studentDBDML.php b/content/student/studentDBDML.php
index a6975308e..5a46344b6 100644
--- a/content/student/studentDBDML.php
+++ b/content/student/studentDBDML.php
@@ -403,24 +403,121 @@ if(!$error)
{
//Pruefen ob die Rolle Bewerber existiert
$hlp = new prestudent($conn);
- $hlp->getPrestudentRolle($_POST['prestudent_id'], 'Bewerber');
+ $hlp->getPrestudentRolle($_POST['prestudent_id'], 'Bewerber',null,'datum DESC, insertamum DESC');
if(count($hlp->result)>0)
{
- //pruefen ob die Kaution bezahlt wurde
- //??
-
- //Matrikelnummer und UID generieren
- $matrikelnr = generateMatrikelnummer($conn, $prestd->studiengang_kz, $hlp->result[0]->studiensemester_kurzbz);
- $uid = generateUID($conn, $matrikelnr);
-
- $return = false;
- $errormsg = "Matrikelnummer: $matrikelnr, UID: $uid";
-
- //Benutzerdatensatz anlegen
- //Studentendatensatz anlegen
- //Prestudentrolle hinzugfuegen
- //Eintrag tbl_studentlehrverband??
+ //pruefen ob schon eine Studentenrolle Existiert
+ $hlp1 = new prestudent($conn);
+ $hlp1->getPrestudentRolle($_POST['prestudent_id'], 'Student', $hlp->result[0]->studiensemester_kurzbz);
+ if(count($hlp1)>0)
+ {
+ $return = false;
+ $errormsg = 'Diese Person ist bereits Student';
+ }
+ else
+ {
+ //pruefen ob die Kaution bezahlt wurde
+ //??
+
+ pg_query($conn, 'BEGIN;');
+
+ //Matrikelnummer und UID generieren
+ $matrikelnr = generateMatrikelnummer($conn, $prestd->studiengang_kz, $hlp->result[0]->studiensemester_kurzbz);
+ $uid = generateUID($conn, $matrikelnr);
+
+ $return = false;
+ $errormsg = "Matrikelnummer: $matrikelnr, UID: $uid";
+
+ //Benutzerdatensatz anlegen
+ $benutzer = new benutzer($conn);
+ $benutzer->uid = $uid;
+ $benutzer->person_id = $prestd->person_id;
+ $benutzer->aktiv = true;
+
+ $qry_alias = "SELECT * FROM public.tbl_benutzer WHERE alias='$prestd->vorname.$prestd->nachname'";
+ $result_alias = pg_query($conn, $qry_alias);
+ if(pg_num_rows($result_alias)==0)
+ $benutzer->alias = $prestd->vorname.'.'.$prestd->nachname;
+ else
+ $benutzer->alias = '';
+
+ $benutzer->insertamum = date('Y-m-d H:i:s');
+ $benutzer->insertvon = $user;
+
+ if($benutzer->save(true, false))
+ {
+ //Studentendatensatz anlegen
+ $student = new student($conn);
+ $student->uid = $uid;
+ $student->matrikelnr = $matrikelnr;
+ $student->prestudent_id = $prestd->prestudent_id;
+ $student->studiengang_kz = $prestd->studiengang_kz;
+ $student->semester = $hlp->result[0]->ausbildungssemester;
+ $student->verband = ' ';
+ $student->gruppe = ' ';
+ $student->insertamum = date('Y-m-d H:i:s');
+ $student->insertvon = $user;
+
+ if($student->save(true, false))
+ {
+ //Prestudentrolle hinzugfuegen
+ $rolle = new prestudent($conn);
+ $rolle->prestudent_id = $prestd->prestudent_id;
+ $rolle->rolle_kurzbz = 'Student';
+ $rolle->studiensemester_kurzbz = $hlp->result[0]->studiensemester_kurzbz;
+ $rolle->ausbildungssemester = $hlp->result[0]->ausbildungssemester;
+ $rolle->datum = date('Y-m-d');
+ $rolle->insertamum = date('Y-m-d H:i:s');
+ $rolle->insertvon = $user;
+ $rolle->new = true;
+
+ if($rolle->save_rolle())
+ {
+ //StudentLehrverband anlegen
+ $studentlehrverband = new student($conn);
+ $studentlehrverband->uid = $uid;
+ $studentlehrverband->studiensemester_kurzbz = $hlp->result[0]->studiensemester_kurzbz;
+ $studentlehrverband->studiengang_kz = $prestd->studiengang_kz;
+ $studentlehrverband->semester = $hlp->result[0]->ausbildungssemester;
+ $studentlehrverband->verband = ' ';
+ $studentlehrverband->gruppe = ' ';
+ $studentlehrverband->insertamum = date('Y-m-d H:i:s');
+ $studentlehrverband->insertvon = $user;
+
+ if($studentlehrverband->save_studentlehrverband(true))
+ {
+ $return = true;
+ pg_query($conn, 'COMMIT;');
+ }
+ else
+ {
+ $errormsg = 'Fehler beim Speichern des Studentlehrverbandes: '.$studentlehrverband->errormsg;
+ $return = false;
+ pg_query($conn, 'ROLLBACK;');
+ }
+ }
+ else
+ {
+ $errormsg = 'Fehler beim Speichern des Rolle: '.$rolle->errormsg;
+ $return = false;
+ pg_query($conn, 'ROLLBACK;');
+ }
+ }
+ else
+ {
+ $errormsg = 'Fehler beim Speichern des Studenten: '.$student->errormsg;
+ $return = false;
+ pg_query($conn, 'ROLLBACK;');
+ }
+ }
+ else
+ {
+ $errormsg = 'Fehler beim Speichern des Benutzers: '.$benutzer->errormsg;
+ $return = false;
+ pg_query($conn, 'ROLLBACK;');
+ }
+ }
}
else
{
diff --git a/include/benutzer.class.php b/include/benutzer.class.php
index 2d5e40e4f..7399bfefd 100644
--- a/include/benutzer.class.php
+++ b/include/benutzer.class.php
@@ -126,17 +126,23 @@ class benutzer extends person
// * ansonsten der Datensatz mit $uid upgedated
// * @return true wenn erfolgreich, false im Fehlerfall
// ******************************************************************
- function save()
+ function save($new=null, $saveperson=true)
{
- //Personen Datensatz speichern
- if(!person::save())
- return false;
+ if($saveperson)
+ {
+ //Personen Datensatz speichern
+ if(!person::save())
+ return false;
+ }
+
+ if($new==null)
+ $new = $this->new;
//Variablen auf Gueltigkeit pruefen
if(!benutzer::validate())
return false;
- if($this->new) //Wenn new true ist dann ein INSERT absetzen ansonsten ein UPDATE
+ if($new) //Wenn new true ist dann ein INSERT absetzen ansonsten ein UPDATE
{
$qry = 'INSERT INTO public.tbl_benutzer (uid, aktiv, alias, person_id, insertamum, insertvon, updateamum, updatevon) VALUES('.
"'".addslashes($this->uid)."',".
diff --git a/include/prestudent.class.php b/include/prestudent.class.php
index 4e0a510bc..2a9b6fdc0 100644
--- a/include/prestudent.class.php
+++ b/include/prestudent.class.php
@@ -338,7 +338,7 @@ class prestudent extends person
// ********
// * Laedt die Rolle(n) eines Prestudenten
// ********
- function getPrestudentRolle($prestudent_id, $rolle_kurzbz=null, $studiensemester_kurzbz=null)
+ function getPrestudentRolle($prestudent_id, $rolle_kurzbz=null, $studiensemester_kurzbz=null, $order="datum, insertamum")
{
if(!is_numeric($prestudent_id))
{
@@ -351,7 +351,7 @@ class prestudent extends person
$qry.= " AND rolle_kurzbz='".addslashes($rolle_kurzbz)."'";
if($studiensemester_kurzbz!=null)
$qry.= " AND studiensemester_kurzbz='".addslashes($studiensemester_kurzbz)."'";
- $qry.= " ORDER BY datum, insertamum";
+ $qry.= ' ORDER BY '.$order;
if($result = pg_query($this->conn, $qry))
{
diff --git a/include/student.class.php b/include/student.class.php
index d8053b3a2..75fc7cfdb 100644
--- a/include/student.class.php
+++ b/include/student.class.php
@@ -161,25 +161,32 @@ class student extends benutzer
// * angelegt, ansonsten der Datensatz mit $person_id upgedated
// * @return true wenn erfolgreich, false im Fehlerfall
// ************************************************************
- function save()
+ function save($new=null, $savebenutzer=true)
{
//Variablen checken
if(!$this->validate())
return false;
pg_query($this->conn,'BEGIN;');
- //Basisdaten speichern
- if(!benutzer::save())
+
+ if($new==null)
+ $new = $this->new;
+
+ if($savebenutzer)
{
- pg_query($this->conn,'ROLLBACK;');
- return false;
+ //Basisdaten speichern
+ if(!benutzer::save())
+ {
+ pg_query($this->conn,'ROLLBACK;');
+ return false;
+ }
}
- if($this->new)
+ if($new)
{
//Neuen Datensatz anlegen
$qry = "INSERT INTO public.tbl_student(student_uid, matrikelnr, updateamum, updatevon, prestudent_id,
- studiengang_kz, semester, ext_id, verband, gruppe)
+ studiengang_kz, semester, ext_id, verband, gruppe, insertamum, insertvon)
VALUES('".addslashes($this->uid)."',".
$this->addslashes($this->matrikelnr).",".
$this->addslashes($this->updateamum).','.
@@ -189,7 +196,9 @@ class student extends benutzer
$this->semester.','.
($this->ext_id_student!=''?$this->ext_id_student:'null').','.
($this->verband!=''?"'".addslashes($this->verband)."'":' ').','.
- ($this->gruppe!=''?"'".addslashes($this->gruppe)."'":' ').');';
+ ($this->gruppe!=''?"'".addslashes($this->gruppe)."'":' ').','.
+ $this->addslashes($this->insertamum).','.
+ $this->addslashes($this->insertvon).');';
}
else
{
@@ -304,6 +313,48 @@ class student extends benutzer
}
return $result;
}
+
+ function save_studentlehrverband($new=null)
+ {
+ if($new==null)
+ $new = $this->new;
+
+ if($new)
+ {
+ $qry = "INSERT INTO public.tbl_studentlehrverband (student_uid, studiensemester_kurzbz, studiengang_kz, semester, verband, gruppe, updateamum, updatevon, insertamum, insertvon)
+ VALUES(".$this->addslashes($this->uid).','.
+ $this->addslashes($this->studiensemester_kurzbz).','.
+ $this->addslashes($this->studiengang_kz).','.
+ $this->addslashes($this->semester).','.
+ $this->addslashes(($this->verband==''?' ':$this->verband)).','.
+ $this->addslashes(($this->gruppe==''?' ':$this->gruppe)).','.
+ $this->addslashes($this->updateamum).','.
+ $this->addslashes($this->updatevon).','.
+ $this->addslashes($this->insertamum).','.
+ $this->addslashes($this->insertvon).');';
+ }
+ else
+ {
+ $qry = "UPDATE public.tbl_studentlehrverband SET".
+ " studiengang_kz=".$this->addslashes($this->studiengang_kz).",".
+ " semester=".$this->addslashes($this->semester).",".
+ " verband=".$this->addslashes(($this->verband==''?' ':$this->verband)).",".
+ " gruppe=".$this->addslashes(($this->gruppe==''?' ':$this->gruppe)).",".
+ " updateamum=".$this->addslashes($this->updateamum).",".
+ " updatevon=".$this->addslashes($this->updatevon).
+ "WHERE student_uid='".addslashes($this->uid)."' AND studiensemester_kurzbz='".addslashes($this->studiensemester_kurzbz)."'";
+ }
+
+ if(pg_query($this->conn, $qry))
+ {
+ return true;
+ }
+ else
+ {
+ $this->errormsg = 'Fehler beim Speichern der Studentlehrverband zuordnung';
+ return false;
+ }
+ }
}
?>
\ No newline at end of file
|