diff --git a/content/student/studentDBDML.php b/content/student/studentDBDML.php
index 34eaa5311..5fa5df947 100644
--- a/content/student/studentDBDML.php
+++ b/content/student/studentDBDML.php
@@ -797,6 +797,16 @@ if(!$error)
if($rolle->delete_rolle($_POST['prestudent_id'],$_POST['status_kurzbz'],$_POST['studiensemester_kurzbz'], $_POST['ausbildungssemester']))
{
$return = true;
+ if($return)
+ {
+ $student = new student();
+ $temp_uid = $student->getUid($rolle->prestudent_id);
+ if(!$student->delete_studentLehrverband($temp_uid, $_POST['studiengang_kz'], $rolle->studiensemester_kurzbz, $rolle->ausbildungssemester))
+ {
+ $return = false;
+ $errormsg = "Fehler beim Löschen der Lehrverbandszuordnung.";
+ }
+ }
}
else
{
@@ -955,6 +965,123 @@ if(!$error)
}
}
}
+ elseif(isset($_POST['type']) && $_POST['type']=='rolleVorruecken')
+ {
+ $errormsg='';
+ //Prestudentrolle speichern
+ if(!$error)
+ {
+ if(isset($_POST['prestudent_id']))
+ {
+ $rolle = new prestudent();
+ if(!$rolle->load($_POST['prestudent_id']))
+ {
+ $error = true;
+ $errormsg = 'Prestudent wurde nicht gefunden';
+ }
+ else
+ {
+ //Berechtigung pruefen
+ if(!$rechte->isBerechtigt('assistenz',$rolle->studiengang_kz,'suid') &&
+ !$rechte->isBerechtigt('admin',$rolle->studiengang_kz, 'suid'))
+ {
+ $error = true;
+ $errormsg = 'Sie haben keine Schreibrechte fuer diesen Studiengang';
+ }
+ }
+
+ $rolle = new prestudent();
+ $rolle->prestudent_id = $_POST['prestudent_id'];
+
+ if(!$error)
+ {
+ $studiensem = new studiensemester();
+ $stdsem = $studiensem->getNextFrom($_POST["studiensemester_kurzbz"]);
+// $stdsem = ($stdesm==false ? $_POST["studiensemester_kurzbz"]:$stdsem);
+ $semester = $_POST["ausbildungssemester"];
+ $semester++;
+ if((!$rolle->load_rolle($_POST['prestudent_id'], $_POST['status_kurzbz'], $stdsem, $semester)))
+ {
+ $rolle->new = true;
+ $rolle->insertamum = date('Y-m-d H:i:s');
+ $rolle->insertvon = $user;
+ $rolle->status_kurzbz = $_POST['status_kurzbz'];
+ $rolle->bestaetigtam = date('Y-m-d');
+ $rolle->bestaetigtvon = $user;
+
+ if($_POST['status_kurzbz']=='Student')
+ {
+ //Die Rolle Student darf nur eingefuegt werden, wenn schon eine Studentenrolle vorhanden ist
+ $qry = "SELECT count(*) as anzahl FROM public.tbl_student WHERE prestudent_id='".addslashes($_POST['prestudent_id'])."'";
+ if($result = $db->db_query($qry))
+ {
+ if($row = $db->db_fetch_object($result))
+ {
+ if($row->anzahl==0)
+ {
+ $error = true;
+ $errormsg = 'Ein Studentenstatus kann hier nur hinzugefuegt werden wenn die Person bereits Student ist. Um einen Bewerber zum Studenten zu machen waehlen Sie bitte unter "Status aendern" den Punkt "Student".';
+ $return = false;
+ }
+ }
+ }
+ }
+ }
+ else
+ {
+ //Rolle existiert bereits
+ $error = true;
+ $errormsg = "Rolle existiert bereits.";
+ $return = false;
+ }
+
+ if(!$error)
+ {
+ $rolle->ausbildungssemester = $semester;
+ $rolle->studiensemester_kurzbz = $stdsem;
+ $rolle->datum = date("Y-m-d");
+ $rolle->orgform_kurzbz = $_POST['orgform_kurzbz'];
+ $rolle->studienplan_id = $_POST['studienplan_id'];
+
+ if($rolle->save_rolle())
+ {
+ $return = true;
+ }
+ else
+ {
+ $return = false;
+ $errormsg = $rolle->errormsg;
+ }
+ }
+ $student = new student();
+ $temp_uid = $student->getUid($rolle->prestudent_id);
+ if(!$student->studentlehrverband_exists($temp_uid, $stdsem))
+ {
+ $lehrverband = new lehrverband();
+ $student->load_studentlehrverband($temp_uid, $_POST["studiensemester_kurzbz"]);
+
+ if(!$lehrverband->exists($student->studiengang_kz, $student->semester, $student->verband, $student->gruppe))
+ {
+ $lehrverband->studiengang_kz = $student->studiengang_kz;
+ $lehrverband->semester = $student->semester;
+ $lehrverband->verband = $student->verband;
+ $lehrverband->gruppe = $student->gruppe;
+ $lehrverband->save(true);
+ }
+
+ $student->studiensemester_kurzbz = $stdsem;
+ $student->semester = $semester;
+ $student->save_studentlehrverband(true);
+ }
+ }
+ }
+ else
+ {
+ $return = false;
+ $errormsg = 'Prestudent_id muss angegeben werden';
+ }
+ }
+ }
elseif(isset($_POST['type']) && $_POST['type']=='BewerberZuStudent')
{
// macht aus einem Bewerber einen Studenten
diff --git a/content/student/studentdetailoverlay.xul.php b/content/student/studentdetailoverlay.xul.php
index e062d818b..d08f2411c 100644
--- a/content/student/studentdetailoverlay.xul.php
+++ b/content/student/studentdetailoverlay.xul.php
@@ -252,6 +252,7 @@ echo '';
+
diff --git a/content/student/studentoverlay.js.php b/content/student/studentoverlay.js.php
index 41ee35c4e..b97342377 100644
--- a/content/student/studentoverlay.js.php
+++ b/content/student/studentoverlay.js.php
@@ -4539,3 +4539,60 @@ function StudentReihungstestDropDownSelect()
if(document.getElementById('student-prestudent-textbox-anmeldungreihungstest').value=='')
StudentAnmeldungreihungstestHeute();
}
+
+
+// ****
+// * Funktion um Status vorzurücken
+// ****
+function StudentPrestudentRolleVorruecken()
+{
+ netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
+ var tree = document.getElementById('student-prestudent-tree-rolle');
+
+ if (tree.currentIndex==-1)
+ {
+ return;
+ }
+
+ //markierte Rolle holen
+ var status_kurzbz = getTreeCellText(tree, 'student-prestudent-tree-rolle-status_kurzbz', tree.currentIndex);
+ var studiensemester_kurzbz = getTreeCellText(tree, 'student-prestudent-tree-rolle-studiensemester_kurzbz', tree.currentIndex);
+ var prestudent_id = getTreeCellText(tree, 'student-prestudent-tree-rolle-prestudent_id', tree.currentIndex);
+ var ausbildungssemester = getTreeCellText(tree, 'student-prestudent-tree-rolle-ausbildungssemester', tree.currentIndex);
+ var orgform_kurzbz = getTreeCellText(tree, 'student-prestudent-tree-rolle-orgform_kurzbz', tree.currentIndex);
+ var studienplan_id = getTreeCellText(tree, 'student-prestudent-tree-rolle-studienplan_id', tree.currentIndex);
+
+ studiengang_kz = document.getElementById('student-prestudent-menulist-studiengang_kz').value;
+
+ var url = 'content/student/studentDBDML.php';
+ var req = new phpRequest(url,'','');
+
+ req.add('type', 'rolleVorruecken');
+
+ req.add('status_kurzbz', status_kurzbz);
+ req.add('prestudent_id', prestudent_id);
+ req.add('studiensemester_kurzbz', studiensemester_kurzbz);
+ req.add('ausbildungssemester', ausbildungssemester);
+ req.add('orgform_kurzbz', orgform_kurzbz);
+ req.add('studienplan_id', studienplan_id);
+
+ var response = req.executePOST();
+
+ var val = new ParseReturnValue(response);
+ debug("Return: "+val.dbdml_return);
+ debug("Msg: "+val.dbdml_errormsg);
+ if (!val.dbdml_return)
+ {
+ if(val.dbdml_errormsg=='')
+ alert(response)
+ else
+ alert(val.dbdml_errormsg)
+ return false;
+ }
+ else
+ {
+ StudentDetailRolleTreeDatasource.Refresh(false);
+ SetStatusBarText('Daten wurden gespeichert');
+ return true;
+ }
+}
diff --git a/content/student/studentrolledialog.xul.php b/content/student/studentrolledialog.xul.php
index 51a3a82ed..63af34d2e 100644
--- a/content/student/studentrolledialog.xul.php
+++ b/content/student/studentrolledialog.xul.php
@@ -19,7 +19,6 @@
* Andreas Oesterreicher and
* Rudolf Hangl .
*/
-
header("Cache-Control: no-cache");
header("Cache-Control: post-check=0, pre-check=0",false);
header("Expires Mon, 26 Jul 1997 05:00:00 GMT");
diff --git a/include/student.class.php b/include/student.class.php
index 90365ffa5..c82b6849e 100644
--- a/include/student.class.php
+++ b/include/student.class.php
@@ -769,5 +769,33 @@ class student extends benutzer
}
return false;
}
+
+ /**
+ * Löscht die Zuordnung eines Studenten zu einer Lehrverbandsgruppe
+ * @param type $uid
+ * @param type $studiengang_kz
+ * @param type $studiensemester
+ * @param type $semester
+ * @param type $verband
+ * @param type $gruppe
+ */
+ public function delete_studentLehrverband($uid, $studiengang_kz, $studiensemester, $semester)
+ {
+ $qry = 'DELETE FROM public.tbl_studentlehrverband '
+ . 'WHERE student_uid='.$this->db_add_param($uid)
+ . ' AND studiensemester_kurzbz='.$this->db_add_param($studiensemester)
+ . ' AND studiengang_kz='.$this->db_add_param($studiengang_kz)
+ . ' AND semester='.$this->db_add_param($semester).';';
+
+ if($this->db_query($qry))
+ {
+ return true;
+ }
+ else
+ {
+ $this->errormsg = 'StudentLehrverband konnte nicht gelöscht werden.';
+ return false;
+ }
+ }
}
?>