diff --git a/content/ToDo_FASo.html b/content/ToDo_FASo.html
index f1d95d09b..7d9c3eb41 100644
--- a/content/ToDo_FASo.html
+++ b/content/ToDo_FASo.html
@@ -11,9 +11,8 @@
Offene Themen für die nächsten FAS-Meetings
+
- - Statusänderung für mehrere Studenten auf einmal
-(Interessent->Bewerber, Student->Diplomand, etc)
- Gruppierung von Interessenten
- Projektarbeit - "Betreuer einer Projekt- und Diplomarbeit"
@@ -421,6 +420,17 @@ Duplizierter Wert, etc.)
Erledigte Anforderungen
+ - Notenspiegel enthaelt nun auch die Noten aus den anderen
+Studiengängen (Wahlpflichtmodule)
+20.03.2008 oesi
+
+
+ - Statusänderung soll für mehrere Studenten gleichzeitig
+möglich sein
+(Interessent->Bewerber, Student->Diplomand, etc)
+20.03.2008 oesi
+
+
- Personen die mehrere Mitarbeiterdatensätze haben werden
jetzt richtig angezeigt.
19.03.2008 oesi
diff --git a/content/statistik/notenspiegel.php b/content/statistik/notenspiegel.php
index 3b28f6f22..97e7f09ac 100644
--- a/content/statistik/notenspiegel.php
+++ b/content/statistik/notenspiegel.php
@@ -46,25 +46,41 @@ $typ = isset($_GET['typ'])?$_GET['typ']:'';
if($semester=='')
die('Bitte ein Semester auswaehlen');
+$stg = new studiengang($conn);
+$stg_arr = array();
+$stg->getAll(false);
+foreach ($stg->result as $studiengang)
+ $stg_arr[$studiengang->studiengang_kz]=$studiengang->kuerzel;
+
$stg = new studiengang($conn);
$stg->load($studiengang_kz);
$student = new student($conn);
$result_student = $student->getStudents($studiengang_kz,$semester,null,null,null, $semester_aktuell);
-$lehrveranstaltung = new lehrveranstaltung($conn);
-$lehrveranstaltung->load_lva($studiengang_kz, $semester, null, null, true);
+//$lehrveranstaltung = new lehrveranstaltung($conn);
+//$lehrveranstaltung->load_lva($studiengang_kz, $semester, null, null, true);
$qry = "SELECT
- lehrveranstaltung_id, bezeichnung
+ lehrveranstaltung_id, bezeichnung, studiengang_kz, semester
FROM
lehre.tbl_lehrveranstaltung
WHERE
lehrveranstaltung_id IN
(
- SELECT distinct lehrveranstaltung_id FROM campus.vw_student_lehrveranstaltung
- WHERE studiengang_kz='$studiengang_kz' AND semester='$semester' AND studiensemester_kurzbz='$semester_aktuell'
+ SELECT
+ distinct lehrveranstaltung_id
+ FROM
+ campus.vw_student_lehrveranstaltung, public.tbl_studentlehrverband
+ WHERE
+ tbl_studentlehrverband.studiengang_kz='$studiengang_kz' AND
+ tbl_studentlehrverband.semester='$semester' AND
+ vw_student_lehrveranstaltung.studiensemester_kurzbz='$semester_aktuell' AND
+ uid=student_uid AND
+ vw_student_lehrveranstaltung.studiensemester_kurzbz=tbl_studentlehrverband.studiensemester_kurzbz
)
+ AND studiengang_kz<>0
ORDER BY bezeichnung";
+//echo $qry;
if(!$result_lva = pg_query($conn, $qry))
die('Fehler beim Ermitteln der Lehrveranstaltungen');
@@ -132,7 +148,7 @@ if($typ=='xls')
while($row_lva = pg_fetch_object($result_lva))
{
- $worksheet->write($zeile,++$spalte,$row_lva->bezeichnung, $format_rotate);
+ $worksheet->write($zeile,++$spalte,$stg_arr[$row_lva->studiengang_kz].$row_lva->semester.' '.$row_lva->bezeichnung, $format_rotate);
$maxlength[$spalte]=3;
}
$worksheet->write($zeile,++$spalte,'Notendurchschnitt', $format_bold);
@@ -279,7 +295,7 @@ else
echo '| Nr | Name | Personenkennzeichen | ';
while($row_lva = pg_fetch_object($result_lva))
{
- echo "$row_lva->bezeichnung | ";
+ echo "".$stg_arr[$row_lva->studiengang_kz]."$row_lva->semester $row_lva->bezeichnung | ";
}
echo 'Notendurchschnitt';
echo ' |
';
diff --git a/content/student/interessentoverlay.js.php b/content/student/interessentoverlay.js.php
index fc042ac35..b8df9b177 100644
--- a/content/student/interessentoverlay.js.php
+++ b/content/student/interessentoverlay.js.php
@@ -176,24 +176,24 @@ function InteressentzuBewerber()
//Wenn kein Interessent ausgewaehlt ist, dann abbrechen
if (tree.currentIndex==-1) return;
- //Voraussetzungen pruefen
- anmeldungreihungstest = document.getElementById('student-prestudent-textbox-anmeldungreihungstest').value;
- reihungstestangetreten = document.getElementById('student-prestudent-checkbox-reihungstestangetreten').checked;
+ //Alle markierten Personen holen
+ var start = new Object();
+ var end = new Object();
+ var numRanges = tree.view.selection.getRangeCount();
+ var paramList= '';
+ var anzahl=0;
- if(anmeldungreihungstest=='')
+ for (var t = 0; t < numRanges; t++)
{
- alert('Um einen Interessenten zum Bewerber zu machen, muss das Reihungstestdatum gesetzt sein');
- return false;
+ tree.view.selection.getRangeAt(t,start,end);
+ for (var v = start.value; v <= end.value; v++)
+ {
+ prestudent_id = getTreeCellText(tree, 'student-treecol-prestudent_id', v);
+ paramList += ';'+prestudent_id;
+ anzahl = anzahl+1;
+ }
}
- if(reihungstestangetreten==false)
- {
- alert('Um einen Interessenten zum Bewerber zu machen, muss das Feld "Zum Reihungstest angetreten" gesetzt sein');
- return false;
- }
-
- prestudent_id = document.getElementById('student-prestudent-textbox-prestudent_id').value;
-
//Rolle Bewerber hinzufuegen
var url = 'content/student/studentDBDML.php';
@@ -201,7 +201,7 @@ function InteressentzuBewerber()
req.add('type', 'addrolle');
- req.add('prestudent_id', prestudent_id);
+ req.add('prestudent_id', paramList);
req.add('rolle_kurzbz', 'Bewerber');
var response = req.executePOST();
@@ -241,14 +241,30 @@ function InteressentzuStudent()
//Wenn kein Interessent ausgewaehlt ist, dann abbrechen
if (tree.currentIndex==-1) return;
- prestudent_id = document.getElementById('student-prestudent-textbox-prestudent_id').value;
+ //Alle markierten Personen holen
+ var start = new Object();
+ var end = new Object();
+ var numRanges = tree.view.selection.getRangeCount();
+ var paramList= '';
+ var anzahl=0;
+ for (var t = 0; t < numRanges; t++)
+ {
+ tree.view.selection.getRangeAt(t,start,end);
+ for (var v = start.value; v <= end.value; v++)
+ {
+ prestudent_id = getTreeCellText(tree, 'student-treecol-prestudent_id', v);
+ paramList += ';'+prestudent_id;
+ anzahl = anzahl+1;
+ }
+ }
+
var url = 'content/student/studentDBDML.php';
var req = new phpRequest(url,'','');
req.add('type', 'BewerberZuStudent');
- req.add('prestudent_id', prestudent_id);
+ req.add('prestudent_id', paramList);
var response = req.executePOST();
@@ -279,19 +295,38 @@ function InteressentAddRolle(rolle)
var tree = document.getElementById('student-tree');
if (tree.currentIndex==-1) return;
+
+ //Alle markierten Personen holen
+ var start = new Object();
+ var end = new Object();
+ var numRanges = tree.view.selection.getRangeCount();
+ var paramList= '';
+ var anzahl=0;
- //Ausgewaehlte ID holen
- var col = tree.columns ? tree.columns["student-treecol-prestudent_id"] : "student-treecol-prestudent_id";
- var prestudent_id=tree.view.getCellText(tree.currentIndex,col);
+ for (var t = 0; t < numRanges; t++)
+ {
+ tree.view.selection.getRangeAt(t,start,end);
+ for (var v = start.value; v <= end.value; v++)
+ {
+ prestudent_id = getTreeCellText(tree, 'student-treecol-prestudent_id', v);
+ paramList += ';'+prestudent_id;
+ anzahl = anzahl+1;
+ }
+ }
- if(confirm('Diesen Studenten zum '+rolle+' machen?'))
+ if(anzahl>1)
+ conf = 'Diese '+anzahl+' Studenten';
+ else
+ conf = 'Diesen Studenten';
+
+ if(confirm(conf+' zum '+rolle+' machen?'))
{
var url = 'content/student/studentDBDML.php';
var req = new phpRequest(url,'','');
req.add('type', 'addrolle');
- req.add('prestudent_id', prestudent_id);
+ req.add('prestudent_id', paramList);
req.add('rolle_kurzbz', rolle);
var response = req.executePOST();
@@ -304,6 +339,7 @@ function InteressentAddRolle(rolle)
alert(response)
else
alert(val.dbdml_errormsg)
+ StudentTreeRefresh();
}
else
{
diff --git a/content/student/studentDBDML.php b/content/student/studentDBDML.php
index 1633275c9..7a8241b01 100644
--- a/content/student/studentDBDML.php
+++ b/content/student/studentDBDML.php
@@ -426,165 +426,196 @@ if(!$error)
if(!$error)
{
- if(isset($_POST['prestudent_id']))
+ $prestudent_ids = explode(';', $_POST['prestudent_id']);
+ $errormsg='';
+ $anzahl_fehler=0;
+ foreach($prestudent_ids as $prestudent_id)
{
- $prestd = new prestudent($conn);
- if(!$prestd->load($_POST['prestudent_id']))
+ $error = false;
+ if($prestudent_id!='')
{
- $error = true;
- $errormsg = 'Fehler beim Laden des Prestudenten';
- }
- else
- {
- if(!$rechte->isBerechtigt('assistenz',$prestd->studiengang_kz,'suid') &&
- !$rechte->isBerechtigt('admin',$prestd->studiengang_kz, 'suid'))
+ $prestd = new prestudent($conn);
+ if(!$prestd->load($prestudent_id))
{
$error = true;
- $errormsg = 'Sie haben keine Schreibrechte fuer diesen Studiengang';
- }
- }
-
- if(!$error)
- {
- if($prestd->getLastStatus($_POST['prestudent_id']))
- {
- if($_POST['rolle_kurzbz']=='Absolvent' || $_POST['rolle_kurzbz']=='Diplomand')
- $studiensemester = $semester_aktuell;
- else
- $studiensemester = $prestd->studiensemester_kurzbz;
- $hlp = new prestudent($conn);
-
- if($_POST['rolle_kurzbz']=='Student')
- $sem=$_POST['semester'];
- else
- $sem=$prestd->ausbildungssemester;
-
- $hlp->getPrestudentRolle($_POST['prestudent_id'], $_POST['rolle_kurzbz'], $studiensemester, "datum, insertamum", $sem);
- if(count($hlp->result)>0)
- {
- $errormsg = 'Diese Rolle ist bereits vorhanden';
- $return = false;
- }
- else
- {
- //Wenn der Status auf Aufgenommener oder Wartender geaendert wird,
- //muss ein Bewerberstatus vorhanden sein
- if($_POST['rolle_kurzbz']=='Aufgenommener' || $_POST['rolle_kurzbz']=='Wartender')
- {
- $qry = "SELECT * FROM public.tbl_prestudentrolle WHERE prestudent_id='".$_POST['prestudent_id']."' AND rolle_kurzbz='Bewerber'";
- if($result_bw = pg_query($conn, $qry))
- {
- if(pg_num_rows($result_bw)==0)
- {
- $return = false;
- $error = true;
- $errormsg = 'Person muss zuerst zum Bewerber gemacht werden!';
- }
- }
- }
-
- if(!$error)
- {
- $prestd_neu = new prestudent($conn);
- $prestd_neu->prestudent_id = $_POST['prestudent_id'];
- $prestd_neu->rolle_kurzbz = $_POST['rolle_kurzbz'];
- $prestd_neu->studiensemester_kurzbz = $studiensemester;
- $prestd_neu->datum = date('Y-m-d');
- $prestd_neu->ausbildungssemester = $sem;
- $prestd_neu->orgform_kurzbz = $prestd->orgform_kurzbz;
- $prestd_neu->insertamum = date('Y-m-d H:i:s');
- $prestd_neu->insertvon = $user;
- $prestd_neu->new = true;
-
- if($prestd_neu->save_rolle())
- {
- //Unterbrecher und Abbrecher werden ins 0. Semester verschoben
- if($_POST['rolle_kurzbz']=='Unterbrecher' || $_POST['rolle_kurzbz']=='Abbrecher')
- {
- $student = new student($conn);
- $uid = $student->getUid($_POST['prestudent_id']);
- $student->load($uid);
- $student->studiensemester_kurzbz=$semester_aktuell;
- $student->semester = '0';
- if($_POST['rolle_kurzbz']=='Abbrecher')
- $student->verband='A';
- if($_POST['rolle_kurzbz']=='Unterbrecher')
- $student->verband='B';
-
- //Nachschauen ob dieser Lehrverband schon existiert, falls nicht dann anlegen
- $lehrverband = new lehrverband($conn);
- if(!$lehrverband->exists($student->studiengang_kz, $student->semester, $student->verband, ''))
- {
- //Pruefen ob der uebergeordnete Lehrverband existiert, falls nicht dann anlegen
- if(!$lehrverband->exists($student->studiengang_kz, $student->semester, '', ''))
- {
- $lehrverband->studiengang_kz = $student->studiengang_kz;
- $lehrverband->semester = $student->semester;
- $lehrverband->verband = '';
- $lehrverband->gruppe = '';
- $lehrverband->aktiv = true;
- $lehrverband->bezeichnung = 'AbUnterbrecher/Incoming';
-
- $lehrverband->save(true);
- }
-
- $lehrverband->studiengang_kz = $student->studiengang_kz;
- $lehrverband->semester = $student->semester;
- $lehrverband->verband = $student->verband;
- $lehrverband->gruppe = '';
- $lehrverband->aktiv = true;
- if($student->verband=='A')
- $lehrverband->bezeichnung = 'Abbrecher';
- else
- $lehrverband->bezeichnung = 'Unterbrecher';
-
- $lehrverband->save(true);
- }
- //Student Speichern
- $student->save(false, false);
- //Studentlehrverband Eintrag Speichern
- $student->save_studentlehrverband(false);
- }
-
- //Wenn Unterbrecher zu Studenten werden, dann wird das Semester mituebergeben
- if($_POST['rolle_kurzbz']=='Student')
- {
- $student = new student($conn);
- $uid = $student->getUid($_POST['prestudent_id']);
- $student->load($uid);
- $student->studiensemester_kurzbz=$semester_aktuell;
- $student->semester = $_POST['semester'];
- $student->save(false, false);
- $student->save_studentlehrverband(false);
- //Aktiv Status setzen
- $benutzer = new benutzer($conn);
- if($benutzer->load($uid))
- {
- $benutzer->bnaktiv=true;
- $benutzer->save(false, false);
- }
- }
- $return = true;
- }
- else
- {
- $return = false;
- $errormsg = $prestd_neu->errormsg;
- }
- }
- }
+ $errormsg .= "\n$prestd->vorname $prestd->nachname: Fehler beim Laden des Prestudenten";
+ $anzahl_fehler++;
}
else
{
- $return = false;
- $errormsg = 'Es ist keine Rolle fuer diesen Prestudent vorhanden';
+ if(!$rechte->isBerechtigt('assistenz',$prestd->studiengang_kz,'suid') &&
+ !$rechte->isBerechtigt('admin',$prestd->studiengang_kz, 'suid'))
+ {
+ $error = true;
+ $errormsg .= "\n$prestd->vorname $prestd->nachname: Sie haben keine Schreibrechte fuer diesen Studiengang";
+ $anzahl_fehler++;
+ }
+ }
+
+ if($_POST['rolle_kurzbz']=='Bewerber' && !$prestd->anmeldungreihungstest)
+ {
+ $error = true;
+ $errormsg .= "\n $prestd->vorname $prestd->nachname: Um einen Interessenten zum Bewerber zu machen, muss das Reihungstestdatum gesetzt sein.";
+ $anzahl_fehler++;
+ }
+
+ if($_POST['rolle_kurzbz']=='Bewerber' && !$prestd->reihungstestangetreten)
+ {
+ $error = true;
+ $errormsg .= "\n $prestd->vorname $prestd->nachname: Um einen Interessenten zum Bewerber zu machen, muss das Feld 'Zum Reihungstest angetreten' gesetzt sein.";
+ $anzahl_fehler++;
+ }
+ if(!$error)
+ {
+ if($prestd->getLastStatus($prestudent_id))
+ {
+ if($_POST['rolle_kurzbz']=='Absolvent' || $_POST['rolle_kurzbz']=='Diplomand')
+ $studiensemester = $semester_aktuell;
+ else
+ $studiensemester = $prestd->studiensemester_kurzbz;
+ $hlp = new prestudent($conn);
+
+ if($_POST['rolle_kurzbz']=='Student')
+ $sem=$_POST['semester'];
+ else
+ $sem=$prestd->ausbildungssemester;
+
+ $hlp->getPrestudentRolle($prestudent_id, $_POST['rolle_kurzbz'], $studiensemester, "datum, insertamum", $sem);
+ if(count($hlp->result)>0)
+ {
+ $errormsg .= "\n$prestd->vorname $prestd->nachname: Diese Rolle ist bereits vorhanden";
+ $anzahl_fehler++;
+ $return = false;
+ }
+ else
+ {
+ //Wenn der Status auf Aufgenommener oder Wartender geaendert wird,
+ //muss ein Bewerberstatus vorhanden sein
+ if($_POST['rolle_kurzbz']=='Aufgenommener' || $_POST['rolle_kurzbz']=='Wartender')
+ {
+ $qry = "SELECT * FROM public.tbl_prestudentrolle WHERE prestudent_id='".$prestudent_id."' AND rolle_kurzbz='Bewerber'";
+ if($result_bw = pg_query($conn, $qry))
+ {
+ if(pg_num_rows($result_bw)==0)
+ {
+ $return = false;
+ $error = true;
+ $errormsg .= "\n$prestd->vorname $prestd->nachname: Person muss zuerst zum Bewerber gemacht werden!";
+ $anzahl_fehler++;
+ }
+ }
+ }
+
+ if(!$error)
+ {
+ $prestd_neu = new prestudent($conn);
+ $prestd_neu->prestudent_id = $prestudent_id;
+ $prestd_neu->rolle_kurzbz = $_POST['rolle_kurzbz'];
+ $prestd_neu->studiensemester_kurzbz = $studiensemester;
+ $prestd_neu->datum = date('Y-m-d');
+ $prestd_neu->ausbildungssemester = $sem;
+ $prestd_neu->orgform_kurzbz = $prestd->orgform_kurzbz;
+ $prestd_neu->insertamum = date('Y-m-d H:i:s');
+ $prestd_neu->insertvon = $user;
+ $prestd_neu->new = true;
+
+ if($prestd_neu->save_rolle())
+ {
+ //Unterbrecher und Abbrecher werden ins 0. Semester verschoben
+ if($_POST['rolle_kurzbz']=='Unterbrecher' || $_POST['rolle_kurzbz']=='Abbrecher')
+ {
+ $student = new student($conn);
+ $uid = $student->getUid($prestudent_id);
+ $student->load($uid);
+ $student->studiensemester_kurzbz=$semester_aktuell;
+ $student->semester = '0';
+ if($_POST['rolle_kurzbz']=='Abbrecher')
+ $student->verband='A';
+ if($_POST['rolle_kurzbz']=='Unterbrecher')
+ $student->verband='B';
+
+ //Nachschauen ob dieser Lehrverband schon existiert, falls nicht dann anlegen
+ $lehrverband = new lehrverband($conn);
+ if(!$lehrverband->exists($student->studiengang_kz, $student->semester, $student->verband, ''))
+ {
+ //Pruefen ob der uebergeordnete Lehrverband existiert, falls nicht dann anlegen
+ if(!$lehrverband->exists($student->studiengang_kz, $student->semester, '', ''))
+ {
+ $lehrverband->studiengang_kz = $student->studiengang_kz;
+ $lehrverband->semester = $student->semester;
+ $lehrverband->verband = '';
+ $lehrverband->gruppe = '';
+ $lehrverband->aktiv = true;
+ $lehrverband->bezeichnung = 'AbUnterbrecher/Incoming';
+
+ $lehrverband->save(true);
+ }
+
+ $lehrverband->studiengang_kz = $student->studiengang_kz;
+ $lehrverband->semester = $student->semester;
+ $lehrverband->verband = $student->verband;
+ $lehrverband->gruppe = '';
+ $lehrverband->aktiv = true;
+ if($student->verband=='A')
+ $lehrverband->bezeichnung = 'Abbrecher';
+ else
+ $lehrverband->bezeichnung = 'Unterbrecher';
+
+ $lehrverband->save(true);
+ }
+ //Student Speichern
+ $student->save(false, false);
+ //Studentlehrverband Eintrag Speichern
+ $student->save_studentlehrverband(false);
+ }
+
+ //Wenn Unterbrecher zu Studenten werden, dann wird das Semester mituebergeben
+ if($_POST['rolle_kurzbz']=='Student')
+ {
+ $student = new student($conn);
+ $uid = $student->getUid($prestudent_id);
+ $student->load($uid);
+ $student->studiensemester_kurzbz=$semester_aktuell;
+ $student->semester = $_POST['semester'];
+ $student->save(false, false);
+ $student->save_studentlehrverband(false);
+ //Aktiv Status setzen
+ $benutzer = new benutzer($conn);
+ if($benutzer->load($uid))
+ {
+ $benutzer->bnaktiv=true;
+ $benutzer->save(false, false);
+ }
+ }
+ $return = true;
+ }
+ else
+ {
+ $return = false;
+ $errormsg = "\n$prestd->vorname $prestd->nachname: ".$prestd_neu->errormsg;
+ $anzahl_fehler++;
+ }
+ }
+ }
+ }
+ else
+ {
+ $return = false;
+ $errormsg .= "\n$prestd->vorname $prestd->nachname: Es ist keine Rolle fuer diesen Prestudent vorhanden";
+ $anzahl_fehler++;
+ }
}
}
}
- else
+
+ if($anzahl_fehler>0)
{
$return = false;
- $errormsg = 'Prestudent_id muss angegeben werden';
+ $errormsg = "Es sind $anzahl_fehler Fehler aufgetreten: ".$errormsg;
+ }
+ else
+ {
+ $return = true;
}
}
}
@@ -764,179 +795,205 @@ if(!$error)
{
if(isset($_POST['prestudent_id']))
{
- $prestd = new prestudent($conn);
- if($prestd->load($_POST['prestudent_id']))
+ $prestudent_ids = explode(';', $_POST['prestudent_id']);
+ $anzahl_fehler=0;
+ foreach ($prestudent_ids as $prestudent_id)
{
- //Berechtigung pruefen
- if(!$rechte->isBerechtigt('assistenz',$prestd->studiengang_kz,'suid') &&
- !$rechte->isBerechtigt('admin',$prestd->studiengang_kz, 'suid'))
+ $error = false;
+ if($prestudent_id!='')
{
- $error = true;
- $errormsg = 'Sie haben keine Schreibrechte fuer diesen Studiengang';
- }
-
- if(!$error)
- {
- if($prestd->zgv_code!='')
+
+ $prestd = new prestudent($conn);
+ if($prestd->load($prestudent_id))
{
- $stg = new studiengang($conn);
- $stg->load($prestd->studiengang_kz);
-
- if($stg->typ=='m' && $prestd->zgvmas_code=='')
+ //Berechtigung pruefen
+ if(!$rechte->isBerechtigt('assistenz',$prestd->studiengang_kz,'suid') &&
+ !$rechte->isBerechtigt('admin',$prestd->studiengang_kz, 'suid'))
{
- $return = false;
- $errormsg = 'ZGV Master muss eingegeben werden';
+ $error = true;
+ $errormsg .= "\n$prestd->vorname $prestd->nachname: Sie haben keine Schreibrechte fuer diesen Studiengang";
+ $anzahl_fehler++;
}
- else
+
+ if(!$error)
{
- //Pruefen ob die Rolle Bewerber existiert
- $hlp = new prestudent($conn);
- $hlp->getPrestudentRolle($_POST['prestudent_id'], 'Bewerber',null,'datum DESC, insertamum DESC');
-
- if(count($hlp->result)>0)
+ if($prestd->zgv_code!='')
{
- //pruefen ob schon eine Studentenrolle Existiert
- $hlp1 = new prestudent($conn);
- $hlp1->getPrestudentRolle($_POST['prestudent_id'], 'Student', $hlp->result[0]->studiensemester_kurzbz);
- if(count($hlp1->result)>0)
+ $stg = new studiengang($conn);
+ $stg->load($prestd->studiengang_kz);
+
+ if($stg->typ=='m' && $prestd->zgvmas_code=='')
{
$return = false;
- $errormsg = 'Diese Person ist bereits Student';
+ $errormsg .= "\n$prestd->vorname $prestd->nachname: ZGV Master muss eingegeben werden";
+ $anzahl_fehler++;
}
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);
- $jahr = substr($matrikelnr,0, 2);
- $stg = substr($matrikelnr, 3, 4);
- $stg_obj = new studiengang($conn);
- $stg_obj->load(ltrim($stg,'0'));
- $uid = generateUID($stg_obj->kurzbz,$jahr,$stg_obj->typ,$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=LOWER('".clean_string($prestd->vorname).".".clean_string($prestd->nachname)."')";
- $result_alias = pg_query($conn, $qry_alias);
- if(pg_num_rows($result_alias)==0)
- $benutzer->alias = strtolower(clean_string($prestd->vorname).'.'.clean_string($prestd->nachname));
- else
- $benutzer->alias = '';
-
- $benutzer->insertamum = date('Y-m-d H:i:s');
- $benutzer->insertvon = $user;
-
- if($benutzer->save(true, false))
+ //Pruefen ob die Rolle Bewerber existiert
+ $hlp = new prestudent($conn);
+ $hlp->getPrestudentRolle($prestudent_id, 'Bewerber',null,'datum DESC, insertamum DESC');
+
+ if(count($hlp->result)>0)
{
- //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))
+ //pruefen ob schon eine Studentenrolle Existiert
+ $hlp1 = new prestudent($conn);
+ $hlp1->getPrestudentRolle($prestudent_id, 'Student', $hlp->result[0]->studiensemester_kurzbz);
+ if(count($hlp1->result)>0)
{
- //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->orgform_kurzbz = $hlp->result[0]->orgform_kurzbz;
- $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())
+ $return = false;
+ $errormsg .= "\n$prestd->vorname $prestd->nachname: Diese Person ist bereits Student";
+ $anzahl_fehler++;
+ }
+ 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);
+ $jahr = substr($matrikelnr,0, 2);
+ $stg = substr($matrikelnr, 3, 4);
+ $stg_obj = new studiengang($conn);
+ $stg_obj->load(ltrim($stg,'0'));
+ $uid = generateUID($stg_obj->kurzbz,$jahr,$stg_obj->typ,$matrikelnr);
+
+ //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=LOWER('".clean_string($prestd->vorname).".".clean_string($prestd->nachname)."')";
+ $result_alias = pg_query($conn, $qry_alias);
+ if(pg_num_rows($result_alias)==0)
+ $benutzer->alias = strtolower(clean_string($prestd->vorname).'.'.clean_string($prestd->nachname));
+ else
+ $benutzer->alias = '';
+
+ $benutzer->insertamum = date('Y-m-d H:i:s');
+ $benutzer->insertvon = $user;
+
+ if($benutzer->save(true, false))
{
- //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))
+ //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))
{
- $return = true;
- pg_query($conn, 'COMMIT;');
+ //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->orgform_kurzbz = $hlp->result[0]->orgform_kurzbz;
+ $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 .= "\n$prestd->vorname $prestd->nachname: Fehler beim Speichern des Studentlehrverbandes: ".$studentlehrverband->errormsg;
+ $return = false;
+ $anzahl_fehler++;
+ pg_query($conn, 'ROLLBACK;');
+ }
+ }
+ else
+ {
+ $errormsg .= "\n$prestd->vorname $prestd->nachname: Fehler beim Speichern des Rolle: ".$rolle->errormsg;
+ $return = false;
+ $anzahl_fehler++;
+ pg_query($conn, 'ROLLBACK;');
+ }
}
else
{
- $errormsg = 'Fehler beim Speichern des Studentlehrverbandes: '.$studentlehrverband->errormsg;
+ $errormsg .= "\n$prestd->vorname $prestd->nachname: Fehler beim Speichern des Studenten: ".$student->errormsg;
$return = false;
+ $anzahl_fehler++;
pg_query($conn, 'ROLLBACK;');
}
}
else
{
- $errormsg = 'Fehler beim Speichern des Rolle: '.$rolle->errormsg;
+ $errormsg .= "\n$prestd->vorname $prestd->nachname: Fehler beim Speichern des Benutzers: ".$benutzer->errormsg;
$return = false;
+ $anzahl_fehler++;
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;');
+ $errormsg .= "\n$prestd->vorname $prestd->nachname: Die Person muss zuerst Bewerber sein bevor Sie zum Studenten gemacht werden kann";
+ $anzahl_fehler++;
}
}
}
else
{
$return = false;
- $errormsg = 'Die Person muss zuerst Bewerber sein bevor Sie zum Studenten gemacht werden kann';
+ $errormsg .= "\n$prestd->vorname $prestd->nachname: ZGV muss eingegeben werden";
+ $anzahl_fehler++;
}
}
}
else
{
$return = false;
- $errormsg = 'ZGV muss eingegeben werden';
+ $errormsg .= "\nPrestudent wurde nicht gefunden zu $prestudent_id";
}
}
}
- else
- {
- $return = false;
- $errormsg = 'Prestudent wurde nicht gefunden';
- }
}
else
{
$return = false;
$errormsg = 'Prestudent_id muss angegeben werden';
}
+
+ if($anzahl_fehler>0)
+ {
+ $return = false;
+ $errormsg = "Es sind $anzahl_fehler Fehler aufgetreten: ".$errormsg;
+ }
+ else
+ {
+ $return = true;
+ }
}
}
elseif(isset($_POST['type']) && $_POST['type']=='gruppenzuteilung')
diff --git a/content/student/studentoverlay.js.php b/content/student/studentoverlay.js.php
index f94abf44d..9e70c604a 100644
--- a/content/student/studentoverlay.js.php
+++ b/content/student/studentoverlay.js.php
@@ -1643,17 +1643,40 @@ function StudentAddRolle(rolle, semester, studiensemester)
if (tree.currentIndex==-1) return;
- //Ausgewaehlte ID holen
- var prestudent_id = getTreeCellText(tree, 'student-treecol-prestudent_id', tree.currentIndex);
+ //Alle markierten Personen holen
+ var start = new Object();
+ var end = new Object();
+ var numRanges = tree.view.selection.getRangeCount();
+ var paramList= '';
+ var anzahl=0;
- if(semester!='0' || confirm('Diesen Studenten zum '+rolle+' machen?'))
+ for (var t = 0; t < numRanges; t++)
+ {
+ tree.view.selection.getRangeAt(t,start,end);
+ for (var v = start.value; v <= end.value; v++)
+ {
+ prestudent_id = getTreeCellText(tree, 'student-treecol-prestudent_id', v);
+ paramList += ';'+prestudent_id;
+ anzahl = anzahl+1;
+ }
+ }
+
+ //Ausgewaehlte ID holen
+ //var prestudent_id = getTreeCellText(tree, 'student-treecol-prestudent_id', tree.currentIndex);
+
+ if(anzahl>1)
+ conf = 'Diese '+anzahl+' Studenten';
+ else
+ conf = 'Diesen Studenten';
+
+ if(semester!='0' || confirm(conf+' zum '+rolle+' machen?'))
{
var url = 'content/student/studentDBDML.php';
var req = new phpRequest(url,'','');
req.add('type', 'addrolle');
- req.add('prestudent_id', prestudent_id);
+ req.add('prestudent_id', paramList);
req.add('rolle_kurzbz', rolle);
req.add('semester', semester);
if(typeof(studiensemester)!='unknown')
@@ -1669,6 +1692,7 @@ function StudentAddRolle(rolle, semester, studiensemester)
alert(response)
else
alert(val.dbdml_errormsg)
+ StudentTreeRefresh();
}
else
{