- Incomming Verwaltung

- Status kann jetzt editiert werden
- Studienerfolg zeigt nun keine negativen Noten mehr an und berücksichtigt das Attribut zeugnis
- im Lektor Tab werden nun auch die inaktiven Studiengaenge richtig dargestellt
This commit is contained in:
Andreas Österreicher
2007-08-17 13:43:57 +00:00
parent abbcbd366f
commit 8e0967b9f6
16 changed files with 625 additions and 64 deletions
+1 -1
View File
@@ -42,7 +42,7 @@ $fkt->getAll($user);
$stg_obj = new studiengang($db_conn);
if($stg_obj->getAll('kurzbzlang'))
if($stg_obj->getAll('kurzbzlang', false))
{
$stg = array();
foreach($stg_obj->result as $row)
+9
View File
@@ -10,6 +10,7 @@ Auflistung nach Priorit&auml;t (h&ouml;chste oben).<br>
<h2>&Auml;nderungen</h2>
<br>
<h2>Fehler</h2>
<li>Beim Starten kommt manchmal folgende Fehlermeldung in der Errorconsole: Error: can't decode principals (failure code 8007000e)</li>
<hr>
<h2>Statistik</h2>
Als Hauptmen&uuml;
@@ -42,6 +43,14 @@ content/statistik/lvplanung.php muss noch erstellt werden)</li>
<hr>
<h2>Erledigte Anforderungen</h2>
<ul>
<li>Studienerfolg soll keine 5er anzeigen<br>
17.08.2007 oesi<br><br></li>
<li>Lektor Tab zeigt kurzbz bei inaktiven Studiengaengen nicht an<br>
17.08.2007 oesi <br><br></li>
<li>Editieren des Status bei Doppelklick<br>
17.08.2007 oesi<br><br></li>
<li>Verwaltung fuer Incoming<br>
17.08.2007 oesi<br><br></li>
<li> Anzahl: Anzahl stimmt nicht immer? <br>
16.08.2007 oesi<br><br></li>
<li>Betriebsmittel Overlay auch bei den Mitarbeitern Anzeigen<br>
+42 -3
View File
@@ -486,7 +486,8 @@ if(!$error)
//Datensatz selbst angelegt wurde
if(isset($_POST['studiensemester_kurzbz']) && isset($_POST['rolle_kurzbz']) &&
isset($_POST['prestudent_id']) && is_numeric($_POST['prestudent_id']))
isset($_POST['prestudent_id']) && is_numeric($_POST['prestudent_id']) &&
isset($_POST['ausbildungssemester']) && is_numeric($_POST['ausbildungssemester']))
{
if($_POST['rolle_kurzbz']=='Student')
{
@@ -496,11 +497,11 @@ if(!$error)
else
{
$rolle = new prestudent($conn, null, true);
if($rolle->load_rolle($_POST['prestudent_id'],$_POST['rolle_kurzbz'],$_POST['studiensemester_kurzbz']))
if($rolle->load_rolle($_POST['prestudent_id'],$_POST['rolle_kurzbz'],$_POST['studiensemester_kurzbz'], $_POST['ausbildungssemester']))
{
if($rechte->isBerechtigt('admin',0) || $rolle->insertvon == $user)
{
if($rolle->delete_rolle($_POST['prestudent_id'],$_POST['rolle_kurzbz'],$_POST['studiensemester_kurzbz']))
if($rolle->delete_rolle($_POST['prestudent_id'],$_POST['rolle_kurzbz'],$_POST['studiensemester_kurzbz'], $_POST['ausbildungssemester']))
{
$return = true;
}
@@ -529,6 +530,44 @@ if(!$error)
$errormsg = 'Fehlerhafte Parameteruebergabe';
}
}
elseif(isset($_POST['type']) && $_POST['type']=='saverolle')
{
//Prestudentrolle speichern
if(!$error)
{
if(isset($_POST['prestudent_id']))
{
$rolle = new prestudent($conn);
if(!$rolle->load_rolle($_POST['prestudent_id'], $_POST['rolle_kurzbz'], $_POST['studiensemester_old'], $_POST['ausbildungssemester_old']))
{
$errormsg = 'Rolle konnte nicht geladen werden';
$return = false;
}
else
{
$rolle->ausbildungssemester = $_POST['ausbildungssemester'];
$rolle->ausbildungssemester_old = $_POST['ausbildungssemester_old'];
$rolle->studiensemester_kurzbz = $_POST['studiensemester_kurzbz'];
$rolle->studiensemester_old = $_POST['studiensemester_old'];
$rolle->datum = $_POST['datum'];
$rolle->new = false;
if($rolle->save_rolle())
$return = true;
else
{
$return = false;
$errormsg = $rolle->errormsg;
}
}
}
else
{
$return = false;
$errormsg = 'Prestudent_id muss angegeben werden';
}
}
}
elseif(isset($_POST['type']) && $_POST['type']=='BewerberZuStudent')
{
// macht aus einem Bewerber einen Studenten
+3 -1
View File
@@ -225,7 +225,8 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
<vbox id="student-prestudent" style="overflow:auto; margin:0px;" flex="1">
<popupset>
<popup id="student-prestudent-rolle-tree-popup">
<menuitem label="Entfernen" oncommand="StudentPrestudentRolleDelete();" id="student-prestudent-rolle-tree-popup-delete" hidden="false"/>
<menuitem label="Bearbeiten" oncommand="StudentRolleBearbeiten();" id="student-prestudent-rolle-tree-popup-edit" hidden="false"/>
<menuitem label="Entfernen" oncommand="StudentPrestudentRolleDelete();" id="student-prestudent-rolle-tree-popup-delete" hidden="false"/>
</popup>
</popupset>
<vbox hidden="true">
@@ -439,6 +440,7 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
style="margin-left:10px;margin-right:10px;margin-bottom:5px;" height="100px" enableColumnDrag="true"
flags="dont-build-content"
context="student-prestudent-rolle-tree-popup"
ondblclick="StudentRolleBearbeiten()"
>
<treecols>
<treecol id="student-prestudent-tree-rolle-rolle_kurzbz" label="Kurzbz" flex="2" hidden="false" primary="true"
+82 -1
View File
@@ -1303,7 +1303,10 @@ function StudentPrestudentRolleDelete()
var col = tree.columns ? tree.columns["student-prestudent-tree-rolle-prestudent_id"] : "student-prestudent-tree-rolle-prestudent_id";
var prestudent_id=tree.view.getCellText(tree.currentIndex,col);
var col = tree.columns ? tree.columns["student-prestudent-tree-rolle-ausbildungssemester"] : "student-prestudent-tree-rolle-ausbildungssemester";
var ausbildungssemester=tree.view.getCellText(tree.currentIndex,col);
if(confirm('Diese Rolle wirklich loeschen?'))
{
var url = '<?php echo APP_ROOT ?>content/student/studentDBDML.php';
@@ -1314,6 +1317,7 @@ function StudentPrestudentRolleDelete()
req.add('rolle_kurzbz', rolle_kurzbz);
req.add('prestudent_id', prestudent_id);
req.add('studiensemester_kurzbz', studiensemester_kurzbz);
req.add('ausbildungssemester', ausbildungssemester);
var response = req.executePOST();
@@ -1334,6 +1338,83 @@ function StudentPrestudentRolleDelete()
}
}
// ****
// * oeffnet den BearbeitenDialog fuer die Prestudentrollen
// ****
function StudentRolleBearbeiten()
{
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
var tree = document.getElementById('student-prestudent-tree-rolle');
if (tree.currentIndex==-1) return;
//Ausgewaehlte Nr holen
var col = tree.columns ? tree.columns["student-prestudent-tree-rolle-rolle_kurzbz"] : "student-prestudent-tree-rolle-rolle_kurzbz";
var rolle_kurzbz=tree.view.getCellText(tree.currentIndex,col);
var col = tree.columns ? tree.columns["student-prestudent-tree-rolle-studiensemester_kurzbz"] : "student-prestudent-tree-rolle-studiensemester_kurzbz";
var studiensemester_kurzbz=tree.view.getCellText(tree.currentIndex,col);
var col = tree.columns ? tree.columns["student-prestudent-tree-rolle-prestudent_id"] : "student-prestudent-tree-rolle-prestudent_id";
var prestudent_id=tree.view.getCellText(tree.currentIndex,col);
var col = tree.columns ? tree.columns["student-prestudent-tree-rolle-ausbildungssemester"] : "student-prestudent-tree-rolle-ausbildungssemester";
var ausbildungssemester=tree.view.getCellText(tree.currentIndex,col);
window.open('<?php echo APP_ROOT?>content/student/studentrolledialog.xul.php?prestudent_id='+prestudent_id+'&rolle_kurzbz='+rolle_kurzbz+'&studiensemester_kurzbz='+studiensemester_kurzbz+'&ausbildungssemester='+ausbildungssemester,"","chrome, status=no, width=500, height=300, centerscreen, resizable");
}
// ****
// * Speichert die Daten aus dem BearbeitenDialog
// ****
function StudentRolleSpeichern(dialog, studiensemester_old, ausbildungssemester_old)
{
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
prestudent_id = dialog.getElementById('student-rolle-textbox-prestudent_id').value;
rolle_kurzbz = dialog.getElementById('student-rolle-textbox-rolle_kurzbz').value;
studiensemester_kurzbz = dialog.getElementById('student-rolle-menulist-studiensemester').value;
ausbildungssemester = dialog.getElementById('student-rolle-menulist-ausbildungssemester').value;
datum = dialog.getElementById('student-rolle-datum-datum').value;
if(!CheckDatum(datum))
{
alert('Datum ist ungueltig');
return false;
}
var url = '<?php echo APP_ROOT ?>content/student/studentDBDML.php';
var req = new phpRequest(url,'','');
req.add('type', 'saverolle');
req.add('rolle_kurzbz', rolle_kurzbz);
req.add('prestudent_id', prestudent_id);
req.add('studiensemester_kurzbz', studiensemester_kurzbz);
req.add('studiensemester_old', studiensemester_old);
req.add('ausbildungssemester_old', ausbildungssemester_old);
req.add('ausbildungssemester', ausbildungssemester);
req.add('datum', datum);
var response = req.executePOST();
var val = new ParseReturnValue(response)
if (!val.dbdml_return)
{
if(val.dbdml_errormsg=='')
alert(response)
else
alert(val.dbdml_errormsg)
return false;
}
else
{
StudentDetailRolleTreeDatasource.Refresh(false);
SetStatusBarText('Daten wurden geloescht');
return true;
}
}
// ****
// * Anmeldungsdatum fuer den RT wird auf das Aktuelle Datum gesetzt
// ****
+84
View File
@@ -0,0 +1,84 @@
<?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('../../vilesci/config.inc.php');
require_once('../../include/functions.inc.php');
$conn = pg_pconnect(CONN_STRING);
$user = get_uid();
loadVariables($conn, $user);
?>
var studiensemester_old;
var ausbildungssemester_old;
// ****
// * Laedt die Rolle
// ****
function StudentRolleInit(prestudent_id, rolle_kurzbz, studiensemester_kurzbz, ausbildungssemester)
{
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
if(prestudent_id!='')
{
studiensemester_old=studiensemester_kurzbz;
ausbildungssemester_old=ausbildungssemester;
//Daten holen
var url = '<?php echo APP_ROOT ?>rdf/prestudentrolle.rdf.php?prestudent_id='+prestudent_id+'&rolle_kurzbz='+rolle_kurzbz+'&studiensemester_kurzbz='+studiensemester_kurzbz+'&ausbildungssemester='+ausbildungssemester+'&'+gettimestamp();
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].
getService(Components.interfaces.nsIRDFService);
var dsource = rdfService.GetDataSourceBlocking(url);
var subject = rdfService.GetResource("http://www.technikum-wien.at/prestudentrolle/" + prestudent_id+"/"+rolle_kurzbz+"/"+studiensemester_kurzbz+"/"+ausbildungssemester);
var predicateNS = "http://www.technikum-wien.at/prestudentrolle/rdf";
//RDF parsen
datum = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#datum" ));
neu = false;
}
else
{
//Defaultwerte bei Neuem Datensatz
}
document.getElementById('student-rolle-textbox-prestudent_id').value=prestudent_id;
document.getElementById('student-rolle-textbox-rolle_kurzbz').value=rolle_kurzbz;
document.getElementById('student-rolle-menulist-studiensemester').value=studiensemester_kurzbz;
document.getElementById('student-rolle-menulist-ausbildungssemester').value=ausbildungssemester;
document.getElementById('student-rolle-datum-datum').value=datum;
}
// ****
// * Speichern der Rolle
// * Hierzu wird eine Funktion vom Aufrufenden Fenster gestartet weil
// * es dann nicht zu Problemen mit den Zugriffen auf die anderen Fkt
// * kommt.
// ****
function StudentRolleSpeichern()
{
if(window.opener.StudentRolleSpeichern(document, studiensemester_old, ausbildungssemester_old))
window.close();
}
+121
View File
@@ -0,0 +1,121 @@
<?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");
include('../../vilesci/config.inc.php');
echo '<?xml version="1.0" encoding="UTF-8"?>'."\n";
echo '<?xml-stylesheet href="'.APP_ROOT.'skin/tempus.css" type="text/css"?>';
echo '<?xml-stylesheet href="'.APP_ROOT.'content/bindings.css" type="text/css"?>';
echo '<?xml-stylesheet href="../datepicker/datepicker.css" type="text/css"?>';
if(isset($_GET['prestudent_id']))
$prestudent_id=$_GET['prestudent_id'];
else
$prestudent_id='';
if(isset($_GET['rolle_kurzbz']))
$rolle_kurzbz=$_GET['rolle_kurzbz'];
else
$rolle_kurzbz='';
if(isset($_GET['studiensemester_kurzbz']))
$studiensemester_kurzbz=$_GET['studiensemester_kurzbz'];
else
$studiensemester_kurzbz='';
if(isset($_GET['ausbildungssemester']))
$ausbildungssemester=$_GET['ausbildungssemester'];
else
$ausbildungssemester='';
?>
<window id="student-rolle-dialog" title="Neu"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
onload="StudentRolleInit(<?php echo "'$prestudent_id','$rolle_kurzbz','$studiensemester_kurzbz','$ausbildungssemester'";?>)"
>
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/student/studentrolledialog.js.php" />
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/functions.js.php" />
<vbox>
<textbox id="student-rolle-textbox-prestudent_id" value="" hidden="true" />
<groupbox id="student-rolle-groupbox" flex="1">
<caption label="Details"/>
<grid id="student-rolle-grid-detail" style="margin:4px;" flex="1">
<columns >
<column flex="1"/>
<column flex="5"/>
</columns>
<rows>
<row>
<label value="Rolle"/>
<textbox disabled="true" id="student-rolle-textbox-rolle_kurzbz" />
</row>
<row>
<label value="Studiensemester" control="student-rolle-menulist-studiensemester"/>
<menulist id="student-rolle-menulist-studiensemester"
datasources="<?php echo APP_ROOT ?>rdf/studiensemester.rdf.php" flex="1"
ref="http://www.technikum-wien.at/studiensemester/liste" >
<template>
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/studiensemester/rdf#kurzbz"
label="rdf:http://www.technikum-wien.at/studiensemester/rdf#kurzbz"
uri="rdf:*"/>
</menupopup>
</template>
</menulist>
</row>
<row>
<label value="Ausbildungssemester" control="student-rolle-menulist-ausbildungssemester"/>
<menulist id="student-rolle-menulist-ausbildungssemester" >
<menupopup>
<menuitem value="1" label="1"/>
<menuitem value="2" label="2"/>
<menuitem value="3" label="3"/>
<menuitem value="4" label="4"/>
<menuitem value="5" label="5"/>
<menuitem value="6" label="6"/>
<menuitem value="7" label="7"/>
<menuitem value="8" label="8"/>
<menuitem value="9" label="9"/>
<menuitem value="10" label="10"/>
</menupopup>
</menulist>
</row>
<row>
<label value="Datum" control="student-rolle-datum-datum"/>
<box class='Datum' id="student-rolle-datum-datum" />
</row>
</rows>
</grid>
<hbox>
<spacer flex="1" />
<button id="student-rolel-button-speichern" oncommand="StudentRolleSpeichern()" label="Speichern" />
</hbox>
</groupbox>
</vbox>
</window>
+17 -8
View File
@@ -340,7 +340,7 @@ class prestudent extends person
// ********
// * Laedt die Rolle(n) eines Prestudenten
// ********
function getPrestudentRolle($prestudent_id, $rolle_kurzbz=null, $studiensemester_kurzbz=null, $order="datum, insertamum")
function getPrestudentRolle($prestudent_id, $rolle_kurzbz=null, $studiensemester_kurzbz=null, $order="datum, insertamum", $ausbildungssemester=null)
{
if(!is_numeric($prestudent_id))
{
@@ -353,6 +353,8 @@ class prestudent extends person
$qry.= " AND rolle_kurzbz='".addslashes($rolle_kurzbz)."'";
if($studiensemester_kurzbz!=null)
$qry.= " AND studiensemester_kurzbz='".addslashes($studiensemester_kurzbz)."'";
if($ausbildungssemester!=null)
$qry.= " AND ausbildungssemester='".addslashes($ausbildungssemester)."'";
$qry.= ' ORDER BY '.$order;
if($result = pg_query($this->conn, $qry))
@@ -385,7 +387,7 @@ class prestudent extends person
// ********
// * Laedt die Rolle(n) eines Prestudenten
// ********
function load_rolle($prestudent_id, $rolle_kurzbz, $studiensemester_kurzbz)
function load_rolle($prestudent_id, $rolle_kurzbz, $studiensemester_kurzbz, $ausbildungssemester)
{
if(!is_numeric($prestudent_id))
{
@@ -395,7 +397,8 @@ class prestudent extends person
$qry = "SELECT * FROM public.tbl_prestudentrolle WHERE prestudent_id='$prestudent_id'".
" AND rolle_kurzbz='".addslashes($rolle_kurzbz)."'".
" AND studiensemester_kurzbz='".addslashes($studiensemester_kurzbz)."'";
" AND studiensemester_kurzbz='".addslashes($studiensemester_kurzbz)."'".
" AND ausbildungssemester='".addslashes($ausbildungssemester)."'";
if($result = pg_query($this->conn, $qry))
{
@@ -620,10 +623,16 @@ class prestudent extends person
}
else
{
if($this->studiensemester_old=='')
$this->studiensemester_old = $this->studiensemester_kurzbz;
if($this->ausbildungssemester_old=='')
$this->ausbildungssemester_old = $this->ausbildungssemester;
$qry = 'UPDATE public.tbl_prestudentrolle SET'.
' ausbildungssemester='.$this->addslashes($this->ausbildungssemester).",".
' datum='.$this->addslashes($this->datum).",".
" WHERE prestudent_id='".addslashes($this->prestudent_id)."' AND rolle_kurzbz='".addslashes($this->rolle_kurzbz)."' AND studiensemester_kurzbz='".addslashes($this->studiensemester_kurzbz)."';";
' studiensemester_kurzbz='.$this->addslashes($this->studiensemester_kurzbz).",".
' datum='.$this->addslashes($this->datum).
" WHERE prestudent_id='".addslashes($this->prestudent_id)."' AND rolle_kurzbz='".addslashes($this->rolle_kurzbz)."' AND studiensemester_kurzbz='".addslashes($this->studiensemester_old)."' AND ausbildungssemester='".addslashes($this->ausbildungssemester_old)."';";
}
if(pg_query($this->conn,$qry))
@@ -645,7 +654,7 @@ class prestudent extends person
// * $studiensemester_kurzbz
// * @return true wenn ok, false wenn Fehler
// ******************************************
function delete_rolle($prestudent_id, $rolle_kurzbz, $studiensemester_kurzbz)
function delete_rolle($prestudent_id, $rolle_kurzbz, $studiensemester_kurzbz, $ausbildungssemester)
{
if(!is_numeric($prestudent_id))
{
@@ -653,8 +662,8 @@ class prestudent extends person
return false;
}
$qry = "DELETE FROM public.tbl_prestudentrolle WHERE prestudent_id='$prestudent_id' AND rolle_kurzbz='".addslashes($rolle_kurzbz)."' AND studiensemester_kurzbz='".addslashes($studiensemester_kurzbz)."'";
if($this->load_rolle($prestudent_id, $rolle_kurzbz, $studiensemester_kurzbz))
$qry = "DELETE FROM public.tbl_prestudentrolle WHERE prestudent_id='$prestudent_id' AND rolle_kurzbz='".addslashes($rolle_kurzbz)."' AND studiensemester_kurzbz='".addslashes($studiensemester_kurzbz)."' AND ausbildungssemester='".addslashes($ausbildungssemester)."'";
if($this->load_rolle($prestudent_id, $rolle_kurzbz, $studiensemester_kurzbz, $ausbildungssemester))
{
pg_query($this->conn, 'BEGIN;');
+12 -12
View File
@@ -331,7 +331,7 @@ class wochenplan
{
echo '<TABLE width="100%" bgcolor="#EEEEEE" border="0" cellspacing="0">'.$this->crlf;
echo ' <TR>'.$this->crlf;
echo ' <TD valign="bottom">'.$this->crlf;
echo ' <TD valign="bottom">'.$this->crlf;
echo ' <P valign="top">';
if ($this->type=='student' || $this->type=='lektor')
echo '<strong>Person: </strong>'.$this->pers_titelpre.' '.$this->pers_vorname.' '.$this->pers_nachname.' - '.$this->pers_uid.'<br>';
@@ -347,7 +347,7 @@ class wochenplan
}
if ($this->type=='ort')
echo '<strong>Ort: </strong>'.$this->ort_kurzbz.' - '.$this->ort_bezeichnung.'<br>';
echo '</P>'.$this->crlf;
echo '</P>'.$this->crlf;
echo ' <div valign="bottom" align="center">'.$this->crlf;
//Kalender
@@ -368,7 +368,7 @@ class wochenplan
echo ' <A href="'.$kal_link_ss.'&format=csv&target=outlook" title="CSV-Outlook"><IMG src="../../../skin/images/outlook.png" height="24" alt="CSV-Outlook" border="0"></A>'.$this->crlf;
echo ' <A href="'.$kal_link_ss.'&format=ical&version=1&target=ical" title="iCal Version 1.0"><IMG src="../../../skin/images/vcal_v1.png" height="24" alt="iCal Version 1.0" border="0"></A>'.$this->crlf;
echo ' <A href="'.$kal_link_ss.'&format=ical&version=2&target=ical" title="iCal Version 2.0"><IMG src="../../../skin/images/vcal_v2.png" height="24" alt="iCal Version 2.0" border="0"></A>'.$this->crlf;
echo ' </div>'.$this->crlf;
echo ' </div>'.$this->crlf;
echo ' </TD>'.$this->crlf;
// Kalenderjump
@@ -403,13 +403,13 @@ class wochenplan
$next_ort=pg_fetch_object($result_ort,$i);
// Ort Jump
echo '<FORM align="center" name="AuswahlOrt" action="stpl_week.php">'.$this->crlf;
echo '<FORM align="center" name="AuswahlOrt" action="stpl_week.php">'.$this->crlf;
echo ' <p align="center">'.$this->crlf;
//$datum=mktime($this->datum[hours], $this->datum[minutes], $this->datum[seconds], $this->datum[mon], $this->datum[mday], $this->datum[year]);
if (isset($prev_ort))
{
echo ' <a href="stpl_week.php?type='.$this->type.'&datum='.$this->datum.'&ort_kurzbz='.$prev_ort->ort_kurzbz.'">'.$this->crlf;
echo ' <img src="../../../skin/images/left.gif" border="0" title="'.$prev_ort->ort_kurzbz.'" />'.$this->crlf;
echo ' <a href="stpl_week.php?type='.$this->type.'&datum='.$this->datum.'&ort_kurzbz='.$prev_ort->ort_kurzbz.'">'.$this->crlf;
echo ' <img src="../../../skin/images/left.gif" border="0" title="'.$prev_ort->ort_kurzbz.'" />'.$this->crlf;
echo ' </a>'.$this->crlf;
}
echo " <SELECT name=\"select\" onChange=\"MM_jumpMenu('self',this,0)\" class=\"xxxs_black\">".$this->crlf;
@@ -424,8 +424,8 @@ class wochenplan
echo ' </SELECT>'.$this->crlf;
if (isset($next_ort))
{
echo ' <a href="stpl_week.php?type='.$this->type.'&datum='.$this->datum.'&ort_kurzbz='.$next_ort->ort_kurzbz.'">'.$this->crlf;
echo ' <img src="../../../skin/images/right.gif" border="0" title="'.$next_ort->ort_kurzbz.'">'.$this->crlf;
echo ' <a href="stpl_week.php?type='.$this->type.'&datum='.$this->datum.'&ort_kurzbz='.$next_ort->ort_kurzbz.'">'.$this->crlf;
echo ' <img src="../../../skin/images/right.gif" border="0" title="'.$next_ort->ort_kurzbz.'">'.$this->crlf;
echo ' </a>'.$this->crlf;
}
echo ' </p>';
@@ -433,8 +433,8 @@ class wochenplan
}
echo ' <p align="center">';
// 4 Wochen zurueck
echo ' <a href="stpl_week.php?type='.$this->type.$link_parameter.'&datum='.$this->datum_prev4week.'">'.$this->crlf;
echo ' <img src="../../../skin/images/moreleft.gif" border="0" title="4 Wochen zurueck">'.$this->crlf;
echo ' <a href="stpl_week.php?type='.$this->type.$link_parameter.'&datum='.$this->datum_prev4week.'">'.$this->crlf;
echo ' <img src="../../../skin/images/moreleft.gif" border="0" title="4 Wochen zurueck">'.$this->crlf;
echo ' </a>';
// 1 Woche zurueck
echo '<a href="stpl_week.php?type='.$this->type;
@@ -458,7 +458,7 @@ class wochenplan
/**************************************************************************
* Zeichnen der Stundenplanwoche in HTML
*/
function draw_week($user_uid)
function draw_week($user_uid='')
{
// Stundentafel abfragen
$sql_query="SELECT stunde, beginn, ende FROM lehre.tbl_stunde ORDER BY stunde";
@@ -1599,4 +1599,4 @@ class wochenplan
}
?>
?>
+8
View File
@@ -143,6 +143,13 @@ while ($row=pg_fetch_object($result))
<VERBAND:stsem><?php echo $stsem->studiensemester_kurzbz; ?></VERBAND:stsem>
<VERBAND:typ>absage</VERBAND:typ>
</RDF:Description>
<RDF:Description RDF:about="<?php echo $rdf_url.$stg_kurzbz.'/'.$stsem->studiensemester_kurzbz.'/incoming'; ?>" >
<VERBAND:name>Incoming</VERBAND:name>
<VERBAND:stg><?php echo $stg_kurzbz; ?></VERBAND:stg>
<VERBAND:stg_kz><?php echo $row->studiengang_kz; ?></VERBAND:stg_kz>
<VERBAND:stsem><?php echo $stsem->studiensemester_kurzbz; ?></VERBAND:stsem>
<VERBAND:typ>incoming</VERBAND:typ>
</RDF:Description>
<?php
}
}
@@ -257,6 +264,7 @@ while ($row=pg_fetch_object($result))
echo "\t\t\t\t<RDF:li RDF:resource=\"$rdf_url$stg_kurzbz/$stsem->studiensemester_kurzbz/aufgenommen\" />\n";
echo "\t\t\t\t<RDF:li RDF:resource=\"$rdf_url$stg_kurzbz/$stsem->studiensemester_kurzbz/warteliste\" />\n";
echo "\t\t\t\t<RDF:li RDF:resource=\"$rdf_url$stg_kurzbz/$stsem->studiensemester_kurzbz/absage\" />\n";
echo "\t\t\t\t<RDF:li RDF:resource=\"$rdf_url$stg_kurzbz/$stsem->studiensemester_kurzbz/incoming\" />\n";
echo "\t\t\t</RDF:Seq>\n\t\t\t</RDF:li>\n";
}
+1 -1
View File
@@ -116,7 +116,7 @@ if($lehrveranstaltung_id==null && $filter==null)
$ma=$mitarbeiter->getMitarbeiter($lektor,$fixangestellt,$stg_kz,$fachbereich_id);
$stg_obj = new studiengang($conn);
$stg_obj->getAll();
$stg_obj->getAll('typ, kurzbz', false);
foreach ($stg_obj->result as $stg)
$stg_arr[$stg->studiengang_kz]=$stg->kuerzel;
+7 -2
View File
@@ -47,14 +47,19 @@ if(isset($_GET['studiensemester_kurzbz']))
else
$studiensemester_kurzbz=null;
if(isset($_GET['ausbildungssemester']))
$ausbildungssemester=$_GET['ausbildungssemester'];
else
$ausbildungssemester=null;
$ps = new prestudent($conn);
$ps->getPrestudentRolle($prestudent_id, $rolle_kurzbz, $studiensemester_kurzbz);
$ps->getPrestudentRolle($prestudent_id, $rolle_kurzbz, $studiensemester_kurzbz, 'datum, insertamum', $ausbildungssemester);
foreach($ps->result as $row)
{
echo '
<RDF:li>
<RDF:Description id="'.$row->prestudent_id.'/'.$row->rolle_kurzbz.'/'.$row->studiensemester_kurzbz.'" about="'.$rdf_url.'/'.$row->prestudent_id.'/'.$row->rolle_kurzbz.'/'.$row->studiensemester_kurzbz.'" >
<RDF:Description id="'.$row->prestudent_id.'/'.$row->rolle_kurzbz.'/'.$row->studiensemester_kurzbz.'/'.$row->ausbildungssemester.'" about="'.$rdf_url.'/'.$row->prestudent_id.'/'.$row->rolle_kurzbz.'/'.$row->studiensemester_kurzbz.'/'.$row->ausbildungssemester.'" >
<ROLLE:prestudent_id><![CDATA['.$row->prestudent_id.']]></ROLLE:prestudent_id>
<ROLLE:rolle_kurzbz><![CDATA['.$row->rolle_kurzbz.']]></ROLLE:rolle_kurzbz>
<ROLLE:studiensemester_kurzbz><![CDATA['.$row->studiensemester_kurzbz.']]></ROLLE:studiensemester_kurzbz>
+30
View File
@@ -223,6 +223,36 @@ if($xmlformat=='rdf')
}
}
}
elseif($typ=='incoming')
{
$qry = "SELECT prestudent_id FROM public.tbl_prestudentrolle WHERE rolle_kurzbz='Incoming' AND studiensemester_kurzbz='".addslashes($studiensemester_kurzbz)."'";
if($result = pg_query($conn, $qry))
{
while($row = pg_fetch_object($result))
{
$student=new student($conn,null,true);
if($uid = $student->getUid($row->prestudent_id))
{
//Wenn kein Eintrag fuers aktuelle Studiensemester da ist, dann
//nochmal laden aber ohne studiensemester
if(!$student->load($uid, $studiensemester_kurzbz))
$student->load($uid);
}
$prestd = new prestudent($conn, null, true);
$prestd->load($row->prestudent_id);
if($uid!='')
{
draw_content($student);
draw_prestudent($prestd);
}
else
{
draw_content($prestd);
draw_prestudent($prestd);
}
}
}
}
elseif(in_array($typ, array('prestudent', 'interessenten','bewerber','aufgenommen',
'warteliste','absage','zgv','reihungstestangemeldet',
'reihungstestnichtangemeldet')))
+37 -20
View File
@@ -116,35 +116,52 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
$obj->getZeugnisnoten($lehrveranstaltung_id=null, $uid_arr[$i], $studiensemester_kurzbz);
$qry = "SELECT wochen FROM public.tbl_semesterwochen WHERE studiengang_kz='$row->studiengang_kz' AND semester='$row->semester'";
$wochen = 15;
if($result_wochen = pg_query($conn, $qry))
{
if($row_wochen = pg_fetch_object($result_wochen))
{
$wochen = $row_wochen->wochen;
}
}
$gesamtstunden=0;
$gesamtects=0;
$notensumme=0;
$anzahl=0;
foreach ($obj->result as $row)
{
if ($row->note)
$note = $note_arr[$row->note];
else
$note = "";
$xml .= " <unterrichtsfach>";
$xml .= " <bezeichnung>".$row->lehrveranstaltung_bezeichnung."</bezeichnung>";
$xml .= " <note>".$note."</note>";
$xml .= " <sws>".$row->semesterstunden."</sws>";
$xml .= " <ects>".$row->ects."</ects>";
if($row->benotungsdatum!='')
$xml .= " <benotungsdatum>".date('d.m.Y',$datum->mktime_fromtimestamp($row->benotungsdatum))."</benotungsdatum>";
$xml .= " </unterrichtsfach>";
$gesamtstunden +=$row->semesterstunden;
$gesamtects += $row->ects;
if(is_numeric($note))
if($row->zeugnis && $row->note!=5)
{
$notensumme += $note;
$anzahl++;
if ($row->note)
$note = $note_arr[$row->note];
else
$note = "";
$xml .= " <unterrichtsfach>";
$xml .= " <bezeichnung>".$row->lehrveranstaltung_bezeichnung."</bezeichnung>";
$xml .= " <note>".$note."</note>";
$xml .= " <sws>".sprintf('%.1f',$row->semesterstunden/$wochen)."</sws>";
$xml .= " <ects>".$row->ects."</ects>";
if($row->benotungsdatum!='')
$xml .= " <benotungsdatum>".date('d.m.Y',$datum->mktime_fromtimestamp($row->benotungsdatum))."</benotungsdatum>";
$xml .= " </unterrichtsfach>";
$gesamtstunden +=$row->semesterstunden;
$gesamtects += $row->ects;
if(is_numeric($note))
{
$notensumme += $note;
$anzahl++;
}
}
}
if($anzahl=!0)
$schnitt = $notensumme/$anzahl;
if($anzahl!=0)
{
$schnitt = ($notensumme/$anzahl);
}
else
$schnitt = 0;
$xml .= " <gesamtstunden>$gesamtstunden</gesamtstunden>";
+11 -11
View File
@@ -70,7 +70,7 @@
</fo:block>
</fo:table-cell>
<fo:table-cell>
<fo:block font-family="sans-serif" font-size="10pt" content-width="45mm" text-align="left">
<fo:block font-family="sans-serif" font-size="12pt" content-width="45mm" text-align="left">
<fo:inline font-weight="900">
<xsl:value-of select="name" />
</fo:inline>
@@ -102,25 +102,25 @@
<fo:table-body>
<fo:table-row line-height="10pt">
<fo:table-row line-height="14pt">
<fo:table-cell border-width="0.2mm" border-style="solid">
<fo:block font-size="10pt" font-weight="bold">
<fo:block font-size="14pt" font-weight="bold">
Lehrveranstaltung\n
</fo:block>
</fo:table-cell>
<fo:table-cell border-width="0.2mm" border-style="solid">
<fo:block font-size="10pt" font-weight="bold" content-width="30mm" text-align="center">
<fo:block font-size="14pt" font-weight="bold" content-width="30mm" text-align="center">
Note\n
</fo:block>
</fo:table-cell>
<fo:table-cell border-width="0.2mm" border-style="solid">
<fo:block font-size="10pt" font-weight="bold" content-width="25mm" text-align="center">
<fo:block font-size="14pt" font-weight="bold" content-width="25mm" text-align="center">
Anzahl\n SWS
</fo:block>
</fo:table-cell>
<fo:table-cell border-width="0.2mm" border-style="solid">
<fo:block font-size="10pt" font-weight="bold" content-width="25mm" text-align="center">
<fo:block font-size="14pt" font-weight="bold" content-width="25mm" text-align="center">
ECTS\n Punkte
</fo:block>
</fo:table-cell>
@@ -229,11 +229,11 @@
</xsl:template>
<xsl:template match="unterrichtsfach">
<fo:table-row line-height="10pt">
<fo:table-cell border-width="0.2mm" border-style="solid" ><fo:block font-size="8pt"><xsl:text> </xsl:text><xsl:value-of select="bezeichnung" /></fo:block></fo:table-cell>
<fo:table-cell border-width="0.2mm" border-style="solid" ><fo:block font-size="8pt" content-width="30mm" text-align="center"><xsl:text> </xsl:text><xsl:value-of select="note" /></fo:block></fo:table-cell>
<fo:table-cell border-width="0.2mm" border-style="solid" ><fo:block font-size="8pt" content-width="25mm" text-align="center"><xsl:text> </xsl:text><xsl:value-of select="sws" /></fo:block></fo:table-cell>
<fo:table-cell border-width="0.2mm" border-style="solid" ><fo:block font-size="8pt" content-width="25mm" text-align="center"><xsl:text> </xsl:text><xsl:value-of select="ects" /></fo:block></fo:table-cell>
<fo:table-row line-height="16pt">
<fo:table-cell border-width="0.2mm" border-style="solid" ><fo:block font-size="12pt"><xsl:text> </xsl:text><xsl:value-of select="bezeichnung" /></fo:block></fo:table-cell>
<fo:table-cell border-width="0.2mm" border-style="solid" ><fo:block font-size="12pt" content-width="30mm" text-align="center"><xsl:text> </xsl:text><xsl:value-of select="note" /></fo:block></fo:table-cell>
<fo:table-cell border-width="0.2mm" border-style="solid" ><fo:block font-size="12pt" content-width="25mm" text-align="center"><xsl:text> </xsl:text><xsl:value-of select="sws" /></fo:block></fo:table-cell>
<fo:table-cell border-width="0.2mm" border-style="solid" ><fo:block font-size="12pt" content-width="25mm" text-align="center"><xsl:text> </xsl:text><xsl:value-of select="ects" /></fo:block></fo:table-cell>
</fo:table-row>
</xsl:template>
</xsl:stylesheet >
+160 -4
View File
@@ -31,6 +31,8 @@ require_once('../../../include/kontakt.class.php');
require_once('../../../include/adresse.class.php');
require_once('../../../include/studiensemester.class.php');
require_once('../../../include/datum.class.php');
require_once('../../../include/benutzer.class.php');
require_once('../../../include/student.class.php');
if(!$conn=pg_pconnect(CONN_STRING))
die('Fehler beim Herstellen der DB Connection');
@@ -110,9 +112,92 @@ $person_id = (isset($_REQUEST['person_id'])?$_REQUEST['person_id']:'');
$ueberschreiben = (isset($_REQUEST['ueberschreiben'])?$_REQUEST['ueberschreiben']:'');
$studiensemester_kurzbz = (isset($_REQUEST['studiensemester_kurzbz'])?$_REQUEST['studiensemester_kurzbz']:'');
$ausbildungssemester = (isset($_REQUEST['ausbildungssemester'])?$_REQUEST['ausbildungssemester']:'');
$incoming = (isset($_REQUEST['incoming'])?true:false);
//end Parameter
$geburtsdatum_error=false;
// ****
// * Generiert die Matrikelnummer
// * FORMAT: 0710254001
// * 07 = Jahr
// * 1/2/0 = WS/SS/incoming
// * 0254 = Studiengangskennzahl vierstellig
// * 001 = Laufende Nummer
// ****
function generateMatrikelnummer($conn, $studiengang_kz, $studiensemester_kurzbz)
{
$jahr = substr($studiensemester_kurzbz, 4);
$art =0;
$matrikelnummer = sprintf("%02d",$jahr).$art.sprintf("%04d",$studiengang_kz);
$qry = "SELECT matrikelnr FROM public.tbl_student WHERE matrikelnr LIKE '$matrikelnummer%' ORDER BY matrikelnr DESC LIMIT 1";
if($result = pg_query($conn, $qry))
{
if($row = pg_fetch_object($result))
{
$max = substr($row->matrikelnr,7);
}
else
$max = 0;
$max += 1;
return $matrikelnummer.sprintf("%03d",$max);
}
else
{
return false;
}
}
// ****
// * Generiert die UID
// * FORMAT: el07b001
// * el = studiengangskuerzel
// * 07 = Jahr
// * b/m/d/x = Bachelor/Master/Diplom/incoming
// * 001 = Laufende Nummer ( Wenn StSem==SS dann wird zur nummer 500 dazugezaehlt)
// ****
function generateUID($conn, $matrikelnummer)
{
$jahr = substr($matrikelnummer,0, 2);
$art = substr($matrikelnummer, 2, 1);
$stg = substr($matrikelnummer, 3, 4);
$nr = substr($matrikelnummer, 7);
if($art=='2')
$nr = $nr+500;
$stg_obj = new studiengang($conn);
$stg_obj->load(ltrim($stg,'0'));
return $stg_obj->kurzbz.$jahr.($art!='0'?$stg_obj->typ:'x').$nr;
}
function clean_string($string)
{
$trans = array("ä" => "ae",
"Ä" => "Ae",
"ö" => "oe",
"Ö" => "Oe",
"ü" => "ue",
"Ü" => "Ue",
"á" => "a",
"à" => "a",
"é" => "e",
"è" => "e",
"ó" => "o",
"ò" => "o",
"í" => "i",
"ì" => "i",
"ù" => "u",
"ú" => "u",
"ß" => "ss");
$string = strtr($string, $trans);
return ereg_replace("[^a-zA-Z0-9]", "", $string);
//[:space:]
}
if($studiensemester_kurzbz == '')
{
$stsem = new studiensemester($conn);
@@ -317,13 +402,16 @@ if(isset($_POST['save']))
}
}
//Prestudent Rolle Anlegen
if(!$error)
{
//Prestudent Rolle Anlegen
$rolle = new prestudent($conn);
$rolle->prestudent_id = $prestudent->prestudent_id;
$rolle->rolle_kurzbz = 'Interessent';
if(!$incoming)
$rolle->rolle_kurzbz = 'Interessent';
else
$rolle->rolle_kurzbz = 'Incoming';
$rolle->studiensemester_kurzbz = $studiensemester_kurzbz;
$rolle->ausbildungssemester = $ausbildungssemester;
$rolle->datum = date('Y-m-d');
@@ -341,10 +429,78 @@ if(isset($_POST['save']))
$error = false;
}
if(!$error && $incoming)
{
//Matrikelnummer und UID generieren
$matrikelnr = generateMatrikelnummer($conn, $studiengang_kz, $studiensemester_kurzbz);
$uid = generateUID($conn, $matrikelnr);
//Benutzerdatensatz anlegen
$benutzer = new benutzer($conn);
$benutzer->uid = $uid;
$benutzer->person_id = $person->person_id;
$benutzer->aktiv = true;
$qry_alias = "SELECT * FROM public.tbl_benutzer WHERE alias=LOWER('".clean_string($person->vorname).".".clean_string($person->nachname)."')";
$result_alias = pg_query($conn, $qry_alias);
if(pg_num_rows($result_alias)==0)
$benutzer->alias = strtolower(clean_string($person->vorname).'.'.clean_string($person->nachname));
else
$benutzer->alias = '';
$benutzer->insertamum = date('Y-m-d H:i:s');
$benutzer->insertvon = $user;
if($benutzer->save(true, false))
{
//Studentendatensatz anlegen
$student = new student($conn);
$student->uid = $uid;
$student->matrikelnr = $matrikelnr;
$student->prestudent_id = $prestudent->prestudent_id;
$student->studiengang_kz = $studiengang_kz;
$student->semester = $ausbildungssemester;
$student->verband = ' ';
$student->gruppe = ' ';
$student->insertamum = date('Y-m-d H:i:s');
$student->insertvon = $user;
if($student->save(true, false))
{
//StudentLehrverband anlegen
$studentlehrverband = new student($conn);
$studentlehrverband->uid = $uid;
$studentlehrverband->studiensemester_kurzbz = $studiensemester_kurzbz;
$studentlehrverband->studiengang_kz = $studiengang_kz;
$studentlehrverband->semester = $ausbildungssemester;
$studentlehrverband->verband = ' ';
$studentlehrverband->gruppe = ' ';
$studentlehrverband->insertamum = date('Y-m-d H:i:s');
$studentlehrverband->insertvon = $user;
if(!$studentlehrverband->save_studentlehrverband(true))
{
$error = true;
$errormsg = 'StudentLehrverband konnte nicht angelegt werden';
}
}
else
{
$error = true;
$errormsg = 'Student konnte nicht angelegt werden: '.$student->errormsg;
}
}
else
{
$error = true;
$errormsg = 'Benutzer konnte nicht angelegt werden:'.$benutzer->errormsg;
}
}
if(!$error)
{
pg_query($conn, 'COMMIT');
die("<b>Interessent $vorname $nachname wurde erfolgreich angelegt</b><br>");
die("<b>".($incoming?'Incomming':'Interessent')." $vorname $nachname wurde erfolgreich angelegt</b><br>");
}
else
{
@@ -440,7 +596,7 @@ for ($i=1;$i<9;$i++)
echo '<OPTION value="'.$i.'" '.($i==$ausbildungssemester?'selected':'').'>'.$i.'. Semester</OPTION>';
echo '</SELECT>';
echo '</td></tr>';
echo '<tr><td>incoming:</td><td><input type="checkbox" name="incoming" '.($incoming?'checked':'').' /></td></tr>';
echo '<tr><tr><td></td><td>';
if(($geburtsdatum=='' && $vorname=='' && $nachname=='') || $geburtsdatum_error)