param changes for rdfs

This commit is contained in:
Andreas Moik
2016-06-03 12:30:53 +02:00
parent 4c3d0bf5aa
commit b6d9f2a4ce
33 changed files with 1406 additions and 1584 deletions
+12 -13
View File
@@ -41,21 +41,22 @@ if (!$db = new basis_db())
$getuid=get_uid();
$uid=$getuid;
if(isset($_GET['uid']))
// TODO EINE get_prestudent_id
// WICHTIG TODO EINE: $uid und $getuid müssen im ganzen script noch umgeschrieben werden!
if(isset($_GET['prestudent_id']))
{
//Studentenansicht
$uid = $_GET['uid'];
$prestudent_id = $_GET['prestudent_id'];
//Rechte Pruefen
$allowed=false;
$student = new student(); // TODO EINE
if(!$student->load($uid))
die($p->t('global/fehlerBeimErmittelnDerUID'));
$prestudent = new prestudent($prestudent_id);
$stg_obj = new studiengang();
if(!$stg_obj->load($student->studiengang_kz))
if(!$stg_obj->load($prestudent->studiengang_kz))
die($p->t('global/fehlerBeimLesenAusDatenbank'));
//Berechtigung ueber das Berechtigungssystem
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($getuid);
@@ -69,7 +70,7 @@ if(isset($_GET['uid']))
JOIN lehre.tbl_projektbetreuer USING(projektarbeit_id)
JOIN campus.vw_benutzer on(vw_benutzer.person_id=tbl_projektbetreuer.person_id)
WHERE
tbl_projektarbeit.prestudent_id=".$db->db_add_param($student->prestudent_id, FHC_INTEGER)." AND
tbl_projektarbeit.prestudent_id=".$db->db_add_param($prestudent_id, FHC_INTEGER)." AND
vw_benutzer.uid=".$db->db_add_param($getuid).";";
if($result = $db->db_query($qry))
@@ -90,8 +91,6 @@ $htmlstr1 = '';
$vorname='';
$nachname='';
if(!$student = new student($uid)) // TODO EINE
die("Student nicht gefunden");
$sql_query = "SELECT (SELECT nachname FROM public.tbl_person WHERE person_id=tbl_projektbetreuer.person_id) AS bnachname,
(SELECT vorname FROM public.tbl_person WHERE person_id=tbl_projektbetreuer.person_id) AS bvorname,
@@ -109,7 +108,7 @@ $sql_query = "SELECT (SELECT nachname FROM public.tbl_person WHERE person_id=tb
LEFT JOIN lehre.tbl_projekttyp USING (projekttyp_kurzbz)
WHERE (projekttyp_kurzbz='Bachelor' OR projekttyp_kurzbz='Diplom')
AND (tbl_projektbetreuer.betreuerart_kurzbz='Betreuer' OR tbl_projektbetreuer.betreuerart_kurzbz='Begutachter' OR tbl_projektbetreuer.betreuerart_kurzbz='Erstbetreuer' OR tbl_projektbetreuer.betreuerart_kurzbz='Erstbegutachter')
AND tbl_projektarbeit.prestudent_id=".$db->db_add_param($student->prestudent_id, FHC_INTEGER)."
AND tbl_projektarbeit.prestudent_id=".$db->db_add_param($prestudent_id, FHC_INTEGER)."
AND public.tbl_benutzer.aktiv
AND lehre.tbl_projektarbeit.note IS NULL
ORDER BY studiensemester_kurzbz desc, tbl_lehrveranstaltung.kurzbz";
@@ -114,20 +114,19 @@ if(!$rechte->isBerechtigt('admin',0) &&
}
}
function savenote($db,$lvid, $student_uid, $note, $punkte=null)
function savenote($db,$lvid, $prestudent_id, $note, $punkte=null)
{
global $stsem, $user, $p, $noten_anmerkung;
$jetzt = date("Y-m-d H:i:s");
$punkte = str_replace(',','.',$punkte);
//Ermitteln ob der Student diesem Kurs zugeteilt ist
$qry = "SELECT 1 FROM campus.vw_student_lehrveranstaltung WHERE uid=".$db->db_add_param($student_uid)." AND lehrveranstaltung_id=".$db->db_add_param($lvid, FHC_INTEGER);
$qry = "SELECT 1 FROM campus.vw_student_lehrveranstaltung WHERE prestudent_id=".$db->db_add_param($prestudent_id, FHC_INTEGER)." AND lehrveranstaltung_id=".$db->db_add_param($lvid, FHC_INTEGER);
if($result = $db->db_query($qry))
{
if($db->db_num_rows($result)==0)
{
$student = new student();// TODO EINE
$student->load($student_uid);
return $p->t('benotungstool/studentIstLvNichtZugeordnet', array($student->nachname, $student->vorname, trim($student->matrikelnr)))."\n";
$prestudent = new prestudent($prestudent_id);
return $p->t('benotungstool/studentIstLvNichtZugeordnet', array($prestudent->nachname, $prestudent->vorname, trim($prestudent->perskz)))."\n";
}
}
@@ -156,13 +155,11 @@ function savenote($db,$lvid, $student_uid, $note, $punkte=null)
}
$student = new student();
$student->load($student_uid); // TODO EINE
$lvgesamtnote = new lvgesamtnote();
if (!$lvgesamtnote->load($lvid, $student->prestudent_id, $stsem))
if (!$lvgesamtnote->load($lvid, $prestudent_id, $stsem))
{
$lvgesamtnote->prestudent_id = $student->prestudent_id;
$lvgesamtnote->prestudent_id = $prestudent_id;
$lvgesamtnote->lehrveranstaltung_id = $lvid;
$lvgesamtnote->studiensemester_kurzbz = $stsem;
$lvgesamtnote->note = trim($note);
@@ -202,13 +199,13 @@ function savenote($db,$lvid, $student_uid, $note, $punkte=null)
if (isset($_REQUEST["submit"]))
{
$lvid = $_REQUEST["lvid"];
if(isset($_REQUEST["student_uid"]) && $_REQUEST["student_uid"] != '')
if(isset($_REQUEST["prestudent_id"]) && is_numeric($_REQUEST["prestudent_id"]))
{
$student_uid = $_REQUEST["student_uid"];
$prestudent_id = $_REQUEST["prestudent_id"];
$note = $_REQUEST["note"];
$punkte = (isset($_REQUEST["punkte"])?$_REQUEST["punkte"]:'');
$response = savenote($db,$lvid, $student_uid, $note, $punkte);
$response = savenote($db,$lvid, $prestudent_id, $note, $punkte);
echo $response;
}
else
@@ -235,8 +232,7 @@ if (isset($_REQUEST["submit"]))
}
$punkte=str_replace(',','.', $punkte);
//UID ermitteln
$student = new student();// TODO EINE? auf prestudent ändern?
if(!$student_uid = $student->getUidFromMatrikelnummer($matrikelnummer))
if(!$student_uid = $student->getUidFromMatrikelnummer($matrikelnummer)) // TODO EINE! hier brauchen wir für savenote eine prestudent_id!
{
$response.="\n".$p->t('benotungstool/studentMitMatrikelnummerExistiertNicht',array($matrikelnummer));
continue;
@@ -244,8 +240,7 @@ if (isset($_REQUEST["submit"]))
// Hole Zeugnisnote wenn schon eine eingetragen ist
/*
$student = new student($student_uid);// TODO EINE ändern?
if ($zeugnisnote = new zeugnisnote($lvid, $student->prestudent_id, $stsem))
if ($zeugnisnote = new zeugnisnote($lvid, $prestudent_id, $stsem))
$znote = $zeugnisnote->note;
else
$znote = null;
@@ -325,13 +325,13 @@ foreach($noten_obj->result as $row)
document.nachpruefung_form.note.value = "9";
note = "9";
}
var uid = document.nachpruefung_form.uid.value;
var prestudent_id = document.nachpruefung_form.prestudent_id.value;
var lehreinheit_id = document.nachpruefung_form.le_id.value;
alert(prestudent_id + " TODO EINE pachpruefungeintragen.php");
var jetzt = new Date();
var ts = jetzt.getTime();
var url= '<?php echo "nachpruefungeintragen.php?lvid=$lvid&stsem=$stsem"; ?>';
url += '&submit=1&student_uid='+uid+'&note='+note+'&datum='+datum+'&lehreinheit_id_pr='+lehreinheit_id+'&punkte='+punkte+'&typ='+typ+'&'+ts;
url += '&submit=1&prestudent_id='+prestudent_id+'&note='+note+'&datum='+datum+'&lehreinheit_id_pr='+lehreinheit_id+'&punkte='+punkte+'&typ='+typ+'&'+ts;
$.ajax({
type:"GET",
@@ -40,7 +40,6 @@ require_once('../../../../include/pruefung.class.php');
require_once('../../../../include/mail.class.php');
require_once('../../../../include/benutzerfunktion.class.php');
require_once('../../../../include/benutzer.class.php');
require_once('../../../../include/student.class.php');
require_once('../../../../include/notenschluessel.class.php');
if (!$db = new basis_db())
@@ -88,14 +87,14 @@ else
$stsem = '';
$uebung_id = (isset($_GET['uebung_id'])?$_GET['uebung_id']:'');
$uid = (isset($_GET['uid'])?$_GET['uid']:'');
$prestudent_id = (isset($_GET['prestudent_id'])?$_GET['prestudent_id']:'');
//Studiensemester laden
$stsem_obj = new studiensemester();
if($stsem=='')
$stsem = $stsem_obj->getaktorNext();
$student_uid = $_REQUEST["student_uid"];
$prestudent_id = $_REQUEST["prestudent_id"];
$note = $_REQUEST["note"];
if(isset($_REQUEST['punkte']))
@@ -135,7 +134,7 @@ if($note=='')
$old_note = $note;
// lvgesamtnote für studenten speichern
if (isset($_REQUEST["submit"]) && ($_REQUEST["student_uid"] != '') )
if (isset($_REQUEST["submit"]) && (is_numeric($_REQUEST["prestudent_id"])) )
{
// Die Pruefung muss einer Lehreinheit zugeordnet werden
// deshalb wird hier versucht eine passende Lehreinheit zu ermitteln.
@@ -143,11 +142,11 @@ if (isset($_REQUEST["submit"]) && ($_REQUEST["student_uid"] != '') )
$qry_stud = "SELECT DISTINCT lehreinheit_id, lehrform_kurzbz
FROM
campus.vw_student_lehrveranstaltung
JOIN campus.vw_student using(uid)
JOIN campus.vw_student using(prestudent_id)
WHERE
studiensemester_kurzbz = ".$db->db_add_param($stsem)."
AND lehrveranstaltung_id = ".$db->db_add_param($lvid, FHC_INTEGER)."
AND uid=".$db->db_add_param($student_uid)."
AND prestudent_id=".$db->db_add_param($prestudent_id, FHC_INTEGER)."
ORDER BY lehrform_kurzbz DESC";
if($result_stud = $db->db_query($qry_stud))
@@ -166,18 +165,16 @@ if (isset($_REQUEST["submit"]) && ($_REQUEST["student_uid"] != '') )
$pr = new Pruefung();
$student = new student($student_uid);//TODO EINE
// Wenn eine Pruefung angelegt wird, wird zuerst eine Pruefung mit 1. Termin angelegt
// und dort die Zeugnisnote gespeichert
if($pr->getPruefungen($student->prestudent_id, "Termin1", $lvid, $stsem))
if($pr->getPruefungen($prestudent_id, "Termin1", $lvid, $stsem))
{
if ($pr->result)
$termin1 = 1;
else
{
$student = new student($student_uid); // TODO EINE
$lvnote = new lvgesamtnote();
if ($lvnote->load($lvid, $student->prestudent_id, $stsem))
if ($lvnote->load($lvid, $prestudent_id, $stsem))
{
$pr_note = $lvnote->note;
$pr_punkte = $lvnote->punkte;
@@ -191,7 +188,7 @@ if (isset($_REQUEST["submit"]) && ($_REQUEST["student_uid"] != '') )
$pr_1 = new Pruefung();
$pr_1->lehreinheit_id = $lehreinheit_id;
$pr_1->student_uid = $student_uid;
$pr_1->prestudent_id = $prestudent_id;
$pr_1->mitarbeiter_uid = $user;
$pr_1->note = $pr_note;
$pr_1->punkte = $pr_punkte;
@@ -212,9 +209,8 @@ if (isset($_REQUEST["submit"]) && ($_REQUEST["student_uid"] != '') )
$prTermin2 = new Pruefung();
$pr_2 = new Pruefung();
$student = new student($student_uid);//TODO EINE
// Die Pruefung wird als Termin2 eingetragen
if ($prTermin2->getPruefungen($student->prestudent_id, $typ, $lvid, $stsem))
if ($prTermin2->getPruefungen($prestudent_id, $typ, $lvid, $stsem))
{
if ($prTermin2->result)
{
@@ -231,7 +227,7 @@ if (isset($_REQUEST["submit"]) && ($_REQUEST["student_uid"] != '') )
else
{
$pr_2->lehreinheit_id = $lehreinheit_id;
$pr_2->student_uid = $student_uid;
$pr_2->prestudent_id = $prestudent_id;
$pr_2->mitarbeiter_uid = $user;
$pr_2->note = $note;
$pr_2->punkte = $punkte;
@@ -255,9 +251,8 @@ if (isset($_REQUEST["submit"]) && ($_REQUEST["student_uid"] != '') )
$lvid = $_REQUEST["lvid"];
$student = new student($student_uid);// TODO EINE
$lvgesamtnote = new lvgesamtnote();
if (!$lvgesamtnote->load($lvid, $student->prestudent_id, $stsem))
if (!$lvgesamtnote->load($lvid, $prestudent_id, $stsem))
{
$lvgesamtnote->prestudent_id = $prestudent_id;
$lvgesamtnote->lehrveranstaltung_id = $lvid;
@@ -17,8 +17,9 @@
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at>,
* Rudolf Hangl <rudolf.hangl@technikum-wien.at> and
* Gerald Raab <gerald.raab@technikum-wien.at>.
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>,
* Gerald Raab <gerald.raab@technikum-wien.at> and
* Andreas Moik <moik@technikum-wien.at>.
*/
require_once('../../../config/cis.config.inc.php');
@@ -36,7 +37,7 @@ if (!$db = new basis_db())
$uid=get_uid();
if(isset($_GET['uid']))
if(isset($_GET['uid'])) // TODO EINE get_uid / _GET['uid'] für studienerfolg.rdf.php wird die prestudent_id benötigt!
{
// Administratoren duerfen die UID als Parameter uebergeben um die Studienerfolgsbestätigung
// von anderen Personen anzuzeigen
@@ -111,4 +112,4 @@ if($result = $db->db_query($qry))
echo '
</body>
</html>';
?>
?>
+14 -22
View File
@@ -34,7 +34,6 @@ require_once('../../../include/lvregel.class.php');
require_once('../../../include/studiensemester.class.php');
require_once('../../../include/lehrveranstaltung.class.php');
require_once('../../../include/prestudent.class.php');
require_once('../../../include/student.class.php');
require_once('../../../include/zeugnisnote.class.php');
require_once('../../../include/lvangebot.class.php');
require_once('../../../include/datum.class.php');
@@ -47,8 +46,9 @@ require_once('../../../include/lvinfo.class.php');
require_once('../../../include/addon.class.php');
$uid = get_uid();
if(isset($_GET['uid']))
// TODO EINE get_uid auf get_prestudent_id!?!
// TODO EINE strg + f "uid" im ganzen skript!
if(isset($_GET['$prestudent']))
{
// Administratoren duerfen die UID als Parameter uebergeben um den Studienplan
// von anderen Personen anzuzeigen
@@ -105,8 +105,7 @@ if(isset($_GET['getAnmeldung']))
//Pruefen ob genug Credit Points zur Verfuegung stehen zur Anmeldung
$konto = new konto();
$student = new student($uid); // TODO EINE
$cp = $konto->getCreditPoints($student->prestudent_id, $stsem);
$cp = $konto->getCreditPoints($prestudent_id, $stsem);
if($cp===false || $cp>=$lv->ects)
echo '<br><input type="radio" value="'.$lvid.'" name="lv"/>'.$lv->bezeichnung.' (Anmeldung bis '.$datum->formatDatum($angebot->anmeldefenster_ende,"d.m.Y").')';
else
@@ -205,8 +204,7 @@ if(isset($_POST['action']) && $_POST['action']=='anmeldung')
// Pruefen ob genug CP zur Verfuegung stehen falls diese reduziert sind
$konto = new konto();
$student = new student($uid); // TODO EINE
$cp = $konto->getCreditPoints($student->prestudent_id, $stsem);
$cp = $konto->getCreditPoints($prestudent_id, $stsem);
if($cp===false || $cp>=$lv->ects)
{
$bngruppe->uid = $uid;
@@ -238,18 +236,15 @@ if(isset($_POST['action']) && $_POST['action']=='anmeldung')
$db = new basis_db();
$datum_obj = new datum();
// Student Laden
$student = new student(); // TODO EINE
$student->load($uid);
$prestudent = new prestudent($prestudent_id);
// ersten Status holen
$prestudent = new prestudent();
$prestudent->getFirstStatus($student->prestudent_id, 'Student');
$prestudent->getFirstStatus($prestudent_id, 'Student');
$studiensemester_start = $prestudent->studiensemester_kurzbz;
$ausbildungssemester_start = $prestudent->ausbildungssemester;
$orgform_kurzbz = $prestudent->orgform_kurzbz;
$prestudent->getLastStatus($student->prestudent_id, 'Student');
$prestudent->getLastStatus($prestudent_id, 'Student');
$studienplan_id = $prestudent->studienplan_id;
$studienplan = new studienplan();
@@ -304,7 +299,7 @@ if(!in_array($stsemToShow,$stsem_arr))
// Noten des Studierenden holen
$noten_arr=array();
$zeugnisnote = new zeugnisnote();
if($zeugnisnote->getZeugnisnoten('',$student->prestudent_id,''))
if($zeugnisnote->getZeugnisnoten('',$prestudent_id,''))
{
foreach($zeugnisnote->result as $row_note)
{
@@ -333,7 +328,7 @@ $lv->loadLehrveranstaltungStudienplan($studienplan_id);
foreach($lv->lehrveranstaltungen as $row_lva)
$lv_arr[$row_lva->lehrveranstaltung_id]=$row_lva;
echo '<h1>'.$p->t('studienplan/studienplan').": $studienplan->bezeichnung ($studienplan_id) - $student->vorname $student->nachname ( $student->uid )</h1>";
echo '<h1>'.$p->t('studienplan/studienplan').": $studienplan->bezeichnung ($studienplan_id) - $prestudent->vorname $prestudent->nachname ( $prestudent->uid )</h1>";
echo '<table style="border: 1px solid black">
<thead>
@@ -352,8 +347,7 @@ foreach($stsem_arr as $stsem)
echo $stsem;
$konto = new konto();
$student = new student($uid); // TODO EINE
$cp = $konto->getCreditPoints($student->prestudent_id, $stsem);
$cp = $konto->getCreditPoints($prestudent_id, $stsem);
if($cp!==false)
echo '<span title="'.$p->t('studienplan/reduzierteCP',array($cp)).'" ><br><img src="../../../skin/images/information.png" alt="Information"/></span>';
echo '</th>';
@@ -415,8 +409,7 @@ function drawTree($tree, $depth)
$lvregel = new lvregel();
if($lvregel->exists($row_tree->studienplan_lehrveranstaltung_id))
{
$student = new student($uid); // TODO EINE
if($lvregel->isAbgeschlossen($student->prestudent_id, $row_tree->studienplan_lehrveranstaltung_id))
if($lvregel->isAbgeschlossen($prestudent_id, $row_tree->studienplan_lehrveranstaltung_id))
$abgeschlossen=true;
else
$abgeschlossen=false;
@@ -579,8 +572,7 @@ function drawTree($tree, $depth)
}
else
{
$student = new student($uid);// TODO EINE
if(!$lvregel->isZugangsberechtigt($student->prestudent_id, $row_tree->studienplan_lehrveranstaltung_id, $stsem))
if(!$lvregel->isZugangsberechtigt($prestudent_id, $row_tree->studienplan_lehrveranstaltung_id, $stsem))
{
$regelerfuellt=false;
}
@@ -600,7 +592,7 @@ function drawTree($tree, $depth)
{
// Pruefen ob bereits angemeldet
$bngruppe = new benutzergruppe();
if($bngruppe->load($uid, $angebot->gruppe_kurzbz, $stsem))
if($bngruppe->load($prestudent->uid, $angebot->gruppe_kurzbz, $stsem)) // TODO EINE gibts hier überhaupt einen prestudenten?
{
// Bereits angemeldet
$angemeldet=true;
+1 -1
View File
@@ -31,7 +31,7 @@ function loadanwesenheit(prestudent_id,lehrveranstaltung_id)
//anwesenheit laden
url = "<?php echo APP_ROOT; ?>rdf/anwesenheit.rdf.php?ts="+gettimestamp();
alert(prestudent_id); // TODO EINE
if(parseInt(prestudent_id) !== false)
url=url+"&prestudent_id="+prestudent_id;
if(lehrveranstaltung_id!='')
@@ -1838,7 +1838,7 @@ function LehrveranstaltungNotenAuswahl()
var prestudent_id=tree.view.getCellText(tree.currentIndex,col);
var col = tree.columns ? tree.columns["lehrveranstaltung-noten-tree-studiensemester_kurzbz"] : "lehrveranstaltung-noten-tree-studiensemester_kurzbz";
var studiensemester_kurzbz=tree.view.getCellText(tree.currentIndex,col);
alert(prestudent_id + " LVOVERLAY.JS");//TODO EINE (testen, ob prestudent_id eingetragen ist!)
//Daten holen
var url = '<?php echo APP_ROOT ?>rdf/zeugnisnote.rdf.php?lehrveranstaltung_id='+lehrveranstaltung_id+'&prestudent_id='+prestudent_id+'&studiensemester_kurzbz='+studiensemester_kurzbz+'&'+gettimestamp();
@@ -2001,8 +2001,8 @@ function LehrveranstaltungFFZertifikatPrint(event)
for (var v = start.value; v <= end.value; v++)
{
col = tree.columns ? tree.columns["lehrveranstaltung-noten-tree-prestudent_id"] : "lehrveranstaltung-noten-tree-prestudent_id";
uid = tree.view.getCellText(v,col);
paramList += ';'+uid;
prestudent_id = tree.view.getCellText(v,col);
paramList += ';'+prestudent_id;
anzahl = anzahl+1;
col = tree.columns ? tree.columns["lehrveranstaltung-noten-tree-lehrveranstaltung_id"] : "lehrveranstaltung-noten-tree-lehrveranstaltung_id";
lvid = tree.view.getCellText(v,col);
@@ -2019,7 +2019,7 @@ function LehrveranstaltungFFZertifikatPrint(event)
else
var output='pdf';
url = '<?php echo APP_ROOT; ?>content/pdfExport.php?xml=zertifikat.rdf.php&xsl=Zertifikat&stg_kz='+stg_kz+'&uid='+paramList+'&output='+output+'&ss='+ss+'&lvid='+lvid+'&'+gettimestamp();
url = '<?php echo APP_ROOT; ?>content/pdfExport.php?xml=zertifikat.rdf.php&xsl=Zertifikat&stg_kz='+stg_kz+'&prestudent_id='+paramList+'&output='+output+'&ss='+ss+'&lvid='+lvid+'&'+gettimestamp();
window.location.href = url;
//prompt('test:',url);
}
+60 -63
View File
@@ -313,6 +313,7 @@ if(!$error)
if(!$error)
{
$prestudent->prestudent_id = $_POST['prestudent_id'];
$prestudent->uid = $_POST['uid'];
$prestudent->perskz = $_POST['perskz'];
$prestudent->updateamum = date('Y-m-d H:i:s');
@@ -399,14 +400,13 @@ if(!$error)
if(count($prestudentobj->result)>0)
{
$tmpStudent = new student($_POST['uid']); // TODO EINE
if($student_lvb->studentlehrverband_exists($tmpStudent->prestudent_id, $semester_aktuell))
if($student_lvb->studentlehrverband_exists($_POST['prestudent_id'], $semester_aktuell))
$student_lvb->new = false;
else
$student_lvb->new = true;
$student_lvb->uid = $_POST['uid'];
$student_lvb->uid = $_POST['uid']; // TODO EINE
$student_lvb->studiensemester_kurzbz = $semester_aktuell;
$student_lvb->studiengang_kz = $_POST['studiengang_kz'];
$student_lvb->semester = $_POST['semester'];
@@ -808,11 +808,10 @@ if(!$error)
//Unterbrecher und Abbrecher werden ins 0. Semester verschoben
if($_POST['status_kurzbz']=='Unterbrecher' || $_POST['status_kurzbz']=='Abbrecher')
{
$student = new student();
$uid = $student->getUid($prestudent_id);
$student->load($uid);
$student->studiensemester_kurzbz=$studiensemester;
$student->semester = '0';
$prestudent = new prestudent($prestudent_id);
$prestudent->studiensemester_kurzbz=$studiensemester;
$student->semester = '0';// TODO EINE
if($_POST['status_kurzbz']=='Abbrecher')
{
$student->verband='A';
@@ -838,7 +837,7 @@ if(!$error)
//Nachschauen ob dieser Lehrverband schon existiert, falls nicht dann anlegen
$lehrverband = new lehrverband();
if(!$lehrverband->exists($student->studiengang_kz, $student->semester, $student->verband, ''))
if(!$lehrverband->exists($prestudent->studiengang_kz, $student->semester, $student->verband, ''))
{
//Pruefen ob der uebergeordnete Lehrverband existiert, falls nicht dann anlegen
if(!$lehrverband->exists($student->studiengang_kz, $student->semester, '', ''))
@@ -877,15 +876,14 @@ if(!$error)
//Verband und Gruppe wird entfernt.
if($_POST['status_kurzbz']=='Student')
{
$student = new student();
$uid = $student->getUid($prestudent_id);//TODO EINE
$student->load($uid);
$student->studiensemester_kurzbz=$semester_aktuell;
$student->semester = $_POST['semester'];
$student->verband = '';
$student->gruppe = '';
$student->save(false, false);
$student->save_studentlehrverband(false);
$prestudent = new prestudent($prestudent_id);
$prestudent->studiensemester_kurzbz=$semester_aktuell; // TODO EINE
$prestudent->semester = $_POST['semester'];
$prestudent->verband = '';
$prestudent->gruppe = '';
$prestudent->save(false, false);
$prestudent->save_studentlehrverband(false);
//Aktiv Status setzen
$benutzer = new benutzer();
if($benutzer->load($uid))
@@ -900,11 +898,10 @@ if(!$error)
//bei Abbrechern und Absolventen wird der Aktiv Status auf false gesetzt
if($_POST['status_kurzbz']=='Abbrecher' || $_POST['status_kurzbz']=='Absolvent')
{
$student = new student();
$uid = $student->getUid($prestudent_id);//TODO EINE
$prestudent = new prestudent($prestudent_id);
$benutzer = new benutzer();
if($benutzer->load($uid))
if($benutzer->load($prestudent_uid))
{
$benutzer->updateamum = date('Y-m-d H:i:s');
$benutzer->updatevon = $user;
@@ -1149,28 +1146,28 @@ if(!$error)
$stdsem_new = filter_input(INPUT_POST, "studiensemester_kurzbz");
$semester = filter_input(INPUT_POST, "ausbildungssemester");
$prestudent_temp = new prestudent();
$prestudent_temp->getLastStatus($rolle->prestudent_id, "", "Student");
if($student->load_studentlehrverband($rolle->prestudent_id, $prestudent_temp->studiensemester_kurzbz))
$student->new=false;
$prestudent = new prestudent($prestudent_id);
$prestudent->getLastStatus($rolle->prestudent_id, "", "Student");
if($prestudent->load_studentlehrverband($prestudent->studiensemester_kurzbz))
$prestudent->new=false;
else
$student->new=true;
$prestudent->new=true;
$lehrverband = new lehrverband();
if(!$lehrverband->exists($student->studiengang_kz, $semester, $student->verband, $student->gruppe))
if(!$lehrverband->exists($prestudent->studiengang_kz, $semester, $prestudent->verband, $prestudent->gruppe))
{
$student->studiensemester_kurzbz = $stdsem_new;
$prestudent->studiensemester_kurzbz = $stdsem_new;
$return = false;
$errormsg = $student->errormsg;
}
else
{
$student->studiensemester_kurzbz = $stdsem_new;
$student->semester = $semester;
$student->updatevon = $user;
$prestudent->studiensemester_kurzbz = $stdsem_new;
$prestudent->semester = $semester;
$prestudent->updatevon = $user;
}
$student->save_studentlehrverband();
$prestudent->save_studentlehrverband();// TODO EINE
}
}
@@ -1272,26 +1269,25 @@ if(!$error)
$return = false;
}
$student = new student();
$temp_uid = $student->getUid($rolle->prestudent_id);
$prestudent = new prestudent($prestudent_id);
if(!$error)
{
$student->load_studentlehrverband($rolle->prestudent_id, $_POST["studiensemester_kurzbz"]);
$prestudent->load_studentlehrverband($rolle->prestudent_id, $_POST["studiensemester_kurzbz"]);
$lehrverband = new lehrverband();
if(!$lehrverband->exists($student->studiengang_kz, $semester, $student->verband, $student->gruppe))
if(!$lehrverband->exists($prestudent->studiengang_kz, $semester, $prestudent->verband, $prestudent->gruppe))
{
$student->studiensemester_kurzbz = $stdsem;
$prestudent->studiensemester_kurzbz = $stdsem;
$return = false;
$errormsg = $student->errormsg;
$errormsg = $prestudent->errormsg;
}
else
{
$student->studiensemester_kurzbz = $stdsem;
$student->semester = $semester;
$prestudent->studiensemester_kurzbz = $stdsem;
$prestudent->semester = $semester;
}
$student->save_studentlehrverband(true);
$prestudent->save_studentlehrverband(true); // TODO EINE gibts beim prestudenten nicht!
$rolle->ausbildungssemester = $semester;
$rolle->studiensemester_kurzbz = $stdsem;
$rolle->datum = date("Y-m-d");
@@ -1604,7 +1600,7 @@ if(!$error)
}
elseif(isset($_POST['type']) && $_POST['type']=='gruppenzuteilung')
{
if(isset($_POST['uid']) && isset($_POST['gruppe_kurzbz']))
if(isset($_POST['prestudent_id']) && isset($_POST['gruppe_kurzbz']))
{
$gruppe = new gruppe();
if(!$gruppe->load($_POST['gruppe_kurzbz']))
@@ -1624,19 +1620,20 @@ if(!$error)
}
$benutzergruppe = new benutzergruppe();
$uids = explode(';',$_POST['uid']);
$prestudent_ids = explode(';',$_POST['prestudent_id']);
$errormsg = '';
foreach ($uids as $uid)
foreach ($prestudent_ids as $prestudent_id)
{
if($uid!='')
if(is_numeric($prestudent_id))
{
if($_POST['gruppe_kurzbz']!='')
{
$prestudent = new prestudent($prestudent_id);
//Zuteilung zu einer Spezialgruppe
if(!$benutzergruppe->load($uid, $_POST['gruppe_kurzbz']))
if(!$benutzergruppe->load($prestudent->uid, $_POST['gruppe_kurzbz']))
{
$benutzergruppe->uid = $uid;
$benutzergruppe->uid = $prestudent->uid;
$benutzergruppe->gruppe_kurzbz = $_POST['gruppe_kurzbz'];
$benutzergruppe->studiensemester_kurzbz = $semester_aktuell;
$benutzergruppe->insertamum = date('Y-m-d H:i:s');
@@ -1645,11 +1642,11 @@ if(!$error)
if(!$benutzergruppe->save())
{
$errormsg .= "$uid konnte nicht hinzugefuegt werden\n";
$errormsg .= "$prestudent->uid($prestudent->prestudent_id) konnte nicht hinzugefuegt werden\n";
}
}
else
$errormsg .= "Der Student $uid ist bereits in dieser Gruppe\n";
$errormsg .= "Der Student $prestudent->prestudent_id ist bereits in dieser Gruppe\n";
}
else
{
@@ -1673,16 +1670,16 @@ if(!$error)
if($semester_aktuell == $stsem_kurzbz)
{
//Eintrag in der Tabelle Student aendern
$student = new student();
$prestudent = new prestudent();
if(!$student->load($uid))
if(!$prestudent->load($prestudent_id))
{
$errormsg .= 'Fehler beim Laden des Studenten';
$error = true;
$return = false;
}
if($student->studiengang_kz!=$_POST['stg_kz'])
if($prestudent->studiengang_kz!=$_POST['stg_kz'])
{
$errormsg.='Ein Student kann nicht in eine Lehrverbandsgruppe eines anderen Studienganges verschoben werden';
$return = false;
@@ -1691,13 +1688,13 @@ if(!$error)
if(!$error)
{
$student->studiengang_kz = $_POST['stg_kz'];
$student->semester = $_POST['semester'];
$student->verband = ($_POST['verband']==''?' ':$_POST['verband']);
$student->gruppe = ($_POST['gruppe']==''?' ':$_POST['gruppe']);
$student->new=false;
$prestudent->studiengang_kz = $_POST['stg_kz'];
$prestudent->semester = $_POST['semester']; // TODO EINE
$prestudent->verband = ($_POST['verband']==''?' ':$_POST['verband']);
$prestudent->gruppe = ($_POST['gruppe']==''?' ':$_POST['gruppe']);
$prestudent->new=false;
if(!$student->save())
if(!$prestudent->save())
{
$errormsg .= 'Fehler beim Speichern des Studenteneintrages';
$return = false;
@@ -1709,16 +1706,16 @@ if(!$error)
if(!$error)
{
//Eintrag in der Tabelle Student aendern
$student = new student();
$prestudent = new student();
if(!$student->load($uid))
if(!$prestudent->load($prestudent_id))
{
$errormsg .= 'Fehler beim Laden des Studenten';
$error = true;
$return = false;
}
if($student->studiengang_kz!=$_POST['stg_kz'])
if($prestudent->studiengang_kz!=$_POST['stg_kz'])
{
$errormsg.='Ein Student kann nicht in eine Lehrverbandsgruppe eines anderen Studienganges verschoben werden';
$return = false;
@@ -1730,7 +1727,7 @@ if(!$error)
//Eintrag in der Tabelle Studentlehrverband aendern
$student_lvb = new student();
if($student_lvb->studentlehrverband_exists($student->prestudent_id, $semester_aktuell))
if($student_lvb->studentlehrverband_exists($prestudent_id, $semester_aktuell))
$student_lvb->new = false;
else
$student_lvb->new = true;
@@ -2508,7 +2505,7 @@ if(!$error)
$bmp->ausgegebenam = $_POST['ausgegebenam'];
$bmp->retouram = $_POST['retouram'];
if($bmp->new)
$bmp->uid = $_POST['uid'];
$bmp->uid = $_POST['uid']; // TODO EINE prestudent_id?
if($bmp->save())
{
+24 -26
View File
@@ -401,7 +401,7 @@ function StudentFFZertifikatPrint(event)
var tree = document.getElementById('student-noten-tree');
col = tree.columns ? tree.columns["student-noten-tree-prestudent_id"] : "student-noten-tree-prestudent_id";
uid = tree.view.getCellText(tree.currentIndex,col);
prestudent_id = tree.view.getCellText(tree.currentIndex,col);
col = tree.columns ? tree.columns["student-noten-tree-lehrveranstaltung_id"] : "student-noten-tree-lehrveranstaltung_id";
lvid = tree.view.getCellText(tree.currentIndex,col);
@@ -419,7 +419,7 @@ function StudentFFZertifikatPrint(event)
else
var output='pdf';
url = '<?php echo APP_ROOT; ?>content/pdfExport.php?xml=zertifikat.rdf.php&xsl=Zertifikat&stg_kz='+stg_kz+'&uid=;'+uid+'&output='+output+'&ss='+stsem+'&lvid='+lvid+'&'+gettimestamp();
url = '<?php echo APP_ROOT; ?>content/pdfExport.php?xml=zertifikat.rdf.php&xsl=Zertifikat&stg_kz='+stg_kz+'&prestudent_id=;'+prestudent_id+'&output='+output+'&ss='+stsem+'&lvid='+lvid+'&'+gettimestamp();
// alert('url: '+url);
window.location.href = url;
@@ -435,7 +435,7 @@ function StudentLVZeugnisPrint(event)
col = tree.columns ? tree.columns["student-noten-tree-prestudent_id"] : "student-noten-tree-prestudent_id";
prestudent_id = tree.view.getCellText(tree.currentIndex,col);
alert(prestudent_id + " studentoverlay(studentlvzeugnisprint)");//TODO EINE
col = tree.columns ? tree.columns["student-noten-tree-lehrveranstaltung_id"] : "student-noten-tree-lehrveranstaltung_id";
lvid = tree.view.getCellText(tree.currentIndex,col);
@@ -1530,12 +1530,12 @@ function StudentAuswahl()
StudentAbschlusspruefungTreeLoad(prestudent_id);
}
if(uid!='')
if(parseInt(prestudent_id) !== false)
{
// ****** Projektarbeit ********* //
StudentProjektarbeitDetailDisableFields(true);
StudentProjektbetreuerDisableFields(true);
StudentProjektarbeitTreeLoad(uid);
StudentProjektarbeitTreeLoad(prestudent_id);
}
@@ -1565,8 +1565,8 @@ function StudentAuswahl()
}
// ***** Anwesenheit *****
if(document.getElementById('student-content-tabs').selectedItem==document.getElementById('student-tab-anwesenheit'))
{alert(prestudent_id); // TODO EINE
if(document.getElementById('student-content-tabs').selectedItem==document.getElementById('student-tab-anwesenheit')) // TODO EINE: PPPFAAAHH, is des schiach(id gibts nicht, wenn man keine berechtigungen hat!) (in content/student/studentenoverlay.xul.php)
{
document.getElementById('student-anwesenheit').setAttribute('src','anwesenheit.xul.php?prestudent_id='+prestudent_id);
}
@@ -4091,9 +4091,8 @@ function StudentPruefungNeu()
{
//Lehrveranstaltung Drop Down laden
var LVDropDown = document.getElementById('student-pruefung-menulist-lehrveranstaltung');
var uid = document.getElementById('student-detail-textbox-uid').value;
var prestudent_id = document.getElementById('student-detail-textbox-prestudent_id').value;
url="<?php echo APP_ROOT;?>rdf/lehrveranstaltung.rdf.php?uid="+uid+"&"+gettimestamp();
url="<?php echo APP_ROOT;?>rdf/lehrveranstaltung.rdf.php?prestudent_id="+prestudent_id+"&"+gettimestamp();
//Alte DS entfernen
var oldDatasources = LVDropDown.database.GetDataSources();
@@ -4350,9 +4349,8 @@ function StudentPruefungAuswahl()
//Lehrveranstaltung Drop Down laden
var LVDropDown = document.getElementById('student-pruefung-menulist-lehrveranstaltung');
//url='<?php echo APP_ROOT;?>rdf/lehrveranstaltung.rdf.php?stg_kz='+stg_kz+"&"+gettimestamp();
var uid = document.getElementById('student-detail-textbox-uid').value;
var prestudent_id = document.getElementById('student-detail-textbox-prestudent_id').value;
url="<?php echo APP_ROOT;?>rdf/lehrveranstaltung.rdf.php?uid="+uid+"&"+gettimestamp();
url="<?php echo APP_ROOT;?>rdf/lehrveranstaltung.rdf.php?prestudent_id="+prestudent_id+"&"+gettimestamp();
//Alte DS entfernen
@@ -5152,9 +5150,9 @@ function StudentCreateDiplSupplement(event)
tree.view.selection.getRangeAt(t,start,end);
for (var v = start.value; v <= end.value; v++)
{
var col = tree.columns ? tree.columns["student-treecol-uid"] : "student-treecol-uid";
var uid=tree.view.getCellText(v,col);
paramList += ';'+uid;
var col = tree.columns ? tree.columns["student-treecol-prestudent_id"] : "student-treecol-prestudent_id";
var prestudent_id=tree.view.getCellText(v,col);
paramList += ';'+prestudent_id;
stg_kz=getTreeCellText(tree,"student-treecol-studiengang_kz", v);
}
}
@@ -5166,7 +5164,7 @@ function StudentCreateDiplSupplement(event)
}
if (event.shiftKey)
{
var output='odt';
var output='odt';
}
else if (event.ctrlKey)
{
@@ -5177,7 +5175,7 @@ function StudentCreateDiplSupplement(event)
var output='pdf';
}
//PDF erzeugen
window.open('<?php echo APP_ROOT; ?>content/pdfExport.php?xml=diplomasupplement.xml.php&output='+output+'&xsl=DiplSupplement&xsl_stg_kz='+stg_kz+'&uid='+paramList,'DiplomaSupplement', 'height=200,width=350,left=0,top=0,hotkeys=0,resizable=yes,status=no,scrollbars=yes,toolbar=no,location=no,menubar=no,dependent=yes');
window.open('<?php echo APP_ROOT; ?>content/pdfExport.php?xml=diplomasupplement.xml.php&output='+output+'&xsl=DiplSupplement&xsl_stg_kz='+stg_kz+'&prestudent_id='+paramList,'DiplomaSupplement', 'height=200,width=350,left=0,top=0,hotkeys=0,resizable=yes,status=no,scrollbars=yes,toolbar=no,location=no,menubar=no,dependent=yes');
}
// ****
@@ -5203,11 +5201,11 @@ function StudentDiplomasupplementArchivieren()
tree.view.selection.getRangeAt(t,start,end);
for (var v = start.value; v <= end.value; v++)
{
var col = tree.columns ? tree.columns["student-treecol-uid"] : "student-treecol-uid";
var uid=tree.view.getCellText(v,col);
var col = tree.columns ? tree.columns["student-treecol-prestudent_id"] : "student-treecol-prestudent_id";
var prestudent_id=tree.view.getCellText(v,col);
stg_kz=getTreeCellText(tree,"student-treecol-studiengang_kz", v);
url = '<?php echo APP_ROOT; ?>content/pdfExport.php?xml=diplomasupplement.xml.php&output=pdf&xsl=DiplSupplement&xsl_stg_kz='+stg_kz+'&uid='+uid+'&archive=true';
url = '<?php echo APP_ROOT; ?>content/pdfExport.php?xml=diplomasupplement.xml.php&output=pdf&xsl=DiplSupplement&xsl_stg_kz='+stg_kz+'&prestudent_id='+prestudent_id+'&archive=true';
var req = new phpRequest(url,'','');
var response = req.execute();
@@ -5335,12 +5333,12 @@ function StudentCreateStudienerfolg(event, xsl, finanzamt, studiensemester, all)
for (var t = 0; t < numRanges; t++)
{
tree.view.selection.getRangeAt(t,start,end);
tree.view.selection.getRangeAt(t,start,end);
for (var v = start.value; v <= end.value; v++)
{
var col = tree.columns ? tree.columns["student-treecol-uid"] : "student-treecol-uid";
var uid=tree.view.getCellText(v,col);
paramList += ';'+uid;
var col = tree.columns ? tree.columns["student-treecol-uid"] : "student-treecol-prestudent_id";
var prestudent_id=tree.view.getCellText(v,col);
paramList += ';'+prestudent_id;
}
}
@@ -5363,7 +5361,7 @@ function StudentCreateStudienerfolg(event, xsl, finanzamt, studiensemester, all)
if (event.shiftKey)
{
var output='odt';
var output='odt';
}
else if (event.ctrlKey)
{
@@ -5375,7 +5373,7 @@ function StudentCreateStudienerfolg(event, xsl, finanzamt, studiensemester, all)
}
//PDF erzeugen
window.open('<?php echo APP_ROOT; ?>content/pdfExport.php?xml=studienerfolg.rdf.php&xsl='+xsl+'&uid='+paramList+'&ss='+studiensemester+'&typ='+finanzamt+all+'&output='+output,'DiplomaSupplement', 'height=200,width=350,left=0,top=0,hotkeys=0,resizable=yes,status=no,scrollbars=yes,toolbar=no,location=no,menubar=no,dependent=yes');
window.open('<?php echo APP_ROOT; ?>content/pdfExport.php?xml=studienerfolg.rdf.php&xsl='+xsl+'&prestudent_id='+paramList+'&ss='+studiensemester+'&typ='+finanzamt+all+'&output='+output,'DiplomaSupplement', 'height=200,width=350,left=0,top=0,hotkeys=0,resizable=yes,status=no,scrollbars=yes,toolbar=no,location=no,menubar=no,dependent=yes');
}
// ************* FUNKTIONEN ***************** //
@@ -5419,7 +5417,7 @@ function StudentAnwesenheitIFrameLoad()
var uid = document.getElementById('student-detail-textbox-uid').value;
var prestudent_id = document.getElementById('student-detail-textbox-prestudent_id').value;
if(parseInt(prestudent_id) !== false)
{alert(prestudent_id); // TODO EINE
{
url = 'anwesenheit.xul.php?prestudent_id='+prestudent_id+'&ts='+gettimestamp();
document.getElementById('student-anwesenheit').setAttribute('src',url);
}
+2 -2
View File
@@ -121,10 +121,10 @@ var StudentProjektbetreuerTreeListener =
// ****
// * Laedt die Daten fuer den Projektarbeiten Tree
// ****
function StudentProjektarbeitTreeLoad(uid)
function StudentProjektarbeitTreeLoad(prestudent_id)
{
var tree = document.getElementById('student-projektarbeit-tree');
var url='<?php echo APP_ROOT;?>rdf/projektarbeit.rdf.php?student_uid='+uid+"&"+gettimestamp();
var url='<?php echo APP_ROOT;?>rdf/projektarbeit.rdf.php?prestudent_id='+prestudent_id+"&"+gettimestamp();
//Alte Observer entfernen
try
@@ -1,484 +1,485 @@
<?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> 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");
header("Pragma: no-cache");
header("Content-type: application/vnd.mozilla.xul+xml");
require_once('../../config/vilesci.config.inc.php');
echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
?>
<overlay id="StudentProjektarbeitOverlay"
xmlns:html="http://www.w3.org/1999/xhtml"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
>
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/student/studentprojektarbeit.js.php" />
<!-- Projektarbeit DETAILS -->
<vbox id="student-projektarbeit" style="overflow:auto;" flex="1">
<popupset>
<menupopup id="student-projektarbeit-tree-popup">
<menuitem label="Entfernen" oncommand="StudentProjektarbeitLoeschen();" id="student-projektarbeit-tree-popup-delete" hidden="false"/>
</menupopup>
</popupset>
<hbox>
<tree id="student-projektarbeit-tree" seltype="single" hidecolumnpicker="false" flex="1"
datasources="rdf:null" ref="http://www.technikum-wien.at/projektarbeit/liste"
style="margin-left:10px;margin-right:10px;margin-bottom:5px;margin-top: 10px;" height="100px" enableColumnDrag="true"
context="student-projektarbeit-tree-popup"
flags="dont-build-content"
>
<treecols>
<treecol id="student-projektarbeit-tree-projekttyp_kurzbz" label="Typ" flex="2" hidden="false"
class="sortDirectionIndicator"
sortActive="true"
sortDirection="ascending"
sort="rdf:http://www.technikum-wien.at/projektarbeit/rdf#bezeichnung"/>
<splitter class="tree-splitter"/>
<treecol id="student-projektarbeit-tree-studiensemester" label="Studiensemester" flex="1" hidden="false"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/projektarbeit/rdf#lehreinheit_stsem"/>
<splitter class="tree-splitter"/>
<treecol id="student-projektarbeit-tree-titel" label="Titel" flex="1" hidden="false"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/projektarbeit/rdf#titel"/>
<splitter class="tree-splitter"/>
<treecol id="student-projektarbeit-tree-note" label="Gesamtnote" flex="2" hidden="false"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/projektarbeit/rdf#note" />
<splitter class="tree-splitter"/>
<treecol id="student-projektarbeit-tree-beginn" label="Beginn" flex="2" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/projektarbeit/rdf#beginn" />
<splitter class="tree-splitter"/>
<treecol id="student-projektarbeit-tree-ende" label="Ende" flex="2" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/projektarbeit/rdf#ende" />
<splitter class="tree-splitter"/>
<treecol id="student-projektarbeit-tree-freigegeben" label="Freigegeben" flex="2" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/projektarbeit/rdf#freigegeben" />
<splitter class="tree-splitter"/>
<treecol id="student-projektarbeit-tree-gesperrtbis" label="Gesperrt bis" flex="2" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/projektarbeit/rdf#gesperrtbis" />
<splitter class="tree-splitter"/>
<treecol id="student-projektarbeit-tree-themenbereich" label="Themenbereich" flex="2" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/projektarbeit/rdf#themenbereich" />
<splitter class="tree-splitter"/>
<treecol id="student-projektarbeit-tree-anmerkung" label="Anmerkung" flex="2" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/projektarbeit/rdf#anmerkung" />
<splitter class="tree-splitter"/>
<treecol id="student-projektarbeit-tree-projektarbeit_id" label="ProjektarbeitID" flex="2" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/projektarbeit/rdf#projektarbeit_id" />
<splitter class="tree-splitter"/>
<treecol id="student-projektarbeit-tree-lehreinheit_id" label="LehreinheitID" flex="2" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/projektarbeit/rdf#lehreinheit_id" />
<splitter class="tree-splitter"/>
<treecol id="student-projektarbeit-tree-student_uid" label="StudentUID" flex="2" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/projektarbeit/rdf#student_uid" />
<splitter class="tree-splitter"/>
<treecol id="student-projektarbeit-tree-firma_id" label="FirmaID" flex="2" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/projektarbeit/rdf#firma_id" />
<splitter class="tree-splitter"/>
</treecols>
<template>
<treechildren flex="1" >
<treeitem uri="rdf:*">
<treerow>
<treecell label="rdf:http://www.technikum-wien.at/projektarbeit/rdf#bezeichnung"/>
<treecell label="rdf:http://www.technikum-wien.at/projektarbeit/rdf#lehreinheit_stsem"/>
<treecell label="rdf:http://www.technikum-wien.at/projektarbeit/rdf#titel"/>
<treecell label="rdf:http://www.technikum-wien.at/projektarbeit/rdf#note"/>
<treecell label="rdf:http://www.technikum-wien.at/projektarbeit/rdf#beginn"/>
<treecell label="rdf:http://www.technikum-wien.at/projektarbeit/rdf#ende"/>
<treecell label="rdf:http://www.technikum-wien.at/projektarbeit/rdf#freigegeben"/>
<treecell label="rdf:http://www.technikum-wien.at/projektarbeit/rdf#gesperrtbis"/>
<treecell label="rdf:http://www.technikum-wien.at/projektarbeit/rdf#themenbereich"/>
<treecell label="rdf:http://www.technikum-wien.at/projektarbeit/rdf#anmerkung"/>
<treecell label="rdf:http://www.technikum-wien.at/projektarbeit/rdf#projektarbeit_id"/>
<treecell label="rdf:http://www.technikum-wien.at/projektarbeit/rdf#lehreinheit_id"/>
<treecell label="rdf:http://www.technikum-wien.at/projektarbeit/rdf#student_uid"/>
<treecell label="rdf:http://www.technikum-wien.at/projektarbeit/rdf#firma_id"/>
</treerow>
</treeitem>
</treechildren>
</template>
</tree>
<vbox>
<button id="student-projektarbeit-button-neu" label="Neu" oncommand="StudentProjektarbeitNeu();" disabled="true"/>
<button id="student-projektarbeit-button-loeschen" label="Loeschen" oncommand="StudentProjektarbeitLoeschen();" disabled="true"/>
</vbox>
</hbox>
<hbox>
<vbox hidden="true">
<label value="Neu"/>
<checkbox id="student-projektarbeit-checkbox-neu" checked="true" />
<label value="Projektarbeit ID"/>
<textbox id="student-projektarbeit-textbox-projektarbeit_id" disabled="true"/>
</vbox>
<groupbox flex="1">
<caption label="Details"/>
<grid style="margin:4px;" flex="1">
<columns >
<column flex="1"/>
<column flex="5"/>
</columns>
<rows>
<row>
<label value="Titel" control="student-projektarbeit-textbox-titel"/>
<textbox id="student-projektarbeit-textbox-titel" disabled="true" maxlength="1024" />
</row>
<row>
<label value="Titel Englisch" control="student-projektarbeit-textbox-titel_english"/>
<textbox id="student-projektarbeit-textbox-titel_english" disabled="true" maxlength="1024" />
</row>
<row>
<label value="Themenbereich" control="student-projektarbeit-textbox-themenbereich"/>
<textbox id="student-projektarbeit-textbox-themenbereich" disabled="true" maxlength="64"/>
</row>
<row>
<label value="Typ" control="student-projektarbeit-menulist-projekttyp"/>
<menulist id="student-projektarbeit-menulist-projekttyp" disabled="true"
datasources="<?php echo APP_ROOT ?>rdf/projekttyp.rdf.php" flex="1"
ref="http://www.technikum-wien.at/projekttyp/liste" >
<template>
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/projekttyp/rdf#projekttyp_kurzbz"
label="rdf:http://www.technikum-wien.at/projekttyp/rdf#bezeichnung"
uri="rdf:*"/>
</menupopup>
</template>
</menulist>
</row>
<row>
<label value="Firma" control="student-projektarbeit-menulist-firma"/>
<box class="Firma" id="student-projektarbeit-menulist-firma" disabled="true"/>
<!--
<hbox>
<menulist id="student-projektarbeit-menulist-firma" disabled="true"
datasources="<?php echo APP_ROOT ?>rdf/firma.rdf.php?optional=true" flex="1"
ref="http://www.technikum-wien.at/firma/liste" >
<template>
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/firma/rdf#firma_id"
label="rdf:http://www.technikum-wien.at/firma/rdf#name"
uri="rdf:*"/>
</menupopup>
</template>
</menulist>
<toolbarbutton id="student-projektarbeit-button-firma-refresh" image="../skin/images/refresh.png" tooltiptext="Liste neu laden" onclick="StudentProjektarbeitFirmaRefresh()"/>
</hbox>
-->
</row>
<row>
<label value="Lehrveranstaltung" control="student-projektarbeit-menulist-lehrveranstaltung"/>
<menulist id="student-projektarbeit-menulist-lehrveranstaltung" disabled="true"
datasources="rdf:null" flex="1"
ref="http://www.technikum-wien.at/lehrveranstaltung/liste"
oncommand="StudentProjektarbeitLVAChange()"
>
<template>
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/lehrveranstaltung/rdf#lehrveranstaltung_id"
label="rdf:http://www.technikum-wien.at/lehrveranstaltung/rdf#bezeichnung rdf:http://www.technikum-wien.at/lehrveranstaltung/rdf#orgform_kurzbz (rdf:http://www.technikum-wien.at/lehrveranstaltung/rdf#semester Sem)"
uri="rdf:*"/>
</menupopup>
</template>
</menulist>
</row>
<row>
<label value="Lehreinheit" control="student-projektarbeit-menulist-lehreinheit"/>
<menulist id="student-projektarbeit-menulist-lehreinheit" disabled="true"
datasources="rdf:null" flex="1"
ref="http://www.technikum-wien.at/lehreinheit/liste" >
<template>
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/lehreinheit/rdf#lehreinheit_id"
label="rdf:http://www.technikum-wien.at/lehreinheit/rdf#bezeichnung rdf:http://www.technikum-wien.at/lehreinheit/rdf#studiensemester_kurzbz"
uri="rdf:*"/>
</menupopup>
</template>
</menulist>
</row>
</rows>
</grid>
<grid style="margin:4px;" flex="1">
<columns >
<column flex="1"/>
<column flex="5"/>
<column flex="1"/>
<column flex="5"/>
</columns>
<rows>
<row>
<spacer />
<spacer />
<label value="Gesamtpunkte" control="student-projektarbeit-textbox-punkte" hidden="true"/>
<hbox hidden="true">
<textbox id="student-projektarbeit-textbox-punkte" maxlength="5" size="5" disabled="true"/>
</hbox>
<label value="Gesamtnote" control="student-projektarbeit-menulist-note"/>
<menulist id="student-projektarbeit-menulist-note" disabled="true"
datasources="<?php echo APP_ROOT ?>rdf/note.rdf.php?optional=true" flex="1"
ref="http://www.technikum-wien.at/note/liste" >
<template>
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/note/rdf#note"
label="rdf:http://www.technikum-wien.at/note/rdf#bezeichnung"
uri="rdf:*"/>
</menupopup>
</template>
</menulist>
</row>
<row>
<label value="Beginn" control="student-projektarbeit-datum-beginn"/>
<box class="Datum" id="student-projektarbeit-datum-beginn" disabled="true" />
<label value="Ende" control="student-projektarbeit-datum-ende"/>
<box class="Datum" id="student-projektarbeit-datum-ende" disabled="true" />
</row>
<row>
<label value="Freigegeben" control="student-projektarbeit-checkbox-freigegeben"/>
<checkbox id="student-projektarbeit-checkbox-freigegeben" disabled="true" />
<label value="Gesperrt bis" control="student-projektarbeit-datum-gesperrtbis"/>
<box class="Datum" id="student-projektarbeit-datum-gesperrtbis" disabled="true" onchange="StudentProjektarbeitGesperrtChanged()" />
</row>
<row>
<label value="Anmerkung" control="student-projektarbeit-textbox-anmerkung"/>
<textbox id="student-projektarbeit-textbox-anmerkung" disabled="true" maxlength="256"/>
</row>
<row>
<spacer />
<hbox>
<spacer flex="1" />
<button id="student-projektarbeit-button-speichern" oncommand="StudentProjektarbeitSpeichern()" label="Speichern" disabled="true"/>
</hbox>
</row>
</rows>
</grid>
<vbox hidden="true">
<!-- Stundensatz/Faktor und Gesamtstunden werden nicht mehr benoetigt -->
<label value="Stundensatz" control="student-projektarbeit-textbox-stundensatz"/>
<hbox>
<textbox id="student-projektarbeit-textbox-stundensatz" disabled="true" maxlength="5" size="5"/>
</hbox>
<label value="Faktor" control="student-projektarbeit-textbox-faktor"/>
<hbox>
<textbox id="student-projektarbeit-textbox-faktor" disabled="true" maxlength="3" size="3"/>
</hbox>
<label value="Gesamtstunden" control="student-projektarbeit-textbox-gesamtstunden"/>
<hbox>
<textbox id="student-projektarbeit-textbox-gesamtstunden" disabled="true" maxlength="8" size="8"/>
</hbox>
</vbox>
</groupbox>
<groupbox flex="1">
<caption label="Betreuer"/>
<hbox>
<tree id="student-projektbetreuer-tree" seltype="single" hidecolumnpicker="false" flex="1"
datasources="rdf:null" ref="http://www.technikum-wien.at/projektbetreuer/liste"
style="margin-left:10px;margin-right:10px;margin-bottom:5px;margin-top: 10px;" height="100px" enableColumnDrag="true"
context="student-projektbetreuer-tree-popup"
flags="dont-build-content"
>
<!--onselect="StudentProjektbetreuerAuswahl()" - wird jetzt per JS gesetzt-->
<treecols>
<treecol id="student-projektbetreuer-tree-nachname" label="Nachname" flex="2" hidden="false"
class="sortDirectionIndicator"
sortActive="true"
sortDirection="ascending"
sort="rdf:http://www.technikum-wien.at/projektbetreuer/rdf#person_nachname"/>
<treecol id="student-projektbetreuer-tree-vorname" label="Vorname" flex="2" hidden="false"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/projektbetreuer/rdf#person_vorname"/>
<splitter class="tree-splitter"/>
<treecol id="student-projektbetreuer-tree-name" label="Name" flex="2" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/projektbetreuer/rdf#name"/>
<splitter class="tree-splitter"/>
<treecol id="student-projektbetreuer-tree-note" label="Note" flex="1" hidden="false"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/projektbetreuer/rdf#note"/>
<splitter class="tree-splitter"/>
<treecol id="student-projektbetreuer-tree-faktor" label="Faktor" flex="2" ignoreincolumnpicker="true" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/projektbetreuer/rdf#faktor" /><!-- Faktor wird nicht mehr benoetigt und deshalb ausgeblendet -->
<splitter class="tree-splitter"/>
<treecol id="student-projektbetreuer-tree-punkte" label="Punkte" flex="2" hidden="false"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/projektbetreuer/rdf#punkte" />
<splitter class="tree-splitter"/>
<treecol id="student-projektbetreuer-tree-stunden" label="Stunden" flex="2" hidden="false"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/projektbetreuer/rdf#stunden" />
<splitter class="tree-splitter"/>
<treecol id="student-projektbetreuer-tree-stundensatz" label="Stundensatz" flex="2" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/projektbetreuer/rdf#stundensatz" />
<splitter class="tree-splitter"/>
<treecol id="student-projektbetreuer-tree-betreuerart_kurzbz" label="Art" flex="2" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/projektbetreuer/rdf#betreuerart_kurzbz" />
<splitter class="tree-splitter"/>
<treecol id="student-projektbetreuer-tree-person_id" label="Person_id" flex="2" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/projektbetreuer/rdf#person_id" />
<splitter class="tree-splitter"/>
<treecol id="student-projektbetreuer-tree-projektarbeit_id" label="ProjektarbeitID" flex="2" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/projektbetreuer/rdf#projektarbeit_id" />
<splitter class="tree-splitter"/>
</treecols>
<template>
<treechildren flex="1" >
<treeitem uri="rdf:*">
<treerow>
<treecell label="rdf:http://www.technikum-wien.at/projektbetreuer/rdf#person_nachname"/>
<treecell label="rdf:http://www.technikum-wien.at/projektbetreuer/rdf#person_vorname"/>
<treecell label="rdf:http://www.technikum-wien.at/projektbetreuer/rdf#name"/>
<treecell label="rdf:http://www.technikum-wien.at/projektbetreuer/rdf#note"/>
<treecell label="rdf:http://www.technikum-wien.at/projektbetreuer/rdf#faktor"/>
<treecell label="rdf:http://www.technikum-wien.at/projektbetreuer/rdf#punkte"/>
<treecell label="rdf:http://www.technikum-wien.at/projektbetreuer/rdf#stunden"/>
<treecell label="rdf:http://www.technikum-wien.at/projektbetreuer/rdf#stundensatz"/>
<treecell label="rdf:http://www.technikum-wien.at/projektbetreuer/rdf#betreuerart_kurzbz"/>
<treecell label="rdf:http://www.technikum-wien.at/projektbetreuer/rdf#person_id"/>
<treecell label="rdf:http://www.technikum-wien.at/projektbetreuer/rdf#projektarbeit_id"/>
</treerow>
</treeitem>
</treechildren>
</template>
</tree>
<vbox>
<button id="student-projektbetreuer-button-neu" label="Neu" oncommand="StudentProjektbetreuerNeu();" disabled="true"/>
<button id="student-projektbetreuer-button-loeschen" label="Loeschen" oncommand="StudentProjektbetreuerLoeschen();" disabled="true"/>
</vbox>
</hbox>
<vbox hidden="true">
<textbox id="student-projektbetreuer-textbox-person_id" />
<textbox id="student-projektbetreuer-textbox-betreuerart_kurzbz_old" />
<checkbox id="student-projektbetreuer-checkbox-neu" />
<label value="Name" control="student-projektbetreuer-textbox-name"/>
<textbox id="student-projektbetreuer-textbox-name" disabled="true" maxlength="32"/>
</vbox>
<grid style="margin:4px;" flex="1">
<columns >
<column flex="1"/>
<column flex="5"/>
</columns>
<rows>
<row>
<label value="Betreuer" control="student-projektbetreuer-menulist-person" />
<menulist id="student-projektbetreuer-menulist-person"
editable="true" disabled="true"
datasources="rdf:null" flex="1"
ref="http://www.technikum-wien.at/person/liste"
oninput="StudentProjektbetreuerMenulistPersonLoad(this)"
oncommand="StudentProjektbetreuerLoadMitarbeiterDaten()">
<template>
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/person/rdf#person_id"
label="rdf:http://www.technikum-wien.at/person/rdf#anzeigename ( rdf:http://www.technikum-wien.at/person/rdf#status )"
uri="rdf:*"/>
</menupopup>
</template>
</menulist>
</row>
<row>
<button id="student-projektbetreuer-button-neueperson" label="Neue Person anlegen" oncommand="StudentProjektbetreuerNeuePerson()" disabled="true"/>
<button id="student-projektbetreuer-button-kontaktdaten" label="Kontakttdaten bearbeiten" oncommand="StudentProjektbetreuerKontaktdaten()" disabled="true"/>
</row>
<row>
<label value="Art" control="student-projektbetreuer-menulist-betreuerart"/>
<menulist id="student-projektbetreuer-menulist-betreuerart" disabled="true"
datasources="<?php echo APP_ROOT ?>rdf/betreuerart.rdf.php" flex="1"
ref="http://www.technikum-wien.at/betreuerart" >
<template>
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/betreuerart/rdf#betreuerart_kurzbz"
label="rdf:http://www.technikum-wien.at/betreuerart/rdf#beschreibung"
uri="rdf:*"/>
</menupopup>
</template>
</menulist>
</row>
<row>
<label value="Note" control="student-projektbetreuer-menulist-note"/>
<menulist id="student-projektbetreuer-menulist-note" disabled="true"
datasources="<?php echo APP_ROOT ?>rdf/note.rdf.php?optional=true" flex="1"
ref="http://www.technikum-wien.at/note/liste" >
<template>
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/note/rdf#note"
label="rdf:http://www.technikum-wien.at/note/rdf#bezeichnung"
uri="rdf:*"/>
</menupopup>
</template>
</menulist>
</row>
<row>
<label value="Punkte" control="student-projektbetreuer-textbox-punkte"/>
<textbox id="student-projektbetreuer-textbox-punkte" disabled="true" maxlength="6"/>
</row>
<row>
<label value="Stunden" control="student-projektbetreuer-textbox-stunden"/>
<textbox id="student-projektbetreuer-textbox-stunden" disabled="true" maxlength="8"/>
</row>
<row>
<label value="Stundensatz" control="student-projektbetreuer-textbox-stundensatz"/>
<textbox id="student-projektbetreuer-textbox-stundensatz" disabled="true" maxlength="5"/>
</row>
<row hidden="true"><!-- Faktor wird nicht mehr benoetigt -->
<label value="Faktor" control="student-projektbetreuer-textbox-faktor"/>
<textbox id="student-projektbetreuer-textbox-faktor" disabled="true" maxlength="3"/>
</row>
<row>
<spacer />
<hbox>
<spacer flex="1" />
<button id="student-projektbetreuer-button-speichern" label="Speichern" oncommand="StudentProjektbetreuerSpeichern()" />
</hbox>
</row>
</rows>
</grid>
</groupbox>
</hbox>
<spacer flex="1" />
</vbox>
</overlay>
<?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> and
* Andreas Moik <moik@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");
header("Pragma: no-cache");
header("Content-type: application/vnd.mozilla.xul+xml");
require_once('../../config/vilesci.config.inc.php');
echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
?>
<overlay id="StudentProjektarbeitOverlay"
xmlns:html="http://www.w3.org/1999/xhtml"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
>
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/student/studentprojektarbeit.js.php" />
<!-- Projektarbeit DETAILS -->
<vbox id="student-projektarbeit" style="overflow:auto;" flex="1">
<popupset>
<menupopup id="student-projektarbeit-tree-popup">
<menuitem label="Entfernen" oncommand="StudentProjektarbeitLoeschen();" id="student-projektarbeit-tree-popup-delete" hidden="false"/>
</menupopup>
</popupset>
<hbox>
<tree id="student-projektarbeit-tree" seltype="single" hidecolumnpicker="false" flex="1"
datasources="rdf:null" ref="http://www.technikum-wien.at/projektarbeit/liste"
style="margin-left:10px;margin-right:10px;margin-bottom:5px;margin-top: 10px;" height="100px" enableColumnDrag="true"
context="student-projektarbeit-tree-popup"
flags="dont-build-content"
>
<treecols>
<treecol id="student-projektarbeit-tree-projekttyp_kurzbz" label="Typ" flex="2" hidden="false"
class="sortDirectionIndicator"
sortActive="true"
sortDirection="ascending"
sort="rdf:http://www.technikum-wien.at/projektarbeit/rdf#bezeichnung"/>
<splitter class="tree-splitter"/>
<treecol id="student-projektarbeit-tree-studiensemester" label="Studiensemester" flex="1" hidden="false"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/projektarbeit/rdf#lehreinheit_stsem"/>
<splitter class="tree-splitter"/>
<treecol id="student-projektarbeit-tree-titel" label="Titel" flex="1" hidden="false"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/projektarbeit/rdf#titel"/>
<splitter class="tree-splitter"/>
<treecol id="student-projektarbeit-tree-note" label="Gesamtnote" flex="2" hidden="false"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/projektarbeit/rdf#note" />
<splitter class="tree-splitter"/>
<treecol id="student-projektarbeit-tree-beginn" label="Beginn" flex="2" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/projektarbeit/rdf#beginn" />
<splitter class="tree-splitter"/>
<treecol id="student-projektarbeit-tree-ende" label="Ende" flex="2" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/projektarbeit/rdf#ende" />
<splitter class="tree-splitter"/>
<treecol id="student-projektarbeit-tree-freigegeben" label="Freigegeben" flex="2" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/projektarbeit/rdf#freigegeben" />
<splitter class="tree-splitter"/>
<treecol id="student-projektarbeit-tree-gesperrtbis" label="Gesperrt bis" flex="2" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/projektarbeit/rdf#gesperrtbis" />
<splitter class="tree-splitter"/>
<treecol id="student-projektarbeit-tree-themenbereich" label="Themenbereich" flex="2" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/projektarbeit/rdf#themenbereich" />
<splitter class="tree-splitter"/>
<treecol id="student-projektarbeit-tree-anmerkung" label="Anmerkung" flex="2" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/projektarbeit/rdf#anmerkung" />
<splitter class="tree-splitter"/>
<treecol id="student-projektarbeit-tree-projektarbeit_id" label="ProjektarbeitID" flex="2" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/projektarbeit/rdf#projektarbeit_id" />
<splitter class="tree-splitter"/>
<treecol id="student-projektarbeit-tree-lehreinheit_id" label="LehreinheitID" flex="2" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/projektarbeit/rdf#lehreinheit_id" />
<splitter class="tree-splitter"/>
<treecol id="student-projektarbeit-tree-prestudent_id" label="PrestudentID" flex="2" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/projektarbeit/rdf#prestudent_id" />
<splitter class="tree-splitter"/>
<treecol id="student-projektarbeit-tree-firma_id" label="FirmaID" flex="2" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/projektarbeit/rdf#firma_id" />
<splitter class="tree-splitter"/>
</treecols>
<template>
<treechildren flex="1" >
<treeitem uri="rdf:*">
<treerow>
<treecell label="rdf:http://www.technikum-wien.at/projektarbeit/rdf#bezeichnung"/>
<treecell label="rdf:http://www.technikum-wien.at/projektarbeit/rdf#lehreinheit_stsem"/>
<treecell label="rdf:http://www.technikum-wien.at/projektarbeit/rdf#titel"/>
<treecell label="rdf:http://www.technikum-wien.at/projektarbeit/rdf#note"/>
<treecell label="rdf:http://www.technikum-wien.at/projektarbeit/rdf#beginn"/>
<treecell label="rdf:http://www.technikum-wien.at/projektarbeit/rdf#ende"/>
<treecell label="rdf:http://www.technikum-wien.at/projektarbeit/rdf#freigegeben"/>
<treecell label="rdf:http://www.technikum-wien.at/projektarbeit/rdf#gesperrtbis"/>
<treecell label="rdf:http://www.technikum-wien.at/projektarbeit/rdf#themenbereich"/>
<treecell label="rdf:http://www.technikum-wien.at/projektarbeit/rdf#anmerkung"/>
<treecell label="rdf:http://www.technikum-wien.at/projektarbeit/rdf#projektarbeit_id"/>
<treecell label="rdf:http://www.technikum-wien.at/projektarbeit/rdf#lehreinheit_id"/>
<treecell label="rdf:http://www.technikum-wien.at/projektarbeit/rdf#prestudent_id"/>
<treecell label="rdf:http://www.technikum-wien.at/projektarbeit/rdf#firma_id"/>
</treerow>
</treeitem>
</treechildren>
</template>
</tree>
<vbox>
<button id="student-projektarbeit-button-neu" label="Neu" oncommand="StudentProjektarbeitNeu();" disabled="true"/>
<button id="student-projektarbeit-button-loeschen" label="Loeschen" oncommand="StudentProjektarbeitLoeschen();" disabled="true"/>
</vbox>
</hbox>
<hbox>
<vbox hidden="true">
<label value="Neu"/>
<checkbox id="student-projektarbeit-checkbox-neu" checked="true" />
<label value="Projektarbeit ID"/>
<textbox id="student-projektarbeit-textbox-projektarbeit_id" disabled="true"/>
</vbox>
<groupbox flex="1">
<caption label="Details"/>
<grid style="margin:4px;" flex="1">
<columns >
<column flex="1"/>
<column flex="5"/>
</columns>
<rows>
<row>
<label value="Titel" control="student-projektarbeit-textbox-titel"/>
<textbox id="student-projektarbeit-textbox-titel" disabled="true" maxlength="1024" />
</row>
<row>
<label value="Titel Englisch" control="student-projektarbeit-textbox-titel_english"/>
<textbox id="student-projektarbeit-textbox-titel_english" disabled="true" maxlength="1024" />
</row>
<row>
<label value="Themenbereich" control="student-projektarbeit-textbox-themenbereich"/>
<textbox id="student-projektarbeit-textbox-themenbereich" disabled="true" maxlength="64"/>
</row>
<row>
<label value="Typ" control="student-projektarbeit-menulist-projekttyp"/>
<menulist id="student-projektarbeit-menulist-projekttyp" disabled="true"
datasources="<?php echo APP_ROOT ?>rdf/projekttyp.rdf.php" flex="1"
ref="http://www.technikum-wien.at/projekttyp/liste" >
<template>
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/projekttyp/rdf#projekttyp_kurzbz"
label="rdf:http://www.technikum-wien.at/projekttyp/rdf#bezeichnung"
uri="rdf:*"/>
</menupopup>
</template>
</menulist>
</row>
<row>
<label value="Firma" control="student-projektarbeit-menulist-firma"/>
<box class="Firma" id="student-projektarbeit-menulist-firma" disabled="true"/>
<!--
<hbox>
<menulist id="student-projektarbeit-menulist-firma" disabled="true"
datasources="<?php echo APP_ROOT ?>rdf/firma.rdf.php?optional=true" flex="1"
ref="http://www.technikum-wien.at/firma/liste" >
<template>
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/firma/rdf#firma_id"
label="rdf:http://www.technikum-wien.at/firma/rdf#name"
uri="rdf:*"/>
</menupopup>
</template>
</menulist>
<toolbarbutton id="student-projektarbeit-button-firma-refresh" image="../skin/images/refresh.png" tooltiptext="Liste neu laden" onclick="StudentProjektarbeitFirmaRefresh()"/>
</hbox>
-->
</row>
<row>
<label value="Lehrveranstaltung" control="student-projektarbeit-menulist-lehrveranstaltung"/>
<menulist id="student-projektarbeit-menulist-lehrveranstaltung" disabled="true"
datasources="rdf:null" flex="1"
ref="http://www.technikum-wien.at/lehrveranstaltung/liste"
oncommand="StudentProjektarbeitLVAChange()"
>
<template>
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/lehrveranstaltung/rdf#lehrveranstaltung_id"
label="rdf:http://www.technikum-wien.at/lehrveranstaltung/rdf#bezeichnung rdf:http://www.technikum-wien.at/lehrveranstaltung/rdf#orgform_kurzbz (rdf:http://www.technikum-wien.at/lehrveranstaltung/rdf#semester Sem)"
uri="rdf:*"/>
</menupopup>
</template>
</menulist>
</row>
<row>
<label value="Lehreinheit" control="student-projektarbeit-menulist-lehreinheit"/>
<menulist id="student-projektarbeit-menulist-lehreinheit" disabled="true"
datasources="rdf:null" flex="1"
ref="http://www.technikum-wien.at/lehreinheit/liste" >
<template>
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/lehreinheit/rdf#lehreinheit_id"
label="rdf:http://www.technikum-wien.at/lehreinheit/rdf#bezeichnung rdf:http://www.technikum-wien.at/lehreinheit/rdf#studiensemester_kurzbz"
uri="rdf:*"/>
</menupopup>
</template>
</menulist>
</row>
</rows>
</grid>
<grid style="margin:4px;" flex="1">
<columns >
<column flex="1"/>
<column flex="5"/>
<column flex="1"/>
<column flex="5"/>
</columns>
<rows>
<row>
<spacer />
<spacer />
<label value="Gesamtpunkte" control="student-projektarbeit-textbox-punkte" hidden="true"/>
<hbox hidden="true">
<textbox id="student-projektarbeit-textbox-punkte" maxlength="5" size="5" disabled="true"/>
</hbox>
<label value="Gesamtnote" control="student-projektarbeit-menulist-note"/>
<menulist id="student-projektarbeit-menulist-note" disabled="true"
datasources="<?php echo APP_ROOT ?>rdf/note.rdf.php?optional=true" flex="1"
ref="http://www.technikum-wien.at/note/liste" >
<template>
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/note/rdf#note"
label="rdf:http://www.technikum-wien.at/note/rdf#bezeichnung"
uri="rdf:*"/>
</menupopup>
</template>
</menulist>
</row>
<row>
<label value="Beginn" control="student-projektarbeit-datum-beginn"/>
<box class="Datum" id="student-projektarbeit-datum-beginn" disabled="true" />
<label value="Ende" control="student-projektarbeit-datum-ende"/>
<box class="Datum" id="student-projektarbeit-datum-ende" disabled="true" />
</row>
<row>
<label value="Freigegeben" control="student-projektarbeit-checkbox-freigegeben"/>
<checkbox id="student-projektarbeit-checkbox-freigegeben" disabled="true" />
<label value="Gesperrt bis" control="student-projektarbeit-datum-gesperrtbis"/>
<box class="Datum" id="student-projektarbeit-datum-gesperrtbis" disabled="true" onchange="StudentProjektarbeitGesperrtChanged()" />
</row>
<row>
<label value="Anmerkung" control="student-projektarbeit-textbox-anmerkung"/>
<textbox id="student-projektarbeit-textbox-anmerkung" disabled="true" maxlength="256"/>
</row>
<row>
<spacer />
<hbox>
<spacer flex="1" />
<button id="student-projektarbeit-button-speichern" oncommand="StudentProjektarbeitSpeichern()" label="Speichern" disabled="true"/>
</hbox>
</row>
</rows>
</grid>
<vbox hidden="true">
<!-- Stundensatz/Faktor und Gesamtstunden werden nicht mehr benoetigt -->
<label value="Stundensatz" control="student-projektarbeit-textbox-stundensatz"/>
<hbox>
<textbox id="student-projektarbeit-textbox-stundensatz" disabled="true" maxlength="5" size="5"/>
</hbox>
<label value="Faktor" control="student-projektarbeit-textbox-faktor"/>
<hbox>
<textbox id="student-projektarbeit-textbox-faktor" disabled="true" maxlength="3" size="3"/>
</hbox>
<label value="Gesamtstunden" control="student-projektarbeit-textbox-gesamtstunden"/>
<hbox>
<textbox id="student-projektarbeit-textbox-gesamtstunden" disabled="true" maxlength="8" size="8"/>
</hbox>
</vbox>
</groupbox>
<groupbox flex="1">
<caption label="Betreuer"/>
<hbox>
<tree id="student-projektbetreuer-tree" seltype="single" hidecolumnpicker="false" flex="1"
datasources="rdf:null" ref="http://www.technikum-wien.at/projektbetreuer/liste"
style="margin-left:10px;margin-right:10px;margin-bottom:5px;margin-top: 10px;" height="100px" enableColumnDrag="true"
context="student-projektbetreuer-tree-popup"
flags="dont-build-content"
>
<!--onselect="StudentProjektbetreuerAuswahl()" - wird jetzt per JS gesetzt-->
<treecols>
<treecol id="student-projektbetreuer-tree-nachname" label="Nachname" flex="2" hidden="false"
class="sortDirectionIndicator"
sortActive="true"
sortDirection="ascending"
sort="rdf:http://www.technikum-wien.at/projektbetreuer/rdf#person_nachname"/>
<treecol id="student-projektbetreuer-tree-vorname" label="Vorname" flex="2" hidden="false"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/projektbetreuer/rdf#person_vorname"/>
<splitter class="tree-splitter"/>
<treecol id="student-projektbetreuer-tree-name" label="Name" flex="2" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/projektbetreuer/rdf#name"/>
<splitter class="tree-splitter"/>
<treecol id="student-projektbetreuer-tree-note" label="Note" flex="1" hidden="false"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/projektbetreuer/rdf#note"/>
<splitter class="tree-splitter"/>
<treecol id="student-projektbetreuer-tree-faktor" label="Faktor" flex="2" ignoreincolumnpicker="true" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/projektbetreuer/rdf#faktor" /><!-- Faktor wird nicht mehr benoetigt und deshalb ausgeblendet -->
<splitter class="tree-splitter"/>
<treecol id="student-projektbetreuer-tree-punkte" label="Punkte" flex="2" hidden="false"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/projektbetreuer/rdf#punkte" />
<splitter class="tree-splitter"/>
<treecol id="student-projektbetreuer-tree-stunden" label="Stunden" flex="2" hidden="false"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/projektbetreuer/rdf#stunden" />
<splitter class="tree-splitter"/>
<treecol id="student-projektbetreuer-tree-stundensatz" label="Stundensatz" flex="2" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/projektbetreuer/rdf#stundensatz" />
<splitter class="tree-splitter"/>
<treecol id="student-projektbetreuer-tree-betreuerart_kurzbz" label="Art" flex="2" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/projektbetreuer/rdf#betreuerart_kurzbz" />
<splitter class="tree-splitter"/>
<treecol id="student-projektbetreuer-tree-person_id" label="Person_id" flex="2" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/projektbetreuer/rdf#person_id" />
<splitter class="tree-splitter"/>
<treecol id="student-projektbetreuer-tree-projektarbeit_id" label="ProjektarbeitID" flex="2" hidden="true"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/projektbetreuer/rdf#projektarbeit_id" />
<splitter class="tree-splitter"/>
</treecols>
<template>
<treechildren flex="1" >
<treeitem uri="rdf:*">
<treerow>
<treecell label="rdf:http://www.technikum-wien.at/projektbetreuer/rdf#person_nachname"/>
<treecell label="rdf:http://www.technikum-wien.at/projektbetreuer/rdf#person_vorname"/>
<treecell label="rdf:http://www.technikum-wien.at/projektbetreuer/rdf#name"/>
<treecell label="rdf:http://www.technikum-wien.at/projektbetreuer/rdf#note"/>
<treecell label="rdf:http://www.technikum-wien.at/projektbetreuer/rdf#faktor"/>
<treecell label="rdf:http://www.technikum-wien.at/projektbetreuer/rdf#punkte"/>
<treecell label="rdf:http://www.technikum-wien.at/projektbetreuer/rdf#stunden"/>
<treecell label="rdf:http://www.technikum-wien.at/projektbetreuer/rdf#stundensatz"/>
<treecell label="rdf:http://www.technikum-wien.at/projektbetreuer/rdf#betreuerart_kurzbz"/>
<treecell label="rdf:http://www.technikum-wien.at/projektbetreuer/rdf#person_id"/>
<treecell label="rdf:http://www.technikum-wien.at/projektbetreuer/rdf#projektarbeit_id"/>
</treerow>
</treeitem>
</treechildren>
</template>
</tree>
<vbox>
<button id="student-projektbetreuer-button-neu" label="Neu" oncommand="StudentProjektbetreuerNeu();" disabled="true"/>
<button id="student-projektbetreuer-button-loeschen" label="Loeschen" oncommand="StudentProjektbetreuerLoeschen();" disabled="true"/>
</vbox>
</hbox>
<vbox hidden="true">
<textbox id="student-projektbetreuer-textbox-person_id" />
<textbox id="student-projektbetreuer-textbox-betreuerart_kurzbz_old" />
<checkbox id="student-projektbetreuer-checkbox-neu" />
<label value="Name" control="student-projektbetreuer-textbox-name"/>
<textbox id="student-projektbetreuer-textbox-name" disabled="true" maxlength="32"/>
</vbox>
<grid style="margin:4px;" flex="1">
<columns >
<column flex="1"/>
<column flex="5"/>
</columns>
<rows>
<row>
<label value="Betreuer" control="student-projektbetreuer-menulist-person" />
<menulist id="student-projektbetreuer-menulist-person"
editable="true" disabled="true"
datasources="rdf:null" flex="1"
ref="http://www.technikum-wien.at/person/liste"
oninput="StudentProjektbetreuerMenulistPersonLoad(this)"
oncommand="StudentProjektbetreuerLoadMitarbeiterDaten()">
<template>
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/person/rdf#person_id"
label="rdf:http://www.technikum-wien.at/person/rdf#anzeigename ( rdf:http://www.technikum-wien.at/person/rdf#status )"
uri="rdf:*"/>
</menupopup>
</template>
</menulist>
</row>
<row>
<button id="student-projektbetreuer-button-neueperson" label="Neue Person anlegen" oncommand="StudentProjektbetreuerNeuePerson()" disabled="true"/>
<button id="student-projektbetreuer-button-kontaktdaten" label="Kontakttdaten bearbeiten" oncommand="StudentProjektbetreuerKontaktdaten()" disabled="true"/>
</row>
<row>
<label value="Art" control="student-projektbetreuer-menulist-betreuerart"/>
<menulist id="student-projektbetreuer-menulist-betreuerart" disabled="true"
datasources="<?php echo APP_ROOT ?>rdf/betreuerart.rdf.php" flex="1"
ref="http://www.technikum-wien.at/betreuerart" >
<template>
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/betreuerart/rdf#betreuerart_kurzbz"
label="rdf:http://www.technikum-wien.at/betreuerart/rdf#beschreibung"
uri="rdf:*"/>
</menupopup>
</template>
</menulist>
</row>
<row>
<label value="Note" control="student-projektbetreuer-menulist-note"/>
<menulist id="student-projektbetreuer-menulist-note" disabled="true"
datasources="<?php echo APP_ROOT ?>rdf/note.rdf.php?optional=true" flex="1"
ref="http://www.technikum-wien.at/note/liste" >
<template>
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/note/rdf#note"
label="rdf:http://www.technikum-wien.at/note/rdf#bezeichnung"
uri="rdf:*"/>
</menupopup>
</template>
</menulist>
</row>
<row>
<label value="Punkte" control="student-projektbetreuer-textbox-punkte"/>
<textbox id="student-projektbetreuer-textbox-punkte" disabled="true" maxlength="6"/>
</row>
<row>
<label value="Stunden" control="student-projektbetreuer-textbox-stunden"/>
<textbox id="student-projektbetreuer-textbox-stunden" disabled="true" maxlength="8"/>
</row>
<row>
<label value="Stundensatz" control="student-projektbetreuer-textbox-stundensatz"/>
<textbox id="student-projektbetreuer-textbox-stundensatz" disabled="true" maxlength="5"/>
</row>
<row hidden="true"><!-- Faktor wird nicht mehr benoetigt -->
<label value="Faktor" control="student-projektbetreuer-textbox-faktor"/>
<textbox id="student-projektbetreuer-textbox-faktor" disabled="true" maxlength="3"/>
</row>
<row>
<spacer />
<hbox>
<spacer flex="1" />
<button id="student-projektbetreuer-button-speichern" label="Speichern" oncommand="StudentProjektbetreuerSpeichern()" />
</hbox>
</row>
</rows>
</grid>
</groupbox>
</hbox>
<spacer flex="1" />
</vbox>
</overlay>
+72 -78
View File
@@ -480,88 +480,82 @@ class anwesenheit extends basis_db
*/
public function loadAnwesenheitStudiensemester($studiensemester_kurzbz, $prestudent_id=null, $lehrveranstaltung_id=null)
{
if(!is_null($prestudent_id) && !is_numeric($prestudent_id))
$qry = "SELECT lehrveranstaltung_id, bezeichnung, vorname, nachname, uid, prestudent_id, sum(anwesend) as anwesend, sum(nichtanwesend) as nichtanwesend, sum(gesamtstunden) as gesamtstunden FROM (
SELECT
lehrveranstaltung_id, bezeichnung, vorname, nachname, uid, prestudent_id,
(
SELECT
sum(einheiten)
FROM
campus.tbl_anwesenheit
WHERE
lehreinheit_id=vw_student_lehrveranstaltung.lehreinheit_id
AND uid=vw_student_lehrveranstaltung.uid
AND anwesend
) as anwesend,
(
SELECT
sum(einheiten)
FROM
campus.tbl_anwesenheit
WHERE
lehreinheit_id=vw_student_lehrveranstaltung.lehreinheit_id
AND uid=vw_student_lehrveranstaltung.uid
AND NOT anwesend
) as nichtanwesend,
(
SELECT count(*) anzahl FROM
(SELECT datum, stunde FROM campus.vw_stundenplan
WHERE lehreinheit_id=vw_student_lehrveranstaltung.lehreinheit_id
AND (vw_stundenplan.titel not like '%Nebenprüfung%' OR vw_stundenplan.titel is null) GROUP BY datum, stunde) as a
) as gesamtstunden
FROM
campus.vw_student_lehrveranstaltung
JOIN public.tbl_benutzer USING(uid)
JOIN public.tbl_person USING(person_id)
WHERE
studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz);
if(!is_numeric($lehrveranstaltung_id))
$qry.=" AND lehrveranstaltung_id=".$this->db_add_param($lehrveranstaltung_id);
if(is_numeric($prestudent_id))
$qry.=" AND prestudent_id=".$this->db_add_param($prestudent_id);
$qry.=") as b GROUP BY lehrveranstaltung_id, bezeichnung, vorname, nachname, prestudent_id, uid";
if($lehrveranstaltung_id!='')
$qry.=" order by nachname, vorname ";
elseif(is_numeric($prestudent_id))
$qry.=" order by bezeichnung";
if($result = $this->db_query($qry))
{
$this->errormsg = "Prestudent_id ist ungueltig";
while($row = $this->db_fetch_object($result))
{
$obj = new stdClass();
$obj->bezeichnung = $row->bezeichnung;
$obj->anwesend = $row->anwesend;
$obj->nichtanwesend = $row->nichtanwesend;
$obj->gesamtstunden = $row->gesamtstunden;
$obj->erfassteanwesenheit = $row->anwesend+$row->nichtanwesend;
if($row->gesamtstunden=='' || $obj->erfassteanwesenheit=='')
$obj->prozent=100;
else
$obj->prozent = number_format(100-(100/$obj->gesamtstunden*$row->nichtanwesend),2);
$obj->vorname = $row->vorname;
$obj->nachname = $row->nachname;
$obj->uid = $row->uid;
$obj->prestudent_id = $row->prestudent_id;
$obj->lehrveranstaltung_id = $row->lehrveranstaltung_id;
$this->result[] = $obj;
}
return true;
}
else
{
$qry = "SELECT lehrveranstaltung_id, bezeichnung, vorname, nachname, uid, prestudent_id, sum(anwesend) as anwesend, sum(nichtanwesend) as nichtanwesend, sum(gesamtstunden) as gesamtstunden FROM (
SELECT
lehrveranstaltung_id, bezeichnung, vorname, nachname, uid, prestudent_id,
(
SELECT
sum(einheiten)
FROM
campus.tbl_anwesenheit
WHERE
lehreinheit_id=vw_student_lehrveranstaltung.lehreinheit_id
AND uid=vw_student_lehrveranstaltung.uid
AND anwesend
) as anwesend,
(
SELECT
sum(einheiten)
FROM
campus.tbl_anwesenheit
WHERE
lehreinheit_id=vw_student_lehrveranstaltung.lehreinheit_id
AND uid=vw_student_lehrveranstaltung.uid
AND NOT anwesend
) as nichtanwesend,
(
SELECT count(*) anzahl FROM
(SELECT datum, stunde FROM campus.vw_stundenplan
WHERE lehreinheit_id=vw_student_lehrveranstaltung.lehreinheit_id
AND (vw_stundenplan.titel not like '%Nebenprüfung%' OR vw_stundenplan.titel is null) GROUP BY datum, stunde) as a
) as gesamtstunden
FROM
campus.vw_student_lehrveranstaltung
JOIN public.tbl_benutzer USING(uid)
JOIN public.tbl_person USING(person_id)
WHERE
studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz);
if(!is_null($lehrveranstaltung_id))
$qry.=" AND lehrveranstaltung_id=".$this->db_add_param($lehrveranstaltung_id);
if(!is_null($prestudent_id))
$qry.=" AND prestudent_id=".$this->db_add_param($prestudent_id);
$qry.=") as b GROUP BY lehrveranstaltung_id, bezeichnung, vorname, nachname, prestudent_id, uid";
if($lehrveranstaltung_id!='')
$qry.=" order by nachname, vorname ";
elseif(is_numeric($prestudent_id))
$qry.=" order by bezeichnung";
if($result = $this->db_query($qry))
{
while($row = $this->db_fetch_object($result))
{
$obj = new stdClass();
$obj->bezeichnung = $row->bezeichnung;
$obj->anwesend = $row->anwesend;
$obj->nichtanwesend = $row->nichtanwesend;
$obj->gesamtstunden = $row->gesamtstunden;
$obj->erfassteanwesenheit = $row->anwesend+$row->nichtanwesend;
if($row->gesamtstunden=='' || $obj->erfassteanwesenheit=='')
$obj->prozent=100;
else
$obj->prozent = number_format(100-(100/$obj->gesamtstunden*$row->nichtanwesend),2);
$obj->vorname = $row->vorname;
$obj->nachname = $row->nachname;
$obj->uid = $row->uid;
$obj->prestudent_id = $row->prestudent_id;
$obj->lehrveranstaltung_id = $row->lehrveranstaltung_id;
$this->result[] = $obj;
}
return true;
}
else
{
$this->errormsg='Fehler beim Laden der Daten';
}
$this->errormsg='Fehler beim Laden der Daten';
}
return false;
}
+4 -1
View File
@@ -233,8 +233,11 @@ class lehrstunde extends basis_db
* @param ver
* @param grp
* @param gruppe_kurzbz
*
* TODO EINE:
* Dickes Problem: uid kann hier ein MA, oder ein Student sein. Für den späteren join auf tbl_studentlehrverband
* wird jedoch eine prestudent_id benötigt, welche nicht eindeutig ist, wenn sie per uid geholt wird.
*/
public function load_lehrstunden($type, $datum_von, $datum_bis, $uid, $ort_kurzbz=NULL, $studiengang_kz=NULL, $sem=NULL, $ver=NULL, $grp=NULL, $gruppe_kurzbz=NULL, $stpl_view='stundenplan', $idList=null, $fachbereich_kurzbz=null, $lva=NULL, $alle_unr_mitladen=false)
{
$num_rows_einheit=0;
-3
View File
@@ -25,7 +25,6 @@
* - Vollstaendigkeit von Modulen etc
*/
require_once(dirname(__FILE__).'/basis_db.class.php');
require_once(dirname(__FILE__).'/student.class.php');
require_once(dirname(__FILE__).'/prestudent.class.php');
require_once(dirname(__FILE__).'/studiensemester.class.php');
require_once(dirname(__FILE__).'/studienplan.class.php');
@@ -592,8 +591,6 @@ class lvregel extends basis_db
// Ausbildungssemester wird nur beim 1. durchlauf ermittelt
if(!isset($this->cache[$prestudent_id]) && !isset($this->cache[$prestudent_id][$studiensemester_kurzbz]))
{
$student = new student($prestudent_id); // TODO EINE
// Ausbildungssemester aus dem Status holen
$prestudent = new prestudent();
if($prestudent->getLastStatus($prestudent_id, $studiensemester_kurzbz))
+208 -207
View File
@@ -1,207 +1,208 @@
<?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> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
require_once(dirname(__FILE__).'/basis_db.class.php');
class stunde extends basis_db
{
public $new; // boolean
public $stunden = array(); // stunde Objekt
//Tabellenspalten
public $stunde; // smalint
public $beginn; // time without timezone
public $ende; // time without timezone
/**
* Konstruktor
*/
public function __construct($load=false)
{
parent::__construct();
if (is_numeric($load))
$this->load($load);
elseif($load)
$this->loadAll();
}
/**
* Prueft die Variablen vor dem Speichern
* auf Gueltigkeit.
* @return true wenn ok, false im Fehlerfall
*/
protected function validate()
{
if(!is_numeric($this->stunde))
{
$this->errormsg = 'Stunde muss eine gueltige Zahl sein';
return false;
}
return true;
}
/**
* Speichert eine Stunde in die Datenbank
* Wenn $new auf true gesetzt ist wird ein neuer Datensatz
* angelegt, ansonsten der Datensatz mit $lehrfach_nr upgedated
* @return true wenn erfolgreich, false im Fehlerfall
*/
public function save()
{
//Variablen auf Gueltigkeit pruefen
if(!$this->validate())
return false;
if($this->new)
{
$qry = "INSERT INTO lehre.tbl_stunde (stunde, beginn, ende)
VALUES(".$this->db_add_param($this->stunde).",".
$this->db_add_param($this->beginn).','.
$this->db_add_param($this->ende).');';
}
else
{
$qry = 'UPDATE lehre.tbl_stunde SET'.
' beginn='.$this->db_add_param($this->beginn).','.
' ende='.$this->db_add_param($this->ende).
" WHERE stunde=".$this->db_add_param($this->stunde);
}
if($this->db_query($qry))
{
return true;
}
else
{
$this->errormsg = 'Fehler beim Speichern der Stunde';
return false;
}
}
/**
*
* Liefert die Stunden innerhalb der uebergebenen Uhrzeiten
* @param $uhrzeit_start
* @param $uhrzeit_ende
* @return array $stunden
*/
public function getStunden($uhrzeit_start, $uhrzeit_ende)
{
$stunden=array();
$qry = "SELECT
*
FROM
lehre.tbl_stunde
WHERE
(beginn BETWEEN ".$this->db_add_param($uhrzeit_start)." AND ".$this->db_add_param($uhrzeit_ende).")
OR (ende BETWEEN ".$this->db_add_param($uhrzeit_start)." AND ".$this->db_add_param($uhrzeit_ende).");";
if($result = $this->db_query($qry))
{
while($row = $this->db_fetch_object($result))
{
$stunden[] = $row->stunde;
}
}
return $stunden;
}
/**
* Laedt eine Stunde
* @param $stunde
*/
public function load($stunde)
{
$qry = "SELECT * FROM lehre.tbl_stunde WHERE stunde=".$this->db_add_param($stunde, FHC_INTEGER).";";
if($result = $this->db_query($qry))
{
if($row = $this->db_fetch_object($result))
{
$this->beginn = $row->beginn;
$this->ende = $row->ende;
$this->stunde = $row->stunde;
return true;
}
else
{
$this->errormsg = 'Stunde wurde nicht gefunden';
return false;
}
}
else
{
$this->errormsg ='Fehler beim Laden der Daten';
return false;
}
}
/**
* Laedt alle Stunden
*/
public function loadAll()
{
$qry = 'SELECT * FROM lehre.tbl_stunde ORDER BY stunde;';
if($result = $this->db_query($qry))
{
while($row = $this->db_fetch_object($result))
{
$stunde = new stunde();
$beginn = date_create('2001-01-01');
$ende = date_create('2001-01-01');
date_time_set($beginn,substr($row->beginn,0,2), substr($row->beginn,3,2));
date_time_set($ende,substr($row->ende,0,2), substr($row->ende,3,2));
$stunde->beginn = $beginn;
$stunde->ende = $ende;
$stunde->stunde = $row->stunde;
$this->stunden[] = $stunde;
}
}
else
{
$this->errormsg ='Fehler beim Laden der Daten';
return false;
}
}
/**
*
* Liefert die Stunde einer uebergebenen Uhrzeiten
* @param $uhrzeit
* @return integer $stunde->stunde
*/
public function getStundeByTime($uhrzeit)
{
$time = date_create('2001-01-01');
if (!date_time_set($time,substr($uhrzeit,0,2), substr($uhrzeit,3,2)))
return false;
foreach($this->stunden as $stunde)
{
if($time >= $stunde->beginn && $time < $stunde->ende)
{
return $stunde->stunde;
}
}
return false;
}
}
?>
<?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> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at> and
* Andreas Moik <moik@technikum-wien.at>.
*/
require_once(dirname(__FILE__).'/basis_db.class.php');
class stunde extends basis_db
{
public $new; // boolean
public $stunden = array(); // stunde Objekt
//Tabellenspalten
public $stunde; // smalint
public $beginn; // time without timezone
public $ende; // time without timezone
/**
* Konstruktor
*/
public function __construct($load=false)
{
parent::__construct();
if (is_numeric($load))
$this->load($load);
elseif($load)
$this->loadAll();
}
/**
* Prueft die Variablen vor dem Speichern
* auf Gueltigkeit.
* @return true wenn ok, false im Fehlerfall
*/
protected function validate()
{
if(!is_numeric($this->stunde))
{
$this->errormsg = 'Stunde muss eine gueltige Zahl sein';
return false;
}
return true;
}
/**
* Speichert eine Stunde in die Datenbank
* Wenn $new auf true gesetzt ist wird ein neuer Datensatz
* angelegt, ansonsten der Datensatz mit $lehrfach_nr upgedated
* @return true wenn erfolgreich, false im Fehlerfall
*/
public function save()
{
//Variablen auf Gueltigkeit pruefen
if(!$this->validate())
return false;
if($this->new)
{
$qry = "INSERT INTO lehre.tbl_stunde (stunde, beginn, ende)
VALUES(".$this->db_add_param($this->stunde).",".
$this->db_add_param($this->beginn).','.
$this->db_add_param($this->ende).');';
}
else
{
$qry = 'UPDATE lehre.tbl_stunde SET'.
' beginn='.$this->db_add_param($this->beginn).','.
' ende='.$this->db_add_param($this->ende).
" WHERE stunde=".$this->db_add_param($this->stunde);
}
if($this->db_query($qry))
{
return true;
}
else
{
$this->errormsg = 'Fehler beim Speichern der Stunde';
return false;
}
}
/**
*
* Liefert die Stunden innerhalb der uebergebenen Uhrzeiten
* @param $uhrzeit_start
* @param $uhrzeit_ende
* @return array $stunden
*/
public function getStunden($uhrzeit_start, $uhrzeit_ende)
{
$stunden=array();
$qry = "SELECT
*
FROM
lehre.tbl_stunde
WHERE
(beginn BETWEEN ".$this->db_add_param($uhrzeit_start)." AND ".$this->db_add_param($uhrzeit_ende).")
OR (ende BETWEEN ".$this->db_add_param($uhrzeit_start)." AND ".$this->db_add_param($uhrzeit_ende).");";
if($result = $this->db_query($qry))
{
while($row = $this->db_fetch_object($result))
{
$stunden[] = $row->stunde;
}
}
return $stunden;
}
/**
* Laedt eine Stunde
* @param $stunde
*/
public function load($stunde)
{
$qry = "SELECT * FROM lehre.tbl_stunde WHERE stunde=".$this->db_add_param($stunde, FHC_INTEGER).";";
if($result = $this->db_query($qry))
{
if($row = $this->db_fetch_object($result))
{
$this->beginn = $row->beginn;
$this->ende = $row->ende;
$this->stunde = $row->stunde;
return true;
}
else
{
$this->errormsg = 'Stunde wurde nicht gefunden';
return false;
}
}
else
{
$this->errormsg ='Fehler beim Laden der Daten';
return false;
}
}
/**
* Laedt alle Stunden
*/
public function loadAll()
{
$qry = 'SELECT * FROM lehre.tbl_stunde ORDER BY stunde;';
if($result = $this->db_query($qry))
{
while($row = $this->db_fetch_object($result))
{
$stunde = new stunde();
$beginn = date_create('2001-01-01');
$ende = date_create('2001-01-01');
date_time_set($beginn,substr($row->beginn,0,2), substr($row->beginn,3,2));
date_time_set($ende,substr($row->ende,0,2), substr($row->ende,3,2));
$stunde->beginn = $beginn;
$stunde->ende = $ende;
$stunde->stunde = $row->stunde;
$this->stunden[] = $stunde;
}
}
else
{
$this->errormsg ='Fehler beim Laden der Daten';
return false;
}
}
/**
*
* Liefert die Stunde einer uebergebenen Uhrzeiten
* @param $uhrzeit
* @return integer $stunde->stunde
*/
public function getStundeByTime($uhrzeit)
{
$time = date_create('2001-01-01');
if (!date_time_set($time,substr($uhrzeit,0,2), substr($uhrzeit,3,2)))
return false;
foreach($this->stunden as $stunde)
{
if($time >= $stunde->beginn && $time < $stunde->ende)
{
return $stunde->stunde;
}
}
return false;
}
}
?>
+3 -3
View File
@@ -359,7 +359,7 @@ class zeugnisnote extends basis_db
LEFT JOIN lehre.tbl_note USING(note)
LEFT JOIN lehre.tbl_studienplan_lehrveranstaltung ON(vw_student_lehrveranstaltung.lehrveranstaltung_id=tbl_studienplan_lehrveranstaltung.lehrveranstaltung_id)
WHERE
prestudent_id=".$this->db_add_param($prestudent_id)."
lehre.tbl_zeugnisnote.prestudent_id=".$this->db_add_param($prestudent_id, FHC_INTEGER)."
AND vw_student_lehrveranstaltung.studiensemester_kurzbz IN(".$stsem.")
AND tbl_studienplan_lehrveranstaltung.studienplan_id=".$this->db_add_param($studienplan_id, FHC_INTEGER)."
UNION
@@ -372,7 +372,7 @@ class zeugnisnote extends basis_db
JOIN lehre.tbl_note USING(note)
LEFT JOIN lehre.tbl_studienplan_lehrveranstaltung USING(lehrveranstaltung_id)
WHERE
prestudent_id=".$this->db_add_param($prestudent_id)."
lehre.tbl_zeugnisnote.prestudent_id=".$this->db_add_param($prestudent_id, FHC_INTEGER)."
AND studiensemester_kurzbz IN(".$stsem.")
AND tbl_studienplan_lehrveranstaltung.studienplan_id=".$this->db_add_param($studienplan_id, FHC_INTEGER)."
UNION ALL
@@ -391,7 +391,7 @@ class zeugnisnote extends basis_db
tbl_note.bezeichnung as note_bezeichnung, tbl_zeugnisnote.bemerkung, tbl_lehrveranstaltung.lvnr, tbl_studienplan_lehrveranstaltung.sort as studienplan_lehrveranstaltung_sort
FROM
lehre.tbl_lehrveranstaltung
LEFT JOIN lehre.tbl_zeugnisnote ON(tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_zeugnisnote.lehrveranstaltung_id AND tbl_zeugnisnote.prestudent_id=".$this->db_add_param($prestudent_id)." AND tbl_zeugnisnote.studiensemester_kurzbz IN(".$stsem."))
LEFT JOIN lehre.tbl_zeugnisnote ON(tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_zeugnisnote.lehrveranstaltung_id AND tbl_zeugnisnote.prestudent_id=".$this->db_add_param($prestudent_id, FHC_INTEGER)." AND tbl_zeugnisnote.studiensemester_kurzbz IN(".$stsem."))
LEFT JOIN lehre.tbl_studienplan_lehrveranstaltung ON(tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_studienplan_lehrveranstaltung.lehrveranstaltung_id AND tbl_studienplan_lehrveranstaltung.studienplan_id=".$this->db_add_param($studienplan_id).")
LEFT JOIN lehre.tbl_note USING(note)
WHERE
-1
View File
@@ -58,7 +58,6 @@ if(is_numeric($prestudent_id))
elseif($lehrveranstaltung_id!='')
{
$anwesenheit->loadAnwesenheitStudiensemester($studiensemester_kurzbz,null,$lehrveranstaltung_id);
var_dump("TODO EINE");// TODO EINE TOTEST!
}
$i=0;
+25 -49
View File
@@ -41,19 +41,19 @@ $db = new basis_db();
if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
{
if(isset($_GET['uid']))
$uid = $_GET['uid'];
if(isset($_GET['prestudent_id']))
$prestudent_id = $_GET['prestudent_id'];
else
$uid = null;
$prestudent_id = null;
$uid_arr = explode(";",$uid);
$prestudent_id_arr = explode(";",$prestudent_id);
echo "<?xml version='1.0' encoding='UTF-8' standalone='yes'?> ";
echo "<supplements>";
for ($i = 0; $i < sizeof($uid_arr); $i++)
for ($i = 0; $i < sizeof($prestudent_id_arr); $i++)
{
if($uid_arr[$i]=='')
if($prestudent_id_arr[$i]=='')
continue;
$query = "SELECT
vw_student.vorname, vw_student.nachname, vw_student.vornamen, vw_student.gebdatum,
@@ -64,15 +64,15 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
FROM
campus.vw_student JOIN public.tbl_studiengang USING(studiengang_kz)
WHERE
uid = ".$db->db_add_param($uid_arr[$i]);
prestudent_id = ".$db->db_add_param($prestudent_id_arr[$i], FHC_INTEGER);
if($db->db_query($query))
{
if(!$row = $db->db_fetch_object())
die('Student not found: '.$uid_arr[$i]);
die('Student not found: '.$prestudent_id_arr[$i]);
}
else
die('Student not found: '.$uid_arr[$i]);
die('Student not found: '.$prestudent_id_arr[$i]);
//Bei DEW und DPW werden 60 ECTS angerechnet
if($row->studiengang_kz==92 || $row->studiengang_kz==91)
@@ -236,7 +236,7 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
}
if($row->typ=='d')
{
{
echo ' <niveau_code>UNESCO ISCED 5A</niveau_code>';
echo ' <zulassungsvoraussetzungen_deutsch><![CDATA[Allgemeine Universitätsreife (vgl. §4 Abs. 3 FHStG idgF), Berufsreifeprüfung bzw. Studienberechtigungsprüfung oder einschlägige berufliche Qualifikation (Lehrabschluss bzw. Abschluss einer berufsbildenden mittleren Schule mit Zusatzprüfungen). Die Aufnahme erfolgt auf Basis eines Auswahlverfahrens (Werdegang, Eignungstest, Bewerbungsgespräch).]]></zulassungsvoraussetzungen_deutsch>';
echo ' <zulassungsvoraussetzungen_englisch><![CDATA[Austrian or equivalent foreign school leaving certificate (Reifeprüfung), university entrance examination certificate (Studienberechtigungsprüfung), certificate or equivalent relevant professional qualification (Berufsreifeprüfung) plus entrance examination equal to the university entrance examination. Admission is on the basis of a selection process (including entrance exam and interview, professional background is considered).]]></zulassungsvoraussetzungen_englisch>';
@@ -291,11 +291,9 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
}
if(!$student = new student($uid_arr[$i])) // TODO EINE
die("Student nicht gefunden");
$akadgrad_id='';
$qry = "SELECT bezeichnung, akadgrad_id, bezeichnung_english FROM lehre.tbl_abschlusspruefung JOIN lehre.tbl_abschlussbeurteilung USING(abschlussbeurteilung_kurzbz) WHERE prestudent_id=".$db->db_add_param($student->prestudent_id, FHC_INTEGER)." ORDER BY datum DESC LIMIT 1";
$qry = "SELECT bezeichnung, akadgrad_id, bezeichnung_english FROM lehre.tbl_abschlusspruefung JOIN lehre.tbl_abschlussbeurteilung USING(abschlussbeurteilung_kurzbz) WHERE prestudent_id=".$db->db_add_param($prestudent_id_arr[$i], FHC_INTEGER)." ORDER BY datum DESC LIMIT 1";
if($db->db_query($qry))
{
if($row1 = $db->db_fetch_object())
@@ -330,10 +328,7 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
$praktikum = false;
$auslandssemester = false;
if(!$student = new student($uid_arr[$i])) // TODO EINE
die($student->errormsg);
$qry = "SELECT projektarbeit_id FROM lehre.tbl_projektarbeit WHERE prestudent_id=".$db->db_add_param($student->prestudent_id)." AND (projekttyp_kurzbz='Praxis' OR projekttyp_kurzbz='Praktikum')";
$qry = "SELECT projektarbeit_id FROM lehre.tbl_projektarbeit WHERE prestudent_id=".$db->db_add_param($prestudent_id_arr[$i], FHC_INTEGER)." AND (projekttyp_kurzbz='Praxis' OR projekttyp_kurzbz='Praktikum')";
if($db->db_query($qry))
{
if($row1 = $db->db_fetch_object())
@@ -344,10 +339,8 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
}
if(!$std = new student($uid_arr[$i])) // TODO EINE
die("Student nicht gefunden");
$qry = "SELECT von, bis FROM bis.tbl_bisio WHERE prestudent_id=".$db->db_add_param($std->prestudent_id);
$qry = "SELECT von, bis FROM bis.tbl_bisio WHERE prestudent_id=".$db->db_add_param($prestudent_id_arr[$i], FHC_INTEGER);
if($db->db_query($qry))
{
if($db->db_num_rows()>0)
@@ -383,12 +376,10 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
echo " <stgl>$stgl</stgl>";
if(!$student = new student($uid_arr[$i])) // TODO EINE
die("Student nicht gefunden!");
$abschlussbeurteilung='';
// Hole Datum der Sponsion -> wenn keine vorhanden nimm aktuelles datum
$qry = "SELECT sponsion, tbl_abschlussbeurteilung.bezeichnung_english,datum FROM lehre.tbl_abschlusspruefung JOIN lehre.tbl_abschlussbeurteilung USING(abschlussbeurteilung_kurzbz) WHERE prestudent_id=".$db->db_add_param($student->prestudent_id)." ORDER BY datum DESC LIMIT 1";
$qry = "SELECT sponsion, tbl_abschlussbeurteilung.bezeichnung_english,datum FROM lehre.tbl_abschlusspruefung JOIN lehre.tbl_abschlussbeurteilung USING(abschlussbeurteilung_kurzbz) WHERE prestudent_id=".$db->db_add_param($prestudent_id_arr[$i], FHC_INTEGER)." ORDER BY datum DESC LIMIT 1";
$sponsion_datum = date('d.m.Y');
$abschlusspruefungsdatum = '';
$abschlussbeurteilung='';
@@ -420,11 +411,8 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
/*
* Hole Notendurchschnitt vom Jahr nach dem letzten Status und 2 Jahre davor,
*/
if(!$student = new student($uid_arr[$i])) // TODO EINE
die("Student nicht gefunden");
$prestudent = new prestudent();
$prestudent->getLastStatus($student->prestudent_id, null, 'Student');
$prestudent->getLastStatus($prestudent_id_arr[$i], null, 'Student');
$lastStatusSemester = $prestudent->studiensemester_kurzbz;
$studiensemester = new studiensemester();
@@ -520,14 +508,11 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
echo " <gradePrevLastYearNb>".sprintf("%01.1f",($noteArrayPrev[7]/$noten_anzahl*100))."</gradePrevLastYearNb>";
echo " <gradePrevLastYearEa>".sprintf("%01.1f",($noteArrayPrev[12]/$noten_anzahl*100))."</gradePrevLastYearEa>";
if(!$student = new student($uid_arr[$i])) // TODO EINE
die("Student nicht gefunden");
//Projektarbeiten
$qry_projektarbeit = "SELECT lehrveranstaltung_id, titel, themenbereich, note, titel_english
FROM lehre.tbl_projektarbeit
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
WHERE prestudent_id=".$db->db_add_param($student->prestudent_id)."
WHERE prestudent_id=".$db->db_add_param($prestudent_id_arr[$i], FHC_INTEGER)."
AND projekttyp_kurzbz in('Bachelor', 'Diplom')
ORDER BY beginn ASC, projektarbeit_id ASC;";
@@ -555,7 +540,6 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
$semester_ects = 0;
//$thesis_beschreibung = '';
echo "<semesters>";
$student = new student($uid_arr[$i]); // TODO EINE
// alle semester für das ausbildungssemester holen
// Semester wo Unterbrecher nicht holen
@@ -564,7 +548,7 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
join lehre.tbl_note note using(note)
join lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id)
join public.tbl_prestudentstatus status USING(prestudent_id)
where prestudent_id = ".$db->db_add_param($student->prestudent_id, FHC_INTEGER)." AND
where prestudent_id = ".$db->db_add_param($prestudent_id_arr[$i], FHC_INTEGER)." AND
zeugnis = true AND
status.ausbildungssemester = ".$db->db_add_param($start)." AND
status.status_kurzbz NOT IN('Unterbrecher', 'Interessent','Bewerber','Aufgenommener','Abgewiesener','Wartender')
@@ -594,8 +578,7 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
$helpyear = sprintf("%02d",$helpyear);
$semester_kurzbz = 'Winter Semester '.$year.'/'.$helpyear;
}
$sqlStudent = new student($uid_arr[$i]); // TODO EINE
$sqlStudent = new student();
echo " <semesterKurzbz>Semester $start | $semester_kurzbz</semesterKurzbz>";
@@ -608,7 +591,7 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
from lehre.tbl_zeugnisnote zeugnis
join lehre.tbl_note note using(note)
join lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id)
where prestudent_id = ".$db->db_add_param($sqlStudent->prestudent_id, FHC_INTEGER)." AND zeugnis = true AND
where prestudent_id = ".$db->db_add_param($prestudent_id_arr[$i], FHC_INTEGER)." AND zeugnis = true AND
studiensemester_kurzbz in (".$sqlStudent->implode4SQL($aktuellesSemester).")
ORDER BY sort, tbl_lehrveranstaltung.bezeichnung;";
@@ -747,12 +730,12 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
}
$arrayLvAusbildungssemester[$row_stud->lehrveranstaltung_id]['lehrform_kurzbz']= $lehrform_kurzbz;
// echo " <lehrform_kurzbz>$lehrform_kurzbz</lehrform_kurzbz>";
$student = new student($uid_arr[$i]); // TODO EINE
// hole benotungsdatum von aktueller LV
$qry_benotung = "SELECT benotungsdatum FROM
lehre.tbl_zeugnisnote WHERE lehrveranstaltung_id = ".$db->db_add_param($row_stud->lehrveranstaltung_id)."
AND studiensemester_kurzbz = ".$db->db_add_param($row_stud->studiensemester_kurzbz)."
AND prestudent_id = ".$db->db_add_param($student->prestudent_id, FHC_INTEGER).";";
AND prestudent_id = ".$db->db_add_param($prestudent_id_arr[$i], FHC_INTEGER).";";
if($result_benotung = $db->db_query($qry_benotung))
{
if($row_benotung = $db->db_fetch_object($result_benotung))
@@ -768,8 +751,6 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
$bezeichnung_englisch = $row_stud->bezeichnung_english;
$bezeichnung = $row_stud->bezeichnung;
if(!$student = new student($uid_arr[$i])) // TODO EINE
die("Student nicht gefunden");
// Check ob Lehrveranstaltung ein Praktikum mit eingetragener Firma besitzt
$qry = "
@@ -780,7 +761,7 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
JOIN public.tbl_firma USING(firma_id)
WHERE
prestudent_id=".$db->db_add_param($student->prestudent_id)."
prestudent_id=".$db->db_add_param($prestudent_id_arr[$i], FHC_INTEGER)."
AND projekttyp_kurzbz in('Praktikum', 'Praxis')
AND tbl_lehreinheit.lehrveranstaltung_id=".$db->db_add_param($row_stud->lehrveranstaltung_id)."
ORDER BY beginn ASC, projektarbeit_id ASC;";
@@ -794,14 +775,12 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
}
}
if(!$student = new student($uid_arr[$i])) // TODO EINE
die("Student nicht gefunden");
// Check ob an Lehrveranstaltung eine Thesis hängt
$qry = "SELECT lehrveranstaltung_id, titel, themenbereich, note, titel_english
FROM lehre.tbl_projektarbeit
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
WHERE prestudent_id=".$db->db_add_param($student->prestudent_id)."
WHERE prestudent_id=".$db->db_add_param($prestudent_id_arr[$i], FHC_INTEGER)."
AND projekttyp_kurzbz in('Bachelor', 'Diplom')
AND lehrveranstaltung_id=".$db->db_add_param($row_stud->lehrveranstaltung_id)."
ORDER BY beginn DESC, projektarbeit_id DESC LIMIT 1;";
@@ -876,15 +855,13 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
</lv>';
}
if(!$student = new student($uid_arr[$i])) // TODO EINE
die("Student nicht gefunden");
// Ist er Outgoing in diesem semester
$qry_outgoing = "SELECT studiensemester_kurzbz, ort, ects, semesterstunden, von, bis, universitaet, lehrveranstaltung_id
FROM bis.tbl_bisio
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id)
WHERE prestudent_id = ".$db->db_add_param($student->prestudent_id);
WHERE prestudent_id = ".$db->db_add_param($prestudent_id_arr[$i], FHC_INTEGER);
if($result_outgoing = $db->db_query($qry_outgoing))
{
@@ -896,13 +873,12 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
$note_outgoing = 'ar';
$benotungsdatum_outgoing = '';
$lehrform_kurzbz_outgoing = '';
$student = new student($uid_arr[$i]); // TODO EINE
$qry_outgoing_note = "SELECT anmerkung, benotungsdatum, lehrform_kurzbz
FROM lehre.tbl_zeugnisnote
JOIN tbl_lehrveranstaltung using(lehrveranstaltung_id)
JOIN tbl_note using(note)
WHERE lehrveranstaltung_id = ".$db->db_add_param($row_outgoing->lehrveranstaltung_id)." and prestudent_id = ".$db->db_add_param($student->prestudent_id, FHC_INTEGER);
WHERE lehrveranstaltung_id = ".$db->db_add_param($row_outgoing->lehrveranstaltung_id)." and prestudent_id = ".$db->db_add_param($prestudent_id_arr[$i], FHC_INTEGER);
if($result_outgoing_note = $db->db_query($qry_outgoing_note))
+24 -28
View File
@@ -29,7 +29,6 @@ require_once('../include/mitarbeiter.class.php');
require_once('../include/studiensemester.class.php');
require_once('../include/studienordnung.class.php');
require_once('../include/studienplan.class.php');
require_once('../include/student.class.php');
require_once('../include/prestudent.class.php');
$datum = new datum();
@@ -37,17 +36,17 @@ $db = new basis_db();
$lehrveranstaltungen = array();
if(isset($_GET['uid']))
$uid = $_GET['uid'];
if(isset($_GET['prestudent_id']))
$prestudent_id = $_GET['prestudent_id'];
else
$uid = null;
$prestudent_id = null;
$uid_arr = explode(";",$uid);
$prestudent_id_arr = explode(";",$prestudent_id);
if ($uid_arr[0] == "")
if ($prestudent_id_arr[0] == "")
{
unset($uid_arr[0]);
$uid_arr = array_values($uid_arr);
unset($prestudent_id_arr[0]);
$prestudent_id_arr = array_values($prestudent_id_arr);
}
// Noten laden
@@ -77,14 +76,12 @@ $lehrveranstaltungen = array();
$xml = "<?xml version='1.0' encoding='UTF-8' standalone='yes'?>";
$xml .= "<zeugnisse>";
foreach($uid_arr as $uid)
foreach($prestudent_id_arr as $prestudent_id)
{
$student = new student();// TODO EINE in der query weiter unten sollte prestudent_id nicht eindeutig sein!
if(!$student->load($uid))
die($student->errormsg);
$prestudent = new prestudent($prestudent_id);
$studiengang = new studiengang();
$stgleiter = $studiengang->getLeitung($student->studiengang_kz);
$stgleiter = $studiengang->getLeitung($prestudent->studiengang_kz);
$stgl='';
foreach ($stgleiter as $stgleiter_uid)
{
@@ -98,7 +95,7 @@ $lehrveranstaltungen = array();
//damit bei Outgoing Studenten die im 0. Semester angelegt sind das richtige Semester aufscheint
$qry ="SELECT ausbildungssemester as semester FROM public.tbl_prestudentstatus
WHERE
prestudent_id=".$db->db_add_param($student->prestudent_id)." AND
prestudent_id=".$db->db_add_param($prestudent_id, FHC_INTEGER)." AND
studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz)." AND
status_kurzbz not in('Incoming','Aufgenommener','Bewerber','Wartender', 'Interessent')
ORDER BY DATUM DESC LIMIT 1";
@@ -112,7 +109,7 @@ $lehrveranstaltungen = array();
$qry ="SELECT ausbildungssemester as semester FROM public.tbl_prestudentstatus
WHERE
prestudent_id=".$db->db_add_param($student->prestudent_id)." AND
prestudent_id=".$db->db_add_param($prestudent_id, FHC_INTEGER)." AND
studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz2)." AND
status_kurzbz not in('Incoming','Aufgenommener','Bewerber','Wartender', 'Interessent')
ORDER BY DATUM DESC LIMIT 1";
@@ -138,14 +135,13 @@ $lehrveranstaltungen = array();
$studienjahr = ($jahr1>$jahr2?$jahr2.'/'.$jahr1:$jahr1.'/'.$jahr2);
$studiengang = new studiengang();
$studiengang->load($student->studiengang_kz);
$prestudent = new prestudent();
$prestudent->getLastStatus($student->prestudent_id, $studiensemester_kurzbz);
$studiengang->load($prestudent->studiengang_kz);
$prestudent->getLastStatus($prestudent_id, $studiensemester_kurzbz);
if($prestudent->studienplan_id=='')
{
die('keine Studienplan Zuordnung fuer '.$student->nachname);
die('keine Studienplan Zuordnung fuer '.$prestudent->nachname);
}
$studienplan = new studienplan();
if(!$studienplan->loadStudienplan($prestudent->studienplan_id))
@@ -164,13 +160,13 @@ $lehrveranstaltungen = array();
$xml .= "\n <studiengang_englisch>".$studienordnung->studiengangbezeichnung_englisch."</studiengang_englisch>";
$xml .= "\n <studiengang_typ>".$studiengang->typ."</studiengang_typ>";
$xml .= "\n <studiengang_kz>".sprintf('%04s', abs($studiengang->studiengang_kz))."</studiengang_kz>";
$xml .= "\n <anrede>".$student->anrede."</anrede>";
$xml .= "\n <vorname>".$student->vorname."</vorname>";
$xml .= "\n <nachname>".$student->nachname."</nachname>";
$xml .= "\n <name>".trim($student->titelpre.' '.trim($student->vorname.' '.$student->vornamen).' '.mb_strtoupper($student->nachname).($student->titelpost!=''?', '.$student->titelpost:''))."</name>";
$gebdatum = date('d.m.Y',strtotime($student->gebdatum));
$xml .= "\n <anrede>".$prestudent->anrede."</anrede>";
$xml .= "\n <vorname>".$prestudent->vorname."</vorname>";
$xml .= "\n <nachname>".$prestudent->nachname."</nachname>";
$xml .= "\n <name>".trim($prestudent->titelpre.' '.trim($prestudent->vorname.' '.$prestudent->vornamen).' '.mb_strtoupper($prestudent->nachname).($prestudent->titelpost!=''?', '.$prestudent->titelpost:''))."</name>";
$gebdatum = date('d.m.Y',strtotime($prestudent->gebdatum));
$xml .= "\n <gebdatum>".$gebdatum."</gebdatum>";
$xml .= "\n <personenkennzeichen>".$student->matrikelnr."</personenkennzeichen>";
$xml .= "\n <personenkennzeichen>".$prestudent->perskz."</personenkennzeichen>";
$xml .= "\n <studiengangsleiter>".$stgl."</studiengangsleiter>";
$datum_aktuell = date('d.m.Y');
$xml .= "\n <datum_aktuell>".$datum_aktuell."</datum_aktuell>";
+5 -3
View File
@@ -16,8 +16,9 @@
* 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> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at>,
* Rudolf Hangl <rudolf.hangl@technikum-wien.at> and
* Andreas Moik <moik@technikum-wien.at>.
*/
// header für no cache
header("Cache-Control: no-cache");
@@ -97,6 +98,7 @@ if($db->db_query($qry))
<GRP:bezeichnung><![CDATA['.$row->bezeichnung.']]></GRP:bezeichnung>
<GRP:generiert><![CDATA['.($row->generiert=='t'?'Ja':'Nein').']]></GRP:generiert>
<GRP:uid><![CDATA['.$row->uid.']]></GRP:uid>
<GRP:prestudent_id><![CDATA['.$row->prestudent_id.']]></GRP:prestudent_id>
<GRP:studiensemester_kurzbz><![CDATA['.$row->studiensemester_kurzbz.']]></GRP:studiensemester_kurzbz>
</RDF:Description>
</RDF:li>
@@ -105,5 +107,5 @@ if($db->db_query($qry))
}
}
?>
</RDF:Seq>
</RDF:Seq>
</RDF:RDF>
+6 -5
View File
@@ -16,7 +16,8 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Karl Burkhart <burkhart@technikum-wien.at>
* Authors: Karl Burkhart <burkhart@technikum-wien.at> and
* Andreas Moik <moik@technikum-wien.at>.
*/
require_once('../config/vilesci.config.inc.php');
@@ -53,15 +54,15 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
if(!$student->load($preoutgoing->uid))
die('Konnte Student nicht laden!');
$projektarbeittitel = $preoutgoing->projektarbeittitel;
$projektarbeittitel = $preoutgoing->projektarbeittitel;
$studiengang->load($student->studiengang_kz);
$preoutgoingFirma = new preoutgoing();
$preoutgoingFirma->loadAuswahl($preoutgoing_id);
$preoutgoing_firma = $preoutgoingFirma->firma_id;
$prestudent->getLastStatus($student->prestudent_id); // TODO EINE NICHT EINDEUTIG
$firma = new firma();
$firma = new firma();
$nation = new nation();
if($preoutgoing_firma != '')
{
+8 -9
View File
@@ -16,8 +16,9 @@
* 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> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at>,
* Rudolf Hangl <rudolf.hangl@technikum-wien.at> and
* Andreas Moik <moik@technikum-wien.at>.
*/
/*
* Created on 02.12.2004
@@ -58,10 +59,10 @@ if (isset($_GET['sem']) && is_numeric($_GET['sem']))
$sem=$_GET['sem'];
else
$sem=null;
if(isset($_GET['uid']))
$student_uid = $_GET['uid'];
if(isset($_GET['prestudent_id']))
$prestudent_id = $_GET['prestudent_id'];
else
$student_uid=null;
$prestudent_id=null;
if(isset($_GET['lehrveranstaltung_kompatibel_id']))
{
@@ -73,11 +74,9 @@ else
$lehrveranstaltung=new lehrveranstaltung();
if($student_uid!='')
if($prestudent_id!='')
{
//TODO EINE
$student = new student($student_uid);
$lehrveranstaltung->load_lva_student($student->prestudent_id);
$lehrveranstaltung->load_lva_student($prestudent_id);
}
elseif($lehrveranstaltung_kompatibel_id!='')
{
+17 -18
View File
@@ -19,7 +19,7 @@
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at>,
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>,
* Gerald Raab <gerald.raab@technikum-wien.at> and
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at>.
* Andreas Moik <moik@technikum-wien.at>.
*/
// content type setzen
header("Content-type: application/xhtml+xml");
@@ -64,17 +64,17 @@ function breaktext($text, $zeichen)
if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
{
if(isset($_GET['uid']))
$uid = $_GET['uid'];
if(isset($_GET['prestudent_id']))
$prestudent_id = $_GET['prestudent_id'];
else
$uid = null;
$prestudent_id = null;
$uid_arr = explode(";",$uid);
$prestudent_id_arr = explode(";",$prestudent_id);
if ($uid_arr[0] == "")
if ($prestudent_id_arr[0] == "")
{
unset($uid_arr[0]);
$uid_arr = array_values($uid_arr);
unset($prestudent_id_arr[0]);
$prestudent_id_arr = array_values($prestudent_id_arr);
}
$note_arr = array();
@@ -179,14 +179,14 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
$studiensemester = new studiensemester();
$studiensemester->load($studiensemester_kurzbz);
for ($i = 0; $i < sizeof($uid_arr); $i++)
for ($i = 0; $i < sizeof($prestudent_id_arr); $i++)
{
$anzahl_fussnoten=0;
$studiengang_typ='';
$xml_fussnote='';
$query = " SELECT tbl_student.matrikelnr,
tbl_student.studiengang_kz,
$query = " SELECT tbl_prestudent.perskz,
tbl_prestudent.studiengang_kz,
tbl_studiengang.typ,
tbl_studiengang.bezeichnung,
tbl_person.vorname,
@@ -196,13 +196,13 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
tbl_person.titelpost,
tbl_person.geschlecht
FROM tbl_person,
tbl_student,
tbl_prestudent,
tbl_studiengang,
tbl_benutzer
WHERE tbl_student.studiengang_kz = tbl_studiengang.studiengang_kz
AND tbl_student.student_uid = tbl_benutzer.uid
WHERE tbl_prestudent.studiengang_kz = tbl_studiengang.studiengang_kz
AND tbl_prestudent.uid = tbl_benutzer.uid
AND tbl_benutzer.person_id = tbl_person.person_id
AND tbl_student.student_uid = '".$uid_arr[$i]."'";
AND tbl_prestudent.prestudent_id = ".$db->db_add_param($prestudent_id_arr[$i], FHC_INTEGER);
if($db->db_query($query))
{
@@ -228,15 +228,14 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
$gebdatum = date('d.m.Y',strtotime($row->gebdatum));
$xml .= "\n <gebdatum>".$gebdatum."</gebdatum>";
$xml .= "\n <geschlecht>".$row->geschlecht."</geschlecht>";
$xml .= "\n <matrikelnr>".trim($row->matrikelnr)."</matrikelnr>";
$xml .= "\n <matrikelnr>".trim($row->perskz)."</matrikelnr>";
$xml .= "\n <studiengangsleiter>".$stgl."</studiengangsleiter>";
$datum_aktuell = date('d.m.Y');
$xml .= "\n <ort_datum>Wien, am ".$datum_aktuell."</ort_datum>";
$student = new student($uid_arr[$i]); // TODO EINE
$obj = new zeugnisnote();
$obj->load($lehrveranstaltung_id, $student->prestudent_id, $studiensemester_kurzbz);
$obj->load($lehrveranstaltung_id, $prestudent_id_arr[$i], $studiensemester_kurzbz);
if ($obj->note)
{
+93 -92
View File
@@ -1,92 +1,93 @@
<?php
/* Copyright (C) 2004 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> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
// header for no cache
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");
header("Pragma: no-cache");
// content type setzen
header("Content-type: application/xhtml+xml");
require_once('../config/vilesci.config.inc.php');
require_once('../include/benutzerberechtigung.class.php');
require_once('../include/functions.inc.php');
require_once('../include/datum.class.php');
$user = get_uid();
$datum = new datum();
loadVariables($user);
if(isset($_GET['filter']))
$filter = $_GET['filter'];
else
die('Filter muss uebergeben werden');
$rdf_url='http://www.technikum-wien.at/person';
echo '
<RDF:RDF
xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:NC="http://home.netscape.com/NC-rdf#"
xmlns:PERSON="'.$rdf_url.'/rdf#"
>
<RDF:Seq RDF:about="'.$rdf_url.'/liste">
';
//$filter = utf8_encode($filter);
$qry = "SELECT
distinct person_id, vorname, nachname, titelpre, titelpost,
CASE
WHEN (SELECT count(*) FROM public.tbl_benutzer JOIN public.tbl_mitarbeiter ON(uid=mitarbeiter_uid) WHERE person_id=tbl_person.person_id)>0 THEN 'Mitarbeiter'
WHEN (SELECT count(*) FROM public.tbl_benutzer JOIN public.tbl_student ON(uid=student_uid) WHERE person_id=tbl_person.person_id)>0 THEN 'Student'
ELSE 'Person'
END as status
FROM public.tbl_person WHERE nachname ~* '".addslashes($filter).".*' ORDER BY nachname, vorname, titelpre, titelpost";
if(isset($_GET['nurmittitel']))
{
$qry.=" AND (titelpre<>'' OR titelpost<>'')";
}
$db = new basis_db();
if($result = $db->db_query($qry))
{
while($row = $db->db_fetch_object($result))
{
echo '
<RDF:li>
<RDF:Description RDF:about="'.$rdf_url.'/'.$row->person_id.'" >
<PERSON:person_id NC:parseType="Integer"><![CDATA['.$row->person_id.']]></PERSON:person_id>
<PERSON:vorname><![CDATA['.$row->vorname.']]></PERSON:vorname>
<PERSON:nachname><![CDATA['.$row->nachname.']]></PERSON:nachname>
<PERSON:anzeigename><![CDATA['.$row->nachname.' '.$row->vorname.' '.$row->titelpre.' '.$row->titelpost.']]></PERSON:anzeigename>
<PERSON:status><![CDATA['.$row->status.']]></PERSON:status>
</RDF:Description>
</RDF:li>
';
}
}
?>
</RDF:Seq>
</RDF:RDF>
<?php
/* Copyright (C) 2004 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> and
* Andreas Moik <moik@technikum-wien>.
*/
// header for no cache
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");
header("Pragma: no-cache");
// content type setzen
header("Content-type: application/xhtml+xml");
require_once('../config/vilesci.config.inc.php');
require_once('../include/benutzerberechtigung.class.php');
require_once('../include/functions.inc.php');
require_once('../include/datum.class.php');
$user = get_uid();
$datum = new datum();
loadVariables($user);
if(isset($_GET['filter']))
$filter = $_GET['filter'];
else
die('Filter muss uebergeben werden');
$rdf_url='http://www.technikum-wien.at/person';
echo '
<RDF:RDF
xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:NC="http://home.netscape.com/NC-rdf#"
xmlns:PERSON="'.$rdf_url.'/rdf#"
>
<RDF:Seq RDF:about="'.$rdf_url.'/liste">
';
//$filter = utf8_encode($filter);
$qry = "SELECT
distinct person_id, vorname, nachname, titelpre, titelpost,
CASE
WHEN (SELECT count(*) FROM public.tbl_benutzer JOIN public.tbl_mitarbeiter ON(uid=mitarbeiter_uid) WHERE person_id=tbl_person.person_id)>0 THEN 'Mitarbeiter'
WHEN (SELECT count(*) FROM public.tbl_benutzer JOIN public.tbl_prestudent USING(uid) WHERE tbl_prestudent.person_id=tbl_person.person_id)>0 THEN 'Student'
ELSE 'Person'
END as status
FROM public.tbl_person WHERE nachname ~* '".addslashes($filter).".*' ORDER BY nachname, vorname, titelpre, titelpost";
if(isset($_GET['nurmittitel']))
{
$qry.=" AND (titelpre<>'' OR titelpost<>'')";
}
$db = new basis_db();
if($result = $db->db_query($qry))
{
while($row = $db->db_fetch_object($result))
{
echo '
<RDF:li>
<RDF:Description RDF:about="'.$rdf_url.'/'.$row->person_id.'" >
<PERSON:person_id NC:parseType="Integer"><![CDATA['.$row->person_id.']]></PERSON:person_id>
<PERSON:vorname><![CDATA['.$row->vorname.']]></PERSON:vorname>
<PERSON:nachname><![CDATA['.$row->nachname.']]></PERSON:nachname>
<PERSON:anzeigename><![CDATA['.$row->nachname.' '.$row->vorname.' '.$row->titelpre.' '.$row->titelpost.']]></PERSON:anzeigename>
<PERSON:status><![CDATA['.$row->status.']]></PERSON:status>
</RDF:Description>
</RDF:li>
';
}
}
?>
</RDF:Seq>
</RDF:RDF>
+5 -7
View File
@@ -50,12 +50,12 @@ echo '
$datum_obj = new datum();
$projektarbeit = new projektarbeit();
if(isset($_GET['student_uid']))
if(isset($_GET['prestudent_id']))
{
$student = new student($_GET['student_uid']); // TODO EINE
$prestudent_id = $_GET['prestudent_id'];
$projektarbeit->getProjektarbeit($student->prestudent_id);
$projektarbeit->getProjektarbeit($prestudent_id);
foreach ($projektarbeit->result as $row)
draw_content($row);
@@ -68,15 +68,13 @@ elseif(isset($_GET['projektarbeit_id']) && is_numeric($_GET['projektarbeit_id'])
die('Eintrag wurde nicht gefunden');
}
else
die('Student_uid oder Projektarbeit_id muss uebergeben werden');
die('Prestudent_id oder Projektarbeit_id muss uebergeben werden');
function draw_content($row)
{
global $rdf_url, $datum_obj;
$lehreinheit = new lehreinheit($row->lehreinheit_id);
$stud = new student();//EINE_UID TODO
$uid = $stud->getUid($row->prestudent_id);
echo '
<RDF:li>
@@ -89,7 +87,7 @@ function draw_content($row)
<PROJEKTARBEIT:lehreinheit_id><![CDATA['.$row->lehreinheit_id.']]></PROJEKTARBEIT:lehreinheit_id>
<PROJEKTARBEIT:lehreinheit_stsem><![CDATA['.$lehreinheit->studiensemester_kurzbz.']]></PROJEKTARBEIT:lehreinheit_stsem>
<PROJEKTARBEIT:lehrveranstaltung_id><![CDATA['.$lehreinheit->lehrveranstaltung_id.']]></PROJEKTARBEIT:lehrveranstaltung_id>
<PROJEKTARBEIT:student_uid><![CDATA['.$uid.']]></PROJEKTARBEIT:student_uid>
<PROJEKTARBEIT:prestudent_id><![CDATA['.$row->prestudent_id.']]></PROJEKTARBEIT:prestudent_id>
<PROJEKTARBEIT:firma_id><![CDATA['.$row->firma_id.']]></PROJEKTARBEIT:firma_id>
<PROJEKTARBEIT:note><![CDATA['.$row->note.']]></PROJEKTARBEIT:note>
<PROJEKTARBEIT:punkte><![CDATA['.$row->punkte.']]></PROJEKTARBEIT:punkte>
+5 -1
View File
@@ -403,7 +403,11 @@ if($xmlformat=='rdf')
if(isset($uid))
{
$student=new student(); // TODO EINE eindeutig?
/* TODO EINE
* Hier wird der Student und der Prestudent gezeichnet
* der Student ist aber nicht eindeutig!
*/
$student=new student();
$student->load($uid, $studiensemester_kurzbz);
$prestd = new prestudent();
+19 -21
View File
@@ -31,12 +31,11 @@ require_once('../include/studiensemester.class.php');
require_once('../include/studiengang.class.php');
require_once('../include/mitarbeiter.class.php');
require_once('../include/prestudent.class.php');
require_once('../include/student.class.php');
$datum = new datum();
$db = new basis_db();
function draw_studienerfolg($uid, $studiensemester_kurzbz)
function draw_studienerfolg($prestudent_id, $studiensemester_kurzbz)
{
global $xml, $note_arr, $datum, $note_wert;
@@ -55,7 +54,7 @@ function draw_studienerfolg($uid, $studiensemester_kurzbz)
tbl_prestudent.studiengang_kz = tbl_studiengang.studiengang_kz
and tbl_prestudent.uid = tbl_benutzer.uid
and tbl_benutzer.person_id = tbl_person.person_id
and tbl_prestudent.uid = ".$db->db_add_param($uid)."
and tbl_prestudent.prestudent_id = ".$db->db_add_param($prestudent_id, FHC_INTEGER)."
and tbl_studentlehrverband.prestudent_id=tbl_prestudent.prestudent_id
and tbl_studiensemester.studiensemester_kurzbz = tbl_studentlehrverband.studiensemester_kurzbz
and tbl_studentlehrverband.studiensemester_kurzbz = ".$db->db_add_param($studiensemester_kurzbz);
@@ -70,10 +69,8 @@ function draw_studienerfolg($uid, $studiensemester_kurzbz)
$studiensemester = new studiensemester();
$studiensemester_aktuell = $studiensemester->getNearest();
$student = new student(); // TODO EINE
$student->load($uid);
$prestudentstatus = new prestudent();
$prestudentstatus->getLastStatus($student->prestudent_id,'','Student');
$prestudentstatus->getLastStatus($prestudent_id,'','Student');
if($studiensemester_aktuell!=$prestudentstatus->studiensemester_kurzbz)
$studiensemester_aktuell = $prestudentstatus->studiensemester_kurzbz;
@@ -85,7 +82,7 @@ function draw_studienerfolg($uid, $studiensemester_kurzbz)
WHERE tbl_prestudent.prestudent_id=tbl_prestudentstatus.prestudent_id
AND tbl_prestudentstatus.status_kurzbz in('Student','Incoming','Outgoing','Praktikant','Diplomand')
AND studiensemester_kurzbz=".$db->db_add_param($studiensemester_aktuell)."
AND tbl_prestudent.uid = ".$db->db_add_param($uid);
AND tbl_prestudent.prestudent_id = ".$db->db_add_param($prestudent_id, FHC_INTEGER);
if($db->db_query($qry_semester))
if($row_semester = $db->db_fetch_object())
@@ -98,7 +95,7 @@ function draw_studienerfolg($uid, $studiensemester_kurzbz)
WHERE tbl_prestudent.prestudent_id=tbl_prestudentstatus.prestudent_id
AND tbl_prestudentstatus.status_kurzbz in('Student','Incoming','Outgoing','Praktikant','Diplomand')
AND studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz)."
AND tbl_prestudent.uid = ".$db->db_add_param($uid);
AND tbl_prestudent.prestudent_id = ".$db->db_add_param($prestudent_id, FHC_INTEGER);
$orgform='';
if($db->db_query($qry_semester))
@@ -167,7 +164,7 @@ function draw_studienerfolg($uid, $studiensemester_kurzbz)
$obj = new zeugnisnote();
if(!$obj->getZeugnisnoten($lehrveranstaltung_id=null, $student->prestudent_id, $studiensemester_kurzbz))
if(!$obj->getZeugnisnoten($lehrveranstaltung_id=null, $prestudent_id, $studiensemester_kurzbz))
die('Fehler beim Laden der Noten:'.$obj->errormsg);
@@ -240,17 +237,18 @@ function draw_studienerfolg($uid, $studiensemester_kurzbz)
if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
{
if(isset($_GET['uid']))
$uid = $_GET['uid'];
if(isset($_GET['prestudent_id']))
$prestudent_id = $_GET['prestudent_id'];
else
$uid = null;
$prestudent_id = null;
$uid_arr = explode(";",$uid);
$prestudent_id_arr = explode(";",$prestudent_id);
if ($uid_arr[0] == "")
if ($prestudent_id_arr[0] == "")
{
unset($uid_arr[0]);
$uid_arr = array_values($uid_arr);
unset($prestudent_id_arr[0]);
$prestudent_id_arr = array_values($prestudent_id_arr);
}
$note_arr = array();
@@ -275,26 +273,26 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
if(isset($_GET['all']))
{
for ($i = 0; $i < sizeof($uid_arr); $i++)
for ($i = 0; $i < sizeof($prestudent_id_arr); $i++)
{
//Studienbestaetigung fuer alle Semester dieses Studenten
$qry = "SELECT * FROM public.tbl_studiensemester
WHERE studiensemester_kurzbz in(
SELECT studiensemester_kurzbz
FROM public.tbl_prestudentstatus JOIN public.tbl_prestudent USING(prestudent_id)
WHERE uid='".addslashes($uid_arr[$i])."')
WHERE tbl_prestudent.prestudent_id=".$db->db_add_param($prestudent_id_arr[$i], FHC_INTEGER).")
ORDER BY start";
if($db->db_query($qry))
while($row = $db->db_fetch_object())
draw_studienerfolg($uid_arr[$i], $row->studiensemester_kurzbz);
draw_studienerfolg($prestudent_id_arr[$i], $row->studiensemester_kurzbz);
}
}
else
{
//Studienbestaetigung fuer ein bestimmtes Semester
for ($i = 0; $i < sizeof($uid_arr); $i++)
for ($i = 0; $i < sizeof($prestudent_id_arr); $i++)
{
draw_studienerfolg($uid_arr[$i], $studiensemester_kurzbz);
draw_studienerfolg($prestudent_id_arr[$i], $studiensemester_kurzbz);
}
}
+10 -11
View File
@@ -64,17 +64,17 @@ function breaktext($text, $zeichen)
if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
{
if(isset($_GET['uid']))
$uid = $_GET['uid'];
if(isset($_GET['prestudent_id']))
$prestudent_id = $_GET['prestudent_id'];
else
$uid = null;
$prestudent_id = null;
$uid_arr = explode(";",$uid);
$prestudent_id_arr = explode(";",$prestudent_id);
if ($uid_arr[0] == "")
if ($prestudent_id_arr[0] == "")
{
unset($uid_arr[0]);
$uid_arr = array_values($uid_arr);
unset($prestudent_id_arr[0]);
$prestudent_id_arr = array_values($prestudent_id_arr);
}
$note_arr = array();
@@ -179,13 +179,13 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
$studiensemester = new studiensemester();
$studiensemester->load($studiensemester_kurzbz);
for ($i = 0; $i < sizeof($uid_arr); $i++)
for ($i = 0; $i < sizeof($prestudent_id_arr); $i++)
{
$anzahl_fussnoten=0;
$studiengang_typ='';
$xml_fussnote='';
$query = "SELECT tbl_prestudent.perskz, tbl_prestudent.studiengang_kz, tbl_studiengang.typ, tbl_studiengang.bezeichnung, tbl_person.vorname, tbl_person.nachname,tbl_person.gebdatum,tbl_person.titelpre, tbl_person.titelpost, tbl_person.geschlecht FROM tbl_person, tbl_prestudent, tbl_studiengang, tbl_benutzer WHERE tbl_prestudent.studiengang_kz = tbl_studiengang.studiengang_kz and tbl_prestudent.uid = tbl_benutzer.uid and tbl_benutzer.person_id = tbl_person.person_id and tbl_prestudent.uid = '".$uid_arr[$i]."'";
$query = "SELECT tbl_prestudent.perskz, tbl_prestudent.studiengang_kz, tbl_studiengang.typ, tbl_studiengang.bezeichnung, tbl_person.vorname, tbl_person.nachname,tbl_person.gebdatum,tbl_person.titelpre, tbl_person.titelpost, tbl_person.geschlecht FROM tbl_person, tbl_prestudent, tbl_studiengang, tbl_benutzer WHERE tbl_prestudent.studiengang_kz = tbl_studiengang.studiengang_kz and tbl_prestudent.uid = tbl_benutzer.uid and tbl_benutzer.person_id = tbl_person.person_id and tbl_prestudent.prestudent_id = ".$db->db_add_param($prestudent_id_arr[$i], FHC_INTEGER);
if($db->db_query($query))
{
@@ -218,10 +218,9 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
$datum_aktuell = date('d.m.Y');
$xml .= "\n <ort_datum>Wien, am ".$datum_aktuell."</ort_datum>";
$student = new student($uid_arr[$i]);// TODO EINE
$obj = new zeugnisnote();
$obj->load($lehrveranstaltung_id, $student->prestudent_id, $studiensemester_kurzbz);
$obj->load($lehrveranstaltung_id, $prestudent_id_arr[$i], $studiensemester_kurzbz);
if ($obj->note)
{
+5 -5
View File
@@ -79,7 +79,7 @@ echo '
xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:NOTE="'.$rdf_url.'/rdf#"
>
<RDF:Seq about="'.$rdf_url.'/liste">
<RDF:Seq about="'.$rdf_url.'/liste">
';
//Daten holen
@@ -100,8 +100,8 @@ foreach ($obj->result as $row)
$zeugnis='';
echo '
<RDF:li>
<RDF:Description id="'.$row->lehrveranstaltung_id.'/'.$row->prestudent_id.'/'.$row->studiensemester_kurzbz.'" about="'.$rdf_url.'/'.$row->lehrveranstaltung_id.'/'.$row->prestudent_id.'/'.$row->studiensemester_kurzbz.'" >
<RDF:li>
<RDF:Description id="'.$row->lehrveranstaltung_id.'/'.$row->prestudent_id.'/'.$row->studiensemester_kurzbz.'" about="'.$rdf_url.'/'.$row->lehrveranstaltung_id.'/'.$row->prestudent_id.'/'.$row->studiensemester_kurzbz.'" >
<NOTE:lehrveranstaltung_id><![CDATA['.$row->lehrveranstaltung_id.']]></NOTE:lehrveranstaltung_id>
<NOTE:prestudent_id><![CDATA['.$row->prestudent_id.']]></NOTE:prestudent_id>
<NOTE:studiensemester_kurzbz><![CDATA['.$row->studiensemester_kurzbz.']]></NOTE:studiensemester_kurzbz>
@@ -124,8 +124,8 @@ foreach ($obj->result as $row)
<NOTE:student_semester><![CDATA['.$prestudent->semester.']]></NOTE:student_semester>
<NOTE:punkte><![CDATA['.($row->punkte!=''?(float)$row->punkte:'').']]></NOTE:punkte>
<NOTE:zeugnis><![CDATA['.$zeugnis.']]></NOTE:zeugnis>
</RDF:Description>
</RDF:li>';
</RDF:Description>
</RDF:li>';
}
?>
</RDF:Seq>
+3 -3
View File
@@ -209,9 +209,9 @@ class stip extends basis_db
$qry = "SELECT
prestudent_id, vorname, nachname, svnr, perskz
FROM
public.tbl_student student
JOIN public.tbl_benutzer benutzer on(benutzer.uid=student.student_uid)
JOIN public.tbl_person person using(person_id)
public.tbl_prestudent prestudent
JOIN public.tbl_benutzer benutzer on(benutzer.uid=prestudent.uid)
JOIN public.tbl_person person on(benutzer.person_id=person.person_id)
WHERE
person.vorname = ".$this->db_add_param($Vorname)."
AND person.nachname = ".$this->db_add_param($Nachname).";";
+8 -116
View File
@@ -17,8 +17,9 @@
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at>,
* Rudolf Hangl <rudolf.hangl@technikum-wien.at> and
* Gerald Simane-Sequens <gerald.simane-sequens@technikum-wien.at>
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>,
* Gerald Simane-Sequens <gerald.simane-sequens@technikum-wien.at> and
* Andreas Moik <moik@technikum-wien.at>.
*/
// ************************************
// * Script zur Pruefung und Korrektur
@@ -38,63 +39,11 @@ require_once(dirname(__FILE__).'/../include/mail.class.php');
$db = new basis_db();
$anzahl_neue_prestudent_id=0;
$anzahl_fehler_prestudent=0;
$anzahl_gruppenaenderung=0;
$anzahl_gruppenaenderung_fehler=0;
$text='';
$statistik ='';
$abunterbrecher_verschoben_error=0;
$abunterbrecher_verschoben=0;
// ****
// * Bei Studenten mit fehlener Prestudent_id wird die passende id ermittelt und Eingetragen
// ****
$qry = "SELECT student_uid, studiengang_kz FROM public.tbl_student WHERE prestudent_id is null";
if($result = $db->db_query($qry))
{
$text.="Suche Studenten mit fehlender Prestudent_id ...\n\n";
while($row = $db->db_fetch_object($result))
{
$qry_id = "SELECT tbl_prestudent.prestudent_id FROM campus.vw_student JOIN public.tbl_prestudent USING(person_id) WHERE uid=".$db->db_add_param($row->student_uid)." AND tbl_prestudent.studiengang_kz=".$db->db_add_param($row->studiengang_kz);
if($result_id = $db->db_query($qry_id))
{
if($db->db_num_rows($result_id)==1)
{
if($row_id = $db->db_fetch_object($result_id))
{
$qry_upd = "UPDATE public.tbl_student SET prestudent_id=".$db->db_add_param($row_id->prestudent_id)." WHERE student_uid=".$db->db_add_param($row->student_uid);
if($db->db_query($qry_upd))
{
$text .= "Prestudent_id von $row->student_uid wurde auf $row_id->prestudent_id gesetzt\n";
$anzahl_neue_prestudent_id++;
}
}
else
{
$text .= "unbekannter Fehler\n";
$anzahl_fehler_prestudent++;
}
}
elseif($db->db_num_rows($result_id)>1)
{
$text .= "Student $row->student_uid hat keine Prestudent_id und MEHRERE passende Prestudenteintraege\n";
$anzahl_fehler_prestudent++;
}
elseif($db->db_num_rows($result_id)==0)
{
$text .= "Student $row->student_uid hat keine Prestudent_id und KEINE passenden Prestudenteintraege\n";
$anzahl_fehler_prestudent++;
}
}
else
{
$text.="Fehler bei Abfrage:".$db->db_last_error()."\n";
$anzahl_fehler_prestudent++;
}
}
}
// *****
// * Gruppenzuteilung von Abbrechern und Unterbrechern korrigieren.
@@ -105,17 +54,15 @@ $text.="\n\nKorrigiere Gruppenzuteilungen von Ab-/Unterbrechern\n";
//Alle Ab-/Unterbrecher holen die nicht im 0. Semester sind
$qry = "SELECT
student_uid,
tbl_student.studiengang_kz,
uid,
tbl_prestudent.studiengang_kz,
tbl_prestudent.prestudent_id,
status_kurzbz,
studiensemester_kurzbz
FROM
public.tbl_student,
public.tbl_prestudent,
public.tbl_prestudentstatus
WHERE
tbl_student.prestudent_id=tbl_prestudent.prestudent_id AND
tbl_prestudent.prestudent_id=tbl_prestudentstatus.prestudent_id AND
(
tbl_prestudentstatus.status_kurzbz='Unterbrecher' OR
@@ -127,7 +74,7 @@ $qry = "SELECT
FROM
public.tbl_studentlehrverband
WHERE
prestudent_id=tbl_student.prestudent_id AND
tbl_studentlehrverband.prestudent_id=tbl_prestudent.prestudent_id AND
studiensemester_kurzbz=tbl_prestudentstatus.studiensemester_kurzbz AND
semester<>0
)
@@ -154,7 +101,7 @@ if($result = $db->db_query($qry))
$student->insertvon = 'chkstudentlvb';
}
$student->uid = $row->student_uid;
$student->uid = $row->uid;
$student->studiensemester_kurzbz=$row->studiensemester_kurzbz;
$student->studiengang_kz = $row->studiengang_kz;
$student->semester = '0';
@@ -183,70 +130,15 @@ if($result = $db->db_query($qry))
}
else
{
$text.="Fehler biem Speichern des Lehrverbandeintrages bei $student->student_uid:".$student->errormsg."\n";
$text.="Fehler biem Speichern des Lehrverbandeintrages bei $student->uid:".$student->errormsg."\n";
$abunterbrecher_verschoben_error++;
}
}
}
}
// *****
// * Unterschiedliche Gruppenzuteilungen in tbl_studentlehrverband - tbl_student korrigieren
// *****
$stsem = new studiensemester();
$stsem = $stsem->getNearest();
$text.="\n\nKorrigiere Inkonsitenzen in den Tabellen tbl_studentlehrverband, tbl_student (Verwendetes Studiensemester: $stsem)\n\n";
$qry = "SELECT
tbl_student.studiengang_kz as studiengang_kz_old,
tbl_student.semester as semester_old,
tbl_student.verband as verband_old,
tbl_student.gruppe as gruppe_old,
tbl_student.student_uid,
tbl_studentlehrverband.studiengang_kz,
tbl_studentlehrverband.semester,
tbl_studentlehrverband.verband,
tbl_studentlehrverband.gruppe
FROM
public.tbl_student JOIN public.tbl_studentlehrverband USING(prestudent_id)
WHERE
tbl_studentlehrverband.studiensemester_kurzbz=".$db->db_add_param($stsem)." AND
(
tbl_student.studiengang_kz<>tbl_studentlehrverband.studiengang_kz OR
tbl_student.semester<>tbl_studentlehrverband.semester OR
tbl_student.verband<>tbl_studentlehrverband.verband OR
tbl_student.gruppe<>tbl_studentlehrverband.gruppe
)";
if($result = $db->db_query($qry))
{
while($row = $db->db_fetch_object($result))
{
$qry = "UPDATE public.tbl_student SET studiengang_kz=".$db->db_add_param($row->studiengang_kz).", semester=".$db->db_add_param($row->semester).", verband=".$db->db_add_param($row->verband).", gruppe=".$db->db_add_param($row->gruppe)." WHERE student_uid=".$db->db_add_param($row->student_uid);
if($db->db_query($qry))
{
$text .= "Bei Student $row->student_uid wurde die Gruppenzuordnung von $row->studiengang_kz_old/$row->semester_old/$row->verband_old/$row->gruppe_old auf $row->studiengang_kz/$row->semester/$row->verband/$row->gruppe geaendert\n";
$anzahl_gruppenaenderung++;
}
else
{
$text.="Fehler beim Aendern der Gruppe: ".$db->db_last_error()."\n";
$anzahl_gruppenaenderung_fehler++;
}
}
}
else
$text.="Fehler bei Abfrage".$db->db_last_error();
$statistik .= "Prestudent_id wurde bei $anzahl_neue_prestudent_id Studenten korrigiert\n";
$statistik .= "$anzahl_fehler_prestudent Fehler sind bei der Korrektur der Prestudent_id aufgetreten\n";
$statistik .= "$abunterbrecher_verschoben Studenten wurden ins 0. Semester verschoben\n ";
$statistik .= "$abunterbrecher_verschoben_error Fehler sind beim Verschieben aufgetreten\n ";
$statistik .= "Bei $anzahl_gruppenaenderung Studenten wurde die Gruppenzuordnung korrigiert\n";
$statistik .= "$anzahl_gruppenaenderung_fehler Fehler sind bei der Korrektur der Gruppenzuordnung aufgetreten\n";
$statistik .= "\n\n";
$mail = new mail(MAIL_ADMIN, 'vilesci@'.DOMAIN, 'CHECK Studentlehrverband', $statistik.$text);
+254 -269
View File
@@ -18,18 +18,41 @@
* Authors: Andreas Moik <moik@technikum-wien.at>,
*
* Beschreibung:
* Dieses Skript prueft die Datenbank auf Aenderungen bezueglich eine_uid, dabei werden fehlende Attribute angelegt.
* Dieses Skript prueft die Datenbank auf Aenderungen bezueglich eine_uid, dabei werden fehlende Attribute, usw angelegt.
*/
require_once('../config/system.config.inc.php');
require_once('../include/basis_db.class.php');
$db = new basis_db();
echo '<html>
?>
<html>
<head>
<title>CS-EineUid</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="stylesheet" href="../skin/vilesci.css" type="text/css" />
<script>
function startScript()
{
document.getElementById('startButton').disabled = true;
var form = document.createElement('form');
form.setAttribute('method', 'POST');
form.setAttribute('action', 'dbupdate_eine_uid.php');
var hiddenField = document.createElement('input');
hiddenField.setAttribute('type', 'hidden');
hiddenField.setAttribute('value', 'Starten');
hiddenField.setAttribute('name', 'action');
form.appendChild(hiddenField);
document.body.appendChild(form);
form.submit();
}
</script>
</head>
<body>';
<body>
<?php
$all_tables_to_update =
array
@@ -87,9 +110,9 @@ if(!isset($_POST["action"]))
echo "</p>";
echo "
<form action='dbupdate_eine_uid.php' method='POST' name='startform'>
<input type='submit' value='Starten' name='action'>
</form>";
<h1 style='margin-top:50px;color:#F44'>ACHTUNG: Dieser Vorgang kann mehrere Minuten dauern!</h1>
<input id='startButton' type='button' value='Starten' onclick='startScript()'>";
}
else
{
@@ -117,8 +140,8 @@ else if($_POST["action"] == "Starten")
{
echo "<p>Could not ADD COLUMN uid TO public.tbl_prestudent: " . $db->db_last_error()."</p>";
}
$prestudent_qry = "ALTER TABLE public.tbl_prestudent ADD COLUMN perskz character(15);
UPDATE public.tbl_prestudent SET perskz = (SELECT matrikelnr FROM public.tbl_student WHERE tbl_student.prestudent_id = tbl_prestudent.prestudent_id);
";
@@ -141,78 +164,231 @@ else if($_POST["action"] == "Starten")
}
}
//********************************DROP ALL VIEWS********************************
//bis.vw_bisio
if($result = @$db->db_query("SELECT 1 FROM bis.vw_bisio LIMIT 1;"))
{
if(!$db->db_query("DROP VIEW bis.vw_bisio"))
{
echo "<p>Could not DROP view bis.vw_bisio: " . $create_view_qry."</p>";
}
}
//campus.vw_student_lehrveranstaltung
if($result = @$db->db_query("SELECT 1 FROM campus.vw_student_lehrveranstaltung LIMIT 1;"))
{
if(!$db->db_query("DROP VIEW campus.vw_student_lehrveranstaltung"))
{
echo "<p>Could not DROP view campus.vw_student_lehrveranstaltung: " . $create_view_qry."</p>";
}
}
//lehre.vw_stundenplandev_student_unr
if($result = @$db->db_query("SELECT 1 FROM lehre.vw_stundenplandev_student_unr LIMIT 1;"))
{
if(!$db->db_query("DROP VIEW lehre.vw_stundenplandev_student_unr"))
{
echo "<p>Could not DROP view lehre.vw_stundenplandev_student_unr: " . $create_view_qry."</p>";
}
}
//public.vw_gruppen
if($result = @$db->db_query("SELECT 1 FROM public.vw_gruppen LIMIT 1;"))
{
if(!$db->db_query("DROP VIEW public.vw_gruppen"))
{
echo "<p>Could not DROP view public.vw_gruppen: " . $create_view_qry."</p>";
}
}
//lehre.vw_zeugnisnote
if($result = @$db->db_query("SELECT 1 FROM lehre.vw_zeugnisnote LIMIT 1;"))
{
if(!$db->db_query("DROP VIEW lehre.vw_zeugnisnote"))
{
echo "<p>Could not DROP view lehre.vw_zeugnisnote: " . $create_view_qry."</p>";
}
}
//testtool.vw_reihungstest_zeugnisnoten
if($result = @$db->db_query("SELECT 1 FROM testtool.vw_reihungstest_zeugnisnoten LIMIT 1;"))
{
if(!$db->db_query("DROP VIEW testtool.vw_reihungstest_zeugnisnoten"))
{
echo "<p>Could not DROP view testtool.vw_reihungstest_zeugnisnoten: " . $create_view_qry."</p>";
}
}
dropViews($db);
//modify all tables
foreach($all_tables_to_update as $t)
modifyOneTable($db, $t);
createViews($db);
}
echo '</body></html>';
/* FUNCTIONS */
function describeOneChange($db, $table)
{
if(!$result = @$db->db_query('SELECT '.$table["to"].' FROM '.$table["schema"].'.'.$table["name"].' LIMIT 1;'))
{
echo "<div>".$table["schema"].".".$table["name"].": ".$table["from"]." wird <strong style='color:red;'>gelöscht</strong>!</div>";
echo "<div>".$table["schema"].".".$table["name"].": ".$table["to"]." wird <strong style='color:green;'>eingefügt</strong>!</div>";
}
}
function checkForUpdates($db, $table)
{
if(!$result = @$db->db_query('SELECT '.$table["to"].' FROM '.$table["schema"].'.'.$table["name"].' LIMIT 1;'))
{
return true;
}
return false;
}
function modifyOneTable($db, $table)
{
if(!$result = @$db->db_query('SELECT '.$table["to"].' FROM '.$table["schema"].'.'.$table["name"].' LIMIT 1;'))
{
$db->db_query("BEGIN;");
$indices = array();
$primary_keys = array();
$index_search_result = $db->db_query("SELECT * FROM pg_indexes WHERE schemaname=".$db->db_add_param($table["schema"])." AND tablename=".$db->db_add_param($table["name"]));
while($row = $db->db_fetch_object($index_search_result))
{
if(strpos($row->indexdef, $table["from"]) !== false) //only if the pk is affected
{
$check_if_pk_result = $db->db_query("select * from pg_constraint where conname=".$db->db_add_param($row->indexname));
if($db->db_num_rows($check_if_pk_result) == 1)
{
$get_definition_result = $db->db_query(
"SELECT conrelid::regclass AS table_from
,conname
,pg_get_constraintdef(c.oid)
FROM pg_constraint c
JOIN pg_namespace n ON n.oid = c.connamespace
WHERE contype IN ('f', 'p ')
AND n.nspname = ".$db->db_add_param($row->schemaname)."
AND conname = ".$db->db_add_param($row->indexname)."
ORDER BY conrelid::regclass::text, contype DESC;");
$def = $db->db_fetch_object($get_definition_result);
if(!$pk_drop_result = $db->db_query('ALTER TABLE '.$table["schema"].".".$table["name"].' DROP CONSTRAINT '.$row->indexname))
{
echo "<p><span style='color:red;'>ACHTUNG:</span> DROPPEN von PRIMARY KEY ".$row->indexname." fehlgeschlagen</p>";
$db->db_query("ROLLBACK;");
return;
}
$constraint_add_query = str_replace ($table["from"], $table["to"], $def->pg_get_constraintdef );
$primary_keys[] = 'ALTER TABLE '.$table["schema"].".".$table["name"].' ADD CONSTRAINT '.$row->indexname.' '.$constraint_add_query;
}
else
{
if(!$index_drop_result = $db->db_query('DROP INDEX '.$table["schema"].".".$row->indexname))
{
echo "<p><span style='color:red;'>ACHTUNG:</span> DROPPEN von INDEX ".$row->indexname." fehlgeschlagen</p>";
$db->db_query("ROLLBACK;");
return;
}
$index_add_query = str_replace ($table["from"], $table["to"], $row->indexdef );
$indices[] = $index_add_query;
}
}
}
//spalte einfuegen
$alter_update_qry = 'ALTER TABLE '.$table["schema"].'.'.$table["name"].' ADD COLUMN '.$table["to"].' '.$table["datatype"].';
UPDATE '.$table["schema"].".".$table["name"].' SET '.$table["to"].' = (SELECT '.$table["to"].' FROM '.$table["newTargetSchema"].'.'.$table["pickDataFrom"].' WHERE '.$table["pickDataFromCol"].'='.$table["schema"].'.'.$table["name"].'.'.$table["from"].');';
$db->db_query($alter_update_qry);
$constraint_qry = "";
//constraints: $TO FK, $TO
if($table["constraint"] != "")
$constraint_qry = 'ALTER TABLE '.$table["schema"].".".$table["name"].' ALTER COLUMN '.$table["to"].' '.$table["constraint"].";";
$constraint_qry.=' ALTER TABLE '.$table["schema"].".".$table["name"].' ADD CONSTRAINT fk_'.$table["name"].'_'.$table["newTarget"].'_'.$table["to"].' FOREIGN KEY ('.$table["to"].') REFERENCES '.$table["newTargetSchema"].'.'.$table["newTarget"].' ('.$table["to"].');';
if(!$db->db_query($constraint_qry))
{
echo '<strong>'.$table["schema"].".".$table["name"].': '.$db->db_last_error().'</strong><br>';
}
else
{
echo ' '.$table["schema"].".".$table["name"].': Spalte '.$table["to"].' hinzugefuegt!<br>';
echo ' '.$table["schema"].".".$table["name"].': Spalte '.$table["from"].' auf '.$table["to"].' geändert!<br>';
echo ' '.$table["schema"].".".$table["name"].': Spalte '.$table["to"].' constraints eingefuegt!<br>';
//FROM löschen
$qry = 'ALTER TABLE '.$table["schema"].".".$table["name"].' DROP COLUMN '.$table["from"].';';
if(!$db->db_query($qry))
{
echo '<strong>'.$table["schema"].".".$table["name"].': '.$db->db_last_error().'</strong><br>';
echo '<strong>'.$table["schema"].".".$table["name"].': ACHTUNG! In diesem Fall sollte '.$table["to"].' ordnungsgemäß eingetragen sein, jedoch '.$table["from"].' nicht gelöscht worden sein. Das Skript erneut zu starten wird nicht funktionieren!</strong><br>';
}
else
{
echo ' '.$table["schema"].".".$table["name"].': Spalte '.$table["from"].' gelöscht!<br>';
foreach( $primary_keys as $pk)
{
if(!$pk_add_result = $db->db_query($pk))
{
echo "<p><span style='color:red;'>ACHTUNG:</span> ADDEN von PRIMARY KEY ".$row->indexname." fehlgeschlagen</p>";
$db->db_query("ROLLBACK;");
return;
}
}
foreach( $indices as $ind)
{
if(!$index_add_result = $db->db_query($ind))
{
echo "<p><span style='color:red;'>ACHTUNG:</span> ADDEN von INDEX ".$row->indexname." fehlgeschlagen</p>";
$db->db_query("ROLLBACK;");
return;
}
}
$db->db_query("COMMIT;");
return;
}
}
}
}
function dropViews($db)
{
//********************************DROP ALL VIEWS********************************
//bis.vw_bisio
if(!$db->db_query("DROP VIEW bis.vw_bisio"))
{
echo "<p>Could not DROP view bis.vw_bisio: " . $create_view_qry."</p>";
}
//campus.vw_student_lehrveranstaltung
if(!$db->db_query("DROP VIEW campus.vw_student_lehrveranstaltung"))
{
echo "<p>Could not DROP view campus.vw_student_lehrveranstaltung: " . $create_view_qry."</p>";
}
//lehre.vw_stundenplandev_student_unr
if(!$db->db_query("DROP VIEW lehre.vw_stundenplandev_student_unr"))
{
echo "<p>Could not DROP view lehre.vw_stundenplandev_student_unr: " . $create_view_qry."</p>";
}
//public.vw_gruppen
if(!$db->db_query("DROP VIEW public.vw_gruppen"))
{
echo "<p>Could not DROP view public.vw_gruppen: " . $create_view_qry."</p>";
}
//lehre.vw_zeugnisnote
if(!$db->db_query("DROP VIEW lehre.vw_zeugnisnote"))
{
echo "<p>Could not DROP view lehre.vw_zeugnisnote: " . $create_view_qry."</p>";
}
//testtool.vw_reihungstest_zeugnisnoten
if(!$db->db_query("DROP VIEW testtool.vw_reihungstest_zeugnisnoten"))
{
echo "<p>Could not DROP view testtool.vw_reihungstest_zeugnisnoten: " . $create_view_qry."</p>";
}
}
function createViews($db)
{
//********************************CREATE ALL VIEWS********************************
//bis.vw_bisio
@@ -401,8 +577,8 @@ else if($_POST["action"] == "Starten")
FROM lehre.tbl_stundenplandev stpl
JOIN tbl_benutzergruppe USING (gruppe_kurzbz)
WHERE tbl_benutzergruppe.studiensemester_kurzbz::text = ((( SELECT tbl_studiensemester.studiensemester_kurzbz
FROM tbl_studiensemester
WHERE stpl.datum <= tbl_studiensemester.ende AND stpl.datum >= tbl_studiensemester.start))::text)
FROM tbl_studiensemester
WHERE stpl.datum <= tbl_studiensemester.ende AND stpl.datum >= tbl_studiensemester.start))::text)
GROUP BY stpl.unr, stpl.datum, stpl.stunde, tbl_benutzergruppe.uid, tbl_benutzergruppe.prestudent_id
UNION
SELECT stpl.unr,
@@ -414,8 +590,8 @@ else if($_POST["action"] == "Starten")
JOIN tbl_studentlehrverband ON stpl.gruppe_kurzbz IS NULL AND stpl.studiengang_kz = tbl_studentlehrverband.studiengang_kz AND stpl.semester = tbl_studentlehrverband.semester AND (stpl.verband = tbl_studentlehrverband.verband OR stpl.verband = ' '::bpchar AND stpl.verband <> tbl_studentlehrverband.verband) AND (stpl.gruppe = tbl_studentlehrverband.gruppe OR stpl.gruppe = ' '::bpchar AND stpl.gruppe <> tbl_studentlehrverband.gruppe)
JOIN tbl_prestudent on(tbl_prestudent.prestudent_id = tbl_studentlehrverband.prestudent_id)
WHERE tbl_studentlehrverband.studiensemester_kurzbz::text = ((( SELECT tbl_studiensemester.studiensemester_kurzbz
FROM tbl_studiensemester
WHERE stpl.datum <= tbl_studiensemester.ende AND stpl.datum >= tbl_studiensemester.start))::text)
FROM tbl_studiensemester
WHERE stpl.datum <= tbl_studiensemester.ende AND stpl.datum >= tbl_studiensemester.start))::text)
GROUP BY stpl.unr, stpl.datum, stpl.stunde, tbl_studentlehrverband.prestudent_id, tbl_prestudent.uid) sub_stpl_uid
GROUP BY sub_stpl_uid.unr, sub_stpl_uid.datum, sub_stpl_uid.stunde, sub_stpl_uid.uid;
";
@@ -531,9 +707,9 @@ else if($_POST["action"] == "Starten")
CREATE VIEW testtool.vw_reihungstest_zeugnisnoten AS
SELECT tbl_zeugnisnote.studiensemester_kurzbz,
CASE
WHEN tbl_zeugnisnote.note IS NULL THEN 5
WHEN tbl_zeugnisnote.note = ANY (ARRAY[7, 13, 14, 15]) THEN 5
ELSE tbl_zeugnisnote.note::integer
WHEN tbl_zeugnisnote.note IS NULL THEN 5
WHEN tbl_zeugnisnote.note = ANY (ARRAY[7, 13, 14, 15]) THEN 5
ELSE tbl_zeugnisnote.note::integer
END AS note,
tbl_zeugnisnote.lehrveranstaltung_id,
tbl_zeugnisnote.benotungsdatum,
@@ -573,7 +749,7 @@ else if($_POST["action"] == "Starten")
tbl_prestudent.rt_gesamtpunkte,
tbl_studiensemester.ende
FROM tbl_student
JOIN lehre.tbl_zeugnisnote USING (student_uid)
JOIN lehre.tbl_zeugnisnote USING (prestudent_id)
JOIN tbl_benutzer ON tbl_student.student_uid::text = tbl_benutzer.uid::text
JOIN tbl_person USING (person_id)
JOIN lehre.tbl_lehrveranstaltung USING (lehrveranstaltung_id)
@@ -586,200 +762,9 @@ else if($_POST["action"] == "Starten")
echo "<p>Could not CREATE view testtool.vw_reihungstest_zeugnisnoten: " . $create_view_qry."</p>";
}
}
/* TODO:SCHEMA.TODO:VIEW TEMPLATE
//SCHEMA.TODO:VIEW
if(!$result = @$db->db_query("SELECT 1 FROM TODO:SCHEMA.TODO:VIEW LIMIT 1;"))
{
$create_view_qry = "
CREATE VIEW TODO:SCHEMA.TODO:VIEW AS
TODO:DEFINITION
";
if(!$db->db_query($create_view_qry))
{
echo "<p>Could not CREATE view TODO:SCHEMA.TODO:VIEW: " . $create_view_qry."</p>";
}
}
*/
}
echo '</body></html>';
/* FUNCTIONS */
function describeOneChange($db, $table)
{
if(!$result = @$db->db_query('SELECT '.$table["to"].' FROM '.$table["schema"].'.'.$table["name"].' LIMIT 1;'))
{
echo "<div>".$table["schema"].".".$table["name"].": ".$table["from"]." wird <strong style='color:red;'>gelöscht</strong>!</div>";
echo "<div>".$table["schema"].".".$table["name"].": ".$table["to"]." wird <strong style='color:green;'>eingefügt</strong>!</div>";
}
}
function checkForUpdates($db, $table)
{
if(!$result = @$db->db_query('SELECT '.$table["to"].' FROM '.$table["schema"].'.'.$table["name"].' LIMIT 1;'))
{
return true;
}
return false;
}
function modifyOneTable($db, $table)
{
if(!$result = @$db->db_query('SELECT '.$table["to"].' FROM '.$table["schema"].'.'.$table["name"].' LIMIT 1;'))
{
$db->db_query("BEGIN;");
$indices = array();
$primary_keys = array();
$index_search_result = $db->db_query("SELECT * FROM pg_indexes WHERE schemaname=".$db->db_add_param($table["schema"])." AND tablename=".$db->db_add_param($table["name"]));
while($row = $db->db_fetch_object($index_search_result))
{
if(strpos($row->indexdef, $table["from"]) !== false) //only if the pk is affected
{
$check_if_pk_result = $db->db_query("select * from pg_constraint where conname=".$db->db_add_param($row->indexname));
if($db->db_num_rows($check_if_pk_result) == 1)
{
$get_definition_result = $db->db_query(
"SELECT conrelid::regclass AS table_from
,conname
,pg_get_constraintdef(c.oid)
FROM pg_constraint c
JOIN pg_namespace n ON n.oid = c.connamespace
WHERE contype IN ('f', 'p ')
AND n.nspname = ".$db->db_add_param($row->schemaname)."
AND conname = ".$db->db_add_param($row->indexname)."
ORDER BY conrelid::regclass::text, contype DESC;");
$def = $db->db_fetch_object($get_definition_result);
if(!$pk_drop_result = $db->db_query('ALTER TABLE '.$table["schema"].".".$table["name"].' DROP CONSTRAINT '.$row->indexname))
{
echo "<p><span style='color:red;'>ACHTUNG:</span> DROPPEN von PRIMARY KEY ".$row->indexname." fehlgeschlagen</p>";
$db->db_query("ROLLBACK;");
return;
}
$constraint_add_query = str_replace ($table["from"], $table["to"], $def->pg_get_constraintdef );
$primary_keys[] = 'ALTER TABLE '.$table["schema"].".".$table["name"].' ADD CONSTRAINT '.$row->indexname.' '.$constraint_add_query;
}
else
{
if(!$index_drop_result = $db->db_query('DROP INDEX '.$table["schema"].".".$row->indexname))
{
echo "<p><span style='color:red;'>ACHTUNG:</span> DROPPEN von INDEX ".$row->indexname." fehlgeschlagen</p>";
$db->db_query("ROLLBACK;");
return;
}
$index_add_query = str_replace ($table["from"], $table["to"], $row->indexdef );
$indices[] = $index_add_query;
}
}
}
//spalte einfuegen
$alter_update_qry = 'ALTER TABLE '.$table["schema"].'.'.$table["name"].' ADD COLUMN '.$table["to"].' '.$table["datatype"].';
UPDATE '.$table["schema"].".".$table["name"].' SET '.$table["to"].' = (SELECT '.$table["to"].' FROM '.$table["newTargetSchema"].'.'.$table["pickDataFrom"].' WHERE '.$table["pickDataFromCol"].'='.$table["schema"].'.'.$table["name"].'.'.$table["from"].');';
$db->db_query($alter_update_qry);
$constraint_qry = "";
//constraints: $TO FK, $TO
if($table["constraint"] != "")
$constraint_qry = 'ALTER TABLE '.$table["schema"].".".$table["name"].' ALTER COLUMN '.$table["to"].' '.$table["constraint"].";";
$constraint_qry.=' ALTER TABLE '.$table["schema"].".".$table["name"].' ADD CONSTRAINT fk_'.$table["name"].'_'.$table["newTarget"].'_'.$table["to"].' FOREIGN KEY ('.$table["to"].') REFERENCES '.$table["newTargetSchema"].'.'.$table["newTarget"].' ('.$table["to"].');';
if(!$db->db_query($constraint_qry))
{
echo '<strong>'.$table["schema"].".".$table["name"].': '.$db->db_last_error().'</strong><br>';
}
else
{
echo ' '.$table["schema"].".".$table["name"].': Spalte '.$table["to"].' hinzugefuegt!<br>';
echo ' '.$table["schema"].".".$table["name"].': Spalte '.$table["from"].' auf '.$table["to"].' geändert!<br>';
echo ' '.$table["schema"].".".$table["name"].': Spalte '.$table["to"].' constraints eingefuegt!<br>';
//FROM löschen
$qry = 'ALTER TABLE '.$table["schema"].".".$table["name"].' DROP COLUMN '.$table["from"].';';
if(!$db->db_query($qry))
{
echo '<strong>'.$table["schema"].".".$table["name"].': '.$db->db_last_error().'</strong><br>';
echo '<strong>'.$table["schema"].".".$table["name"].': ACHTUNG! In diesem Fall sollte '.$table["to"].' ordnungsgemäß eingetragen sein, jedoch '.$table["from"].' nicht gelöscht worden sein. Das Skript erneut zu starten wird nicht funktionieren!</strong><br>';
}
else
{
echo ' '.$table["schema"].".".$table["name"].': Spalte '.$table["from"].' gelöscht!<br>';
foreach( $primary_keys as $pk)
{
if(!$pk_add_result = $db->db_query($pk))
{
echo "<p><span style='color:red;'>ACHTUNG:</span> ADDEN von PRIMARY KEY ".$row->indexname." fehlgeschlagen</p>";
$db->db_query("ROLLBACK;");
return;
}
}
foreach( $indices as $ind)
{
if(!$index_add_result = $db->db_query($ind))
{
echo "<p><span style='color:red;'>ACHTUNG:</span> ADDEN von INDEX ".$row->indexname." fehlgeschlagen</p>";
$db->db_query("ROLLBACK;");
return;
}
}
$db->db_query("COMMIT;");
return;
}
}
}
}
?>