- Semesterweise Lehreinheitenvorrückung

- Anpassungen neue Berechtigungen
This commit is contained in:
Andreas Österreicher
2009-12-07 12:37:44 +00:00
parent 789049524d
commit a47b732fb3
6 changed files with 313 additions and 429 deletions
+19 -3
View File
@@ -433,8 +433,11 @@ class benutzerberechtigung extends basis_db
* Funktion getBerechtigungen aufgerufen werden.
*
* @param $berechtigung
* @param $oe_kurzbz
* @param $art
* @param $oe_kurzbz
* derzeit kann hier noch die Studiengangskennzahl uebergeben werden,
* dies wird in Zukunft aber nicht mehr moeglich sein
* @param $art suid (select|update|insert|delete)
* @param $fachbereich_kurzbz DEPRECATED
* @return true wenn eine Berechtigung entspricht.
*/
public function isBerechtigt($berechtigung_kurzbz,$oe_kurzbz=null,$art=null, $fachbereich_kurzbz=null)
@@ -484,7 +487,15 @@ class benutzerberechtigung extends basis_db
}
}
return false;
//wenn ein Doppelpunkt vorkommt, pruefen ob das Uebergeordnete vorhanden ist
if($pos=mb_strpos($berechtigung_kurzbz,':')===false)
{
return false;
}
else
{
return $this->isBerechtigt(substr($berechtigung_kurzbz,0,$pos-1), $oe_kurzbz, $art, $fachbereich_kurzbz);
}
}
/**
@@ -546,6 +557,11 @@ class benutzerberechtigung extends basis_db
else
$in = ' AND oe_kurzbz IN('.mb_substr($in,0, mb_strlen($in)-1).')';
}
else
{
$in='';
$not='';
}
if($not!='')
$not = ' AND oe_kurzbz NOT IN('.mb_substr($not,0, mb_strlen($not)-1).')';
+107 -23
View File
@@ -46,18 +46,18 @@ class studiengang extends basis_db
public $bescheidvom; // Date
public $titelbescheidvom; // Date
public $ext_id; // bigint
public $orgform_kurzbz;
public $zusatzinfo_html;
public $sprache;
public $testtool_sprachwahl;
public $studienplaetze;
public $oe_kurzbz;
public $orgform_kurzbz; // varchar(3)
public $zusatzinfo_html; // text
public $sprache; // varchar(16)
public $testtool_sprachwahl;// boolean
public $studienplaetze; // smallint
public $oe_kurzbz; // varchar(32)
public $kuerzel; // = typ + kurzbz (Bsp: BBE)
public $studiengang_typ_arr = array();
public $kuerzel_arr = array();
public $moodle; // boolean
public $kuerzel; // = typ + kurzbz (Bsp: BBE)
public $studiengang_typ_arr = array(); // Array mit den Studiengangstypen
public $kuerzel_arr = array(); // Array mit allen Kurzeln Index=studiengangs_kz
public $moodle; // boolean
public $lgartcode; //integer
/**
* Konstruktor
@@ -121,7 +121,7 @@ class studiengang extends basis_db
$this->testtool_sprachwahl = ($row->testtool_sprachwahl=='t'?true:false);
$this->studienplaetze = $row->studienplaetze;
$this->oe_kurzbz = $row->oe_kurzbz;
$this->lgartcode = $row->lgartcode;
$this->telefon=$row->telefon;
$this->titelbescheidvom=$row->titelbescheidvom;
$this->aktiv=($row->aktiv=='t'?true:false);
@@ -148,18 +148,18 @@ class studiengang extends basis_db
{
$qry = 'SELECT * FROM public.tbl_studiengang';
if ($aktiv)
$qry.=' WHERE aktiv';
$qry.=' WHERE aktiv=true';
if($order!=null)
$qry .=" ORDER BY $order";
if(!$this->db_query($qry))
if(!$result = $this->db_query($qry))
{
$this->errormsg = 'Datensatz konnte nicht geladen werden';
return false;
}
while($row = $this->db_fetch_object())
while($row = $this->db_fetch_object($result))
{
$stg_obj = new studiengang();
@@ -188,7 +188,7 @@ class studiengang extends basis_db
$stg_obj->testtool_sprachwahl = ($row->testtool_sprachwahl=='t'?true:false);
$stg_obj->studienplaetze = $row->studienplaetze;
$stg_obj->oe_kurzbz = $row->oe_kurzbz;
$stg_obj->lgartcode = $row->lgartcode;
$stg_obj->telefon=$row->telefon;
$stg_obj->titelbescheidvom=$row->titelbescheidvom;
$stg_obj->aktiv=($row->aktiv=='t'?true:false);
@@ -200,7 +200,76 @@ class studiengang extends basis_db
return true;
}
/**
* Laedt die Studiengaenge die als Array uebergeben werden
* @param $stgs Array mit den Kennzahlen
* @param $order Sortierreihenfolge
* @param $aktiv wenn true dann nur aktive sonst alle
* @return true wenn ok, false im Fehlerfall
*/
public function loadArray($kennzahlen, $order=null, $aktiv=true)
{
if(count($kennzahlen)==0)
return true;
$kennzahlen = "'".implode("','",$kennzahlen)."'";
$qry = 'SELECT * FROM public.tbl_studiengang WHERE studiengang_kz in('.$kennzahlen.')';
if ($aktiv)
$qry.=' AND aktiv=true';
if($order!=null)
$qry .=" ORDER BY $order";
if(!$result = $this->db_query($qry))
{
$this->errormsg = 'Datensatz konnte nicht geladen werden';
return false;
}
while($row = $this->db_fetch_object($result))
{
$stg_obj = new studiengang();
$stg_obj->studiengang_kz=$row->studiengang_kz;
$stg_obj->kurzbz=$row->kurzbz;
$stg_obj->kurzbzlang=$row->kurzbzlang;
$stg_obj->bezeichnung=$row->bezeichnung;
$stg_obj->english=$row->english;
$stg_obj->typ=$row->typ;
$stg_obj->farbe=$row->farbe;
$stg_obj->email=$row->email;
$stg_obj->max_semester=$row->max_semester;
$stg_obj->max_verband=$row->max_verband;
$stg_obj->max_gruppe=$row->max_gruppe;
$stg_obj->erhalter_kz=$row->erhalter_kz;
$stg_obj->bescheid=$row->bescheid;
$stg_obj->bescheidbgbl1=$row->bescheidbgbl1;
$stg_obj->bescheidbgbl2=$row->bescheidbgbl2;
$stg_obj->bescheidgz=$row->bescheidgz;
$stg_obj->bescheidvom=$row->bescheidvom;
$stg_obj->ext_id=$row->ext_id;
$stg_obj->kuerzel = mb_strtoupper($row->typ.$row->kurzbz);
$stg_obj->orgform_kurzbz = $row->orgform_kurzbz;
$stg_obj->zusatzinfo_html = $row->zusatzinfo_html;
$stg_obj->sprache = $row->sprache;
$stg_obj->testtool_sprachwahl = ($row->testtool_sprachwahl=='t'?true:false);
$stg_obj->studienplaetze = $row->studienplaetze;
$stg_obj->oe_kurzbz = $row->oe_kurzbz;
$stg_obj->lgartcode = $row->lgartcode;
$stg_obj->telefon=$row->telefon;
$stg_obj->titelbescheidvom=$row->titelbescheidvom;
$stg_obj->aktiv=($row->aktiv=='t'?true:false);
$stg_obj->moodle=($row->moodle=='t'?true:false);
$this->result[] = $stg_obj;
$this->kuerzel_arr[$row->studiengang_kz]=$stg_obj->kuerzel;
}
return true;
}
/**
* Prueft die Gueltigkeit der Variablen
* @return true wenn ok, false im Fehlerfall
@@ -239,22 +308,27 @@ class studiengang extends basis_db
/**
* Speichert den aktuellen Datensatz
* @param $new boolean Legt fest ob der Datensatz neu angelegt wird oder nicht
* @return true wenn ok, false im Fehlerfall
*/
public function save()
public function save($new=null)
{
if(is_null($new))
$new = $this->new;
//Gueltigkeit der Variablen pruefen
if(!$this->validate())
{
return false;
}
if($this->new)
if($new)
{
//Neuen Datensatz anlegen
$qry = 'INSERT INTO public.tbl_studiengang (studiengang_kz, kurzbz, kurzbzlang, bezeichnung, english,
typ, farbe, email, telefon, max_verband, max_semester, max_gruppe, erhalter_kz, bescheid, bescheidbgbl1,
bescheidbgbl2, bescheidgz, bescheidvom, titelbescheidvom, aktiv, ext_id, orgform_kurzbz, zusatzinfo_html, oe_kurzbz) VALUES ('.
bescheidbgbl2, bescheidgz, bescheidvom, titelbescheidvom, aktiv, ext_id, orgform_kurzbz, zusatzinfo_html,
oe_kurzbz, moodle, sprache, testtool_sprachwahl, studienplaetze, lgartcode) VALUES ('.
$this->addslashes($this->studiengang_kz).', '.
$this->addslashes($this->kurzbz).', '.
$this->addslashes($this->kurzbzlang).', '.
@@ -274,11 +348,16 @@ class studiengang extends basis_db
$this->addslashes($this->bescheidgz).', '.
$this->addslashes($this->bescheidvom).', '.
$this->addslashes($this->titelbescheidvom).', '.
$this->addslashes($this->aktiv).', '.
($this->aktiv?'true':'false').', '.
$this->addslashes($this->ext_id).', '.
$this->addslashes($this->orgform_kurzbz).', '.
$this->addslashes($this->zusatzinfo_html).', '.
$this->addslashes($this->oe_kurzbz).';';
$this->addslashes($this->oe_kurzbz).', '.
($this->moodle?'true':'false').', '.
$this->addslashes($this->sprache).', '.
($this->testtool_sprachwahl?'true':'false').', '.
$this->addslashes($this->studienplaetze).', '.
$this->addslashes($this->lgartcode).');';
}
else
{
@@ -306,9 +385,14 @@ class studiengang extends basis_db
'ext_id='.$this->addslashes($this->ext_id).', '.
'telefon='.$this->addslashes($this->telefon).', '.
'orgform_kurzbz='.$this->addslashes($this->orgform_kurzbz).', '.
'aktiv='.$this->addslashes($this->aktiv).', '.
'aktiv='.($this->aktiv?'true':'false').', '.
'oe_kurzbz='.$this->addslashes($this->oe_kurzbz).','.
'zusatzinfo_html='.$this->addslashes($this->zusatzinfo_html).' '.
'zusatzinfo_html='.$this->addslashes($this->zusatzinfo_html).', '.
'moodle='.($this->moodle?'true':'false').', '.
'sprache='.$this->addslashes($this->sprache).', '.
'testtool_sprachwahl='.($this->testtool_sprachwahl?'true':'false').', '.
'studienplaetze='.$this->addslashes($this->studienplaetze).', '.
'lgartcode='.$this->addslashes($this->lgartcode).' '.
'WHERE studiengang_kz='.$this->addslashes($this->studiengang_kz).';';
}
+31 -21
View File
@@ -20,29 +20,33 @@
* Rudolf Hangl < rudolf.hangl@technikum-wien.at >
* Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at >
*/
require_once('../../config/vilesci.config.inc.php');
require_once('../../include/basis_db.class.php');
if (!$db = new basis_db())
die('Es konnte keine Verbindung zum Server aufgebaut werden.');
/*
Vorrückung aller AKTIVEN Studenten.
*/
/**
* Vorrückung aller AKTIVEN Studenten.
*/
require_once('../../config/vilesci.config.inc.php');
require_once('../../include/studiengang.class.php');
require_once('../../include/studiensemester.class.php');
require_once('../../include/functions.inc.php');
require_once('../../include/benutzerberechtigung.class.php');
if (!$db = new basis_db())
die('Es konnte keine Verbindung zum Server aufgebaut werden.');
function myaddslashes($var)
{
return ($var!=''?"'".addslashes($var)."'":'null');
}
$user = get_uid();
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($user);
if(!$rechte->isBerechtigt('student/vorrueckung', null, 'suid'))
die('Sie haben keine Berechtigung fuer diese Seite');
$ausbildungssemester=0;
$s=new studiengang();
$s->getAll('typ, kurzbz', true);
$s->loadArray($rechte->getStgKz('student/vorrueckung'),'typ, kurzbz', true);
$studiengang=$s->result;
//Einlesen der studiensemester in einen Array
@@ -53,8 +57,6 @@ foreach($ss->studiensemester as $studiensemester)
$ss_arr[] = $studiensemester->studiensemester_kurzbz;
}
$user = get_uid();
//Übergabeparameter
//studiengang
if (isset($_GET['stg_kz']) || isset($_POST['stg_kz']))
@@ -63,7 +65,7 @@ if (isset($_GET['stg_kz']) || isset($_POST['stg_kz']))
}
else
{
$stg_kz=0;
$stg_kz=$studiengang[0]->studiengang_kz;
}
//semester anzeige
if (isset($_GET['semester']) || isset($_POST['semester']))
@@ -159,13 +161,21 @@ $outp='';
// ****************************** Vorrücken ******************************
if (isset($_POST['vorr']))
{
//select für die Vorrückung
$sql_query="SELECT tbl_student.*,tbl_person.*, tbl_studentlehrverband.semester as semester_stlv, tbl_studentlehrverband.verband as verband_stlv,
tbl_studentlehrverband.gruppe as gruppe_stlv FROM tbl_studentlehrverband JOIN tbl_student USING (student_uid)
JOIN tbl_benutzer ON (student_uid=uid)
JOIN tbl_person USING (person_id)
WHERE tbl_benutzer.aktiv AND tbl_studentlehrverband.studiengang_kz='$stg_kz'
AND studiensemester_kurzbz='$studiensemester_kurzbz_akt'";
$stg_help = new studiengang();
if(!$stg_help->load($stg_kz))
die("Studiengang mit der Kennzahl $stg_kz kann nicht geladen werden");
if(!$rechte->isBerechtigt('student/vorrueckung',$stg_help->oe_kurzbz, 'suid'))
die('Sie haben keine Berechtigung fuer diese Aktion');
//select für die Vorrückung
$sql_query="SELECT tbl_student.*,tbl_person.*, tbl_studentlehrverband.semester as semester_stlv, tbl_studentlehrverband.verband as verband_stlv,
tbl_studentlehrverband.gruppe as gruppe_stlv FROM tbl_studentlehrverband JOIN tbl_student USING (student_uid)
JOIN tbl_benutzer ON (student_uid=uid)
JOIN tbl_person USING (person_id)
WHERE tbl_benutzer.aktiv AND tbl_studentlehrverband.studiengang_kz='$stg_kz'
AND studiensemester_kurzbz='$studiensemester_kurzbz_akt'";
if($semester<100)
{
$sql_query.="AND tbl_studentlehrverband.semester='$semesterv' "; //semester = 100 wählt alle aus
@@ -1,327 +0,0 @@
<?php
/* Copyright (C) 2006 Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger < christian.paminger@technikum-wien.at >
* Andreas Oesterreicher < andreas.oesterreicher@technikum-wien.at >
* Rudolf Hangl < rudolf.hangl@technikum-wien.at >
* Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at >
*/
/*
Vorrückung aller AKTIVEN Studenten ins nächste Semester.
*/
require_once('../../config/vilesci.config.inc.php');
require_once('../../include/basis_db.class.php');
if (!$db = new basis_db())
die('Es konnte keine Verbindung zum Server aufgebaut werden.');
require_once('../../include/studiengang.class.php');
require_once('../../include/studiensemester.class.php');
require_once('../../include/functions.inc.php');
function myaddslashes($var)
{
return ($var!=''?"'".addslashes($var)."'":'null');
}
$ausbildungssemester=0;
$s=new studiengang();
$s->getAll('typ, kurzbz', true);
$studiengang=$s->result;
//Einlesen der studiensemester in einen Array
$ss = new studiensemester();
$ss->getAll();
foreach($ss->studiensemester as $studiensemester)
{
$ss_arr[] = $studiensemester->studiensemester_kurzbz;
}
$user = get_uid();
//Übergabeparameter
if (isset($_GET['stg_kz']) || isset($_POST['stg_kz']))
$stg_kz=(isset($_GET['stg_kz'])?$_GET['stg_kz']:$_POST['stg_kz']);
else
$stg_kz=0;
if (isset($_GET['semester']) || isset($_POST['semester']))
$semester=(isset($_GET['semester'])?$_GET['semester']:$_POST['semester']);
else
$semester=100;
if (isset($_GET['studiensemester_kurzbz']) || isset($_POST['studiensemester_kurzbz']))
$studiensemester_kurzbz=(isset($_GET['studiensemester_kurzbz'])?$_GET['studiensemester_kurzbz']:$_POST['studiensemester_kurzbz']);
else
$studiensemester_kurzbz=null;
if (is_null($studiensemester_kurzbz))
{
$studiensemester_kurzbz=$ss->getakt();
}
//$studiensemester_kurzbz_akt=$ss->getakt(); //aktuelles Semester
if (isset($_GET['studiensemester_kurzbz_akt']) || isset($_POST['studiensemester_kurzbz_akt']))
$studiensemester_kurzbz_akt=(isset($_GET['studiensemester_kurzbz_akt'])?$_GET['studiensemester_kurzbz_akt']:$_POST['studiensemester_kurzbz_akt']);
else
die("Aktuelles Studiensemester wurde nicht übergeben.");
/*$ss->getNextStudiensemester();
$studiensemester_kurzbz_zk=$ss->studiensemester_kurzbz; //nächstes Semester*/
if (isset($_GET['studiensemester_kurzbz_zk']) || isset($_POST['studiensemester_kurzbz_zk']))
$studiensemester_kurzbz_zk=(isset($_GET['studiensemester_kurzbz_zk'])?$_GET['studiensemester_kurzbz_zk']:$_POST['studiensemester_kurzbz_zk_']);
else
die("Nächstes Studiensemester wurde nicht übergeben.");
if(!is_numeric($stg_kz))
$stg_kz=0;
//semester=100 bedeutet die Auswahl aller Semester
if(!is_numeric($semester))
$semester=100;
//Einlesen der maximalen, regulären Dauer der Studiengänge in einen Array
$qry_stg="SELECT * FROM public.tbl_studiengang";
if ($result_stg=$db->db_query($qry_stg))
{
while($row_stg=$db->db_fetch_object($result_stg))
{
$max[$row_stg->studiengang_kz]=$row_stg->max_semester;
}
}
//select für die Anzeige
$sql_query="SELECT tbl_student.*,tbl_person.*, tbl_studentlehrverband.semester as semester_stlv, tbl_studentlehrverband.verband as verband_stlv,
tbl_studentlehrverband.gruppe as gruppe_stlv FROM tbl_studentlehrverband JOIN tbl_student USING (student_uid)
JOIN tbl_benutzer ON (student_uid=uid)
JOIN tbl_person USING (person_id)
WHERE tbl_benutzer.aktiv AND tbl_studentlehrverband.studiengang_kz='$stg_kz'
AND studiensemester_kurzbz='$studiensemester_kurzbz' ";
if($semester<100)
{
$sql_query.="AND tbl_studentlehrverband.semester='$semester' "; //semester = 100 wählt alle aus
}
$sql_query.="ORDER BY semester, nachname";
//echo $sql_query;
if (!$result_std=$db->db_query($sql_query))
error("Studenten not found!");
$outp='';
// ****************************** Vorrücken ******************************
if (isset($_POST['vorr']))
{
//select für die Vorrückung
$sql_query="SELECT tbl_student.*,tbl_person.*, tbl_studentlehrverband.semester as semester_stlv, tbl_studentlehrverband.verband as verband_stlv,
tbl_studentlehrverband.gruppe as gruppe_stlv FROM tbl_studentlehrverband JOIN tbl_student USING (student_uid)
JOIN tbl_benutzer ON (student_uid=uid)
JOIN tbl_person USING (person_id)
WHERE tbl_benutzer.aktiv AND tbl_studentlehrverband.studiengang_kz='$stg_kz'
AND studiensemester_kurzbz='$studiensemester_kurzbz_akt'";
if($semester<100)
{
$sql_query.="AND tbl_studentlehrverband.semester='$semester' "; //semester = 100 wählt alle aus
}
$sql_query.="ORDER BY semester, nachname";
//echo $sql_query;
if (!$result_std=$db->db_query($sql_query))
error("Studenten not found!");
$next_ss=$studiensemester_kurzbz_zk;
while($row=$db->db_fetch_object($result_std))
{
//aktuelle Rolle laden
$qry_status="SELECT status_kurzbz, ausbildungssemester FROM public.tbl_prestudentstatus JOIN public.tbl_prestudent USING(prestudent_id)
WHERE person_id=".myaddslashes($row->person_id)."
AND studiengang_kz=".$row->studiengang_kz."
AND studiensemester_kurzbz=".myaddslashes($studiensemester_kurzbz_akt)."
ORDER BY datum desc, tbl_prestudentstatus.insertamum desc, tbl_prestudentstatus.ext_id desc LIMIT 1;";
if ($result_status=$db->db_query($qry_status))
{
if($row_status=$db->db_fetch_object($result_status))
{
//Studenten im letzten Semester bleiben dort, wenn aktiv
if($row->semester_stlv>=$max[$stg_kz] || $row->semester_stlv==0)
{
$s=$row->semester_stlv;
}
else
{
$s=$row->semester_stlv+1;
}
if($row_status->ausbildungssemester>=$max[$stg_kz] || $row_status->status_kurzbz=="Unterbrecher")
{
$ausbildungssemester=$row_status->ausbildungssemester;
}
else
{
$ausbildungssemester=$row_status->ausbildungssemester+1;
}
//Lehrverbandgruppe anlegen, wenn noch nicht vorhanden
$qry_lvb="SELECT * FROM public.tbl_lehrverband
WHERE studiengang_kz=".myaddslashes($row->studiengang_kz)." AND semester=".myaddslashes($s)."
AND verband=".myaddslashes($row->verband_stlv)." AND gruppe=".myaddslashes($row->gruppe_stlv).";";
if($db->db_num_rows($db->db_query($qry_lvb))<1)
{
$lvb_ins="INSERT INTO public.tbl_lehrverband VALUES (".
myaddslashes($row->studiengang_kz).", ".
myaddslashes($s).", ".
myaddslashes($row->verband_stlv).", ".
myaddslashes($row->gruppe_stlv).",
TRUE, NULL, NULL);";
if (!$r=$db->db_query($lvb_ins))
die($db->db_last_error());
}
//Überprüfen ob Eintrag schon vorhanden
$qry_chk="SELECT * FROM public.tbl_studentlehrverband
WHERE student_uid=".myaddslashes($row->student_uid)."
AND studiensemester_kurzbz=".myaddslashes($next_ss)."
AND studiengang_kz=".myaddslashes($row->studiengang_kz)."
AND semester=".$s.";";
$sql='';
if($db->db_num_rows($db->db_query($qry_chk))<1)
{
//Eintragen der neuen Gruppe
$sql="INSERT INTO tbl_studentlehrverband
VALUES ('$row->student_uid','$next_ss','$row->studiengang_kz',
'$s','$row->verband_stlv','$row->gruppe_stlv',NULL,NULL,now(),'$user',NULL);";
}
$qry_chk="SELECT * FROM public.tbl_prestudentstatus
WHERE prestudent_id=".myaddslashes($row->prestudent_id)."
AND studiensemester_kurzbz=".myaddslashes($next_ss).";";
if($db->db_num_rows($db->db_query($qry_chk))<1)
{
//Eintragen des neuen Status
$sql.="INSERT INTO tbl_prestudentstatus
VALUES ($row->prestudent_id, '$row_status->status_kurzbz', '$next_ss',
$ausbildungssemester, now(), now(), '$user',
NULL, NULL, NULL, NULL);";
}
if($sql!='')
{
if (!$r=$db->db_query($sql))
{
die($db->db_last_error()."<br>".$sql);
}
}
}
}
}
}
// **************** Ausgabe vorbereiten ******************************
$s=array();
$outp.="<SELECT name='stg_kz'>";
//Auswahl Studiengang
foreach ($studiengang as $stg)
{
$outp.="<OPTION onclick=\"window.location.href = '".$_SERVER['PHP_SELF']."?stg_kz=$stg->studiengang_kz&semester=$semester&studiensemester_kurzbz=$studiensemester_kurzbz'\" ".($stg->studiengang_kz==$stg_kz?'selected':'').">$stg->kurzbzlang ($stg->kuerzel) - $stg->bezeichnung</OPTION>";
//$outp.= '<A href="'.$_SERVER['PHP_SELF'].'?stg_kz='.$stg->studiengang_kz.'&semester='.$semester.'">'.$stg->kuerzel.'</A> - ';
$s[$stg->studiengang_kz]->max_sem=$stg->max_semester;
$s[$stg->studiengang_kz]->kurzbz=$stg->kurzbzlang;
}
$outp.='</SELECT>';
//Auswahl Studiensemester
$outp.="<select name='studiensemester_kurzbz'>\n";
foreach ($ss_arr AS $sts)
{
if ($studiensemester_kurzbz == $sts)
$sel = " selected ";
else
$sel = '';
$outp.=" <option value='".$sts."' ".$sel."onclick=\"window.location.href = '".$_SERVER['PHP_SELF']."?stg_kz=$stg_kz&semester=$semester&studiensemester_kurzbz=$sts'\">".$sts."</option>";
}
$outp.=" </select>\n";
$outp.="<BR>Vorr&uuml;ckung von ".$studiensemester_kurzbz_akt." / Semester ".($semester<100?$semester:'alle')." -> ".$studiensemester_kurzbz_zk;
$outp.= '<BR> -- ';
for ($i=0;$i<=$s[$stg_kz]->max_sem;$i++)
$outp.= '<A href="'.$_SERVER['PHP_SELF'].'?stg_kz='.$stg_kz.'&semester='.$i.'&studiensemester_kurzbz='.$studiensemester_kurzbz.'">'.$i.'</A> -- ';
$outp.= '<A href="'.$_SERVER['PHP_SELF'].'?stg_kz='.$stg_kz.'&semester=100&studiensemester_kurzbz='.$studiensemester_kurzbz.'">alle</A> -- ';
//Aufbau Ausgabe
?>
<html>
<head>
<title>Studenten Vorrueckung</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" href="../../skin/vilesci.css" type="text/css">
<link rel="stylesheet" href="../../include/js/tablesort/table.css" type="text/css">
<script src="../../include/js/tablesort/table.js" type="text/javascript"></script>
</head>
<body class="Background_main">
<?php
echo "<H2>Studenten Vorr&uuml;ckung (".$s[$stg_kz]->kurzbz." - ".($semester<100?$semester:'alle')." - ".
$studiensemester_kurzbz."), DB:".DB_NAME."</H2>";
echo '<form action="" method="POST">';
echo '<table width="70%"><tr><td>';
echo $outp;
echo '</td><td>';
echo '<input type="submit" name="vorr" value="Vorruecken" />';
echo '</td><td>&nbsp;</td></tr></table>';
echo '</form>';
echo "<h3>&Uuml;bersicht</h3>
<table class='liste table-autosort:2 table-stripeclass:alternate table-autostripe'>
<thead>
<tr class='liste'>";
if ($result_std!=0)
{
$num_rows=$db->db_num_rows($result_std);
echo 'Anzahl: '.$num_rows;
echo "<th class='table-sortable:default'>Nachname</th><th class='table-sortable:default'>Vorname</th><th class='table-sortable:default'>STG</th><th class='table-sortable:default'>Sem</th><th class='table-sortable:default'>Ver</th><th class='table-sortable:default'>Grp</th><th class='table-sortable:default'>Status</th><th class='table-sortable:default'>AusbSem</th>\n";
echo "</tr></thead>";
echo "<tbody>";
for($i=0;$i<$num_rows;$i++)
{
$row=$db->db_fetch_object($result_std,$i);
$qry_status="SELECT status_kurzbz, ausbildungssemester FROM public.tbl_prestudentstatus
JOIN public.tbl_prestudent USING(prestudent_id) WHERE person_id=".myaddslashes($row->person_id)."
AND studiengang_kz=".$row->studiengang_kz."
AND studiensemester_kurzbz=".myaddslashes($studiensemester_kurzbz)."
ORDER BY datum desc, tbl_prestudentstatus.insertamum desc, tbl_prestudentstatus.ext_id desc LIMIT 1;";
if ($result_status=$db->db_query($qry_status))
{
if($row_status=$db->db_fetch_object($result_status))
{
echo "<tr>";
echo "<td>$row->nachname</td><td>$row->vorname</td><td>$row->studiengang_kz</td><td>$row->semester_stlv</td><td>$row->verband_stlv</td><td>$row->gruppe_stlv</td><td>$row_status->status_kurzbz</td><td>$row_status->ausbildungssemester</td>";
echo "</tr>\n";
}
else
{
echo "<tr>";
echo "<td>$row->nachname</td><td>$row->vorname</td><td>$row->studiengang_kz</td><td>$row->semester_stlv</td><td>$row->verband_stlv</td><td>$row->gruppe_stlv</td><td></td><td></td>";
echo "</tr>\n";
}
}
else
{
error("Roles not found!");
}
}
}
else
echo "Kein Eintrag gefunden!";
?>
</tbody>
</table>
<br>
</body>
</html>
+150 -53
View File
@@ -20,6 +20,9 @@
* Rudolf Hangl < rudolf.hangl@technikum-wien.at >
* Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at >
*/
/**
* Seite zur Wartung der Studiengaenge
*/
require_once('../../config/vilesci.config.inc.php');
require_once('../../include/globals.inc.php');
require_once('../../include/functions.inc.php');
@@ -40,7 +43,7 @@ require_once('../../include/benutzerberechtigung.class.php');
$reloadstr = ''; // neuladen der liste im oberen frame
$htmlstr = '';
$errorstr = ''; //fehler beim insert
$errorstr = '';
$sel = '';
$chk = '';
@@ -65,47 +68,67 @@ require_once('../../include/benutzerberechtigung.class.php');
$bescheidbgbl2 = '';
$bescheidgz = '';
$bescheidvom = '';
$organisationsform = '';
$titelbescheidvom = '';
$zusatzinfo_html = '';
$ext_id = '';
$aktiv = "t";
$neu = "true";
$aktiv = true;
$neu = 'true';
$oe_kurzbz='';
$moodle = true;
$sprache = '';
$testtool_sprachwahl = false;
$studienplaetze = '';
$orgform_kurzbz = '';
$lgartcode='';
if(isset($_POST["schick"]))
if(isset($_POST['schick']))
{
$studiengang_kz = $_POST["studiengang_kz"];
$studiengang_kz = $_POST['studiengang_kz'];
if(!$rechte->isBerechtigt('basis/studiengang', $studiengang_kz, 'su'))
die('Sie haben keine Rechte fuer diese Aktion');
if($_POST['neu']=='true')
{
if(!$rechte->isBerechtigt('basis/studiengang', null, 'suid'))
die('Sie haben keine Rechte fuer diese Aktion');
}
else
{
$stg_hlp = new studiengang();
if(!$stg_hlp->load($studiengang_kz))
die('Fehler beim Laden des Studienganges: '.$stg_hlp->errormsg);
if(!$rechte->isBerechtigt('basis/studiengang', $stg_hlp->oe_kurzbz, 'su'))
die('Sie haben keine Rechte fuer diese Aktion');
}
$kurzbz = $_POST["kurzbz"];
$kurzbzlang = $_POST["kurzbzlang"];
$typ = $_POST["typ"];
$bezeichnung = $_POST["bezeichnung"];
$english = $_POST["english"];
$farbe = $_POST["farbe"];
$email = $_POST["email"];
$telefon = $_POST["telefon"];
$max_semester = $_POST["max_semester"];
$max_verband = $_POST["max_verband"];
$max_gruppe = $_POST["max_gruppe"];
$erhalter_kz = $_POST["erhalter_kz"];
$bescheid = $_POST["bescheid"];
$bescheidbgbl1 = $_POST["bescheidbgbl1"];
$bescheidbgbl2 = $_POST["bescheidbgbl1"];
$bescheidgz = $_POST["bescheidgz"];
$bescheidvom = $_POST["bescheidvom"];
$organisationsform = $_POST["organisationsform"];
$oe_kurzbz = $_POST["oe_kurzbz"];
$titelbescheidvom = $_POST["titelbescheidvom"];
$kurzbz = $_POST['kurzbz'];
$kurzbzlang = $_POST['kurzbzlang'];
$typ = $_POST['typ'];
$bezeichnung = $_POST['bezeichnung'];
$english = $_POST['english'];
$farbe = $_POST['farbe'];
$email = $_POST['email'];
$telefon = $_POST['telefon'];
$max_semester = $_POST['max_semester'];
$max_verband = $_POST['max_verband'];
$max_gruppe = $_POST['max_gruppe'];
$erhalter_kz = $_POST['erhalter_kz'];
$bescheid = $_POST['bescheid'];
$bescheidbgbl1 = $_POST['bescheidbgbl1'];
$bescheidbgbl2 = $_POST['bescheidbgbl1'];
$bescheidgz = $_POST['bescheidgz'];
$bescheidvom = $_POST['bescheidvom'];
$oe_kurzbz = $_POST['oe_kurzbz'];
$titelbescheidvom = $_POST['titelbescheidvom'];
$zusatzinfo_html = $_POST['zusatzinfo_html'];
if(isset($_POST["aktiv"]))
$aktiv = $_POST["aktiv"];
else
$aktiv = "f";
$ext_id = $_POST["ext_id"];
$moodle = isset($_POST['moodle']);
$sprache = $_POST['sprache'];
$testtool_sprachwahl = isset($_POST['testtool_sprachwahl']);
$studienplaetze = $_POST['studienplaetze'];
$orgform_kurzbz = $_POST['orgform_kurzbz'];
$lgartcode = $_POST['lgartcode'];
$aktiv = isset($_POST['aktiv']);
$ext_id = $_POST['ext_id'];
$sg_update = new studiengang();
$sg_update->studiengang_kz = $studiengang_kz;
@@ -126,15 +149,20 @@ require_once('../../include/benutzerberechtigung.class.php');
$sg_update->bescheidbgbl2 = $bescheidbgbl1;
$sg_update->bescheidgz = $bescheidgz;
$sg_update->bescheidvom = $bescheidvom;
$sg_update->orgform_kurzbz = $organisationsform;
$sg_update->titelbescheidvom = $titelbescheidvom;
$sg_update->zusatzinfo_html = $zusatzinfo_html;
$sg_update->aktiv = ($aktiv=='t'?true:false);
$sg_update->aktiv = $aktiv;
$sg_update->ext_id = $ext_id;
$sg_update->oe_kurzbz = $oe_kurzbz;
if ($_POST["neu"] == "true")
$sg_update->new = 1;
$sg_update->moodle = $moodle;
$sg_update->sprache = $sprache;
$sg_update->testtool_sprachwahl = $testtool_sprachwahl;
$sg_update->studienplaetze = $studienplaetze;
$sg_update->orgform_kurzbz = $orgform_kurzbz;
$sg_update->lgartcode = $lgartcode;
if ($_POST['neu'] == 'true')
$sg_update->new = true;
if(!$sg_update->save())
{
@@ -147,9 +175,9 @@ require_once('../../include/benutzerberechtigung.class.php');
if ((isset($_REQUEST['studiengang_kz'])) && ((!isset($_REQUEST['neu'])) || ($_REQUEST['neu']!= "true")))
if ((isset($_REQUEST['studiengang_kz'])) && ((!isset($_REQUEST['neu'])) || ($_REQUEST['neu']!= 'true')))
{
$studiengang_kz = $_REQUEST["studiengang_kz"];
$studiengang_kz = $_REQUEST['studiengang_kz'];
$sg = new studiengang($studiengang_kz);
if ($sg->errormsg!='')
@@ -172,13 +200,18 @@ require_once('../../include/benutzerberechtigung.class.php');
$bescheidbgbl2 = $sg->bescheidbgbl2;
$bescheidgz = $sg->bescheidgz;
$bescheidvom = $sg->bescheidvom;
$organisationsform = $sg->orgform_kurzbz;
$titelbescheidvom = $sg->titelbescheidvom;
$zusatzinfo_html = $sg->zusatzinfo_html;
$ext_id = $sg->ext_id;
$aktiv = $sg->aktiv;
$oe_kurzbz = $sg->oe_kurzbz;
$neu = "false";
$neu = 'false';
$moodle = $sg->moodle;
$sprache = $sg->sprache;
$testtool_sprachwahl = $sg->testtool_sprachwahl;
$studienplaetze = $sg->studienplaetze;
$orgform_kurzbz = $sg->orgform_kurzbz;
$lgartcode = $sg->lgartcode;
}
$erh = new erhalter();
@@ -223,14 +256,14 @@ require_once('../../include/benutzerberechtigung.class.php');
$htmlstr .= " <td><input class='detail' type='text' name='max_gruppe' size='16' maxlength='1' value='".$max_gruppe."' onchange='submitable()'></td>\n";
$htmlstr .= " </tr>\n";
$htmlstr .= " <tr>\n";
$htmlstr .= " <td>Organisationsform</td>\n";
$htmlstr .= " <td><SELECT name='organisationsform' onchange='submitable()'>";
$htmlstr .= " <td>OrgformKurzbz</td>\n";
$htmlstr .= " <td><SELECT name='orgform_kurzbz' onchange='submitable()'>";
$qry = "SELECT orgform_kurzbz FROM bis.tbl_orgform ORDER BY orgform_kurzbz";
if($result = $db->db_query($qry))
{
while($row = $db->db_fetch_object($result))
{
if($row->orgform_kurzbz == $organisationsform)
if($row->orgform_kurzbz == $orgform_kurzbz)
$selected = 'selected';
else
$selected = '';
@@ -241,19 +274,36 @@ require_once('../../include/benutzerberechtigung.class.php');
$htmlstr .= " </SELECT></td>\n";
$htmlstr .= " </tr>\n";
$htmlstr .= " <tr>\n";
$htmlstr .= " <td>Ext ID</td>\n";
$htmlstr .= " <td><input class='detail' type='text' name='ext_id' size='16' maxlength='16' value='".$ext_id."' onchange='submitable()'></td>\n";
$htmlstr .= " </tr>\n";
$htmlstr .= " <tr>\n";
$htmlstr .= " <td valign='top'>Aktiv</td>\n";
$htmlstr .= " <td>\n";
if($aktiv == 't')
if($aktiv)
$chk = "checked";
else
$chk = '';
$htmlstr .= " <input type='checkbox' name='aktiv' value='t'".$chk." onchange='submitable()'>";
$htmlstr .= " <input type='checkbox' name='aktiv' ".$chk." onchange='submitable()'>";
$htmlstr .= " </td>\n";
$htmlstr .= " </tr>\n";
$htmlstr .= " <tr>\n";
$htmlstr .= " <td valign='top'>Testtool-Sprachwahl</td>\n";
$htmlstr .= " <td>\n";
if($testtool_sprachwahl)
$chk = "checked";
else
$chk = '';
$htmlstr .= " <input type='checkbox' name='testtool_sprachwahl' ".$chk." onchange='submitable()'>";
$htmlstr .= " </td>\n";
$htmlstr .= " </tr>\n";
$htmlstr .= " <tr>\n";
$htmlstr .= " <td valign='top'>Moodle</td>\n";
$htmlstr .= " <td>\n";
if($moodle == 't')
$chk = "checked";
else
$chk = '';
$htmlstr .= " <input type='checkbox' name='moodle' ".$chk." onchange='submitable()'>";
$htmlstr .= " </td>\n";
$htmlstr .= " </tr>\n";
$htmlstr .= " </table>\n";
$htmlstr .= " </td>\n";
@@ -324,7 +374,44 @@ require_once('../../include/benutzerberechtigung.class.php');
$htmlstr .= " <td>Titelbescheidvom</td>\n";
$htmlstr .= " <td><input class='detail' type='text' name='titelbescheidvom' size='16' maxlength='10' value='".$titelbescheidvom."' onchange='submitable()'></td>\n";
$htmlstr .= " </tr>\n";
$htmlstr .= " <tr>\n";
$htmlstr .= " <td>Sprache</td>\n";
$htmlstr .= " <td><SELECT name='sprache' onchange='submitable()'>";
$htmlstr .= " <option value=''>-- keine Auswahl --</option>";
$qry = "SELECT sprache FROM public.tbl_sprache ORDER BY sprache";
if($result = $db->db_query($qry))
{
while($row = $db->db_fetch_object($result))
{
if($row->sprache == $sprache)
$selected = 'selected';
else
$selected = '';
$htmlstr .= " <option value='$row->sprache' $selected>$row->sprache</option>";
}
}
$htmlstr .= " </SELECT></td>\n";
$htmlstr .= " </tr>\n";
$htmlstr .= " <tr>\n";
$htmlstr .= " <td>LehrgangsartCode</td>\n";
$htmlstr .= " <td><SELECT name='lgartcode' onchange='submitable()'>";
$htmlstr .= " <option value=''>-- keine Auswahl --</option>";
$qry = "SELECT * FROM bis.tbl_lgartcode ORDER BY lgartcode";
if($result = $db->db_query($qry))
{
while($row = $db->db_fetch_object($result))
{
if($row->lgartcode == $lgartcode)
$selected = 'selected';
else
$selected = '';
$htmlstr .= " <option value='$row->lgartcode' $selected>$row->lgartcode - $row->kurzbz</option>";
}
}
$htmlstr .= " </SELECT></td>\n";
$htmlstr .= " </tr>\n";
$htmlstr .= " </table>\n";
$htmlstr .= " </td>\n";
@@ -349,10 +436,18 @@ require_once('../../include/benutzerberechtigung.class.php');
$htmlstr .= " <td><input class='detail' type='text' name='telefon' size='50' maxlength='32' value='".$telefon."' onchange='submitable()'></td>\n";
$htmlstr .= " </tr>\n";
$htmlstr .= " <tr>\n";
$htmlstr .= " <td>Studienplätze</td>\n";
$htmlstr .= " <td><input class='detail' type='text' name='studienplaetze' size='5' maxlength='5' value='".$studienplaetze."' onchange='submitable()'></td>\n";
$htmlstr .= " </tr>\n";
$htmlstr .= " <tr>\n";
$htmlstr .= " <td>Ext ID</td>\n";
$htmlstr .= " <td><input class='detail' type='text' name='ext_id' size='16' maxlength='16' value='".$ext_id."' onchange='submitable()'></td>\n";
$htmlstr .= " </tr>\n";
$htmlstr .= " <tr>\n";
$htmlstr .= " <td valign='top'>Bescheid</td>\n";
$htmlstr .= " <td><textarea name='bescheid' cols='37' rows='5' onchange='submitable()'>".$bescheid."</textarea></td>\n";
$htmlstr .= " </tr>\n";
$htmlstr .= " </table>\n";
$htmlstr .= " </td>\n";
@@ -384,6 +479,8 @@ require_once('../../include/benutzerberechtigung.class.php');
}
$htmlstr .= " </SELECT></td>\n";
$htmlstr .= " </tr>";
$htmlstr .= "</table>\n";
$htmlstr .= "<br>\n";
$htmlstr .= "<div align='right' id='sub'>\n";
@@ -36,7 +36,11 @@ require_once('../../include/benutzerberechtigung.class.php');
if (isset($_GET["toggle"]) && ($_GET["kz"] != ""))
{
$kennzahl = intval($_GET["kz"]);
if($rechte->isBerechtigt('basis/studiengang', $kennzahl, 'suid'))
$stg_hlp = new studiengang();
if(!$stg_hlp->load($kennzahl))
die('Studiengang nicht gefunden');
if($rechte->isBerechtigt('basis/studiengang', $stg_hlp->oe_kurzbz, 'suid'))
{
$sg_update = new studiengang();
if(!$sg_update->toggleAktiv($kennzahl))
@@ -47,7 +51,7 @@ require_once('../../include/benutzerberechtigung.class.php');
}
$sg = new studiengang();
if (!$sg->getAll('kurzbzlang',false))
if (!$sg->loadArray($rechte->getStgKz('basis/studiengang'),'kurzbzlang',false))
die($sg->errormsg);
//$htmlstr = "<table class='liste sortable'>\n";