From 14fa86fded23c1e6c42c95463a4d97a2df4173fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Thu, 10 May 2007 13:15:13 +0000 Subject: [PATCH] =?UTF-8?q?-=20Senatsnews=20k=C3=B6nnen=20nur=20mehr=20"Ad?= =?UTF-8?q?min=200"=20Berechtigte=20eintragen=20-=20Bewerber->Student=20Er?= =?UTF-8?q?weiterungen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cis/private/lehre/pinboard.php | 1 + cis/private/tools/news_entry.php | 7 ++ cis/topbar.html | 2 +- content/student/studentDBDML.php | 127 +++++++++++++++++++++++++++---- include/benutzer.class.php | 16 ++-- include/prestudent.class.php | 4 +- include/student.class.php | 67 ++++++++++++++-- 7 files changed, 193 insertions(+), 31 deletions(-) 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