Prestudent Status kann ein Semester vorgerückt werden. Gleichzeitig wird der Eintrag Student-Lehrverband aktualisiert.

This commit is contained in:
Stefan Puraner
2014-10-21 07:04:10 +00:00
parent 3628a8e04f
commit 1e66cd56c5
5 changed files with 213 additions and 1 deletions
+127
View File
@@ -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
@@ -252,6 +252,7 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
<menuitem label="Status bestaetigen" oncommand="StudentPrestudentRolleBestaetigen();" id="student-prestudent-rolle-tree-popup-approve" hidden="false"/>
<menuitem label="Neuen Status hinzufuegen" oncommand="StudentRolleAdd();" id="student-prestudent-rolle-tree-popup-add" hidden="false"/>
<menuitem label="Entfernen" oncommand="StudentPrestudentRolleDelete();" id="student-prestudent-rolle-tree-popup-delete" hidden="false"/>
<menuitem label="Status vorrücken" oncommand="StudentPrestudentRolleVorruecken();" id="student-prestudent-rolle-tree-popup-move_forward" hidden="false"/>
</menupopup>
</popupset>
<vbox hidden="true">
+57
View File
@@ -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 = '<?php echo APP_ROOT ?>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;
}
}
@@ -19,7 +19,6 @@
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
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");
+28
View File
@@ -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;
}
}
}
?>